自己製作一個操作系統的過程,閱讀過程會一邊漢化源碼,一邊執行還有根據一些相關的內容進行代碼的書寫,歡迎大家交流。
運行方法,在tolset中新建一個run文件夾,把代碼拷貝進去,然後根據系統版本運行!cons_**.bat 。
一般都是使用make run運行代碼,27天開始使用make run_full 。可以直接看書。 又或者,把tolset裡的z_tools目录複製到本項目目錄30dayMakeOS下。

一開始首先要考慮怎麼來寫一個“只要一通電就能運行的程序”。這部分用C語言寫起來有些困難,所以主要還是用彙編語言來寫。
這步完成之後,下一步就要寫一個從磁盤讀取操作系統的程序。這時即便打開電腦電源,它也不會自動地將操作系統全部都讀進來,它只能讀取磁盤上最開始的512字節的內容,所以我們要編寫剩餘部分的載入程序。這個程序也要用彙編語言編寫。
一旦完成了這一步,以後的程序就可以用C語言來編寫了。我們就盡快使用C語言來學習開發顯示畫面的程序。同時,我們也能慢慢熟悉C語言語法。這個時候我們好像在做自己想做的事,但事實上我們還沒有自由操縱C語言。
接下來,為了實現“移動鼠標”這一雄心,我們要對CPU進行細緻的設定,並掌握中斷處理程序的寫法。從全書總體看來,這一部分是水平相當高的部分,筆者也覺得放在這裡有些不妥,但從本書條理上講,這些內容必須放在這裡,所以只好請大家忍耐一下了。在這裡,CPU的規格以及電腦復雜的規格都會給我們帶來各種各樣的麻煩。而且開發語言既有C語言,又有彙編語言,這又給我們造成了更大的混亂。這個時候我們一點兒也不會覺得這是在做自己想做的事,怎麼看都像是在“受人擺佈”。
渡過這個痛苦的時期,第一周就該結束了。
一周的苦戰還是很有意義的,回頭一看,我們就會發現自己還是斬獲頗豐的。這時我們已經基本掌握了C語言的語法,連彙編語言的水平也能達到本書的要求了。
所以現在我們就可以著手開發像樣的操作系統了。但是這一次我們又要為算法頭痛了。即使掌握了編程語言的語法,如果不懂得好的算法的話,也還是不能開發出來自己想要的操作系統。
所以這一周我們就邊學習算法邊慢慢地開發操作系統。不過到了這一階段,我們就能感覺到基本上不會再受技術問題限制了。
現在我們的技術已經相當厲害了,可以隨心所欲地開發自己的操作系統了。首先是要支持多任務,然後是開發命令行窗口,之後就可以著手開發應用程序了。
到本週結束時,就算還不夠完備,我們也能拿出一個可以稱之為操作系統的軟件了。
在這個階段,我們可以盡情地給操作系統增加各種各樣的功能,同時還可以開發出大量像模像樣的應用程序來。
這個階段我們已經能做得很好了,這可能也是我們最高興的時期。這部分要講解的內容很少,筆者也不用再煞費苦心地去寫那些文字說明了,可以把精力都集中在編程上(笑)。
對了,說起文字才想起來,正好在這個時期可以讓我們的操作系統顯示文字了。
剩下的兩天用來潤色加工。這兩天我們來做一些之前沒來得及做,但做起來既簡單又有趣的內容。