Як зберігаються структури каталогів у файловій системі UNIX?


8

Я читав, що кожен каталогі зберігають свій вміст (файли та підкаталоги), використовуючи список імен файлів і пар inode. Але жоден із посилань, які я отримав, не сказав нічого про те, як вони зберігаються.

Чи зберігаються вони в inode їхнього батьківського каталогу, використовуючи блоки даних, як звичайний файл, або, можливо, використовують інші способи, про які я не знаю?

Дякуємо за роз’яснення.


Не існує єдиного способу зберігання файлів Unix. Подібно до єдиного способу, як Windows зберігає файли, немає. В обох випадках це залежить від використовуваної файлової системи. (FAT, NTFS, ext2, UFS, ...)
Геннес

Для файлових систем структура каталогу на диску визначена у dirent.h, і ви повинні використовувати libcalls opendir / readdir / closedir тощо для доступу до вмісту.
ott--

Відповіді:


10

Дивіться внутрішні файлові системи, які досить просто окреслюють внутрішні типи типової файлової системи Unix.

введіть тут опис зображення

Більшість файлових систем Unix містять

  • Завантажувальний блок
  • Суперблок (геометрія диска, макет розділу, кількість inode тощо)
  • Блоки Inode
  • Блоки даних

Сучасні файлові системи містять додаткові структури.

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

Каталог - це спеціально відформатований файл. Як і у всіх звичайних файлах, у нього є блоки даних.

Ви можете побачити це у проекті документації Linux: Файлова система

введіть тут опис зображення

Ви можете використовувати debugfsдля вивчення цих структур.


2
"Каталог - це спеціально відформатований файл. Як і у всіх звичайних файлах, він містить блоки даних." Тож чи каталоги зберігають свої імена файлів-inode пар (крайній лівий стіл на 1-му малюнку або рядок на 2-му малюнку) у своїх блоках даних?
Ока

1
@Oka: Це правильно.
RedGrittyBrick

Отже, щоб було зрозуміло, каталог - це файл, тому він зберігається у блоці даних. ext4Наприклад, кожен каталог у файловій системі (що представляє собою ext4_dir_entry_2263 байт), один блок 4 КБ може зберігати близько 15 записів каталогів?
campescassiano
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.