¿Cómo se cambia una ruta de archivo a la dirección de sus datos en discos? ¿Qué es responsable de este proceso?

Gracias por A2A.

Me atendré a los discos duros, aunque las reglas básicas se aplican también a los disquetes.

Originalmente, los discos duros tenían un formato de bajo nivel para escribir pistas y sectores pero, por lo demás, no contenían datos. El disco estaba listo para que el sistema operativo lo formatee, lo que incluiría “Buscar tablas” para la dirección de inicio física de cada archivo.

Era una práctica común que el número de sectores (como porciones de pastel) fuera el mismo para cada pista. (Algunos de los primeros sistemas Floppy usaban husillos de velocidad variable para que hubiera menos sectores en el centro y más sectores en el exterior, optimizando la cantidad de datos que podrían almacenarse).

No entraré en detalles completos del sistema de archivos, ya que esa es la respuesta en sí misma que se puede encontrar en Wikipedia. Cuando desea leer un archivo, la computadora lee la zona “catálogo” (Apple) [conversación] para buscar nombres de carpetas y nombres de archivos en el directorio raíz, que generalmente comenzará en la misma ubicación en cada disco. Si el archivo está en una carpeta (o directorio), entonces el sistema operativo tiene que leer la carpeta desde el nivel raíz para encontrar la dirección de la lista del directorio, que generalmente tendrá la forma de Head, Track, Sector. Esta dirección se alimenta al controlador de la unidad que moverá las cabezas a la Pista seleccionada y esperará a que el Sector seleccionado pase por debajo de la Cabeza seleccionada. Al repetir esto varias veces, se pueden rastrear varias capas de carpeta / directorio hasta que se identifique la ubicación física del inicio del Archivo. Si el sistema operativo tiene la capacidad, gran parte de esta información de seguimiento se almacena en la RAM para que sea más rápido localizar un archivo determinado.

Este sistema fue bastante consistente en los primeros días de los discos duros para el consumidor que dependían de una tarjeta controladora y de discos duros controlados analógicamente. Las primeras unidades que aparecieron en el mercado de consumo que incorporaron el controlador directamente en el disco duro (Integrated Disc Electronics) fue el disco duro SCSI utilizado por Apple Macintosh. Cuando salió la versión paralela solo se llamaba IDE. A medida que las capacidades de la unidad comenzaron a aumentar y el Sistema Operativo no pudo manejar ciertos factores, se introdujo el direccionamiento de bloque lógico. Esto significaba que la arquitectura física del HDD podría ser radicalmente diferente de lo que vio el sistema operativo. Si el recuento de pistas era demasiado alto, las cabezas falsas permitían que el sistema operativo leyera las pistas inaccesibles.

La mayoría de los discos duros modernos tienen un solo plato con dos cabezales, aunque la geometría presentada al sistema operativo puede ser de 16 (o más) cabezales. Además, debido a que el controlador está completamente integrado con la mecánica, el formato de bajo nivel se realiza en la fábrica, y la cantidad de sectores en cada pista puede variar, nuevamente, para optimizar el espacio de almacenamiento, excepto que el sistema operativo nunca lo ve. Todavía utiliza el direccionamiento físico de un sistema de sector fijo y el controlador clasifica el resto.

Como he señalado en otras respuestas, la densidad de datos de los discos HDD ha cruzado el punto de confiabilidad y casi todos los datos escritos seguramente tendrán errores cuando se vuelvan a leer. Nuevamente, basado en los sistemas más antiguos, el sistema operativo incluye una cierta cantidad de información adicional para propósitos de corrección de errores, pero no es adecuado para el nivel conocido de fallas en un nuevo HDD. Por lo tanto, el controlador escribe información adicional de corrección de errores para que pueda leer y corregir antes de devolver los datos al sistema operativo.

Entonces, cuando el sistema operativo quiere abrir el archivo “\ documents \ private \ letterhead.doc”, va al listado del directorio raíz que comienza en Head 0, Track 4, Sector 0 para encontrar dónde comienza la lista del directorio “documentos”, digamos Head 0, Track 56, Sección 15. Luego lee la lista del directorio “documentos” para encontrar dónde comienza “privado”, por ejemplo Head 0, Track 128, Sector 12. Luego lee la lista del directorio “privado” para encontrar dónde está el archivo “Letterhead.doc” comienza, diga Head 1, Track 42, Sector 19. Luego lee ese archivo en la aplicación que lo solicita.

