예를 들어 커널이 이해하지 못하는 매개변수를 커널에 전달한다고 가정해 보겠습니다. blabla
또는 eat=cake
커널이 이러한 알 수 없는 매개변수를 어떻게 처리할 것인지에 대해 전통적인 경우는 init
Linux 커널이 초기 사용자로 시작하는 경우 알 수 없는 매개변수를 에 전달하는 것입니다. space (initramfs) initramfs로 전달됩니까 /init
?
답변1
~에서커널 문서:
커널은 커널 명령줄에서 인수를 구문 분석합니다
--
. 인수를 인식하지 못하고 a 가 포함되어 있지 않으면.
인수가 init에 전달됩니다. 인수는=
init의 환경으로 들어가고 다른 인수는 명령줄 인수로 init에 전달됩니다. 그 이후의 모든 내용은--
init에 매개변수로 전달됩니다.
이는 /init
initramfs에도 적용됩니다. 소스 코드에서 initramfs /init
와 최종 루트 /sbin/init
(또는 다른 곳)는 모두 다음을 통해 호출됩니다.run_init_process
동일한 인수를 사용합니다(실행 파일의 경로인 인수 0 제외). 설명서에서 지침을 찾을 수 없지만 커널 인터페이스가 안정적이므로 변경되지 않습니다.
이는 /linuxrc
initrd에서는 작동하지 않습니다. 이 함수는 매개변수 없이 호출되지만 /init
및 와 동일한 환경을 사용합니다 /sbin/init
. proc 파일 시스템을 마운트하고 /proc/cmdline
커널 명령줄 인수를 읽기 위해 읽을 수 있습니다.