[모듈과 커널 버전]
커널의 버전 확인하는 방법 : /linux/version.h
#define UTS_RELEASE "2.6.14.6"
#define LINUX_VERSION_CODE 132622
#define KERNEL_VERSION(a, b, c) (((a) <<16) + ((b) <<8) + (c))
예제)
#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 10)
MODULE_PARM(user_name, "char");
#else
MODULE_PARM(user_name, "s");
#endif
[모듈과 static 선언]
리눅스 커널은 커널전체가 하나의 프로그램이다. 그래서 기본적으로 (전역)함수나 전역 변수를 만들면 다른 모듈에서 접근이 가능하다. 그래서 이를 제어하기 위해서는 static 키워드를 적절히 사용해 주어야 한다.
공개된 함수나 변수등의 심볼들은 /proc/kallsyms에서 확인할 수 있다.
참고로, 2.6에서는 static없이 만들어신 함수는 자동으로 공개 되지 않는다.