Me preguntaba si un sistema de archivos en un dispositivo de almacenamiento es parte del sistema operativo.
No lo creo. En cambio, es parte del dispositivo de almacenamiento y existe fuera de cualquier sistema operativo, aunque fue creado por un sistema operativo. ¿Es correcto mi entendimiento?
Sin embargo en Wikipedia :
La mayoría de los sistemas operativos proporcionan un sistema de archivos, ya que un sistema de archivos es una parte integral de cualquier sistema operativo moderno.
Para LVM, ¿es parte del sistema operativo? En caso afirmativo, ¿el sistema de archivos virtual construido en LVM es parte del sistema operativo?
Respuestas:
El sistema de archivos en sí, representado por el orden físico de la información en una representación de almacenamiento, es independiente del sistema operativo. El sistema operativo contiene un controlador que le permite trabajar con el sistema de archivos. Algunos sistemas de archivos solo pueden tener un sistema operativo que puede comunicarse con él, y ese sistema operativo tiene ese sistema de archivos codificado (piense en el sistema de archivos original de Novell NetWare); pero eso no impide que una persona emprendedora escriba ese controlador para otro sistema operativo solo porque sí.
LVM no es un sistema de archivos, es un administrador de volúmenes. Los administradores de volúmenes, como los sistemas de archivos, dependen de los datos almacenados en una presentación de almacenamiento lógico para definir mejor cómo acceder a ese almacenamiento para volúmenes lógicos adicionales. En el caso de LVM, tanto Linux como los BSD pueden usar el mismo formato de almacenamiento para sus respectivas implementaciones de LVM.
El administrador de volúmenes de Windows es el disco dinámico, y algunas personas emprendedoras han creado controladores de Linux para acceder a ellos.
Si tuviera que tomar un conjunto de discos, instalar un Linux de algún tipo, configurarlos con LVM, instalar varios
ext3
sistemas de archivos en los volúmenes lógicos y luego colocar las unidades en una máquina FreeBSD, esa máquina FreeBSD podría leer los discos . Probablemente. Esto se debe a que FreeBSD tiene controladores que comprenden el diseño físico de LVM y ext3, e implementan la memoria requerida en el sistema operativo y las estructuras de acceso necesarias para interactuar con ellos.Los controladores necesarios para interpretar el diseño de almacenamiento casi siempre están "en el sistema operativo", pero el diseño de almacenamiento real en sí mismo no se considera.
fuente
Respondí esto en ServerFault . Aquí está la respuesta nuevamente:
El problema aquí es la palabra "sistema de archivos". En los mundos POSIX / Unix / Linux, se usa para significar varias cosas diferentes.
/
y presentado a los softwares de aplicaciones por el núcleo del sistema operativo. Con este significado, la gente habla de sistemas operativos POSIX que tienen un " árbol de sistema de archivos único ", por ejemplo./usr
sistema de archivos "./proc
".La prosa de Wikipedia significa # 1. Esto es, de hecho, parte del sistema operativo, ya que es un sistema operativo suministrado y una abstracción específica del sistema operativo proporcionada al software de aplicaciones que se ejecuta en el sistema operativo.
Significado # 2 no es parte del sistema operativo. Es una estructura de datos en disco que uno o más sistemas operativos son capaces de comprender. Las estructuras de datos en disco para LVM, específicamente, proporcionan formas de dividir uno o más DASD en uno o más volúmenes. No son parte del sistema operativo per se. (Pero, de manera similar, "LVM" tiene múltiples significados, y puede significar los controladores y utilidades de LVM en el sistema operativo tanto como puede significar las estructuras de datos en disco que esos controladores y utilidades manipulan. Por ejemplo, "Ejecuté LVM desde el disco de rescate ")
Significado # 3 es una abstracción específica del sistema operativo proporcionada por los controladores del sistema de archivos específicos del sistema operativo. Los controladores del sistema de archivos son, de hecho, parte del sistema operativo, aunque generalmente son distintos y están separados del núcleo del sistema operativo .
fuente
Un sistema operativo crea, mantiene y utiliza un sistema de archivos, pero tiene razón al concluir que su representación puede existir independientemente de un sistema operativo.
fuente
No existe una definición formal de "sistema operativo". Algunos solían mantener que el "sistema operativo" y la "API de administración de archivos" eran lo mismo, ya que el sistema operativo no tenía nada más que hacer que proporcionar un analizador de comandos. (Después de todo, esto es todo lo que MS-DOS hizo originalmente).
Siempre he sostenido que DOS no era un sistema operativo real, que el trabajo de un sistema operativo es abstraer y virtualizar el hardware, y administrar los recursos del hardware. DOS esencialmente no hizo nada de eso.
En cuanto a si un sistema de archivos es parte del sistema operativo o una parte del "dispositivo de almacenamiento", mucho depende a su vez de lo que quiere decir con "sistema de archivos". Existe el diseño físico, como el diseño en un disquete o CD, y existe la función del sistema de archivos, que depende de tener alguna entidad inteligente (CPU o procesador periférico de algún tipo) para tomar las tonterías en el disco y devolver como una secuencia significativa de bytes. El diseño presumiblemente se ajusta a algún estándar, por lo que puede, por ejemplo, grabar un CD en un dispositivo y leerlo / reproducirlo en otro. La pregunta es si este diseño es un "sistema de archivos", o si el "sistema" reside en los dispositivos lo suficientemente inteligentes como para leer / escribir el diseño.
En la mayoría de los contextos informáticos, uno usa el término "sistema de archivos" para referirse a las API que le permiten leer / escribir archivos, y la combinación de CPU y dispositivos periféricos, que operan bajo el control de algunos sistemas operativos, que implementan esas API. el término generalmente no se refiere al formato físico de los medios, o medios individuales, ya sean extraíbles o no.
fuente
MSDOS.SYS
, y el shell de la línea de comandos eraCOMMAND.COM
.La implementación particular es parte del sistema operativo. La idea abstracta, las especificaciones y los datos almacenados no lo son.
fuente
Las unidades de disco y los dispositivos de disco son "tontos". Si le solicita un LBA, le devuelve los 512, 2048 o 4096 bytes que contiene; viceversa para escribir.
Una capa de sistema de archivos le permite decir "Quiero c: \ users \ public \ documents \ whatever.doc" y realizar operaciones de transmisión en ese sentido (abrir, leer, escribir, buscar, cerrar): se traduce de ubicaciones direccionables por nombre a una serie de solicitudes para leer / escribir LBA.
Por lo tanto, la capa del sistema de archivos tiene dos lados, uno que se comunica con el dispositivo de disco (o bloque) y el otro lado que se comunica con el sistema operativo. Aquí es donde entra en juego la especificidad del sistema operativo. Por lo general, el lado del dispositivo de bloque del sistema de archivos es un controlador de dispositivo, y el lado del sistema operativo es una API utilizable por las aplicaciones. Pero estas son solo interfaces y realmente no tienen que afectar la operación subyacente de la capa del sistema de archivos.
Todos los sistemas de archivos hacen que se escriban y lean datos adicionales fuera de los datos de los archivos, a fin de realizar un seguimiento de la información sobre los archivos, es decir, registrar permisos, atributos, etc.
Hay un pequeño problema de gallina y huevo con el arranque, ya que los archivos del sistema operativo se almacenan en el sistema de archivos, pero ¿cómo se cargan si la capa del sistema de archivos aún no está activa? Linux resuelve este problema con un disco RAM inicial o incorporando el código del sistema de archivos como parte del núcleo. Windows resuelve este problema dándole al gestor de arranque de Windows la capacidad de leer particiones FAT y NTFS. Los cargadores de arranque pueden ser tontos, como la mayoría de los cargadores de arranque de BIOS clásicos que solo cargan LBA 0 y lo ejecutan y esperan que el código se recupere después, o bastante inteligente y con pequeñas capas de sistema de archivos propias, como UEFI, U-boot, etc.
LVM no es un sistema de archivos. Toma uno o más dispositivos de bloque y lo resume en otro dispositivo de bloque "virtual" (en
/dev/mapper
- cualquier cosa en/dev/mapper
es un dispositivo de bloque virtual). Pones un sistema de archivos "encima" de un LVM de la misma manera que pondrías un sistema de archivos "encima" de una partición. LVM es otra capa entre uno o más controladores de dispositivo y el sistema de archivos, que convierte lecturas y escrituras en LBA en el dispositivo de bloque virtual en uno o más dispositivos de bloque. Sí, un LVM puede ser un dispositivo de bloque virtual y puede tener una cascada de ellos.fuente