Linux操作系统设计与构建
Linux操作系统设计与构建
主 编:张同光
出版单位:清华大学出版社
ISBN:978-7-302-66455-0
ISBN:9787302664550
出版时间:2024.7
CIP:2024109737
定价:¥59.8
需要本书配套资源的朋友可以加我微信:ztguang
内 容 简 介
本书以“成功设计与构建可用的Linux操作系统”为编写目标,共包括15章:Linux操作系统的设计、构建Linux操作系统的技术基础、构建极简版Linux发行版、构建SLFS交叉工具链和临时工具、构建SLFS发行版、登录相关配置和部分基本软件、通用库、工具、网络和服务器、图形组件、GNOME、Xfce、图形界面软件、多媒体、排版、打印和扫描。第1、2章介绍相关理论和技术基础。第3章介绍一个极简版Linux系统的构建过程,目的是通过成功构建这个极简版Linux系统来增强读者完成第4-15章所述构建过程的信心。第4-15章介绍一个实际可用的Linux操作系统的完整构建过程,该过程正确无误,读者很容易复现。
本书适合作为高等学校操作系统原理课程的辅助教材或实验指导书,也可作为希望自己设计与构建Linux操作系统的Linux爱好者的参考书。
前 言
近几年美国对我国科技领域持续高强度的打压使我们深刻认识到在ICT(Information and Communications Technology)领域缺乏核心技术导致我国处于被动地位,给我国相关企业带来了巨大经济损失。操作系统是ICT领域的一个关键组成部分,因此,从战略角度看,不受某国某公司控制的免费自由开源的操作系统正是我国所需,将会使我国从经济、安全、技术等方面受益。Linux操作系统恰恰是一种好的选择,能够使我国尽快摆脱在操作系统上受制于人的局面。然而目前我国开发Linux发行版的文化氛围不浓厚、土壤不肥沃,原因是缺少一本合适的教材带领大家步入构建Linux发行版的世界。
目前市场上已经出版了很多Linux操作系统的相关教材,而介绍构建整个Linux操作系统的教材却很少,虽然网络上有LFS(Linux From Scratch)和BLFS(Beyond Linux From Scratch)的官方网站和帮助文档,但是对于绝大多数读者来说,完全按照LFS和BLFS的指导也很难成功构建可用的Linux操作系统,并且这些资料不是传统意义上的教材。为了带领和帮助读者逐步掌握Linux发行版的构建流程,最终构建出能够正常使用的Linux发行版,也为了使我国尽快摆脱在操作系统上受制于人的局面,培育浓厚的开发Linux发行版的文化氛围和土壤,本书作者编写了该教材,希望能够带领大家步入构建Linux发行版的世界。
LFS项目是一个开源的自定义Linux系统构建项目,它旨在帮助读者从源代码开始构建自己的Linux发行版,并且可以根据需要进行定制化,以满足各种不同的需求,让读者深入学习Linux系统的底层工作原理。BLFS在LFS的基础上涵盖了多个主题,例如桌面环境、网络服务器、数据库、图形库、多媒体应用程序等。
本书构建的Linux发行版称为SLFS(Self-define Linux From Scratch),主要参考了LFS和BLFS(因此本书所有代码和脚本均开源,随本书配套资源提供)。SLFS表示亲自构建Linux操作系统,其含义是读者通过本教材的学习可以成功设计与构建符合自己预设用途的一款Linux发行版。读者可以完全掌控这款Linux系统,实现个性化需求。通过本书的学习,读者将对整个Linux操作系统具有全面且细微的理解和把握。在构建SLFS过程中要求读者进行大量的手动操作,但这有助于读者深入了解Linux系统的构建过程和底层工作原理,从而更好地掌握操作系统的一些特性和优化技巧,让读者逐步了解Linux系统的各个方面。读者也可以从源代码层面解决使用Linux过程中遇到的问题。读者所研究领域涉及到的软件,这里很可能有对应的源代码,因此便于读者将理论研究成果快速地在具体Linux系统中验证和应用。本书要求读者已经掌握基本的Linux命令行工具,并熟悉Linux文件系统。
在构建SLFS过程中,读者需要手动解压缩、编译和安装各种软件包,还需要设置环境变量、构建基本的文件系统结构、构建Linux内核、创建并挂载文件系统、安装基本的Linux工具和库等。这将使读者接触到Linux系统的许多方面,例如编译链、启动脚本、进程管理、文件系统、网络配置等。通过这种方式,读者可以更深入地理解Linux系统的运行机制,掌握更高级别的系统管理技能。
希望本书能够起到抛砖引玉的作用,在成功设计与构建SLFS系统的基础上,读者以后能够随心所欲的设计与构建Linux操作系统。本书第4-15章中软件包的安装顺序体现了他们之间的一种依赖关系。读者以后可以调整软件包的构建顺序,并且可以尝试使用新版本的软件包以达到升级Linux系统的目的,此时,可能会出现各种各样的问题,解决这些问题对读者要求较高,但是,唯有如此,读者才能真正提高自己的技术水平。
《Linux操作系统设计与构建》三级目录
第1章 Linux操作系统的设计 1 1.1 Linux简介 1 1.2 Linux内核版本 2 1.3 Linux发行版本 3 1.4 Linux发行版的设计 7 第2章 构建Linux操作系统的技术基础 1 2.1 本书实验环境 1 2.2 Shell编程基础 2 2.2.1 Shell变量 2 2.2.2 控制Shell提示符 4 2.2.3 测试命令 4 2.2.4 算术运算和逻辑运算 5 2.2.5 内部命令 5 2.2.6 复合结构 7 2.2.7 条件分支和循环结构 7 2.3 GNU工具链和LLVM工具链 8 2.4 计算机的启动过程 10 2.4.1 启动过程—BIOS+MBR 10 2.4.2 启动过程—UEFI+GPT 14 第3章 构建极简版Linux发行版 1 3.1 创建磁盘映像文件 1 3.2 对磁盘分区 1 3.3 关联磁盘分区 2 3.4 格式化分区和挂载分区 2 3.5 安装grub 3 3.6 下载、配置、编译Linux内核 4 3.7 制作initrd 6 3.8 编写grub.cfg 7 3.9 VirtualBox中运行Linux 8 第4章 构建SLFS交叉工具链和临时工具 1 4.1 LFS、BLFS和SLFS 1 4.2 准备工作 2 4.3 编译交叉工具链 4 4.3.1 交叉工具链 4 4.3.2 切换到slfs用户 5 4.3.3 配置环境 5 4.3.4 构建工具链 6 4.4 交叉编译临时工具 10 4.4.1 交叉编译临时工具 10 4.4.2 切换回root用户 13 4.5 进入Chroot并构建其他临时工具 14 第5章 构建SLFS发行版 1 5.1 安装基本系统软件 1 5.2 系统配置 15 5.3 构建内核、引导系统 18 5.3.1 创建/etc/fstab文件 18 5.3.2 安装dracut 18 5.3.3 构建Linux内核 19 5.3.4 安装并且配置GRUB 20 5.3.5 创建一些文件 21 5.3.6 退出Chroot环境 22 5.3.7 创建虚拟机 23 5.4 再次进入Chroot环境 24 第6章 登录相关配置和部分基本软件 1 6.1 Systemd单元 1 6.2 安全I 1 6.3 GLib-2.74.5 11 6.4 安全II 15 6.5 文件系统和磁盘管理 16 6.6 Shells 19 6.7 Linux中的构建系统 20 第7章 通用库 1 7.1 通用库 1 7.2 图形和字体库 17 第8章 工具 1 8.1 通用工具 1 8.2 系统工具 5 8.3 编程工具 14 第9章 网络和服务器 1 9.1 网络程序 1 9.2 网络工具 5 9.3 网络库 6 9.4 文本Web浏览器 11 9.5 邮件/新闻客户端 12 9.6 主要服务器 13 9.7 邮件服务器 14 9.8 数据库 16 9.9 其他服务器 17 第10章 图形组件 1 10.1 图形环境 1 10.1.1 图形环境 1 10.1.2 X11和Wayland 2 10.1.3 设置环境变量 2 10.1.4 Xorg相关软件包 3 10.1.5 Xorg输入设备驱动程序 10 10.1.6 Xorg显卡驱动程序 12 10.1.7 视频硬件加速 14 10.1.8 老版Xorg 16 10.1.9 其他Xorg相关软件包 16 10.2 图形环境库 17 第11章 GNOME 1 11.1 GNOME库 1 11.2 GNOME桌面组件 6 11.3 GNOME应用程序 13 第12章 Xfce 1 12.1 Xfce桌面 1 12.2 Xfce应用程序 5 12.3 显示管理器 7 12.4 窗口管理器 7 12.5 图标 8 12.6 虚拟化 9 第13章 图形界面软件 1 13.1 KDE框架 1 13.2 办公软件 3 13.3 图形Web浏览器 3 13.4 其他图形界面软件 7 13.5 编辑器 10 第14章 多媒体 1 14.1 多媒体库和驱动程序 1 14.2 音频工具 7 14.3 视频工具 8 14.4 CD/DVD刻录工具 10 第15章 打印、扫描和排版 1 15.1 排版 1 15.2 PostScript 3 15.3 打印 4 15.4 扫描 5 15.5 标准通用标记语言 6 15.6 Java 6 15.7 最后的配置 8 15.8 重启SLFS虚拟机 10