總金額: 會員:NT$ 0 非會員:NT$ 0 
(此金額尚未加上運費)
電子電信技術 電腦技術 計算技術、計算機技術
 
 
 
 
精通Linux內核:智能設備開發核心技術(配件另行下載)
 叢書名稱: Linux技術與應用叢書
 作  者: 姜亞華
 出版單位: 機械工業
 出版日期: 2020.01
 進貨日期: 2020/2/4
 ISBN: 9787111639602
 開  本: 16 開    
 定  價: 968
 售  價: 516
  會 員 價: 516

目前無補書計畫

推到Facebook 推到Plurk 推到Twitter
前往新書區 書籍介紹 購物流程  
 
編輯推薦:

經驗:作者曾就職於華為/Intel/AMD,多位x86專家擔當顧問
實用:內核重點、工作疑惑、常見陷阱、關鍵數據結構全收錄
深入:作者閱讀代碼量數百萬行,透視模塊間關聯和背後邏輯
動手:配有大量實例,複雜機制均以圖表形式幫讀者釐清脈絡


內容簡介:

精通Linux內核:智能設備開發核心技術共五篇,以從易到難的順序詳細剖析了Linux內核開發的核心技術。“知識儲備篇”介紹了Linux的數據結構、中斷處理、內核同步和時間計算等內容,這些是理解後續章節的前提。之後通過“內存管理篇”“文件系統篇”“進程管理篇”詳細介紹了Linux的三大核心模塊。最後的“升華篇”則融合了前面諸多模塊展示了Linux內核開發在操作系統、智能設備、驅動、通信、芯片以及人工智能等熱點領域的應用。書中的重點、難點均配以圖表、代碼和實戰案例進行展示,有助於提高讀者的動手操作能力。

精通Linux內核:智能設備開發核心技術的讀者需要熟悉C語言,對Linux內核有一定了解。推薦初學者按照本書的編排順序閱讀,而熟悉Linux內核的讀者可以跳過第壹篇,直接從三大核心模塊篇進行閱讀。本書可作為Linux初中級讀者系統學習Linux內核開發的指導手冊,也可作為從事嵌入式、操作系統、Linux編程、驅動/內核開發,以及智能設備開發等工作工程師的案頭指南和進階工具書。


作者簡介:

姜亞華
曾負責華為手機的Touch、Sensor的驅動和軟件優化(包括Mate、榮耀等系列),以及Intel安卓平台Camera和Sensor的驅動開發(包括Baytrail、Cherrytrail、Cherrytrail CR、Sofia等);現負責DMA、Interrupt、Semaphore等模塊的優化和驗證(包括Vega、Navi系列和多款APU產品。)。

一直從事與Linux內核和Linux編程相關的工作,研究內核代碼十多年,對多數模塊的細節如數家珍。熟悉Linux程序,對Linux常見機制的使用理解透徹。曾在華為終端軟件精英賽中獲獎,三次獲得AMD Spotlight獎勵。


圖書目錄:

序一
序二
前言
知識儲備篇

第1章 基於Linux內核的操作系統
1.1 處理器、平台和操作系統
1.2 以安卓為例剖析操作系統
1.2.1 安卓的整體架構
1.2.2 Linux內核的核心作用
1.3 內核整體架構
1.3.1 內核代碼的目錄結構
1.3.2 內核的核心模塊及關聯
1.4 實例分析
1.4.1 系統響應“點擊智能手機
觸摸屏”的過程
1.4.2 智能手機的傳感器遊戲
第2章 數據結構的使用
2.1 關係型數據結構
2.1.1 一對一關係
2.1.2 一對多關係
2.1.3 多對多關係
2.2 位操作數據結構
2.3 模塊和內核參數傳遞
2.3.1 內嵌通用數據結構
2.3.2 通用結構的私有變量
2.4 實例分析
2.4.1 模塊的封裝
2.4.2 火眼金睛:看破數據結構
第3章 時間的衡量和計算
3.1 數據結構
3.2 時鐘芯片
3.3 從內核的角度看時間
3.4 週期性和單觸發的時鐘中斷
3.5 時間相關的系統調用
3.5.1 獲取時間
3.5.2 給程序定個鬧鐘
3.6 實例分析
3.6.1 實現智能手機的長按操作
3.6.2 系統的時間並不如你所想
第4章 中斷和中斷處理
4.1 處理器識別中斷
4.2 處理中斷
4.2.1 中斷處理程序
4.2.2 中斷服務例程
4.2.3 中斷處理
4.3 中斷返回
4.4 系統調用
4.5 軟中斷
4.5.1 原理
4.5.2 小任務tasklet
4.5.3 定時器
4.6 實例分析
4.6.1 使用中斷向無人駕駛系統報告
緊急事件
4.6.2 使用watchdog預防無人機墜落
第5章 內核同步
5.1 臨界區的競爭
5.2 同步原語
5.2.1 每CPU變量
5.2.2 volatile關鍵字
5.2.3 屏障
5.2.4 atomic變量
5.2.5 禁中斷
5.2.6 禁搶占
5.2.7 自旋鎖
5.2.8 讀寫鎖
5.2.9 順序鎖
5.2.10 信號量
5.2.11 互斥鎖
5.2.12 讀-拷貝-更新
5.3 實例分析
5.3.1 無人駕駛模式與人工駕駛模式的
切換
5.3.2 智能手機觸摸屏的report和
suspend
第6章 事件的同步與異步
6.1 事件的異步
6.2 事件的同步
6.2.1 等待一段時間
6.2.2 等待事件完成
6.3 實例分析
6.3.1 使用工作隊列輪詢無人車環境
感知數據
6.3.2 使用等待隊列等待芯片
“回覆”

