IT之家8月2日消息 龍芯中科官方表示,為了幫助國產(chǎn) CPU 平臺(tái)的內(nèi)核開發(fā)者更全面地了解學(xué)習(xí) Linux 內(nèi)核,基于龍芯平臺(tái)的內(nèi)核探索書籍——《用 “芯”探核 : 基于龍芯的 Linux 內(nèi)核探索解析》即將在 8 月上旬與讀者見面。
本書由陳華才博士與龍芯中科聯(lián)合打造,是一本信創(chuàng)領(lǐng)域的內(nèi)核探索解析類書籍。陳華才博士作為官方 Linux 內(nèi)核中龍芯代碼的主要貢獻(xiàn)者,長期從事龍芯內(nèi)核研究和實(shí)踐,現(xiàn)就職于江蘇航天龍夢信息技術(shù)有限公司。
IT之家獲悉,本書內(nèi)容主要分為以下幾個(gè)方面,內(nèi)核啟動(dòng)解析,異常與中斷解析,內(nèi)核管理解析,進(jìn)程管理解析,顯卡驅(qū)動(dòng)解析,網(wǎng)卡驅(qū)動(dòng)解析,電源管理解析。
【書籍面向人群】本書讀者人群定位于 Linux 系統(tǒng)相關(guān)的開發(fā)人員——特別是基于龍芯處理器做內(nèi)核開發(fā)的技術(shù)人員。
【書籍亮點(diǎn)】
作為第一本基于國產(chǎn) CPU 的內(nèi)核書籍,本書從龍芯 CPU 上運(yùn)行的內(nèi)核入手,基于最新的 5.x 內(nèi)核,深入淺出地分析了內(nèi)核的各個(gè)重要模塊,并在其中講解了大量關(guān)聯(lián)知識(shí)。書籍內(nèi)容緊密結(jié)合實(shí)戰(zhàn),貼合產(chǎn)業(yè)需求,兼顧模塊間關(guān)系的講解和代碼本質(zhì)的解析,并列舉了大量可讀性強(qiáng)的龍芯實(shí)現(xiàn)案例。
【全書章節(jié)】
第 01 章 基礎(chǔ)知識(shí)
1.1 龍芯處理器簡介 002
1.1.1 龍芯 3 號(hào)功能特征 004
1.1.2 龍芯 3 號(hào)處理器核 008
1.1.3 龍芯電腦基本結(jié)構(gòu) 015
1.2 Linux 內(nèi)核簡介 018
1.2.1 Linux 內(nèi)核發(fā)展簡史 019
1.2.2 Linux 內(nèi)核的開發(fā)模式 021
1.2.3 關(guān)于長期維護(hù)穩(wěn)定版本 025
1.2.4 龍芯的內(nèi)核版本選型 025
1.3 如何高效閱讀代碼 027
1.3.1 找準(zhǔn)入口點(diǎn) 028
1.3.2 理清主脈絡(luò) 029
1.3.3 顧名思義看功能 040
1.3.4 理解補(bǔ)丁文件 042
1.4 如何開發(fā)健壯內(nèi)核 045
1.4.1 內(nèi)核代碼風(fēng)格 046
1.4.2 合理生成補(bǔ)丁 048
1.4.3 謹(jǐn)慎對(duì)待創(chuàng)新 049
第 02 章 內(nèi)核啟動(dòng)解析
2.1 內(nèi)核源代碼目錄結(jié)構(gòu) 054
2.2 內(nèi)核啟動(dòng)過程 : 主核視角 055
2.2.1 第一入口 : kernel_entry 056
2.2.2 第二入口 : start_kernel() 063
2.2.3 重要函數(shù) : setup_arch() 070
2.2.4 重要函數(shù) : trap_init() 083
2.2.5 重要函數(shù) : init_IRQ() 087
2.2.6 重要函數(shù) : time_init() 092
2.2.7 1 號(hào)進(jìn)程 : kernel_init() 096
2.3 內(nèi)核啟動(dòng)過程 : 輔核視角 104
2.3.1 第一入口 : smp_bootstrap 105
2.3.2 第二入口 : start_secondary() 107
2.4 本章小結(jié) 110
第 03 章 異常與中斷解析
3.1 寄存器操作 113
3.2 異常處理解析 114
3.2.1 復(fù)位異常和 NMI 115
3.2.2 緩存錯(cuò)誤異常 116
3.2.3 TLB/XTLB 異常 117
3.2.4 其他通用異常 126
3.3 中斷處理解析 137
3.3.1 中斷處理的入口 137
3.3.2 中斷處理的分派 140
3.4 軟中斷、小任務(wù)與工作隊(duì)列 151
3.4.1 軟中斷 softirq 151
3.4.2 小任務(wù) tasklet 154
3.5 本章小結(jié) 159
第 04 章 內(nèi)存管理解析
4.1 內(nèi)存管理相關(guān)概念 161
4.1.1 龍芯 3 號(hào)的高速緩存 161
4.1.2 龍芯 3 號(hào)的 TLB 168
4.1.3 龍芯的虛擬地址空間 170
4.2 物理內(nèi)存頁幀管理 171
4.2.1 物理地址空間 177
4.2.2 伙伴系統(tǒng)算法 183
4.3 內(nèi)核內(nèi)存對(duì)象管理 201
4.3.1 數(shù)據(jù)結(jié)構(gòu)與 API 202
4.3.2 核心函數(shù)解析 209
4.4 分頁映射內(nèi)存管理 217
4.4.1 持久內(nèi)核映射 221
4.4.2 臨時(shí)內(nèi)核映射 226
4.4.3 非連續(xù)內(nèi)存管理 229
4.5 進(jìn)程地址空間管理 241
4.5.1 數(shù)據(jù)結(jié)構(gòu)與 API 241
4.5.2 內(nèi)存映射 250
4.5.3 堆區(qū)管理 257
4.5.4 缺頁異常處理 258
4.6 內(nèi)存管理其他話題 266
4.6.1 反向映射 267
4.6.2 內(nèi)存回收 271
4.6.3 巨頁機(jī)制 274
4.7 本章小結(jié) 275
第 05 章 進(jìn)程管理解析
5.1 進(jìn)程描述符 278
5.1.1 運(yùn)行狀態(tài)相關(guān) 285
5.1.2 標(biāo)識(shí)調(diào)度相關(guān) 289
5.1.3 其他重要部分 295
5.2 進(jìn)程創(chuàng)建 296
5.2.1 復(fù)制新進(jìn)程 296
5.2.2 執(zhí)行新程序 308
5.3 進(jìn)程銷毀 314
5.3.1 退出程序執(zhí)行 314
5.3.2 清理進(jìn)程資源 317
5.4 進(jìn)程調(diào)度 327
5.4.1 基本概念 328
5.4.2 發(fā)展歷史 330
5.4.3 公平調(diào)度策略 334
5.4.4 調(diào)度核心解析 347
5.4.5 進(jìn)程切換解析 360
5.5 其他話題 364
5.5.1 CPU 負(fù)載 364
5.5.2 調(diào)度域與調(diào)度組 370
5.5.3 NUMA 均衡調(diào)度 374
5.6 本章小結(jié) 380
第 06 章 顯卡驅(qū)動(dòng)解析
6.1 顯卡概述 382
6.1.1 發(fā)展簡史及有關(guān)概念 382
6.1.2 現(xiàn)代顯卡的硬件結(jié)構(gòu) 385
6.2 Linux 圖形系統(tǒng)架構(gòu) 388
6.2.1 X-Window 和 Wayland 388
6.2.2 直接渲染、間接渲染和顯卡驅(qū)動(dòng) 391
6.3 Linux 內(nèi)核顯卡驅(qū)動(dòng) 392
6.3.1 寄存器讀寫 393
6.3.2 常用數(shù)據(jù)結(jié)構(gòu) 394
6.3.3 顯卡初始化 411
6.3.4 命令流處理 435
6.3.5 存儲(chǔ)區(qū)域間數(shù)據(jù)交換 439
6.3.6 GPU 重置 (Reset) 443
6.4 本章小結(jié) 446
第 07 章 網(wǎng)卡驅(qū)動(dòng)解析
7.1 網(wǎng)絡(luò)子系統(tǒng)概述 448
7.2 Linux 以太網(wǎng)卡驅(qū)動(dòng) 449
7.2.1 常用數(shù)據(jù)結(jié)構(gòu) 449
7.2.2 網(wǎng)卡初始化 452
7.2.3 網(wǎng)卡的開與關(guān) 456
7.2.4 數(shù)據(jù)發(fā)送與接收 457
7.2.5 故障檢測與修復(fù) (看門狗) 466
7.3 本章小結(jié) 468
第 08 章 電源管理解析
8.1 電源管理概述 470
8.2 運(yùn)行時(shí)電源管理 473
8.2.1 動(dòng)態(tài)變頻 474
8.2.2 自動(dòng)調(diào)核 488
8.3 系統(tǒng)級(jí)睡眠管理 507
8.3.1 睡眠到內(nèi)存 (待機(jī)) 509
8.3.2 睡眠到磁盤 (休眠) 520
8.4 本章小結(jié) 527
附錄 A 并發(fā)與同步原語
A.1 內(nèi)存屏障 529
A.2 每 CPU 變量 533
A.3 原子操作 535
A.4 開關(guān)搶占 539
A.5 自旋鎖 540
A.6 順序鎖 544
A.7 信號(hào)量 546
A.8 互斥量 548
A.9 RCU 機(jī)制 549
A.10 其他原語 556
附錄 B Linux 內(nèi)核大事記
B.1 史前時(shí)代 560
B.2 奇偶時(shí)代 560
B.3 快速演進(jìn)時(shí)代 562
B.4 極速演進(jìn)時(shí)代 564
后記
參考文獻(xiàn)
廣告聲明:文內(nèi)含有的對(duì)外跳轉(zhuǎn)鏈接(包括不限于超鏈接、二維碼、口令等形式),用于傳遞更多信息,節(jié)省甄選時(shí)間,結(jié)果僅供參考,IT之家所有文章均包含本聲明。