El título de la pregunta es: ¿Por qué necesitamos montar en Linux?
Una forma de interpretar esta pregunta: ¿Por qué necesitamos emitir mount
comandos explícitos para que los sistemas de archivos estén disponibles en Linux?
La respuesta: nosotros no.
No necesita montar sistemas de archivos explícitamente, puede hacer los arreglos para que se haga automáticamente, y las distribuciones de Linux ya lo hacen para la mayoría de los dispositivos, al igual que Windows y Macs.
Entonces eso probablemente no sea lo que querías preguntar.
Una segunda interpretación: ¿Por qué a veces necesitamos emitir mount
comandos explícitos para que los sistemas de archivos estén disponibles en Linux? ¿Por qué no hacer que el sistema operativo siempre lo haga por nosotros y ocultarlo al usuario?
Esta es la pregunta que estoy leyendo en el texto de la pregunta, cuando preguntas:
¿Por qué no omitir el montaje por completo y hacer lo siguiente?
ls /dev/cdrom
y tiene el contenido del CD-ROM en la lista?
Presumiblemente, quieres decir: ¿por qué no hacer que ese comando haga lo que
ls /media/cdrom
hace ahora?
Bueno, en ese caso, /dev/cdrom
sería un árbol de directorios, no un archivo de dispositivo. Entonces, su verdadera pregunta parece ser: ¿por qué tener un archivo de dispositivo en primer lugar?
Me gustaría agregar una respuesta a las ya dadas.
¿Por qué los usuarios pueden ver los archivos del dispositivo?
Siempre que use un CD-ROM o cualquier otro dispositivo que almacene archivos, se utiliza un software que interpreta lo que está en su CD-ROM como un árbol de directorios de archivos. Se invoca cada vez que utiliza ls
o cualquier otro tipo de comando o aplicación que accede a los archivos en su CD-ROM. Ese software es el controlador del sistema de archivos para el sistema de archivos particular utilizado para escribir los archivos en su CD-ROM. Siempre que enumere, lea o escriba archivos en un sistema de archivos, el trabajo de ese software es asegurarse de que las operaciones de lectura y escritura de bajo nivel correspondientes se realicen en el dispositivo en cuestión. Cada vez que tiene mount
un sistema de archivos, le está diciendo qué controlador de sistema de archivos debe usar para el dispositivo. Si haces esto explícitamente con unmount
comando, o dejar que el sistema operativo se haga automáticamente, será necesario hacerlo y, por supuesto, el software del controlador del sistema de archivos deberá estar allí en primer lugar.
¿Cómo hace un trabajo un controlador de sistema de archivos? La respuesta: lo hace leyendo y escribiendo en el archivo del dispositivo. ¿Por qué? La respuesta, como ya dijiste: Unix fue diseñado de esta manera. En Unix, los archivos de dispositivos son la abstracción común de bajo nivel para dispositivos. Se supone que el software realmente específico del dispositivo (el controlador del dispositivo) para un dispositivo particular implementa la apertura, cierre, lectura y escritura en el dispositivo como operaciones en el archivo del dispositivo. De esa manera, el software de nivel superior (como un controlador de sistema de archivos) no necesita saber tanto sobre el funcionamiento interno de los dispositivos individuales. Los controladores de dispositivo de bajo nivel y los controladores del sistema de archivos pueden ser escritos por separado, por diferentes personas, siempre que estén de acuerdo en una forma común de interactuar entre sí, y para eso están los archivos del dispositivo.
Por lo tanto, los controladores del sistema de archivos necesitan los archivos del dispositivo.
Pero, ¿por qué nosotros, los usuarios comunes, podemos ver los archivos del dispositivo? La respuesta es que Unix fue diseñado para ser utilizado por programadores de sistemas operativos. Fue diseñado para permitir a sus usuarios escribir controladores de dispositivo y controladores de sistema de archivos. De hecho, así es como se escriben.
Lo mismo es cierto para Linux: puede escribir su propio controlador de sistema de archivos (o controlador de dispositivo), instalarlo y luego usarlo. Hace que Linux (o cualquier otra variante de Unix) sea fácilmente extensible (y de hecho es la razón por la que se inició Linux): cuando aparece una nueva pieza de hardware en el mercado, o se diseña una nueva forma más inteligente de implementar un sistema de archivos , alguien puede escribir el código para admitirlo, hacerlo funcionar y contribuir a Linux.
Los archivos del dispositivo lo hacen más fácil.