內存管理篇

第7章 內存尋址
7.1 處理器眼中的內存
7.2 內存分頁
7.2.1 尋址:處理器的尋寶遊戲
7.2.2 內存映射
7.3 實例分析
7.3.1 訪問GPU的幀緩衝
7.3.2 MMIO的映射
第8章 物理內存的管理
8.1 物理內存的組織形式
8.2 啟動程序
8.3 memblock分配器
8.4 夥伴系統
8.4.1 數據結構
8.4.2 頁的申請和釋放
8.5 實例分析
8.5.1 構造一個內存管理系統
8.5.2 安卓的ION
第9章 內存線性空間布局
9.1 線性空間劃分
9.2 內核線性空間布局
9.2.1 直接映射區
9.2.2 動態映射區
9.2.3 永久映射區
9.2.4 固定映射區
9.3 mmap機制
9.3.1 函數原型
9.3.2 數據結構
9.3.3 mmap的實現
9.3.4 內存映射的總結
9.4 內存申請
9.4.1 得到物理內存
9.4.2 得到虛擬內存
9.5 實例分析
9.5.1 通過dev映射內存
9.5.2 幾種不同的mmap映射方式
第10章 內存管理進階
10.1 處理器的緩存
10.1.1 TLB緩存
10.1.2 內存緩存
10.2 缺頁異常
10.2.1 處理缺頁異常
10.2.2 COW的精髓
10.3 實例分析
10.3.1 利用Cache的特性優化深度
學習開發
10.3.2 內核為molloc做了什麼

文件系統篇

第11章 文件系統
11.1 概念和數據結構
11.2 文件系統的掛載
11.3 查找文件
11.4 文件操作
11.4.1 創建和刪除目錄
11.4.2 打開和關閉文件
11.4.3 文件的鏈接
11.4.4 創建節點
11.4.5 刪除文件
11.5 文件的IO
11.5.1 fcntl函數
11.5.2 文件的讀寫
11.5.3 ioctl函數
11.6 實例分析
11.6.1 包羅萬象的proc文件系統
11.6.2 陌生又熟悉的devtmpfs
文件系統
第12章 sysfs文件系統
12.1 基本框架
12.2 數據結構
12.3 創建文件
12.4 文件的IO
12.5 實例分析
12.5.1 利用sysfs協助驅動調試
12.5.2 智能家居:自動調整燈光的
亮度和色溫
第13章 ext4文件系統
13.1 概述
13.2 數據結構
13.2.1 ext4_super_block結構體
13.2.2 ext4_group_desc結構體
13.2.3 ext4_inode結構體
13.2.4 ext4_sb_info結構體
13.2.5 ext4_inode_info結構體
13.3 ext4的掛載
13.4 目錄的結構
13.4.1 線性目錄
13.4.2 哈希樹目錄
13.4.3 硬鏈接
13.5 文件的IO
13.5.1 映射
13.5.2 區段樹
13.6 實例分析
13.6.1 恢復刪除的文件並不神秘
13.6.2 文件系統的修復

進程管理篇

第14章 進程
14.1 概述
14.1.1 數據結構
14.1.2 擴展討論
14.2 進程的創建
14.2.1 dup_task_struct函數
14.2.2 複製creds
14.2.3 設置時間
14.2.4 sched_fork函數
14.2.5 複製資源
14.2.6 申請pid
14.2.7 重要的雜項
14.3 創建進程
14.3.1 fork/vfork系統調用
14.3.2 創建線程
14.3.3 創建內核線程
14.4 進程“三巨頭”
14.5 進程退出
14.5.1 退出方式
14.5.2 退出過程
14.5.3 使用wait等待子進程
14.6 實例分析
14.6.1


章節試讀:

