- 30天自制操作系統(tǒng)
- (日)川合秀實
- 955字
- 2020-03-11 14:01:38
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)行。

也就是說,所謂開發(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)容寫在了幫助與支持里,有需要的人請一定看一看。
另外,如果C編譯器和映像文件制作工具等不一樣的話,開發(fā)過程中就會產(chǎn)生一些細(xì)微的差別,這很難一一解釋,所以筆者就直接把所有的工具都放到附帶光盤里了。這些幾乎都是筆者所發(fā)布的免費軟件,它們大都是筆者為了開發(fā)后面的OSASK操作系統(tǒng)而根據(jù)需要自己編寫的。這些工具的源代碼也是公開的。除此之外,我們還會用到其他一些免費軟件,所有這些軟件的功能我們會在使用的時候詳細(xì)介紹。
- Containerization with LXC
- Linux實戰(zhàn)
- Hands-On DevOps with Vagrant
- 異質(zhì)結(jié)原理與器件
- Windows Phone 8 Application Development Essentials
- Docker+Kubernetes應(yīng)用開發(fā)與快速上云
- RESS Essentials
- 網(wǎng)絡(luò)操作系統(tǒng)管理與應(yīng)用(第三版)
- 嵌入式系統(tǒng)原理及開發(fā)
- Dreamweaver CS5.5 Mobile and Web Development with HTML5,CSS3,and jQuery
- Introduction to R for Quantitative Finance
- Learn SwiftUI
- Multi-Cloud for Architects
- Web Penetration Testing with Kali Linux(Third Edition)
- 電腦辦公(Windows 10 + Office 2016)入門與提高(超值版)