Мне было интересно, если файловая система на устройстве хранения является частью ОС?
Я не думаю, что это так. Вместо этого он является частью устройства хранения и существует вне любой ОС, хотя и был создан ОС. Правильно ли мое понимание?
Однако в Википедии :
Большинство операционных систем предоставляют файловую систему, поскольку файловая система является неотъемлемой частью любой современной операционной системы.
Для LVM это часть ОС? Если да, то виртуальная файловая система, построенная на LVM, является частью ОС?
Ответы:
Сама файловая система, представленная физическим порядком информации в хранилище-представлении, не зависит от ОС. ОС содержит драйвер, который позволяет ей работать с файловой системой. Некоторые файловые системы могут иметь только одну ОС, которая может взаимодействовать с ней, и эта ОС имеет эту файловую систему, жестко закодированную в ней (представьте себе оригинальную файловую систему Novell NetWare); но это не мешает некоторому предприимчивому человеку написать такой драйвер для другой ОС только потому, что.
LVM не файловая система, это менеджер томов. Менеджеры томов, как и файловые системы, полагаются на данные, хранящиеся в логическом представлении хранилища, чтобы дополнительно определить, как получить доступ к этому хранилищу для других логических томов. В случае LVM и Linux, и BSD могут использовать один и тот же формат хранения для своих соответствующих реализаций LVM.
Диспетчер томов Windows - это динамический диск, и некоторые предприимчивые люди создали драйверы Linux для доступа к ним.
Если вам нужно взять набор дисков, установить какой-нибудь Linux, настроить их с помощью LVM, установить несколько
ext3
файловых систем на логические тома и затем поместить диски в машину FreeBSD, чтобы эта машина FreeBSD могла читать диски , Вероятно. Это связано с тем, что во FreeBSD есть драйверы, которые понимают физическую структуру LVM и ext3 и реализуют необходимую оперативную память и структуры доступа, необходимые для взаимодействия с ними.Эти драйверы , необходимые для интерпретации макета хранения почти всегда «в ОС», но макет фактического хранения сама по себе не считается.
источник
Я ответил на это на ServerFault . Вот ответ снова:
Проблема здесь в слове «файловая система». В мирах POSIX / Unix / Linux это означает несколько разных вещей.
/
ядре операционной системы и представленную прикладным программным обеспечением. Под этим значением люди говорят, например, об операционных системах POSIX, имеющих «единое дерево файловых систем »./usr
файловой системы »./proc
».Проза Википедии имеет значение # 1. Это, действительно, часть операционной системы, так как это поставляемая операционная система и специфичная для операционной системы абстракция, предоставляемая прикладному программному обеспечению, работающему в операционной системе.
Значение # 2 не является частью операционной системы. Это структура данных на диске, которую может понять одна или несколько операционных систем. В частности, структуры данных на диске для LVM обеспечивают способы разбиения одного или нескольких DASD на один или несколько томов. Они не являются частью операционной системы как таковой. (Но, аналогично, «LVM» имеет несколько значений и может означать драйверы и утилиты LVM в операционной системе настолько же, насколько это может означать структуры данных на диске, которыми управляют эти драйверы и утилиты. Например, «Я запускал LVM из спасательный диск. ")
Значение # 3 - это абстракция, специфичная для операционной системы, предоставляемая драйверами файловой системы для конкретной операционной системы. Драйверы файловой системы, действительно, являются частью операционной системы, хотя они обычно отличаются и отделены от ядра операционной системы .
источник
Файловая система создается, поддерживается и используется операционной системой, но вы можете сделать вывод, что ее представление может существовать независимо от операционной системы.
источник
Формального определения «операционная система» не существует. Некоторые привыкли утверждать, что «операционная система» и «API управления файлами» - это одно и то же, причем ОС не имеет ничего другого, кроме как предоставить анализатор команд. (В конце концов, это все, что MS-DOS сделал изначально.)
Я всегда утверждал, что DOS не была настоящей операционной системой - задача операционной системы состоит в том, чтобы абстрагировать и виртуализировать оборудование, а также управлять аппаратными ресурсами. DOS по сути ничего этого не делал.
Что касается того, является ли файловая система частью ОС или частью «устройства хранения», многое зависит от того, что вы подразумеваете под «файловой системой». Существует физическая раскладка, такая как раскладка на дискете или компакт-диске, и есть файловая система FUNCTION, которая зависит от наличия некоторого интеллектуального объекта (ЦП или периферийного процессора какого-либо рода), который берет ерунду на диск и возвращает это как значимая последовательность байтов. Макет предположительно соответствует некоторому стандарту, так что вы можете, например, записать CD на одном устройстве и читать / воспроизводить его на другом. Вопрос в том, является ли этот макет «файловой системой» или «система» находится на устройствах, достаточно умных для чтения / записи макета.
В большинстве компьютерных контекстов термин «файловая система» используется для обозначения API-интерфейсов, которые позволяют вам читать / записывать файлы, а также комбинации процессора и периферийных устройств, работающих под управлением некоторых ОС, которые реализуют эти API-интерфейсы. термин обычно не относится к физическому формату носителя или отдельному носителю, независимо от того, является ли он съемным или нет.
источник
MSDOS.SYS
, а оболочка командной строки былаCOMMAND.COM
.Конкретная реализация является частью ОС. Абстрактная идея, спецификации и хранимые данные - нет.
источник
Дисководы и дисководоподобные устройства являются «тупыми». Вы запрашиваете его для 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 может быть виртуальным блочным устройством, и вы можете иметь их каскад.источник