我是如何學習寫一個操做系統(一):開篇

前言

有人說程序員的三大浪漫分別是編譯原理、操做系統和計算機網絡html

在以前完成了一兩個小軟件和網站後碰見了編譯原理,也不知道爲何就傻傻的學,還寫了一個從零寫編譯器的系列學習筆記,不過都是小打小鬧,只能算做摸到了一點點入門的門檻。再後來想深刻學習的時候,由於暑假在家不少書買來的話再帶去學校很麻煩,就索性找了一本操做系統的書,也不懂原理就擼了一個玩具型的操做系統node

幾句感概

在身邊同窗都在埋頭在各類Web方向,作出各類酷炫的東西,也深深以爲本身Web方向的技術棧太淺淺,以前利用React全家桶+Electron和node作後臺的一個聊天軟件,以如今來看略顯幼稚,另外的Java雖然是個人第二門語言但是到如今也不算上得檯面。下學期就大三了,越臨近就業就越焦慮,下學期可能會更側重應用方向吧。git

寫這個系列的緣由

由於跟着書上擼的操做系統屬於小的玩具型的操做系統,因此不少涉及到操做系統比較深刻的原理都沒有進行學習,因此這個系列想做爲本身學習操做系統的記錄,也就是對原理性的學習和結合實現一個玩具型的操做系統程序員

FragileOS

FragileOS就是以前實現的一個玩具型操做系統,以前叫這個名字是由於它真的很Fragile,代碼結構很差,功能很少,原型基本是來自別人的(後面會提到)github

代碼在github上已經分享出來了:FragileOS網絡

主要界面學習

正式開始

這個學習筆記可能用到的有四本書:網站

  • 《x86彙編語言:從實模式到保護模式》
  • 《操做系統:精髓與設計原理》
  • 《OrangeS:一個操做系統的實現》
  • 《30天自制操做系統》

第一本和第三本第四本在以前實現那個玩具型操做系統起了很大的做用,可是第三本只看了一點,第二本則是根據別人的推薦來的。因此戰線很長很長,但願能堅持下來操作系統

環境準備

  • VirtualBox 6.0計算機網絡

    一個開源的虛擬機,開發的操做系統就運行在這之上

  • GCC 8.1.0

  • NASM 2.07

    彙編器

  • objconv

    反彙編器

但願可以堅持下去吧

相關文章
相關標籤/搜索