Я пытаюсь понять, как работает файловая система UNIX в отношении inodes. Как я понимаю, каталог представлен как просто таблица с записью формы [name: inode] для каждого подкаталога или файла.Как файловая система UNIX формирует структуру с узлами
Где я смущен, так это то, как эти каталоги образуют структуру. Если бы у меня был каталог «root», содержащий подкаталог «home», который содержит файл «file.txt», то я полагаю, что корневой каталог будет иметь запись ['home' :(home related inode)], но тогда как эта ссылка в таблицу «home»?
Любая помощь или руководство будет оценено, Бен
Спасибо, это очень полезно! Вы отмечаете, что содержимое хранится с помощью указателей на блоки блоков, являются ли номера индексных номеров указателями на другие местоположения inode на диске или они управляются каким-то другим способом? – BenJacob
@BenJacob Это я менее уверен, и я думаю, что разные реализации файловой системы делают это по-разному. Я думаю, что обычно существует структурированное сопоставление между инодами и блоками дисков. Например, блок 100 диска может содержать inodes 10-19, блок 200 диска может содержать inodes 20-29 и т. Д. Записи каталога в каталоге inodes сопоставляются с номерами inode, указатели блоков диска в inodes указывают на номера блоков диска. Чтобы преобразовать номер inode 'i' в блок диска, возьмите' (i/10) * 100', а затем посмотрите на '(i% 10)' -й inode в этом блоке. Или что-то типа того. –
Я вижу, что в этой конфигурации я прав, полагая, что количество индексов и блоков фиксировано, и когда мы создаем каталог, мы просто заполняем пустой индексный дескриптор новой информацией? – BenJacob