Я пытался понять, как процесс открывает файл, и запутался:
Одна из тех вещей, которые я прочитал, упоминала, что когда процесспытается прочитать файл, сохраненный на диске, файл загружается в RAM и в виртуальную память процесса - оттуда процесс может получить доступ к файлу и редактировать его.
Другой способ Я прочитал сказал, что, когда процесс пытается открыть файл с помощью
open("\a\b\file.txt",O_RDONLY)
Что происходит, так это то, что ядро создает dentry для каждого компонента пути к файлу, а затем ищет в dentry файла. Этот Дентри указывает на файловый индекс. Затем создается объект файла, и из функции возвращается дескриптор файла. Теперь в процессах FDT возвращаемый дескриптор файла указывает на созданный файловый объект, который указывает на файл dentry, который указывает на файловый индекс и на индексную точку, и на суперблок и на диск . Например:
fd -> объектный файл -> dentry -> inode -> суперблок и диск .
Поэтому мой вопрос заключается в том, как процесс читаетфайл с его виртуальной машины (optin1) или с диска с использованием объектного файла (опция2)?