FChao
发布于 2026-03-12 / 33 阅读
0
0

RHCSA/HCIA①:学习大纲&介绍和安装

注:RHCSA与HCIA考试要求只有部分重叠,正文标红处为HCIA考点

一、Linux发展史

注:此知识点考试不作要求

1. Multics:Linux 思想源头

20 世纪 60 年代,MIT、贝尔实验室和 GE 公司联合推动了 Multics 项目,目标是让一台大型主机同时服务多个用户。
虽然 Multics 最终因为设计过于复杂、开发周期过长而没有取得预期成功,但它提出了许多先进的操作系统思想,例如多用户、多任务和分时系统等。

和下一阶段的联系:
Multics 虽然失败了,但它启发了贝尔实验室的研究人员去设计一个更简单、更实用的系统,这直接催生了 Unix。


2. Unix:类 Unix 世界的起点

1969 年,贝尔实验室的 肯·汤普逊(Ken Thompson) 在 Multics 思想的基础上,开发出早期的 Unix。随后,丹尼斯·里奇(Dennis Ritchie) 发明并完善了 C 语言,并用 C 重写 Unix,使 Unix 具备了良好的可移植性。
正因为可移植,Unix 很快在大学和科研机构中传播开来,成为影响最深远的操作系统之一。

和上一阶段的联系:
Unix 可以看作是对 Multics 的“简化与改进”:保留其核心思想,但去掉过于复杂的设计。

和下一阶段的联系:
Unix 的成功让越来越多的人希望学习和使用它,但后来 Unix 逐渐走向商业化,这就导致人们开始寻找自由、可教学、可替代的类 Unix 系统


3. Unix 商业化:催生替代者

20 世纪 70 年代到 80 年代初,Unix 广泛流行,并衍生出许多厂商版本,如 AIX、HP-UX 等。
不过,Unix 并不是严格意义上的开源软件。随着 AT&T 强化版权和商业授权,Unix 的使用成本提高,源码也不再像早期那样便于教学和研究。

和上一阶段的联系:
正是因为 Unix 太成功,所以商业价值越来越高,最终从学术传播逐步转向商业化。

和下一阶段的联系:
一旦 Unix 不再适合自由教学,高校就需要一个新的、能用于教学的类 Unix 系统,这就是 Minix 出现的背景。


4. Minix:Linux 的直接启发者

为了教学,荷兰阿姆斯特丹自由大学教授 Andrew S. Tanenbaum1987 年 开发了 Minix
Minix 是一个小型类 Unix 操作系统,主要目的是让学生理解操作系统的原理和实现方式,因此它的设计强调教学性,而不是追求完整功能或高性能。

Minix 的作用是什么?
Minix 在 Linux 历史上的作用,主要不是“代码基础”,而是学习对象和现实起点

  • Linus 在大学时期使用过 Minix;

  • 他借助 Minix 接触和理解类 Unix 系统;

  • 他觉得 Minix 在功能、扩展性等方面不能完全满足自己的需求;

  • 于是决定自己写一个新的内核。

也就是说,Minix 不是 Linux 的源码来源,但它是 Linux 诞生的重要催化剂

和上一阶段的联系:
因为 Unix 商业化后不适合教学,所以 Minix 作为教学用类 Unix 系统出现。

和下一阶段的联系:
Minix 解决了“教学上怎么学类 Unix”的问题,但没有解决“如何拥有一个完全自由、功能完整的操作系统”的问题,而这个目标正是 GNU 计划要完成的。


5. GNU:为“自由操作系统”补齐大部分组件

1984 年理查德·斯托曼(Richard Stallman) 发起 GNU 计划,目标是开发一套完全自由的、兼容 Unix 的操作系统
为此,他后来建立了 自由软件基金会(FSF),并推动了许多关键软件和规则的建立,例如:

  • GCC:重要的编译器

  • GPL:著名的自由软件许可证

  • Shell、库、编辑器等大量系统工具

GNU 的意义在于:它已经做出了一个操作系统所需的大量用户空间工具,但当时还缺少一个成熟可用的内核

GNU 是怎么和 Linux 产生关联的?
Linus 写出来的 Linux 只是内核,不能单独构成完整操作系统;而 GNU 已经有了大量现成的工具,却缺一个好用的内核。因此,Linux 内核 + GNU 工具 结合起来,就形成了一个真正可用的自由操作系统,也就是通常所说的 GNU/Linux

和上一阶段的联系:
Minix 是教学系统,不够完整自由;GNU 则试图真正打造一个完整、自由的类 Unix 系统。

