У цій статті не вистачає посилань на джерела інформації.
Файлова система пов'язує носій інформації з одного боку і API для доступу до файлів - з іншого. Коли прикладна програма звертається до файлу, вона не має жодного уявлення про те, яким чином розташована інформація в конкретному файлі, так само, як і на якому фізичному типі носія (CD. Жорсткому диску. Магнітній стрічці. Блоці флеш-пам'яті або іншому) він записаний. Все, що знає програма - це ім'я файлу, його розмір і атрибути. Ці дані вона отримує від драйвера файлової системи. Саме файлова система встановлює, де і як буде записаний файл на фізичному носії (наприклад, жорсткому диску).
З точки зору операційної системи (ОС), весь диск являє собою набір кластерів (як правило, розміром 512 байт і більше) [1]. Драйвери файлової системи організують кластери в файли і каталоги (реально є файлами, що містять список файлів в цьому каталозі). Ці ж драйвери відстежують, які з кластерів в даний час використовуються, які є вільними, марковані як несправні.
Однак файлова система не обов'язково безпосередньо пов'язана з фізичним носієм інформації. Існують віртуальні файлові системи. а також мережеві файлові системи, які є лише способом доступу до файлів, що знаходяться на віддаленому комп'ютері.
Практично завжди файли на дисках об'єднуються в каталоги.
У найпростішому випадку всі файли на даному диску зберігаються в одному каталозі. Така однорівнева схема використовувалася в CP / M і в першій версії MS-DOS 1.0. Ієрархічна файлова система із вкладеними один в одного каталогами вперше з'явилася в Multics. потім в UNIX.
Каталоги на різних дисках можуть утворювати кілька окремих дерев, як в DOS / Windows. або ж об'єднуватися в одне дерево, загальне для всіх дисків, як в UNIX-подібних системах.
В UNIX існує тільки один кореневий каталог. а всі інші файли і каталоги вкладені в нього. Щоб отримати доступ до файлів і каталогів на якомусь диску, необхідно змонтувати цей диск командою mount. Наприклад, щоб відкрити файли на CD. потрібно, кажучи простою мовою, сказати операційній системі: «візьми файлову систему на цьому компакт-диску і покажи її в каталозі / mnt / cdrom». Всі файли і каталоги, що знаходяться на CD, з'являться в цьому каталозі / mnt / cdrom. який називається точкою монтування (англ. mount point). [2] У більшості UNIX-подібних систем знімні диски (дискети і CD), флеш-накопичувачі і інші зовнішні пристрої зберігання даних монтують в каталог / mnt. / Mount або / media. Unix і UNIX-подібні операційні системи також дозволяють автоматично монтувати диски при завантаженні операційної системи.
Зверніть увагу на використання слешів в файлових системах Windows, UNIX і UNIX-подібних операційних системах (В Windows використовується зворотний слеш «\», а в UNIX і UNIX-подібних операційних системах простий слеш «/»)
Крім того, слід зазначити, що вищеописана система дозволяє монтувати не тільки файлові системи фізичних пристроїв, а й окремі каталоги (параметр --bind) або, наприклад, образ ISO (опція loop). Такі надбудови, як FUSE. дозволяють також монтувати, наприклад, цілий каталог на FTP і ще дуже велика кількість різних ресурсів.
Ще більш складна структура застосовується в NTFS і HFS. У цих файлових системах кожен файл являє собою набір атрибутів. Атрибутами вважаються не тільки традиційні тільки для читання. системний. але і ім'я файлу, розмір і навіть вміст. Таким чином, для NTFS і HFS те, що зберігається в файлі, - це всього лише один з його атрибутів.
Якщо йти за цією логікою, один файл може містити кілька варіантів вмісту. Таким чином, в одному файлі можна зберігати кілька версій документа, а також додаткові дані (значок файлу, пов'язана з файлом програма). Така організація типова для HFS на Macintosh.
Класифікація файлових систем
- Для носіїв з довільним доступом (наприклад, жорсткий диск): 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), VMware VMFS [en] (т. Н. Кластерна файлова система, яка призначена для зберігання інших файлових систем) і ін.
Завдання файлової системи
Основні функції будь-якої файлової системи націлені на вирішення наступних завдань:
У багатокористувацьких системах з'являється ще одна задача: захист файлів одного користувача від несанкціонованого доступу іншого користувача, а також забезпечення спільної роботи з файлами, наприклад, при відкритті файлу одним з користувачів, для інших цей же файл тимчасово буде доступний в режимі "тільки читання" .