国产精品一久久香蕉产线看/亚洲图区欧美/亚洲国产精品电影人久久网站/欧美日韩在线视频一区

歡迎光臨中圖網 請 | 注冊
> >>
嵌入式LINUX基礎教程(第2版)

包郵 嵌入式LINUX基礎教程(第2版)

出版社:人民郵電出版社出版時間:2023-06-01
開本: 16開 頁數: 454
中 圖 價:¥83.9(7.0折) 定價  ¥119.8 登錄后可看到會員價
加入購物車 收藏
開年大促, 全場包郵
?新疆、西藏除外
本類五星書更多>

嵌入式LINUX基礎教程(第2版) 版權信息

嵌入式LINUX基礎教程(第2版) 本書特色

嵌入式Linux專作

Amazon全五星評價

剖析嵌入式Linux開發,揭示大量技術內幕



廣泛的硬件支持、高效穩定的內核、開源共享的軟件開發工具、完善的網絡通信和文件管理機制等特點,是嵌入式Linux獲得了廣泛應用,已成為嵌入式開發的主流平臺。

本書是嵌入式Linux領域的名著,深入而又簡明地闡述了構建嵌入式Linux系統的精髓。本書不僅剖析了嵌入式Linux系統,而且講述了處理器、內核、引導加載程序、設備驅動開發、文件系統等關鍵組件,介紹了嵌入式Linux系統的開發工具、調試技術。作者多年積累總結的嵌入式Linux開發技巧和提示,無論對初學者還是有經驗的開發人員,都彌足珍貴。這一版不僅對原有章節進行了修訂、更新和改進,還新增了udev、USB和開源構建系統等內容。

嵌入式LINUX基礎教程(第2版) 內容簡介

《嵌入式Linux基礎教程(第 2版)》是嵌入式Linux教程,介紹了引導加載程序、系統初始化、文件系統、閃存和內核、應用程序調試技巧等,還講述了構建Linux系統的工作原理,用于驅動不同架構的配置,Linux內核源碼樹的特性,如何根據需求配制內核運行時的行為,如何擴展系統功能,用于構建完整嵌入式Linux發行版的常用構建系統,USB子系統和系統配置工具udev等內容。更重要的是,《嵌入式Linux基礎教程(第 2版)》闡述了如何修改系統使之滿足讀者自身的需求,確保讀者能夠從中學習一些嵌入式工程中非常有用的提示和技巧。 《嵌入式Linux基礎教程(第 2版)》適合Linux程序員閱讀,也可作為高等院校相關專業師生的參考讀物。

嵌入式LINUX基礎教程(第2版) 目錄

第 1章 入門 1

1.1 為什么選擇Linux 1

1.2 嵌入式Linux現狀 2

1.3 開源和GPL 2

1.4 標準及相關組織 3

1.4.1 Linux標準基礎 3

1.4.2 Linux基金會 4

1.4.3 電信級Linux 4

1.4.4 移動Linux計劃:Moblin 4

1.4.5 服務可用性論壇 5

1.5 小結 5

第 2章 綜述 6

2.1 嵌入與非嵌入 6

2.2 剖析嵌入式系統 7

2.2.1 典型的嵌入式Linux開發環境 8

2.2.2 啟動目標板 9

2.2.3 引導內核 10

2.2.4 內核初始化:概述 12

2.2.5 第 一個用戶空間進程:init 13

2.3 存儲 14

2.3.1 閃存 14

2.3.2 NAND型閃存 15

2.3.3 閃存的用途 16

2.3.4 閃存文件系統 17

2.3.5 內存空間 17

2.3.6 執行上下文 19

2.3.7 進程虛擬內存 20

2.3.8 交叉開發環境 21

2.4 嵌入式Linux發行版 22

2.4.1 商業Linux發行版 24

2.4.2 打造自己的Linux發行版 24

2.5 小結 24

第3章 處理器基礎 26

3.1 獨立處理器 26

3.1.1 IBM 970FX 27

3.1.2 英特爾奔騰M 27

3.1.3 英特爾凌動TM 28

3.1.4 飛思卡爾MPC7448 28

3.1.5 配套芯片組 28

3.2 集成處理器:片上系統 30

3.2.1 Power架構 30

3.2.2 飛思卡爾Power架構 30

3.2.3 飛思卡爾PowerQUICC I 31

3.2.4 飛思卡爾PowerQUICC II 32

3.2.5 PowerQUICC II Pro 32

3.2.6 飛思卡爾PowerQUICC III 33

3.2.7 飛思卡爾QorIQTM 34

3.2.8 AMCC Power架構 36

3.2.9 MIPS 38

3.2.10 Broadcom MIPS 38

3.2.11 其他MIPS 39