Nota: debido a que el seguimiento de cada sector en un disco duro puede ocupar demasiada memoria, los sectores a menudo se agrupan en clústeres. La cantidad de sectores por clúster se calcula para equilibrar la memoria requerida para el seguimiento frente a la cantidad de espacio no utilizado debido a los archivos pequeños. Es por eso que un atajo en el escritorio ocupará 1kB de espacio en disco, aunque la información real sea mucho menor.

Si comienza con este artículo de Wikipedia, puede leer cómo los diferentes sistemas de archivos (como FAT versus NTFS) manejan la “información del encabezado” que permite que un Sistema Operativo encuentre un archivo en particular: Sistema de archivos

Hola,

Gracias por tu pregunta

Para empezar, un fabricante particular suministra un disco en un estado sin formato. En aras de esta discusión, voy a limitar el alcance a los sistemas de archivos locales en un solo disco magnético en una sola máquina. De lo contrario, estaremos aquí por un tiempo.

El acto de instalar un sistema operativo en el disco provoca un proceso llamado formateo. Un sistema de archivos generalmente se escribe en el disco en este momento. Esto organiza el disco en pistas y sectores.

Esencialmente, el administrador de almacenamiento del sistema operativo es responsable de realizar un seguimiento de cómo se hace referencia a los datos en el disco. Sin embargo, diferentes proveedores de sistemas operativos han desarrollado diferentes enfoques y estrategias sobre cómo se leen, escriben, eliminan, modifican, etc., los datos en el sistema de archivos de un disco. Lamentablemente, “lo que es responsable de este proceso” depende de cada caso. Como lo indicaron los encuestados anteriores, cómo NTFS (un ejemplo de un sistema de archivos de Microsoft) hace esto versus cómo EXT3 (un ejemplo de un sistema de archivos de Linux) hace esto es diferente.

Lo que es similar es que estos sistemas operativos, a su vez, se comunican con un controlador de dispositivo de bajo nivel que luego se comunica con el controlador de disco en su idioma (por ejemplo, ATA) y la operación se realiza físicamente en el disco.

Recomendaría buscar en Google lo siguiente para obtener más información.

Sistemas de archivos – OSDev Wiki

Sistemas de archivos – Estructuras y algoritmos por Thomas R Harbron

Buena suerte y espero que esto haya ayudado.

A2A: Esa es una capacidad fundamental del sistema operativo. Normalmente no accedería directamente a él, pero ocurre automáticamente porque realizó alguna operación con respecto al directorio o archivo especificado por dicha ruta. Los detalles de cómo se complica el sistema operativo, ya que implica la manipulación de cadenas de texto en el nivel superior, el acceso al dispositivo físico en el nivel inferior y varios índices (o tablas de búsqueda) en el medio. Si realmente quiere aprender más sobre esto, haga una búsqueda en “implementación del sistema de archivos”. Esté preparado para aprender mucho sobre los sistemas operativos en general. Demasiado para una respuesta en Quora.

El sistema operativo proporciona funciones en su API para manipular rutas de archivos y examinar el contenido de un directorio señalado por uno.

Cada dispositivo de almacenamiento tiene un esquema de direccionamiento asociado. En el caso de un dispositivo de acceso aleatorio, que es la mayoría de los dispositivos de almacenamiento utilizados hoy (disco flash SSD, HDD, etc.), el siguiente artículo ofrece una explicación muy buena y detallada de cómo funciona el sistema de archivos NTFS

https://technet.microsoft.com/en-us/library/cc781134(v=ws.10) .aspxLocal File Systems

Ese sería el sistema de archivos.

Para sistemas similares a UNIX, un directorio es un archivo especial que contiene como mínimo un nombre y un número de inodo. El número de inodo es el índice del encabezado del archivo (llamado inodo).

La ruta del archivo inicia el proceso en el directorio raíz. El archivo de directorio que representa el directorio raíz se lee buscando la entrada que coincide con la primera entrada en la ruta.

Luego se abre el número de inodo asociado con ese nombre (si es un directorio), y se lee ese archivo, buscando el siguiente nombre en la ruta. El archivo se lee buscando el siguiente nombre que coincida. Repita hasta que se identifique el número de inodo de la última entrada en la ruta. El número de inodo asociado con el nombre es el archivo a procesar.

En muchos sistemas similares a UNIX, este proceso es la función “namei” (nombre a inodo) que realiza la traducción.