和下一阶段的联系:
GNU 缺内核,Linus 刚好写出了 Linux 内核,二者天然形成互补关系。


6. Linux 内核诞生:Linus 补上了最关键的一块

1991 年,芬兰赫尔辛基大学学生 林纳斯·托瓦兹(Linus Torvalds) 出于学习操作系统内核的目的,开始编写自己的内核,并把它发布到网络上,这就是 Linux
Linux 一开始只是一个个人项目,但因为它遵循开放共享的开发方式,很快吸引了全球开发者参与,逐渐发展壮大。

Linux 这一名称通常被认为是 “Linus” 和 “Unix” 的组合。不过,Linus Torvalds 最初实际上想把项目命名为 “Freax”,后来在发布到 FTP 服务器时被改用 “Linux”,并最终沿用至今。Linux的企鹅Logo也只是本人比较喜欢企鹅,和“南极洲公约”精神无关。

严格来说 Linux 并不是一个完整的操作系统,而只是“内核”
一个完整的操作系统,除了内核,还需要编译器、Shell、命令行工具、库文件等,而这些正是 GNU 已经提供的部分。这也是为什么完整系统称为 GNU/Linux

和上一阶段的联系:
GNU 先准备好了“除了内核之外的大部分东西”;Linus 写出的 Linux 内核正好补上了这块空缺。

和下一阶段的联系:
当 Linux 内核和 GNU 工具结合后,就具备了形成完整操作系统的条件,于是各种发行版开始出现。


7. 发行版出现:Linux 从内核走向完整系统

在 Linux 内核与 GNU 工具结合之后,人们开始把它们连同安装程序、软件包管理器、桌面环境、服务程序等整合起来,形成可以直接安装和使用的系统,这就是 Linux 发行版

典型发行版包括:

  • Red Hat

  • Debian

  • Ubuntu

  • openEuler

其中,Red Hat 是较早成功的商业模式代表之一:
系统本身基于开源软件构建,但通过技术支持、认证、更新维护等服务收费获得收入。

现在全球所有主流 Linux 发行版(没有例外)使用的内核,仍然全部来自Linus Torvalds 和内核社区在 kernel.org 发布的官方 Linux 内核源码。

Multics 提出先进思想 → Unix 把这些思想变成成功系统 → Unix 商业化后限制增多 → Minix 作为教学替代出现 → GNU 想做自由操作系统并提供大量工具 → Linus 写出 Linux 内核 → GNU + Linux 结合形成 GNU/Linux → 各种发行版诞生。

二、开源许可证协议

注:此知识点考试不作要求

1. GNU GPL(最严格,强 Copyleft)

GNU General Public License

特点:
如果你的软件使用或包含 GPL 代码,那么整个项目也必须 开源并使用 GPL 许可证发布,源代码必须公开,这种“传染性”叫 强 Copyleft

代表项目:

  • Linux kernel

  • WordPress

  • GCC


2. Apache License 2.0(宽松,但带专利条款)

Apache License 2.0

特点:
允许修改、闭源和商业使用,但需要保留版权声明、说明修改的部分,并包含专利授权条款(贡献代码即默认授予专利许可)。

代表项目:

  • Apache HTTP Server

  • Kubernetes

  • Apache Hadoop


3. BSD License(经典宽松协议)

Berkeley Software Distribution License

特点:
允许自由修改、闭源和商业使用,只需保留原作者版权声明即可,限制非常少。新版本中,不能用原作者名字给产品做背书。

代表项目:

  • FreeBSD

  • OpenBSD

  • NetBSD


4. MIT License(最简单、最宽松之一)

Massachusetts Institute of Technology License

特点:
限制极少,允许修改、再发布、闭源和商业使用,只需要保留原作者版权声明和许可证。和BSD几乎没区别,但是因为内容更短所以受欢迎。

代表项目:

  • React

  • jQuery

  • Ruby on Rails


5. 木兰宽松许可证(Mulan PSL,较新的宽松协议)

Mulan Permissive Software License

特点:
中国推出的宽松开源协议,允许商用和修改,只需保留版权声明并附带许可证副本,整体限制与 MIT/BSD 类似。

代表项目:

  • openEuler

  • OpenHarmony

三、需要了解的发行版本和内核

