Sistemas operativos modernos

un compilador de C podría insistir en que cualquier archivo que vaya a compilar termine en .c, y podría negarse a compilarlo de no ser así. Las convenciones de este tipo son útiles en especial cuando el mismo programa puede ma­ nejar varios tipos de archivos distintos. Por ejemplo, podría suministrarse al compilador de C una lista de varios archivos que debe compilar y enlazar, algunos de ellos en C y otros en lengua­ je ensamblador. En tal caso, la extensión se vuelve indispensable para que el compilador sepa cuáles son archivos en C, cuáles están en lenguaje ensamblador y cuáles son de otro tipo. En contraste, Windows tiene conocimiento de las extensiones y les asigna un significado. Los usuarios (o procesos) pueden registrar extensiones con el sistema operativo y especificar, para cada una, qué programa es el “dueño” de la extensión. Cuando un usuario hace doble clic en un nombre de archivo, se inicia el programa asociado a su extensión de archivo, con el nom­ bre de archivo como parámetro. Por ejemplo, si se hace doble clic en archivo.doc, se iniciará el programa Word de Microsoft, y éste abrirá archivo.doc como primer documento a editar. 6.1.2 Estructura de archivos Los archivos pueden estructurarse de varias maneras. En la figura 6-2 se ilustran tres posibili­ dades comunes. El archivo de la figura 6-2a es una sucesión no estructurada de bytes. En efec­ to, el sistema operafivo no sabe qué contiene el archivo, ni le interesa; lo único que ve son bytes. Cualquier significado que tenga el archivo deberán imponérselo los programas en el ni­ vel de usuario. Tanto UNIX como Windows utilizan este enfoque. 1 byte 1 registro (a) (b) (c) Figura 6-2. Tres tipos de archivos, a) Sucesión de bytes. b) Sucesión de registros, c) Árbol. Hacer que el sistema operativo vea los archivos únicamente como sucesiones de bytes ofre­ ce el máximo de flexibilidad. Los programas de usuario pueden colocar lo que deseen en sus

RkJQdWJsaXNoZXIy MjI4NDcx