▣os가 제공하는 서비스
리눅스 : system call
윈도우 : API
라 부른다
▣운영체제를 확장하는 방법
1. 커널 소스에 직접 삽입 (전체 컴파일 하는 시간이 오래걸린다)
build-in이라 함
2. 동적으로 필요할때 올리는 방법(모듈사용)
메모리를 이용한 커널 확장 - loadable-module : 디바이스드라이버
▣ 최종실행파일의 확장자는 ~.ko
▣ 커널은 가볍게하고 모듈을 적극 활용하는 쪽으로 발달
▣ 명령어
modinfo 모듈의 정보 확인 (라이센스. 버전 등등)
insmod 모듈을 메모리에 올릴 때
rmmod 모듈을 메모리에서 내릴 때
lsmod 메모리에 올라와있는 모듈 확인
▣ 커널에 작업하는 방법
1. 어플리케이션과는 아무 상관없이 커널의 흐름만 바꾸는 방법
커널에서 시작하고 커널에서 끝남
2. 어플리케이션과 커널모두와 커뮤니케이션하는 방법
보통 하드웨어를 다룰때 사용 - 디바이스드라이버라 함
▣ 모듈을 올리거나 내릴 때
콘솔에서는 printk 구문이 화면으로 출력된다
그래픽모드에서는 printk 구문이 /var/log/message에 출력된다
▣ 커널프로그래밍소스에 두개의 함수는 꼭 있어야 한다.
init_module()
exit_module()
▣ 과제
printk를 console에서 출력하는 법 알아오기