深度探索Linux操作系统:系统构建和原理解析

深度探索Linux操作系统:系统构建和原理解析
分享
扫描下方二维码分享到微信
打开微信,点击右上角”+“,
使用”扫一扫“即可将网页分享到朋友圈。
作者:
2013-09
版次: 1
ISBN: 9787111439011
定价: 89.00
装帧: 平装
开本: 16开
纸张: 胶版纸
页数: 436页
正文语种: 简体中文
原版书名: 深度探索Linux操作系统
117人买过
  •   《深度探索Linux操作系统:系统构建和原理解析》是探索Linux操作系统原理的里程碑之作,在众多的同类书中独树一帜。它颠覆和摒弃了传统的从阅读Linux内核源代码着手学习Linux操作系统原理的方式,而是基于实践,以从零开始构建一个完整的Linux操作系统的过程为依托,指引读者在实践中去探索操作系统的本质。这种方式的妙处在于,让读者先从宏观上全面认清一个完整的操作系统中都包含哪些组件,各个组件的作用,以及各个组件间的关系,从微观上深入理解系统各个组件的原理,帮助读者达到事半功倍的学习效果,这是作者潜心研究Linux操作系统10几年的心得和经验,能避免后来者在学习中再走弯路。此外,本书还对编译链接技术(尤其是动态加载和链接技术)和图形系统进行了原理性的探讨,这部分内容非常珍贵。
      《深度探索Linux操作系统:系统构建和原理解析》一共8章:第1章介绍了如何准备工作环境。在第2章中构建了编译工具链,这是后面构建操作系统各个组件的基础。在这一章中,不仅详细讲解了工具链的构建过程,而且还通过对编译链接过程的探讨,深入讨论了工具链的组成及各个组件的作用,理解工具链的工作原理对理解操作系统至关重要。第3~4章,从零开始构建了一个具备用户字符界面的最小操作系统,详细讲解了构建的过程以及涉及的技术细节。第5章从理论的角度探讨了这一过程,从内核的加载、解压一直讨论到用户进程的加载,包括用户空间的动态链接器为加载程序所作的努力。第6~7章首先构建了操作系统的基础图形系统,然后在此基础上构建了桌面环境。第8章深入探讨了计算机图形的基础原理,包含2D和3D程序的渲染、软件渲染、硬件渲染等内容,同时也从操作系统的角度审视了Pipeline。
      王柏生,资深Linux技术专家,精通Linux操作系统,对Linux操作系统进行了超过10年的研究。10多年来,先后参与并带领团队开发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
  • 内容简介:
      《深度探索Linux操作系统:系统构建和原理解析》是探索Linux操作系统原理的里程碑之作,在众多的同类书中独树一帜。它颠覆和摒弃了传统的从阅读Linux内核源代码着手学习Linux操作系统原理的方式,而是基于实践,以从零开始构建一个完整的Linux操作系统的过程为依托,指引读者在实践中去探索操作系统的本质。这种方式的妙处在于,让读者先从宏观上全面认清一个完整的操作系统中都包含哪些组件,各个组件的作用,以及各个组件间的关系,从微观上深入理解系统各个组件的原理,帮助读者达到事半功倍的学习效果,这是作者潜心研究Linux操作系统10几年的心得和经验,能避免后来者在学习中再走弯路。此外,本书还对编译链接技术(尤其是动态加载和链接技术)和图形系统进行了原理性的探讨,这部分内容非常珍贵。
      《深度探索Linux操作系统:系统构建和原理解析》一共8章:第1章介绍了如何准备工作环境。在第2章中构建了编译工具链,这是后面构建操作系统各个组件的基础。在这一章中,不仅详细讲解了工具链的构建过程,而且还通过对编译链接过程的探讨,深入讨论了工具链的组成及各个组件的作用,理解工具链的工作原理对理解操作系统至关重要。第3~4章,从零开始构建了一个具备用户字符界面的最小操作系统,详细讲解了构建的过程以及涉及的技术细节。第5章从理论的角度探讨了这一过程,从内核的加载、解压一直讨论到用户进程的加载,包括用户空间的动态链接器为加载程序所作的努力。第6~7章首先构建了操作系统的基础图形系统,然后在此基础上构建了桌面环境。第8章深入探讨了计算机图形的基础原理,包含2D和3D程序的渲染、软件渲染、硬件渲染等内容,同时也从操作系统的角度审视了Pipeline。
  • 作者简介:
      王柏生,资深Linux技术专家,精通Linux操作系统,对Linux操作系统进行了超过10年的研究。10多年来,先后参与并带领团队开发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
