Является ли файловая система частью операционной системы?

9

Мне было интересно, если файловая система на устройстве хранения является частью ОС?

Я не думаю, что это так. Вместо этого он является частью устройства хранения и существует вне любой ОС, хотя и был создан ОС. Правильно ли мое понимание?

Однако в Википедии :

Большинство операционных систем предоставляют файловую систему, поскольку файловая система является неотъемлемой частью любой современной операционной системы.

Для LVM это часть ОС? Если да, то виртуальная файловая система, построенная на LVM, является частью ОС?

Тим
источник
Поскольку сама ОС находится в файловой системе, я бы сказал, что она является неотъемлемой частью ОС, и никак не обойти ее.
Моав
По вашей причине, не является ли ОС частью файловой системы более подходящей, чем обратная?
Тим
На самом деле я считаю, что файловая система является требованием носителя информации, так как ОС может находиться в памяти без использования жесткого диска или другого устройства хранения.
Моав

Ответы:

10

Сама файловая система, представленная физическим порядком информации в хранилище-представлении, не зависит от ОС. ОС содержит драйвер, который позволяет ей работать с файловой системой. Некоторые файловые системы могут иметь только одну ОС, которая может взаимодействовать с ней, и эта ОС имеет эту файловую систему, жестко закодированную в ней (представьте себе оригинальную файловую систему Novell NetWare); но это не мешает некоторому предприимчивому человеку написать такой драйвер для другой ОС только потому, что.

LVM не файловая система, это менеджер томов. Менеджеры томов, как и файловые системы, полагаются на данные, хранящиеся в логическом представлении хранилища, чтобы дополнительно определить, как получить доступ к этому хранилищу для других логических томов. В случае LVM и Linux, и BSD могут использовать один и тот же формат хранения для своих соответствующих реализаций LVM.

Диспетчер томов Windows - это динамический диск, и некоторые предприимчивые люди создали драйверы Linux для доступа к ним.

Если вам нужно взять набор дисков, установить какой-нибудь Linux, настроить их с помощью LVM, установить несколько ext3файловых систем на логические тома и затем поместить диски в машину FreeBSD, чтобы эта машина FreeBSD могла читать диски , Вероятно. Это связано с тем, что во FreeBSD есть драйверы, которые понимают физическую структуру LVM и ext3 и реализуют необходимую оперативную память и структуры доступа, необходимые для взаимодействия с ними.

Эти драйверы , необходимые для интерпретации макета хранения почти всегда «в ОС», но макет фактического хранения сама по себе не считается.

SysAdmin1138
источник
4

Я ответил на это на ServerFault . Вот ответ снова:

Проблема здесь в слове «файловая система». В мирах POSIX / Unix / Linux это означает несколько разных вещей.

  1. «Файловая система» иногда представляет собой целую систему файлов, основанную на /ядре операционной системы и представленную прикладным программным обеспечением. Под этим значением люди говорят, например, об операционных системах POSIX, имеющих «единое дерево файловых систем ».
  2. «Файловая система» иногда представляет собой один (или несколько) слайс (ов) одного или нескольких устройств хранения данных с прямым доступом или DASD - один или несколько наборов смежных секторов диска, отформатированных как один том с данный формат - в соответствии с какой-либо схемой разбиения диска. С этим значением люди говорят, скажем, о «форматировании моей /usrфайловой системы ».
  3. «Файловая система» иногда представляет собой абстрактное объединяемое дерево файлов и каталогов, представленное драйвером файловой системы (т. Е. Уровнем VFS) для остальной части системы. С этим значением, люди говорят, скажем, «установка ргос файловой системы на /proc».

Проза Википедии имеет значение # 1. Это, действительно, часть операционной системы, так как это поставляемая операционная система и специфичная для операционной системы абстракция, предоставляемая прикладному программному обеспечению, работающему в операционной системе.

Значение # 2 не является частью операционной системы. Это структура данных на диске, которую может понять одна или несколько операционных систем. В частности, структуры данных на диске для LVM обеспечивают способы разбиения одного или нескольких DASD на один или несколько томов. Они не являются частью операционной системы как таковой. (Но, аналогично, «LVM» имеет несколько значений и может означать драйверы и утилиты LVM в операционной системе настолько же, насколько это может означать структуры данных на диске, которыми управляют эти драйверы и утилиты. Например, «Я запускал LVM из спасательный диск. ")

Значение # 3 - это абстракция, специфичная для операционной системы, предоставляемая драйверами файловой системы для конкретной операционной системы. Драйверы файловой системы, действительно, являются частью операционной системы, хотя они обычно отличаются и отделены от ядра операционной системы .

