다음 이전 차례

1. 배경지식

1.1 커널이란?

커널이란 운영체제(Operating System)에서 가장 핵심적인 역할인 자원 (메모리, 프로세서등)을 관리하며 시스템이 원활히 돌아갈 수 있도록 제어해 준다. 현재 우리가 리눅스(OS)라고 하는것도 실제적으론 리눅스란 운영체제의 커널 이름을 말하는것인데 이것이 확장된 의미로 사용되어 현재의 '리눅스'란 OS를 지칭하게도 된것이다. 그러므로 Linux = kernel이란 등식이 성립한다.

1.2 커널은 어디서 구하나?

우선적으로 안정 버전과 가장 최신 개발버전을 원한다면 http://kernel.pe.kr 로 접속하면 된다. 그 이외에는 다음 미러 사이트에서 구할수 있다.

1.3 최신 커널 버전은 어떻게 알아보나?

SHELL에서 finger @finger.kernel.org 명령으로 최신 커널버전을 알 수 있다. 이 문서를 작성하는 현재 최신버전은 다음과 같다.

커널은 stable version(안정버전)과 beta version(개발버전)으로 나누는데 이 
두 버전의 차이는 minor number가 짝수이냐 홀수이냐로 구분한다.
(minor number란 커널 2.2.16이 있다면 가운데 수인 2가 minor number이고
제일 앞의 2는 major number 이다. 마찬가지로 2.3.99에선 major는 2이고 minor는
3이다.)
그렇다면 2.4.0-test 버전들은 minor number가 짝수인데 왜 개발버전이라고 하나?
그 이유는 2.3.99의 패치버전들이 이제 거의 2.4 안정버전에 가까워졌다는 의미로
Linus가 2.4.0-test라 이름 붙인것이다.

1.4 커널 컴파일 방법(커널 2.4.0-test7)

여러 가지 방법들이 있지만 저장된 커널옵션설정 파일이 있다면 oldconfig를 저장된 파일이 없다면 menuconfig를 추천한다.

  1. make oldconfig 또는 make menucofig
    make oldconfig를 하기위해선 다음과 같은 작업이 필요하다.
    예전에 설정한 커널옵션이 kernel.config 란 이름으로 저장되어있다면 
    이 파일을 새 버전의 커널이 있는 /usr/src/linux 디렉토리에 .config란 이름으로 
    카피한다.
    # cp kernel.config /usr/src/linux/.config
    위와같이 한후 make oldconfig를 실행하면 예전 옵션을 그대로 적용시켜주며
    혹시나 새로운 옵션이 있다면 화면에 보여주며 선택할 수 있도록 해준다.
    
  2. make dep
  3. make clean
  4. make bzlilo
    make bzlilo란 다음과 같은 명령들을 순차적으로 실행한것과 같다.
    # make bzImage
    # cp /usr/src/linux/arch/i386/boot/bzImage /vmlinuz
    # /sbin/lilo
    
  5. mv /vmlinuz /boot/vmlinuz-2.4.0-test7
  6. mv /System.map /boot/System-2.4.0-test7
  7. vi /etc/lilo.conf
    일반적으로 다음과 같은 화면을 볼 수 있을것이다.
    boot=/dev/hda
    map=/boot/map
    install=/boot/boot.b
    prompt
    timeout=50
    default=linux
    
    image=/boot/vmlinuz-2.4.0-test7  ---> 새로 생성한 커널이미지를 linux란 레이블
            label=linux                   로 부팅할 수 있도록 하기위해 
            read-only
            root=/dev/hda1
    
    image=/boot/vmlinuz-2.2.16      ---> 예전 커널이 2.2.16이라고 가정했을때 
            label=old                    old란 레이블로 정의한다.
            read-only
            root=/dev/hda1
    
  8. /sbin/lilo

1.5 모듈 컴파일 방법

모듈이 생성되는 디렉토리는 '/lib/modules/2.4.0-test7'이고 만약 현재 커널의 모듈을 다시 생성하려고 한다면 현재 커널의 모듈 디렉토리를 지우고 다시 컴파일 하기 바란다. (커널 2.4.0-test 버전에서는 모듈의 디렉토리구조가 많이 바뀌었다.)

  1. make modules
  2. make modules_install


다음 이전 차례