您的位置:網(wǎng)站首頁 > 電器維修資料網(wǎng) > 正文 >
自制軟盤FreeBSD系統(tǒng)3
★★★★★【文章導(dǎo)讀】:自制軟盤FreeBSD系統(tǒng)3具體內(nèi)容是:bsd#makedepend&&makekernel編譯完成后就會(huì)成生kernel這個(gè)文件,這時(shí)它的體積還是比較大,不過現(xiàn)在不用管它,后面將會(huì)介紹如何處理它。4、編譯系統(tǒng)程序現(xiàn)在就要準(zhǔn)備系統(tǒng)所需要的基本程序了,首先 基本的是init和sh,…
來源: 日期:2013-12-25 20:16:09 人氣:標(biāo)簽:
bsd# make depend && make kernel
編譯完成后就會(huì)成生kernel這個(gè)文件,這時(shí)它的體積還是比較大,不過現(xiàn)在不用管它,后面將會(huì)介紹如何處理它。
4、編譯系統(tǒng)程序
現(xiàn)在就要準(zhǔn)備系統(tǒng)所需要的基本程序了,首先 基本的是init和sh,init是所有進(jìn)程的父進(jìn)程,它負(fù)責(zé)進(jìn)行一些初始化工作,它將是kernel引導(dǎo)完成后要運(yùn)行的第一個(gè)用戶進(jìn)程,而sh用于解釋/etc/rc中的命令。在UNIX中大部程序都使用了共享庫,這有利減少磁盤空間的占用,這對于使用硬盤是非常有用的,然而對于軟盤就不太適用了,因?yàn)閱我粋(gè)大部分程序都要使用的庫libc.so就有500多K,加上其它的庫軟盤根本就裝不下。
我們可以發(fā)現(xiàn),大部分時(shí)候一個(gè)程序只是用到了庫中的某個(gè)函數(shù),但同樣也要加載整個(gè)庫,所以我們可以使用靜態(tài)編譯來使程序只包含它使用的那部分函數(shù),這樣可以減少程序的大小。
不過這樣問題同樣存在,如果只有少數(shù)程序這到?jīng)]有什么,一旦程序很多時(shí),那么空間問題同樣存在。如果會(huì)C語言的朋友都知道,其實(shí)每一個(gè)程序中有很大一部分函數(shù)是相同的,比如printf,這個(gè)函數(shù)在大部分程序中都會(huì)用到,如果每個(gè)程序都包含一段printf的代碼,那么如果有100個(gè)程序的話,就會(huì)包含 100個(gè)這樣的代碼,然而這些代碼都是相同的,實(shí)際上有99個(gè)都是浪費(fèi)了空間,那么可不可以讓一些程序在靜態(tài)編譯的情況下也能夠共享一些函數(shù)呢?要知道答案,往下接著看。
幸好,PICOBSD為我們提供了這樣的一個(gè)機(jī)制,使得程序即不用加載標(biāo)準(zhǔn)庫也可以利用其它程序中的相同函數(shù),這就是crunch(crunch好像是世界頂級黑客John Draper的網(wǎng)名,不知道這與他有沒有關(guān)系。crunch是將所有需要的軟件編譯在一個(gè)文件中即crunch,然后當(dāng)中的程序通過symbol link的方式link到它上面,這樣便可以使用相應(yīng)的程序(類似于linux中的busybox),同時(shí)又節(jié)約了空間。PICOBSD為我們提供了一個(gè)自己定制crunch的機(jī)會(huì),在FreeBSD4.5 Release(注:4.8 Release中的crunch無法定制,至少我沒有找到,所以建議大家使用4.5)中,crunch的配制文件是 /usr/SRC/release/picobsd/custom/crunch1/crunch.conf,編輯它以選擇你需要哪些軟件,下面以一個(gè)例子來說明它的用法。
# $FreeBSD: src/release/picobsd/router/crunch.conf,
v 1.1.2.2 2001/02/20 02:53:35 luigi Exp $
#
# NOTE: the string "/usr/src" will be automatically replaced with the
# correct value set in 'build' script - you should change it there
# Default build options
buildopts -DNOPAM -DRELEASE_CRUNCH -DNOSECURE -DNOCRYPT -DNONETGRAPH -DNOIPSEC
# other sources
srcdirs /usr/src/bin
srcdirs /usr/src/sbin/i386
srcdirs /usr/src/sbin
srcdirs /usr/src/usr.bin
srcdirs /usr/src/usr.sbin
srcdirs /usr/src/gnu/usr.bin
srcdirs /usr/src/gnu/usr.sbin
srcdirs /usr/src/libexec
# sources for ns & vm
srcdirs /usr/src/release/picobsd/tinyware
以下為你所需要在crunch包含的程序列表,以空格分隔。
progs dmesg PINg ifconfig route hostname
progs cp rm ls cat test mkdir less
progs uname sysctl
progs init sh reboot
【看看這篇文章在百度的收錄情況】
相關(guān)文章
- 上一篇: 自制軟盤FreeBSD系統(tǒng)2
- 下一篇: 自制軟盤FreeBSD系統(tǒng)4