Какая структура данных используется для хранения ваших inode? - PullRequest
0 голосов
/ 06 ноября 2018

Насколько я понимаю, у каждого файла есть индекс, который содержит местоположение блока данных и некоторые метаданные об этом файле. Каков метод, в котором эти inode также хранятся и на которые ссылаются? Я спрашиваю не о самой структуре инода, а о том, как мы дифференцируем каждую по номеру инода. Есть ли у нас новая структура таблицы inode, вроде растрового изображения? массив, скажем, inodes [0] будет иметь смысл для доступа к номеру inode, равному нулю.

или я думаю, что я скучаю по пониманию. В нашей файловой системе мы храним Inode в первых блоках памяти, так что наш первый блок памяти - это inode1, а для доступа ко второму иноду вы достигаете второй блок памяти, указывая точку начала памяти плюс размер блока память

1 Ответ

0 голосов
/ 07 ноября 2018

enter image description here

Это возможный формат диска для простой файловой системы. Загрузочный блок содержит специальные данные, используемые для запуска всей системы. Суперблок содержит информацию, описывающую файловую систему. После суперблока может быть раздел памяти, выделенный для битовой карты, которая отслеживает, как неиспользуемые блоки в системе. После растрового изображения есть раздел inode.

У вас может быть таблица инодов, которая представляет собой массив структур инодов, которые будут выполнять перевод номера инода в инод для вас. Это было бы так же просто, как inode_table [0].

В качестве альтернативы, и вот как я узнал об этом в своем системном классе, если у вас есть функции для чтения и записи секторов с физического диска, и вы знаете, для какого сектора начинается раздел inode, а также размер сектора и размер индекс в байтах, используя немного арифметических и модульных операций, вы можете легко извлечь конкретный индекс из файловой системы без использования таблицы индексов.

...