(1) 모듈의 이해
: 리눅스는 모노리딕 커널이다. 즉, 커널이 한 덩어리다.
  (커널의 모든 기능이 내부자료구조와 함수들에 접근할 수 있는 한 덩어리다) 

  - 그럼 기능이 조금만 변해도 다시 컴파일 해야 하는가?
  - NO! 우리에겐 모듈 이란 기능이 있다

○ 모듈 : 커널코드의 일부를 커널이 동작하는 상태에서 로드, 언로드 할 수 있다.

  - 장점 : 커널의 크기를 최소화 할 수 있고, 커널을 매우 유연하게 만든다.
  - 디바이스 드라이버, 파일시스템, 통신프로토콜, 시스템콜 등을 모듈로 구현할 수 있다. 
  - 커널이 부팅된 후, 동작하는 상태에서 디바이스 드라이버와 같은 커널루틴을 동적으로 추가/제거 하는것


(2) 모듈프로그램 명령어들 

KERNEL 2.4 KERNEL 2.6 

init_module(){...}
cleanup_module(){...}
modue_init(<사용자 임의 시작함수>);
module_exit(<사용자 임의 종료함수>);

- 모듈로드 : insmod
- 모듈확인 : ismod
- 모듈제거 : rmmod

- 커널 2.4의 컴파일 --> 그냥 컴파일로 가능.
- 커널 2.6의 컴파일 --> Make파일을 이용해서 컴파일.


※ 출처 : http://idkkangjs.blog.me/30091117058

by 민트앤라떼 2011. 9. 26. 14:36