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