查看详情
系列丛书 / 更多
深度探索Linux操作系统:系统构建和原理解析
原创精品系列:设计模式之禅(第2版)
秦小波 著
深度探索Linux操作系统:系统构建和原理解析
ExtJS Web应用程序开发指南
卫军 著
深度探索Linux操作系统:系统构建和原理解析
商务智能与数据挖掘Microsoft SQL Server应用
谢邦昌 编
深度探索Linux操作系统:系统构建和原理解析
JSF Web应用开发实战
麻地河、赵恒 著
深度探索Linux操作系统:系统构建和原理解析
系统分析师UML实务手册
邱郁惠 著
深度探索Linux操作系统:系统构建和原理解析
Lucene分析与应用
吴众欣、沈家立 著
深度探索Linux操作系统:系统构建和原理解析
数据挖掘Clementine应用实务
谢邦昌 编
深度探索Linux操作系统:系统构建和原理解析
Windows编程循序渐进
张静盛 著
深度探索Linux操作系统:系统构建和原理解析
Flex 3企业级web应用系统设计与实现
姜天格 著
深度探索Linux操作系统:系统构建和原理解析
企业虚拟化实战-Vmware篇
张巍 著
深度探索Linux操作系统:系统构建和原理解析
Linux环境下Qt4图形界面与MySQL编程
邱铁 著
深度探索Linux操作系统:系统构建和原理解析
Oracle 10g应用指导与案例精讲
任树华 著
相关图书 / 更多
深度探索Linux操作系统:系统构建和原理解析
深度:潜入隐藏的世界
杰斯-麦吉辛
深度探索Linux操作系统:系统构建和原理解析
深度教学研究(第二辑)
郭元祥 主编
深度探索Linux操作系统:系统构建和原理解析
深度对话茅奖作家(1-11届)
舒晋瑜
深度探索Linux操作系统:系统构建和原理解析
深度关系
武志红
深度探索Linux操作系统:系统构建和原理解析
深度阅读训练册 3年级b版 小学同步阅读 新华正版
深度阅读教学研究中心
深度探索Linux操作系统:系统构建和原理解析
深度学习在复杂系统健康监测中的应用
吴军;程一伟;邓超;朱海平
深度探索Linux操作系统:系统构建和原理解析
深度阅读训练册4年级B版
深度阅读教学研究中心 编
深度探索Linux操作系统:系统构建和原理解析
深度学习教程 杨小远 刘建伟著
杨小远;刘建伟
深度探索Linux操作系统:系统构建和原理解析
深度学习——模型、算法优化与实战
张洪朋
深度探索Linux操作系统:系统构建和原理解析
深度陪伴RAP养育法
张杨
深度探索Linux操作系统:系统构建和原理解析
深度思维
隋继周
深度探索Linux操作系统:系统构建和原理解析
深度财务分析报告案例示范
本书编委会
您可能感兴趣 / 更多
深度探索Linux操作系统:系统构建和原理解析
穿越操作系统迷雾:从零实现操作系统
王柏生 王晟寒
深度探索Linux操作系统:系统构建和原理解析
深度探索Linux系统虚拟化:原理与实现
王柏生、谢广军 著
深度探索Linux操作系统:系统构建和原理解析
土木工程试验与检测
王柏生 编
深度探索Linux操作系统:系统构建和原理解析
结构试验与检测
王柏生 编