Sistemas operativos modernos

Llamada al sistema Descripción s =mkdir(path, mode) Crea un nuevo directorio s = rmdir(path) Elimina un directorio s = link(oldpath, newpath) Crea un enlace a un archivo existente s =unllnk(path) Desenlaza un archivo s =chdir(path) Cambia el directorio de trabajo dir = opendlr(path) Abre un directorio para leerlo s = closedir(dir) Cierra un directorio dirent = readdir(dir) Lee una entrada de directorio rewinddir(dir) Rebobina el directorio para releerlo Figura 10-30. Algunas llamadas al sistema relacionadas con directorios. El código de retorno s es -1 si hubo algún error; dir identifica un flujo de directorio, direntes una entrada de directorio y path indica una ruta. Los parámetros no requieren ma­ yor explicación. tros especifican el nombre original y el nuevo nombre, respecfivamente. Las entradas de direc­ torio se eliminan con unlink. Cuando se elimina el último enlace a un archivo, este archivo se borra en forma automática. En el caso de archivos que nunca se han enlazado, el primer unlink hace que desaparezcan. El directorio de trabajo se cambia con la llamada al sistema chdir. Esto tiene el efecto de alterar la interpretación de los nombres de ruta relafivos. Las úlfimas cuatro llamadas de la figura 10-30 son para leer directorios, los cuales pueden abrirse, cerrarse y leerse, de forma análoga a los archivos ordinarios. Cada llamada a readdir devuelve exactamente una entrada de directorio en un formato fijo. No se permite a los usua­ rios escribir en un directorio (a fin de mantener la integridad del sistema de archivos). Es posi­ ble añadir archivos a un directorio con creat o con link, y quitarlos con unlink. Tampoco hay manera de desplazarse a una entrada específica en un directorio, pero rewinddir permite leer un directorio abierto otra vez desde el principio. 10.6.3 Implementación del sistema de archivos UNIX En esta sección describiremos la implementación del sistema de archivos tradicional de UNIX. Después hablaremos de las mejoras de Berkeley. También se usan otros sistemas de archivos. To­ dos los sistemas UNIX pueden manejar múltiples particiones de disco, cada una con un sistema de archivos distinto. Una partición de disco clásica en UNIX confiene un sistema de archivos con la organización que se ilustra en la figura 10-31. UNIX no usa el bloque O, que a menudo contiene código para arrancar la computadora. El bloque 1 es el superbloque; contiene información crucial acerca de la organización del sistema de archivos, incluido el número de nodos-i, el número de bloques de disco y el principio de la lista de bloques de disco libres (que por lo regular contiene unos

RkJQdWJsaXNoZXIy MjI4NDcx