일반 운영관리 - 커널 컴파일

2022. 2. 12. 13:00리눅스마스터 1급 - 필기/리눅스 시스템 관리

커널(kernel) : 리눅스 운영체제의 핵심 기능으로 컴퓨터 자원들을 소유하고 관리하는 역할을 담당합니다. 사용자는 직접 커널과 상호작용 할 수 없기 때문에 셸이라는 프로그램을 사용해서 사용자의 명령을 전달 받고 이를 수행합니다.

셸이란 사용자의 명령을 받아 이를 해석해서 전달해주는 역할을 합니다. 셸에 대한 자세한 설명은 다음 링크를 통해 공부 하실 수 있습니다. 리눅스 시스템의 이해 - 셸이란? (tistory.com)

 

즉 커널은 사용자가 컴퓨터 자원을 사용할 수 있게 도와주는 OS의 핵심 기능인 것입니다. 

uname 명령어는 시스템의 정보를 출력하는 명령어로써 r 옵션을 사용하면 커널 버전도 출력할 수 있습니다.

 

 

컴파일이란 소스 코드를 컴퓨터가 이해 할 수 있는 코드로 변환하는 과정입니다.

즉 커널 컴파일이란? 커널 소스를 컴파일해서 시스템에 최적화된 커널을 생성하는 과정입니다. 기본적으로 리눅스 설치시 설치된 커널은 많은 기능들을 포함하고 있습니다. 하지만 사용자마다 각자 필요한 기능이 따로 있으며 필요 없는 기능들은 단순히 크기를 차지하기만 하고 불필요 합니다. 

이를 커널 컴파일을 통해 자신한테 맞는 최적의 커널을 생성하는 것입니다.

커널 컴파일을 하기 위해서는 gcc, 관련 라이브러리 등의 개발 도구가 필요한데 정확히 어떤 도구들이 필요한지 모른다면 커널 컴파일을 하는 과정에서 나오는 메시지를 통해 무엇을 설치해야 되는지 알 수 있습니다.

 

이제 커널 컴파일 순서에 대해 알아보겠습니다.

make help 명령어를 통해 커널 컴파일에서 사용 가능한 타겟들을 확인 할 수 있습니다.

 

 

1. 설치하려는 리눅스 커널 소스를 /usr/src/kernels에 다운

 

 

2. 소스 파일 압축 해제 후 이동

 

 

3. 커널 소스의 설정값 초기화

 

 

4. 커널 컴파일 옵션 설정 작업

 

 

여기서 설정 한 내용은 .config 파일에 기록됩니다. (파일명은 변경 가능합니다)

 

5. 커널 이미지 생성

 

 

6. 커널 모듈 생성을 위한 컴파일 작업

 

 

7. 생성한 커널 모듈 설치

 

 

8. 커널 모듈 파일 복사 및 grub.conf 파일 수정 작업

 

 

9. 시스템 재부팅하여 새로운 커널로 적용