Я читаю о файловой системе EXT2, и я получил представление об этом. Каждая файловая система состоит из данных и метаданных (inode). Файловая система разделена на несколько блоков с 4 основными блоками, содержащими информацию о других блоках.
Как происходит взаимодействие, если мы пытаемся открыть файл из пространства пользователя?
Когда пользователь вызывает системный вызов open()
, как файл находится через номер инода и как идентифицируется содержимое, сохраненное в следующем блоке?
open()
вызывает sys_open()
которая, в свою очередь, вызывает do_path_search()
, ища номер инода с именем файла. Он получает номер индекса, который содержит адрес блоков данных, просматривая таблицу номеров индексов.
- Как он ищет оставшийся непрерывный блок?
- Как он определяет, какую файловую систему нужно искать, чтобы получить правильный файл?
- Как файловая структура поддерживается несколькими процессами, обращающимися к одному и тому же файлу?