Debian系

  • Debian 完全由全球志愿者维护,不隶属于任何商业公司。在1993年由 Ian Murdock 发起,主要面向服务器管理员、嵌入式开发者,因为系统非常稳定、依赖管理严格。很多服务器、NAS、物联网设备、树莓派类系统都基于 Debian。

  • Ubuntu 则是基于 Debian 构建、由 Canonical 公司商业支持的流行发行版,旨在让 Linux 对大众更友好。它在继承 Debian 稳定性的基础上,提供了更新的软件版本、更友好的桌面体验、更好的硬件兼容性以及定期的长期支持(LTS)版本,主要使用场景涵盖开发者桌面工作站、人工智能与机器学习平台、云计算、Docker/Kubernetes环境,也是很多云厂商默认的 Linux 系统。

  • RHEL 在 Ubuntu 出现之前就已经抢占了企业级服务器市场,Ubuntu 通过极致的易用性、活跃的社区和对新技术的快速响应,逐渐成为了增量市场的首选。

红帽系

  • Fedora:是 Red Hat 赞助的社区驱动项目,个人桌面版操作系统,主要面向 Linux技术爱好者和开发者,因为更新快、技术新。很多新内核、新桌面技术、新容器技术都会先在 Fedora 出现。

  • CentOS(Community Enterprise Operating System) :最初是 RHEL 源代码去除商标后的免费重编译版本,旨在提供与 RHEL 100% 兼容的免费替代品,但在 Red Hat 调整策略将其转为“滚动更新版”(CentOS Stream)后,其定位变为 RHEL 的上游开发分支。曾经是网站服务器、数据库服务器、云主机最常见的系统。

  • RHEL(Red Hat Enterprise Linux) :从 CentOS Stream 分支中选取最稳定的代码快照,进行最终的安全加固、合规认证和硬件适配,然后作为正式版本发布给付费用户。主要面向大型企业和关键业务系统,比如 银行、电信、政府、金融行业服务器,特点是稳定和有商业技术支持,是属于红帽的商业旗舰发行版、企业级操作系统。

  • 红帽的发行顺序:

    • 在2019年之前: 先发行 Fedora——> 再发行RHEL ——> CentOS Linux

    • 在2019年之后: 先发行 Fedora ——>再发行CentOS Stream ——>最后发行RHEL

  • Rocky Linux 是由 CentOS 的创始人在 Red Hat 宣布停止支持传统 CentOS 后紧急发起的项目,目标是提供一个像旧 CentOS 一样的 免费 RHEL 克隆系统,相比目前的CentOS Stream更稳定安全。

  • convert2rhel 工具可以将部分特定的(CentOS等,不支持EulerOS)、基于 RPM 的 Linux 发行版转换为正式的 RHEL 系统。

Arch Linux

  • Arch Linux 是一个完全独立设计的 Linux 发行版,追求系统极简、用户自己配置的理念。Arch 有自己的包管理器 pacman、自己的打包体系 PKGBUILD、自己的仓库生态 AUR,主要面向 Linux高级用户和技术玩家。因为系统极简、滚动更新(无固定大版本号),需要自己配置,常见于个人开发环境、折腾系统和学习 Linux 原理。

openEuler

  • openEuler 是开源社区项目(类似 CentOS Stream 或 Fedora),由华为发起,多家厂商共同治理。

openEuler 一共有两个版本:

1.稳定版(长期支持版),有LTS命名:openEuler-22.03-LTS-SP3-x86_64-dvd.iso

每隔两年发布一版,通常在三月份发布,目前已经发布三个长期支持版,分别是20.03LTS、22.03LTS、24.03LTS

2.开发板(创新版)

每隔六个月就发布一版,通常在每年的9月份发布,目前的创新版本有20.09、21.03、21.09、22.09等

  • EulerOS 是华为基于 openEuler 开发的商业发行版(类似 RHEL),虽大部分代码共享,但两者不是克隆关系。

  • openEuler 直接沿用了很多 Red Hat 的技术路线和标准,如 RPM包管理器,系统安装工具anaconda,DNF/YUM,Systemd,NetworkManager,Firewalld,GRUB2,LVM2,Chrony,SELinux等。两者的使用体验基本一致。x2openEuler 工具可以将CentOS、RHEL等发行版转换为openEuler系统,也可以对旧版本进行升级。

内核

http://www.kernel.org

操作系统中可以使用uname -r 命令查看内核版本

Debian11、RHEL9和openEuler22.03LTS还在使用5.x版本内核,而更新的版本使用6.x版本内核。在

5.10.0-136.12.0.86.oe2203.x86_64
...

主版本号5.次版本号10.修订版本号0 [-修饰符]
136.12.0.86:特定补丁包编号
.oe2203: 标识这是 openEuler 22.03 版本的内核
x86_64:硬件架构表示该内核是为 64 位 Intel/AMD 处理器编译的。

