[모듈과 커널 버전]


커널의 버전 확인하는 방법 : /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없이 만들어신 함수는 자동으로 공개 되지 않는다.