我是如何学习写一个操作系统(一):开篇
前言
有人說程序員的三大浪漫分別是編譯原理、操作系統(tǒng)和計(jì)算機(jī)網(wǎng)絡(luò)
在之前完成了一兩個小軟件和網(wǎng)站后遇見了編譯原理,也不知道為什么就傻傻的學(xué),還寫了一個從零寫編譯器的系列學(xué)習(xí)筆記,不過都是小打小鬧,只能算作摸到了一點(diǎn)點(diǎn)入門的門檻。再后來想深入學(xué)習(xí)的時候,因?yàn)槭罴僭诩液芏鄷I來的話再帶去學(xué)校很麻煩,就索性找了一本操作系統(tǒng)的書,也不懂原理就擼了一個玩具型的操作系統(tǒng)
幾句感概
在身邊同學(xué)都在埋頭在各種Web方向,做出各種酷炫的東西,也深深覺得自己Web方向的技術(shù)棧太淺淺,之前利用React全家桶+Electron和node做后臺的一個聊天軟件,以現(xiàn)在來看略顯幼稚,另外的Java雖然是我的第二門語言可是到現(xiàn)在也不算上得臺面。下學(xué)期就大三了,越臨近就業(yè)就越焦慮,下學(xué)期可能會更側(cè)重應(yīng)用方向吧。
寫這個系列的原因
因?yàn)楦鴷蠑]的操作系統(tǒng)屬于小的玩具型的操作系統(tǒng),所以很多涉及到操作系統(tǒng)比較深入的原理都沒有進(jìn)行學(xué)習(xí),所以這個系列想作為自己學(xué)習(xí)操作系統(tǒng)的記錄,也就是對原理性的學(xué)習(xí)和結(jié)合實(shí)現(xiàn)一個玩具型的操作系統(tǒng)
FragileOS
FragileOS就是之前實(shí)現(xiàn)的一個玩具型操作系統(tǒng),之前叫這個名字是因?yàn)樗娴暮蹻ragile,代碼結(jié)構(gòu)不好,功能不多,原型基本是來自別人的(后面會提到)
代碼在github上已經(jīng)分享出來了:FragileOS
主要界面
正式開始
這個學(xué)習(xí)筆記可能用到的有四本書:
- 《x86匯編語言:從實(shí)模式到保護(hù)模式》
- 《操作系統(tǒng):精髓與設(shè)計(jì)原理》
- 《OrangeS:一個操作系統(tǒng)的實(shí)現(xiàn)》
- 《30天自制操作系統(tǒng)》
第一本和第三本第四本在之前實(shí)現(xiàn)那個玩具型操作系統(tǒng)起了很大的作用,但是第三本只看了一點(diǎn),第二本則是根據(jù)別人的推薦來的。所以戰(zhàn)線很長很長,希望能堅(jiān)持下來
環(huán)境準(zhǔn)備
VirtualBox 6.0
一個開源的虛擬機(jī),開發(fā)的操作系統(tǒng)就運(yùn)行在這之上- GCC 8.1.0
NASM 2.07
匯編器objconv
反匯編器
希望能夠堅(jiān)持下去吧
轉(zhuǎn)載于:https://www.cnblogs.com/secoding/p/11402948.html
總結(jié)
以上是生活随笔為你收集整理的我是如何学习写一个操作系统(一):开篇的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 小希的迷宫 HDU - 1272 (并查
- 下一篇: Constructing Roads P