目录
第1章 Linux 快速入门
- Linux 是一款 开源(Open Source)、类 Unix 的操作系统,由内核(Kernel)和外围软件(如桌面环境、应用程序、工具链等)组成。它诞生于 1991 年,由芬兰大学生 林纳斯・托瓦兹(LinusTorvalds) 最初开发,后通过开源社区的全球协作不断完善,成为目前应用最广泛的操作系统之一。
- Linux 是一套免费使用和自由传播的类 UNIX 操作系统,是一个基于 POSIX 移植操作 系统接口(Portable Operating System Interface of UNIX,POSIX)和 UNIX 的多用户、 多任务、支持多线程和多 CPU 的操作系统。
- 目前被广泛使用于企业服务器、WEB 网站平台、大数据、虚拟化、Android、超级计 算机等领域,未来 Linux 将应用各行各业,例如云计算、物联网、人工智能等。
本章向读者介绍 Linux 发展简介、Linux 发行版特点、32 位及 64 位 CPU 特性及 Linux内核命规则。
1.1 为什么要学习 Linux
从个人生活角度出发,学习 Linux 不仅能节省成本、保障隐私、实现个性化需求,更能培养技术思
维和问题解决能力,让数字设备真正服务于生活而非制造麻烦。无论是作为日常使用的操作系统,
还是探索技术世界的入口,Linux 都能为个人带来长期价值 —— 从掌控一台电脑到掌控数字生
活,一切始于一次简单的尝试。
1.2 Linux 操作系统简介
- Linux 操作系统是基于 UNIX 以网络为核心的设计思想,是一个性能稳定的多用户网 络操作系统,Linux 能运行各种工具软件、应用程序及网络协议,它支持安装在 32 位和 64 位 CPU 硬件上。
- 通常的讲,Linux 这个词本身只表示 Linux 内核,但是人们已经习惯用 Linux 来形容 整个基于Linux 内核的操作系统,并且是一种使用 GNU 通用公共许可证(GNU General Public License,GPL)工程各种工具和数据库的操作系统。
- GNU 是“GNU is Not Unix”,UNIX 是一种广泛使用的商业操作系统,由于 GNU 将要 实现以 UNIX系统的接口标准,因此 GNU 计划可以分别开发不同的操作系统部件,并且采 用了部分当时已经可自由使用的软件。
- 为了保证 GNU 软件可以自由地“使用、复制、修改和发布”,所有的 GNU 软件都在 一份禁止其他人添加任何限制的情况下授权所有权利给任何人的协议条款里,我们把这 个条款称之为 GNU 通用公共许可证(GNU General Public License,GPL)。
- 1991 年的 10 月 5 日,Linux 创始人 Linus Torvalds 在 comp.os.minix 新闻组上发 布消息,正式向外宣布 Linux 内核的诞生,1994 年 3 月 Linux 1.0 发布,代码量 17 万行, 当时是完全按照自由免费的协议发布,随后正式采用 GPL 协议,目前 GPL 协议版本包括: GPLv1、GPLv2、GPLv3 以及未来的 GPLv4、GPLv5 等。
1.3 Linux 操作系统优点
随着 IT 产业的不断发展,Linux 操作系统应用领域越来越广泛,尤其是近年来 Linux
在服务器领域飞速的发展,主要得益于 Linux 操作系统具备的如下优点:
- 开源与免费:Linux 是开源软件,其源代码是公开的,任何人都可以自由地使用、修改和分发。这意味着用户无需支付昂贵的软件授权费用,就可以获得强大的操作系统功能。对于个人用户、教育机构和企业来说,使用 Linux 可以节省大量的软件成本。
- 稳定性高:Linux 系统以其高度的稳定性而闻名。它能够长时间运行而无需频繁的重启,适合用于关键任务和服务器环境。许多大型网站、企业级应用和云计算平台都基于 Linux 构建,以确保系统的稳定运行,减少因系统故障而导致的业务中断。
- 安全性强:Linux 的开源特性使得全球的开发者都能参与到系统的维护和漏洞修复中,能够快速发现和解决安全问题。此外,Linux 的权限管理系统非常严格,用户可以精细地控制文件和系统资源的访问权限,降低了系统受到攻击的风险。
- 多用户多任务处理:Linux 支持多个用户同时登录和使用系统,每个用户都可以独立地进行操作,互不干扰。同时,Linux 能够高效地处理多个任务,支持多进程和多线程,用户可以同时运行多个应用程序和服务,充分发挥硬件的性能。
- 可定制性:由于 Linux 的开源性质,用户可以根据自己的需求对系统进行定制。无论是修改系统内核、添加或删除功能模块,还是调整系统参数,都可以轻松实现。这使得 Linux 能够适应各种不同的应用场景和特殊需求。
- 命令行功能强大:Linux 的命令行界面提供了丰富的命令和工具,用户可以通过命令行快速地完成各种系统管理、文件操作、网络配置等任务。对于系统管理员和开发者来说,熟练掌握命令行操作可以大大提高工作效率,实现自动化和批量处理。
- 学习资源丰富:Linux 拥有庞大的社区和丰富的学习资源。在网络上,有大量的官方文档、技术论坛、博客和教程可供用户学习和参考。用户遇到问题时,可以很容易地在社区中寻求帮助,与其他 Linux 爱好者和专业人士交流经验。
- 就业竞争力提升:在当今的信息技术领域,Linux 技能是非常受欢迎的。许多企业都在使用 Linux 系统进行服务器管理、软件开发、云计算等工作。掌握 Linux 技能可以增加个人在就业市场上的竞争力,为从事系统管理员、运维工程师、开发工程师、云计算工程师等职业打下坚实的基础。
1.4 Linux 操作系统发行版
学习Linux操作系统,需要选择不同的发行版本,Linux操作系统是一个大类别,
Linux 操作系统主流发行版本包括:
Red Hat Linux、
CentOS、
Ubuntu、
SUSE Linux、
Fedora Linux
Debian等,
具体发行版本区别如下:
1. Red Hat Linux
- Red Hat Linux 是最早的 Linux 发行版本之一,同时也是最著名的 Linux 版本,Red Hat Linux 已经创造了自己的品牌,也是读者经常听到的“红帽操作系统”。Red Hat 1994 年创立,目前公司全世界有 3000 多人,一直致力于开放的源代码体系,向用户提供一套 完整的服务,这使得它特别适合在公共网络中使用。这个版本的 Linux 也使用最新的内核,还拥有大多数人都需要使用的主体软包。
- Red Hat Linux 发行版操作系统的安装过程非常简单,图形安装过程提供简易设置服务器的全部信息,磁盘分区过程可以自动完成,还可以通过图形界面(Graphical User Interface GUI)完成安装,即使对于 Linux 新手来说这些都非常简单。后期如果想批 量安装 Red Hat Linux 系统,可以通过批量的工具来实现快速安装。
2. CentOS
- 社区企业版操作系统(Community Enterprise Operating System,CentOS)是 Linux 发行版之一,它是来自于 Red Hat Enterprise Linux 依照开放源代码所编译而成。由于 出自同样的源代码,因此有些要求高度稳定性的服务器以 CentOS 替代商业版的 Red Hat Enterprise Linux 使用。CentOS 于 Red Hat Linux 不同之处在于 CentOS 并不包含封闭的源代码软件,可以开 源免费使用,得到运维人员、企业、程序员的青睐,CentOS 发行版操作系统是目前企业 使用最多的系统之一,2016 年 12 月 12 日,CentOS 基于 Red Hat Enterprise Linux 的 CentOS Linux 7 (1611) 系统正式对外发布。
3. Ubuntu
- Ubuntu 是一个以桌面应用为主的 Linux 操作系统,其名称来自非洲南部祖鲁语或豪 萨语的“ubuntu”一词(译为吾帮托或乌班图),意思是“人性”、“我的存在是因为大 家的存在”,是非洲传统的一种价值观。
- Ubuntu 基于 Debian 发行版和 GNOME 桌面环境, Ubuntu 发行版操作系统的目标在于 为一般用户提供一个最新的、同时稳定的以开放自由软件构建而成的操作系统,目前 Ubuntu 具有庞大的社区力量,用户可以方便地从社区获得帮助。
4. SUSE Linux
- SUSE(发音 /ˈsuːsə/),SUSE Linux 出自德国,SuSE Linux AG 公司发行维护的 Linux 发行版,是属于此公司的注册商标 2003 年 11 月 4 日,Novell 表示将会对 SUSE 提 出收购。收购的工作于 2004 年 1 月完成。
- Novell 也向大家保证 SUSE 的开发工作仍会继续下去,Novell 更把公司内全线电脑 的系统换成 SUSE LINUX,并同时表示将会把 SUSE 特有而优秀的系统管理程序 - YaST2 以 GPL 授权释出。
5. Fedora Linux
- Fedora 是一个知名的 Linux 发行版,是一款由全球社区爱好者构建的面向日常应用 的快速、稳定、强大的操作系统。它允许任何人自由地使用、修改和重发布,无论现在 还是将来。它由一个强大的社群开发,这个社群的成员以自己的不懈努力,提供并维护 自由、开放源码的软件和开放的标准。
- Fedora 约每六个月会发布新版本,美国当地时间 2015 年 11 月 3 日,北京时间 2015 年 11 月 4 日,Fedora Project 宣布 Fedora 23 正式对外发布,2017 年 6 月发布 Fedora 26 版本。
6.Debian
- 严格遵循 GNU 规范,提供 Stable/Testing/Unstable 三个分支,Stable 版软件包老旧但稳定性极高,Testing 版平衡新功能与可靠性,Unstable 版包含最新开发代码。
- 适用场景:服务器(如 Web、邮件服务)、开发者工具链、嵌入式系统。
- 衍生版:Ubuntu、Linux Mint、Kali Linux。
用户类型 | 推荐发行版 | 理由 |
---|---|---|
新手入门 | Ubuntu、Linux Mint | 图形化安装、社区支持完善 |
开发者 | Fedora、Arch Linux | 前沿技术支持、滚动更新 |
企业服务器 | RHEL、SUSE Linux Enterprise | 长期支持、关键任务可靠性 |
安全专家 | Kali Linux、Parrot OS | 预装渗透测试工具 |
国产化替代 | 统信 UOS、Deepin | 适配国产硬件、本地化应用 |
游戏玩家 | SteamOS、Bazzite | Proton 兼容层、游戏优化 |
1.5 32 位与 64 位操作系统的区别
学习 Linux 操作系统之前,需要理解计算机基本的常识,计算机内部对数据的传输 和储存都是使
用二进制,二进制是计算技术中广泛采用的一种数制,而 Bit(比特)则表 示二进制位,二进制数
是用 0 和 1 两个数码来表示的数。基数为 2,进位规则是“逢二进 一”,0 或者 1 分别表示一个 Bit
二进制位。
- Bit 位是计算机最小单位,而字节是计算机中数据处理的基本单位,转换单位为:1Byte=8Bit,4Byte=32Bit。
一、基础定义:位数的本质
- 32 位(x86):指 CPU 一次能处理 32 位二进制数据,地址总线宽度为 32 位,支持的内存地址空间为 232=4GB(实际可用约 3.25GB,因硬件保留)。
- 64 位(x86-64/AMD64):CPU 一次处理 64 位数据,地址总线至少 40 位(现代系统多为 48/52 位),理论内存寻址能力达 264(约 16EB,远超实际需求,实际受限于操作系统版本,如 Windows 10 64 位家庭版支持 128GB,专业版支持 2TB)
二、核心区别对比
-
64 位操作系统 内存支持 最大约 4GB(实际因硬件保留更少) 支持几十 GB 到 TB 级(取决于系统版本和硬件) 数据处理能力 单次处理 32 位数据,寄存器为 32 位 单次处理 64 位数据,寄存器为 64 位,支持更大数据吞吐量 软件兼容性 仅能运行 32 位程序(.exe/.dll 为 32 位架构) 可兼容 32 位程序(通过模拟层),也支持 64 位原生程序 硬件依赖 仅支持 32 位 CPU(如早期 Intel Pentium 4) 需 64 位 CPU(2003 年后主流 CPU 均支持,如 Intel Core/i3/i5/i7、AMD Ryzen) 性能表现 适合轻量级任务(如办公、网页浏览),内存受限导致大型程序卡顿 处理复杂任务(如视频渲染、虚拟机、大型游戏)更高效,充分利用多核 CPU 和大内存 安全性 支持基础内存保护(如 DEP),但易受 32 位漏洞攻击 支持更高级安全特性(如 ASLR 地址随机化、PAE 物理地址扩展),减少内存溢出等攻击风险 系统资源占用 内核和程序占用内存较小(适合老旧硬件) 内核和 64 位程序占用内存略高(如 64 位 Chrome 比 32 位多约 10% 内存)
三、典型操作系统支持情况
系统 | 32 位版本现状 | 64 位版本主流情况 |
---|---|---|
Windows 10 | 家庭版 / 专业版仍提供 32 位下载,但微软建议 4GB 以上内存用户选择 64 位 | 64 位为默认选项,支持最大 128GB(家庭版)/2TB(专业版) |
Windows 11 | 不再支持 32 位系统,最低要求 64 位 CPU 和 4GB 内存 | 强制 64 位,支持更大内存和硬件特性(如 TPM 2.0) |
Linux(如 Ubuntu) | 部分发行版仍提供 32 位镜像(如 Ubuntu 18.04 LTS),但新版本(20.04+)仅 64 位 | 64 位为标准配置,服务器版支持 TB 级内存和复杂集群架构 |
macOS | 2007 年起全面转向 64 位,2020 年后不再支持 32 位程序(需通过 Rosetta 转译) | 仅支持 64 位,适配 Apple Silicon(ARM64)和 x86-64 架构 |
32 位系统因内存限制和兼容性问题,已逐渐被淘汰,仅适用于极老旧设备或特殊场景。64 位系统是现代计算的主流选择,能充分发挥硬件性能,支持大内存和复杂任务,且兼容几乎所有 32 位程序。除非明确依赖老旧 32 位专属软件,否则建议优先选择 64 位操作系统。
1.6 Linux 内核命名规则
Linux 内核是 Linux 操作系统的核心,一个完整的 Linux 发行版包括进程管理、内存
管理、文件系统、系统管理、网络操作等部分。
一、基础版本号结构:X.Y.Z
Linux 内核版本号采用 主版本号。次版本号。修订号 的格式(如 6.1.76
),每个部分的变化代表不同的开发阶段:
Linux 内核命名格式为 “R.X.Y-Z”,其中 R、X、Y、Z 命名意义如下:
- 数字 R 表示内核版本号,版本号只有在代码和内核有重大改变的时候才会 改变,到目前为止有 4 个大版本更新。
- 数字X 表示内核主版本号,主版本号根据传统的奇偶系统版本编号来分配, 奇数为开发版,偶数为稳定版。
- 数字 Y 表示内核次版本号,次版本号是无论在内核增加安全补丁、修复 Bug、 实现新的特性或者驱动时都会改变。
- 数字 Z 表示内核小版本号,小版本号会随着内核功能的修改、Bug 修复而发 生变化。
-
主版本号(X)
- 变化频率:极少变更,历史上仅发生过三次(1.0/2.0/3.0),通常标志着内核架构的重大重构或技术突破。例如:
- 3.0(2011 年):为纪念 Linux 诞生 20 周年,将持续 7 年的 2.6 系列升级,实际未引入重大功能10。
- 5.0(2019 年):象征性升级,强调对 AMD FreeSync 和 FPGA 的支持11。
- 命名逻辑:主版本号的提升更多是里程碑意义,而非技术颠覆。
- 变化频率:极少变更,历史上仅发生过三次(1.0/2.0/3.0),通常标志着内核架构的重大重构或技术突破。例如:
-
次版本号(Y)
- 奇偶性规则:
- 偶数(如 6.2):稳定版,经过充分测试,适合生产环境。
- 奇数(如 6.3):开发版,包含新功能或实验性代码,可能存在不稳定风险。
- 演进规律:从 2.6 系列开始,次版本号的递增周期缩短至 8-10 周,以快速迭代功能13。
- 奇偶性规则:
-
修订号(Z)
- 功能:修复安全漏洞、优化性能或新增驱动支持。例如:
6.1.76
表示 6.1 版本的第 76 次修订,可能包含关键安全补丁。
- 特殊后缀:
- -rcN:发行候选版(Release Candidate),如
6.1-rc1
是正式版前的最后测试版6。 - -mm:实验性分支(如
5.15-mm
),用于测试新功能,可能被主线吸收6。
- -rcN:发行候选版(Release Candidate),如
- 功能:修复安全漏洞、优化性能或新增驱动支持。例如:
二、长期支持(LTS)版本:稳定性的基石
LTS 版本由社区维护者(如 Greg Kroah-Hartman)提供长期维护,适合企业和嵌入式场景:
- 支持周期:
- 传统周期:2 年(如 5.15 LTS 支持至 2026 年)。
- 延长周期:部分版本(如 4.19、5.4)因社区需求延长至 6 年,但未来版本可能恢复为 2 年89。
- 命名标识:LTS 版本在版本号后标注(如
6.1 (LTS)
),或通过发行版后缀体现(如 Ubuntu 的5.4.0-77-generic
)。
三、发行版的定制化后缀
Linux 发行版会在内核版本号后添加自定义后缀,反映特定优化或适配:
- 硬件支持:
- -smp:支持多处理器(Symmetric MultiProcessing),如
2.6.32-642.15.1.el6.x86_64
2。 - -pae:物理地址扩展,使 32 位系统支持超过 4GB 内存(如
3.2.0-67-generic-pae
)14。
- -smp:支持多处理器(Symmetric MultiProcessing),如
- 发行版标识:
- -generic:通用版本(如 Ubuntu 的
5.4.0-77-generic
)。 - -el7:Red Hat Enterprise Linux 7 的定制版(如
4.4.131-1.el7.elrepo.x86_64
)18。
- -generic:通用版本(如 Ubuntu 的
- 云平台适配:
- -aws:亚马逊云定制版,如
5.10.17-110.410.amzn2.x86_64
。 - -azure:微软 Azure 定制版,优化虚拟化性能。
- -aws:亚马逊云定制版,如
四、特殊版本分支:实验与场景化需求
- 实时版(-rt)
- 用途:优化内核调度延迟,适用于工业控制、自动驾驶等实时场景。
- 命名示例:
5.15-rt17
表示 5.15 版本的第 17 次实时优化。
- 安全更新版(-s)
- 规则:在修订号后加
-s
,如4.14.200s
表示包含安全补丁的版本8。
- 规则:在修订号后加
- 社区实验分支
- -ck:Con Kolivas 的调度优化分支,曾用于提升桌面响应速度。
- -ac:Alan Cox 的网络优化分支,推动内核网络性能提升。
五、版本号查询与选择建议
- 查看当前内核版本:
- 命令行:
uname -r
(显示6.1.76-generic
)。 - 详细信息:
cat /proc/version
(显示编译时间、发行版等)。
- 命令行:
- 版本选择策略:
- 个人用户:使用主线稳定版(如 6.2),平衡新功能与稳定性。
- 企业用户:选择 LTS 版本(如 6.1 LTS),确保 6 年安全支持16。
- 开发者:使用开发版(如 6.3)或实验分支(如 - mm),探索新特性。
六、历史演进与未来趋势
- 版本号规则变迁:
- 早期(2.6 之前):主版本号变化缓慢(如 2.0 到 2.4 间隔 5 年),次版本号奇偶性严格区分稳定与开发10。
- 现代(3.0 之后):采用短周期迭代,主版本号提升更频繁(如 3.0 到 6.0 仅用 11 年),次版本号奇偶性不再严格限制13。
- 未来展望:
- LTS 周期调整:可能缩短至 2 年,以适应快速技术迭代9。
- 模块化命名:可能引入更细粒度的标识(如
6.Y.Z-W
),区分功能模块或硬件适配3。
总结:命名规则的技术哲学
Linux 内核的命名规则不仅是版本标识,更是开源社区协作与技术演进的缩影:
- 稳定性与创新的平衡:通过奇偶次版本号和 LTS 机制,兼顾企业级可靠性与技术前沿探索。
- 灵活性与标准化:发行版后缀和实验分支满足多样化场景需求,同时保持内核主线的统一性。
- 社区驱动:版本号的制定与维护依赖全球开发者的共识,反映了 Linux 生态的开放性与协作性。
理解这些规则,有助于用户根据需求选择合适的内核版本,同时深入体会 Linux 内核的设计哲学与技术演进脉络。