|
-- 會員 / 註冊 --
|
|
|
|
嵌入式Linux編程 ( 簡體 字) |
作者:(美)克里斯·西蒙茲(Chris Simmonds) | 類別:1. -> 作業系統 -> Linux |
譯者: |
出版社:機械工業出版社 | 3dWoo書號: 46545 詢問書籍請說出此書號!【缺書】 NT售價: 395 元 |
出版日:4/1/2017 |
頁數:274 |
光碟數:0 |
|
站長推薦: |
印刷:黑白印刷 | 語系: ( 簡體 版 ) |
|
加入購物車 │加到我的最愛 (請先登入會員) |
ISBN:9787111561286 |
作者序 | 譯者序 | 前言 | 內容簡介 | 目錄 | 序 |
(簡體書上所述之下載連結耗時費功, 恕不適用在台灣, 若讀者需要請自行嘗試, 恕不保證) |
作者序: |
譯者序: |
前言: |
內容簡介:本書引導你遍歷整個嵌入式linux產品的周期,并提供在每個階段可用組件和選項的深入描述。首先,你將學習關于工具鏈、引導加載程序、Linux內核,以及如何配置根文件系統。然后,你將學習如何使用兩個常用的構建系統,即Buildroot和Yocto項目,以加快和簡化開發過程。在這個堅實的基礎上,下面的章節考慮如何佳地使用rawNAND/NOR閃存和托管閃存eMMC芯片,包括增加器件壽命的機制以及進行可靠的現場更新。然后,我們將探討POSIX線程的使用,這對終設備的響應能力和性能有著很大的影響。本書的結尾部分探討使用perf和ftrace剖析和跟蹤應用程序以及內核代碼的技術。 |
目錄:譯者序 推薦序 審校者簡介 前言 第1章 概述 1 1.1 選擇合適的操作系統 2 1.2 參與者 3 1.3 項目生命周期 4 1.4 開放源碼 5 1.5 嵌入式Linux系統硬件 6 1.6 本書使用的硬件 7 1.7 本書使用的軟件 9 1.8 總結 9 第2章 學習工具鏈 10 2.1 工具鏈是什么 10 2.2 工具鏈類型:本地工具鏈和交叉工具鏈 11 2.3 選擇C庫 13 2.4 尋找工具鏈 14 2.5 工具鏈解析 17 2.6 工具鏈中的其他工具 20 2.7 查看C庫的組件 21 2.8 鏈接庫:靜態和動態鏈接 21 2.9 交叉編譯藝術 24 2.10 交叉編譯的問題 28 2.11 總結 29 第3章 引導加載程序 30 3.1 引導加載程序都做了些什么 30 3.2 引導序列 31 3.3 使用UEFI固件引導 32 3.4 從引導加載程序到內核 33 3.5 設備樹介紹 34 3.6 選擇引導加載程序 38 3.7 U-Boot 39 3.8 Barebox 49 3.9 總結 51 第4章 移植與配置內核 52 4.1 內核做了什么 52 4.2 選擇內核 53 4.3 內核構建 55 4.4 編譯 60 4.5 清理內核源 63 4.6 啟動你的內核 63 4.7 將Linux移植到新板上 66 4.8 延伸閱讀 69 4.9 總結 69 第5章 構建根文件系統 71 5.1 根文件系統是什么 71 5.2 根文件系統的程序 75 5.3 根文件系統庫 78 5.4 設備節點 79 5.5 proc與sysfs文件系統 80 5.6 內核模塊 81 5.7 把根文件系統轉移到目標 81 5.8 創建啟動內存磁盤 82 5.9 init程序 85 5.10 配置用戶賬號 86 5.11 啟動守護進程 87 5.12 管理設備節點的更好方法 88 5.13 配置網絡 89 5.14 借助設備表創建文件系統映像 90 5.15 使用NFS掛載根文件系統 92 5.16 使用TFTP加載內核 94 5.17 延伸閱讀 95 5.18 總結 95 第6章 選擇構建系統 96 6.1 不再手動創建嵌入式Linux 96 6.2 構建系統 96 6.3 包格式和包管理器 98 6.4 Buildroot 98 6.5 Yocto項目 104 6.6 延伸閱讀 116 6.7 總結 116 第7章 創建存儲策略 117 7.1 存儲器選擇 117 7.2 從引導加載程序訪問閃存 121 7.3 從Linux中訪問閃存 122 7.4 閃存文件系統 127 7.5 NOR和NAND閃存的文件系統 128 7.6 托管閃存的文件系統 134 7.7 只讀壓縮文件系統 138 7.8 臨時文件系統 138 7.9 使根文件系統為只讀 139 7.10 文件系統選擇 140 7.11 現場更新 140 7.12 延伸閱讀 142 7.13 總結 143 第8章 設備驅動程序介紹 144 8.1 設備驅動程序的作用 144 8.2 字符設備 145 8.3 塊設備 147 8.4 網絡設備 147 8.5 在運行時尋找驅動程序 149 8.6 找到正確的設備驅動程序 153 8.7 用戶空間中的設備驅動程序 153 8.8 編寫內核設備驅動程序 158 8.9 加載內核模塊 163 8.10 查找硬件配置 163 8.11 延伸閱讀 166 8.12 總結 167 第9章 啟動初始化程序 168 9.1 在內核啟動后 168 9.2 初始化程序簡介 169 9.3 BusyBox init 169 9.4 System V init 171 9.5 systemd 176 9.6 延伸閱讀 181 9.7 總結 181 第10章 學習進程和線程 182 10.1 進程還是線程 182 10.2 進程 183 10.3 線程 191 10.4 調度 196 10.5 延伸閱讀 200 10.6 總結 200 第11章 內存管理 201 11.1 虛擬內存基礎 201 11.2 內核空間內存布局 202 11.3 用戶空間內存布局 205 11.4 進程內存映射 206 11.5 交換 207 11.6 用mmap映射內存 208 11.7 我的應用程序使用了多少內存 209 11.8 每個進程的內存使用情況 210 11.9 識別內存泄漏 213 11.10 內存耗盡 215 11.11 延伸閱讀 217 11.12 總結 217 第12章 使用GDB調試 218 12.1 GNU調試器:GDB 218 12.2 準備調試 218 12.3 使用GDB調試應用程序 219 12.4 使用gdbserver遠程調試 219 12.5 開始調試 221 12.6 調試共享庫 224 12.7 即時調試 225 12.8 調試分叉和線程 226 12.9 核心文件 226 12.10 GDB用戶界面 228 12.11 調試內核代碼 230 12.12 延伸閱讀 237 12.13 總結 237 第13章 剖析和跟蹤 238 13.1 觀察者效應 238 13.2 開始剖析 239 13.3 使用top進行剖析 240 13.4 介紹perf 241 13.5 其他剖析器:OProf?ile和gprof 245 13.6 跟蹤事件 247 13.7 介紹Ftrace 247 13.8 使用LTTng 252 13.9 使用Valgrind剖析應用程序 256 13.10 Callgrind 256 13.11 Helgrind 256 13.12 使用strace顯示系統調用 257 13.13 總結 259 第14章 實時編程 260 14.1 什么是實時性 260 14.2 確認非確定性的來源 262 14.3 理解調度延遲 263 14.4 內核搶占 263 14.5 實時Linux內核(PREEMPT_RT) 264 14.6 線程化中斷處理程序 264 14.7 可搶占的內核鎖 266 14.8 獲得PREEMPT_RT補丁 266 14.9 高精度定時器 267 14.10 在實時應用中避免頁面錯誤 268 14.11 中斷屏蔽 269 14.12 測量調度延遲 269 14.13 延伸閱讀 273 14.14 總結 273 |
序: |
|