Linux內核學習和研究及嵌入式(ARM)學習和研究的開放文檔
Free Child(lli_njupt@163.com Freechild創業團隊,致力於嵌入式網絡設備(Gateway,Router,AP,NAS,FireWall)和智能家庭終端設備(EoC,DLNA,家電控制)),信息採集控制終端(環境監測,數據採集)等開發,提供全套軟件解決方案及維護.
目錄
#1. 寫在前面
##1.1. 它是什麼?
一個Linux及相關開源軟件的愛好者,在學習,分析和研究Linux內核過程中,對相關知識的總結和記錄。一些參考書籍是必須的,參考Linux內核探索之路——關於書所提到的,本文中的部分內容參考了這裡提到的書籍 (ULK和LKA尤甚)。
一個基於ARM(當前階段)的嵌入式驗證平臺。無論如何,用實際去驗證猜想,才能保證學習,分析和研究結果的正確性。一個詳細的平臺信息如下所示:
MainBoard:OK6410
CPU: S3C6410(ARMv6)
RAM: 256M
FLASH:1G K9GAG08U0D
Kernel:Linux2.6.28
BootLoader:Uboot1.1.6```
但是並不意味著本文中關於Linux內核部分與平臺獨立的代碼和硬件平臺相關。
本文檔遵循GNU Free Documentation License發佈。
本文檔適用Docbook自動生成,並在以後的很長一段時間內不斷更新。當前對Bootloader的引導,ARM平臺的彙編,Linux內核的引導和部分模塊:時鐘,中斷,內存管理系統等進行了學習和總結,並輔助大量的示例圖片,該文檔是筆者學習和研究的記錄,筆者歡迎任何對該文檔的批評和建議:可以直接在該文章下評論,並且任何希望對該文檔做出貢獻的人,可以向筆者發出文檔的更新請求,格式為符合Docbook規範的xml文檔,也可以索取當前文檔的原始的Docbook開發文檔。
目前每一章節下都有Sandbox一節,該章節僅僅是Docbook開發中的語法參考章節,無實際意義,所以閱讀該文檔時請直接忽略該節,另外對於Linux中部分分析中,由於筆者關心的領域不同,所以某些點分析的很詳細(大多數都是不好理解的地方),有些只是貼上了實現代碼,所以目前該文檔還處於不同的更新之中。另外該文檔的章節並沒有嚴格遵循由淺入深的原則,所以部分章節並沒有必然的聯繫,但是一個整體的過程是對Linux內核有基礎瞭解,ARM平臺的ATPCS原則,然後是在此基礎上的學習和分析。
#1.2. 它不是什麼?
無論如何,筆者都要說明,它是一個筆記式的學習記錄,不是一本教科書,筆者不能保證這裡的內容都是正確無誤的。筆者也不保證這裡的分析針對特定的其他平臺依然適用(儘管大多數時候應該是)。
#1.3. 它的始末?
應該是2007年,但是隻是以零散的方式存在。如前所述,它的演化方式並不是以章節形式,而是以筆者的時間和興趣為轉移。大約是2011年時,整理了大部分的文檔,一併轉換為Docbook文檔形式,直到今天的這個樣子。
有開始,就註定了要有結束,但是目前來看還會持續很長一段時間......