新開一個分類,名字為"操作系統(tǒng)",因為我最近開始看趙炯博士的<<linux0.11代碼完全注釋>>以及于淵的<<自己動手開發(fā)操作系統(tǒng)>>。趙博士的書是很早就聽說的了,那時候我還沒有大學畢業(yè),最開始是自己免費開放了電子版,當然現(xiàn)在還有得下載,而且是更新之后的版本,他自己辦了一個論壇專門討論linux0.11的問題,我有時會去看看,治學態(tài)度沒的說,所以在這本書變成紙版印刷發(fā)行的時候我都毫不猶豫的買了下來(前后一共兩本我都買了)。趙博士的書解說的很詳盡,只可惜我感覺對保護模式部分可能比較欠缺,至少我沒有辦法從這本書里面找到一步一步通過實驗來讓我逐步掌握保護模式的內(nèi)容,看到這部分就卡住了,于是又買了<<自己動手開發(fā)操作系統(tǒng)>>,兩者互相作一個補充。
我的興趣愛好或者說自己給自己的定位不是以后作一個kernel開發(fā)人員,很多人會問為什么要研究這些東西?沒別的,我想如果一個開發(fā)人員能夠?qū)τ嬎銠C的任何內(nèi)幕都有足夠的了解是一件很美妙的事情,想想看你知道系統(tǒng)是怎么開始啟動起來的,操作系統(tǒng)是怎么管理內(nèi)存的,怎么創(chuàng)建進程,線程的...OS一切的一切都在你的心中,這是一件非常美妙的感覺,我希望以后能達到這個高度。
以上解釋了我為什么會花費精力在這部分知識上,事實上就我開始研究這個玩意兒幾天的感覺來看是很有意思的....等我把linux0.11的代碼研究完了就要開始看<<TCP/IP協(xié)議詳解>>第二卷,那也是一本能讓象我這樣的人很爽的書。
閑話少說,<<自己動手作操作系統(tǒng)>>一書中談到了建立一個DOS虛擬機以便進行保護模式編程的實驗,書上對這部分的描述并不是很多,而這個虛擬機環(huán)境的建立花費了幾個晚上的時間才搞定,下面作一個記錄。
1)選擇的虛擬機是virtual pc,版本是VirtualPCv5.2Build420,這個版本應該是virtual pc被MS收購之前的版本,我曾經(jīng)使用過2004,2007,都沒有找到辦法在該dos虛擬機下面使用主機的文件。下載到VirtualPCv5.2Build420之后,啟動已經(jīng)安裝好的dos,加載DOS附加模塊\Dos Additions.vfd,然后進入A盤運行dosadd.bat文件就可以完成DOS附加模塊的安裝,這樣在重啟系統(tǒng)之后就可以訪問主機的文件了。
詳細的說明在這里:
http://www.dream2fly.net/blog/?action=show&id=57
2)選擇的匯編編譯器是nasm for 16位dos版,nasm for windows或者32位dos版本都不能用在這個環(huán)境下面。
3)選擇的操作系統(tǒng)是msdos7.1,但是我發(fā)現(xiàn)書中的保護模式代碼不能運行在這個系統(tǒng)里面,報錯是“"emm386:unrecoverable privileged operation error #n9.press enter to reboot.."”,然后系統(tǒng)死機。搜索了一下,在作者于淵自己的blog里面有人做了回答,就是將config.sys文件中emm的部分去掉。