ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [리눅스] 1. 커널프로그래밍 환경설정
    0x05 Programming/Kelnel Programing 2009. 7. 28. 09:31

    ▣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에서 출력하는 법 알아오기
Designed by Tistory.