這幾天看的東西,前輩有書指導,不用我費口舌, 簡單介紹一下
搞清楚了 Linux的啟動過程,對於整個系統分析來說.連一個開頭都不算.所做的只是知道了系統啟動是一些函數的條用順序.恰如某位朋友來信建議的那樣, 如果這樣照順序硬讀,實是自殘.好在sunmoon 有一定的自知之明.如此這樣下去,等不懂得東西多了.那我就不能堅持了,所以我的原則是?:准備不充分決不輕易動手.
身邊有意高手建議,應從應用程序入手,先寫一些和系統相關的有水平的程序, 在對程序盡心跟蹤.了解整個系統的體系結構和調用體系.再去分析源嗎.
同時,sunmoon 也知道,一個操作系統是所有有關軟件理論的集大成.sunmoon 不是計算機系畢業的, 對與很多基礎課生疏的很.因此不得不找了<<匯編語言>><<操作系統原理>><<計算機體系結構>><<編譯原理?>><<操作系統的設計與實現>>等經典的書籍放在案頭備用.當然, 剛出的一本<<linux 操作系統內核分析>>更是非常好.
在昨晚這些後, 我開始著手分析linux 的體系結構:
linux 的內核采用的並不是現在流行(理論上應該更先進的)為內核結構.而采用的是由很多過程組成的一個整合體. 每一個過程可以相互調用. 看起來停亂.這與它的開發歷程有關.但我個人感覺, linux 整體如同一個結構化的程序.(決非opp).是由不同的模塊完成不同的功能, 然後經過整體的調度,整合而變成一整體.
在<<linux 操作系統內核分析>>中分出了5個子系統: 進程調度, 內存管理,虛擬文件系統,進程通信,與網絡接口.
具體的每個子系統的功能, 接口, 子系統結構, 數據結構的描述, 可以從這本書上詳細的看一看.力爭對總體有一個把握.
分清楚在linux 的近50 兆源嗎中. 那一部分,實現什麼功能, 以便以後閱讀是不至於混亂.
如果我又兩年時間, 我會用偽碼實現linux 功能的模擬.然後以寫的角度去分析,這才是學人之長為我所用的絕好辦法. 可惜由於一些難言之隱,我近兩年的時間都有安排, 所以我只能這樣讀了
再下一步, 應該分析Makefile