2009-11-02 5 views
1

나는 운영 체제에서 강의를 듣고 있으며 Linux (Red Hat 8.0)에서 작업합니다. 모든 파일 열기 및 닫기 파일의 기록을 저장할 파일 닫기, 닫기 추적기 구현하려면 노력하고있어. 나는 sys_open이 프로세스 ID를 받아 들일 것을 기대했으며 호출을 시작한 프로세스의 히스토리에 액세스하고이를 업데이트 할 수 있다고 (sysopen의 일부를 업데이트하고 닫기 기능을 사용하여) 업데이트 ID를 사용할 수있을 것으로 기대했다. 그러나 이러한 함수는 pid를 매개 변수로 받아들이지 않으므로 시작/종료 파일을 시작한 프로세스와 연관시키는 방법에 대해 다소 분실했습니다. 내 유일한 추측은 어떤 주어진 시간에 활성 프로세스가 하나 뿐이므로 메타 데이터는 어떤 방식 으로든 전역 적이어야하지만 어디에서 어떻게 찾을 수 있는지 전혀 알지 못합니다. 어떤 조언을 주시면 감사하겠습니다.어떤 프로세스가 sys_open을 시작했는지 확인하는 방법

답변

3

커널 공간에서이 작업을 수행 하시겠습니까? 커널 공간 인 IIRC에있는 sys_open 등을 직접보고 있었기 때문에 현재 포인터를 사용하여 current 프로세스의 PID (current->pid)를 볼 수 있습니다.

+0

나는 그의 질문을 오해 한 것 같습니다. 어떻게 든 커널에서 커널을 지키고 싶다는 생각이 들었습니다. –

+0

@tinkertim - 또는 어쩌면 내가 오해했다 ... 우리는 기다려 볼게 :) – abyx

+0

아니, 당신이 맞습니다, 나는 이것이 커널 공간에 있기를 원했습니다. 감사. –

관련 문제