지금 시스템 콜 추가하고 있어
pstree를 간단하게 구현하려고
#include <linux/linkage.h>
#include <linux/unistd.h>
#include <linux/kernel.h>
#include <linux/sched.h>
#include <linux/module.h>
asmlinkage int sys_mytree(void)
{
struct task_struct *task;
for_each_process(task){
printk("%s [%d]\n", task->comm, task->pid);
}
return 0;
}
요렇게 했는데
저렇게하면 그냥 process목록이 쭉뜨기만 하는데 혹시 자식프로세스는 부모프로세스보다 탭한칸만큼 들여쓰기
되게 할 수 없을까?ㅠ.ㅠ 어제부터 고민하는데 어떻게 해야될질 모르겠엉 list_entry()나 container_of()를 쓰라는데..
pstree 핵심 기능이 자식프로세스 출력시 ident 하는 것입니다. 여러가지 방법이 있겠지만, 가장 쉬운 방법은 task list 에 인코딩된 tree 정보를 뽑아내서 tree 자료구조를 생성하는 것입니다. 그러면 출력알고리즘이 비교적 간단해 집니다.
학생이신듯한데, 아직 프로그래밍 기초가 부족해 보입니다. 시스템 프로그래밍에 관심있어 공부하는 것도 좋지만, 그전에 기본기부터 쌓는 것이 더 진도가 빠를거 같습니다.