9

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

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

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

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

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

6 ответов6

9

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

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

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

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

Драйверы, необходимые для интерпретации макета хранилища, почти всегда находятся "в операционной системе", но сама фактическая схема хранилища не считается таковой.

4

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

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

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

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

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

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

2

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

2

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

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

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

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

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 может быть виртуальным блочным устройством, и вы можете иметь их каскад.

1

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .