¿Es un sistema de archivos solo el diseño de carpetas?

56

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?

P_Q
fuente
3
¿Has intentado leer en.wikipedia.org/wiki/Filesystem ?
choroba
2
Para su información, no existe un "sistema de archivos Linux". Lo que el libro quería decir es el árbol de directorios de Linux. Y sí, el árbol de directorios es solo el diseño de las carpetas.
user606723
2
Linux carece del concepto de unidades , de modo que todo está montado debajo /. 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.
nuevo123456
1
@ new123456 Siéntete corregido. Windows admite el montaje (desde W2k o NT), aunque la característica se usa muy raramente.
kubanczyk

Respuestas:

130

¿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:

  • Algunos sectores de encabezado al principio, como ID de volumen y Sectores reservados
  • Dos tablas de asignación de archivos, que nos permiten descubrir dónde están nuestros archivos.
  • Clusters que contienen todos nuestros directorios y datos de archivos.
  • Un espacio muy pequeño sin usar que no podemos usar.

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

ingrese la descripción de la imagen aquí

¿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

Tamara Wijsman
fuente
@Shadok: Podría mejorar las secciones posteriores más adelante, aunque estoy bastante ocupado en estos días ... Gracias.
Tamara Wijsman
2
Haría +2 esto si pudiera. Ahora, ¿por qué no se pueden ver más documentos y especificaciones así?
greatwolf
Tal vez deberías escribir una publicación de blog sobre esto @TomWijsman ;-)
Ivo Flipse
@IvoFlipse: A "Almacenamiento de datos: ¿Cómo funciona?" serie podría ser posible, aquí hay otra respuesta . Las fotos de Big & $ # dicen más que palabras ... :)
Tamara Wijsman
Definitivamente, suena como una buena idea
Ivo Flipse
14

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 de D:\ representar la raíz de, por ejemplo, su unidad óptica (CD / DVD / BR), puede montarla en su C:\Opticallugar. 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 /procy 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.

afrazier
fuente
2
Tenga en cuenta que es fácil confundir un sistema de archivos con el diseño del directorio desde la perspectiva del usuario. Si bien el término sistema de archivos realmente tiene la intención de parecerse a lo interno de un sistema de archivos; p.ej. la diferencia entre FAT y NTFS, así como las diferencias entre ext2 y ext3 ...
Tamara Wijsman
44
@Tom: Parece que el OP realmente pregunta sobre las diferencias en las diversas jerarquías de objetos entre Linux y Windows en lugar de cómo se distribuyen los bits en el disco. udev, procfs, sysfs, tmpfs, etc. son sistemas de archivos tanto como ext2 o NTFS en Linux, a pesar de que no implican cosas en el disco.
Afrazier
Esa es solo una parte de su pregunta "¿Es un sistema de archivos solo el diseño de carpetas?", La forma en que responde la pregunta solo lo hace más confuso y no aborda esa pregunta. Por lo tanto, dejé un aviso para los lectores ...
Tamara Wijsman
+1 para "todo es un archivo" en Linux. Esta es la gran diferencia entre Linux y Windows para mí.
Rabarberski
3

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.

choroba
fuente
3

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

  • FAT y NTFS (Windows, NTFS es estándar en las versiones más recientes de Windows)
  • ext3 y ext4 (Linux)
  • HFS plus (OS X)
  • ISO 9660 y UDF (CD, DVD y Blu-Ray)

Ver Wikipedia para una comparación de sistemas de archivos .

jg-faustus
fuente