3.2.12 ARM 40

3.2.13 德州儀器ARM 40

3.2.14 飛思卡爾ARM 42

3.2.15 其他ARM處理器 43

3.3 其他架構 43

3.4 硬件平臺 43

3.4.1 CompactPCI 43

3.4.2 ATCA 44

3.5 小結 44

第4章 Linux內核:不同的視角 46

4.1 背景知識 46

4.1.1 內核版本 47

4.1.2 內核源碼庫 48

4.1.3 使用git下載內核代碼 49

4.2 Linux內核的構造 49

4.2.1 頂層源碼目錄 49

4.2.2 編譯內核 50

4.2.3 內核主體:vmlinux 52

4.2.4 內核鏡像的組成部分 53

4.2.5 子目錄的布局 56

4.3 內核構建系統 57

4.3.1 .config文件 57

4.3.2 配置編輯器 58

4.3.3 Makefile目標 61

4.4 內核配置 66

4.4.1 定制配置選項 68

4.4.2 內核Makefile 71

4.5 內核文檔 72

4.6 獲得定制的Linux內核 72

4.7 小結 73

第5章 內核初始化 75

5.1 合成內核鏡像:Piggy及其他 75

5.1.1 Image對象 78

5.1.2 與具體架構相關的對象 78

5.1.3 啟動加載程序 79

5.1.4 引導消息 80

5.2 初始化時的控制流 83

5.2.1 內核入口:head.o 84

5.2.2 內核啟動:main.c 85

5.2.3 架構設置 86

5.3 內核命令行的處理 87

5.4 子系統初始化 92

5.5 init線程 94

5.5.1 通過initcalls進行初始化 95

5.5.2 initcall_debug 96

5.5.3 **后的引導步驟 97

5.6 小結 98

第6章 用戶空間初始化 100

6.1 根文件系統 100

6.1.1 FHS:文件系統層次結構

標準 101

6.1.2 文件系統布局 101

6.1.3 **小化的文件系統 102

6.1.4 嵌入式根文件系統帶

來的挑戰 103

6.1.5 試錯法 104

6.1.6 自動化文件系統構建工具 104

6.2 內核的**后一些引導步驟 104

6.2.1 第 一個用戶空間程序 106

6.2.2 解決依賴關系 106

6.2.3 定制的初始進程 107

6.3 init進程 107

6.3.1 inittab 109

6.3.2 Web服務器啟動腳本示例 111

6.4 初始RAM磁盤 112

6.4.1 使用initrd進行引導 113

6.4.2 引導加載程序對initrd的

支持 113

6.4.3 initrd的奧秘所在:

linuxrc 115

6.4.4 initrd探究 116

6.4.5 構造initrd鏡像 116

6.5 使用initramfs 117

6.6 關機 119

6.7 小結 120

第7章 引導加載程序 122

7.1 引導加載程序的作用 122

7.2 引導加載程序帶來的挑戰 123

7.2.1 DRAM控制器 123

7.2.2 閃存與RAM 123

7.2.3 鏡像的復雜性 124

7.2.4 執行環境 126

7.3 通用引導加載程序:Das U-Boot 126

7.3.1 獲取U-Boot 127

7.3.2 配置U-Boot 127

7.3.3 U-Boot的監控命令 129

7.3.4 網絡操作 130

7.3.5 存儲子系統 132

7.3.6 從磁盤引導 133

7.4 移植U-Boot 133

7.4.1 EP405的U-Boot移植 133

7.4.2 U-Boot Makefile中的配置

目標 134

7.4.3 EP405的第 一次構建 135

7.4.4 EP405 處理器初始化 136

7.4.5 與具體板卡相關的初始化 138

7.4.6 移植總結 141

7.4.7 U-Boot鏡像格式 141

7.5 設備樹對象(扁平設備樹) 143

7.5.1 設備樹源碼 145

7.5.2 設備樹編譯器 148

7.5.3 使用DTB的其他內核鏡像 148

7.6 其他引導加載程序 149

7.6.1 Lilo 149

7.6.2 GRUB 150

7.6.3 其他更多的引導加載程序 151

7.7 小結 152

第8章 設備驅動程序基礎 154

8.1 設備驅動程序的概念 154

8.1.1 可加載模塊 155

8.1.2 設備驅動程序架構 155

8.1.3 **小設備驅動程序示例 156

8.1.4 模塊構建的基礎設施 157

8.1.5 安裝設備驅動程序 160

8.1.6 加載模塊 160

8.1.7 模塊參數 161

8.2 模塊工具 162

8.2.1 insmod 162

8.2.2 lsmod 163

8.2.3 modprobe 163

8.2.4 depmod 164

8.2.5 rmmod 165

8.2.6 modinfo 165

