Linux 커널에 자체 부트로더가 있는 이유는 무엇입니까?

Linux 커널에 자체 부트로더가 있는 이유는 무엇입니까?

Linux 커널 코드를 작업하려고 하는데 다음과 같은 메시지가 나타납니다.이 파일BIOS에서 완전한 부트로더가 실행 중인 것으로 보입니다. 내 인상은 일반적으로 grub이 MBR에 있고 어떻게 든 커널을 호출한다는 것입니다.

내 질문은 다음과 같습니다

  1. (제가 아는 한) 커널에 부트로더가 내장되어 있는 이유는 무엇입니까? 이것이 역사적인 이유인가?
  2. 전원 버튼을 누르는 것부터 커널을 부팅하는 것까지 어떤 일이 일어나는지 단계별로 설명해줄 수 있는 사람이 있나요?

답변1

  1. 예, 이것은 역사적인 이유 때문입니다. 예전에는 플로피 디스크에 커널을 쓰고 이를 사용하여 PC를 부팅하는 것이 가능했습니다. header.S누군가가 이를 시도할 경우 커널이 메시지를 표시할 수 있도록 부트 섹터를 제공하십시오.

    header.S커널이 UEFI 부트로더로 구성된 경우 PE 헤더도 제공되며 결과 커널 이미지는 UEFI에서 직접 부팅될 수 있습니다. 모든 경우에 header.SGrub과 다른 사람들이 커널을 부팅하는 데 사용하는 멀티부팅 프로토콜을 구현하는 헤더가 제공됩니다.

  2. 현재 BMC가 없는 x86 시스템에서는 시스템 컨트롤러가 시스템 펌웨어를 실행하는 CPU를 시작하고 초기화합니다. 메모리, 다양한 버스 등을 초기화한 다음 적절한 시스템 파티션이 있는 디스크를 찾습니다. 선택한 또는 기본 부트로더(예를 들어Grub)을 이 파티션에서 가져옵니다. 그런 다음 부트로더는 커널과 initramfs(일반적으로)를 로드합니다.커널에 제어권 부여.

    그보다 더 많은 것이 있습니다.EFI 부팅 프로세스에 대한 설명ELILO(지금 사용하지 않는 부분은 무시하세요) 설명도 있어요데비안 위키 UEFI 페이지, 이동식 미디어를 처리하는 방법도 설명합니다.

관련 정보