深度探索Linux操作系统

深度探索Linux操作系统

作者:王柏生

出版社:机械工业

出版年:2013年10月

ISBN:9787111439011

所属分类:成功励志

书刊介绍

《深度探索Linux操作系统》内容简介

《深度探索linux操作系统:系统构建和原理解析》是探索linux操作系统原理的里程碑之作,在众多的同类书中独树一帜。它颠覆和摒弃了传统的从阅读linux内核源代码着手学习linux操作系统原理的方式,而是基于实践,以从零开始构建一个完整的linux操作系统的过程为依托,指引读者在实践中去探索操作系统的本质。这种方式的妙处在于,让读者先从宏观上全面认清一个完整的操作系统中都包含哪些组件,各个组件的作用,以及各个组件间的关系,从微观上深入理解系统各个组件的原理,帮助读者达到事半功倍的学习效果,这是作者潜心研究linux操作系统10几年的心得和经验,能避免后来者在学习中再走弯路。此外,本书还对编译链接技术(尤其是动态加载和链接技术)和图形系统进行了原理性的探讨,这部分内容非常珍贵。
全书一共8章:第1章介绍了如何准备工作环境。在第2章中构建了编译工具链,这是后面构建操作系统各个组件的基础。在这一章中,不仅详细讲解了工具链的构建过程,而且还通过对编译链接过程的探讨,深入讨论了工具链的组成及各个组件的作用,理解工具链的工作原理对理解操作系统至关重要。第3~4章,从零开始构建了一个具备用户字符界面的最小操作系统,详细讲解了构建的过程以及涉及的技术细节。第5章从理论的角度探讨了这一过程,从内核的加载、解压一直讨论到用户进程的加载,包括用户空间的动态链接器为加载程序所作的努力。第6~7章首先构建了操作系统的基础图形系统,然后在此基础上构建了桌面环境。第8章深入探讨了计算机图形的基础原理,包含2d和3d程序的渲染、软件渲染、硬件渲染等内容,同时也从操作系统的角度审视了pipeline。
王柏生,资深Linux技术专家,精通Linux操作系统,对Linux操作系统进行了超过10年的研究。10多年来,先后参与并带领团队开发Linux发行版、移动操作系统和车载操作系统。不仅深刻领悟了Linux操作系统的原理和本质,而且对学习Linux操作系统原理的方式和方法也有独到的认识和见解。

作品目录

深度探索Linux操作系统


第1章:准备基本环境
1.1、安装VirtualBox
1.2、创建虚拟计算机
1.3、安装Linux系统
1.4、使用root用户
1.5、启用自动登录
1.6、挂载实验分区
1.7、安装ssh服务器
1.8、更改网络模式
1.9、安装增强模式
1.10、使用Xephyr
第2章:工


