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