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:\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.