python內(nèi)核_嵌入式Linux基礎(chǔ)教程(第2版)
本文關(guān)鍵詞:嵌入式Linux基礎(chǔ)教程,由筆耕文化傳播整理發(fā)布。
嵌入式Linux基礎(chǔ)教程(第2版)
編輯推薦
嵌入式Linux權(quán)威著作
Amazon全五星評(píng)價(jià)
全面剖析嵌入式Linux開(kāi)發(fā),揭示大量技術(shù)內(nèi)幕
基本信息
&cnblogs
《嵌入式Linux基礎(chǔ)教程(第2版)》是嵌入式Linux 的經(jīng)典教程,介紹了引導(dǎo)加載程序、系統(tǒng)初始化、文件系統(tǒng)、閃存和內(nèi)核、應(yīng)用程序調(diào)試技巧等,還講述了構(gòu)建Linux 系統(tǒng)的工作原理,用于驅(qū)動(dòng)不同架構(gòu)的配置,Linux 內(nèi)核源碼樹(shù)的特性,如何根據(jù)需求配制內(nèi)核運(yùn)行時(shí)的行為,如何擴(kuò)展系統(tǒng)功能,用于構(gòu)建完整嵌入式Linux 發(fā)行版的常用構(gòu)建系統(tǒng),USB 子系統(tǒng)和系統(tǒng)配置工具udev 等內(nèi)容。更重要的是,本書(shū)闡述了如何修改系統(tǒng)使之滿(mǎn)足讀者自身的需求,確保讀者能夠從中學(xué)習(xí)一些嵌入式工程中非常有用的提示和技巧。br
《嵌入式Linux基礎(chǔ)教程(第2版)》適合Linux 程序員閱讀,也可作為高等院校相關(guān)專(zhuān)業(yè)師生的參考讀物。
目錄
《嵌入式Linux基礎(chǔ)教程(第2版)》
第1章 入門(mén) 1
1.1 為什么選擇linux 1
1.2 嵌入式linux現(xiàn)狀 2
1.3 開(kāi)源和gpl 2
1.4 標(biāo)準(zhǔn)及相關(guān)組織 3
1.4.1 linux標(biāo)準(zhǔn)基礎(chǔ) 3
1.4.2 linux基金會(huì) 4
1.4.3 電信級(jí)linux 4
1.4.4 移動(dòng)linux計(jì)劃:moblin 4
1.4.5 服務(wù)可用性論壇 5
1.5 小結(jié) 5
第2章 綜述 6
2.1 嵌入與非嵌入 6
2.2 剖析嵌入式系統(tǒng) 7
2.2.1 典型的嵌入式linux開(kāi)發(fā)環(huán)境 8
2.2.2 啟動(dòng)目標(biāo)板 9
2.2.3 引導(dǎo)內(nèi)核 10
2.2.4 內(nèi)核初始化:概述 12
2.2.5 第一個(gè)用戶(hù)空間進(jìn)程:init 13
.2.3 存儲(chǔ) 14
2.3.1 閃存 14
2.3.2 nand型閃存 15
2.3.3 閃存的用途 16
2.3.4 閃存文件系統(tǒng) 17
2.3.5 內(nèi)存空間 17
2.3.6 執(zhí)行上下文 19
2.3.7 進(jìn)程虛擬內(nèi)存 20
2.3.8 交叉開(kāi)發(fā)環(huán)境 21
2.4 嵌入式linux發(fā)行版 22
2.4.1 商業(yè)linux發(fā)行版 24
2.4.2 打造自己的linux發(fā)行版 24
2.5 小結(jié) 24
第3章 處理器基礎(chǔ) 26
3.1 獨(dú)立處理器 26
3.1.1 ibm 970fx 27
3.1.2 英特爾奔騰m 27
3.1.3 英特爾凌動(dòng)tm 28
3.1.4 飛思卡爾mpc7448 28
3.1.5 配套芯片組 28
3.2 集成處理器:片上系統(tǒng) 30
3.2.1 power架構(gòu) 30
3.2.2 飛思卡爾power架構(gòu) 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架構(gòu) 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 其他架構(gòu) 43
3.4 硬件平臺(tái) 43
3.4.1 compactpci 43
3.4.2 atca 44
3.5 小結(jié) 44
第4章 linux內(nèi)核:不同的視角 46
4.1 背景知識(shí) 46
4.1.1 內(nèi)核版本 47
4.1.2 內(nèi)核源碼庫(kù) 48
4.1.3 使用git下載內(nèi)核代碼 49
4.2 linux內(nèi)核的構(gòu)造 49
4.2.1 頂層源碼目錄 49
4.2.2 編譯內(nèi)核 50
4.2.3 內(nèi)核主體:vmlinux 52
4.2.4 內(nèi)核鏡像的組成部分 53
4.2.5 子目錄的布局 56
4.3 內(nèi)核構(gòu)建系統(tǒng) 57
4.3.1 .config文件 57
4.3.2 配置編輯器 58
4.3.3 makefile目標(biāo) 61
4.4 內(nèi)核配置 66
4.4.1 定制配置選項(xiàng) 68
4.4.2 內(nèi)核makefile 71
4.5 內(nèi)核文檔 72
4.6 獲得定制的linux內(nèi)核 72
4.7 小結(jié) 73
第5章 內(nèi)核初始化 75
5.1 合成內(nèi)核鏡像:piggy及其他 75
5.1.1 image對(duì)象 78
5.1.2 與具體架構(gòu)相關(guān)的對(duì)象 78
5.1.3 啟動(dòng)加載程序 79
5.1.4 引導(dǎo)消息 80
5.2 初始化時(shí)的控制流 83
5.2.1 內(nèi)核入口:head.o 84
5.2.2 內(nèi)核啟動(dòng):main.c 85
5.2.3 架構(gòu)設(shè)置 86
5.3 內(nèi)核命令行的處理 87
5.4 子系統(tǒng)初始化 92
5.5 init線(xiàn)程 94
5.5.1 通過(guò)initcalls進(jìn)行初始化 95
5.5.2 initcall_debug 96
5.5.3 最后的引導(dǎo)步驟 97
5.6 小結(jié) 98
第6章 用戶(hù)空間初始化 100
6.1 根文件系統(tǒng) 100
6.1.1 fhs:文件系統(tǒng)層次結(jié)構(gòu)標(biāo)準(zhǔn) 101
6.1.2 文件系統(tǒng)布局 101
6.1.3 最小化的文件系統(tǒng) 102
6.1.4 嵌入式根文件系統(tǒng)帶來(lái)的挑戰(zhàn) 103
6.1.5 試錯(cuò)法 104
6.1.6 自動(dòng)化文件系統(tǒng)構(gòu)建工具 104
6.2 內(nèi)核的最后一些引導(dǎo)步驟 104
6.2.1 第一個(gè)用戶(hù)空間程序 106
6.2.2 解決依賴(lài)關(guān)系 106
6.2.3 定制的初始進(jìn)程 107
6.3 init進(jìn)程 107
6.3.1 inittab 109
6.3.2 web服務(wù)器啟動(dòng)腳本示例 111
6.4 初始ram磁盤(pán) 112
6.4.1 使用initrd進(jìn)行引導(dǎo) 113
6.4.2 引導(dǎo)加載程序?qū)nitrd的支持 113
6.4.3 initrd的奧秘所在:
linuxrc 115
6.4.4 initrd探究 116
6.4.5 構(gòu)造initrd鏡像 116
6.5 使用initramfs 117
6.6 關(guān)機(jī) 119
6.7 小結(jié) 120
第7章 引導(dǎo)加載程序 122
7.1 引導(dǎo)加載程序的作用 122
7.2 引導(dǎo)加載程序帶來(lái)的挑戰(zhàn) 123
7.2.1 dram控制器 123
7.2.2 閃存與ram 123
7.2.3 鏡像的復(fù)雜性 124
7.2.4 執(zhí)行環(huán)境 126
7.3 通用引導(dǎo)加載程序:das u-boot 126
7.3.1 獲取u-boot 127
7.3.2 配置u-boot 127
7.3.3 u-boot的監(jiān)控命令 129
7.3.4 網(wǎng)絡(luò)操作 130
7.3.5 存儲(chǔ)子系統(tǒng) 132
7.3.6 從磁盤(pán)引導(dǎo) 133
7.4 移植u-boot 133
7.4.1 ep405的u-boot移植 133
7.4.2 u-boot makefile中的配置目標(biāo) 134
7.4.3 ep405的第一次構(gòu)建 135
7.4.4 ep405 處理器初始化 136
7.4.5 與具體板卡相關(guān)的初始化 138
7.4.6 移植總結(jié) 141
7.4.7 u-boot鏡像格式 141
7.5 設(shè)備樹(shù)對(duì)象(扁平設(shè)備樹(shù)) 143
7.5.1 設(shè)備樹(shù)源碼 145
7.5.2 設(shè)備樹(shù)編譯器 148
7.5.3 使用dtb的其他內(nèi)核鏡像 148
7.6 其他引導(dǎo)加載程序 149
7.6.1 lilo 149
7.6.2 grub 150
7.6.3 其他更多的引導(dǎo)加載程序 151
7.7 小結(jié) 152
第8章 設(shè)備驅(qū)動(dòng)程序基礎(chǔ) 154
8.1 設(shè)備驅(qū)動(dòng)程序的概念 154
8.1.1 可加載模塊 155
8.1.2 設(shè)備驅(qū)動(dòng)程序架構(gòu) 155
8.1.3 最小設(shè)備驅(qū)動(dòng)程序示例 156
8.1.4 模塊構(gòu)建的基礎(chǔ)設(shè)施 157
8.1.5 安裝設(shè)備驅(qū)動(dòng)程序 160
8.1.6 加載模塊 160
8.1.7 模塊參數(shù) 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 驅(qū)動(dòng)程序方法 166
8.3.1 驅(qū)動(dòng)程序中的文件系統(tǒng)操作 166
8.3.2 設(shè)備號(hào)的分配 169
8.3.3 設(shè)備節(jié)點(diǎn)和mknod 169
8.4 綜合應(yīng)用 170
8.5 在內(nèi)核源碼樹(shù)外構(gòu)建驅(qū)動(dòng) 171
8.6 設(shè)備驅(qū)動(dòng)程序和gpl 172
8.7 小結(jié) 173
第9章 文件系統(tǒng) 174
9.1 linux文件系統(tǒng)概念 175
9.2 ext2 176
9.2.1 掛載文件系統(tǒng) 177
9.2.2 檢查文件系統(tǒng)的完整性 178
9.3 ext3 180
9.4 ext4 182
9.5 reiserfs 182
9.6 jffs2 183
9.7 cramfs 185
9.8 網(wǎng)絡(luò)文件系統(tǒng) 187
9.9 偽文件系統(tǒng) 190
9.9.1 /proc文件系統(tǒng) 191
9.9.2 sysfs 194
9.10 其他文件系統(tǒng) 196
9.11 創(chuàng)建簡(jiǎn)單的文件系統(tǒng) 197
9.12 小結(jié) 199
第10章 mtd子系統(tǒng) 201
10.1 mtd概述 201
10.1.1 開(kāi)啟mtd服務(wù) 202
10.1.2 mtd基礎(chǔ) 203
10.1.3 在目標(biāo)板上配置mtd 205
10.2 mtd分區(qū) 205
10.2.1 使用redboot分區(qū)表進(jìn)行
分區(qū) 206
10.2.2 使用內(nèi)核命令行傳遞分區(qū)
信息 210
10.2.3 映射驅(qū)動(dòng) 211
10.2.4 閃存芯片驅(qū)動(dòng) 213
10.2.5 與具體板卡相關(guān)的初始化 214
10.3 mtd工具 215
10.4 ubi文件系統(tǒng) 219
10.4.1 配置ubifs 219
10.4.2 構(gòu)建ubifs鏡像 220
10.4.3 使用ubifs作為根文件系統(tǒng) 222
10.5 小結(jié) 222
第11章 busybox 224
11.1 busybox簡(jiǎn)介 224
11.2 busybox的配置 225
11.3 busybox的操作 227
11.3.1 busybox的init 230
11.3.2 rcs初始化腳本示例 232
11.3.3 busybox在目標(biāo)板上的安裝 233
11.3.4 busybox小應(yīng)用 235
11.4 小結(jié) 235
第12章 嵌入式開(kāi)發(fā)環(huán)境 237
12.1 交叉開(kāi)發(fā)環(huán)境 237
12.2 對(duì)主機(jī)系統(tǒng)的要求 241
12.3 為目標(biāo)板提供服務(wù) 242
12.3.1 tftp服務(wù)器 242
12.3.2 bootp/dhcp 服務(wù)器 243
12.3.3 nfs服務(wù)器 245
12.3.4 目標(biāo)板使用nfs掛載根文件系統(tǒng) 247
12.3.5 u-boot中使用nfs掛載根文件系統(tǒng)的例子 248
12.4 小結(jié) 250
第13章 開(kāi)發(fā)工具 252
13.1 gnu調(diào)試器(gdb) 252
13.1.1 調(diào)試核心轉(zhuǎn)儲(chǔ) 253
13.1.2 執(zhí)行g(shù)db 255
13.1.3 gdb中的調(diào)試會(huì)話(huà) 257
13.2 數(shù)據(jù)顯示調(diào)試器 258
13.3 cbrowser/cscope 260
13.4 追蹤和性能評(píng)測(cè)工具 261
13.4.1 strace 261
13.4.2 strace命令行選項(xiàng) 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 內(nèi)核oops 274
13.5 二進(jìn)制工具 276
13.5.1 readelf 277
13.5.2 使用readelf查看調(diào)試信息 278
13.5.3 objdump 280
13.5.4 objcopy 281
13.6 其他二進(jìn)制實(shí)用程序 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 小結(jié) 284
第14章 內(nèi)核調(diào)試技術(shù) 286
14.1 內(nèi)核調(diào)試帶來(lái)的挑戰(zhàn) 286
14.2 使用kgdb進(jìn)行內(nèi)核調(diào)試 287
14.2.1 kgdb的內(nèi)核配置 288
14.2.2 在開(kāi)啟kgdb時(shí)引導(dǎo)目標(biāo)板 289
14.2.3 一些有用的內(nèi)核斷點(diǎn) 293
14.2.4 kgdb與控制臺(tái)共享一個(gè)串行端口 294
14.2.5 調(diào)試非常早期的內(nèi)核代碼 295
14.2.6 主線(xiàn)內(nèi)核對(duì)kgdb的支持 296
14.3 內(nèi)核調(diào)試技術(shù) 297
14.3.1 gdb遠(yuǎn)程串行協(xié)議 298
14.3.2 調(diào)試優(yōu)化的內(nèi)核代碼 300
14.3.3 gdb的用戶(hù)自定義命令 307
14.3.4 有用的內(nèi)核gdb宏 307
14.3.5 調(diào)試可加載模塊 315
14.3.6 printk調(diào)試 319
14.3.7 magic sysreq key 320
14.4 硬件輔助調(diào)試 321
14.4.1 使用jtag探測(cè)器對(duì)閃存進(jìn)行編程 322
14.4.2 使用jtag探測(cè)器進(jìn)行調(diào)試 323
14.5 不能啟動(dòng)的情況 326
14.5.1 早期的串行端口調(diào)試輸出 326
14.5.2 轉(zhuǎn)儲(chǔ)printk的日志緩沖區(qū) 327
14.5.3 使用kgdb調(diào)試內(nèi)核異常 328
14.6 小結(jié) 329
第15章 調(diào)試嵌入式linux應(yīng)用程序 331
15.1 目標(biāo)調(diào)試 331
15.2 遠(yuǎn)程(交叉)調(diào)試 331
15.3 調(diào)試共享程序庫(kù) 335
15.4 調(diào)試多個(gè)任務(wù) 340
15.4.1 調(diào)試多個(gè)進(jìn)程 340
15.4.2 調(diào)試多線(xiàn)程應(yīng)用程序 342
15.4.3 調(diào)試引導(dǎo)加載程序/閃存代碼 345
15.5 其他遠(yuǎn)程調(diào)試選項(xiàng) 345
15.5.1 使用串行端口進(jìn)行調(diào)試 345
15.5.2 附著到運(yùn)行的進(jìn)程上 346
15.6 小結(jié) 346
第16章 開(kāi)源構(gòu)建系統(tǒng) 348
16.1 為什么使用構(gòu)建系統(tǒng) 348
16.2 scratchbox 349
16.2.1 安裝scratchbox 349
16.2.2 創(chuàng)建一個(gè)交叉編譯目標(biāo) 350
16.3 buildroot 351
16.3.1 安裝buildroot 352
16.3.2 配置buildroot 352
16.3.3 構(gòu)建buildroot 353
16.4 openembedded 354
16.4.1 openembedded的組成 355
16.4.2 bitbake元數(shù)據(jù) 355
16.4.3 配方基礎(chǔ) 356
16.4.4 任務(wù) 358
16.4.5 類(lèi) 359
16.4.6 配置元數(shù)據(jù) 360
16.4.7 構(gòu)建鏡像 361
16.5 小結(jié) 362
第17章 實(shí)時(shí)linux 363
17.1 什么是實(shí)時(shí) 363
17.1.1 軟實(shí)時(shí) 363
17.1.2 硬實(shí)時(shí) 364
17.1.3 linux調(diào)度 364
17.1.4 延時(shí) 364
17.2 內(nèi)核搶占 365
17.2.1 搶占的障礙 366
17.2.2 搶占模式 367
17.2.3 smp內(nèi)核 368
17.2.4 搶占延時(shí)的根源 369
17.3 實(shí)時(shí)內(nèi)核補(bǔ)丁 369
17.3.1 實(shí)時(shí)補(bǔ)丁的特性 370
17.3.2 o(1)調(diào)度器 371
17.3.3 創(chuàng)建實(shí)時(shí)進(jìn)程 372
17.4 實(shí)時(shí)內(nèi)核的性能分析 373
17.4.1 使用ftrace追蹤內(nèi)核行為 373
17.4.2 檢測(cè)搶占被關(guān)閉的延時(shí) 374
17.4.3 檢測(cè)喚醒延時(shí) 375
17.4.4 檢測(cè)中斷被關(guān)閉的延時(shí) 377
17.4.5 檢測(cè)soft lockup 378
17.5 小結(jié) 378
第18章 通用串行總線(xiàn) 379
18.1 usb概述 379
18.1.1 usb的物理拓?fù)浣Y(jié)構(gòu) 379
18.1.2 usb的邏輯拓?fù)浣Y(jié)構(gòu) 381
18.1.3 usb版本 382
18.1.4 usb連接器 382
18.1.5 usb線(xiàn)纜 383
18.1.6 usb模式 384
18.2 配置usb 384
18.3 sysfs和usb設(shè)備命名 388
18.4 實(shí)用的usb工具 390
18.4.1 usb文件系統(tǒng) 390
18.4.2 使用usbview 392
18.4.3 usb 實(shí)用程序(lsusb) 394
18.5 通用usb子系統(tǒng) 395
18.5.1 usb大容量存儲(chǔ)類(lèi) 395
18.5.2 usb hid類(lèi) 397
18.5.3 usb cdc類(lèi)驅(qū)動(dòng) 398
18.5.4 usb網(wǎng)絡(luò)支持 400
18.6 usb調(diào)試 401
18.6.1 usbmon 402
18.6.2 實(shí)用usb雜記 403
18.7 小結(jié) 403
第19章 udev 405
19.1 什么是udev 405
19.2 設(shè)備發(fā)現(xiàn) 406
19.3 udev的默認(rèn)行為 407
19.4 理解udev規(guī)則 409
19.4.1 modalias 411
19.4.2 典型的udev規(guī)則配置 414
19.4.3 udev的初始系統(tǒng)設(shè)置 415
19.5 加載平臺(tái)設(shè)備驅(qū)動(dòng)程序 417
19.6 定制udev的行為 419
19.7 持久的設(shè)備命名 420
19.8 udev和busybox配合使用 423
19.8.1 busybox mdev 423
19.8.2 配置mdev 425
19.9 小結(jié) 425
附錄a 可配置的u-boot命令 427
附錄b busybox命令 430
附錄c sdram接口注意事項(xiàng) 440
附錄d 開(kāi)源資源 447
附錄e 簡(jiǎn)單的bdi-2000配置文件 449
前言
雖然講Linux的好書(shū)很多,但是本書(shū)匯集了專(zhuān)門(mén)針對(duì)嵌入式Linux開(kāi)發(fā)人員的各方面信息和建議。實(shí)際上,有關(guān)Linux內(nèi)核、Linux系統(tǒng)管理等方面的優(yōu)秀書(shū)籍已經(jīng)有很多了。本書(shū)也參考了我認(rèn)為在同類(lèi)書(shū)籍中最好的幾本。
本書(shū)的很多內(nèi)容來(lái)自實(shí)際的問(wèn)題,有些問(wèn)題是我作為計(jì)算機(jī)書(shū)籍嵌入式Linux顧問(wèn)時(shí)一些開(kāi)發(fā)工程師提出的,還有些問(wèn)題是我直接參與商業(yè)嵌入式Linux開(kāi)發(fā)時(shí)遇到的。
嵌入式Linux會(huì)給經(jīng)驗(yàn)豐富的軟件工程師帶來(lái)一些獨(dú)特的挑戰(zhàn)。首先,那些有多年老式實(shí)時(shí)操作系統(tǒng)(Real Time Operating System,RTOS)開(kāi)發(fā)經(jīng)驗(yàn)的工程師會(huì)發(fā)現(xiàn),他們的思維習(xí)慣很難從舊的環(huán)境轉(zhuǎn)換到Linux;其次,經(jīng)驗(yàn)豐富的應(yīng)用程序開(kāi)發(fā)人員常常難以理解多種開(kāi)發(fā)環(huán)境的相對(duì)復(fù)雜性。
雖然這是一本面向嵌入式Linux開(kāi)發(fā)初學(xué)者的基礎(chǔ)教程,但我相信即使是經(jīng)驗(yàn)豐富的嵌入式Linux開(kāi)發(fā)人員也能從中獲益,書(shū)中包含了我多年積累的實(shí)用建議和技巧。
給實(shí)際的嵌入式開(kāi)發(fā)人員的實(shí)用建議
本書(shū)介紹了嵌入式工程師怎樣才能迅速掌握嵌入式Linux環(huán)境的新知識(shí)。書(shū)中沒(méi)有重點(diǎn)講解Linux內(nèi)核原理,而是在講解內(nèi)核的章節(jié)側(cè)重從項(xiàng)目角度介紹內(nèi)核。你可以閱讀專(zhuān)門(mén)介紹內(nèi)核原理的優(yōu)秀圖書(shū)來(lái)了解相關(guān)知識(shí)。你可以從本書(shū)學(xué)到內(nèi)核源碼樹(shù)的組織和布局,了解組成內(nèi)核鏡像的二進(jìn)制組件和加載它們的方法,以及它們?cè)谇度胧较到y(tǒng)中的作用。
在本書(shū)中,你會(huì)學(xué)到Linux內(nèi)核構(gòu)建系統(tǒng)的工作原理,以及怎樣將滿(mǎn)足項(xiàng)目需求的具體變化融合到系統(tǒng)中。你會(huì)了解到Linux系統(tǒng)初始化的細(xì)節(jié),包括內(nèi)核空間初始化和用戶(hù)空間初始化。你還能看到很多對(duì)嵌入式項(xiàng)目有益的建議和技巧,涵蓋引導(dǎo)加載程序、系統(tǒng)初始化、文件系統(tǒng)和閃存,以及高級(jí)的內(nèi)核與應(yīng)用程序調(diào)試技術(shù)。第2版中新增了很多內(nèi)容,很多章節(jié)都有更新,比如講開(kāi)源構(gòu)建系統(tǒng)、USB和udev的幾章都是新的,而且有相當(dāng)篇幅探討如何在嵌入式Linux項(xiàng)目中配置和使用這些復(fù)雜的系統(tǒng)。
目標(biāo)讀者
本書(shū)需要讀者具有一定的C語(yǔ)言編程基礎(chǔ),對(duì)局域網(wǎng)和因特網(wǎng)有基本的了解,理解IP地址的概念以及IP地址在簡(jiǎn)單局域網(wǎng)中的用法,還需要理解十六進(jìn)制和八進(jìn)制編碼方式以及它們常見(jiàn)的用法。
本書(shū)也涉及一些C語(yǔ)言編譯和鏈接中較為深入的概念,因此你要是能粗略復(fù)習(xí)一下C語(yǔ)言鏈接器的概念就更好了。同時(shí),了解GNU make操作和語(yǔ)法對(duì)于閱讀本書(shū)也很有幫助。
本書(shū)不是什么
本書(shū)不是一本詳細(xì)介紹硬件的指南。硬件設(shè)備種類(lèi)繁多是嵌入式開(kāi)發(fā)者所面臨的一大困難。集成了一些外圍設(shè)備的現(xiàn)代32位處理器,其用戶(hù)手冊(cè)動(dòng)輒就有3000頁(yè)。沒(méi)有捷徑可走。作為程序員,,要想理解硬件設(shè)備就必須花費(fèi)大量時(shí)間研讀硬件數(shù)據(jù)手冊(cè)和參考指南,同時(shí)要花費(fèi)更多的時(shí)間針對(duì)這些硬件設(shè)備編寫(xiě)和測(cè)試代碼。
這也不是一本講述Linux內(nèi)核或內(nèi)部原理的書(shū)。本書(shū)不會(huì)深入討論用來(lái)實(shí)現(xiàn)Linux虛擬內(nèi)存管理策略和過(guò)程的內(nèi)存管理單元(MMU)。已經(jīng)有許多關(guān)于這個(gè)主題的優(yōu)秀圖書(shū)了,建議你讀一讀每章后面的“補(bǔ)充閱讀建議”。
排版約定
命令和代碼語(yǔ)句使用Courier New字體。用戶(hù)輸入的命令使用加粗的Courier New字體。新名詞和重要概念使用楷體加以強(qiáng)調(diào)。
本文書(shū)籍信息來(lái)至:中國(guó)互動(dòng)出版網(wǎng) /
本文關(guān)鍵詞:嵌入式Linux基礎(chǔ)教程,由筆耕文化傳播整理發(fā)布。
本文編號(hào):176517
本文鏈接:http://sikaile.net/wenshubaike/mishujinen/176517.html