Файлова система
Файлова система (англ. file system) - Порядок, що визначає спосіб організації, зберігання та іменування даних на носіях інформації. Файлова система визначає формат вмісту та фізичного зберігання інформації, яку прийнято групувати у вигляді файлів. Конкретна файлова система визначає розмір імені файлу (папки), максимальний можливий розмір файлу і розділу, набір атрибутів файлу. Деякі файлові системи надають сервісні можливості, наприклад, розмежування доступу або шифрування файлів.
Файлова система пов'язує носій інформації з одного боку і API для доступу до файлів - з іншого. Коли прикладна програма звертається до файлу, не важливо знати яким чином розташована інформація в конкретному файлі, так само, як і на якому фізичному типі носія (CD, жорсткому диску, магнітній стрічці, блоці флеш-пам'яті і т.д.) він записаний. Все, що потрібно програмі - це ім'я файлу, його розмір і атрибути. Ці дані вона отримує від драйвера файлової системи. Саме файлова система встановлює, де і як буде записаний файл на фізичному носії (наприклад, жорсткому диску).
З точки зору операційної системи, весь диск являє собою набір кластерів (як правило, розміром 512 байт і більше). Драйвери файлової системи організують кластери у файли і каталоги (реально є файлами, що містять список файлів у цьому каталозі). Ці ж драйвери відстежують, які з кластерів в даний час використовуються, які вільні, марковані як несправні.
Однак файлова система не завжди безпосередньо пов'язана з фізичним носієм інформації. Існують віртуальні файлові системи, а також мережеві файлові системи, які є лише способом доступу до файлів, що знаходяться на віддаленому комп'ютері.
В залежності від організації файлів на носії даних, файлові системи можуть поділятись на:
- ієрархічні файлові системи - дозволяють розміщувати файли в каталоги;
- пласкі файлові системи - не використовують каталогів;
- кластерні файлові системи - дозволяють розподіляти файли між кількома однотипними фізичними пристроями однієї машини;
- мережеві файлові системи - забезпечують механізми доступу до файлів однієї машини з інших машин мережі;
- розподілені файлові системи - забезпечують зберігання файлів шляхом їх розподілу між кількома машинами мережі.
Функції файлової системи
Основні функції будь-якої файлової системи націлені на вирішення наступних завдань:
- іменування файлів;
- програмний інтерфейс роботи з файлами для програм;
- відображення логічної моделі файлової системи на фізичну організацію сховища даних;
- організація стійкості файлової системи до збоїв живлення, помилок апаратних і програмних засобів;
- зміст параметрів файлу, необхідних для правильного його взаємодії з іншими об'єктами системи (ядро, програми та ін.)
У багатокористувацьких системах з'являється ще одне завдання: захист файлів одного користувача від несанкціонованого доступу іншого користувача, а також забезпечення спільної роботи з файлами, наприклад, при відкритті файлу одним з користувачів, для інших цей же файл тимчасово буде доступний в режимі "тільки читання".
Класифікація файлових систем
За призначенням файлові системи можна класифікувати на нижченаведені категорії.
- Для носіїв з довільним доступом (наприклад, жорсткий диск): FAT32, HPFS, ext2 ... Оскільки доступ до дисків в рази повільніше, ніж доступ до оперативної пам'яті, для приросту продуктивності в багатьох файлових системах застосовується асинхронний запис змін на диск. Для цього застосовується або журналювання (ext3, ReiserFS, JFS, NTFS, XFS), або механізм soft updates. Журналювання широко поширене в Linux, та в NTFS. Soft updates - в BSD системах.
- Для носіїв з послідовним доступом (наприклад, магнітні стрічки): QIC та інші.
- Для оптичних носіїв - CD і DVD : ISO9660, HFS, UDF.
- Віртуальні файлові системи: AEFS та інші.
- Мережеві файлові системи: NFS, CIFS, SSHFS, GmailFS та інші.
- Для флеш-пам'яті: YAFFS, ExtremeFFS, exFAT.
Трохи випадають із загальної класифікації спеціалізовані файлові системи: ZFS (власне файлової системою є тільки частина ZFS), VMFS (так звана кластерна файлова система, яка призначена для зберігання інших файлових систем) та інші.
Відомі файлові системи
Minx - стара файлова система, обмежена у своїх можливостях (у файлів відсутні деякі тимчасові параметри, довжина имені файлу не перевищує 30 символів) і доступних об'ємах (максимум 64 Мбайт на одну файлову систему).
Xia - модифікована версія системи пгпшх, в якій збільшена максимальна довжина імені файлу і розмір файлової системи.
Ext - попередня версія системи Ехt2. Нині практично не зустрічається.
Ext2 - найбільш багата функціональними можливостями файлова система Linux. До останнього часу була найпопулярнішою системою.
Ext3 - модернізація файлової системи Ехt2. Окрім деяких функциональных розширень являється журналируемой. Набула широкого поширення.
Ext4 - модернізація файлової системи Ехt3. Основною особливістю стало збільшення максимального об'єму одного розділу диска до 1 экса- байта (260байт). Крім того, в ехt4 представлений механізм пространственний запису файлів (нова інформація додається в кінець заздалегідь вbдsленної по сусідству області файлу), що зменшує фрагментацію і що підвищує продуктивність.
VFS - віртуальна файлова система. По суті - емулятор-прошарок між реальною файловою системою (МЗ-ЭОЗ, Ехt2) і ядром операційної системи Linux.
Proc - псевдофайлова система, в якій за допомогою звичайних файловых операцій надається доступ до деяких параметрів і функциям ядра операційної системи.
ReiserFS - журналируемая файлова система. Найбільш популярна среди журналируемых файлових систем для Linux.
Devfs - псевдофайлова система, в якій за допомогою звичайних файловых операцій надається доступ до пристроїв комп'ютера. Позволяет дуже гнучко працювати і конфігурувати пристрої і взаимодействие з ОС.
msdos - забезпечує сумісність з системою MS - DOS.
umsdos - розширює можливості драйвера файлової системи MS - DOS для Linux таким чином, що в Linux з'являється можливість роботи з іменами файлів нестандартної довжини, перегляду прав доступу до файлу, посилань, імені користувача, якому належить файл, а також оперирования з файлами пристроїв. Це дозволяє використовувати (емулювати) файлову систему Linux на файловій системі MS - DOS.
iso9660 - стандартна файлова система для CD - ROM.
xenix - файлова система Xenix.
sysv - файлова система System V (версія для х86).
Nfs - мережева файлова система, що забезпечує розподіл одній файловой системи між декількома комп'ютерами для надання доступу до її файлів з усіх машин по мережі.
NTFS - забезпечує доступ до розділів, створеним Windows. Підтримує систему метаданих і використовує спеціалізовані структури даних для зберігання інформації про файли для поліпшення продуктивності, надійності і ефективності використання дискового простору. NTFS має вбудовані можливості розмежовувати доступ до даних для різних користувачів і груп користувачів, а також призначати квоти (обмеження на максимальний обсяг дискового простору, займаний тими чи іншими користувачами). NTFS використовує систему журналювання для підвищення надійності файлової системи.
FAT 16 — стандарт файлової системи, попередник FAT32. Підтримує максимальний розмір розділу — 2 гігабайти. Має кореневий каталог фіксованого розміру (512 записів). При розмірі розділу понад 512 мегабайт не економно використовує місце на диску через великий розмір кластера.
FAT32 — ця файлова система підтримує томи (логічні диски) обсягом до 8 ТБ і використовує для зберігання файлів менші фрагменти диска, ніж файлова система FAT16. Файлова система FAT32 не підтримує диски, менші за 512 МБ