评分
☆☆☆☆☆
讲得比较详细和实用,不过对于完全的新人来说,想要按照里面的过程来做还是有些难度的。
评分
☆☆☆☆☆
去年最大的成果就是坚持把这本书看完了,使用作者推荐的环境实验了一遍,又使用主流的内核版本和 GNU 套件实践了一遍,花了很多时间爬坑。 不过,收获也颇丰。至此,基本上对如何制作一套完善的 GNU/Linux 系统有了清晰的认识,后面关于图形系统的章节更是bonus,虽然很多人不以为然。 最后,感谢作者,事非亲历不知难,再难也怕功夫深。
评分
☆☆☆☆☆
前面写的还可以,最后面几章居然是讲图形界面.
评分
☆☆☆☆☆
讲怎么实现操作系统的,怎么搭建环境 怎么构建
评分
☆☆☆☆☆
如何从0开始编译, 安装并运行一个linux, 正是我需要的. linux kernel 的编译过程涉及到对kernel的调试, 所以做一次lfs非常重要; 浏览了一遍, 构建过程, 链接, 装载和库的内容, 源代码分析, 混合在一起了; 深度还是够的, 多看看, 总是有收获. 每次看的时候需要有所侧重, 可以重点关注交叉编译, 也可以重点关注linux的二进制文件elf格式, 也可以重点关注linux的动态链接器实现.
《深度探索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
· · · · · · (
收起)
评分
☆☆☆☆☆
把我发现及综合楼主的贴一下, 有一些不是错误, 只是由于我这边的硬件条件与书中不一致(如书中用了virtualbox,而我这边用kvm等,,其中不同硬件的驱动会与书中有不少出入,,,基本整书都翻过, 我照着书做到chapter6中的前面部分(也就是把SSHD搭完我就收手了, 毕竟后期折腾windowX与...
评分
☆☆☆☆☆
这本书是我能够坚持基本从头看到尾的一本书(构建桌面环境那章大致看了看,基本是跳过去的),所以随便罗嗦几句。 和深入理解Linux内核那类书比较,这本书理论高度没有那些书高。但是这本书的突出之处就是实践,相比只是通过理论学习,按照这本书操作,别有一番领悟。 看完后有...
评分
☆☆☆☆☆
作为资深linux的开发者或运维人员,必须完成过LFS,简单说就是从头DIY一个自己的linux系统。这书算是LFS的加强版。2010年曾经花了两周业余时间完成了LFS6.3,一周看手册,一周动手实践。一个个包编译配置的系统最终成功跑起来,非常的考验耐心,一个小错误就可能导致失败。
评分
☆☆☆☆☆
把我发现及综合楼主的贴一下, 有一些不是错误, 只是由于我这边的硬件条件与书中不一致(如书中用了virtualbox,而我这边用kvm等,,其中不同硬件的驱动会与书中有不少出入,,,基本整书都翻过, 我照着书做到chapter6中的前面部分(也就是把SSHD搭完我就收手了, 毕竟后期折腾windowX与...
评分
☆☆☆☆☆
这本书是我能够坚持基本从头看到尾的一本书(构建桌面环境那章大致看了看,基本是跳过去的),所以随便罗嗦几句。 和深入理解Linux内核那类书比较,这本书理论高度没有那些书高。但是这本书的突出之处就是实践,相比只是通过理论学习,按照这本书操作,别有一番领悟。 看完后有...