首页 > 系统相关 >Linux操作系统设计与构建

Linux操作系统设计与构建

时间:2023-08-11 12:32:01浏览次数:40  
标签:操作系统 读者 构建 发行版 Linux SLFS

Linux操作系统设计与构建
    主  编:张同光
    出版单位:清华大学出版社
    ISBN:
    ISBN:
    出版时间:2024.1
    CIP:
    定价:¥

 

内 容 简 介

         本书以“成功设计与构建可用的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

 

标签:操作系统,读者,构建,发行版,Linux,SLFS
From: https://blog.51cto.com/u_847102/7046092

相关文章

  • 深入理解Linux内核——内存管理(2)
    提要:本系列文章主要参考MIT6.828课程以及两本书籍《深入理解Linux内核》《深入Linux内核架构》对Linux内核内容进行总结。内存管理的实现覆盖了多个领域:内存中的物理内存页的管理分配大块内存的伙伴系统分配较小内存的slab、slub、slob分配器分配非连续内存块的vmalloc分......
  • 【linux】命令iftop实时流量监控
    命令iftop实时流量监控iftop是一个命令行系统监控工具用来显示网络连接。默认按照带宽使用排序连接,并且最大带宽消耗排最上方。iftop在命名的网络接口上监听网络流量并显示按照主机对显示当前流量带宽。如果没有指定接口,iftop将监听在外部接口(使用libcap和libncurses)的第一个接......
  • Linux:rpm
    学习自:Linux-rpm命令_linuxrpm命令_阿伍.的博客-CSDN博客Linuxrpm命令详解–编程技术之美-IT之美rpm命令讲解|《Linux就该这么学》Linux命令-Linux安装rpm命令-良许Linux教程网1、前言rpm(RedHatPackageManager)是一种打包及安装工具。(通过wget下载,再通过rpm安装)RPM包......
  • Linux防火墙简单操作添加端口
    方法1:直接设置Linux防火墙(iptables)使用iptables命令可以直接添加所需端口,以下是添加ssh服务(端口号:22)的命令:iptables-IINPUT-ptcp--dport22-jACCEPT或者也可以选择通过配置文件添加端口,以下为添加http服务(端口号:80)的方式:vi/etc/sysconfig/iptables打开文件后,在文件中......
  • Linux解压/压缩文件命令
    1、.tar解包:tarxvfFileName.tar打包:tarcvfFileName.tarDirName(注:tar是打包,不是压缩!)2、.gz解压1:gunzipFileName.gz解压2:gzip-dFileName.gz压缩:gzipFileName3、.tar.gz和.tgz解压:tarzxvfFileName.tar.gz压缩:tarzcvfFileName.tar.gzDirName4、.bz2解压1:bzip2-dFile......
  • 使用Spring Cloud Gateway构建高性能的微服务网关
    在微服务架构中,微服务之间的通信可能会变得复杂,而且涉及到许多非功能性需求,如安全性、负载均衡、限流等。SpringCloudGateway是一个基于SpringBoot的轻量级网关服务,用于构建高性能的微服务网关,本文将深入探讨如何使用SpringCloudGateway搭建微服务网关,并提供代码示例。什么是......
  • Streamlit 入门教程:构建一个Dashboard
    Streamlit是一个用于创建数据科学和机器学习应用程序的开源Python库。它的主要目标是使开发人员能够以简单的方式快速构建交互式的数据应用,而无需过多的前端开发经验。Streamlit提供了一种简单的方法来转换数据脚本或分析代码为具有可视化界面的应用程序,这些应用程序可以通过......
  • 【技术积累】Linux中的命令行【理论篇】【八】
    basename命令命令介绍在Linux中,basename命令用于从给定的路径中提取文件名或目录名。它的语法如下:basename[选项][路径]命令介绍选项:-s,--suffix=SUFFIX:指定要删除的后缀。-a,--multiple:处理多个路径参数。-z,--zero:以null字符作为分隔符。路径:要提取文件名或目录名的......
  • Drools 7.67.0 + DMN 1.2 + SpringBoot3 构建规则引擎
    背景:基于项目工作的需要,要建立一个规则引擎的应用集中式的管理业务中的规则流程等,所以先探索一个MVP1.什么是规则引擎,同类竟品?规则引擎的主要思想是将应用程序中的业务决策部分分离出来,并使用预定义的语义模板编写业务决策(业务规则),由用户或开发者在需要时进行配置、管理。需......
  • 学习Linux,要把握哪些重点?
    不知道有没有想学习Linux,但又把握不住学习重点,找不到合适的学习方法的小伙伴,反正我刚开始学习Linux时就像无头苍蝇似的“乱撞”,没有把握住学习重点,不知道怎么去学,差点要放弃了,还好在慢慢的摸索中逐渐步入了正轨,找到了适合自己的学习方法。从Linux菜鸟一路到现在,当然也不是说现在有......