Embedded : : Linux/: : Linux Kernel

Linux Module

Jay.P Morgan 2024. 11. 6. 13:49

 

  1.  Linux Module

 

  1.1  리눅스 모듈이란

 

커널에서 작업해야하는 기능이 있는데 이를 추가하기 위해서는 커널을 수정해서 재컴파일해야한다.

하지만 매번 재컴파일하기에는 번거로우므로, 리눅스 등의 운영체제에서는 모듈이라는 기능을 제공하여 특정 커널의 기능을 사용하고자 할 때 실시간(동적)으로 추가할 수 있게 하고 있다.

 

 

  1.2  USB 드라이버 예시

 

USB 드라이버를 생각해보자. USB를 연결하면, 장치가 추가되었기 떄문에 이를 처리하기 위해 커널은 처리를 하게 된다. 하지만 커널이 각 벤더사의 모든 USB드라이버를 설치해둘 수 없으니, USB 드라이버를 통해 커널에 특정 기능을 추가하여 처리할 수 있도록 한다.

만약 특정 기능을 추가하지 못한다면 USB를 꽂기 위해 USB 드라이버의 기능을 직접 커널에 추가해서 재컴파일해야하는 수고가 생길 것이다.

 


 #printk() 함수
   printk(KERN_INFO "Exit Example 1\n");


 커널 메시지를 출력하는 함수, 일반적으로 출력되는게 아니라 디버깅과 같은 목적을 지녔으며
 로그를 통해 커널 메시지 확인 가능

 - cat /proc/kmsg : 실시간 커널 메시지 출력 확인
 - KERN_INFO는 로그레벨 중 하나, 숫자가 낮을수록 우선순위가 높음