부트로더(grub)에서 커널(linux)로 "명령줄"이 어떻게 전달됩니까?

부트로더(grub)에서 커널(linux)로 "명령줄"이 어떻게 전달됩니까?

Grub(또는 기타)은 특정 매개변수를 수정하기 위해 Linux 커널에 명령줄 인수를 보냅니다.

커널이 부팅되기 전에(그리고 수정도 가능) 들어가서 이 정보를 보려면 어디를 봐야 합니까? 커널이 찾아야 할 메모리의 특정 위치에 저장되어 있습니까?

커널이 부팅되면 /proc 항목 아래에 배치된다는 것을 알고 있지만 이것이 어떻게 작동하는지에 대한 사전 OS 정보를 찾고 있습니다. (어쩌면 잘못된 위치일까요?)

이는 부트로더가 시퀀스의 다음 스프라이트(일반적으로 커널에 국한되지 않음)에 정보를 전달하는 방법에 대한 질문입니다. grub 설정과 관련이 없습니다.

답변1

그럽 도구멀티부트 사양. 커널을 로드하고 제어권을 넘겨줄 때 포인터를 전달합니다.정보 구조기억 속에. 이 구조의 필드 중 하나는 명령줄입니다.

리눅스 커널은 자신만의프로토콜 시작, 하지만명령줄유사한 방식으로 처리됩니다. 부트로더는 이를 메모리에 유지하고 커널이 찾을 수 있도록 커널 데이터 구조의 다양한 필드를 채웁니다.

답변2

부트 로더는 부트 로드 관리를 완료한 후 일반적으로 initrd.img 또는 initramfs를 기반으로 하는 최소 운영 체제 환경을 시작합니다. grub 파일에 표시되는 커널 매개변수는 이 최소 환경 이후에 실행되는 커널로 전달됩니다. 일반적으로 모든 의도와 목적을 위해 mkiinitrd를 실행할 때 /etc에서 선택한 적절한 설정을 사용하여 initrd 이미지를 구성합니다.

일반적인 부팅 순서가 발생하면 초기 환경이 전송되고 일반적인 커널이 사용됩니다. 한 가지 주의할 점은 initrd에서 시작된 드라이버가 정상적인 실행 상태에 있을 수 있다는 점입니다. 이는 골치 아픈 일이 될 수 있습니다.

관련 정보