Файлова система ext2, osdev wiki, fandom powered by wikia
ext2 прийшла на заміну більш давньої ФС ext. Завдяки своїй Сокор вона може служити еталоном в тестах продуктивності файлових систем, але швидкість була досягнута завдяки відмові від технології журналирования, що робить її непоганий системою для SSD накопичувачів, тому що Відсутність журналирования є в даному випадку перевагою.
Фізична організація файлової системи Правити
Файлову систему можна представити у вигляді такої структурної схеми:
- Суперблок (Superblock)
- Опис групи блоків (Block Group Descriptors)
- Бітова карта блоків (Blocks Bitmap)
- Бітова карта індексних дескрипторів (Inode Bitmap)
- Таблиця індексних дескрипторів (Inode Table)
- дані
Весь простір розділу диска розбивається на так звані блоки, які мають порядкові номери. Блоки мають фіксований розмір і кратні розміру сектора (1024,2048,4096.). Для зменшення кількості переміщень головки жорсткого диска блоки об'єднують в групи блоків.
Одним з базових понять ext2 є поняття індексного дескриптора (inode, инод, айнод). Це спеціальна структура, яка містить в собі інформацію про фізичне розташування файлу / директорії / посилання і т.п. і його атрибутах.
суперблок Правити
Суперблок - одне з базових понять у ФС ext2. Суперблок містить в собі загальну інформацію про файлову систему і знаходиться в 1 кілобайті від початку розділу. Від цілісності суперблоку сильно залежить працездатність ФС, і багато ОС створюють його резервні копії на випадок пошкодження. Блок у вигляді структури на мові програмування С представлений нижче:
BGD Правити
BGD таблиця містить індексні дескриптори для кожної групи блоків файлової системи і розташований відразу після суперблоку. Таким чином, якщо вказано, що розмір блоку становить 1 кб, то блок з таблицею починається в другому блоці. Блоки нумеруються з нуля, і номери блоків не відповідають їх фізичному знаходженню. Формат дескриптора групи блоків у вигляді структури наведено нижче:
Індексні дескриптори Правити
У першій версії файлової системи індексні дескриптори мали фіксований розмір в 128Кб, починаючи з версії 1.0 розмір инода вказується у відповідному полі суперблоку. Як і блоки, кожен дескриптор має свій номер, відмінність лише в тому, що нумерація иноді починається з одиниці. До версії Ext2 1.0 дескриптори з 1 по 10 були зарезервовані, але починаючи з версії 1.0 перший незарезервірованних инод відбивається за допомогою поля в суперблоці. Другий инод має найбільше значення, так як він використовується для кореневого каталогу.
Пошук місцезнаходження дескриптора Правити
Для визначення того, яку групу блоків "представляє" даний індексний дескриптор, можна скористатися формулою:
де s_inodes_per_group відповідне поле в суперблоці (див. Суперблок).
де% - розподіл по модулю.
Читання інформації з дескриптора Правити
Тип файлу і права доступу Правити
У верхніх чотирьох бітах (15 по 12) поля i_mode знаходяться опису типу файлу, а в інших - права доступу.