Как проверить, какой процесс инициирован sys_open - PullRequest
1 голос
/ 02 ноября 2009

Я учусь на операционных системах, и мы работаем в Linux (Red Hat 8.0). Я пытаюсь реализовать трекер открытия и закрытия файлов, который будет сохранять для каждого процесса историю файлов, которые он открывает и закрывает. Я ожидал, что sys_open будет близок к тому, чтобы также принять идентификатор процесса и использовать его для доступа к истории процесса, инициировавшего вызов, и его обновления (делая обновление частью функции sysopen, закройте функции). Однако эти функции не принимают pid в качестве параметра, поэтому я немного растерялся относительно того, как связать открытие / закрытие файлов с процессом, который его инициировал. Мое единственное предположение состоит в том, что, поскольку в любой момент времени существует только один активный процесс, его метаданные должны каким-то образом быть глобальными, но я понятия не имею, где и как его найти. Любой совет будет принят во внимание.

1 Ответ

3 голосов
/ 02 ноября 2009

Вы собираетесь сделать это в пространстве ядра? Учитывая, что вы смотрели непосредственно на sys_open и т. Д., Которые находятся в пространстве ядра, IIRC, вы можете использовать текущий указатель, чтобы увидеть pid процесса current (current->pid).

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