2.1、编译过程
2.1.1、预编译
2.1.2、编译
2.1.3、汇编
2.1.4、链接
2.2、构建工具链
2.2.1、GNU工具链组成
2.2.2、构建工具链的过程
2.2.3、准备工作
2.2.4、构建二进制工具
2.2.5、编译freestanding的交叉编译器
2.2.6、安装内核头文件
2.2.7、编译目标系统的C库
2.2.8、构建完整的交叉编译器
2.2.9、定义工具链相关的环境变量
2.2.10、封装“交叉”pkg-config
2.2.11、关于使用libtool链接库的讨论
2.2.12、启动代码
第3章:构建内核
3.1、内核映像的组成
3.1.1、一级推进系统——setup.bin
3.1.2、二级推进系统——内核非压缩部分
3.1.3、有效载荷——vmlinux
3.1.4、映像的格式
3.2、内核映像的构建过程
3.2.1、kbuild简介
3.2.2、构建过程概述
3.2.3、vmlinux的构建过程
3.2.4、vmlinux.bin的构建过程
3.2.5、setup.bin的构建过程
3.2.6、bzImage的组合过程
3.2.7、内核映像构建过程总结
3.3、配置内核
3.3.1、交叉编译内核设置
3.3.2、基本内核配置
3.3.3、配置处理器
3.3.4、配置内核支持模块
3.3.5、配置硬盘控制器驱动
3.3.6、配置文件系统
3.3.7、配置内核支持ELF文件格式
3.4、构建基本根文件系统
3.4.1、根文件系统的基本目录结构
3.4.2、安装C库
3.4.3、安装shell
3.4.4、安装根文件系统到目标系统
第4章:构建initramfs
4.1、为什么需要initramfs
4.2、initramfs原理探讨
4.2.1、挂载rootfs
4.2.2、解压initramfs到rootfs
4.2.3、挂载并切换到真正的根目录
4.3、配置内核支持initramfs
4.4、构建基本的initramfs
4.5、将硬盘驱动编译为模块
4.5.1、配置devtmpfs
4.5.2、将硬盘控制器驱动配置为模块
4.6、自动加载硬盘控制器驱动
4.6.1、内核向用户空间发送事件
4.6.2、udev加载驱动和建立设备节点
4.6.3、处理冷插拔设备
4.6.4、编译安装udev
4.6.5、配置内核支持NETLINK
4.6.6、配置内核支持inotify
4.6.7、安装modules.alias.bin文件
4.6.8、启动udevd和模拟热插拔
4.7、挂载并切换到根文件系统
4.7.1、挂载根文件系统
4.7.2、切换到根文件系统
第5章:从内核空间到用户空间
5.1、Linux操作系统加载
5.1.1、GRUB映像构成
5.1.2、安装GRUB
5.1.3、GRUB启动过程
5.1.4、加载内核和initramfs
5.2、解压内核
5.2.1、移动内核映像
5.2.2、解压
5.2.3、重定位
5.3、内核初始化
5.3.1、初始化虚拟内存
5.3.2、初始化进程0、5.3.3、创建进程1、5.4、进程加载
5.4.1、加载可执行程序
5.4.2、进程的投入运行
5.4.3、按需载入指令和数据
5.4.4、加载动态链接器
5.4.5、加载动态库
5.4.6、重定位动态库
5.4.7、重定位可执行程序
5.4.8、重定位动态链接器
5.4.9、段RELRO
第6章:构建根文件系统
6.1、初始根文件系统
6.2、以读写模式重新挂载文件系统
6.3、配置内核支持网络
6.3.1、配置内核支持TCP/IP协议
6.3.2、配置内核支持网卡
6.4、启动udev
6.5、安装网络配置工具并配置网络
6.6、安装并配置ssh服务
6.7、安装procps
6.8、安装X窗口系统
6.8.1、安装M4宏定义
6.8.2、安装X协议和扩展
6.8.3、安装X相关库和工具
6.8.4、安装X服务器
6.8.5、安装GPU的2D驱动
6.8.6、安装X的输入设备驱动
6.8.7、运行X服务器
6.8.8、一个简单的X程序
6.8.9、配置内核支持DRM
6.9、安装图形库
6.9.1、安装GLib和libffi
6.9.2、安装ATK
6.9.3、安装libpng
6.9.4、安装GdkPixbuf
6.9.5、安装Fontconfig
6.9.6、安装Cairo
6.9.7、安装Pango
6.9.8、安装libXi
6.9.9、安装GTK
6.9.10、安装GTK图形库的善后工作
6.9.11、一个简单的GTK程序
6.10、安装字体
第7章:构建桌面环境
7.1、窗口管理器
7.1.1、基本原理
7.1.2、创建编译脚本
7.1.3、主要数据结构
7.1.4、初始化
7.1.5、为窗口“落户”
7.1.6、构建窗口装饰
7.1.7、绘制装饰窗口
7.1.8、配置窗口
7.1.9、移动窗口
7.1.10、改变窗口大小
7.1.11、切换窗口
7.1.12、最大化/最小化/关闭窗口
7.1.13、管理已存在的窗口
7.2、任务条和桌面
7.2.1、标识任务条的身份
7.2.2、更新任务条上的任务项
7.2.3、激活任务
7.2.4、高亮显示当前活动任务
7.2.5、显示桌面
7.2.6、桌面
第8章:Linux图形原理探讨
8.1、渲染和显示
8.1.1、渲染
8.1.2、显示
8.2、显存
8.2.1、动态显存技术
8.2.2、Buffer
Object
8.3、2D渲染
8.3.1、创建前缓冲
8.3.2、GPU渲染
8.3.3、CPU渲染
8.4、3D渲染
8.4.1、创建帧缓冲
8.4.2、渲染Pipleline
8.4.3、交换前缓冲和后缓冲
8.5、Wayland

相关推荐

微信二维码