본문 바로가기

개발/Linux

리눅스 커널 모듈 -

반응형

/* hello.c */

#include <linux/init.h>(3)

#include <linux/module.h>

#include <linux/kernel.h>


static int __init(1) Hello_init(void) 

{

pr_alert("Good morrow to this fair assembly.\n");

return 0 ;

}


static void __exit(2) hello_exit(void)

{

pr_alert("Alas, poor world, what treasure hast thou lost!\n");

}


module_init(hello_init);

module_exit(hello_exit);

MODULE_LICENSE("GPL");

MODULE_DESCRIPTIION("Greeting module");

MODULE_AUTHOR("William Shakespeare");  (4)


(1) __init : 커널 프로그래밍에서 초기와 함수에 써준다. 

            초기화 함수에서 "함수명 _init()" 로 해주는게 규칙

            module_init()에 의해 실행된다.

   __initdata : 커널 프로그래밍에서 변수 초기화에 써준다. 

(2) __exit : 커널 프로그래밍에서 커널에 정적으로 컴파일 되거나 사용하지 않도록 unload 될때 불리는 함수에 써준다. 

            이 함수는 module_exit()에 의해 실행된다. 

(3) #include <linux/000.h> : 커널 프로그래밍에서 사용하는 라이브러리가 있는 해더 파일. 일반적인 C라이브러리는 사용할 수 없다.

(4) MODULE_LICENSE() - 라이센스 

    MODULE_DESCRIPTION() - 설명

    MODULE_AUTHOR() -  작성자 

    를 표기하는 데 사용한다. 


반응형

'개발 > Linux' 카테고리의 다른 글

bash_profile bashrc 차이  (0) 2021.03.22
vi/vim의 유용한 기능 - html 문서로 변환하기  (0) 2015.02.17
커널 관리  (0) 2015.02.11
커널 모듈  (0) 2015.02.11
파이프 - 프로세스 파이프, popen/pclose  (0) 2014.11.28