8.3 驅動程序方法 166

8.3.1 驅動程序中的文件系統

操作 166

8.3.2 設備號的分配 169

8.3.3 設備節點和mknod 169

8.4 綜合應用 170

8.5 在內核源碼樹外構建驅動 171

8.6 設備驅動程序和GPL 172

8.7 小結 173

第9章 文件系統 174

9.1 Linux文件系統概念 175

9.2 ext2 176

9.2.1 掛載文件系統 177

9.2.2 檢查文件系統的完整性 178

9.3 ext3 180

9.4 ext4 182

9.5 ReiserFS 182

9.6 JFFS2 183

9.7 cramfs 185

9.8 網絡文件系統 187

9.9 偽文件系統 190

9.9.1 /proc文件系統 191

9.9.2 sysfs 194

9.10 其他文件系統 196

9.11 創建簡單的文件系統 197

9.12 小結 199

第 10章 MTD子系統 201

10.1 MTD概述 201

10.1.1 開啟MTD服務 202

10.1.2 MTD基礎 203

10.1.3 在目標板上配置MTD 205

10.2 MTD分區 205

10.2.1 使用Redboot分區表進行

分區 206

10.2.2 使用內核命令行傳遞分區

信息 210

10.2.3 映射驅動 211

10.2.4 閃存芯片驅動 213

10.2.5 與具體板卡相關的初始化 214

10.3 MTD工具 215

10.4 UBI文件系統 219

10.4.1 配置UBIFS 219

10.4.2 構建UBIFS鏡像 220

10.4.3 使用UBIFS作為根文件

系統 222

10.5 小結 222

第 11章 BusyBox 224

11.1 BusyBox簡介 224

11.2 BusyBox的配置 225

11.3 BusyBox的操作 227

11.3.1 BusyBox的init 230

11.3.2 rcS初始化腳本示例 232

11.3.3 BusyBox在目標板上的

安裝 233

11.3.4 BusyBox小應用 235

11.4 小結 235

第 12章 嵌入式開發環境 237

12.1 交叉開發環境 237

12.2 對主機系統的要求 241

12.3 為目標板提供服務 242

12.3.1 TFTP服務器 242

12.3.2 BOOTP/DHCP 服務器 243

12.3.3 NFS服務器 245

12.3.4 目標板使用NFS掛載根

文件系統 247

12.3.5 U-Boot中使用NFS掛載根

文件系統的例子 248

12.4 小結 250

第 13章 開發工具 252

13.1 GNU調試器(GDB) 252

13.1.1 調試核心轉儲 253

13.1.2 執行GDB 255

13.1.3 GDB中的調試會話 257

13.2 數據顯示調試器 258

13.3 cbrowser/cscope 260

13.4 追蹤和性能評測工具 261

13.4.1 strace 261

13.4.2 strace命令行選項 264

13.4.3 ltrace 266

13.4.4 ps 267

13.4.5 top 269

13.4.6 mtrace 270

13.4.7 dmalloc 272

13.4.8 內核oops 274

13.5 二進制工具 276

13.5.1 readelf 277

13.5.2 使用readelf查看調試信息 278

13.5.3 objdump 280

13.5.4 objcopy 281

13.6 其他二進制實用程序 281

13.6.1 strip 281

13.6.2 addr2line 282

13.6.3 strings 282

13.6.4 ldd 282

13.6.5 nm 283

13.6.6 prelink 283

13.7 小結 284

第 14章 內核調試技術 286

14.1 內核調試帶來的挑戰 286

14.2 使用KGDB進行內核調試 287

14.2.1 KGDB的內核配置 288

14.2.2 在開啟KGDB時引導

目標板 289

14.2.3 一些有用的內核斷點 293

14.2.4 KGDB與控制臺共享一個

串行端口 294

14.2.5 調試非常早期的內核代碼 295

14.2.6 主線內核對KGDB的支持 296

14.3 內核調試技術 297

14.3.1 gdb遠程串行協議 298

14.3.2 調試優化的內核代碼 300

14.3.3 GDB的用戶自定義命令 307

14.3.4 有用的內核GDB宏 307

14.3.5 調試可加載模塊 315

14.3.6 printk調試 319

14.3.7 Magic SysReq key 320

14.4 硬件輔助調試 321

14.4.1 使用JTAG探測器對閃存

進行編程 322

14.4.2 使用JTAG探測器進行調

試 323

14.5 不能啟動的情況 326

14.5.1 早期的串行端口調試輸

出 326

14.5.2 轉儲printk的日志緩沖

區 327

14.5.3 使用KGDB調試內核異常 328

14.6 小結 329

第 15章 調試嵌入式Linux應用程序 331

15.1 目標調試 331

