《深度探索linux操作係統:係統構建和原理解析》
前 言
第1章 準備基本環境 1
1.1 安裝virtualbox 1
1.2 創建虛擬計算機 2
1.3 安裝linux係統 2
1.4 使用root用戶 5
1.5 啓用自動登錄 5
1.6 掛載實驗分區 6
1.7 安裝ssh服務器 6
1.8 更改網絡模式 7
1.9 安裝增強模式 8
1.10 使用xephyr 8
第2章 工具鏈 10
2.1 編譯過程 10
2.1.1 預編譯 12
2.1.2 編譯 14
2.1.3 匯編 17
2.1.4 鏈接 31
2.2 構建工具鏈 39
.2.2.1 gnu工具鏈組成 40
2.2.2 構建工具鏈的過程 40
2.2.3 準備工作 43
2.2.4 構建二進製工具 45
2.2.5 編譯freestanding的交叉編譯器 46
2.2.6 安裝內核頭文件 49
2.2.7 編譯目標係統的c庫 50
2.2.8 構建完整的交叉編譯器 52
2.2.9 定義工具鏈相關的環境變量 54
2.2.10 封裝“交叉”pkg-config 54
2.2.11 關於使用libtool鏈接庫的討論 56
2.2.12 啓動代碼 57
第3章 構建內核 62
3.1 內核映像的組成 62
3.1.1 一級推進係統——setup.bin 63
3.1.2 二級推進係統——內核非壓縮部分 65
3.1.3 有效載荷——vmlinux 65
3.1.4 映像的格式 66
3.2 內核映像的構建過程 68
3.2.1 kbuild簡介 68
3.2.2 構建過程概述 71
3.2.3 vmlinux的構建過程 71
3.2.4 vmlinux.bin的構建過程 75
3.2.5 setup.bin的構建過程 80
3.2.6 bzimage的組閤過程 81
3.2.7 內核映像構建過程總結 82
3.3 配置內核 86
3.3.1 交叉編譯內核設置 86
3.3.2 基本內核配置 87
3.3.3 配置處理器 88
3.3.4 配置內核支持模塊 90
3.3.5 配置硬盤控製器驅動 91
3.3.6 配置文件係統 96
3.3.7 配置內核支持elf文件格式 97
3.4 構建基本根文件係統 99
3.4.1 根文件係統的基本目錄結構 99
3.4.2 安裝c庫 100
3.4.3 安裝shell 101
3.4.4 安裝根文件係統到目標係統 102
第4章 構建initramfs 104
4.1 為什麼需要initramfs 104
4.2 initramfs原理探討 105
4.2.1 掛載rootfs 106
4.2.2 解壓initramfs到rootfs 110
4.2.3 掛載並切換到真正的根目錄 116
4.3 配置內核支持initramfs 117
4.4 構建基本的initramfs 118
4.5 將硬盤驅動編譯為模塊 121
4.5.1 配置devtmpfs 121
4.5.2 將硬盤控製器驅動配置為模塊 126
4.6 自動加載硬盤控製器驅動 130
4.6.1 內核嚮用戶空間發送事件 131
4.6.2 udev加載驅動和建立設備節點 136
4.6.3 處理冷插拔設備 139
4.6.4 編譯安裝udev 141
4.6.5 配置內核支持netlink 142
4.6.6 配置內核支持inotify 143
4.6.7 安裝modules.alias.bin文件 144
4.6.8 啓動udevd和模擬熱插拔 146
4.7 掛載並切換到根文件係統 147
4.7.1 掛載根文件係統 147
4.7.2 切換到根文件係統 149
第5章 從內核空間到用戶空間 154
5.1 linux操作係統加載 154
5.1.1 grub映像構成 155
5.1.2 安裝grub 160
5.1.3 grub啓動過程 165
5.1.4 加載內核和initramfs 170
5.2 解壓內核 181
5.2.1 移動內核映像 182
5.2.2 解壓 186
5.2.3 重定位 187
5.3 內核初始化 190
5.3.1 初始化虛擬內存 190
5.3.2 初始化進程0 201
5.3.3 創建進程1 206
5.4 進程加載 209
5.4.1 加載可執行程序 211
5.4.2 進程的投入運行 223
5.4.3 按需載入指令和數據 234
5.4.4 加載動態鏈接器 243
5.4.5 加載動態庫 246
5.4.6 重定位動態庫 250
5.4.7 重定位可執行程序 268
5.4.8 重定位動態鏈接器 271
5.4.9 段relro 274
第6章 構建根文件係統 278
6.1 初始根文件係統 278
6.2 以讀寫模式重新掛載文件係統 280
6.3 配置內核支持網絡 282
6.3.1 配置內核支持tcp/ip協議 282
6.3.2 配置內核支持網卡 283
6.4 啓動udev 285
6.5 安裝網絡配置工具並配置網絡 285
6.6 安裝並配置ssh服務 287
6.7 安裝procps 291
6.8 安裝x窗口係統 291
6.8.1 安裝m4宏定義 292
6.8.2 安裝x協議和擴展 292
6.8.3 安裝x相關庫和工具 294
6.8.4 安裝x服務器 296
6.8.5 安裝gpu的2d驅動 297
6.8.6 安裝x的輸入設備驅動 297
6.8.7 運行x服務器 300
6.8.8 一個簡單的x程序 302
6.8.9 配置內核支持drm 303
6.9 安裝圖形庫 307
6.9.1 安裝glib和libffi 307
6.9.2 安裝atk 307
6.9.3 安裝libpng 308
6.9.4 安裝gdkpixbuf 308
6.9.5 安裝fontconfig 308
6.9.6 安裝cairo 311
6.9.7 安裝pango 311
6.9.8 安裝libxi 311
6.9.9 安裝gtk 312
6.9.10 安裝gtk圖形庫的善後工作 312
6.9.11 一個簡單的gtk程序 313
6.10 安裝字體 315
第7章 構建桌麵環境 317
7.1 窗口管理器 317
7.1.1 基本原理 318
7.1.2 創建編譯腳本 325
7.1.3 主要數據結構 328
7.1.4 初始化 331
7.1.5 為窗口“落戶” 334
7.1.6 構建窗口裝飾 337
7.1.7 繪製裝飾窗口 341
7.1.8 配置窗口 343
7.1.9 移動窗口 345
7.1.10 改變窗口大小 348
7.1.11 切換窗口 348
7.1.12 最大化/最小化/關閉窗口 351
7.1.13 管理已存在的窗口 354
7.2 任務條和桌麵 356
7.2.1 標識任務條的身份 357
7.2.2 更新任務條上的任務項 358
7.2.3 激活任務 359
7.2.4 高亮顯示當前活動任務 360
7.2.5 顯示桌麵 361
7.2.6 桌麵 362
第8章 linux圖形原理探討 364
8.1 渲染和顯示 364
8.1.1 渲染 365
8.1.2 顯示 365
8.2 顯存 366
8.2.1 動態顯存技術 367
8.2.2 buffer object 370
8.3 2d渲染 375
8.3.1 創建前緩衝 377
8.3.2 gpu渲染 381
8.3.3 cpu渲染 386
8.4 3d渲染 388
8.4.1 創建幀緩衝 390
8.4.2 渲染pipleline 399
8.4.3 交換前緩衝和後緩衝 414
8.5 wayland 421
· · · · · · (
收起)
評分
☆☆☆☆☆
囫圇吞棗的翻瞭一遍,還需要實際操作來加深印象。
評分
☆☆☆☆☆
動態的講解瞭Linux工作機製的書,作者語言也不錯,沒有那種舶來的生硬的英語式漢語的感覺。
評分
☆☆☆☆☆
LFS的現實注解........但是在齣版社的頁麵中找不到勘誤錶.............總的來說應是好書, 現在還在一步步來做呢
評分
☆☆☆☆☆
從加電到init啓動的講解尤為精彩。
評分
☆☆☆☆☆
本來是點錯瞭不小心買的書電子書,竟然撿到寶貝瞭。lfs cookbook 隻告訴你 how,這本書不但有 更詳細的 how 還有大篇幅的 why ,不打五星對不起作者啊
評分
☆☆☆☆☆
<<深度探索Linux操作系统>>是2013年才出版的新作. 该书刚出版不久我就入手了. 要说的话, 本人对技术书籍其实是蛮挑的, 一方面是因为我个人的书柜已经快放不下了, 另一方面作为一个在Linux系统环境下工作有了几年经验的 C 程序员, 懂得识别技术书籍的好坏. 所...
評分
☆☆☆☆☆
在我学习实践lfs的时候, 发现了这本书, 开始的时候以为和lfs没有太大区别, 无非是lfs的翻译与实践. 在我实践lfs的过程中, 发现无论是lfs还是clfs, 需要安装的工具链相关软件非常之多, 而且没有说明为什么一定要这么做. 之后我开始结合本书来重新审视lfs, 发现书里所写的lfs操...
評分
☆☆☆☆☆
<<深度探索Linux操作系统>>是2013年才出版的新作. 该书刚出版不久我就入手了. 要说的话, 本人对技术书籍其实是蛮挑的, 一方面是因为我个人的书柜已经快放不下了, 另一方面作为一个在Linux系统环境下工作有了几年经验的 C 程序员, 懂得识别技术书籍的好坏. 所...
評分
☆☆☆☆☆
《深度探索linux操作系统:系统构建和原理解析》是探索linux操作系统原理的里程碑之作,在众多的同类书中独树一帜。它颠覆和摒弃了传统的从阅读linux内核源代码着手学习linux操作系统原理的方式,而是基于实践,以从零开始构建一个完整的linux操作系统的过程为依托,指引读者在...
評分
☆☆☆☆☆
<<深度探索Linux操作系统>>是2013年才出版的新作. 该书刚出版不久我就入手了. 要说的话, 本人对技术书籍其实是蛮挑的, 一方面是因为我个人的书柜已经快放不下了, 另一方面作为一个在Linux系统环境下工作有了几年经验的 C 程序员, 懂得识别技术书籍的好坏. 所...