Дискові накопичувачі та пристрої, схожі на дискові пристрої, "німі". Ви запитуєте його для LBA, він повертає 512, 2048 або 4096 байт, які він містить; навпаки для написання.
Шар файлової системи дозволяє вам сказати "Я хочу c: \ users \ public \ документи \ what.doc" та виконувати потокові операції на цьому (відкривати, читати, писати, шукати, закривати) - він перекладається з місць, адресованих іменами, у ряд запитів на читання / запис LBA.
Отже, рівень файлової системи має дві сторони - ту сторону, яка спілкується з пристроєм, подібним до дискового (або блокового), та іншу сторону, яка спілкується з операційною системою. Саме тут вступає в дію специфіка операційної системи. Зазвичай сторона блокової пристрої файлової системи є драйвером пристрою, а сторона операційної системи - API, який можна використовувати додатками. Але це лише інтерфейси і насправді не повинні впливати на базову роботу шару файлової системи.
Усі файлові системи спричиняють записування додаткових даних і зчитування зовнішніх даних файлів, щоб відслідковувати інформацію про файли, тобто записувати дозволи, атрибути тощо.
Проблема із завантаженням є курячим і яєчним - оскільки файли операційної системи зберігаються у файловій системі, але як вони завантажуються, якщо шар файлової системи ще не активний? Linux вирішує цю проблему або з початковим оперативним диском, або за допомогою вбудованого коду файлової системи як частини ядра. Windows вирішує цю проблему, надаючи завантажувачу Windows можливість читати розділи FAT і NTFS. Завантажувачі можуть бути тупими, як і більшість класичних завантажувачів BIOS, які завантажують лише LBA 0 і виконують його, і очікують, що цей код згодом підбере, або досить розумний і з невеликими власними шарами файлової системи, такими як UEFI, U-boot тощо.
LVM не є файловою системою. Він бере один або кілька блокових пристроїв і абстрагує його на інший "віртуальний" блок пристрою (в /dev/mapper
- все, що /dev/mapper
є, це віртуальний блок пристрою). Ви ставите файлову систему «поверх» LVM так само, як і файлову систему «поверх» розділу. LVM - це ще один рівень між одним або декількома драйверами пристроїв та файловою системою, який перетворює зчитування та запис у LBA на пристрої віртуального блоку до одного або декількох інших блокових пристроїв. Так, LVM може бути пристроєм віртуального блоку, і ви можете мати їх каскад.