注冊(cè) | 登錄讀書好,好讀書,讀好書!
讀書網(wǎng)-DuShu.com
當(dāng)前位置: 首頁(yè)出版圖書科學(xué)技術(shù)計(jì)算機(jī)/網(wǎng)絡(luò)操作系統(tǒng)Linux嵌入式Linux基礎(chǔ)教程

嵌入式Linux基礎(chǔ)教程

嵌入式Linux基礎(chǔ)教程

定 價(jià):¥59.00

作 者: (美)哈利南 著,華清遠(yuǎn)見嵌入式培訓(xùn)中心 譯
出版社: 人民郵電出版社
叢編項(xiàng):
標(biāo) 簽: LINUX

ISBN: 9787115215222 出版時(shí)間: 2009-11-01 包裝: 平裝
開本: 16開 頁(yè)數(shù): 341 字?jǐn)?shù):  

內(nèi)容簡(jiǎn)介

  《嵌入式Linux基礎(chǔ)教程》是嵌入式Linux的經(jīng)典教程,介紹了引導(dǎo)裝入程序、系統(tǒng)初始化、文件系統(tǒng)、閃存和內(nèi)核、應(yīng)用程序調(diào)試技巧等,還講述了構(gòu)建Linux系統(tǒng)的工作原理,用于驅(qū)動(dòng)不同體系結(jié)構(gòu)的配置,Linux內(nèi)核源碼樹的特性,如何根據(jù)需求配制內(nèi)核運(yùn)行時(shí)的行為,如何擴(kuò)展系統(tǒng)功能等內(nèi)容。更重要的是,《嵌入式Linux基礎(chǔ)教程》闡述了如何修改系統(tǒng)使之滿足讀者自己的需求,使讀者能從中學(xué)習(xí)一些嵌入式工程中非常有用的提示和技巧?!肚度胧絃inux基礎(chǔ)教程》適合Linux程序員閱讀,也可作為高等院校相關(guān)專業(yè)師生的參考讀物。

