官术网_书友最值得收藏!

5 如何開發(fā)操作系統(tǒng)

操作系統(tǒng)(OS)一般打開電源開關(guān)就會自動執(zhí)行。這是怎么實現(xiàn)的呢?一般在Windows上開發(fā)的可執(zhí)行文件(~.exe),都要在操作系統(tǒng)啟動以后,雙擊一下才能運行。我們這次想要做的可不是這種可執(zhí)行程序,而是希望能夠做到把含有操作系統(tǒng)的CD-ROM或軟盤插入電腦,或者將操作系統(tǒng)裝入硬盤后,只要打開電源開關(guān)就能自動運行。

為了開發(fā)這樣的操作系統(tǒng),我們準(zhǔn)備按照如下的步驟來進(jìn)行。source program,為了生成機器碼所寫的程序代碼。可通過編譯器編譯成機器語言。  CPU能夠直接理解的語言,由二進(jìn)制的0和1構(gòu)成。其實源代碼也是由 0和1構(gòu)成的(后述)。

也就是說,所謂開發(fā)操作系統(tǒng),就是想辦法制作一張“含有操作系統(tǒng)的,能夠自動啟動的磁盤”。

這里出現(xiàn)的“映像文件”一詞,簡單地說就是軟盤的備份數(shù)據(jù)。我們想要把特定的內(nèi)容寫入磁盤可不是拿塊磁鐵來在磁盤上晃晃就可以的。所以我們要先做出備份數(shù)據(jù),然后將這些備份數(shù)據(jù)寫入磁盤,這樣才能做出符合我們要求的磁盤。

軟盤的總?cè)萘渴?440KB,所以作為備份數(shù)據(jù)的映像文件也恰好是1440KB。一旦我們掌握了制作磁盤映像的方法,就可以按自己的想法制作任意內(nèi)容的磁盤了。

這里希望大家注意的是,開發(fā)操作系統(tǒng)時需要利用Windows等其他的操作系統(tǒng)。這是因為我們要使用文本編輯器或者C編譯器,就必須使用操作系統(tǒng)。既然是這樣,那么世界上第一個操作系統(tǒng)又是怎么做出來的呢?在開發(fā)世界上第一個操作系統(tǒng)時,當(dāng)然還沒有任何現(xiàn)成的操作系統(tǒng)可供利用,因此那時候人們不得不對照著CPU的命令代碼表,自己將0和1排列起來,然后再把這些數(shù)據(jù)寫入磁盤(估計那個時候還沒有磁盤,用的是其他存儲設(shè)備)。這是一項非常艱巨的工作。所以恐怕最初的操作系統(tǒng)功能非常有限,做好之后人們再利用它來開發(fā)一個稍微像點樣的操作系統(tǒng),然后再用這個來開發(fā)更實用的操作系統(tǒng)……操作系統(tǒng)應(yīng)該就是這樣一步一步發(fā)展過來的。

由于這次大部分初學(xué)者都是Windows用戶,所以決定使用Windows這個現(xiàn)成的操作系統(tǒng),Windows95/98/Me/2000/XP中任意一個版本都可以。肯定也有人會說還是Linux好用,所以筆者也總結(jié)了一下Linux上的做法,具體內(nèi)容寫在了幫助與支持http://hrb.osask.jp。里,有需要的人請一定看一看。

另外,如果C編譯器和映像文件制作工具等不一樣的話,開發(fā)過程中就會產(chǎn)生一些細(xì)微的差別,這很難一一解釋,所以筆者就直接把所有的工具都放到附帶光盤里了。這些幾乎都是筆者所發(fā)布的免費軟件,它們大都是筆者為了開發(fā)后面的OSASK操作系統(tǒng)而根據(jù)需要自己編寫的。這些工具的源代碼也是公開的。除此之外,我們還會用到其他一些免費軟件,所有這些軟件的功能我們會在使用的時候詳細(xì)介紹。

主站蜘蛛池模板: 白沙| 清丰县| 巴彦淖尔市| 百色市| 巨鹿县| 横峰县| 平罗县| 扎兰屯市| 蒙城县| 资溪县| 齐河县| 郯城县| 沅陵县| 克什克腾旗| 遂昌县| 禹城市| 彩票| 新绛县| 高清| 合水县| 达尔| 海丰县| 普宁市| 临海市| 柏乡县| 山东| 方城县| 姜堰市| 丰都县| 方城县| 师宗县| 常宁市| 广州市| 南皮县| 临武县| 资源县| 会泽县| 肇东市| 裕民县| 梅河口市| 永登县|