2013年11月,我加入Intel,開始創作本書,最初決定在3.10版本的內核基礎上寫作,轉眼間多年已逝,內核版本已經更新到5.x,本書也隨之更新至5.05版本。少數討論也涉及3.10版本的內容,保留它們主要是希望可以讓讀者看到內核的更新和優化思路。建議讀者在閱讀本書時,可以下載3.10和5.05兩個版本的內核代碼作為參考。
內容
本書分為以下五個部分。
知識儲備篇:包括常見的數據結構、時間、中斷處理和內核同步等內容,是後面幾部分內容的學習基礎,希望讀者能夠從中了解內核的概況,在後續章節中見到相關知識時不會感覺陌生。尤其是2.1關係型數據結構一節,它是理解其他章節數據結構間關係的基礎。
內存管理篇:包括內存尋址、物理內存和線性內存空間的管理以及缺頁異常等內容。希望讀者能夠從中學習到內存映射的原理,理解管理內存的過程,在調用內核提供的函數時能夠明白內核為用戶做了哪些操作。
文件系統篇:包括VFS的流程,sysfs、proc和devtmpfs文件系統的實現,ext4文件系統的解析。希望讀者能夠掌握文件系統的流程、文件操作的實現、sysfs等文件系統的特點以及ext4文件系統的原理。尤其是ext4文件系統,本書列舉了大量的實操案例,希望讀者可以理解它的精髓。
進程管理篇:包括進程原理、進程調度、信號處理、進程通信和程序執行等內容,希望讀者能夠掌握進程間的關係、進程調度的過程、進程通信的原理、信號的處理過程等。理解進程的創建過程尤為重要,它涵蓋了進程實現的原理。
升華篇:包括I/O多路復用、input子系統、V4L2架構、Linux設備驅動模型、Binder通信和驅動的實現等內容。升華篇綜合了前幾部分的知識,希望讀者可以掌握它們的原理,使用起來得心應手。
從難易程度來講,這五部分內容是由淺入深的。本書僅羅列了關鍵或者複雜的代碼,從它們包含的代碼就可以得知難易程度。知識儲備篇偏向工具和基礎知識,以原理分析為主。內存管理、文件系統和進程管理篇是重心,代碼量最大,這些代碼一方面可以幫助讀者理清整體的軟件架構,另一方面方便讀者在學習的時候不會因為手頭沒有代碼而感到無從下手,最重要的是代碼才是結論背後的真相,直接給出結論讓技術變成了死記硬背的工具豈不無趣。
致謝
感謝我的研究生導師蘆鵬宇,蘆老師待人平和耐心,工作一絲不苟,幫助我在校時就樹立了正確的做人和做事的方向。蘆老師對技術不懈追求的態度,在我畢業時就已經深深烙在心裡,並且始終影響著我。感謝蘆老師,感謝“規格嚴格,功夫到家”的哈爾濱工業大學。這八字校訓一直激勵著我,無數個像蘆老師一樣的園丁用行動將它們教給我們這些學生。
感謝華為的陳棟,很幸運在我第一份工作中可以遇到一個對技術有信仰的前輩,他對技術不懈追求的態度讓我在第一份工作中養成了良好的習慣。
感謝Intel的劉駿、徐傑、黃衛強、王龍和Foster,劉駿將我招入Intel,更開闊了我的視野,改變了我的人生軌跡。我曾經問他,他希望我在有餘力的情況下學習些什麼知識,他的回答是只要是學習,就會有幫助,無論什麼。徐傑在我的工作中,對我信任有加,處處委以重任,讓我在很短的時間內快速成長。
黃衛強和王龍是我在Intel的師傅(Buddy),在工作和生活中給了我很多建議,至今受用。Foster是BIOS和x86專家,幫助我快速地熟悉x86的原理。
感謝AMD的Winston、Gavin和Jennifer,讓我在AMD學習到了很多芯片相關的知識,完成了本書的最後一環。Jennifer交給我具有挑戰性的工作,讓我在新的角色中快速成長。


圖片預覽:

 
  步驟一.
依據網路上的圖書,挑選你所需要的書籍,根據以下步驟進行訂購
選擇產品及數量 結 帳 輸入基本資料 取貨與付款方式
┌───────────────────────────────────────────────────┘
資料確定 確認結帳 訂單編號    

步驟二.
完成付款的程序後,若採用貨到付款等宅配方式,3~7天內 ( 例假日將延期一至兩天 ) 您即可收到圖書。若至分店門市取貨,一週內聯絡取書。

步驟三.
完成購書程序者,可利用 訂單查詢 得知訂單進度。

注意事項.
● 付款方式若為網路刷卡必須等" 2 ~ 3 個工作天"確認款項已收到,才會出貨.如有更改書籍數量請記得按更新購物車,謝謝。

● 大陸出版品封面老舊、磨痕、凹痕等均屬常態,除封面破損、內頁脫落...等較嚴重的狀態外,其餘所有商品將正常出貨。

● 至2018年起,因中國大陸環保政策,部分書籍配件以QR CODE取代光盤音頻mp3或dvd,已無提供實體光盤。如需使用學習配件,請掃描QR CODE 連結至當地網站註冊並通過驗證程序,方可下載使用。造成不便,敬請見諒。

● 我們將保留所有商品出貨權利,如遇缺書情形,訂單未達免運門檻運費需自行負擔。

預訂海外庫存.
商品到貨時間須4週,訂單書籍備齊後方能出貨,如果您有急用書籍,建議與【預訂海外庫存】商品分開訂購。