1
當我正在瀏覽linux內核代碼時,我發現內核的入口點是i386_start_kernel()函數,它正在做所有的早期設置,然後調用start_kernel()。 現在,當我搜索start_kernel()時,發現它在多個.c文件中定義爲: Bootp.c,Main.c在/ boot下,並且再次在/ init下運行Main.c。哪個start_kernel()函數被使用?
根據我的理解,它應該從Main.c下的/ init。但是我仍然不清楚它。如果有人可以確認哪個start_kernel()被調用,或者解釋哪個start_kernel()是爲了什麼,那將會很棒。
在'arch/x86/kernel/head_32.S'你已經跳轉到'i386_start_kernel()'。在'arch/x86/kernel/head32.c'中定義'i386_start_kernel()'。 'i386_start_kernel()'函數調用'init/main.c'中定義的'start_kernel()'。 –
似乎這個問題是回答[這裏](http://stackoverflow.com/questions/2589845/what-are-the-first-operations-that-the-linux-kernel-executes-on-boot)。 –