注: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. Tanenbaum 在 1987 年 开发了 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系统,也可以对旧版本进行升级。
内核
操作系统中可以使用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镜像
有四种类型的镜像可供选择
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正常访问数据。


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


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


上传完成后即可进行安装


