He usado Windows desde la infancia, y cuando escucho la frase "sistema de archivos de Windows" pienso en directorios (carpetas) dentro de directorios, una carpeta llamada SYSTEM, una carpeta llamada PROGRAM FILES, etc. ¿Es esto lo que es el sistema? ¿Solo el diseño de las carpetas?
Y luego, recientemente comencé a usar Linux, y mi libro de referencia dice que en el sistema de archivos de Linux todo comienza en la raíz y se ramifica desde allí. ¿Cómo es eso realmente diferente de Windows? Quiero decir, parece que el sistema Linux y el sistema Windows son solo dos formas de configurar un árbol de directorios. ¿Es esto lo que significa el sistema de archivos?
/
. En Windows, este no es el caso, ya que carece de montaje estilo UNIX (corrígeme si me equivoco aquí), por lo que todo está organizado en torno a las unidades.Respuestas:
¿Solo el diseño de las carpetas?
Suena demasiado bueno para ser verdad...
Tomemos el sistema de archivos FAT32 como ejemplo. Puedo instalar Windows XP en él, pero también puedo usarlo en una tarjeta de memoria. En una tarjeta de memoria, no tiene esas carpetas que resume.
Entonces ... No confunda el diseño del directorio de una familia de sistemas operativos con un sistema de archivos.
¿Es esto lo que significa un sistema de archivos?
No ... Se refiere a los bits y bytes subyacentes que hacen que la estructura de su directorio funcione.
Los bits y bytes subyacentes? ¡Muéstrame FAT32!
Veamos cómo se ve FAT32 , tiene:
Una tabla FAT consta de muchas entradas que se ven así, lo que nos permite determinar dónde se almacena el directorio o archivo en el espacio de clústeres, así como algunos atributos y tamaño.
Una entrada de directorio apuntaría a una lista de entradas de directorio / archivo ...
En el espacio de clústeres, ahora podemos recorrer nuestros clústeres para encontrar los datos que necesitamos. Un clúster esencialmente contiene datos e información donde se encuentran los siguientes fragmentos
¿Hay otros sistemas de archivos diferentes? ¡Muéstrame NTFS!
Voy a mostrarle una imagen para que pueda notar las diferencias, el resto es tarea para el lector: se puede encontrar más información en este archivo del blog o en Google.
La idea principal es que NTFS es una gran mejora sobre FAT32 que es más robusta / eficiente. Tener una mejor idea del espacio (no) usado utilizando un mapa de bits para ayudar aún más contra la fragmentación. Y así...
- http://thinkdifferent.typepad.com/photos/uncategorized/04ntfsfilesystem.png
¿Qué pasa con los sistemas de archivos en Linux? Muéstrame ext2 / 3!
La idea es que ext2 / ext3 use superbloques e inodos; esto permite enlaces suaves y rígidos, directorios que son archivos, archivos con múltiples nombres, etc. La esencia principal es abstraerse para permitir que el sistema de archivos sea capaz de hacer más cosas meta-ish ...
- http://thinkdifferent.typepad.com/photos/uncategorized/03extfilesystem.png
fuente
La gran diferencia entre Linux y Windows, al menos cuando se trata de sus sistemas de archivos y árboles de directorios, es que en Linux "todo es un archivo", y todo desciende de una sola raíz. Esto también se aplica a casi todos los sistemas operativos derivados de Unix como BSD, OS X, Solaris, etc., pero voy a decir "Linux" para que sea genérico (si no del todo exacto).
Pero, ¿qué significa eso en la práctica?
Windows permite múltiples raíces con nombre para sus sistemas de archivos. Entiende esto como letras de unidad:
C: D: E:
y así sucesivamente. Cada uno tiene una raíz (\
) y un árbol que desciende de ella. Las versiones recientes de Windows permiten cosas como puntos de montaje de volumen, donde un volumen (lo que consideraría una partición) se puede montar en una carpeta vacía existente. Entonces, en lugar deD:
\ representar la raíz de, por ejemplo, su unidad óptica (CD / DVD / BR), puede montarla en suC:\Optical
lugar. Esto es más similar a lo que hace Linux. También hay un espacio de nombres de objeto subyacente, de raíz única, para todo en Windows similar a lo que Linux usa y es administrado por Object Manager , pero la mayoría de los usuarios rara vez lo ven referenciado ya que es principalmente para uso del núcleo.Linux tiene una sola raíz:
/
. Todo desciende de él, y no necesariamente tiene que representar su disco duro. Discos duros, unidades ópticas, tarjetas de memoria, recursos compartidos de red, impresoras, escáneres, CPU, RAM, procesos, ... todo está representado en algún lugar dentro de este espacio de nombres único, y se puede acceder mediante cualquier proceso con API de administración de archivos estándar, suponiendo que tenga Un nivel de acceso suficientemente alto. El hecho de que pueda leer o escribir en él no significa que sea un archivo en su disco duro en Linux. Por ejemplo, los dispositivos suelen estar montados/dev
, por lo que acceder a cosas allí a menudo significa que está hablando con un dispositivo, tal vez sea la tarjeta de sonido, un escáner, una cámara, etc. Estos se conocen como archivos de dispositivo . Procfses un "sistema de archivos" especial que normalmente está montado/proc
y tiene un "directorio" para cada proceso en ejecución, con archivos en cada directorio relacionados con cosas como la línea de comando utilizada para invocar ese proceso, mapas de memoria, archivos abiertos, etc. Sysfs es otro sistema de archivos especial (montado en/sys
) utilizado para exponer una gran cantidad de información sobre los objetos del núcleo en ejecución y también se puede utilizar para ajustar el núcleo en ejecución simplemente escribiendo en un archivo en particular.fuente
El sistema de archivos no solo se trata de cómo se configura un árbol de directorios, sino también de cómo esta información se codifica en los medios. Hay varios sistemas de archivos para Linux: ext3, xfs, raiserfs, etc.
fuente
Puede pensar en los sistemas de archivos como formatos diferentes para almacenar archivos y carpetas, algo análogo a cómo MS Word y PDF son formatos diferentes para almacenar documentos, o MP3 y WAV son formatos diferentes para almacenar audio.
Dados algunos archivos y carpetas, el sistema de archivos es el formato y el código que los almacena en el disco para que puedan volver a leerse.
Y al igual que no todos los reproductores de video pueden reproducir todos los formatos de video, no todos los sistemas operativos pueden leer todos los sistemas de archivos. Por ejemplo, si almacena un archivo de Linux en una memoria USB con formato ext3, Windows no puede leer el archivo ya que no sabe cómo manejar el sistema de archivos ext3.
Los sistemas de archivos comunes incluyen
Ver Wikipedia para una comparación de sistemas de archivos .
fuente