四、安装操作系统

1.获取镜像

RHEL

注册账号并使用免费开发者订阅(Red Hat Developer Subscription)下载RHEL镜像

https://access.redhat.com

https://developers.redhat.com

有四种类型的镜像可供选择

  • Binary DVD:完整安装镜像,包含大部分软件包,可在离线环境直接安装 RHEL,是最常用的标准安装介质。

  • Boot ISO:体积很小的启动安装镜像,只包含安装程序本身;启动后需要通过网络从仓库下载软件包完成安装。

  • qcow2:KVM/QEMU 虚拟化平台使用的虚拟磁盘镜像,通常已经预装好系统,创建虚拟机后可直接启动使用。

  • virtio:与虚拟化相关的驱动支持(主要用于 KVM 等虚拟化环境),用于提高虚拟机的磁盘和网络性能;在 Linux(包括 RHEL)中一般已内置。

openEuler

https://www.openeuler.org/zh/download/?archive=true

在商业发行版中可以看到其他商业公司通过openEuler二次开发的商业版

  • 架构:

    • ‌AArch64 是 ARMv8 架构中定义的 64 位执行状态及其对应的指令集,通常也用来指代基于该架构的 64 位 ARM 处理器和软件生态系统‌。‌‌

    • ARM32 即32位ARM,主要是一些低成本智能或者联网设备、MCU微控制器、廉价开发板等使用。

  • 场景:

    • 服务器:面向传统物理服务器/数据中心的全功能镜像,软件包最完整,支持图形界面,适合企业级业务系统的直接部署和运维。

    • 边缘计算:面向边缘网关、边缘节点等场景的轻量裁剪镜像,在保留核心功能的同时减小体积,适配边缘侧资源相对受限的设备。

    • 云计算:面向虚拟机/云主机场景的精简镜像,预集成 cloud-init、虚拟化驱动(virtio)等云平台组件,开箱即用地部署在 OpenStack、KVM 等云环境中。

    • 嵌入式:面向物联网终端、工业控制等场景的最小化镜像,深度裁剪并支持 ARM 等嵌入式架构,适用于资源极度受限的末端硬件设备。

  • SP:同一个年份的大版本内官方发布的重大累积更新版本

2.安装

手动分区:

在手动分区安装 Linux(包括 openEuler、RHEL、Ubuntu 等)时,必须存在的分区:

  • 根分区 (/):系统文件、用户数据和所有软件的安装位置。没有它系统无法启动和运行。

  • /boot 分区:只存放启动系统所必需的最核心文件。虽然某些极简配置下可以合并到根分区,但为了引导加载程序(GRUB)能稳定读取内核文件,官方安装程序通常会强制要求或强烈建议单独划分 /boot。

  • 如果是通过 UEFI 模式 安装 Linux,必须额外创建一个 EFI 系统分区,通常挂载点为 /boot/efi。

非必须但推荐的分区:

  • Swap (交换分区):现代 Linux 完全可以在没有独立 Swap 分区的情况下运行。如果是服务器,无论内存多大,给 4GB - 8GB 足够。

  • /home 分区:不是必须的。默认情况下,用户数据会存放在根分区下的 /home 目录中。单独划分是为了重装系统时保留用户数据。

  • /var, /tmp 等:例如防止日志写满根分区等特定需求。

挂载点:

  • Windows 习惯用“盘符”(C:、D:、E:)来代表独立的存储设备或分区,而 Linux 习惯用“目录树”来整合所有存储设备或分区。Linux 的挂载点本质上是一个目录(文件夹),用来作为文件系统(一个硬盘或分区)的访问入口。

使用LVM分区方案,安装程序会将 根分区 (/) 以及你后续添加的所有其他挂载点(如 /home, /var, swap 等),全部创建为 LVM 逻辑卷,而不是直接建立在物理磁盘分区上。

其他安装流程补充:

想确保安装过程绝对稳定时,就选 “Test this media & install”。过程中可以使用ESC键跳过。

  • Troubleshooting(故障排除)菜单

1. Install RHEL 9.0 using text mode

→ 作用:以纯文本界面安装系统(无图形界面)。

→ 场景:显卡驱动不兼容、显示器分辨率异常、远程串口安装、或图形界面崩溃时。

2. Rescue a Red Hat Enterprise Linux system

→ 作用:进入救援模式,挂载原有系统根目录,可修复引导、重置密码、恢复配置等。

→ 场景:系统无法启动、GRUB 损坏、忘记 root 密码、文件系统错误需手动修复。

