답변:
나는 다음과 같은 답을 찾을 여기 :
짧은 대답은 .ko 파일이 커널에 필요한 일부 커널 자동 생성 데이터 구조와 연결된 개체 파일이라는 것입니다.
.o 파일은 모듈의 객체 파일이며 c 파일을 컴파일 한 결과입니다. 그런 다음 커널 빌드 시스템은 커널 모듈 (your_module_kmod.c)을 설명하는 일부 데이터 구조로 다른 C 파일을 자동으로 작성하고이 C 파일을 다른 오브젝트 파일로 컴파일 한 후 오브젝트 파일과 함께 빌드 한 오브젝트 파일을 링크하여 .ko를 작성합니다. 파일.
커널 모듈로드를 담당하는 커널의 동적 링커는 커널이 .ko 파일의 kmod 객체에 넣은 데이터 구조를 찾고 커널 모듈이 없으면 커널 모듈을로드 할 수 없습니다.
또한 그 소스 에서 tldp를 인용 하여 : 최대 2.4 커널 버전은 ".o"였으며 2.6 이후로는 ".ko"입니다.