linux核心是作業系統的核心,也是作業系統最基本的部分。
linux核心的體積結構是單核心的,但是它充分採用了微核心的設計思想、使得雖然是單核心,但工作在模組化的方式下,並且這個模組可以動態裝載或解除安裝;linux負責管理系統的程序、記憶體管理、裝置驅動程式、檔案和網路系統,決定著系統的效能和穩定性。如果我們在了解linux核心的基礎上根據自己的需要量身定製乙個更高效,更穩定的核心,就需要我們手動去編譯和配置核心裡的各項相關的引數和資訊了。
注意:如果兩個核心模組的版本不完全相同是不可以跨版本使用的
注意:/usr/src;一般而言,我們製作linux核心的時候把解壓縮之後的原始碼檔案放置這個目錄下,但需要在此目錄下建立乙個叫linux的軟鏈結指向解壓縮後的核心原始碼目錄。(1)準備好開發環境
(2)獲取目標主機上硬體裝置的相關資訊
(3)獲取目標主機系統功能的相關資訊,例如要啟用的檔案系統
(4)獲取核心原始碼包:www.kernel.org
centos 6
安裝包組:
development tools
server platform development
centos 7
安裝包組:
development tools
server platform development
包:ncurses-devel
cpu:
# cat /proc/cpuinfo
# lscpu
x86info -a
pci裝置:
# lspci
-v,-vv
# lsusb
-v,-vv
# lsblk
步驟:
(1)# tar -xf linux-3.10.67.tar.xz -c /usr/src #將linux-3.10.67.tar.xz原始碼包解壓至/usr/src目錄下
(2)cd /usr/src #cd到/usr/src目錄下
(3)ln linu-3.10.67 linux #建立乙個名為linux的軟鏈結至linux-3.10.67
(4)cd linux #cd到linux軟鏈結目錄中
(5)make menuconfig #配置核心選項
(6)make [-j #] #編譯核心,可使用-j指定編譯執行緒數量
(7)make modules_install #安裝核心模組
(8)make install #安裝核心
重啟系統,選擇使用新核心
注意:如果編譯是在遠端連線上的話,如果因為網路抖動make會出現問題的,如果遠端連線斷開的話那執行的程序也就斷開了,這麼make的過程一定是當前系統上執行的子程序,有些一旦父程序掛了,子程序也將不復存在,俗話說:皮之不存毛將焉附,就是這個道理吧
所以我們使用乙個叫screen命令來操作,沒安裝自己安裝就是了,可以在乙個視窗上啟動n個虛擬的桌面,即使退出了也會保留之前的內容。
screen命令
開啟乙個screen:# screen
拆除乙個screen:# ctrl+a,d
列出screen:# screen -ls
連線至screen:# screen -r screen
關閉screen:# exit 或 ctrl+d
(1)配置核心選項
支援"更新"模式進行配置;子啊已有的.config檔案的基礎上進行"修改"配置
配置核心方法很多,主要有如下幾種:
(b)make menuconfig:基於ncurse庫編制的圖形工具介面
(c)make gconfig:基於gtk開發環境的視窗介面;「桌面平台開發包組」
(d)make xconfig:基於x11開發環境的視窗介面
由於對linux還處在初學階段,所以選擇了簡單的配置核心方法,即make menuconfig。在/usr/src/linux目錄下在終端上輸入make menuconfig,等待幾秒後,終端變成圖形化的核心配置介面。進行配置時,大部分選項使用其預設值,只有一小部分需要根據不同的需要選擇。
對每乙個配置選項,使用者有三種選擇,它們分別代表的含義如下:
<*>或[*] #將該功能編譯進核心
[ ] #不將該功能編譯進核心
[m] #將該功能編譯成可以在需要時動態裝載到核心中的**
(2)編譯
(a)多執行緒編譯:make [-j #]
(b)編譯核心中的一部分**:
(1)只編譯某子目錄中的相關**
# cd /usr/src/linux
# make path/to/dir/
(2)只編譯乙個特定的模組
# cd /usr/src/linux
# make path/to/dir/file.ko
(c)如何交叉編譯:
編譯的目標平台與當前編譯操作所在的平台不同
# make arch=arch_name
# make arch=arch_name help
(3)如何在執行過編譯操作的核心原始碼樹上做重新編譯
事先清理操作
# make clean:清理編譯生成的絕大多數檔案,但會保留config,以編譯外部模組所需要的檔案
# make mrproper:清理編譯生成的所有檔案,包括配置生成的config檔案及某些備份檔案
編譯 linux 核心
一 準備工作 tpv te0 首先說明,下面帶 號的行都是要輸入的命令列,且本文提到的所有命令列都在終端裡輸入。ixpub技術部落格 rc0p a6zx j 啟動linux系統,並用根使用者登入,進入終端模式下。6i sb w,a0 ixpub技術部落格c gng,y y ixpub技術部落格 k,...
linux編譯核心
red hat linux版本的核心編譯 make j2 編譯 make modules make modules install make install cd boot mkinitramfs o initrd.img 2.6.30.10 2.6.30.10 此項可能不需要 vim boot g...
Linux核心編譯
經過幾天的努力,本人終於把乙個核心編譯成功了,嘿嘿,現在把編譯過程記下來,以後再接再勵,注意 以下的操作都要有root許可權。linux 2.6.36.tar.bz2。2 解壓縮。cd usr src tar xvf home ibm linux 2.6.36.tar.bz2.usr src下就會多...