推薦乙個作業系統的lab

2021-07-23 06:53:02 字數 2525 閱讀 5919

我推薦的這個lab,名字叫做ucore,這個lab來自清華大學的作業系統課程,首先要說明一下,這確實是非常好的乙個lab,想入門linux核心的同學可以讀一讀這個lab所涉及的ucore的原始碼。

其實只要大家認認真真做下去,收穫肯定會非常的大。雖然這麼說,但是,這個lab對大家的基礎要求稍微有一點高,你至少要懂一點彙編,懂一點c。**裡面很多都是彙編,c交替著寫,我推薦幾本書,給大家補一下基礎,大家可以參考一下。

第一本是王爽的組合語言,這本書適合入門,但是只涉及到了8086的一點東西。書講的淺顯易懂。

另外一本書是《x86組合語言–從實模式到保護模式》,這本書算是一本高階的書籍,同時也是80386彙編入門的書籍。這本書裡大部分的知識,這個lab都用得到,所以強烈推薦大家閱讀。

當然,最好的話,能附帶這麼一本《orange』s 乙個作業系統的實現》,作為參考是最好不過啦。這本書的話,彙編有點多,其實很多彙編都可以用c來代替。不過裡面有一些點,這個lab也涉及到了,所以推薦讀一下。

上面的幾本書裡應該涉及到了這個lab所需要的大部分的硬體以及彙編的知識,其餘的,你可以去google或者baidu

做這個lab,你可能會遇到非常多的困難,比如說,除錯異常困難,**半天讀不懂,沒事,這都是很正常的情況。要是覺得困難實在太大,我建議你從這個玩具核心入手 – hurley,這個核心非常簡單,適合積累一些最基本的知識。

linux上面讀ucore將近1 m的原始檔真心費力,生活其實可以簡單一點,你可以使用宇宙最強的idevisual stdio來進行**的閱讀,像我這樣:

是不是很爽,告訴你,爽翻了。特別是遇到一堆不知從**冒出來的巨集,一堆不知名的函式的時候,vs可以實現十萬分方便的跳轉。

我推薦兩個外掛程式,乙個叫做visual assistant,這個用來增強自動補全以及跳轉操作,乙個叫做visualgdb,是乙個幫助你在window上面寫linux程式的外掛程式。自己去搜尋安裝吧,網上教程一大堆。我就懶得寫了。

當然,你不可能用vs來編譯**,但是,vs會給你閱讀**,修改**帶來非常大的方便性。

實在做不出也沒有什麼關係,因為很少有人會真正去做乙個作業系統吧。但是讀懂原始碼,我覺得還是非常有必要的,我稍微講一下,我個人讀完了這個lab原始碼之後的感受吧。

對於我來說,收穫特別大。我懂了很多以前我自認為懂了的東西,當然至於這些東西我是不是真的懂了,我也不知道,因為人的認知總是在向前推進的嘛。

但是說實話,我對寫乙個核心什麼的,沒有多麼大的興趣,所以,我不會繼續鑽研地太深。所以,對於這個lab,我也只是玩一下的。

不過,讀完這個lab,實驗完這個lab,加上我以前學的編譯器,硬體,彙編等一系列的東西,從硬體到軟體這個層次發生的事情,我現在算是比較清楚了。

如果你要問,學這些玩意對你找工作有什麼益處的話,我可以說,短時間內可能還真沒有什麼益處,不過這些玩意,算得上是乙個程式設計愛好者的基本修養吧。就這樣吧!

至少在現在,寫乙個玩具性質的作業系統並不是一件很難的事情,關鍵是你不熟練,寫作業系統也沒有很高深的技巧,它也不需要你有很高的智慧型,它的理論基礎在幾十年前就已經成熟了,已經有無數人寫了無數的作業系統,就如同編譯器一樣,我相信,只要你足夠熟練的話,花點時間,參照各式各樣的教程,你也能夠寫出乙個作業系統,對於社會,這可能沒什麼卵用,但是對於你自己,你可以從中掌握到很多底層的細節.當然,這也可能沒有什麼卵用.

如果感到**層層疊疊,資料結構花樣翻新的話,可以參考一下我的注釋版lab:cs-ucore

學了這麼久的計算機,我突然感覺學海無涯,每乙個點擴充套件出去,都是無窮無盡的,真心有點累,不行了,我要休息一段時間了。

作業系統lab5

檔案系統 實驗報告 實驗簡介 本實驗要求在假設的i o系統之上開發乙個簡單的檔案系統,這樣做既能讓實驗者對檔案系統有整體了解,又避免了涉及過多細節。使用者通過create open read等命令與檔案系統互動。檔案系統把磁碟視為順序編號的邏輯塊序列,邏輯塊的編號為0至l 1。i o系統利用記憶體中...

乙個小作業系統

1 1 chapter1 a boot.asm 乙個 作業系統 可以只有20行 把下面這段 用nasm編譯一下 nasm boot.asm o boot.bin org 07c00h 告訴編譯器程式載入到7c00處 mov ax,cs mov ds,ax mov es,ax call dispstr...

乙個簡單的作業系統

電腦上電後,bios在自檢後會根據使用者指定的裝置啟動作業系統。假設我們指定軟盤為啟動盤,bios會把軟盤的第乙個扇區 512位元組 讀取到記憶體的0x7c00處,如果這個扇區的最後兩個位元組為0xaa55,bios會跳轉到0x7c00處開始執行。我們可以利用這樣乙個過程做乙個簡單的作業系統。我們的...