日本免费全黄少妇一区二区三区-高清无码一区二区三区四区-欧美中文字幕日韩在线观看-国产福利诱惑在线网站-国产中文字幕一区在线-亚洲欧美精品日韩一区-久久国产精品国产精品国产-国产精久久久久久一区二区三区-欧美亚洲国产精品久久久久

自己動手做一個迷你型Linux操作系統(tǒng)( 二 )


安裝好 LILO 之后,我們可以立即重新啟動,測試一下 。首先在 BIOS 里面,設(shè)置成從 IDE1 開始啟動,如果我們看到 LILO 的提示符,按回車后還能看到 Kernel 輸出的消息,這就算是 LILO 的安裝成功了 。記得這個操作的方法,以后每次我們更新 Flash 盤上的 Kernel Image,都記得要更新 LILO 。也就是說,要重新運(yùn)行一遍 lilo 命令 。
編譯內(nèi)核
試驗成功 LILO 的安裝以后,我們開始考慮編譯一個新的內(nèi)核 。當(dāng)然,要編譯新的內(nèi)核,我們首先要進(jìn)入我們的工作系統(tǒng) 。這里有兩個辦法進(jìn)入工作系統(tǒng),一是在 BIOS 里面設(shè)置從 IDE2 啟動,當(dāng)然,這就要求當(dāng)初安裝工作系統(tǒng)的時候,要把 LILO 安裝在 /dev/hdb 上;另一個辦法是還是從 IDE1 啟動,不改變 BIOS 的設(shè)置,但是在看到 LILO 的提示符的時候,要鍵入 linux root=/dev/hdb1,最前面的 linux 是在 lilo.conf 里面定義的一個 entry,我們只采用這個 entry 所指定的 Kernel Image,但是用 /dev/hdb1 作為 root 文件系統(tǒng) 。兩個辦法可能有的時候一個比另一個好,更方便一些 。這就要看具體的情況了 。不過,它們的設(shè)置并不是互相沖突的 。
在編譯內(nèi)核的時候,由于我們的內(nèi)核是只有一臺機(jī)器使用的,所以我們應(yīng)該對它的情況了如指掌;另外一方面,為了減低不必要的復(fù)雜性,我們決定不用 kernel module 的支持,而把所有需要的東西直接編譯到內(nèi)核的里面 。這樣編譯出來的內(nèi)核,在一臺普通的 586 主板上,把所有必要的功能都加進(jìn)去,一般也不到 800K 字節(jié) 。所以,這個辦法是可行的 。而且減低了 init scripts 的復(fù)雜程度 。從運(yùn)行方面來考慮,由于需要的 kernel 代碼反正是要裝載到內(nèi)存中的,所以并不會引起內(nèi)存的浪費(fèi) 。
在我們的目標(biāo)平臺上,我們希望使用 USB 存儲設(shè)備 。還有一點要注意的,就是對 Frame buffer 的支持 。這主要是為了支持 XFree86 。一般說來,如果我們的顯卡是 XFree86 直接支持的,那當(dāng)然最好,也就不需要 frame buffer 的內(nèi)核支持 。但是如果 XFree86 不支持我們的顯卡,我們可以考慮用 VESA 模式 。但是 XFree86 的 VESA 卡支持運(yùn)行起來不太漂亮,還有安全方面的問題,有時在啟動和退出 X Window 的時候會出現(xiàn)花屏 。所以我們可以采用 kernel 的 vesa 模式的 frame buffer,然后用 xfree86 的 linux frame buffer 的驅(qū)動程序 。這樣一般就看不到花屏的現(xiàn)象了,而且安全方面也沒有任何問題 。
devfs 也是我們感興趣的話題 。如果 kernel 不使用 devfs,那么系統(tǒng)上的 root 文件系統(tǒng)就要有 /dev 目錄下面的所有內(nèi)容 。這些內(nèi)容可以用 /dev/MAKEDEV 腳本來建立,也可以用 mknod 手工一個一個來建 。這個方法有其自身的好處 。但是它的缺點是麻煩,而且和 kernel 的狀態(tài)又并不一致 。相反的,如果使用了 devfs,我們就再也不用擔(dān)心 /dev 目錄下面的任何事情了 。/dev 目錄下面的項目會有 kernel 的代碼自己負(fù)責(zé) 。實際使用起來的效果,對內(nèi)存的消耗并不明顯 。所以我們選擇 devfs 。
busybox
【自己動手做一個迷你型Linux操作系統(tǒng)】有了 LILO 和 kernel image 之后,接下來,我們要安排 root 文件系統(tǒng) 。由于 flash 盤的空間只有 16M 字節(jié),可以說,這是對我們最大的挑戰(zhàn) 。這里首先要向大家介紹小型嵌入式 Linux 系統(tǒng)安排 root 文件系統(tǒng)時的一個常用的利器:BusyBox 。
Busybox 是 Debian GNU/Linux 的大名鼎鼎的 Bruce Perens 首先開發(fā),使用在 Debian 的安裝程序中 。后來又有許多 Debian developers 貢獻(xiàn)力量,這其中尤推 busybox 目前的維護(hù)者 Erik Andersen,他患有癌癥,可是卻是一名優(yōu)秀的自由軟件開發(fā)者 。
Busybox 編譯出一個單個的獨立執(zhí)行程序,就叫做 busybox 。但是它可以根據(jù)配置,執(zhí)行 ash shell 的功能,以及幾十個各種小應(yīng)用程序的功能 。這其中包括有一個迷你的 vi 編輯器,系統(tǒng)不可或缺的 /sbin/init 程序,以及其他諸如 sed, ifconfig, halt, reboot, mkdir, mount, ln, ls, echo, cat ... 等等這些都是一個正常的系統(tǒng)上必不可少的,但是如果我們把這些程序的原件拿過來的話,它們的體積加在一起,讓人吃不消 。可是 busybox 有全部的這么多功能,大小也不過 100K 左右 。而且,用戶還可以根據(jù)自己的需要,決定到底要在 busybox 中編譯進(jìn)哪幾個應(yīng)用程序的功能 。這樣的話,busybox 的體積就可以進(jìn)一步縮小了 。

推薦閱讀