JdeBP
источник
2

Файловая система создается, поддерживается и используется операционной системой, но вы можете сделать вывод, что ее представление может существовать независимо от операционной системы.

Зиан Чой
источник
Все ответы заслуживают внимания, это один из главных вопросов.
conner.xyz
2

Формального определения «операционная система» не существует. Некоторые привыкли утверждать, что «операционная система» и «API управления файлами» - это одно и то же, причем ОС не имеет ничего другого, кроме как предоставить анализатор команд. (В конце концов, это все, что MS-DOS сделал изначально.)

Я всегда утверждал, что DOS не была настоящей операционной системой - задача операционной системы состоит в том, чтобы абстрагировать и виртуализировать оборудование, а также управлять аппаратными ресурсами. DOS по сути ничего этого не делал.

Что касается того, является ли файловая система частью ОС или частью «устройства хранения», многое зависит от того, что вы подразумеваете под «файловой системой». Существует физическая раскладка, такая как раскладка на дискете или компакт-диске, и есть файловая система FUNCTION, которая зависит от наличия некоторого интеллектуального объекта (ЦП или периферийного процессора какого-либо рода), который берет ерунду на диск и возвращает это как значимая последовательность байтов. Макет предположительно соответствует некоторому стандарту, так что вы можете, например, записать CD на одном устройстве и читать / воспроизводить его на другом. Вопрос в том, является ли этот макет «файловой системой» или «система» находится на устройствах, достаточно умных для чтения / записи макета.

В большинстве компьютерных контекстов термин «файловая система» используется для обозначения API-интерфейсов, которые позволяют вам читать / записывать файлы, а также комбинации процессора и периферийных устройств, работающих под управлением некоторых ОС, которые реализуют эти API-интерфейсы. термин обычно не относится к физическому формату носителя или отдельному носителю, независимо от того, является ли он съемным или нет.

Даниэль Р Хикс
источник
Интересные моменты.
Maxpm
Даже в MS-DOS ОС была MSDOS.SYS, а оболочка командной строки была COMMAND.COM.
user1686
1

Конкретная реализация является частью ОС. Абстрактная идея, спецификации и хранимые данные - нет.

user541686
источник
1

Дисководы и дисководоподобные устройства являются «тупыми». Вы запрашиваете его для LBA, он возвращает вам 512, 2048 или 4096 байтов, которые он содержит; наоборот для письма.

Слой файловой системы позволяет вам сказать «Я хочу c: \ users \ public \ documents \ what.doc» и выполнять потоковые операции с ним (открыть, прочитать, записать, найти, закрыть) - он преобразуется из адресно-адресных расположений в серии запросов на чтение / запись LBA.

Таким образом, уровень файловой системы имеет две стороны: одна сторона, которая взаимодействует с дискообразным (или блочным) устройством, и другая сторона, которая взаимодействует с операционной системой. Это где специфичность для операционной системы вступает в игру. Обычно сторона блочного устройства файловой системы - это драйвер устройства, а сторона операционной системы - это API, используемый приложениями. Но это всего лишь интерфейсы, которые не должны влиять на основную работу уровня файловой системы.

Все файловые системы приводят к тому, что дополнительные данные записываются и читаются за пределами файловых данных, чтобы отслеживать информацию о файлах, то есть записывать разрешения, атрибуты и т. Д.

При загрузке возникает небольшая проблема: файлы операционной системы хранятся в файловой системе, но как они загружаются, если уровень файловой системы еще не активен? Linux решает эту проблему с помощью начального RAM-диска или встроением кода файловой системы как части ядра. Windows решает эту проблему, предоставляя загрузчику Windows возможность читать разделы FAT и NTFS. Загрузчики могут быть тупыми, как и большинство классических загрузчиков BIOS, которые загружают только LBA 0 и выполняют его и ожидают, что код получит впоследствии, или достаточно интеллектуальны и имеют собственные небольшие уровни файловой системы, такие как UEFI, U-boot и т. Д.

LVM не является файловой системой. Он берет одно или несколько блочных устройств и абстрагирует их в другое «виртуальное» блочное устройство (в /dev/mapperобщем, /dev/mapperэто виртуальное блочное устройство). Вы помещаете файловую систему «поверх» LVM так же, как вы помещаете файловую систему «поверх» раздела. LVM - это еще один уровень между одним или несколькими драйверами устройств и файловой системой, преобразующий операции чтения и записи в LBA на виртуальном блочном устройстве в одно или несколько других блочных устройств. Да, LVM может быть виртуальным блочным устройством, и вы можете иметь их каскад.

LawrenceC
источник