發(fā)信人: fiasco (小義), 信區(qū): KernelTech
標(biāo) 題: 貼一篇怎么樣安裝minix的文章
發(fā)信站: BBS 水木清華站 (Thu May 9 16:42:36 2002)
我也在看 《操作系統(tǒng):設(shè)計與實現(xiàn)》,希望多交流
怎樣安裝Minix操作系統(tǒng)
□ 楊希煬
看過并擁有Tanenbaum與Woodhull的名著《操作系統(tǒng):設(shè)計與實現(xiàn)》一書的讀
者,一定有一張附送的
Minix 2.0版的安裝光盤。作為第一本既講授操作系統(tǒng)原理,又提供Minix源代碼分
析的經(jīng)典書籍,閱讀并
反復(fù)實踐其源代碼是一項非常重要的學(xué)習(xí)過程。然而非常麻煩的是,在《操作系統(tǒng)
:設(shè)計與實現(xiàn)》一書中
卻沒有介紹如何安裝Minix操作系統(tǒng)。(說不定Tanenbaum認為能看懂他的書的人,
個個都是計算機專家似
的,安裝Minix這樣的小兒科提都沒有必要提一下)當(dāng)然,在這里我想提醒讀者注
意的是,正因為Minix是
一個面向操作系統(tǒng)學(xué)習(xí)者的系統(tǒng),在許多方面力求簡潔清晰,安裝過程使用字符平
臺、全字符界面也是很
自然的事兒了。
在正式進入Minix的安裝介紹之前,我想先談一談Minix與UNIX和Linux的關(guān)系
以及她的設(shè)計思想。
Minix是一個類UNIX操作系統(tǒng),其2.0版符合POSIX 1003.1和ISO9945-1工業(yè)標(biāo)準(zhǔn)。
過去,UNIX操作系統(tǒng)的
起源與發(fā)展與其源代碼的公開是分不開的,而UNIX操作系統(tǒng)設(shè)計思想的先進性與前
瞻性也是無與倫比的。
時至今日,大學(xué)中"操作系統(tǒng)原理"課一直使用UNIX作為應(yīng)用實例,而AT&T公司注意
到了UNIX的商業(yè)價值后
,不再允許用UNIX的源代碼進行教學(xué)。學(xué)習(xí)"操作系統(tǒng)原理"課就成了只談理論而不
談設(shè)計與實現(xiàn)。作為計
算機科學(xué)教育家的Tanenbaum開發(fā)出了Minix用于操作系統(tǒng)教學(xué)。與UNIX相比,
UNIX注重代碼的高效率,而
Minix則強調(diào)代碼的可讀性與簡潔性。很快,Minix在網(wǎng)絡(luò)中流行起來。有很多人,
希望為Minix添加新的
特性。而Tanenbaum認為Minix應(yīng)該作為教學(xué)使用,眾多新特性只會干擾對操作系統(tǒng)
本質(zhì)的認識。于是,人
們把注意力轉(zhuǎn)向設(shè)計一個類Minix的操作系統(tǒng),這最終導(dǎo)致了Linux的誕生。
下面正式進入Minix安裝過程的學(xué)習(xí)。
第一步:制作安裝介質(zhì)
首先,需要9張空白的優(yōu)質(zhì)3寸盤,最好是Sony、3M、萬勝或威寶等名牌產(chǎn)品。待會
兒你就會知道使用普通
或是劣質(zhì)磁盤會有什么痛苦的后果。在DOS或Windows下進入Minix光盤的
\Minix\I386目錄,鍵入如下的命
令:
fdvol 1440 A: i386\ROOT i386\USR
fdvol 1440 A: i386\USR.TAZ
fdvol 1440 A: SYS.TAZ
fdvol 1440 A: CMD.TAZ
命令的第一行表示用fdvol軟件將Minix的啟動映像和安裝映像(ROOT+USR)逐字節(jié)
拷貝到一張1.44M的軟
盤上。這一點也正說明了為什么前面說需要使用優(yōu)質(zhì)磁盤。系統(tǒng)數(shù)據(jù)會寫滿整張磁
盤的每一個扇區(qū)、每一
條磁道。磁盤上任何的壞道都會讓以后的系統(tǒng)安裝推倒重來。命令的其他各行分別
表示將Minix的系統(tǒng)軟
件(USR.TAZ 三張軟盤)、Minix操作系統(tǒng)源代碼(SYS.TAZ 兩張軟盤)、系統(tǒng)軟
件源代碼(CMD.TAZ 三
張軟盤)拷貝到軟盤上。
第二步:劃分Minix分區(qū)
雖然Minix操作系統(tǒng)在安裝的過程中會啟動一個名為"part"分區(qū)程序來劃分Minix分
區(qū),但是它實在是太難
用了。我建議使用Linux下的sfdisk或DOS下的spfdisk、diskman來建立Minix主分
區(qū),分區(qū)ID為81。Minix
分區(qū)最低只需30兆的空間就足夠了。其中整個系統(tǒng)10兆,系統(tǒng)源代碼和聯(lián)機幫助
10兆,整個系統(tǒng)的編譯時
的臨時空間10兆。當(dāng)然,對于那些使用xx個G的讀者來說,分上個幾百兆也無所謂
。然后再將該Minix主分
區(qū)標(biāo)記為活動分區(qū)。最后用剛才制作的第一張(ROOT+USR)軟盤重啟動計算機即可
。
第三步:安裝Minix操作系統(tǒng)
在下面的安裝說明中,為了正確區(qū)分屏幕信息與用戶的輸入,我用藍色字符標(biāo)識用
戶的輸入,綠色的/*…
*/表示我對該行的注釋。
Finish the name of device to mount as /usr: /dev/fd0c
/*將軟盤掛裝在/usr目錄上。*/
/*再次重啟后…*/
noname login: root
# setup
What type of keyboard do you have? You can choose one of:
french italian latin-am scandinavn uk us-swap
german japanese olivetti spanish us-std
Keyboard type? [us-std]
/*詢問鍵盤的類型,默認為美國標(biāo)準(zhǔn),這里回車即可。*/
Select device ----first---- --geom/last-- ------sectors-----
Device Cyl Head Sec Cyl Head Sec Base Size Kb
/dev/hd0 ? ? ?
Num Sort Type
Type ‘+‘ or ‘-‘ to change, ‘r‘ to read, ‘?‘ for more help, ‘!‘ for
advice
/*part分區(qū)程序,鍵入 ‘r‘ 讀取硬盤分區(qū)信息,‘?‘ 的位置改變?yōu)榫唧w的硬
盤分區(qū)信息。*/
/*鑒于我們在第二步中已經(jīng)事先為Minix分好區(qū),在這里只需記下Minix的分區(qū)
號(假設(shè)是hd2),鍵
入 ‘q‘ 退出。*/
You have created a partition named: /dev/hd2
The following subpartitions are about to be created on /dev/hd2:
Root subpartition: /dev/hd2a 1440 kb
/usr subpartition: /dev/hd2c rest of hd2
Hit return if everything looks fine, or hit DEL to bail out if you
want to
think it over. The next step will destroy /dev/hd2.
/*在hd2分區(qū)上建立hd2a、hd2c兩個子分區(qū)(hd2a 1.44M、hd2c 剩余空間)。
注意:hd2a與hd2c是
Minix操作系統(tǒng)對硬盤的內(nèi)部劃分,并不修改硬盤分區(qū)表,用分區(qū)軟件當(dāng)然也看不
見。hd2a存放Minix操作
系統(tǒng)內(nèi)核,這正體現(xiàn)了Minix的微內(nèi)核結(jié)構(gòu)。同時,Tanenbaum倡導(dǎo)Minix的內(nèi)核不
應(yīng)超過1.44M,用一張軟
盤就可以裝下。這樣當(dāng)系統(tǒng)出現(xiàn)重大故障時,僅需一張備份系統(tǒng)盤就可以恢復(fù)了。
接下來則是準(zhǔn)備格式化
hd2分區(qū),由系統(tǒng)自動完成。*/
What is the memory size of this system in kilobytes? [4096 or
more]
Second level file system block cache set to 1024 kb.
/*詢問計算機系統(tǒng)的內(nèi)存容量,回車即可。*/
# halt /*當(dāng)機*/
System Halted
fd0>boot hd2 /*啟動Minix*/
noname login: root
# setup /usr /*安裝Minix系統(tǒng)軟件*/
What is the size of the images on the diskettes? [all]
What floppy drive to use? [0]
Please insert input volume 1 and hit return
/*根據(jù)提示插入‘USR.TAZ‘三張軟盤*/
/*用完全相同的方法(setup /usr)將Minix操作系統(tǒng)源代碼‘SYS.TAZ‘ 兩張
軟盤、系統(tǒng)軟件源代碼
‘CMD.TAZ‘ 三張軟盤裝入系統(tǒng)。這里八張軟盤中有任何一張出錯,又得回DOS下重
新制作安裝介質(zhì)。用正
品磁盤的好處這下顯示出來了吧 ^-^ 。*/
至此,Minix操作系統(tǒng)的安裝就告一段落了。在這里我覺得還需要補充說明一
點的是Minix的啟動環(huán)境
。與Linux操作系統(tǒng)的系統(tǒng)引導(dǎo)器Lilo(我在Emook第36期《Lilo使用詳解》一文中
有詳細介紹)相比,
Lilo是啟動程序,而Minix為啟動環(huán)境。Lilo通過lilo.conf配置文件的設(shè)置,將啟
動方式直接寫入MBR或
Linux主分區(qū)。而Minix的啟動環(huán)境則是與用戶進行交互式操作,其功能強大得多,
源代碼的編寫自然也復(fù)
雜得多。通過在Minix啟動之前按ESC鍵或以root身份輸入halt指令可進入Minix啟
動環(huán)境。Minix啟動環(huán)境
最為常用的是boot命令:boot hdx /*啟動hdx分區(qū)上的操作系統(tǒng),x指1、2、…、
N。*/。其他還有l(wèi)s、
menu、echo、name等多種環(huán)境操作命令,非常值得研究研究。
另外,我在學(xué)習(xí)Kernighan的《UNIX編程環(huán)境》時,分別采用了Minix和Linux
操作系統(tǒng)作為練習(xí)環(huán)境
。很快發(fā)現(xiàn)了一件有意思的事情。面對Kernighan非常精心而刁鉆的輸入測試時,
Minix很輕松的達到了預(yù)
定的目標(biāo),然而Linux卻在好幾處出錯。僅僅通過這樣的黑盒測試法,就可以看出
Linux的程序設(shè)計水平還
不能與Minix相比。畢竟,黑客與計算機科學(xué)家是有差距的。
Minix操作系統(tǒng)的設(shè)計精巧,代碼清晰,實現(xiàn)也并不過于復(fù)雜,非常適合計算
機科學(xué)系的大學(xué)生或研
究生學(xué)習(xí)。同時也可作為計算機科技工作者研究的實例。讓我們更加努力去學(xué)習(xí)吧
,終有一天我們會開發(fā)
出我們自己的操作系統(tǒng)來!
--
QTerm -- Quick Terminal
BBS client based on Qt library in linux
http://qterm.gnuchina.org