1. 程式人生 > >Linux之內核編譯基礎概念

Linux之內核編譯基礎概念

Linux之內核編譯基礎概念

內核組成部分

1、Kernel 2、Kernel Object 3、ramdisk

查看kernel版本

uname

技術分享圖片

管理kernel object工具

lsmod modinfo modprobe insmod rmmod depmod


與ramdisk相關的工具

mkinitrd dracut


啟動流程

POST->boot sequence->bootloader->加載kernel->只讀方式掛載root->init->運行系統初始化腳本->默認運行級別->開啟或者關閉指定服務->啟動終端


升級內核

升級內核可以通過RPM包的方式。那RPM包從哪裏來?自己編譯或者從網上獲取。 這個結論待定!!!!!!!!!!!!!


編譯內核的前提

1、準備好開發環境(開發工具,服務器平臺開發)

2、獲取目標主機硬件設備的相關信息

3、獲取目標主機功能的相關信息,比如文件系統(有些不需要的文件系統可以在編譯的時候不選擇)

4、獲取內核源代碼包:www.kernel.org https://mirrors.edge.kernel.org/pub/linux/

第一步:準備開發環境(可以通過yum grouplist/groupinstall 查看/安裝)

技術分享圖片

技術分享圖片

有個*ncurses* 類包需要安裝,這個可以在操作的過程中可能有提示。

第二步(可選) 獲取目標主機硬件設備信息

CPU:

技術分享圖片

PCI設備

技術分享圖片

USB設備

技術分享圖片

硬盤信息

技術分享圖片

還可以通過hal-device程序去了解硬件信息

第三步 下載對應設備增量版本

https://mirrors.edge.kernel.org/pub/linux/

技術分享圖片

來看看linux-3.10.1的內容

技術分享圖片

第四步執行內核編譯

技術分享圖片

執行這個操作是為了操作的統一性。以後都是操作Linux目錄即可。

需要生成內核編譯軟件的配置文件

make menuconfig

技術分享圖片

執行menuconfig需要ncurses-delvel程序,現在就需要安裝ncurses,過程就忽略了,通過yum安裝

註意:menuconfig必須在linux目錄裏執行

技術分享圖片

這個就是make menuconfig界面。註意:配置內核編譯參數的方式有很多,menuconfig是一種方式。

技術分享圖片

調整完meneconfig的圖形界面後會生成一個.config的文件

執行make -j 4 執行內核編譯工作,操作目錄還是linux裏面

技術分享圖片

再執行make modules_install 安裝內核模塊

技術分享圖片

最後執行make install 安裝內核核心文件

技術分享圖片

重啟系統驗證下內核安裝結果

哎~~~ 最後沒有引導成功,應該是系統BUG問題,我在CentOS6上是做成功的。



Linux之內核編譯基礎概念