Remove ads
З Вікіпедії, вільної енциклопедії
Фа́йлова систе́ма — спосіб організації даних, який використовується операційною системою для збереження інформації як файлів на носіях інформації. Також цим поняттям позначають сукупність файлів та директорій, які розміщуються на логічному або фізичному пристрої.
Процес створення файлової системи називається форматування.
Поняття файлової системи має декілька рівнів абстракції: логічна файлова система — високорівнева абстракція, яка описує можливості операційної системи для роботи з даними та описує API, яке дозволяє відкривати, зчитувати, записувати та закривати файли, а реалізація цих методів відбувається на нижчих рівнях абстракції.
Віртуальна файлова система — це необов'язковий рівень, який підтримує в операційній системі декілька фізичних файлових систем та надає універсальні методи роботи з ними. Завдяки цьому рівню абстракції існують файлові системи над нефізичними пристроями, як, наприклад, віртуальні файлові системи (procfs, sysfs) та FUSE.
Фізична файлова система — це рівень, який існує як дані на пристроях (дисках, розділах, тощо). Його реалізують драйвери, які працюють з даними. Вони також реалізують механізми, що пришвидшують роботу (буферізація, структури для швидшого пошуку), збільшують надійність (журналювання), вибір блоків, у яких потрібно помістити дані та інше. Переважно коли ми кажемо про різні файлові системи — NTFS, APFS, ext4 — ми маємо на увазі цей рівень.
Файлових систем існує багато, десятки. Деякі з'явились історично, щоб розв'язувати певні задачі й еволюціонували, або були витісненні іншими. Саме тому існують метадані, властивості, обмеження та особливості, які різні файлові системи підтримують по різному.
Однією з таких властивостей є організація файлів на носії даних. Файлові системи можуть поділятися на:
Залежно від локальности комп'ютера, якому надається доступ до файлів, можна поділити файлові системи на:
Файлові системи можна класифікувати за особливостями носія на:
Для забезпечення надійности та швидкости відновлення в разі збоїв, у деяких файлових системах було впроваджено журналювання. Таким робом файлові системи можна класифікувати як:
Журнальовані файлові системи пишуть, фіксують зміну стану інформації двічі: спершу в журналі дій файлової системи, потім до її належного місця у звичайній файловій системі. Але це допомагає в разі аварійного завершення. Система без журналювання повинна перевірити узгодженість свого стану, зчитуючи весь свій уміст такими програмами, як scandisk, chkdsk або fsck. Залежно від розміру файлової системи на це можна витратити багато часу. З журналюванням до узгодженого стану можна дійти швидше, відтворюючи, перевіряючи зміни по журналу за останній час.
Окрім самих даних у файлах, файлова система зберігає додаткову інформацію про файли. Така інформація називається метаданими.
Приклади метаданих:
Ім'я (назва) файлу — це рядок символів, що однозначно (унікально) визначає файл у просторі імен файлової системи, зазвичай це в контексті каталогу. Це головний атрибут файлу. Імена файлів будуються з правилами та обмеженнями, які заведені в операційній системі й у файловій системі.
Імена файлів мають обмеження:
У UNIX-подібних ОС у назві файлу може використовуватися будь-який символ, за винятком скісної риски, і вони чутливі до регістру.
Назви файлів у Microsoft Windows не є чутливими до регістру. Вимога неповторности та чутливість до регістру тут відіграє роль: якщо файлова система є чутливою до регістру — це, наприклад, файли File.txt FILE.TXT file.txt — це можуть бути різні файли, якщо система не чутлива до регістру. Такі імена відповідають тому самому файлу.
Каталог, директорія, тека або папка — це елемент файлової системи, який допомагає впорядковувати файли.
У такому разі, крім імені файлу потрібно знати й імена каталогів, до яких цей файл належить. Таким чином формується шлях до файлу — перелік каталогів та ім'я файлу, які розділені символом-розділювачем каталогів. UNIX-подібні операційні системи (BSD, Linux, Mac OS X) та AmigaOS використовують як розділювач каталогів символ скісної риски (/), тоді як DOS використовує цей символ для задання додаткових опцій у командному рядку, а як розділювач заведено вживати символ оберненої скісної риски (\). У Microsoft Windows заведена та сама домовленість, за винятком китайської і корейської версій, де розділювачем є знак запитання (?). Версії MacOS до Х використовували як розділювач двокрапку; RISC OS — дефіс.
Розмір файлу — це характеристика файлу скільки блоків, або байтів, він займає.
Файлові системи мають обмеження щодо розміру даних, які вони можуть зберігати. Ці обмеження зазвичай визначаються типовим розміром пристроїв зберігання даних на час розроблення файлової системи, актуальними розмірами структур даних, а також прогнозами на майбутнє. Оскільки розміри накопичувачів даних з початку своєї історії зростають експоненціально (згідно із законом Мура), нові пристрої зберігання даних часто перевищують обмеження файлової системи вже через 10–20 років після її створення. Збільшення ємности також веде до зростання потреб у функціональності та, як наслідок, до ускладнення файлових систем.
У 1980-х це була потреба обробляти дані об'ємами в сотні кілобайт. Файлові системи використовували 8–16 битні структури, які обмежували розмір файлів від сотень кілобайт (256КБ для ADFS) або декількох мегабайт (8МБ для FAT12) до сотень мегабайт.
У 1990-х перехід від 16-бітних до 32-бітних систем, об'єми жорстких дисків виросли від десятків мегабайт до десятків гігабайт. Відомим обмеженням є, наприклад, розмір файлу у 2 або 4 ГБ для файлових систем FAT32.
Файлові системи, що були розроблені після 2000-х, мають 64-бітні структури та їхні обмеження, і поки що перевищують розміри пристроїв, для яких вони були розроблені, наприклад: exFAT (128 ПБ) , NTFS (256 ТБ–8 ПБ), ext4 (1 ЕБ), XFS (8 ЕБ).
Більшість дистрибутивів Лінукс підтримують більшість (або всі) перелічені ФС: ext2, ext3, ext4, Btrfs, ReiserFS, Reiser4, GFS, GFS2, OCFS, OCFS2, NILFS, XFS, JFS, загалом, як і FAT та NTFS.
Microsoft Windows підтримує лише FAT12, FAT16, FAT32, та NTFS. Серед них NTFS є найефективнішою і єдиною, на котру може бути встановлена Windows Vista. Windows Embedded CE 6.0 включає також підтримку ExFAT, призначеної/рекомендованої для роботи на портативних пристроях.
Mac OS X підтримує HFS+ як первинну ФС та кілька інших як допоміжних.
На додаток усі ці та інші ОС підтримують файлові системи змінних носіїв — FAT12 для дискет, ISO 9660 та UDF (Universal Disk Format) для компакт-дисків та DVD відповідно.
Windows Vista та Linux з ядром версії 2.6 підтримують розширення UDF, які дозволяють перезаписувати вміст DVD як у звичайних дискетах.
Цей розділ потребує доповнення. |
Це незавершена стаття про інформаційні технології. Ви можете допомогти проєкту, виправивши або дописавши її. |
Seamless Wikipedia browsing. On steroids.
Every time you click a link to Wikipedia, Wiktionary or Wikiquote in your browser's search results, it will show the modern Wikiwand interface.
Wikiwand extension is a five stars, simple, with minimum permission required to keep your browsing private, safe and transparent.