실행중인 프로세스의 스케줄 된 명령어를 검사하는 커널 모듈을 작성하고 싶습니다. 이미 프로세스를 반복하는 방법을 설명하는 Linux Kernel Process Management을 보았습니다.커널 모듈에서 예약 된 프로세스 명령어에 액세스하십시오.
struct task_struct *task;
for_each_process(task) {
/* this pointlessly prints the name and PID of each task */
printk("%s[%d]\n", task->comm, task->pid);
}
하지만이 task_struct
잡아 일단, 어떻게 지침을받을 수 있나요? 나는 어느 명령어가 다음에 실행될 것인지를보기 위해 프로그램 카운터를 먼저 찾아야한다고 가정하고있다.
task_struct
의 회원은 지침에 따라 조사해야합니까? 어떤 종류의 struct
유형이 저장되어 있습니까?
도움 주셔서 감사합니다. 나는 커널 프로그래밍에 익숙하지 않다.
사용자 스택 포인터는 실행할 다음 명령어가있는 스택 위치를 가리켜 야합니다 (또는 스택 동작 방식에 따라 적어도 스택 옆에 있어야 함). – ThingyWotsit
@ThingyWotsit, 좋습니다. 스택을 따라 "걷는"방법이 있습니까? 지침은 내가 따를 수있는 연결 목록과 같은 것입니까? –