'시스템/실습'에 해당되는 글 1건

  1. 2013.12.10 task_struct를 이용한 chind 정보 탐색

목적. 리눅스 상에 실행중이 모든 프로세스에 대한 

리눅스 상에서 현재 존재하는 모든 테스크의 task_struct 를 출력하기 위해서 모듈 프로그래밍을 해야 한다.

다음과 같은 기본 소스를 응용하게 된다.


 

그림 1. 모듈 프로그램 소스

 

 위의 그림 1과 같은 형식으로 모듈 프로그래밍을 하게 되는데 구조를 간단히 살펴보자면

#include 를 통하여 커널 소스를 포함시켜 준 후 

모듈 라이센스를 GPL로 명시해 준다.

 

사진 상으로 함수 2개가 보이는데 두 함수 begin 과 end는 이름을 자유롭게 쓸 수 있고

맨 밑에 init과 exit 로 초기화 하여 init에 초기화한 함수는 모듈이 insmod를 통해 적재 시킬때 작동되고 exit에 등록한 함수는 rmmod로 모듈을 제거 할 때 작동되게 된다.

 

위의 소스를 컴파일 하는 makefile은 다음 그림 2와 같다.


 

그림 2. 모듈 컴파일을 위한 makefile

 모듈을 컴파일 하기 위한 makefile을 간단히 살펴보면 먼저 obj-m 으로 모듈이 될 오브젝트 이름을 표시하는 부분, KDIR이라는 현재 커널의 위치, PWD 현재 소스가 잇는 디렉토리 가 있고.

make 규칙으로 

default, clean이 있다 자세한 내용은 make 유틸리티 관련 강좌 등을 참조하기 바란다.

Posted by 시크한공돌이
,