3. Run a memory test

→ 作用:运行 Memtest86+ 检测物理内存是否有硬件故障。

→ 场景:系统频繁蓝屏/死机/随机重启,怀疑 RAM 条损坏时使用。

4. Boot from local drive

→ 作用:跳过安装介质,直接从硬盘启动已有系统。

→ 场景:误入安装盘、想退出安装流程、或确认硬盘系统是否还能正常启动。

  • KDUMP

Linux 的内核崩溃转储机制,当系统发生严重错误(Kernel Panic,即内核崩溃)导致死机时,kdump 会立即启动一个预留的“迷你内核”,将崩溃瞬间的内存完整数据保存到磁盘。现代Linux发行版基本都具备,开启会占用一定内存,对普通Linux用户意义不大。

  • 安全策略(RHEL)

图中的档案指的是安全基线模板,比如说ANSSI-BP-028(法国政府安全标准)、default(RHEL 默认最小化安全配置)等,会则会提示当前安装例如分区设置存在的问题,禁用不必要的服务,确保系统从第一刻起就满足特定行业或政府的安全合规要求。

  • root用户设置、高级用户配置等均可以在安装完成后重新设定。

  • 锁定指的是既不允许直接本地登录,也不可以远程登录,只能通过其他用户切换的方式使用。

    • passwd -l root 锁定root用户(禁止使用密码登录)

    • passwd -u root 解锁(unlock),如果原先就锁定没有给root用户设置过密码,直接passwd设置一个密码也可以解锁

系统语言可以多添加一个英语避免文本界面出现乱码的问题。

  • 软件选择/安装方式:

1. 最小化安装:仅安装操作系统的核心功能

2. 服务器选项:可以快速部署服务,安装系统自动安装对应的服务

3. 虚拟化选项:自动安装一个精简版的KVM的操作系统,用来运行虚拟机,通常该模式将虚拟机作为云计算或者虚拟化的计算节点时,使用

4. 图形化安装:目前openEuler没有自携带的桌面图形化环境,只能使用第三方开发的桌面环境

五、补充

VMware相关/UEFI

注册Broadcom账号免费获取VMware

https://support.broadcom.com/group/ecx/free-downloads

VMware 中的 BIOS / UEFI 设置,是模拟现实主板的传统 BIOS 和现代 UEFI 启动方式。主要区别就是启动的时候是读取 MBR 分区表 + 引导扇区,还是读取 GPT 分区表 + EFI 系统分区。

现代PC和服务器里常说的“BIOS界面”,实际上已经是 UEFI(Unified Extensible Firmware Interface) 了。这是一个历史习惯导致的称呼问题,很多服务器和品牌机即使UEFI界面老旧,但是只要支持 UEFI启动、GPT等,就都是UEFI。

openEuler这类型没有VMware官方支持的系统可以根据镜像版本对应的内核版本选择其他选项,可以减少驱动和VMware Tools方面会遇到的问题。选错也不影响使用。

华为弹性云安装/对象存储概念

已提供可直接使用的镜像/可上传自己的私有镜像/其他用户私有镜像/购买第三方镜像,此处没有选项,新建私有镜像

创建方式中的创建私有镜像是指根据云平台已有的虚拟机创建镜像。

桶和对象存储的基本概念

在华为云(以及阿里云、腾讯云、AWS 等主流云服务)中,“桶”(Bucket) 是 对象存储服务(OBS, Object Storage Service) 中的核心概念。

对象存储是不同于块存储(硬盘)、文件存储(NFS等)的新存储方案,是一种通过 API 管理文件的云存储系统,而Bucket是对象存储里的“文件仓库”,用于存放一组对象。

这里的对象和开发中面向对象编程也不是一个概念,这里对象 = 文件数据本身 + 时间大小等元数据 + 唯一ID

选择创建桶,注意观察区域设置,上传后的区域一致才能看得见镜像。注意租借云服务器的区域与镜像上传区域设置是一致的。

多AZ可以理解为多机房,选择多AZ存储的桶,数据将存储在同一区域的多个不同AZ。当某个AZ不可用时,仍然能够从其他AZ正常访问数据。

image-sUML-QGzP.png

账号名自取,从此处获取accesskey或从华为云个人页面获取,需要新增访问密钥并下载csv文件获得。

image-OKBn-TqMm.png
image-bwLM-ebuI.png

登陆后即可看到在网站所看到的桶,回到镜像服务页面,选择文件所在的桶之后可以进行配置即可创建。

上传完成后即可进行安装

image-FiZK-ktXf.png


评论