第0天 著手開發之前
1 前言
現在,挑選自己喜歡的配件來組裝一臺世界上獨一無二的、個性化的PC(個人電腦)對我們來說已不再困難。不僅如此,只要使用合適的編譯器,我們就可以自己編寫游戲、制作自己的工具軟件;使用網頁制作工具,我們還可以輕而易舉地制作主頁;如果看過名著《CPU制作法》
的話,就連自制CPU也不在話下。
然而,在“自制領域”里至今還有一個無人涉足的課題——自己制作操作系統(OS),它看起來太難以至于初學者不敢輕易挑戰。電腦組裝也好,游戲、工具軟件制作也好,主頁也好,CPU也好,這些都已經成為初學者能夠嘗試的項目,而唯獨操作系統被冷落在一邊,實在有些遺憾。“既然還沒有這樣的書,那我就來寫一本。”這就是筆者撰寫本書的初衷。
也許是因為面向初學者的書太少的緣故吧,一說起操作系統,大家就會覺著那東西復雜得不得了,簡直是高深莫測。特別是像Windows和Linux這些操作系統,龐大得一張光盤都快裝不下了,要是一個人憑著興趣來開發的話,不知道需要歷經多么漫長的過程才能完成。筆者也認為,像這么復雜的操作系統,單憑一個人來做,一輩子都做不出來。
不過大家也不必擔心太多。筆者就成功地開發過一個小型操作系統,其大小還不到80KB。麻雀雖小,五臟俱全,這個操作系統的功能還是很完整的。有人也許會懷疑:“這么小的操作系統,是不是只有命令行窗口
啊?要不就是沒有多任務
? ”不,這些功能都有。
怎么樣,只有80KB的操作系統,大家不覺得稍作努力就可以開發出來嗎?即使是初學者,恐怕也會覺得這不是件難事吧?沒錯,我們用一個月的時間就能寫出自己的操作系統!所以大家不用想得太難,我們輕輕松松地一起來寫寫看吧。

以本書作者為主角開發的操作系統OSASK
大家一聽到編譯后的文件大小為80KB可能會覺得它作為程序來講已經很小了,不過曾經編過程序的人可以查一查自己編的程序(.exe文件)的大小,這樣就能體會到80KB到底是難是易了。
沒編過程序的人也可以下載一個看上去不是很復雜的自由軟件,看看它的可執行文件有多大。Windows 2000的計算器程序大約是90KB,大家也可以根據這個想象一下。
本書對于不打算自己寫操作系統,甚至連想都沒想過這個問題的人來說也會大有裨益。舉個例子,讀本自己組裝PC的書就能知道PC是由哪些組件構成的,PC的性能是由哪些部分決定的;讀本如何編寫游戲的書,就能明白游戲是怎樣運行的;同理,讀了本書,了解了操作系統的開發過程,就能掌握操作系統的原理。所以說,對操作系統有興趣的人,哪怕并不想自己做一個出來,也可以看看這本書。
閱讀本書幾乎不需要相關儲備知識,這一點稍后還會詳述。不管是用什么編程語言,只要是曾經寫過簡單的程序,對編程有一些感覺,就已經足夠了(即使沒有任何編程經驗,應該也能看懂),因為這本書主要就是面向初學者的。書中雖然有很多C語言程序,但實際上并沒有用到很高深的C語言知識,所以就算是曾經因為C語言太難而中途放棄的人也不用擔心看不懂。當然,如果具備相關知識的話,理解起來會相對容易一些,不過即使沒有相關知識也沒關系,書中的說明都很仔細,大家可以放心。
本書以IBM PC/AT兼容機(也就是所謂的Windows個人電腦)為對象進行說明。至于其他機型,比如Macintosh(蘋果機)或者PC-9821等,雖然本書也參考了其中某些部分,但基本上無法開發出在這些機型上運行的操作系統,這一點還請見諒。嚴格地說,不是所有能稱為AT兼容機的機型都可以開發我們這個操作系統,我們對機器的配置要求是CPU高于386(因為我們要開發32位操作系統)。換句話說,只要是能運行Windows 95以上操作系統的機器就沒有問題,況且現在市面上(包括二手市場)恐怕都很難找到Windows 95以下的機器了,所以我們現在用的機型一般都沒問題。
另外,大家也不用擔心內存容量和硬盤剩余空間,我們需要使用的空間并不大。只要滿足以上條件,就算機器又老又慢,也能用來開發我們的操作系統。
- Containerization with LXC
- Puppet實戰
- Kali Linux滲透測試全流程詳解
- SharePoint 2013 應用開發實戰
- Kali Linux 2018:Windows Penetration Testing
- Django Project Blueprints
- VMware Horizon View Essentials
- μC/OS-III內核實現與應用開發實戰指南:基于STM32
- CSS揭秘
- Linux系統安全:縱深防御、安全掃描與入侵檢測
- Linux系統管理初學者指南:基于CentOS 7.6
- 每天5分鐘玩轉Docker容器技術
- Docker容器技術與運維
- Selenium Framework Design in Data-Driven Testing
- Modern Python Cookbook