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