Linux 커널 빌드 프로세스의 모든 단계에서 어떤 일이 발생합니까?

Linux 커널 빌드 프로세스의 모든 단계에서 어떤 일이 발생합니까?

나는 사용자 정의 커널을 구축하고 이러한 커널을 사용하여 Ubuntu를 부팅하는 방법에 대한 많은 튜토리얼을 읽었으며 가이드를 성공적으로 따르고 사용자 정의 커널을 부팅했지만 가이드의 각 명령이 수행하는 작업과 명령별로 실제로 발생하는 일을 이해하지 못합니다.

위에서 설명한 프로세스우분투 웹사이트많은 작업 fakeroot, 일부 initramfs 및 기타 끔찍한 작업을 수행했지만 작동했지만 dpkg무슨 make-kpkg일이 일어나고 있는지 이해하는 데 전혀 도움이 되지 않았습니다.

  • makeLinux 커널 디렉터리의 출력은 무엇입니까?
  • "압축된 커널 이미지"를 생성합니까?
  • "압축된 커널 이미지" 파일의 이름은 무엇이며 어디에 위치합니까?
  • make modules효과 는 무엇입니까 ?
  • 이전에 수행 해야 합니까 make modules, 아니면 이후에 수행 해야 합니까 make?
  • make내 모듈이 자동으로 빌드되지 않나요 ?
  • 새로 빌드된 커널을 부팅 가능한 커널 목록(명령 목록뿐만 아니라 영어로)에 추가하는 프로세스는 무엇입니까?
  • make install효과 는 무엇입니까 ?
  • make install더 이상 아무것도 할 필요가 없도록 부팅 가능한 커널 목록에 추가됩니까 ?
  • 이에 상응하는 것이 있습니까 make modules_install?

답변1

처음부터...

  • make커널 이미지를 컴파일하고 링크합니다. 이것은 이름이 vmlinuz.
  • make modulesM커널 구성 중에 대답하는 각 질문에 대해 별도의 파일을 컴파일하십시오. 개체 코드는 새로 빌드된 커널에 연결됩니다. (답변된 질문의 경우 Y이미 답변의 일부이며 vmlinuz, 답변된 질문의 경우 N건너뜁니다.)
  • make install빌드된 커널을 /vmlinuz.
  • make modules_install커널 모듈을 /lib/modules또는 에 설치하십시오 /lib/modules/<version>.

사용 가능한 커널 목록에 추가하는 것은 부트로더의 책임입니다. 모든 부트로더는 다르지만 grubx86 및 amd64에서 가장 일반적이므로 이에 대해 설명하겠습니다. 사실 정말 쉽습니다. Grub은 작동하는 코어처럼 보이는 /모든 것을 /boot찾아 추가 합니다. /lib/modules예, 그것은 지나치게 단순화된 것입니다.

Ubuntu 문서에 있는 추가 "무서운 것"은 deb패키지를 만드는 추가 항목입니다. 당신 자신보다 더 많은 것을 위해 그것을 하고 있다면, 그것을 포장하는 것이 가장 좋습니다. 시간이 지나면 전환됩니다.

커널과 모듈을 빌드하는 것은 필요한 사람들(예: 커널 개발자)이 일반적으로 모듈만 변경하기 때문에 별도로 수행됩니다. 변경 사항을 적용하고, 다시 빌드하고, 모듈을 설치할 수 있습니다. 이렇게 하면 하루에 20번씩 수행해야 하므로 시간이 많이 절약됩니다. 단 하나의 명령으로만 업데이트되지 않습니다 make everything. 대신, 당신은 실행make && make modules && make install && make modules_install 문서에 나와 있는 것처럼. 빌드 프로세스는 귀하가 아닌 커널 개발자에게 도움이 됩니다. 그렇게되어야합니다.

실제로 커널 개발자나 배포판 패키저 외에는 누구도 커널을 컴파일할 필요가 거의 없습니다. 거의 모든 경우에 여러분이 원하는 커널 기능은 여러분을 위해 구축되었으며 사전 패키지된 커널 중 하나에서 사용할 수 있습니다. 예외가 있지만 요즘에는 극히 드뭅니다.

나는 여러분이 자신의 커널을 구축하는 것을 방해하는 것이 아니라 실제로 그렇게 하도록 권장합니다. 나는 처음부터 커널을 구축하는 것이 커널 작동 방식을 이해하는 데 있어 매우 귀중한 연습이라고 생각합니다. 부분적으로는 언젠가 당신이~ 할 것이다예외가 필요합니다. 하지만 커널과 부팅 프로세스에 대해서도 많은 것을 가르쳐줍니다. 이 일을 하고 나면 당신은 더 나은 사람이 될 것입니다.

관련 정보