Файлова система Ext2 у Linux. Як у середовищі Windows отримати доступ до файлових систем Ext2, Ext3, Ext4 Файлова система ext2

Як у середовищі Windows уможливити доступ до розділу диска або знімного носія з файловими системами Ext2/3/4 ? Якщо, наприклад, на комп'ютері є ще друга система Linux. І з її даними необхідно попрацювати із середовища Windows. Або інший приклад – коли всередині Windows змонтовані віртуальні диски зі встановленими на віртуальні машинисистемами Linuxабо Android. З Ext2/3/ 4 Windows не вміє працювати, їй для цього потрібні сторонні кошти. Що це за гроші?Розглянемо такі нижче.

***
Трійка перших засобів уможливить лише читання пристроїв інформації з Ext2/3/4. Останнє рішення дозволить читати і записувати дані. Усі розглянуті нижче кошти безкоштовні.

1. Програма DiskInternals Linux Reader

Простенька програма – це примітивний файловий менеджер, створений на кшталт штатного провідника Windows, з допомогою файлових систем Ext 2/3/4 , Reiser4 , HFS , UFS2. У вікні програми побачимо розділи та пристрої з Linuxабо Android.

Для копіювання потрібно виділити папку або файл, натиснути кнопку "Save".

Потім вказати шлях копіювання.

2. Плагін для Total Commander DiskInternals Reader

Любителі популярного можуть отримувати дані Linuxабо Androidвсередині Windows за допомогою файлового менеджера. Але попередньо встановивши у нього спеціальний плагін. Один з таких плагінів - , він вміє підключати та читати пристрої інформації, форматовані в Ext2/3/4 , Fat/exFAT , HFS/HFS+ , ReiserFS. Завантажуємо плагін, розпаковуємо його архів усередині , підтверджуємо встановлення.

Запускаємо (важливо) від імені адміністратора. Заходимо у розділ. Натискаємо.

Тут, поряд з іншими розділами диска та носіями, буде відображатися той, що з Ext2/3/4 .

Дані копіюються традиційним для методом – кнопкою F5 на другу панель.

3. Плагін для Total Commander ext4tc

Спрощена альтернатива попередньому рішенню – ext4tc, ще один плагін для . Він може підключати для читання пристрою інформації, форматовані тільки в Ext2/3/4. Завантажуємо плагін, розпаковуємо його архів усередині файлового менеджера, запускаємо установку.

Запускаємо (важливо) від імені адміністратора. Клікаємо. Заходимо до .

При необхідності копіювання даних використовуємо звичайний спосіб із клавішею F5 .

4. Драйвер підтримки Ext2Fsd

Програма Ext2Fsd– це драйвер Ext2/3/4, він реалізує підтримку цих файлових систем лише на рівні операційної системи. З розділами диска та накопичувачами, форматованими в ці файлові системи, можна працювати як зі звичайними, підтримуваними Windows пристроями інформації у вікні провідника або сторонніх програм. Драйвер дозволяє і читати, і записувати дані.

Завантажуємо останню актуальну версію Ext2Fsd.

При встановленні активуємо (якщо для тривалої роботи) три пропоновані чекбокси:

1 - Автозапуск драйвера разом із Windows;
2 - Підтримка запису для Ext2;
3 — Підтримка форматування для Ext3.

На передфінішному етапі активуємо опцію запуску віконця диспетчера драйвера - з попутним присвоєнням пристроїв інформації з Ext2/3/4букви диска.

У віконці відкрився побачимо носій із уже присвоєною літерою. Наприклад, у нашому випадку носієві з Ext4задана перша вільна буква F.

Тепер можемо працювати з диском Fу вікні провідника.

Присвоїти букву новим пристроям, що підключаються з Ext2/3/4можна за допомогою контекстного меню, що викликається на кожному з відображених у вікні пристроїв. Але просто при присвоєнні букви диска такий пристрій не відображатиметься після перезавантаження WindowsЦе рішення тільки для одного сеансу роботи з комп'ютером. Щоб зробити новий пристрій з Ext2/3/4постійно видимим серед Windows, необхідно подвійним кліком по ньому відкрити настроювальне віконце і встановити постійні параметри підключення. У другій графі потрібно:

Для знімних носіїв активувати чекбокс, позначений на скріншоті цифрою 1, та вказати букву диска;
Для внутрішніх дисків та розділів активувати чекбокс, позначений на скріншоті нижче цифрою 2, а також вказати букву диска.

14 Червень

Файлові системи Ext2, Ext3, XFS, ReiserFS, NTFS

Файлова система- це порядок, визначальний метод організації, зберігання та іменування даних будь-яких електронних носіях інформації у комп'ютерах.

Різноманітність файлових систем пояснюється тим, що кожна була придумана під певний пакет завдань. Одні дуже швидко записують невеликі файли (скажімо до 1ГБ), але при цьому погано взаємодіють з великими файлами або взагалі з ними не працюють. Одні хороші з погляду безпеки, інші з точки зору швидкості запису/зчитування. Кожна файлова система має свої плюси, мінуси, уразливості та відмінні можливості.

У Linuxнайчастіше використовуються такі різновиди файлових систем:

  1. ext2- Розшифровується як Second Extended File System(Друга розширена файлова система). Розроблена Ремі Кардом в 1993 як файлова система ядра Linux, в період з 1993-2001 була основною файловою системою Linux.
    Перевагою є висока швидкість читання/запису.
    Головним недоліком системи ext2є те, що вона не є журнальною, але саме завдяки цьому має велику продуктивність ( журналування- Це процес ведення журналу, що зберігає список змін, що допомагає зберегти цілісність файлової системи при різних збоях системи);
  2. ext3- Розшифровується як Third Extended File System(Третя версія розширеної файлової системи). Розроблена Стівеном Твіді в 2001 році, використовується досі в дистрибутивах Linux. З'явилася на світ як удосконалена ext2.
    Перевагою даної системи є те, що вона журнальна, тобто її надійність підвищується в рази порівняно з ext2.
    Недоліком можна назвати трохи меншу продуктивність та швидкість читання/запису.
  3. XFS- Розроблена компанією Silicon Graphicsу 1993 році, була додана в ядро Linuxяк файлова система в 2002 році в вся родина дистрибутивів Linux, на даний момент використовується як «рідна» у дистрибутиві Red Hat.
    Достоїнством є наявність журналювання метаданих, висока стабільність роботи, підтримується розподіл потоків введення/виводу за групами, велика швидкість читання/запису, є можливість дефрагментації навіть при змонтованому розділі і можна збільшити розмір файлової системи. Найефективніше працює з великими файлами.
    Недоліком є ​​те, що розмір розділу не можна зменшити, обробка метаданих процес не такий вже й швидкий, працює помітно повільніше з невеликими файлами, ніж інші види файлових систем.
  4. ReiserFS- розроблена компанією Namesysпід керівництвом Ганса Райзера у 2001 році. Використовується тільки на операційні системи Linux. Була першою журнальною файловою системою, яку прийняли в ядро.
    Перевагою даної файлової системи є те, що вона дуже швидко працює з невеликими файлами (швидкість читання/запису вища, ніж у сімейства ext4), підтримує журналування.
    Недоліком є ​​те, що її розвиток помітно сповільнився через арешт керівника Ганса Райзера та відсутнє фонове шифрування.
  5. NTFS- Розшифровується як new technology file system(Файлова система нової технології). Розроблено у липні 1993 року корпорацією Microsoft. Широко використовується у різних операційних системах, а також у різних носіях інформації.
    Перевагою є вбудована можливість розмежовувати доступ до даних для різних користувачів, а також призначати обмеження на максимальний обсягдискового простору, використання журнальної системи, висока швидкість читання/запису невеликих файлів.
    Недоліком є ​​те, що для стабільної роботи необхідна не маленька оперативна пам'ять ПК, з великими файлами працює повільно, обмежена довжина шляху до файлів (32 767 символів Юнікоду).

У такий спосіб ми розібралися з «файловими системами ext2, ext3, XFS, ReiserFS, NTFS«!

