雖然 Linux 嵌入式系統幾乎無所不在,從手機到汽車的 ABS 系統以及淨水廠都可以發現它的蹤跡,但是令人驚訝的是,建立、安裝和測試 Linux 核心以及相關工具的資訊來源卻少的可憐。《建構嵌入式 Linux 系統》是一本深入探討如何建構這些系統的指南。閱讀本書你不僅可以獲得基本的概念,你還可以學到如何設定、規劃以及使用 40 種以上不同的開放原碼和自由軟體套件。
本書第二版的內容針對 Linux 核心的最新版本做過更新,並且加入之前未介紹過的程序以便協助你:
* 建立你自己的 GNU development toolchain(開發工具鏈)
* 為你的目標系統選用、設定、建構以及安裝專屬的核心
* 為你的目標系統建立完整的根檔案系統
* 設置、操作以及使用固態儲存裝置
* 為目你的標系統安裝及設定 bootloader(開機載入程式)
* 交叉編譯許多的公用程式與套件
* 可用以進行嵌入式系統除錯的眾多工具和技術
* 使用 uClibc、BusyBox、U-Boot、OpenSSH、thttpd、tftp、strace 以及 gdb 等套件
* 以 Xenomai 或 RT kernel patch 利用即時的功能
閱讀本書第二版你將能夠學到如何建構作業系統元件,以及簡化全面掌控嵌入式系統的艱鉅任務。
『〔本書〕並不會假定你手邊有哪些工具,或是限定你的計劃的範圍。本書只會要你透過 Internet 連線下載必要的套件、瀏覽特定的線上文件,以及與其他開發者一起分享經驗。除了提供最大的自由度,以及讓你掌控自己的設計之外,這麼做最接近帶頭在嵌入式系統中使用 Linux 的先驅者們所採行的方式。』
— 摘錄自〈序〉
目錄
序
第一章 入門指引
1.1 定義
1.2 嵌入式 Linux 系統的實際應用
1.3 設計與實作的方法
第二章 基本概念
2.1 主機的類型
2.2 主機/目標開發規劃類型
2.3 主機/目標除錯規劃類型
2.4 嵌入式 Linux 系統的一般架構
2.5 系統啟動過程
2.6 開機組態類型
2.7 系統的記憶體配置
第三章 所支援的硬體
3.1 處理器架構
3.2 匯流排與介面
3.3 I/O
3.4 儲存裝置
3.5 通用網路
3.6 工業級網路
3.7 系統監控
第四章 開發工具
4.1 實際的專案工作區
4.2 GNU 跨平台開發工具鏈
4.3 C 程式庫的替代品
4.4 Java
4.5 Perl
4.6 Python
4.7 其他程式語言
4.8 Eclipse:整合開發環境
4.9 終端機模擬程式
第五章 核心方面的考量
5.1 選擇核心
5.2 設定核心組態
5.3 編譯核心
5.4 安裝核心
5.5 實地測試
第六章 根檔案系統的內容
6.1 根檔案系統的基本結構
6.2 程式庫
6.3 核心模組
6.4 核心映像
6.5 裝置檔
6.6 主要的系統應用程式
6.7 自製應用程式
6.8 系統初始化
第七章 儲存裝置的操作
7.1 MTD 所支援的裝置
7.2 磁碟裝置
7.3 置換與否
第八章 根檔案系統的規劃
8.1 嵌入式裝置的檔案系統類型
8.2 使用經 NFS 掛載的根檔案系統將檔案系統映像寫入 flash 裝置
8.3 擺在 RAM disk 上的磁碟檔案系統
8.4 Rootfs 與 Initramfs
8.5 選擇檔案系統的類型與佈局
8.6 處理軟體升級的問題
第九章 設置 bootloader
9.1 嵌入式 bootloader
9.2 網路開機的伺服器規劃
9.3 使用 U-Boot
第十章 設置網路服務
10.1 網路設定值
10.2 Busybox
10.3 經由 DHCP 動態設定組態
10.4 Internet Super-Server
10.5 使用 SNMP 進行遠端管理
10.6 使用 Telnet 進行網路登入
10.7 使用 SSH 進行安全通訊
10.8 透過 HTTP 提供網頁內容
10.9 資源的提供
第十一章 除錯工具
11.1 Eclipse
11.2 以 gdb 進行應用程式除錯
11.3 追蹤
11.4 效能分析
11.5 記憶體除錯
11.6 關於硬體工具
第十二章 即時 Linux 入門
12.1 什麼是即時處理?
12.2 你的 Linux 應該支援即時嗎?
12.3 共同的即時核心要求
12.4 即時計算技術的典型使用者
12.5 Linux 通往即時之路
第十三章 Xenomai 即時系統
13.1 將傳統 RTOS 的應用程式移植到 Linux
13.2 Xenomai 的架構
13.3 Xenomai 的運作原理
13.4 即時驅動程式模型
13.5 結語
第十四章 RT Patch
14.1 將中斷轉換成執行緒
14.2 優先權繼承
14.3 以 RT Patch 設定核心組態
14.4 高解析度計時器
14.5 latency tracer
14.6 結語
索引
序
第一章 入門指引
1.1 定義
1.2 嵌入式 Linux 系統的實際應用
1.3 設計與實作的方法
第二章 基本概念
2.1 主機的類型
2.2 主機/目標開發規劃類型
2.3 主機/目標除錯規劃類型
2.4 嵌入式 Linux 系統的一般架構
2.5 系統啟動過程
2.6 開機組態類型
2.7 系統的記憶體配置
第三章 所支援的硬體
3.1 處理器架構
3.2 匯流排與介面
3.3 I/O
3.4 儲存裝置
3.5 通用網路
3.6 工業級網路
3.7 系統監控
第四章 開發工具
4.1 實際的專案工作區
4.2 GNU 跨平...