커널은 배포별 초기화에 대한 제어를 어떻게 "포기"합니까?

커널은 배포별 초기화에 대한 제어를 어떻게 "포기"합니까?

저는 부팅 중에 커널이 어떻게 제어권을 타사 코드나 배포판별 코드로 전달하는지 항상 궁금했습니다.

성공적인 부팅 후 수행할 작업을 알려주는 커널에 전달된 특수 매개변수가 있다고 의심하면서 GRUB의 구성 파일을 자세히 살펴봤지만 아무 것도 찾을 수 없었습니다. 이로 인해 커널이 루트 파티션에서 특정 파일을 찾고 있는 것 같습니다.

누구든지 이 문제에 대해 밝힐 수 있다면 감사하겠습니다. 배포판은 이를 어떻게 달성합니까?

답변1

하드코딩되어 있지만 커널 매개변수를 통해 기본값을 무시할 수 있습니다 init=....

에서 init/main.c:

if (execute_command) {
  run_init_process(execute_command);
  printk(KERN_WARNING "Failed to execute %s.  Attempting "
        "defaults...\n", execute_command);
}
run_init_process("/sbin/init");
run_init_process("/etc/init");
run_init_process("/bin/init");
run_init_process("/bin/sh");

panic("No init found.  Try passing init= option to kernel. "
      "See Linux Documentation/init.txt for guidance.");

답변2

Wikipedia에는 ​​좋은 내용이 있습니다.기사Linux 시작 프로세스에 대해

오늘은 보통파일 시스템 초기화사용된.

관련 정보