Файлова система(англ. file system) - порядок, що визначає спосіб організації, зберігання та іменування даних на носіях інформації ІТ - обладнання (що використовує для багаторазового запису та зберігання інформації портативні флеш-карти пам'яті в портативних) електронних пристроїв: цифрових фотоапаратів, мобільних телефонахі т. д) та комп'ютерної техніки. Вона визначає формат вмісту та фізичного зберігання інформації, яку прийнято групувати у вигляді файлів. Конкретна файлова система визначає розмір імені файлу (папки), максимальний розмір файлу і розділу, набір атрибутів файлу. Деякі файлові системи надають сервісні можливості, наприклад розмежування доступу або шифрування файлів.

Завдання файлової системи

Основні функції будь-якої файлової системи націлені на вирішення наступних завдань:

найменування файлів;

програмний інтерфейс роботи з файлами для програм;

відображення логічної моделі файлової системи на фізичну організацію сховища даних;
організація стійкості файлової системи до збоїв живлення, помилок апаратних та програмних засобів;

У розрахованих на багато користувачів системах з'являється ще одне завдання: захист файлів одного користувача від несанкціонованого доступу іншого користувача, а також забезпечення спільної роботи з файлами, наприклад, при відкритті файлу одним з користувачів, для інших цей же файл тимчасово буде доступний в режимі «тільки читання» .

Файлова система - це основна структура, що використовується комп'ютером для впорядкування інформації на жорсткому диску. При встановленні нового жорсткого дискайого необхідно розбити на розділи та відформатувати під певну файлову систему, після чого на ньому можна зберігати дані та програми. У Windows існує три можливі варіанти файлової системи: NTFS, FAT32 і рідко використовується застаріла система FAT (також відома як FAT16).

NTFS є найкращою файловою системою для цієї версії Windows. Вона має безліч переваг перед більш ранньою системою FAT32; Нижче перераховані деякі з них.

Здатність автоматично відновлюватися після деяких помилок диска (FAT32 не має такої здатності).
Покращена підтримка великих жорстких дисків.
Вищий рівень безпеки. Можливе використання дозволів та шифрування для заборони доступу користувача до певних файлів.

Файлова система FAT32 і система FAT, що рідко застосовується, використовувалися в попередніх версіях Windows, у тому числі Windows 95, Windows 98 і Windows Millenium Edition. Файлова система FAT32 не забезпечує рівень безпеки, що надається NTFS, тому якщо на комп'ютері є розділ або том, відформатований під FAT32, файли на цьому розділі видно будь-якому користувачеві, який має доступ до комп'ютера. Файлова система FAT32 також має обмеження розміру файлів. У цій версії Windows неможливо створити розділ FAT32 розміром більше 32Гб. Крім того, розділ FAT32 не може містити файл розміром більше 4Гб.

Основною причиною використання системи FAT32 може бути те, що на комп'ютері можна буде запустити Windows 95, Windows 98 або Windows Millenium Edition, так і цю версію Windows (конфігурація з кількома операційними системами). Для створення такої конфігурації необхідно встановити попередню версію операційної системи на розділ відформатований під FAT32 або FAT, зробивши його основним (основний розділ може містити операційну систему). Інші розділи, доступ до яких здійснюється з попередніх версій Windows також повинні бути відформатовані під FAT32. Більш ранні версії Windows можуть звертатися лише до мережних NTFS-розділів або томів. NTFS-розділи на локальному комп'ютері будуть недоступні.

FAT – плюси:

Для ефективної роботи потрібно трохи оперативної пам'яті.
Швидка роботаз малими та середніми каталогами.
Диск здійснює в середньому меншу кількість рухів головок (порівняно з NTFS).
Ефективна роботана повільних дисках.

FAT – мінуси:

Катастрофічна втрата швидкодії зі збільшенням фрагментації, особливо великих дисків (тільки FAT32).
Складнощі з довільним доступом до великих (скажімо, 10% і більше від розміру диска) файлів.
Дуже повільна робота з каталогами, що містять велику кількість файлів.

NTFS - плюси:

Фрагментація файлів немає ніяких наслідків для самої файлової системи – робота фрагментованої системи погіршується лише з погляду доступу до даних файлів.
Складність структури каталогів та кількість файлів в одному каталозі також не чинить особливих перешкод швидкодії.
Швидкий доступ до довільного фрагмента файлу (наприклад, редагування великих файлів.wav).
Дуже швидкий доступ до маленьких файлів (кілька сотень байт) - весь файл знаходиться в тому ж місці, де системні дані (запис MFT).

NTFS – мінуси:

Істотні вимоги до пам'яті системи (64 Мбайт – абсолютний мінімум, краще – більше).
Повільні диски та контролери без Bus Mastering сильно знижують швидкодію NTFS.
Робота з каталогами середніх розмірів утруднена тим, що майже завжди фрагментовані.
Диск, який довго працює в заповненому на 80% – 90% стані, показуватиме вкрай низьку швидкодію.

Як «рідні» для Linux (тобто тих, на які він може бути встановлений і з яких здатний стартувати) розглядаються такі файлові системи: ext2fs, ext3fs, ext4fs, ReiserFS, XFS, JFS.Саме вони зазвичай і пропонуються на вибір при встановленні переважної більшості дистрибутивів. Звичайно, існують і способи установки Linuxна файлові системи FAT/VFAT/FAT32, але це - тільки для тих медів і мсьє, які розуміються на збоченнях, і про них я говорити не буду.

Основними критеріями при виборі файлової системи є надійність і швидкодія. У деяких випадках доводиться враховувати також фактор сумісності - у цьому випадку під нею розуміється здатність інших операційних операцій звертатися до тієї чи іншої файлової системи.
Почну розгляд з ReiserFS - тому що приводом для написання цієї нотатки послужило питання: а що слід вважати маленькими файлами? Адже загальновідомо, що ефективність роботи з дрібними файлами є сильною стороною цієї файлової системи.

Так ось, під дрібними файлами розуміються файли розміром менше логічного блоку файлової системи, який у Linux в більшості випадків дорівнює чотирьом кілобайтам, хоча і може задаватися при форматуванні в деяких межах (залежних від конкретної FS). Таких дрібних файлів у будь-якій Unix-подібній ОС - безліч. Типовим прикладом є файли, що становлять дерево портів FreeBSD, портежів Gentoo тощо портоподібних систем.
У більшості файлових систем для таких міні файлів існує як свій inode (інформаційний вузол, що містить мета інформацію про файл), так і блок даних, що призводить як до витрат дискового простору, так і до зниження швидкодії файлових операцій. Зокрема, саме в цьому причина катастрофічної задумливості файлової системи FreeBSD (як старої UFS, так і нової UFS2) при роботі з власною системою портів.

У файловій системі ReiserFS в таких випадках окремі блоки під дані не виділяються - вона примудряється запихати дані файлу безпосередньо в область його inode. За рахунок цього і дисковий простір заощаджується, і швидкодія зростає – буквально у кілька разів у порівнянні з усіма іншими FS.
Таке поводження з дрібними файлами ReiserFS спричинило виникнення легенди про її ненадійність. Дійсно, при краху файлової системи (тобто руйнуванні службових областей) дані, розміщені спільно зі своїми inodes, разом з ними і пропадають - причому безповоротно. Тоді як у файлових системах, де inodes і блоки даних завжди роз'єднані просторово, останні теоретично можна відновити. Так, для ext2/ext3 навіть є засоби, що дозволяють це зробити.

Однак, як і всяка легенда, ця лише справляє враження достовірності. По-перше, безповоротна втрата даних стосується лише дуже маленьких файлів. Серед таких користувачів практично не буває, а всі інші легко відновлюються з дистрибутива.
По-друге, говорячи про можливість відновлення даних із блоків, що втратили прив'язку до своїх inodes, я не випадково вжив слово «теоретична». Тому що на практиці це заняття надзвичайно трудомістке, яке не дає гарантованого результату. Кожен, кому доводилося цим займатися, погодиться, що віддатись йому можна лише від повної безвиході. І це стосується всіх файловим системам Linux. Так що цим аспектом при виборі файлової системи можна знехтувати.

За сумарною швидкодією ReiserFS однозначно швидше за всіх інших журнальних FS, а за деякими показниками перевищує і ext2. З результатами порівняння швидкості виконання деяких поширених файлових операцій можна ознайомитися тут.
А ось із сумісністю у ReiserFS справа дещо гірша. Доступ до неї з ОС сімейства Windows, наскільки мені відомо, неможливий. У деяких операційних системах сімейства BSD (DragonFlyBSD, FreeBSD) реалізовано підтримку цієї файлової системи, але в режимі тільки для читання. Навіть ймовірність того, що довільний Linux LiveCD минулих років не має підтримки ReiserFS, не є нульовою.

І тут можна згадати про ext3fs. Перевага її зовсім не в більшій надійності – це така сама легенда, як і нестійкість ReiserFS. Про випадки краху ext3fs я чув не менше, ніж про подібні події з ReiserFS. Самому мені не вдавалося порушити ні ту, ні іншу. Хіба що з ext2 виходило - але й дуже давно, в часи ядра 2.2 (або навіть ще 2.0).

Ні, головна перевага ext3fs у її сумісності – вона з гарантією буде прочитана будь-якою Linux-системою. Наприклад, при відновленні з якогось стародавнього підручного LiveCD - ситуація, практично не така вже неймовірна, мені доводилося в неї потрапляти. Знову ж таки, більшість BSD-систем легко розуміють ext3fs (хоча і без журналування). Для Windows також є, наскільки я знаю, різноманітні драйвери і plug-ins до поширених файловим менеджерам(типу Total Commander), що забезпечують доступ до розділів з ext2fs/ext3fs.

Щодо продуктивності ext3fs залишає суперечливе враження. По-перше, її швидкодія дуже залежить від режиму журналування, яких передбачено три: з повним журналуванням даних, частковим їх журналюванням і журналуванням тільки метаданих. У кожному режимі вона показує різну продуктивність на різних типах файлових операцій. Втім, у жодному разі швидкодія не є рекордною.

Втім, якщо вимога швидкодії ставиться перше місце, то тут поза конкуренцією виявляється ext2fs - щоправда, у разі доведеться змиритися з відсутністю журналування взагалі. І, отже, з тривалими перевірками файлової системи при будь-якому некоректному завершенні роботи - а при обсягах сучасних дисків це може затягнутися як надовго.

Щодо XFS можна сказати таке. У плані сумісності до неї відноситься все те саме, що написано для ReiserFS - більше того, до деякого часу вона не підтримувалася стандартним ядром Linux. З точки зору швидкодії вона XFS вона також не блищить, виступаючи сумарно приблизно на одному рівні з ext3fs. А на операції видалення файлів взагалі демонструє гнітючу повільність.
За моїми спостереженнями, використання XFS виправдовує себе під час роботи непросто з великими, і з дуже великими файлами - якими є лише образи DVD і відеофайли.

Повертаюся до питання надійності. Банальне вимикання харчування в ході звичайної користувальницької роботи, як правило, безболісно переносять всі журнальні файлові системи (і жодна з них не забезпечує збереження незаписаних на диск користувальницьких операцій - порятунок потопаючих і залишається справою рук самих потопаючих). Щоправда, для будь-якої файлової системи можна змоделювати ситуацію, в ході якої вимкнення живлення призведе до більш-менш серйозних пошкоджень. Однак у реальному житті виникнення таких ситуацій є малоймовірним. А повністю виключити їх придбанням джерела безперебійного живлення - він надасть більше впевненості в збереженні даних, ніж тип файлової системи. Ну а гарантією відновлення зруйнованих даних у будь-якому випадку може бути лише їхнє регулярне резервне копіювання…

Думаю, викладеної вище інформації достатньо для усвідомленого вибору. Мій особистий вибір протягом останніх кількох років - ReiserFS. Зрідка, на системах, де виправдане винесення за межі кореневого розділу всього, чого тільки можна, доцільно використання ext3fs для кореневої файлової системи та ReiserFS - для решти.

Якщо передбачається окремий розділ під каталог /boot (а це рекомендується під час використання завантажувача GRUBйого розробниками) - йому ніяка інша файлова система, крім ext2fs, не виправдана, яке-небудь журналування тут сенсу немає. Нарешті, якщо створюється окремий розділ під різноманітні мультимедійні матеріали - тут можна подумати і про XFS.

Якщо ж підійти до пояснення більш методично

ext - на початковому етапі розвитку Linux була домінуючою системою ext2 (розширена файлова система, версія 2). З 2002 року їй на зміну прийшла система ext3, яка багато в чому сумісна з ext2, але до того ж підтримує функції журналування, а під час роботи з версією ядра 2.6 і вище - ACL. Максимальний розмір файлу складає 2 Тбайт, максимальний розмір файлової системи – 8 Тбайт. Наприкінці 2008 року було офіційно заявлено про випуск версії ext4, яка має зворотну сумісність з ext3, але багато функцій впроваджено більш ефективно, ніж раніше. Крім того, максимальний розмір файлової системи дорівнює 1 Ебайт (1048576 Тбайт), і можна розраховувати, що на якийсь час такого обсягу вистачить. Про reiser – система отримала назву від імені свого засновника – Ганса Рай-зера (Hans Reiser) і була першою системою з функціями журналування, що зверталася за даними до ядра Linux. Версія З.п у SUSE навіть вважалася стандартною протягом деякого часу. Основні переваги reiser у порівнянні з ext3 - більш висока швидкість роботи та ефективність розміщення при роботі з дрібними файлами (а у файловій системі, як правило, більшість файлів дрібні). Згодом, щоправда, розробка reisefers припинилася. Вже давно було заявлено про вихід версії 4, яка ще не готова, а підтримка версії 3 припинилася. Про xfs - спочатку файлова система xfs розроблялася для робочих станцій фірми SGI, які функціонували операційній системі IRIX. Xfs особливо хороша для роботи з великими файлами, зокрема ідеально підходить для роботи з потоковим відео. Система підтримує квотування та розширені атрибути (ACL).
jfs

jfs - a66peBHaTypaJFS розшифровується «Журналована файлова система». Спочатку вона була розроблена для IBM, а потім адаптована для Linux. Jfs ніколи не користувалася в Linux особливим визнанням і в даний час тягне жалюгідне існування, поступаючись іншим файловим системам.
brtfs

brtfs - якщо на те буде воля провідних розробників ядра, на файлову систему brtfs в Linux чекає блискуче майбутнє. Ця система була розроблена в Oracle з нуля. Вона включає функції підтримки модуля відображення пристроїв (device-mapper) та RAID. Brtfs найбільш подібна до системи ZFS, розробленої компанією Sun. До її найцікавіших функцій відноситься перевірка файлової системи на ходу, а також підтримка SSD (твердотільні диски – це жорсткі диски, що працюють на основі флеш-пам'яті). На жаль, робота над brtfs у найближчому майбутньому не завершиться. У Fedora, вже починаючи з версії 11, передбачена можливість встановлення brtfs, але користуватись нею я рекомендую тільки розробникам файлових систем!
Не існує найшвидшої або найкращої файлової системи - оцінка залежить від того, для чого ви збираєтеся використовувати систему. Початківцям Linux, що працюють з локальним комп'ютером, рекомендується працювати з ext3, а адміністраторам серверів - з ext4. Звичайно, з ext4 швидкість роботи вище, ніж з ext3, але при цьому в системі ext4 значно гірша справа з надійністю даних - ви можете втратити інформацію при раптовому відключенні системи.

Якщо ви встановили на комп'ютері другу UNIX-подібну операційну систему, то при обміні даними (з однієї ОС до іншої) вам знадобляться такі файлові системи.

sysv - застосовується в ОС SCO, Xenix та Coherent.

ufs - використовується в FreeBSD, NetBSD, NextStep та SunOS. Linux може лише зчитувати інформацію з таких файлових систем, але не може змінювати дані. Доступ до сегментів з BSD додатково потребує розширення BSD disklabel. Аналогічне розширення існує й у таблицях розбиття SunOS.

ZFS – це відносно нова система, розроблена Sun для Solaris. Оскільки код ZFS не відповідає ліцензії GPL, її не можна інтегрувати з ядром Linux. Тому Linux підтримує цю файлову систему лише опосередковано, через FUSE.
Windows, Mac OS X

Наступні файлові системи будуть корисні під час обміну інформацією з MS DOS, Windows, OS/2 та Macintosh.

vfat - використовується у Windows 9х/МЕ. Linux може зчитувати інформацію з таких розділів та вносити до неї зміни. Драйвери системи vfat дозволяють працювати зі старими файловими системами MS DOS (8 + 3 символів).

NTFS - система застосовується у всіх сучасних версіях Windows: otNT і вище. Linux може зчитувати та змінювати її файли.

hfs і hfsplus - ці файлові системи використовуються в комп'ютерах Apple. Linux може зчитувати та змінювати її файли.

На CD та DVD з даними зазвичай використовуються власні файлові системи.

iso9660 - файлова система для CD-ROM описана в стандарті ISO-9660, що дозволяє лише короткі назви файлів. Довгі назви підтримуються у різних операційних системах по-різному, з допомогою різноманітних несумісних друг з одним розширень. Система Linux здатна працювати з розширенням Rockridge, звичайним в UNIX, і з розширенням Joliet, розробленим Microsoft.

udf - цей формат (універсальний формат диска) з'явився та розвинувся як спадкоємець ISO 9660.

Мережеві файлові системи

Файлові системи не обов'язково повинні знаходитись на локальному диску - вони
можуть підключатися до комп'ютера та через мережу. Ядро Linux підтримує різні мережеві файлові системи, у тому числі найчастіше застосовуються такі.

smbfs/cifs – допомагають підключати мережеві каталоги Windows або Samba до дерева каталогів.

nfs - це найважливіша в UNIX мережна файлова система.

coda – ця система дуже нагадує NFS. У ній є безліч додаткових функцій, але вона дуже поширена.

ncpfs - працює з урахуванням протоколу ядра NetWare;oH використовується Novell Netware.

Віртуальні файлові системи

У Linux існує кілька файлових систем, призначених не для збереження даних на жорсткому диску (або іншому носії), а тільки для обміну інформацією між ядром та програмами користувача.
devpts - ця файлова система забезпечує доступ до псевдотерміналів (скорочено - PTY) через /dev/pts/* відповідно до специфікації UNIX-98. (Псевдотермінали емулюють послідовний інтерфейс. У системах UNIX/Linux такі інтерфейси використовуються емуляторами терміналів, наприклад xterm. При цьому зазвичай застосовуються такі пристрої, як /dev/ttypn. У специфікації UNIX-98, навпаки, визначаються нові пристрої. Більш докладна інформація повідомляється у текстовому терміналі H0WT0.)
proc і sysfs - файлова система proc служить відображення службової інформації, що стосується управління ядром і процесами. На додаток до цього файлова система sysfs будує взаємозв'язки між ядром та устаткуванням. Обидві файлові системи підключаються на позиціях /proc та /sys.
tmpfs - ця система побудована на основі пам'яті, що розділяється відповідно до System V. Вона зазвичай підключається на позиції /dev/shm і забезпечує ефективний обмін інформацією між двома програмами. У деяких дистрибутивах (наприклад, Ubuntu) каталоги /var/run та /var/lock також створюються за допомогою файлової системи tmpfs. Файли цих каталогів застосовуються деякими мережевими демонами для того, щоб зберігати ідентифікаційні номери процесів, а також інформацію про доступ до файлів. Завдяки tmpfs ці дані тепер відображаються у RAM. Метод гарантує високу швидкість, а також те, що після відключення комп'ютера в каталогах /var/run чи /var/lock не залишиться жодних файлів.

usbfs - файлова система usbfs, починаючи з версії ядра 2.6 і вище, дає інформацію про підключені USB-пристрої. Зазвичай вона інтегрована у файлову систему proc. Про підтримку USB-пристроїв у Linux.

Інші файлові системи

auto - файлової системи під такою назвою не існує. Однак слово auto можна використовувати /etc/fstab або з командою mount для вказівки файлової системи. У такому разі Linux спробує самостійно розпізнати файлову систему. Цей метод працює з більшістю найважливіших файлових систем.
autofs, autofs4

autofs, autofs4 - це теж файлові системи, а розширення ядра, автоматично виконують команду mount для вибраних файлових систем. Якщо файлова система не використовується протягом деякого часу, для неї автоматично виконується команда umount. Цей метод зручний насамперед у випадках, коли з багатьох NFS-каталогів одночасно активно використовуються лише кілька.

Для виконання таких операцій під час запуску системи сценарій /etc/init.d/ autofs автоматично виконує програму automount. Вона конфігурується за допомогою /etc/auto.master. Відповідні програми автоматично встановлюються, наприклад, у Red Hat та Fedora. У будь-якому випадку autofs активується лише після конфігурації /etc/auto.master або /etc/auto.misc.
cramfs та squashfs

cramfs та squashfs - файлові системи Cram та Squash призначені тільки для читання. Вони використовуються для того, щоб «упакувати» якнайбільше заархівованих файлів у флеш-пам'ять або ПЗУ (постійний пристрій).

fuse - FUSE означає «Файлова система в просторі користувача» (Filesystem in Userspace) і дозволяє розробляти і використовувати драйвери файлових систем поза ядром. Отже, FUSE завжди застосовується із зовнішнім драйвером файлової системи. FUSE працює, зокрема, із драйвером NTFS ntfs-3g.

gfs і ocfs - Глобальна файлова система (Global File System) і Кластерна файлова система від Oracle (Oracle Cluster File System) дозволяють будувати гігантські мережеві файлові системи, яких можуть паралельно звертатися безліч комп'ютерів в той самий момент.

jffs і yaffs - файлова система для флеш-носіїв (Journaling Flash File System) та Альтернативна файлова система для флеш-носіїв (Yet Another Flash File System) спеціально оптимізовані для роботи з твердотільних дисків і флеш-носіїв. За допомогою спеціальних алгоритмів вони намагаються рівномірно використовувати всі осередки пам'яті (технологія «вирівнювання зношування»), щоб уникнути передчасної відмови системи.
loop

loop – використовується для роботи з псевдопристроями. Псевдопристрій (loopback device) - це адаптер, здатний звертатися до звичайного файлу як блокового пристрою. Завдяки йому в будь-якому файлі можна розташувати будь-яку файлову систему, а потім підключити її до дерева каталогів за допомогою mount. Функція ядра, що відповідає за це, - підтримка псевдопристроїв - реалізується в модулі loop.

Існують різноманітні способи застосування псевдопристроїв. Зокрема, вони можуть використовуватися для створення дисків в оперативній пам'яті для початкової ініціалізації (Initial RAM disk) для GRUB або LILO, для реалізації зашифрованих файлових систем або для тестування ISO-образів для CD.

Файлові системи носіїв даних

Файлові системи
ISO 9660
Joliet розширення файлової системи ISO 9660.
Rock Ridge (RRIP, IEEE P1282) – розширення файлової системи ISO 9660, розроблене для зберігання файлових атрибутів, що використовуються в операційних системах POSIX
Amiga Rock Ridge Extensions
El Torito
Apple ISO9660 Extensions
HFS, HFS+
Universal Disk Format - специфікація формату файлової системи, незалежної від операційної системи для зберігання файлів на оптичних носіях. UDF є реалізацією стандарту ISO/IEC 13346
Mount Rainier

Файлова система Linux- Це найчастіше ext4. Вона журнальна та дозволяє зручно працювати з даними при вирішенні абсолютної більшості завдань. Проте є й інші. Основні типи файлових систем та принципи роботи з ними будуть розглянуті в рамках цього матеріалу.

Типи файлових систем Linux та їх особливості

Відмінними рисами є швидкість роботи з файлами, безпека та параметри (такі як розмір блоку), що існують за замовчуванням і задаються під час створення FS. Можливо, найважливішою характеристикою є журнал. У системний журнал записуються дані або метадані(тільки заголовки) за якими інформацію можна відновити у разі збою.

Файлова система може створюватись на будь-якому пристрої: на диску або системній партиції.

Файлова система EXT2

EXT2 є в даний час застарілою файловою системою, яка практично не використовується у сучасних інсталяціях. основний недолік - відсутність журналування що, відповідно, унеможливлює відновлення даних у разі збою. Як і раніше, застосовується на портативних носіях інформації, таких як USB. Журнал їм не потрібно, оскільки займає певний простір.

Також гарантує максимальну швидкість роботи.

  • для EXT2 максимальний розмір файлу -2 TB

Файлова система EXT3

Витіснила EXT2, головною особливістю є поява журналу, що є повністю зворотно сумісною з EXT2 (EXT2 можна вільно конвертувати в EXT3). Наразі зустрічається також рідко, практично завжди використовується EXT4.

Журнал — спеціальна область пам'яті, в яку записується інформація про всі зміни

  • для EXT3 максимальний розмір файлу -2 TB
  • максимальний розмір всіх файлів - 32 TB
  • у кожному каталозі може бути до 32 000 підкаталогів

При журналуванні може бути три опції (вказуються під час створення файлової системи):

  • journal – у журнал метадані, а також сама інформація
  • ordered – опція за замовчуванням, зберігаються лише метадані та після запису на диск
  • writeback – також зберігаються лише метадані, можна вибрати зберігати їх до запису на диск чи після

Файлова система EXT4

Сучасна версія extended file system, найчастіше застосовується саме вона

  • максимальний розмір файлу -2 TB 16 TB
  • максимальний розмір всіх файлів – 1 EB (exabyte). 1 EB=1024 PB (petabyte). 1 PB = 1024 ТБ (terabyte).
  • у кожному каталозі може бути до 64 000 підкаталогів

У EXT4 ведення журналу можна вимкнути, встановивши опцію dataпри монтуванні в off

EXT як основна файлова система Linux та практика роботи

Файлова система створюється командою mk2fs

Потрібна опція журналу вказується при монтуванні, наприклад:

mount /dev/vdc /mnt/1 -t ext3 -o data=journal

Конвертування з EXT2 Eв XT3

ReiserFS

ReiserFS (і сучасна реалізація Reiser4 з підтримкою SELinux) відрізняється гарною продуктивністю і дуже продуктивна - особливо при роботі з великою кількістю дрібних файлів. ReiserFS не виділяє inode-и для кожного дрібного файлу обробляючи їх разом, також ReiserFS використовує журнал із декількома доступними опціями. Нині файлова система підтримується розробниками із Росії.

Створити FS для пристрою можна за допомогою команди

XFS

XFS - журнальна файлова система. Використовує оперативну пам'ятьдля зберігання інформації, тому можливі втрати даних, наприклад, при відключенні електроживлення.

Для використання XFS в Ubuntu потрібно встановити пакети xfsprogsі xfsdump

vfat

Файлова система Linux, що також існує в середовищі Windows. Використовується коли потрібно організувати спільний доступ до певних дисків і розділів клієнтів з різними ОС. В інших випадках використовувати не рекомендується, оскільки при роботі в Linux можливі складнощі.

(Second Extended File System).

· Історія розвитку файлових систем Linux

· Структура дискового розділу в ext2fs

·

· Каталоги

· Файли пристроїв

·

·

· Бібліотека EXT2fs

· Засоби системи EXT2fs

· Обчислення продуктивності

Матфак

Прогр.Забезпеч.

2-й курс 5-а грн.

Чичіров Андрій

Фалова система EXT2fs (Second Extended File System).

Історія розвитку файлових систем Linux

Перші версії Linux були розроблені на базі операційної системи Minix. Було б простіше розділити диски між двома системами, ніж розробити нову файлову систему, тому Linus Torvalds вирішив ввести підтримку в Linux файлової системи Minix. У той час ця файлова система була досить ефективним програмним продуктом з відносно невеликою кількістю помилок.

Однак обмеження, пов'язані зі структурою файлової системи Minix, були досить високі, тому стали замислюватися над розробкою нової файлової системи для Linux.

Для спрощення впровадження нової файлової системи в ядро ​​Linux, була розроблена віртуальна файлова система (VFS). Спочатку VFS була написана Chris Provenzano, а потім переписана Linus Torvalds перед її інтеграцією в ядро.

Після установки в ядро ​​VFS, в квітні 1992 року була розроблена нова фалова система EXTfs (Extended File System) і додана у версію Linux 0.96c. У новій файловій системі було знято два істотні обмеження системи Minix: її максимальний об'єм міг досягати 2 гігабайт, а максимальна довжина імені файлу - 255 символів. Це було досягненням у порівнянні з файловою системою Minix, хоча деякі проблеми все ще були. Не було підтримки роздільного доступу, модифікації індексного дескриптора і модифікації осередків часу зміни файлу. Ця файлова система використовувала зв'язані списки для оперування вільними блоками і індексними дескрипторами, що сильно впливало на продуктивність системи: з часом списки ставали неупорядкованими і розсортованими, що призводило до фрагментування файлової системи.

Рішенням цих проблем став випуск у січні 1993 року альфа-версій двох нових файлових систем: Xia і EXT2fs (Second Extended File System). Здебільшого, файлова система Xia була заснована на Minix з додаванням кількох нових можливостей. В основному це була можливість роботи з довгими іменами файлів, підтримка дискових розділів більшого об'єму і підтримка трьох осередків часу зміни файлу. З іншого боку, EXT2fs була заснована на EXTfs з безліччю поліпшень і доповнень. Вона також мала можливості для майбутнього розвитку.

Коли були випущені ці дві файлові системи, функціонально вони були приблизно рівні. Система Xia була більш надійною, ніж EXT2fs, за рахунок її мінімізації. По мірі їх ширшого застосування були виявлені помилки в системі EXT2fs, і додано велику кількість нових можливостей та покращень. В даний час файлова система EXT2fs є дуже надійною і стала стандартом де-факто файлової системи Linux.

У наступній таблиці міститься загальна інформація про функціональні можливості, що надаються різними файловими системами.

Minix FS

Ext FS

Ext2 FS

Xia FS

Максимальний обсяг файлової системи

Максимальна довжина файлу

Максимальна довжина імені файлу

Підтримка трьох осередків часу зміни файлу

Можливість розширення

Змінний розмір блоку

Захист інформації

При необхідності довжина імені файлу в Ext 2може бути збільшена до 1012 року.

EXT2fs резервує деяку кількість блоків для користувача root. Зазвичай це 5% від загальної кількості, що дозволяє системному адміністратору уникати нестачі об'єму жорсткого диска при його заповненні роботою процесів інших користувачів.

Структура дискового розділу ext2fs

Виробники жорстких дисків зазвичай постачають свої вироби відформатовані на низькому рівні. Наскільки я знаю, це означає, що весь дисковий простір за допомогою спеціальних міток розбитий на "сектор" розміром 512 байт. Такий диск (або дисковий розділ) має бути підготовлений для використання у певній операційній системі. У MS-DOS чи Windows процедура підготовки називається форматуванням, а Лінукс - створенням файлової системи. Створення файлової системи ext2fsполягає у створенні у розділі диска певної логічної структури. Ця структура будується так. По-перше, на диску виділяється область завантаження. Завантажувальна область створюється у будь-якій файловій системі. На первинному розділі вона містить завантажувальний запис – фрагмент коду, який ініціює процес завантаження операційної системи під час запуску. В інших розділах ця область не використовується. Решта простір на диску ділиться на блоки. Блок може мати розмір від 1, 2 або 4 кілобайти. Блок є адресованою одиницею дискового простору. Виділення місця файлам здійснюється цілими блоками, тому за виборі розміру блоку доводиться йти компроміс. Великий розмірблоку, зазвичай, скорочує кількість звернень до диска під час читання чи запису файла, зате збільшує частку нераціонально використовуваного простору, особливо, за наявності великої кількості файлів невеликого розміру.

Блоки в свою область об'єднуються в групи блоків. Групи блоків у файловій системі та блоки всередині групи нумеруються послідовно, починаючи з 1. Перший блок на диску має номер 1 і належить групі з номером 1. Загальна кількість блоків на диску (розділ диска) є дільником об'єму диска, вираженого в секторах. А число груп блоків має ділити число блоків, оскільки остання група блоків може бути повної. Початок кожної групи блоків має адресу, яка може бути отримана як ((номер групи - 1)* (число блоків у групі)).

Кожна група блоків має однакову будову. Її структура представлена ​​у наступній табличці.

Структура групи блоків дискового розділу ext2fs

Перший елемент цієї структури (суперблок) - однаковий всім груп, проте інші - індивідуальні кожної групи. Суперблок зберігається в першому блоці кожної групи блоків (за винятком групи 1, в якій у першому блоці розташований запис). Суперблокє початковою точкою файлової системи. Він має розмір 1024 байти та завжди розташовується по зміщенню 1024 байта від початку файлової системи. Наявність кількох копій суперблоку пояснюється надзвичайною важливістю цього елемента файлової системи. Дублікати суперблоку використовуються при відновленні файлової системи після збоїв.

Інформація, що зберігається в суперблоці, використовується для організації доступу до інших даних на диску. У суперблоці визначається розмір файлової системи, максимальна кількість файлів у розділі, обсяг вільного простору та міститься інформація про те, де шукати незайняті ділянки. При запуску ОС суперблок зчитується в пам'ять і всі зміни файлової системи спочатку знаходять відображення копії суперблоку, що знаходиться в ОП, і записуються на диск тільки періодично. Це дозволяє підвищити продуктивність системи, оскільки багато користувачів та процеси постійно оновлюють файли. З іншого боку, при вимкненні системи суперблок обов'язково має бути записаний на диск, що не дозволяє вимикати комп'ютер простим вимкненнямживлення. В іншому випадку, при наступному завантаженні інформація, записана в суперблоці, не відповідає реальному стану файлової системи.

Суперблок має таку структуру

Назва поля

Тип

Коментар

s_inodes_count

ULONG

Число індексних дескрипторів у файловій системі

s_blocks_count

ULONG

Число блоків у файловій системі

s_r_blocks_count

ULONG

Число блоків, зарезервованих для суперкористувача

s_free_blocks_count

ULONG

Лічильник числа вільних блоків

s_free_inodes_count

ULONG

Лічильник числа вільних індексних дескрипторів

s_first_data_block

ULONG

Перший блок містить дані. Залежно від розміру блоку, це поле може дорівнювати 0 або 1.

s_log_block_size

ULONG

Індикатор розміру логічного блоку: 0 = 1 Кб; 1 = 2 Кб; 2 = 4 Кб.

s_log_frag_size

LONG

Індикатор розміру фрагментів (здається, поняття фрагмента нині немає)

s_blocks_per_group

ULONG

Число блоків у кожній групі блоків

s_frags_per_group

ULONG

Число фрагментів у кожній групі блоків

s_inodes_per_group

ULONG

Число індексних дескрипторів (inodes) у кожній групі блоків

s_mtime

ULONG

Час, коли востаннє було змонтовано файлову систему.

s_wtime

ULONG

Час, коли востаннє проводився запис у файлову систему

s_mnt_count

USHORT

Лічильник числа монтувань файлової системи. Якщо цей лічильник досягає значення, вказаного в наступному полі (s_max_mnt_count), файлова система має бути перевірена (це робиться під час перезапуску), а лічильник обнулюється.

s_max_mnt_count

SHORT

Число, що визначає, скільки разів може бути змонтована файлова система

s_magic

USHORT

"Магічне число" (0xEF53), що вказує на те, що файлова система належить до типу ex2fs

s_state

USHORT

Прапори, що вказує на поточний стан файлової системи (чи є вона чистою (clean) і т.п.)

s_errors

USHORT

Прапори, які визначають процедури обробки повідомлень про помилки (що робити, якщо знайдені помилки).

s_pad

USHORT

Заповнення

s_lastcheck

ULONG

Час останньої перевірки файлової системи

s_checkinterval

ULONG

Максимальний період між перевірками файлової системи

s_creator_os

ULONG

Вказівка ​​на тип ОС, у якій створено файлову систему

s_rev_level

ULONG

Версія (revision level) файлової системи.

s_reserved

ULONG

Заповнення до 1024 байт

Після суперблоком розташовано опис групи блоків (Group Descriptors). Цей опис є масивом, що має наступну структуру.

Назва поля

Тип

Призначення

bg_block_bitmap

ULONG

Адреса блоку, що містить бітову карту блоків (block bitmap) цієї групи

bg_inode_bitmap

ULONG

Адреса блоку, що містить бітову карту індексних дескрипторів (inode bitmap) цієї групи

bg_inode_table

ULONG

Адреса блоку, що містить таблицю індексних дескрипторів (inode table) цієї групи

bg_free_blocks_count

USHORT

Лічильник числа вільних блоків у цій групі

bg_free_inodes_count

USHORT

Число вільних індексних дескрипторів у цій групі

bg_used_dirs_count

USHORT

Число індексних дескрипторів у цій групі, які є каталогами

bg_pad

USHORT

Заповнення

bg_reserved

ULONG

Заповнення

Розмір опису групи блоків можна обчислити як (розмір_групи_блоків_в_ext2 * число_груп) / розмір_блоку(за потреби округляємо).

Інформація, яка зберігається в описі групи, використовується для того, щоб знайти бітові картки блоків та індексних дескрипторів, а також таблицю індексних дескрипторів. Не забувайте, що блоки та групи блоків нумеруються починаючи з 1.

Бітова карта блоків (block bitmap) - це структура, кожен біт якої показує, чи відведений відповідний йому блок якомусь файлу. Якщо біт дорівнює 1, то блок зайнятий. Ця карта служить для пошуку вільних блоків у тих випадках, коли треба виділити місце під файл. (число_блоків_у_групі / 8) / розмір_блоку(за потреби округляємо).

Бітова карта індексних дескрипторів виконує аналогічну функцію стосовно таблиці індексних дескрипторів: показує які саме дескриптори зайняті.

Наступна область у структурі групи блоків служить зберігання таблиці індексних дескрипторів файлів. Структура самого індексного дескриптора докладніше у наступному підрозділі.

Ну, і нарешті, все місце в групі блоків відводиться для зберігання власне файлів.

Файлова система Ext 2 характеризується:

  • ієрархічною структурою,
  • узгодженою обробкою масивів даних,
  • динамічним розширенням файлів,
  • захистом інформації у файлах,
  • трактуванням периферійних пристроїв (таких як термінали та стрічкові пристрої) як файлів.

Внутрішнє представлення файлів

Кожен файл у системі Ext 2 має унікальний індекс. Індекс містить інформацію, необхідну для будь-якого процесу для того, щоб звернутися до файлу. Процеси звертаються до файлів, використовуючи чітко визначений набір системних дзвінків та ідентифікуючи файл рядком символів, які є складовим ім'ям файлу. Кожне складене ім'я однозначно визначає файл, завдяки чому ядро ​​системи перетворює це ім'я в індекс файлу. Індекс включає таблицю адрес розташування інформації на диску. Так як кожен блок на диску адресується за своїм номером, у цій таблиці зберігається сукупність номерів дискових блоків. З метою підвищення гнучкості ядро ​​приєднує до файлу по одному блоку, дозволяючи інформації файлу розкидати по всій файловій системі. Але така схема розміщення ускладнює завдання пошуку даних. Таблиця адрес містить список номерів блоків, що містять належну файлу інформацію, проте прості обчислення показують, що лінійним списком блоків файлу в індексі важко управляти. Для того, щоб невелика структура індексу дозволяла працювати з великими файлами, таблиця адрес дискових блоків приводиться у відповідність до структури показаної на Рисунку 1

Більшість файлів у системі Ext 2 має розмір, що не перевищує 10 Кбайт і навіть 1 Кбайта! Оскільки 10 Кбайт файлу розташовуються в блоках прямої адресації, до більшої частини даних, що зберігаються у файлах, доступ може здійснюватися за одне звернення до диска. Тому на відміну від звернення до великих файлів робота з файлами стандартного розміру протікає швидко.

Індексні дескриптори файлів

Кожному файлу на диску відповідає один і один індексний дескриптор файлу, який ідентифікується своїм порядковим номером - індексом файлу. Це означає, що кількість файлів, які можуть бути створені у файловій системі, обмежена кількістю індексних дескрипторів, яка або явно задається при створенні файлової системи, або обчислюється виходячи з фізичного об'єму дискового розділу. Індексні дескриптори існують на диску в статичній формі і ядро ​​зчитує їх на згадку перш, ніж почати з ними працювати.

Індексний дескриптор файлу має таку будову:

Назва поля

Тип

Опис

I_mode

USHORT

Тип і права доступу до файлу.

I_uid

USHORT

Ідентифікатор власника файлу (Owner Uid).

I_size

ULONG

Розмір файлу у байтах.

I_atime

ULONG

Час останнього звернення файлу (Access time).

I_ctime

ULONG

Час створення файлу.

I_mtime

ULONG

Час останньої модифікації файлу.

I_dtime

ULONG

Час видалення файлу.

I_gid

USHORT

Ідентифікатор групи (GID).

I_links_count

USHORT

Лічильник числа зв'язків (Links count).

I_blocks

ULONG

Число блоків, які займає файл.

I_flags

ULONG

Прапори файлу (File flags)

I_reserved1

ULONG

Зарезервовано для ОС

I_block

ULONG

Вказівники на блоки, в яких записані дані файлу (приклад прямої та непрямої адресації на рис.1)

I_version

ULONG

Версія файлу (для NFS)

I_file_acl

ULONG

ACL файлу

I_dir_acl

ULONG

ACL каталогу

I_faddr

ULONG

Адреса фрагмента (Fragment address)

I_frag

UCHAR

Номер фрагменту (Fragment number)

I_fsize

UCHAR

Розмір фрагмента (Fragment size)

I_pad1

USHORT

Заповнення

I_reserved2

ULONG

Зарезервовано

Поле типу та прав доступу до файлу є дво-байтове слово, кожен біт якого служить прапором, що індикує ставлення файлу до певного типу або встановлення одного конкретного права на файл.

Ідентифікатор

Значення

Призначення прапора (поля)

S_IFMT

F000

Маска для типу файлу

S_IFSOCK

A000

Доменне гніздо (socket)

S_IFLNK

C000

S_IFREG

8000

Звичайний файл

S_IFBLK

6000

Блок-орієнтований пристрій

S_IFDIR

4000

Каталог

S_IFCHR

2000

Байт-орієнтований (символьний) пристрій

S_IFIFO

1000

Іменований канал (fifo)

S_ISUID

0800

SUID – біт зміни власника

S_ISGID

0400

SGID – біт зміни групи

S_ISVTX

0200

Біт збереження задачі (sticky bit)

S_IRWXU

01C0

Маска прав власника файлу

S_IRUSR

0100

Право на читання

S_IWUSR

0080

Право на запис

S_IXUSR

0040

Право на виконання

S_IRWXG

0038

Маска прав групи

S_IRGRP

0020

Право на читання

S_IWGRP

0010

Право на запис

S_IXGRP

0008

Право на виконання

S_IRWXO

0007

Маска прав інших користувачів

S_IROTH

0004

Право на читання

S_IWOTH

0002

Право на запис

S_IXOTH

0001

Право на виконання

Серед індексних дескрипторів є кілька дескрипторів, які зарезервовані для спеціальних цілей та відіграють особливу роль у файловій системі. Це такі дескриптори

Ідентифікатор

Значення

Опис

EXT2_BAD_INO

Індексний дескриптор, у якому перелічені адреси дефектних блоків на диску (Bad blocks inode)

EXT2_ROOT_INO

Індексний дескриптор кореневого каталогу файлової системи (Root inode)

EXT2_ACL_IDX_INO

ACL inode

EXT2_ACL_DATA_INO

ACL inode

EXT2_BOOT_LOADER_INO

Індексний дескриптор завантажувача (Boot loader inode)

EXT2_UNDEL_DIR_INO

Undelete directory inode

EXT2_FIRST_INO

Перший незарезервований індексний дескриптор

Найважливіший дескриптор у цьому списку – дескриптор кореневого каталогу. Цей дескриптор вказує на кореневий каталог, який, подібно до всіх каталогів, складається з записів наступної структури:

Назва поля

Тип

Опис

Inode

ULONG

номер індексного дескриптора (індекс) файлу

rec_len

USHORT

Довжина цього запису

name_len

USHORT

Довжина імені файлу

Name

CHAR

ім'я файлу

Окремий запис у каталозі неспроможна перетинати кордон блоку (тобто має бути розташована цілком усередині одного блока). Тому, якщо черговий запис не міститься повністю в даному блоці, він переноситься в наступний блок, а попередній запис продовжується таким чином, щоб він заповнив блок до кінця.

Рисунок 1 Блоки прямої та непрямої адресації в індексі

Малюнок 2 Об'єм файлу в байтах при розмірі блоку 1 Кбайт

Рисунок 3. Приклад дискового індексу

На малюнку 3 показаний дисковий індекс деякого файлу. Цей індекс належить звичайному файлу, власник якого - "mjb" та розмір якого 6030 байт. Система дозволяє користувачеві "mjb" робити читання, запис та виконання файлу; членам групи "os" та всім іншим користувачам дозволяється лише читати або виконувати файл, але не записувати в нього дані. Останній раз файл був прочитаний 23 жовтня 1984 о 13:45, запис останній раз проводився 22 жовтня 1984 о 10:30. Індекс змінювався останній раз 23 жовтня 1984 о 13:30, хоча жодна інформація в цей час у файл не записувалася. Ядро кодує всі вищезгадані дані в індексі. Зверніть увагу на різницю в записі на диск вмісту індексу та вмісту файлу. Вміст файлу змінюється лише тоді, коли файл виконується запис. Вміст індексу змінюється як при зміні вмісту файлу, так і при зміні власника файлу, прав доступу та набору покажчиків. Зміна вмісту файлу автоматично викликає корекцію індексу, проте корекція індексу ще не означає зміни вмісту файлу.

Каталоги

Каталоги є файлами, у тому числі будується ієрархічна структура файлової системи; вони відіграють важливу роль у перетворенні імені файлу на номер індексу. Каталог - це файл, вмістом якого є набір записів, що складаються з номера індексу та імені файлу, включеного до каталогу. Складове ім'я - це рядок символів, що завершується порожнім символом і поділяється похилою рисою ("/") на кілька компонентів. Кожна компонента, крім останньої, має бути ім'ям каталогу, але остання компонента може бути ім'ям файлу, що не є каталогом. У версії V системи UNIX довжина кожної компоненти обмежується 14 символами; таким чином, разом із 2 байтами, що відводяться на номер індексу, розмір запису каталогу становить 16 байт.

Зміщення у байтах
всередині каталогу

Номер індексу
(2 байти)

Ім'яфайлу

1798

init

1276

fsck

clri

1268

motd

1799

mount

mknod

2114

passwd

1717

umount

1851

checklist

fsdbld

config

1432

getty

crash

mkfs

Малюнок 4 Формат каталогу /etc

На малюнку 4 показаний формат каталогу "etc". У кожному каталозі є файли, як імена яких вказані точка і дві точки ("." і "..") та номери індексів у яких збігаються з номерами індексів даного каталогу та батьківського каталогу, відповідно. Номер індексу для файлу "." у каталозі "/etc" має адресу зі зміщенням 0 та значення 83. Номер індексу для файлу ".." має адресу зі зміщенням 16 від початку каталогу та значення 2. Записи в каталозі можуть бути порожніми, при цьому номер індексу дорівнює 0. Наприклад , запис з адресою 224 у каталозі "/etc" порожній, незважаючи на те, що вона колись містила точку входу для файлу з ім'ям "crash". mkfs ініціалізує файлову систему таким чином, що номери індексів для файлів "." та ".." у кореневому каталозі збігаються з номером кореневого індексу файлової системи.

Ядро зберігає дані в каталозі так само, як це робить у файлі звичайного типу, використовуючи індексну структуру і блоки з рівнями прямої і непрямої адресації. Процеси можуть читати дані з каталогів так само, як вони читають звичайні файли, проте виняткове право запису в каталог резервується ядром, завдяки чому забезпечується правильність структури каталогу. Права доступу до каталогу мають таке значення: право читання дає процесам можливість читати дані з каталогу; право запису дозволяє процесу створювати нові записи в каталозі або видаляти старі (за допомогою системних операцій creat, mknod, link та unlink), внаслідок чого змінюється вміст каталогу; право виконання дозволяє процесу здійснювати пошук у каталозі на ім'я файлу (оскільки "виконувати" каталог безглуздо).

Коли який-небудь процес використовує шлях до файлу, ядро ​​шукає в каталогах відповідний номер індексного дескриптора. Після того, як ім'я файлу було перетворено в номер індексного дескриптора, цей дескриптор поміщається в пам'ять і потім використовується в наступних запитах.

Концепція файлових систем Unix включає поняття посилання. Один індексний дескриптор може бути пов'язаний з декількома іменами файлів. Дескриптор містить поле, що зберігає число, з яким асоціюється файл. Додавання посилання полягає у створенні запису каталогу, де номер індексного дескриптора вказує на інший дескриптор, і збільшення лічильника посилань в дескрипторі. При видаленні посилання ядро ​​зменшує лічильник посилань і видаляє дескриптор, якщо цей лічильник стане рівним нулю.

Такі посилання називаються жорсткими і можуть використовуватися тільки всередині однієї файлової системи (не можна створити посилання для файлу з іншої файлової системи). Більше того, жорстке посилання може вказувати лише на файл (жорстке посилання на каталог може призвести до зациклювання у файловій системі).

У більшості Unix систем існує ще один тип посилань. Ці посилання, що містять лише ім'я файлу, називаються символічними. При обробці ядром таких посилань, під час перетворення шляху до файлу в індексний дескриптор, ядро ​​замінює ім'я посилання на вміст дескриптора (тобто. на ім'я файлу призначення) і наново інтерп. Так як символічне посилання не вказує на індексний дескриптор, то можливе створення посилань на файли, розташовані в іншій файловій системі. Ці посилання можуть вказувати на файл будь-якого типу, навіть неіснуючий. Символічні посилання широко використовуються, так як вони не мають тих обмежень, які є у жорстких посилань. Однак вони займають деякий обсяг на диску, де розташовується індексний дескриптор і блоки даних. Їх використання може призвести до певних затримок при перетворенні шляху до файлу в індексний дескриптор, що пов'язано з тим, що при обробці символічної посилання ядро ​​повинно заново інтерпретувати шлях до файлу.

Файли пристроїв

У Unix-подібних операційних системах доступ до пристроїв здійснюється через спеціальні файли. Такий файл не займає місця у файловій системі. Він є лише точкою доступу до драйвера пристрою.

Існує два типи файлів пристроїв: символьні та блокові. При використанні символьного типу є можливість обміну даними з пристроєм тільки в символьному режимі, в той час як файли пристроїв блокового типу дозволяють проводити обмін тільки блоками з використанням буфера. При запиті введення/виводу до файлу пристрою цей запит перенаправляється до драйвера відповідного пристрою. Кожному подібному файлу відповідає старший номер, який визначає тип пристрою, та молодший номер, який визначає сам пристрій.

Додаткові можливості EXT2fs

На додаток до стандартних можливостей Unix, EXT2fs надає деякі додаткові можливості, зазвичай не підтримуються файловими системами Unix.

Файлові атрибути дозволяють змінювати реакцію ядра при роботі з наборами файлів. Можна встановити атрибути на файл або каталог. У другому випадку, файли, створювані в цьому каталозі, успадковують ці атрибути.

Під час монтування системи можуть бути встановлені деякі особливості, пов'язані з файловими атрибутами. Опція mount дозволяє адміністратору вибрати особливості створення файлів. У файловій системі з особливостями BSD, файли створюються з тим же ідентифікатором групи, як і у батьківського каталогу. Особливості System V дещо складніші. Якщо у каталогу біт setgid встановлений, то створювані файлинасідають ідентифікатор групи цього каталогу, а підкаталоги успадковують ідентифікатор групи і біт setgid. У протилежному випадку, файли і каталоги створюються з основним ідентифікатором групи викликаючого процесу.

У системі EXT2fs може використовуватися синхронна модифікація даних, подібна системі BSD. Опція mount дозволяє адміністратору вказувати щоб всі дані (індексні дескриптори, блоки бітів, непрямі блоки і блоки каталогів) записувалися на диск синхронно при їх модифікації. Це може бути використане для досягнення високої потності запису інформації, але також призводить до погіршення продуктивності. Насправді, ця функція зазвичай не використовується, так як крім погіршення продуктивності, це може призвести до втрати даних користувачів, які не позначаються при перевірці файлової системи.

EXT2fs дозволяє при створенні файлової системи вибрати розмір логічного блоку. Він може бути розміром 1024, 2048 або 4096 байт. Використання блоків великого об'єму призводить до прискорення операцій введення/виводу (оскільки зменшується кількість запитів до диска), і, отже, до меншого переміщення головок. З іншого боку, використання блоків великого об'єму призводить до втрати дискового простору. Зазвичай останній блок файлу використовується не повністю для зберігання інформації, тому зі збільшенням обсягу блоку, підвищується обсяг теряного дискового простору.

EXT2fs дозволяє використовувати прискорені символічні посилання. При застосуванні таких посилань блоки даних файлової системи не використовуються. Ім'я файлу призначення зберігається не в блоці даних, а в самому індексному дескрипторі. Така структура дозволяє зберегти дисковий простір і прискорити обробку символічних посилань. Звичайно, простір, зарезервований під дескриптор, обмежено, тому не кожне посилання може бути представлена ​​як прискорена. Максимальна довжина імені файлу в прискореному посиланні дорівнює 60 символам. У найближчому майбутньому планується розширити цю схему для файлів невеликого обсягу.

EXT2fs слідкує за станом файлової системи. Ядро використовує окреме поле в суперблокі для індикації стану файлової системи. Якщо файлова система змонтована в режимі read/write, її стан встановлюється як "Not Clean". Якщо ж вона демонтована або змонтована заново в режимі read-only, її стан встановлюється в "Clean". Під час завантаження системи і перевірці стану файлової системи, ця інформація використовується для визначення необхідності перевірки файлової системи. Ядро також поміщає в це поле деякі помилки. При визначенні ядром невідповідності, файлова система позначається як "Erroneous". Програма перевірки файлової системи тестує цю інформацію для перевірки системи, навіть якщо її стан є насправді "Clean".

Тривале ігнорування тестування файлової системи іноді може призвести до деяких труднощів, тому EXT2fs включає два методи для регулярної перевірки системи. У суперблоку міститься лічильник монтування системи. Цей лічильник збільшується кожен раз, коли система монтується в режимі read/write. Якщо його значення досягає максимального (воно також зберігається в суперблоку), то програма тестування файлової системи запускає її перевірку, навіть якщо її стан є "Clean". Останній час перевірки і максимальний інтервал між перевірками також зберігається в суперблоку. Коли ж досягається максимальний інтервал між перевірками, то стан файлової системи ігнорується і запускається її перевірка.

Система EXT2fs містить засоби для її настроювання. Програма tune2fs може використовуватися для зміни:

  • дій при виявленні помилки. При визначенні ядром невідповідності, файлова система позначається як "Erroneous" і може бути виконано одну з трьох наступних дій: продовження виконання, монтування заново файлової системи в режимі read-only щоб уникнути її пошкодження, перезавантаження системи для перезавантаження системи.
  • максимального значення монтування.
  • максимального інтервалу між перевірками.
  • кількості логічних блоків, зарезервованих для користувача root.

Опції, що вказуються при монтуванні, можуть також використовуватися для зміни дій при визначенні помилки ядром.

Використання атрибутів дозволяє користувачам видаляти секретні файли. При видаленні подібного файлу, в блоки, які раніше використовувалися для розміщення цього файлу, записується випадкова інформація. Це запобігає отримання доступу до попереднього вмісту цього файлу стороннім, за допомогою дискового редактора.

У систему EXT2fs нещодавно були додані нові типи файлів, які були взяті з файлової системи 4.4 BSD. Файли першого типу можуть використовуватися тільки для читання: ніхто не має права їх змінювати або видаляти. Це може використовуватися для захисту важливих конфігураційних файлів. Інший тип файлів, це файли, які можуть бути відкриті в режимі запису, і дані можуть бути тільки додані в кінець цього файлу. Файли такого типу також не можуть бути видалені або перейменовані. Вони можуть використовуватися як журнальні файли, які можуть тільки збільшуватися в обсязі.

Оптимізація продуктивності

Система EXT2fs містить багато функцій, що оптимізують її продуктивність, що веде до підвищення швидкості обміну інформацією при читанні та запису файлів.

EXT2fs активно використовує дисковий буфер. Коли блок повинен бути зчитаний, ядро ​​видає запит операції введення/виводу на кілька поруч розташованих блоків. Таким чином, ядро ​​намагається переконатися, що наступний блок, який повинен бути рахований, вже завантажений в дисковий буфер. Подібні операції зазвичай проводяться при послідовному зчитуванні файлів.

Система EXT2fs також містить велику кількість оптимізацій розміщення інформації. Групи блоків використовуються для об'єднання відповідних індексних дескрипторів і блоків даних. Ядро завжди намагається розмістити блоки даних одного файлу в одній групі, так само як і його дескриптор. Це призначено для зменшення переміщення головок приводу при зчитуванні дескриптора та відповідних йому блоків даних.

При записі даних у файл, EXT2fs заздалегідь розміщує до 8 суміжних блоків при розміщенні нового блоку. Такий метод дозволяє досягти високої продуктивності при сильній завантаженості системи. Це також дозволяє розміщувати суміжні блоки для файлів, що вкорочує їхнє подальше читання.

Бібліотека EXT2fs

Для спрощення використання ресурсів EXT2fs і оперування контрольними структурами цієї файлової системи, була розроблена бібліотека libext2fs. У цій бібліотеці містяться функції, які можуть використовуватися для визначення та зміни даних файлової системи EXT2 шляхом прямого доступу до фізичного пристрою.

Більшість утиліт EXT2fs (mke2fs, e2fsck, tune2fs, dumpe2fs, debugfs, та ін) використовують цю бібліотеку. Це сильно спрощує модифікацію цих утиліт, так як будь-які зміни для введення додаткових можливостей у файлову систему EXT2fs повинні бути зроблені тільки в бібліотеці EXT2fs.

Так як інтерфейс бібліотеки EXT2fs досить широкий і абстрактний, то з її допомогою можуть бути легко написані програми, для роботи яких потрібно прямий доступ до файлової системи. Наприклад, бібліотека EXT2fs використовувалася під час переносу дампа 4.4 BSD і відновлення деяких утиліт. Потрібно зробити дуже мало змін для адаптації цих засобів до Linux (довелося замінити кілька функцій, що взаємодіють з файловою системою, на виклики в бібліотеку EXT2fs).

Бібліотека EXT2fs надає доступ до операцій кількох класів. Перший клас - це операції, пов'язані з файловою системою. Будь-яка програма може відкрити або закрити файлову систему, рахувати або записати блок бітів, створити нову файлову систему на диску. Існують також функції оперування списком поганих блоків файлової системи.

Другий клас операцій працює з каталогами. Програма, що використовує бібліотеку EXT2fs, може створити або розширити каталог, також як додати або видалити записи в каталозі. Існують функції як визначення по індексному дескриптору шляху до файлу, так і визначення шляху до файлу за вказаним дескриптором.

Останній клас операцій оперує з індексними дескіпторами. Є можливість вважати таблицю дескрипторів, рахувати або записати дескриптор, проглянути всі блоки зазначеного дескриптора. Можливе застосування функцій розміщення та звільнення блоків і дескрипторів.

Засоби системи EXT2fs

Для системи EXT2fs були розроблені потужні засоби управління. Ці засоби використовуються для створення, модифікації та корекції будь-яких невідповідностей у файлових системах EXT2fs. Програма mke2fs використовується для встановлення дискового розділу, що містить порожню файлову систему EXT2fs.

Програма tune2fs може бути використана для настроювання параметрів файлової системи. З її допомогою може бути змінена реакція на виникаючі помилки, максимальна кількість монтування системи, максимальний інтервал між перевірками системи і кількість логічних блоків, зарезервованих для користувача root.

Можливо, найбільш цікавим засобом є програма перевірки файлової системи. E2fsck призначена для усунення невідповідностей у файловій системі після неакуратного завершення роботи всієї системи. Початкова версія програми e2fsck заснована на програмі Linus Torvald fsck для файлової системи Minix. Однак, поточна версія програми переписана з використанням бібліотеки EXT2fs і є більш швидкою і може виправити більшу кількість помилок в системі при її перевірці, у порівнянні з початковою версією.

Програма e2fsck розроблялася таким чином, щоб вона виконувалася з максимальною швидкістю. Так як програми перевірки файлової системи призводять до завантаження диска, то слід оптимізувати алгоритми роботи e2fsck таким чином, що звернення до структур файлової системи вироблялося б набагато рідше. І, до того ж, порядок перевірки індексних дескрипторів і каталогів виконувався б за номером блоку для зменшення часу переміщення головок дискового накопичувача.

У першому проході e2fsck проходить по всіх індексних дескрипторах файлової системи і перевіряє кожен дескриптор як окремий елемент системи. Таким чином, при цьому тестуванні не перевіряються інші об'єкти файлової системи. Однією з цілей таких перевірок є перевірка існування типу файлу, що перевіряється, а також відповідність всіх блоків в дескрипторі з блоками з існуючими номерами. У першому проході перевіряються карти бітів, що вказують використання блоків і дескрипторів.

Якщо e2fsck знаходить блоки даних, номери яких містяться в більш ніж одному дескрипторі, то запускаються проходи з 1B по 1D для з'ясування невідповідності - або шляхом збільшення блоків, що розділяються, або видаленням одного або більше дескрипторів.

Перший прохід займає найбільше часу, тому що всі індексні дескриптори повинні бути раховані в пам'ять і перевірені. Для зменшення часу операцій введення/виводу в наступних проходах, вся необхідна інформація залишається в буфері. Характерною рисою цієї схеми є пошук всіх блоків каталогів файлової системи. Для отримання цієї інформації, у другому проході зчитуються заново структури дескрипторів всіх каталогів файлової системи.

У другому проході каталоги перевіряються як окремі елементи файлової системи. Блок кожного каталогу перевіряється окремо, без посилання на інші блоки каталогів. Це дозволяє e2fsck відсортувати всі блоки каталогів за номерами блоків і перевірити їх в порядку повстання, таким чином зменшуючи час доступу до диска. Блоки каталогів тестуються для перевірки відповідності дійсності їх записів і що вони містять посилання на дескриптори з існуючими номерами (як було визначено в першому проході).

Для першого блоку каталогу в кожному дескрипторі каталогу, перевіряється існування записів "." і "..", і що номер дескриптора для запису "." відповідає поточному каталогу. (Номер дескриптора для запису ".." не тестується до третього проходу.)

Під час виконання другого проходу, інформація, що відповідає батьківському каталогу, зберігається в буфері.

Слід зазначити, що до кінця другого проходу завершуються майже всі операції вводу/виводу з диском. Вся інформація, потрібна для третього, четвертого і п'ятого проходів, міститься в пам'яті, однак, що залишилися проходи завантажують процесор і займають менше 5-10% часу від загального виконання e2fsck.

У третьому проході перевіряються зв'язки каталогів. E2fsck перевіряє шляхи кожного каталогу за напрямом до кореневого, використовуючи інформацію, отриману під час другого проходу. Тут же перевіряється запис ".." для кожного каталогу. Всі каталоги, виявлені після перевірки і не мають зв'язку з кореневим, поміщаються в каталог /lost+found.

У четвертому проході e2fsck перевіряє лічильники посилань для кожного індексного дескриптора шляхом перегляду всіх дескрипторів і порівняння лічильників посилань (ця інформація зберігається з першого проходу). і третього проходів. Усі невіддалені файли з нульовим лічильником посилань також розміщуються в каталогі /lost+found.

І, нарешті, в п'ятому проході e2fsck перевіряє відповідність всієї інформації про файлову систему. Тут порівнюються карти бітів блоків і дескрипторів, які були отримані в попередніх проходах, з дійсними значеннями і, при необхідності, інформація на диску відповідним чином коректується.

Іншим корисним засобом є наладчик файлової системи. Debugfs - це потужна програма, що дозволяє визначити та встановлювати стан файлової системи. По суті, вона є інтерактивним інтерфейсом до бібліотеки EXT2fs, тобто транслює набрані команди у виклики функцій бібліотеки.

Debugfs може бути використана для визначення внутрішньої структури файлової системи, ручного відновлення пошкодженої системи або створення умовних тестів для e2fsck. На жаль, ця програма може пошкодити файлову систему, якщо не знати як нею користуватися. За допомогою цього засобу досить просто знищити файлову систему. Тому debugfs відкриває файлову систему в режимі read-only за умовчанням. Для доступу до режиму read/write слід вказати опцію -w.

Обчислення продуктивності

Результати тесту Bonnie видно з наступної таблиці:

Посимвольний запис (Кб/с)

Поблочний запис (Кб/с)

Перепис (Кб/с)

Посимвольне читання (Кб/с)

Поблочне читання (Кб/с)

BSD Async

BSD Sync

Ext2 fs

1237

1033

Xia fs

Результати досить хороші при блочному вводі/виводі: система EXT2fs виграє за продуктивністю інші системи. Це пов'язано з оптимізацією, включеною в процедури розміщення. Запис відбувається також досить швидко, з причини того, що вона проводиться в гупповом режимі. Висока швидкість читання пов'язана з тим, що блоки були розподілені у файл, тому головки приводу не переміщуються між двома зчитуваннями і оптимізація попереднього зчитування повністю працює.

З іншого боку, у системи FreeBSD при символьному введенні/виводі продуктивність вище. Можливо це пов'язано з тим, що FreeBSD і Linux використовують різні процедури відповідних C бібліотек. До того ж, у FreeBSD швидше за все більш оптимізована бібліотека символьного зчитування і тому тут продуктивність дещо краща.

Результати тесту Andrew

Результати тесту Andrew видно з наступної таблиці:

Прохід 1 Створення

Прохід 2 Копіювання

Прохід 3 Перевірка статусу

Прохід 4 Побайтова перевірка

Прохід 5 Компіляція

2203

7391

6319

17466

75314

BSD Sync

2330

7732

6317

17499

75681

Ext2 fs

Результати перших двох проходів показують, що Linux виграє при асинхронному обміні даними. При створенні каталогів і файлів, система BSD синхронно записує дескриптори і записи каталогів. Є припущення, що асинхронна підтримка для FreeBSD ще не повністю впроваджена.

У третьому проході значення у Linux і BSD дуже схожі. У той час як продуктивність у BSD вище, додавання буфера для імен файлів у VFS системи Linux усуває цю проблему.

У четвертому і п'ятому проходах Linux працює швидше FreeBSD, в основному за причиною використання об'єднаного управління буфером. Об'єм буфера може зростати при необхідності і займати більше пам'яті, ніж у FreeBSD, де використовується фіксований обсяг. Порівняння результатів систем EXT2fs і Xia fs показує, що оптимізація, включена в EXT2fs, дійсно використовується: різниця в продуктивності цих систем становить близько 5-10%.

Висновок

Файлова система EXT2 є найбільш широко використовується в колах користувачів Linux. Вона надає стандартні можливості Unix і додаткові функції. Більше того, завдяки оптимізації, включеній в ядер, вона показує відмінні результати по продуктивності.

Система EXT2fs включає функції, що дозволяють додавати нові можливості. Деякі люди працюють над розробкою розширень для справжньої файлової системи: список контролю доступу, відповідний стандарту Posix, відновлення віддалених файліві стиснення файлів у реальному масштабі часу.

Спочатку система EXT2fs була інтегрована в ядро ​​Linux, а тепер вона активно переноситься на інші операційні системи. EXT2fs також є важливою складовою операційної системи Masix, яка в даний момент розробляється одним з авторів.


Top