15.2 遠程(交叉)調試 331

15.3 調試共享程序庫 335

15.4 調試多個任務 340

15.4.1 調試多個進程 340

15.4.2 調試多線程應用程序 342

15.4.3 調試引導加載程序/閃存

代碼 345

15.5 其他遠程調試選項 345

15.5.1 使用串行端口進行調試 345

15.5.2 附著到運行的進程上 346

15.6 小結 346

第 16章 開源構建系統 348

16.1 為什么使用構建系統 348

16.2 Scratchbox 349

16.2.1 安裝Scratchbox 349

16.2.2 創建一個交叉編譯目標 350

16.3 Buildroot 351

16.3.1 安裝Buildroot 352

16.3.2 配置Buildroot 352

16.3.3 構建Buildroot 353

16.4 OpenEmbedded 354

16.4.1 OpenEmbedded的組成 355

16.4.2 BitBake元數據 355

16.4.3 配方基礎 356

16.4.4 任務 358

16.4.5 類 359

16.4.6 配置元數據 360

16.4.7 構建鏡像 361

16.5 小結 362

第 17章 實時Linux 363

17.1 什么是實時 363

17.1.1 軟實時 363

17.1.2 硬實時 364

17.1.3 Linux調度 364

17.1.4 延時 364

17.2 內核搶占 365

17.2.1 搶占的障礙 366

17.2.2 搶占模式 367

17.2.3 SMP內核 368

17.2.4 搶占延時的根源 369

17.3 實時內核補丁 369

17.3.1 實時補丁的特性 370

17.3.2 O(1)調度器 371

17.3.3 創建實時進程 372

17.4 實時內核的性能分析 373

17.4.1 使用Ftrace追蹤內核行為 373

17.4.2 檢測搶占被關閉的延時 374

17.4.3 檢測喚醒延時 375

17.4.4 檢測中斷被關閉的延時 377

17.4.5 檢測Soft Lockup 378

17.5 小結 378

第 18章 通用串行總線 379

18.1 USB概述 379

18.1.1 USB的物理拓撲結構 379

18.1.2 USB的邏輯拓撲結構 381

18.1.3 USB版本 382

18.1.4 USB連接器 382

18.1.5 USB線纜 383

18.1.6 USB模式 384

18.2 配置USB 384

18.3 sysfs和USB設備命名 388

18.4 實用的USB工具 390

18.4.1 USB文件系統 390

18.4.2 使用usbview 392

18.4.3 USB 實用程序(lsusb) 394

18.5 通用USB子系統 395

18.5.1 USB大容量存儲類 395

18.5.2 USB HID類 397

18.5.3 USB CDC類驅動 398

18.5.4 USB網絡支持 400

18.6 USB調試 401

18.6.1 usbmon 402

18.6.2 實用USB雜記 403

18.7 小結 403

第 19章 udev 405

19.1 什么是udev 405

19.2 設備發現 406

19.3 udev的默認行為 407

19.4 理解udev規則 409

19.4.1 Modalias 411

19.4.2 典型的udev規則配置 414

19.4.3 udev的初始系統設置 415

19.5 加載平臺設備驅動程序 417

19.6 定制udev的行為 419

19.7 持久的設備命名 420

19.8 udev和busybox配合使用 423

19.8.1 busybox mdev 423

19.8.2 配置mdev 425

19.9 小結 425

附錄A 可配置的U-Boot命令 427

附錄B BusyBox命令 430

附錄C SDRAM接口注意事項 440

附錄D 開源資源 447

附錄E 簡單的BDI-2000配置文件 449
展開全部

嵌入式LINUX基礎教程(第2版) 相關資料

“這本書很令我振奮,它為那些想在嵌入式系統中使用Linux的開發人員提供了極好的學習路線指導。本書內容簡潔、準確,組織合理,Christopher的知識和見解貫穿全書,你不僅能得到很多信息和幫助,也能享受到閱讀的樂趣。”

——Arnold Robbins,Linux專業人士



“本書涵蓋了嵌入式Linux開發的方方面面……強烈推薦每一位嵌入式Linux開發人員閱讀。”

——LinuxQuestions.org

嵌入式LINUX基礎教程(第2版) 作者簡介

Christopher Hallinan,嵌入式Linux技術專業人士。現任Mentor Graphics公司技術市場工程師,曾任MontaVista軟件公司現場應用工程師,3Com公司工程總監,Crosscomm公司工程總監。他有25年以上網絡和通信產品的軟硬件開發經驗。曾擔任Linux咨詢師,提供定制Linux主板接口、設備驅動程序和引導加載程序等方面的解決方案。

商品評論(0條)
暫無評論……
書友推薦
本類暢銷
編輯推薦
返回頂部
中圖網
在線客服