본문 바로가기

IT

리눅스-우분투 커널 컴파일

1. 초기 /usr/src 폴더의 내용
2. 커널 빌드에 필요한 자료를 다운받아 설치한다.
3. ncurses 설치
4. 커널 소스를 다운받은 후 ln-s 명령을 통해 linux라는 링크폴더를 만든다.
5. /usr/src/linux-2.6.27/kernel/makefile 의 내용을 수정한다.
6. /usr/src/linux-source-2.6.27/arch/x86/kernel폴더의 syscall_table_32.S 파일
    끝에 .long sys_helloworld를 추가한다.

7. /usr/src/linux-source-2.6.27/include/asm-x86폴더의 unistd_32.h 파일에
    #define __NR_helloworld 333 을 추가한다.
  여기서 번호 333은 제일 마지막 번호 다음 번호이여야 한다.
    즉 꼭 333인건 아니다.
8. /usr/src/linux-source-2.6.27/kernel 폴더에 helloworld.c 파일을 작성한다.
9. 환경 설정
10. make-kpkg 명령을 통해 커널 설치 패키지를 생성한다.
      이 패키지를 설치하고 reboot명령을 통해 새로 설치한 커널버전으로 부팅한다.
11. 버전을 확인하면 새로운 커널 버전임을 알 수 있다.
12. 시스템 콜을 호출하는 test 프로그램을 작성한다.
13. test 프로그램을 컴파일 하고 실행한다.
14. dmesg 명령을 통해 시스템 메시지를 확인해 보면 시스템 콜을 통해 출력된 문장을 확인 할 수 있다.

'IT' 카테고리의 다른 글

GDB 사용  (1) 2012.02.05
GCC 옵션  (0) 2012.02.05
Context Free Grammar (CFG)  (2) 2009.04.24
유닉스 네트워크 오목 프로그램  (2) 2009.04.22
PuTTy Release 0.58.h1  (1) 2009.04.22