自己學習作業系統的時間也挺長了,雖然目前的成果還不是特別明顯,但是在這段時間中還是學習了很多,今天想在這裡和大家分享一下如何學習作業系統,以及如何制定學習作業系統的路線。
以下是針對有過程式設計經歷的。
1,首先作業系統是人機互動的**,那麼作為作業系統必定是要和機器硬體打交道的,那麼我們肯定是要學習一部分硬體知識,所以沒有硬體知識的應該去補習一下硬體的知識,不用深究到電路,只需要了解電腦的基本部件和特性。
2,假定你有過c語言程式設計的經歷,那麼可以學習簡單的組合語言,以及學習一下arm嵌入式系統,因為x86的定址模式,保護模式容易把你弄暈。剛開始的時候可以只學習簡單的組合語言程式設計,以及arm嵌入式系統硬體方面的資訊,比如arm體系結構、指令集、以及一些簡單的外設相關資訊。
3,那麼現在就可以真正的開始學習作業系統了,
3.1 作業系統的理論知識過一遍,
3.2 然後把計算機啟動流程弄清楚(這個特別重要),比如說實模式,保護模式,可能你在前面學習arm嵌入式系統的時候會接觸mmu,那麼就會接觸保護模式,建議是只需要了解概念,不要去深入,因為作業系統進入保護模式的乙個不容易理解的問題(如果想要研究推薦一本書《x86組合語言從實模式到保護模式》),我們應該從編寫實模式的作業系統開始,那樣更容易入門。
3.3
暫時我們就不用了解保護模式下的程式設計,但是我們要理解計算機的啟動過程,然後自己編寫mbr,自己編寫實模式的簡單的核心,自己編寫實模式下的應用程式...,這裡推薦乙個工具bochs,配置好bochs之後,你就可以編寫自己的mbr,編寫核心,系統呼叫例程,使用者程式,同時還可以進行c語言和彙編的混合編譯(注意這整個過程在實模式下進行,你可以實現作業系統的全部功能,儘管沒有保護模式,你同樣可以通過c語言和組合語言實現作業系統的全部功能)
3.4 在上面利用c語言組合語言編寫實模式的作業系統的時候,可以參考嵌入式的linux的**,當你在實模式下能運用自如了,那麼在去看《x86組合語言從實模式到保護模式》這本書,那麼整個作業系統的學習,已經作業系統的歷程你也跳躍的走過了一遍了。
3.5 那麼你再看linux核心的原始碼的時候就輕鬆了很多。
4,學習的路線暫時到此,後續有作業系統應用路線。
作業系統學習
看了幾天的資料,今天終於有時間把測試環境搭建起來。模擬機bochs nasm ultraiso 模擬機bochs的設定不難,在網上搜了些資料和參考了bochs的說明檔案,基本上就可以組建並執行起來。在網上下了個dos的映象,執行bochs從a盤啟動,之後把硬碟分割槽格式化,乙個最基礎的測試環境就完成...
作業系統學習
1 處理器硬體故障中斷事件 由處理器,記憶體儲器,匯流排等故障引起 程式性中斷事件 2 處理器執行機器指令引起 1.1 除數為零,運算元溢位等算術異常 1.3 終止程序指令 終止程序 3 自願性中斷事件 1.1 處理器執行陷入指令請求os服務引起 1.2 請求分配外設,請求io等 1.3 處理流程是...
作業系統學習筆記
這裡專門摘錄作業系統相關筆試題和面試題!也當作自己的乙個複習!乙個很全的作業系統常考知識集合 1.分段式儲存和分頁式儲存,以及段頁式儲存的區別 分頁是一維儲存,分段是二維的 因為分頁給出虛擬位址後,作業系統會自動劃分頁號和偏移量 而分段給出位址後,需要知道段號和偏移量,段的長度是可變的!故是二維的 ...