Embedded Linux Primer----嵌入式Linux基礎教程--章節介紹

章節介紹

第一章,「導引」,簡要介紹了Linux被迅速應用在嵌入式環境的驅動因素,介紹了與嵌入式Linux相關的幾個重要的標準和組織。網絡

 

第二章,「第一個嵌入式經歷」,介紹了與後幾章所構建的嵌入式Linux相關的許多概念。多線程

 

第三章,「處理器基礎」,咱們提出一個着眼於更流行的用來搭建嵌入式Linux系統的處理器和平臺。咱們檢查並選擇了不少主要處理器生產廠商產品。全部這些產品的架構都與如今的處理器很類似。架構

 

第四章,「Linux內核:一個不一樣的觀點」從一個微差別的觀點檢查Linux內核。咱們不關注內核理論和內部,咱們着眼於它的結構,設計以及構建重點,學習你認爲重要的內容,這其中包括內核構建系統的細節。工具

 

第五章,「內核初始化」,詳細描述Linux處理器初始化處理過程。你將學習到體系結構和獨特的bootloader(引導裝載程序)鏡像組成是如何與下載到Flash而且經過嵌入式bootloader啓動的內核自己的鏡像是相鏈接的。本章學習到的知識將幫助你爲你的嵌入式設備定製嵌入式內核。學習

 

第六章,「系統初始化」,繼續詳細描述初始化過程的檢查。當嵌入式內核已經完成了它本身的初始化,應用程序繼續以預約的方式初始化。學習完本章,你已經學會了定製你本身的用戶區啓動序列的知識。開發工具

 

第七章,「Bootloaders」,做爲一個在嵌入式Linux系統中引導裝載程序的角色。咱們查看流行的開放源碼U-Boo而且提出了一個移植的例子。咱們簡單介紹如今使用的其它的Bootloader,讓你可以爲你的特殊裝備提供一個合理的選擇。spa

 

第八章,「設備驅動基礎」,介紹了Linux設備驅動模型而且提供了強大的後臺啓動設備驅動。在本章的最後列出了額外閱讀的建議。線程

第九章,「文件系統」,列舉了目前嵌入式系統中使用的一些流行的文件系統,包括閃存設備上一般用的JFFS2文件系統。這一章還簡要介紹瞭如何建立本身的文件系統映像,這也是嵌入式Linux開發人員所面臨的一項艱鉅任務。設計

 

第十章,「MTD子系統」,介紹了MTD(內存技術設備)子系統。MTD是Linux文件系統和硬件內存設備(尤爲是閃存)之間一種很是有效的抽象層。調試

 

第十一章,「BusyBox」,介紹了BusyBox,它是咱們構建小型嵌入式系統最經常使用的工具。這一章講述如何根據特定需求對BusyBox進行配置和構建,隨後介紹了僅使用BusyBox環境完成系統初始化的全過程。附錄C列舉了最新版本BusyBox的命令。

 

第十二章,「嵌入式開發環境」,詳細介紹了典型交叉開發環境的特殊需求。這一章所介紹的一些技術能有效地提升嵌入式開發人員的工做效率,例如強大的NFS根目錄掛載開發配置。

 

第十三章,「開發工具」,檢查了許多有用的開發工具,介紹了gdb調試技術,包括內核轉儲分析的內容。這一章裏面許多工具被提出來而且作出介紹,甚至於舉出了一些例子,好比strace,ltrace,top,ps以及內存分析器mtrace,dmalloc。本章最後總結了二進制程序的說明,包括強大的readelf的效率。

 

第十四章,「內核調試技術」,提供一個詳細的調試Linux內核的技術的檢查。咱們介紹內核調試器KGDB的使用,提供許多gdb調試器和KGDB調試器的組合使用技術。一樣包括一份使用硬件JTAG調試器的使用說明,以及一些當你內核沒法啓動時分析失敗緣由的技巧。

 

第十五章,「調試嵌入式Linux應用程序」,將調試內容從內核轉移到應用程序。咱們繼續創建基於先前兩章的gdb例子,而且咱們提供了多線程和多進程的調試技術。

 

第十六章,「移植Linux」,介紹你自定義的Linux的移植問題。咱們跑一個簡單的例子,強調在自定義的PowerPC上生產一個工做的Linux內核的步驟。介紹幾個重要的概念已經讓許多Linux內核移植新手步入陷阱。連同在十三章十四章提出的的技術,在你讀完這一章以後,你應該準備好處理你本身定製板端口的準備了。

 

第十七章,「Linux和實時」,提供一個或多個用於嵌入式Linux的使人激動的開發環境的說明:經過CONFIG_RT選項配置實時性,咱們採用實時性可用的特性以及他們可以如何被用在設計上,咱們一樣介紹測量應用程序延遲的技術。

 

第十八章,「通用串行總線」,以簡單易懂的語言描述了USB子系統。咱們介紹了一些概念和USB拓撲結構,接着給出了幾個USB配置的例子。咱們會詳細分析sysfs的做用和USB,以幫助你理解這個功能強大的系統。咱們還會介紹計費對於理解USB和解決USB故障有幫助的工具。

 

第十九章,「udev」,解密這個強大的系統配置工具udev。咱們分析udev的默認行爲,並以此爲基礎來理解如何對它進行定製。咱們會給出幾個現實生活中的例子。對於那些BusyBox的使用者,咱們會考察BusyBox自帶的mdev工具。

 

感謝

我時常驚訝開源開發者的熱心,我老是以謙遜的態度對待咱們協會裏那些才能高於個人人。在這個項目過程當中,我接觸到許多Linux界以及開源界的人,並向他們諮詢問題。許多問題都可以獲得及時的回答。排名不分前後,我想對下面這些樂於回答我問題的Linux界和開源界的人表達個人感激之情。

Dan Malek在第二章「你的第一個嵌入式經歷」的某些內容中給了我靈感。

DanKegel 和Daniel Jacobowitz耐心的回答我工具鏈的問題。

ScottAnderson在第十四章「內核調試技術」中提供了gdb宏指令的新穎想法。

BradDixon 經過他本身繼續挑戰以及擴大個人技術版本。

JimLewis 提供了MTD(譯者:配置存儲設備,使Linux能夠讀取閃存卡)方面的內容和建議。

 

ChrisHallinan

關於做者

Christopher Hallinan是MontaVista公司的現場應用工程師(譯者:FAE),生活與工做在馬薩諸塞州,擁有25年以上的網絡和通訊行業經驗,作過多種產品的開發工做,在軟件接口方面的深厚的開發背景。加盟MontaVista以前,Chris是一位Linux顧問,擁有4年Linux系統移植、設備驅動和bootloader開發經驗,在U-Boot(一個流行的bootloader)項目中作出了傑出的貢獻。在弄Linux之餘,他喜歡唱歌,表演。

相關文章
相關標籤/搜索