Skip to content

Insmod

  • Published on
    앞의 네 편이 남의 코드를 읽는 일이었다면 이 글부터는 커널 안에서 실행되는 코드를 직접 씁니다. 로드되기만 하는 가장 작은 모듈을 먼저 만들고, 그것이 왜 그 형태여야 하는지를 module_init과 MODULE_LICENSE의 실제 정의를 열어 확인합니다. 트리 밖에서 모듈을 빌드하는 Makefile은 커널 공식 문서의 예제를 그대로 따라가고, insmod와 rmmod와 modinfo와 lsmod가 각각 무엇을 보는지 정리합니다. printk의 로그 레벨 여덟 단계와 pr_ 계열 매크로, 그리고 pr_fmt로 접두사를 붙이는 관용구를 다루고, 모듈 파라미터를 sysfs에 노출하는 방법까지 이어집니다. 마지막 세 절은 정직한 경고입니다. 표준 C 라이브러리도 부동소수점도 없고, 널 포인터 접근은 세그멘테이션 폴트가 아니라 시스템 정지이며, GPL로 표시하지 않은 모듈은 커널 심볼의 상당수에 아예 링크할 수 없습니다.