這是一種新型的網(wǎng)絡(luò)操作系統(tǒng)Fedora Core 6
Linux目前較適用于小型的網(wǎng)絡(luò)對于不同的網(wǎng)絡(luò)應(yīng)用,需要我們有目的有選擇合適地網(wǎng)絡(luò)操作系統(tǒng)。這里我們主要介紹Fedora Core 6內(nèi)核系統(tǒng)如何操作。
Linux 內(nèi)核
這一節(jié)覆蓋了 Fedora Core 6 中 2.6.18 內(nèi)核的變動及重要信息。2.6.18 內(nèi)核包括:
◆輕量級用戶空間優(yōu)先級繼承 (http://lwn.net/Articles/178253/)
◆一個 "鎖校驗" 調(diào)試工具 (http://lwn.net/Articles/185666/)
◆針對多核系統(tǒng)的節(jié)電策略 SMPnice (http://lwn.net/Articles/186438/)
◆大大改進的 SATA 層 (http://lwn.net/Articles/183734/)
◆無交換的頁面遷移 (http://lwn.net/Articles/160201/)
◆每區(qū)域的 VM 計數(shù)器(Per-zone VM counter)
◆每任務(wù)的延遲審計(Per-task delay accounting)
◆新的針對封包的 SELinux 訪問控制,叫做 secmark (http://james-morris.livejournal.com/11010.html)
◆隨機的 i386 vDSO
◆新的驅(qū)動和已有驅(qū)動對新設(shè)備的支持
◆大量錯誤修正和小改進
版本
Fedora Core 6可能包含了附加的補丁,來改進,修正或添加附加特性。因此,F(xiàn)edora Core 6內(nèi)核與被稱為純正(vanilla kernel)的,來自 kernel.org 網(wǎng)站的內(nèi)核不是完全相同的。
http://www.kernel.org/ 要獲得這些補丁的列表,下載源 RPM 軟件包,運行下列命令:
rpm -qpl kernel-
軟件包修訂記錄可以用下列命令看到:
rpm -q --changelog kernel-
內(nèi)核配置
Fedora Core 6 包含了下列內(nèi)核構(gòu)建基本的內(nèi)核,用于大多數(shù)系統(tǒng),已配置的代碼在 kernel-devel-version.arch.rpm 軟件包中。kernel-PAE,用于擁有超過 4GB RAM 的 32-bit x86 系統(tǒng)中,或者 CPU 帶有 "NX (No eXecute)" 特性的系統(tǒng)中。它同時支持單/多處理器系統(tǒng)。虛擬機內(nèi)核,用于 Xen 模擬器。已配置的源代碼包含在 kernel-xen-devel-
報告錯誤
請參考 http://kernel.org/pub/linux/docs/lkml/reporting-bugs.html 中,報告 Linux 內(nèi)核錯誤時的注意事項。您也可以訪問 http://bugzilla.redhat.com 來報告 Fedora 特有的錯誤。
遵循關(guān)于內(nèi)核的教科書
關(guān)于 Linux 內(nèi)核開發(fā),很多教材,范例和教科書都假設(shè)內(nèi)核源代碼安裝在 /usr/src/linux 目錄。如果您像下面一樣創(chuàng)建一個符號鏈接,就可以在 Fedora Core 6中繼續(xù)使用那些學習材料了。按照上面提到的方式,安裝合適的內(nèi)核源代碼,然后:
su -c 'ln -s /usr/src/kernels/
為內(nèi)核開發(fā)作準備
Fedora Core 6 與舊版本不同,不包含 kernel-source 軟件包,因為要編譯外部模塊,只需要 kernel-devel 軟件包。已配置的源代碼可以按照內(nèi)核配置一節(jié)的步驟得到。這些步驟指的是當前運行中的內(nèi)核 為了簡化下面的指令,假設(shè)您需要配置內(nèi)核為使用當前運行中的內(nèi)核的配置。在下面的步驟中,短語
需要使用內(nèi)核源代碼的 Fedora Core 6用戶可以在內(nèi)核 .src.rpm 軟件包中找到它們。要從文件釋放源碼樹,執(zhí)行下面的命令: 不要以超級用戶身份(root)構(gòu)建軟件包以超級用戶身份構(gòu)建軟件包是極其危險的,不應(yīng)當這樣做,這不是必需的,即使是內(nèi)核。下面的操作使您可以以普通用戶身份構(gòu)建內(nèi)核。很多教程以 /usr/src/linux 作為內(nèi)核的源碼位置,如果想遵循這些操作,可以替換為 ~/rpmbuild/BUILD/kernel-
在個人目錄準備 RPM 軟件包構(gòu)建環(huán)境,運行下面的命令:
su -c 'yum install rpmdevtools yum-utils'
rpmdev-setuptree提示時輸入 root 的密碼。
安裝 kernel-
yumdownloader -e core-source -e updates-source --source kernel提示時輸入 root 的密碼。
安裝 kernel-
rpm -Uvh kernel-
硬盤空間需求
完整的內(nèi)核構(gòu)建過程可能需要您的個人目錄有幾個吉的存儲空間。
使用這樣的命令來準備內(nèi)核源代碼:
cd ~/rpmbuild/SPECS
rpmbuild -bp --target $(uname -m) kernel-2.6.spec內(nèi)核源代碼位于 ${HOME}/rpmbuild/BUILD/kernel-
Fedora Core 6 附帶的各種內(nèi)核的配置文件位于 ~/rpmbuild/BUILD/kernel-
cp configs/
例如,如果 uname -r 返回字符串 2.6.15-1.1948_FC5,就將 EXTRAVERSION 定義從:
EXTRAVERSION = -prep 修改為:
EXTRAVERSION = -1.2345_FC6也就是最后一個連字符后面的所有內(nèi)容。
執(zhí)行這個命令:
make oldconfig接下來就沒什么差別了。
構(gòu)建內(nèi)核的二進制 RPM
通常,F(xiàn)edora Core 6 的內(nèi)核是用 rpmbuild 和 spec 文件編譯的。如果使用內(nèi)核自帶的 make rpm 方式,得到的結(jié)果是不一樣的。
只構(gòu)建內(nèi)核模塊
編譯內(nèi)核模塊,如設(shè)備驅(qū)動時,不需要當前運行的內(nèi)核的完整源碼樹。為編譯外部模塊,只需要安裝 kernel-devel 軟件包。如果沒有安裝,就用 Pirut 安裝它,執(zhí)行 應(yīng)用程序 → 添加/刪除軟件 或者使用 yum。運行下面的命令來安裝:
su -c 'yum install kernel-devel'
例如,要構(gòu)建 foo.ko 模塊,在包含 foo.c 文件的目錄中創(chuàng)建下面的 Makefile:
obj-m := foo.o
KDIR := /lib/modules/$(shell uname -r)/build
PWD := $(shell pwd)
default:
$(MAKE) -C $(KDIR) M=$(PWD) modules
執(zhí)行 make 命令來編譯 foo.ko 模塊就可以了。Fedora Core 6內(nèi)核系統(tǒng)。
【編輯推薦】