что происходит, когда процесс пытается открыть файл - PullRequest
0 голосов
/ 29 октября 2019

Я пытался понять, как процесс открывает файл, и запутался:

  1. Одна из тех вещей, которые я прочитал, упоминала, что когда процесспытается прочитать файл, сохраненный на диске, файл загружается в RAM и в виртуальную память процесса - оттуда процесс может получить доступ к файлу и редактировать его.

  2. Другой способ Я прочитал сказал, что, когда процесс пытается открыть файл с помощью

    open("\a\b\file.txt",O_RDONLY)
    

Что происходит, так это то, что ядро ​​создает dentry для каждого компонента пути к файлу, а затем ищет в dentry файла. Этот Дентри указывает на файловый индекс. Затем создается объект файла, и из функции возвращается дескриптор файла. Теперь в процессах FDT возвращаемый дескриптор файла указывает на созданный файловый объект, который указывает на файл dentry, который указывает на файловый индекс и на индексную точку, и на суперблок и на диск . Например:
fd -> объектный файл -> dentry -> inode -> суперблок и диск .

Поэтому мой вопрос заключается в том, как процесс читаетфайл с его виртуальной машины (optin1) или с диска с использованием объектного файла (опция2)?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...