一葉障目 難寫kernel

2021-05-12 19:35:02 字數 946 閱讀 7081

寫個作業系統?好吧,我承認現在的我實在是太無知太自大了。最近看了點東西,我越發感覺os的複雜。

卡在os程序那好長時間,到現在還是一知半解,搞了本《linux核心完全注釋》做參考,結果到了程序又卡住了。中途為徹底搞清楚分頁機制,上網東看西看(正所謂不能在一本書上卡死),順帶摸索了下記憶體管理。單單看memory.c和page.s,**都好理解,但從整個kernel角度放眼一看,真是一葉障目難見泰山,都不知道這些**是在os執行中哪個具體環節用到的。再想想linus,大二就能寫個os kernel,要現在的學生摸清整個os執行環節就夠嗆的。何況作業系統這門課,在一般大學也就是只教個概念和內部名詞。

說到高校教授作業系統這門課,我這幾天有個偶遇。正在理解sleep_on函式時,我上網找點分析文章,看到一學姐分析的很是透徹,再看看她所在論壇,原來是哈工大電腦科學與技術學院課程管理系統上的學生發言,順著這個

,在裡面一頓「亂搜」,我-0-了:哈工大教的os課程,竟然拿linux kernel**為基礎。在課程管理系統上轉轉,發現教授們把課件和相關資料都放在上面,二話沒說,我就乙個勁的download,好在學校網速快,然後都傳到gmail備份。看著李治軍(不認識......)的作業系統ppt,感覺這個老師好用心,更關鍵的是每個os概念講解都對應著linux**,給人清晰簡潔之感。而且我很欣賞他們教這門課的理念,抄點下來:

1 描述作業系統做什麼比是什麼更有意義

2 作業系統就是作業系統,作業系統沒必要定義

3 「learn os concepts by coding them!」(斯坦福 os課) 

4 強調實踐! 這是本課程的根本要義!! 

5 紙上得來終決淺 絕知此事要躬行

再說說現在的os書,一片片的,涉及概念講的都差不多,但少有用原始碼分析的,給個偽**就不容易了。但是呢,這種書又應該存在,不要多,搞一本隨時參考,讓code和concept相融合,這樣才能搞懂os。