목적. 리눅스 상에 실행중이 모든 프로세스에 대한
리눅스 상에서 현재 존재하는 모든 테스크의 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 유틸리티 관련 강좌 등을 참조하기 바란다.