Archivos y sistema de archivos
Qué ocurre realmente al guardar un archivo y por qué un inodo no es el nombre del archivo.
Un sistema de archivos organiza bloques de un dispositivo en archivos y directorios con nombre. Un directorio es a su vez un archivo que asocia nombres a números de inodo. El nombre no es el archivo: es una etiqueta que apunta a él.
Un inodo guarda los metadatos del archivo y dónde están sus bloques de datos: tamaño, permisos, marcas de tiempo, punteros a bloques. No guarda el nombre. Por eso un archivo puede tener varios nombres (enlaces duros) y ninguno es «el real».
Leer de disco es miles de veces más lento que la memoria, así que el núcleo mantiene los datos usados recientemente en la caché de páginas. Una lectura repetida puede no tocar el disco en absoluto.
# Путь — это просто имена каталогов, которые ядро проходит шаг за шагом.
# Конкретный ФАЙЛ живёт в inode, а не в имени.
$ ls -i /etc/hosts
42 /etc/hosts # 42 — номер inode
$ ln /etc/hosts /tmp/alias # жёсткая ссылка: +1 имя у ТОГО ЖЕ inode
$ ln -s /etc/hosts /tmp/soft # симлинк: отдельный файл со ссылкой
# Место на диске занимают ДАННЫЕ, а не имя файла.Práctica
Escribes en un archivo y la llamada retorna con éxito. ¿Están los datos en el disco?
Pistas
- ¿Dónde coloca el núcleo las escrituras antes de que lleguen al disco?
- ¿Qué sentido tiene fsync si las escrituras ya llegaran al disco?
12 XP
Ordena los pasos de la lectura de un archivo.
Pistas
- Una ruta es una secuencia de nombres, cada uno resuelto por turno.
- Comprueba el camino rápido antes que el lento.
13 XP
Explica por qué borrar un archivo que otro proceso tiene abierto no libera necesariamente su espacio en disco.
Pistas
- ¿Qué mantiene vivo al inodo: el nombre o algo más?
- Cuenta las referencias, no las entradas del directorio.
13 XP