作者簡(jiǎn)介

  Christopher Hallinan,著名嵌入式Linux技術(shù)專家。Monta Vistata件公司現(xiàn)場(chǎng)應(yīng)用工程師,曾任3Com公司工程總監(jiān)。他有25年以上網(wǎng)絡(luò)和通信產(chǎn)品的軟硬件開發(fā)經(jīng)驗(yàn),曾擔(dān)任Linux咨詢師,提供定制Linux主板接口、設(shè)備驅(qū)動(dòng)程序和引導(dǎo)裝入程序等方面的解決方案。譯者簡(jiǎn)介:華清遠(yuǎn)見嵌入式培訓(xùn)中心(http://www.farsight.com.cn)是享有盛譽(yù)的嵌入式高端培訓(xùn)企業(yè),目前已成為ARM、Altera、Atmel、Microsoft、Symbian等全球知名嵌入式企業(yè)授權(quán)培訓(xùn)中心。每年為Samsung、NEC、Philips、Motorola等世界500強(qiáng)企業(yè)提供嵌入式技術(shù)企業(yè)培訓(xùn)服務(wù),同時(shí)也致力于推廣與普及嵌入式技術(shù)。數(shù)萬名技術(shù)人員由此受益。

圖書目錄

第1章 引言 1
1.1 為什么使用Linux 1
1.2 嵌入式Linux現(xiàn)狀 2
1.3 開源和GPL 2
1.4 標(biāo)準(zhǔn)和相關(guān)機(jī)構(gòu) 3
1.4.1 LSB 3
1.4.2 OSDL 3
1.5 小結(jié) 4
參考資源 4
第2章 嵌入式初體驗(yàn) 5
2.1 需要嵌入式系統(tǒng)嗎 5
2.2 嵌入式系統(tǒng)剖析 6
2.2.1 典型嵌入式Linux系統(tǒng)設(shè)置 7
2.2.2 啟動(dòng)目標(biāo)板 8
2.2.3 啟動(dòng)內(nèi)核 9
2.2.4 內(nèi)核初始化概述 10
2.2.5 第一個(gè)用戶空間進(jìn)程:init 11
2.3 存儲(chǔ)的思考 12
2.3.1 閃存 12
2.3.2 NAND閃存 13
2.3.3 閃存的用途 14
2.3.4 閃存文件系統(tǒng) 14
2.3.5 存儲(chǔ)器空間 15
2.3.6 運(yùn)行上下文 16
2.3.7 進(jìn)程中的虛擬內(nèi)存 17
2.3.8 交叉開發(fā)環(huán)境 19
2.4 嵌入式Linux的發(fā)行版 20
2.4.1 Linux商業(yè)發(fā)行版 21
2.4.2 Linux自定義發(fā)行版 21
2.5 小結(jié) 21
參考資源 22
第3章 處理器基礎(chǔ) 23
3.1 單機(jī)處理器 23
3.1.1 IBM 970FX 24
3.1.2 Intel Pentium M 24
3.1.3 Freescale MPC7448 25
3.1.4 配套芯片組 25
3.2 集成化處理器:片上系統(tǒng) 27
3.2.1 PowerPC 27
3.2.2 AMCC PowerPC 27
3.2.3 Freescale PowerPC 30
3.2.4 MIPS 33
3.2.5 Broadcom MIPS 33
3.2.6 AMD MIPS 34
3.2.7 其他類型的MIPS 35
3.2.8 ARM 35
3.2.9 TI ARM 35
3.2.10 Freescale ARM 37
3.2.11 Intel ARM XScale 37
3.2.12 其他ARM 38
3.2.13 其他體系結(jié)構(gòu) 38
3.3 硬件平臺(tái) 38
3.3.1 CompactPCI 38
3.3.2 ATCA 39
3.4 小結(jié) 39
參考資源 40
第4章 Linux內(nèi)核——不同視角 41
4.1 背景知識(shí) 41
4.1.1 內(nèi)核的版本 42
4.1.2 內(nèi)核源碼庫(kù) 43
4.2 Linux內(nèi)核構(gòu)造 44
4.2.1 頂層資源目錄 44
4.2.2 編譯內(nèi)核 45
4.2.3 嚴(yán)格意義上的內(nèi)核:vmlinux 46
4.2.4 內(nèi)核映像組件 47
4.2.5 子目錄結(jié)構(gòu) 50
4.3 內(nèi)核構(gòu)建系統(tǒng) 50
4.3.1 .config文件 51
4.3.2 配置編輯器 52
4.3.3 makefile的目標(biāo) 55
4.3.4 內(nèi)核配置 58
4.3.5 自定義配置選項(xiàng) 59
4.3.6 內(nèi)核makefile 62
4.3.7 內(nèi)核文檔 62
4.4 獲取Linux內(nèi)核 63
4.5 小結(jié) 64
參考資源 64
第5章 內(nèi)核初始化 65
5.1 合成內(nèi)核映像:piggy及其他 65
5.1.1 Image目標(biāo)文件 67
5.1.2 體系結(jié)構(gòu)相關(guān)的目標(biāo)文件 68
5.1.3 第二階段引導(dǎo)裝入程序 69
5.1.4 引導(dǎo)信息 69
5.2 初始化控制流 72
5.2.1 內(nèi)核入口點(diǎn):head.o 73
5.2.2 內(nèi)核啟動(dòng):main.c 74
5.2.3 體系結(jié)構(gòu)設(shè)置 75
5.3 內(nèi)核命令行處理 75
5.4 子系統(tǒng)初始化 80
5.5 init線程 82
5.5.1 通過initcall初始化 83
5.5.2 引導(dǎo)的最后步驟 84
5.6 小結(jié) 85
參考資源 85
第6章 系統(tǒng)初始化 86
6.1 根文件系統(tǒng) 86
6.1.1 FHS 87
6.1.2 文件系統(tǒng)布局 87
6.1.3 最小文件系統(tǒng) 88
6.1.4 根文件系統(tǒng)帶來的挑戰(zhàn) 89
6.1.5 試錯(cuò)法 90
6.1.6 自動(dòng)化文件系統(tǒng)構(gòu)建工具 90
6.2 內(nèi)核的最后引導(dǎo)過程 90
6.2.1 用戶空間下第一個(gè)程序 91
6.2.2 解決依賴 92
6.2.3 定制初始化進(jìn)程 92
6.3 init進(jìn)程 92
6.3.1 inittab 95
6.3.2 Web服務(wù)器啟動(dòng)腳本示例 96
6.4 初始RAM磁盤 97
6.4.1 初始RAM磁盤的目的 98
6.4.2 使用initrd引導(dǎo) 98
6.4.3 引導(dǎo)裝入程序?qū)τ趇nitrd的支持 98
6.4.4 initrd的奧妙所在:linuxrc文件 100
6.4.5 initrd探究 100
6.4.6 構(gòu)建initrd映像文件 101
6.5 使用initramfs 102
6.6 關(guān)機(jī) 103
6.7 小結(jié) 103
參考資源 104
第7章 引導(dǎo)裝入程序 105
7.1 引導(dǎo)裝入程序的作用 105
7.2 引導(dǎo)裝入程序的挑戰(zhàn) 106
7.2.1 DRAM控制器 106
7.2.2 閃存與RAM 106
7.2.3 映像的復(fù)雜性 107
7.2.4 執(zhí)行上下文 108
7.3 通用的引導(dǎo)裝入程序:Das U-Boot 109
7.3.1 執(zhí)行上下文 109
7.3.2 U-Boot命令集 111
7.3.3 網(wǎng)絡(luò)操作 111
7.3.4 存儲(chǔ)子系統(tǒng) 113
7.3.5 從磁盤啟動(dòng):U-Boot 113
7.4 移植U-Boot 114
7.4.1 為EP405開發(fā)板移植U-Boot 114
7.4.2 U-Boot的makefile配置目標(biāo) 115
7.4.3 EP405處理器初始化 116
7.4.4 特定開發(fā)板的初始化 117
7.4.5 移植概要 120
7.4.6 U-Boot映像格式 120
7.5 其他引導(dǎo)裝入程序 122
7.5.1 Lilo 122
7.5.2 GRUB 123
7.5.3 其他引導(dǎo)裝入程序 124
7.6 小結(jié) 124
參考資源 124
第8章 設(shè)備驅(qū)動(dòng)程序基礎(chǔ) 126
8.1 設(shè)備驅(qū)動(dòng)程序基本概念 126
8.1.1 可加載模塊 127
8.1.2 設(shè)備驅(qū)動(dòng)程序的體系結(jié)構(gòu) 127
8.1.3 最小設(shè)備驅(qū)動(dòng)程序示例 128
8.1.4 模塊構(gòu)建的基礎(chǔ)設(shè)施 129
8.1.5 安裝設(shè)備驅(qū)動(dòng)程序 131
8.1.6 加載設(shè)備驅(qū)動(dòng)程序模塊 132
8.2 模塊實(shí)用程序 133
8.2.1 insmod 133
8.2.2 模塊參數(shù) 133
8.2.3 lsmod 134
8.2.4 modprobe 135
8.2.5 depmod 136
8.2.6 rmmod 136
8.2.7 modinfo 137
8.3 驅(qū)動(dòng)程序方法 137
8.3.1 驅(qū)動(dòng)程序文件系統(tǒng)操作 138
8.3.2 設(shè)備節(jié)點(diǎn)與mknod 140
8.4 匯總 141
8.5 設(shè)備驅(qū)動(dòng)程序與GPL 143
8.6 小結(jié) 143
參考資源 144
第9章 文件系統(tǒng) 145
9.1 Linux文件系統(tǒng)的概念 146
9.2 ext2文件系統(tǒng) 147
9.2.1 掛載文件系統(tǒng) 148
9.2.2 文件系統(tǒng)完整性檢查 149
9.3 ext3文件系統(tǒng) 150
9.4 ReiserFS文件系統(tǒng) 152
9.5 JFFS2文件系統(tǒng) 153
9.6 cramfs文件系統(tǒng) 155
9.7 NFS文件系統(tǒng) 156
9.8 偽文件系統(tǒng) 160
9.8.1 proc文件系統(tǒng) 160
9.8.2 sysfs文件系統(tǒng) 162
9.9 其他文件系統(tǒng) 164
9.10 構(gòu)建簡(jiǎn)單的文件系統(tǒng) 165
9.11 小結(jié) 166
參考資源 166
第10章 MTD子系統(tǒng) 168
10.1 啟用MTD服務(wù) 168
10.2 MTD基礎(chǔ)知識(shí) 170
10.3 MTD分區(qū) 172
10.3.1 Redboot分區(qū)表 173
10.3.2 內(nèi)核命令行分區(qū) 176
10.3.3 映射驅(qū)動(dòng)程序 177
10.3.4 閃存芯片驅(qū)動(dòng)程序 178
10.3.5 特定開發(fā)板的初始化 179
10.4 MTD實(shí)用程序 180
10.5 小結(jié) 184
參考資源 184
第11章 BusyBox 186
11.1 BusyBox簡(jiǎn)介 186
11.2 BusyBox配置 187
11.3 BusyBox操作 189
11.3.1 BusyBox之init 191
11.3.2 rcS初始化腳本示例 193
11.3.3 在目標(biāo)平臺(tái)安裝BusyBox 193
11.3.4 BusyBox命令 195
11.4 小結(jié) 196
參考資源 196
第12章 嵌入式開發(fā)環(huán)境 197
12.1 交叉開發(fā)環(huán)境 197
12.2 主機(jī)系統(tǒng)需求 200
12.3 為目標(biāo)板提供服務(wù) 201
12.3.1 TFTP服務(wù)器 201
12.3.2 BOOTP/DHCP服務(wù)器 202
12.3.3 NFS服務(wù)器 204
12.3.4 使用NFS為目標(biāo)板掛載根文件系統(tǒng) 205
12.3.5 U-Boot NFS根掛載示例 206
12.4 小結(jié) 208
參考資源 208
第13章 開發(fā)工具 209
13.1 GDB 209
13.1.1 調(diào)試核心轉(zhuǎn)儲(chǔ) 210
13.1.2 調(diào)用GDB 211
13.1.3 GDB調(diào)試會(huì)話 213
13.2 DDD 214
13.3 cbrowser/cscope 216
13.4 追蹤和程序分析工具 217
13.4.1 strace 217
13.4.2 strace的變體 220
13.4.3 ltrace 221
13.4.4 ps 222
13.4.5 top 224
13.4.6 mtrace 225
13.4.7 dmalloc 226
13.4.8 內(nèi)核oops 228
13.5 二進(jìn)制實(shí)用程序 230
13.5.1 readelf 230
13.5.2 使用readelf檢查調(diào)試信息 232
13.5.3 objdump 233
13.5.4 objcopy 234
13.6 其他二進(jìn)制實(shí)用程序 234
13.6.1 strip 234
13.6.2 addr2line 235
13.6.3 strings 235
13.6.4 ldd 235
13.6.5 nm 236
13.6.6 prelink 236
13.7 小結(jié) 237
參考資源 237
第14章 內(nèi)核調(diào)試技術(shù) 238
14.1 內(nèi)核調(diào)試的難點(diǎn) 238
14.2 使用KGDB調(diào)試內(nèi)核 239
14.2.1 KGDB內(nèi)核配置 240
14.2.2 支持KGDB的內(nèi)核啟動(dòng) 241
14.2.3 有用的內(nèi)核斷點(diǎn) 243
14.3 Linux內(nèi)核的調(diào)試 244
14.3.1 gdb遠(yuǎn)程串口協(xié)議 244
14.3.2 調(diào)試優(yōu)化后的內(nèi)核代碼 247
14.3.3 gdb用戶定義命令 251
14.3.4 有用的內(nèi)核gdb宏 252
14.3.5 調(diào)試可加載模塊 258
14.3.6 printk調(diào)試 262
14.3.7 Magic SysReq鍵 263
14.4 硬件輔助調(diào)試 263
14.4.1 使用JTAG探測(cè)器對(duì)閃存編程 265
14.4.2 用JTAG探測(cè)器進(jìn)行調(diào)試 266
14.5 無法啟動(dòng)時(shí) 268
14.5.1 早期串口調(diào)試輸出 269
14.5.2 轉(zhuǎn)儲(chǔ)printk日志緩沖區(qū) 270
14.5.3 KGDB捕捉崩潰 271
14.6 小結(jié) 272
參考資源 272
第15章 調(diào)試嵌入式Linux應(yīng)用程序 274
15.1 目標(biāo)機(jī)調(diào)試 274
15.2 遠(yuǎn)程(交叉)調(diào)試 274
15.3 使用共享庫(kù)進(jìn)行調(diào)試 278
15.4 多任務(wù)調(diào)試 282
15.4.1 多進(jìn)程的調(diào)試 282
15.4.2 多線程應(yīng)用程序的調(diào)試 284
15.4.3 引導(dǎo)裝入程序/閃存代碼的調(diào)試 286
15.5 遠(yuǎn)程調(diào)試的附加選項(xiàng) 287
15.5.1 串行端口調(diào)試 287
15.5.2 綁定到正在運(yùn)行的進(jìn)程 287
15.6 小結(jié) 288
參考資源 288
第16章 移植Linux 289
16.1 Linux源代碼的組織 289
16.2 為開發(fā)板定制Linux 291
16.2.1 前提和假設(shè) 291
16.2.2 定制內(nèi)核初始化 292
16.2.3 靜態(tài)內(nèi)核命令行 294
16.3 平臺(tái)初始化 295
16.3.1 早期變量訪問 298
16.3.2 開發(fā)板信息結(jié)構(gòu) 299
16.3.3 機(jī)器相關(guān)的調(diào)用 301
16.4 匯總 302
16.5 小結(jié) 304
參考資源 304
第17章 Linux與實(shí)時(shí) 305
17.1 什么是實(shí)時(shí) 305
17.1.1 軟實(shí)時(shí) 305
17.1.2 硬實(shí)時(shí) 306
17.1.3 Linux 調(diào)度 306
17.1.4 中斷延遲 306
17.2 內(nèi)核搶占 307
17.2.1 搶占的缺陷 307
17.2.2 搶占模型 308
17.2.3 SMP內(nèi)核 309
17.2.4 搶占延遲源 310
17.3 實(shí)時(shí)內(nèi)核補(bǔ)丁 310
17.3.1 實(shí)時(shí)的特性 311
17.3.2 O(1)調(diào)度器 313
17.3.3 創(chuàng)建實(shí)時(shí)進(jìn)程 313
17.3.4 臨界區(qū)管理 314
17.4 調(diào)試實(shí)時(shí)內(nèi)核 314
17.4.1 軟鎖檢測(cè) 314
17.4.2 搶占調(diào)試 315
17.4.3 調(diào)試喚醒時(shí)間 315
17.4.4 喚醒延遲歷史 315
17.4.5 中斷響應(yīng)時(shí)間 316
17.4.6 中斷響應(yīng)歷史 316
17.4.7 延遲跟蹤 317
17.4.8 調(diào)試死鎖環(huán)境 318
17.4.9 鎖模式的運(yùn)行時(shí)控制權(quán) 319
17.5 小結(jié) 319
參考資源 319
附錄A 可配置的U-Boot命令 320
附錄B BusyBox命令 322
附錄C SDRAM接口的注意事項(xiàng) 328
附錄D 開源項(xiàng)目資源 334
附錄E BDI-2000配置文件示例 336

本目錄推薦

掃描二維碼
Copyright ? 讀書網(wǎng) ranfinancial.com 2005-2020, All Rights Reserved.
鄂ICP備15019699號(hào) 鄂公網(wǎng)安備 42010302001612號(hào)