《30天自製操作系統》(川合秀實)閱讀筆記
書本實現了一個名為OSASK的只有80KB的簡單操作系統,效果圖如下

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