前言
有人說程序員的三大浪漫分別是編譯原理、操作系統(tǒng)和計算機網絡
在之前完成了一兩個小軟件和網站后遇見了編譯原理,也不知道為什么就傻傻的學,還寫了一個從零寫編譯器的系列學習筆記
<https://www.cnblogs.com/secoding/p/11393720.html>
,不過都是小打小鬧,只能算作摸到了一點點入門的門檻。再后來想深入學習的時候,因為暑假在家很多書買來的話再帶去學校很麻煩,就索性找了一本操作系統(tǒng)的書,也不懂原理就擼了一個玩具型的操作系統(tǒng)
幾句感概
在身邊同學都在埋頭在各種Web方向,做出各種酷炫的東西,也深深覺得自己Web方向的技術棧太淺淺,之前利用React全家桶+Electron和node做后臺的一個
聊天軟件 <https://github.com/dejavudwh/StackChat>
,以現(xiàn)在來看略顯幼稚,另外的Java雖然是我的第二門語言可是到現(xiàn)在也不算上得臺面。下學期就大三了,越臨近就業(yè)就越焦慮,下學期可能會更側重應用方向吧。
寫這個系列的原因
因為跟著書上擼的操作系統(tǒng)屬于小的玩具型的操作系統(tǒng),所以很多涉及到操作系統(tǒng)比較深入的原理都沒有進行學習,所以這個系列想作為自己學習操作系統(tǒng)的記錄,也就是對原理性的學習和結合實現(xiàn)一個玩具型的操作系統(tǒng)
FragileOS
FragileOS就是之前實現(xiàn)的一個玩具型操作系統(tǒng),之前叫這個名字是因為它真的很Fragile,代碼結構不好,功能不多,原型基本是來自別人的(后面會提到)
代碼在github上已經分享出來了:FragileOS <https://github.com/dejavudwh/FragileOS>
主要界面
正式開始
這個學習筆記可能用到的有四本書:
* 《x86匯編語言:從實模式到保護模式》
* 《操作系統(tǒng):精髓與設計原理》
* 《OrangeS:一個操作系統(tǒng)的實現(xiàn)》
* 《30天自制操作系統(tǒng)》
第一本和第三本第四本在之前實現(xiàn)那個玩具型操作系統(tǒng)起了很大的作用,但是第三本只看了一點,第二本則是根據(jù)別人的推薦來的。所以戰(zhàn)線很長很長,希望能堅持下來
環(huán)境準備
*
VirtualBox 6.0
一個開源的虛擬機,開發(fā)的操作系統(tǒng)就運行在這之上
* GCC 8.1.0
*
NASM 2.07
匯編器
*
objconv
反匯編器
希望能夠堅持下去吧
熱門工具 換一換