買這商品的人也買了...
-
$948$901 -
$294$279 -
$648$616 -
$774$735 -
$1,599$1,439 -
$709奔跑吧 Linux 內核 (捲1):基礎架構, 2/e
-
$658奔跑吧 Linux 內核入門篇, 2/e
-
$602嵌入式 C語言自我修養 — 從芯片、編譯器到操作系統
-
$599$509 -
$587MATLAB 2020 信號處理從入門到精通
-
$880$695 -
$719$683 -
$599$509 -
$626實用編程語言理論基礎, 2/e (Practical Foundations for Programming Languages, 2/e )
-
$680$537 -
$1,074$1,020 -
$834$792 -
$780$616 -
$534$507 -
$980$647 -
$599$569 -
$600$450 -
$654$621 -
$800$600 -
$1,010深入理解 Linux 進程與內存:修煉底層內功,掌握高性能原理
相關主題
商品描述
全書共五篇,以從易到難的順序詳細剖析了Linux核心開發的核心技術。
「知識儲備篇」介紹了Linux的資料結構、中斷處理、核心同步和時間計算等內容,這些是理解後續章節的前提;
之後透過「記憶體管理篇」「檔案系統篇」「進程管理篇」詳細介紹了Linux的三大核心模組;
最後的「綜合應用篇」則融合了前面諸多模組知識展現了Linux核心開發在作業系統、
智慧型設備、驅動、通訊、晶片、雲端運算和人工智慧等熱點領域的應用。
書中的重點、困難均配有圖表、代碼和實戰案例,力求直觀、清晰。
學習本書的讀者需要熟悉C語言,最好對Linux核心有一定了解。
目錄大綱
序
前言
知識儲備篇
第1章Linux核心概述
1.1基於Linux的作業系統生態
1.2【圖解】Linux工程師技能與領域
1.3內核程式碼結構
1.4【看圖說話】Android作業系統
第2章資料結構與設計模式
2.1【圖解】關係型資料結構
2.1.1一對一關係
2.1.2一對多關係
2.1.3多對多關係
2.2【圖解】內核中常見的設計模式
2.2.1模板方法設計模式
2.2.2觀察者設計模式
2.3【看圖說話】input子系統第3章中斷
3.1【圖解】中斷處理的軟硬體分工
3.2中斷的處理
3.2.1註冊中斷服務例程
3.2.2中斷處理和返回
3.3軟中斷
3.3.1tasklet小任務
3.3.2timer定時器
3.4【看圖說話】系統呼叫與程式優化
第4章Linux的時間
4.1資料結構
4.2時間的衡量
4.2.1時脈晶片
4.2.2時間的計算
4.3【圖解】時鐘中斷
4.4【看圖說話】timer和hrtimer記憶體管理篇
第5章記憶體尋址
5.1DRAM和MMIO
5.2【圖解】內存分頁
5.2.1尋址
5.2.2記憶體映射
5.3【看圖說話】訪問GPU的
Framebuffer
第6章物理記憶體的管理
6.1【圖解】物理記憶體的佈局
6.1.1【圖解】node
6.1.2【圖解】node的管理
6.2物理記憶體申請的三個階段
6.2.1啟動程序
6.2.2memblock分配器
6.2.3夥伴系統
6.3【看圖說話】搭建管理實體記憶體的
系統
第7章虛擬記憶體的管理
7.1線性空間的劃分
7.2【圖解】內核線性空間佈局
7.2.1直接映射區
7.2.2動態映射區
7.2.3永久映射區
7.2.4固定映射區
7.3用戶空間記憶體映射mmap
7.3.1資料結構
7.3.2mmap的實現
7.4【看圖說話】/dev/mem的巧用和限制
第8章記憶體管理進階
8.1內存申請
8.1.1申請連續實體內存
8.1.2vmalloc的使用
8.2緩存
8.2.1TLB緩存
8.2.2記憶體緩存
8.3【圖解】缺頁異常
8.3.1異常的處理
8.3.2COW的精髓
8.4【看圖說話】看似簡單的malloc
第9章內存回收
9.1【圖解】記憶體回收呼叫棧
9.2掃描過程的控制
9.3選擇掃描對象
9.4掃描inactive鍊錶
9.4.1頁隔離
9.4.2folio的原理
9.4.3回收隔離頁
9.4.4掃尾
9.5掃描active鍊錶
9.6【看圖說話】反向映射
9.6.1匿名映射的mapping
9.6.2檔案映射的mapping檔案系統篇
第10章虛擬檔案系統
10.1資料結構
10.2【圖解】檔案系統的掛載
10.3文件查找
10.4文件操作
10.4.1軟鏈接和硬鏈接
10.4.2建立和刪除目錄
10.4.3開啟和關閉文件
10.4.4建立節點
10.4.5刪除文件
10.5文件的IO
10.5.1讀寫
10.5.2ioctl操作
10.6【看圖說話】proc檔案系統
第11章sysfs檔案系統
11.1基本框架
11.2資料結構
11.3建立文件
11.4文件的IO
11.5【看圖說話】sysfs和驅動
第12章ext4檔案系統
12.1【圖解】ext4版面
12.2資料結構
12.2.1ext4_super_block結構體
12.2.2ext4_group_desc結構體
12.2.3ext4_inode結構體
12.2.4ext4_sb_info結構體
12.2.5ext4_inode_info結構體
12.3ext4的掛載
12.4【圖解】ext4目錄結構
12.4.1線性目錄
12.4.2哈希樹目錄
12.4.3硬鏈接
12.5【圖解】ext4檔案的IO
12.5.1映射
12.5.2區段樹
12.6【看圖說話】檔案的恢復進程管理篇
第13章進程
13.1概述
13.1.1資料結構
13.1.2擴展討論
13.2進程的創建
13.2.1dup_task_struct函數
13.2.2複製creds
13.2.3設定時間
13.2.4sched_fork函數
13.2.5複製資源
13.2.6申請pid
13.2.7重要的雜項
13.3創建進程
13.3.1fork/vfork系統調用
13.3.2建立線程
13.3.3創建內核線程
13.4進程“三巨頭”
13.5進程退出
13.5.1退出方式
13.5.2退出過程
13.5.3使用wait等待子進程
13.6【看圖說話】Android的thread
目錄圖解Linux核心(基於6.x)第14章進程調度
14.1資料結構
14.2進程調度的過程
14.2.1進程被創建
14.2.2喚醒進程
14.2.3時鐘中斷
14.2.4進程切換
14.3stop調度類
14.4即時調度類
14.4.1優先級和搶佔
14.4.2task_tick_rt函數
14.4.3選擇下一個進程
14.5【圖解】完全公平調度類
14.5.1task_fork_fair函數
14.5.2enqueue_task和check_preempt
14.5.3task_tick_fair函數
14.5.4進程切換
14.6最後期限調度類
14.7idle調度類
14.8進程優先權
14.9【看圖說話】idle進程
第15章進程通信
15.1經典的管道
15.1.1建立pipe
15.1.2pipe的操作
15.1.3命名管道
15.2POSIX通信
15.2.1POSIX信號量
15.2.2POSIX共享內存
15.2.3POSIX訊息佇列
15.3XSI通信
15.3.1IPC物件的key和id
15.3.2XSI信號量
15.3.3XSI訊息佇列
15.3.4XSI共享內存
15.4【看圖說話】多執行緒與多進程
第16章信號
16.1資料結構
16.2捕捉訊號
16.3發送訊號
16.4【圖解】訊號處理的過程
16.4.1處理訊號的時機和方式
16.4.2處理訊號後如何返回
16.5【看圖說話】監控文件的IO綜合應用篇
第17章玩作業系統-程式的
執行
17.1【圖解】elf文件
17.1.1概述
17.1.2文件格式
17.2exec函數族
17.2.1資料結構
17.2.2系統調用
17.3【看圖說話】main函數的來龍去脈
第18章玩作業系統-IO多路
復用
18.1select機制
18.2poll機制
18.3【圖解】epoll
18.3.1資料結構
18.3.2epoll的使用
18.4【看圖說話】改良管道通信
第19章玩作業系統—