Kernel
Linux核心對未知核心參數做了什麼?
假設我向核心傳遞了一個它不理解的參數,例如
blabla
oreat=cake
,核心將如何處理這些未知參數,傳統情況是將任何未知參數傳遞給init
,以防Linux核心以早期使用者啟動空間(initramfs)會傳遞給/init
initramfs 嗎?
從核心文件:
核心從核心命令行解析參數到
--
; 如果它不辨識參數並且不包含 a.
,則將參數傳遞給 init: 參數與=
進入 init 的環境,其他參數作為命令行參數傳遞給 init。之後的所有內容都--
作為參數傳遞給 init。這也適用
/init
於 initramfs。在原始碼中,initramfs/init
和最終根/sbin/init
(或其他位置)都被呼叫,run_init_process
它們使用相同的參數(除了參數 0 是執行檔的路徑)。我在文件中找不到它,但核心介面是穩定的,所以這不會改變。請注意,這不適用於
/linuxrc
initrd。/init
這個呼叫不帶參數,但與and具有相同的環境/sbin/init
。它可以掛載 proc 文件系統並讀取/proc/cmdline
以查看核心命令行參數。