写在前面
本文是“Linux学习笔记”专栏的第一篇文章,本文将从 Unix 起源讲起,系统梳理 Linux 的诞生背景、核心人物、家族分支与主流发行版,帮大家搭建 Linux 知识的历史框架,为后续深入学习打下基础。
目录
一、Unix--Linux的前身
1.啥是Unix
2.Unix的设计哲学
3.Unix 对现代系统的影响
二、Linux的诞生
1.Unix 的闭源与分裂
2.自由的火种:GNU计划与自由软件运动
3.林纳斯和他的业余项目
3.1.核心人物:林纳斯・托瓦兹
3.2.诞生背景:Minix 的启发与限制
3.3.关键时间线:从 0.01 到 1.0 的飞跃
3.4.名字的由来:Linux vs Freax
4.Linux的吉祥物
三、啥是Linux?
1.Linux 仅仅只是内核
2.GNU/Linux 的真正含义
四、Linux 家族:开源生态的 “分支树”
1.Debian 家族
2.Red Hat 家族
3.SUSE 家族
4.独立发行版
五、Linux的成长时间线
六、Linux为什么能成功?
七、Linux对当今世界的影响
一、Unix--Linux的前身
要理解 Linux,必须先读懂 Unix
1.啥是Unix
Unix是一种多用户、多任务操作系统。
20 世纪 60 年代末,美国贝尔实验室汇聚了众多顶尖计算机科学家。彼时,贝尔实验室与麻省理工学院、通用电气共同参与大型分时操作系统Multics(Multiplexed Information and Computing Service)项目的研发。
然而,Multics 架构复杂、实现成本高、推进缓慢,贝尔实验室最终于 1969 年退出该项目。
项目终止后,研究员肯·汤普森为了让自己开发的《Space Travel》能够在闲置的 PDP-7 小型机上高效运行,使用汇编语言开发出一个简洁的操作系统原型。
随后,他的同事丹尼斯·里奇加入开发工作。汤普森曾设计出 B 语言用于系统开发实验,但其能力有限。为解决系统编程中的性能与表达能力问题,里奇在 B 语言及 BCPL 的基础上设计出了C 语言。
1973 年,汤普森与里奇使用 C 语言对 Unix 进行了完整重写。这一举措极大提升了系统的可移植性,使 Unix 成为历史上首个广泛实现跨平台移植的操作系统之一,也为现代操作系统的发展奠定了基础。
2.Unix的设计哲学
1.一切皆文件
设备、磁盘、终端、网络连接,都可以用文件方式访问。
2.程序只做好一件事
开发中讲究高内聚、低耦合。
我们举个例子:
- grep:文本搜索
- cat:查看文件
- sort:排序
- wc:统计
每一条命令都有自己独特的功能
这些命令组合起来就能完成复杂任务
cat log.txt | grep ERROR | wc -l这条命令是 Linux/Unix 里非常经典的管道组合命令,作用是:统计log.txt文件中包含ERROR的行数
3.强调可组合性
“小工具组合成大系统”。
这也是现代微服务思想的源头之一。
3.Unix 对现代系统的影响
今天,我们用的很多系统都受Unix影响,比如MacOS,FreeBSD,Linux,Android等
可以毫不夸张的说,Unix是现代操作系统的祖师爷!
二、Linux的诞生
1.Unix 的闭源与分裂
1980 年代后,贝尔实验室所属的 AT&T 公司将 Unix商业化、闭源化,收取高额授权费,禁止自由修改与传播。同时,Unix 衍生出两大主流商业分支:
- System V(SysV):AT&T 主导,侧重企业服务器,商业闭源
- BSD(Berkeley Software Distribution):加州大学伯克利分校开发,开源但受版权限制,侧重科研与桌面
Unix 的 “闭源垄断” 与 “分裂混乱”,让程序员渴望一个免费、开源、兼容 Unix的操作系统 —— 这为 Linux 的诞生埋下了伏笔。
2.自由的火种:GNU计划与自由软件运动
在 Unix 走向闭源的黑暗时代,有一位名叫理查德·斯托曼(Richard Stallman)的“理想主义大侠”站了出来。他认为软件应该是自由的,用户应该有权利查看、修改和分享源码。
于是,他在 1983 年发起了GNU 计划(GNU's Not Unix,一个极其极客的递归缩写)。他的目标是:从头编写一个完全自由的、兼容 Unix 的操作系统。
为了这个目标,GNU 项目组开发出了一大批极为优秀的底层工具:
- GCC:功能强大的 C/C++ 编译器
- Emacs:神级文本编辑器
- Bash:标准的命令行解释器(Shell)
到了 90 年代初,GNU 计划万事俱备,几乎把操作系统上所有的应用软件、编译器、库文件都写好了,唯独缺了一个核心组件——操作系统的内核(Kernel)。他们自己研发的内核 Hurd 进展极其缓慢。
历史,正在等待那个补全拼图的人。
3.林纳斯和他的业余项目
3.1.核心人物:林纳斯・托瓦兹
林纳斯・托瓦兹(Linus Torvalds)被誉为Linux 之父,1969 年出生于芬兰,赫尔辛基大学计算机系学生。性格低调、务实,痴迷于操作系统开发,至今仍是 Linux 内核的核心维护者(BDFL,仁慈独裁者)。
他不仅缔造了风靡全球的 Linux 操作系统,还亲手开发出如今风靡全球、影响整个开源行业的分布式版本控制系统 Git。
3.2.诞生背景:Minix 的启发与限制
1990 年,林纳斯在大学接触到 Unix,但商业 Unix 价格昂贵,个人电脑无法运行。此时,他读到教授安德鲁・塔嫩鲍姆(Andrew Tanenbaum)的著作《操作系统:设计与实现》,书中附带一个教学用的Minix 系统—— 一个精简版 Unix,免费开源,可在个人电脑运行,但仅限教学使用,禁止商业与深度修改。
林纳斯在使用 Minix 时,发现其功能简陋、硬件支持差,无法满足自己的需求。于是,21 岁的他萌生了一个想法:写一个属于自己的、免费开源的类 Unix 内核。
3.3.关键时间线:从 0.01 到 1.0 的飞跃
- 1991 年 4 月:林纳斯开始编写内核代码,最初仅实现磁盘驱动、文件系统等基础功能
- 1991 年 8 月 25 日:林纳斯在 Minix 新闻组发布消息,公开自己的项目,征求全球程序员的意见与贡献
- 1991 年 9 月 17 日:Linux 0.01 版正式发布,仅包含 1 万行代码,功能极简,仅支持 386 架构电脑,免费开源(禁止商业使用)
- 1992 年:林纳斯将内核许可证改为GPLv2(GNU 通用公共许可证),允许自由使用、修改、传播(包括商业用途),吸引全球开发者加入
- 1994 年 3 月 14 日:Linux 1.0 版正式发布,内核功能完备,支持多任务、网络协议,全球开发者协作完成,标志 Linux 成为成熟的操作系统内核
3.4.名字的由来:Linux vs Freax
林纳斯最初给内核命名为Freax(Free+Unix 的组合),但他的朋友、FTP 服务器管理员阿里・莱姆克(Ari Lemmke)觉得名字不好听,擅自将项目文件夹命名为Linux(Linus+Unix 的组合),这个名字从此流传开来。
4.Linux的吉祥物
相信不少朋友都见过这只憨态可掬的企鹅,它正是 Linux 的吉祥物,更是开源文化的标志性形象,由 Linux 创始人林纳斯・托瓦兹亲自敲定。
这只可爱的企鹅还有专属名字,叫做Tux。这个名字一方面取自创始人林纳斯・托瓦兹与 Unix 的组合缩写,另一方面也取自英文燕尾服 tuxedo,贴合企鹅黑白分明的外形,寓意十分巧妙。
至于为何会选用企鹅作为吉祥物,背后还有一段趣味渊源。当年林纳斯前往澳大利亚游玩时,曾被动物园里的小企鹅啄咬,从此便对企鹅心生偏爱。加之企鹅性情温和、模样憨厚讨喜,契合 Linux 亲民包容的开源理念,同时企鹅栖息于无国界的南极,也象征着 Linux 自由开放、不分地域共享发展的开源精神,最终这只可爱的企鹅正式成为 Linux 的官方吉祥物。
三、啥是Linux?
1.Linux 仅仅只是内核
严格来说,Linux 并不是一个完整的操作系统,它仅仅只是一个内核
其中内核(Kernel)是整个系统的核心中枢,主要承担五大核心工作:
- 进程管理
- 内存管理
- 文件系统管理
- 硬件设备驱动
- 网络资源调度
我们常说的 Linux,严格意义上特指Linux Kernel,它只是一套纯粹的系统内核,并非完整可直接使用的操作系统。
2.GNU/Linux 的真正含义
单纯的 Linux 内核无法直接供用户日常使用,想要构成一套功能完备、能够正常操作使用的完整操作系统,还需要搭配大量配套组件。
一套完整的类 Unix 操作系统组成结构为:Linux 内核 + GNU 开源工具链 + 软件包管理器 + 桌面环境 + 各类应用软件。
GNU 项目提供了命令行工具、系统库、编译环境等基础必备程序,补齐了内核之外所有日常使用所需的基础功能。正因整套系统依托 Linux 内核,又大量依赖 GNU 项目成果,从严谨层面来讲,我们日常使用的各类 Linux 发行版,准确称呼应当为GNU/Linux。
这也就能解释,我们安装 Ubuntu、CentOS 等系统后,并非只有单一内核,而是自带命令工具、软件安装功能与可视化桌面,具备一套完整操作系统的全部使用能力。
总结:到底什么是 Linux
狭义上讲,Linux单指由林纳斯开发维护的Linux 内核,只负责管理硬件、调度进程、分配内存、驱动设备等底层核心工作,无法独立使用。
广义上讲,我们日常安装使用的各类 Linux 系统,是Linux 内核搭配 GNU 工具链、软件管理器、桌面环境及各类应用软件组合而成的完整操作系统,标准名称为GNU/Linux。简单来说,内核是 Linux 的核心骨架,各类开源组件赋予了它完整实用的操作功能,二者结合才是大家熟知的 Linux 系统。
四、Linux 家族:开源生态的 “分支树”
Linux 本身只是内核(操作系统的核心,负责管理硬件、进程、内存),我们日常使用的 “Linux 系统”,是内核 + GNU 工具(编译器、命令行工具)+ 桌面环境 + 应用软件的集合,称为GNU/Linux。
经过 30 多年发展,Linux 形成了庞大的家族体系,按血统与发行方可分为四大核心分支:
1.Debian 家族
- 核心特点:完全由全球志愿者社区维护,100% 免费开源,无商业公司控制,稳定性极高,包管理工具为dpkg/apt
- 源头:1993 年发布的Debian,是历史最悠久的社区发行版
- 主流衍生版:
- Ubuntu:2004 年发布,基于 Debian,由 Canonical 公司支持,界面友好,新手首选,长期支持版(LTS)提供 5 年更新
- Linux Mint:基于 Ubuntu,桌面简洁,兼容性强
- Kali Linux:基于 Debian,专为网络安全、渗透测试设计,集成大量黑客工具
2.Red Hat 家族
- 核心特点:商业公司主导,社区版免费、企业版付费,稳定性、安全性极强,服务器领域占有率第一,包管理工具为rpm/yum/dnf
- 源头:1994 年发布的Red Hat Linux(红帽),2004 年拆分出Fedora(社区测试版)与RHEL(Red Hat Enterprise Linux,企业版)
- 主流衍生版:
- CentOS:基于 RHEL 源代码编译,免费开源,长期是国内服务器首选(2020 年停止更新,转为 CentOS Stream)
- Rocky Linux/AlmaLinux:2021 年发布,由原 CentOS 团队创建,1:1 兼容 RHEL,替代 CentOS
- Fedora:红帽社区版,每 6 个月更新,集成最新技术,适合开发者与技术爱好者
3.SUSE 家族
- 核心特点:德国 SUSE 公司主导,企业级稳定性强,桌面体验优秀,包管理工具为rpm/zypper
- 主流版本:
- openSUSE:社区免费版,分为 Leap(稳定)与 Tumbleweed(滚动更新)
- SUSE Linux Enterprise(SLE):企业付费版,服务器与桌面通用
4.独立发行版
- 核心特点:不基于任何现有发行版,独立开发,追求极简、高效、高度自定义,适合技术极客与特殊场景
- 代表版本:
- Arch Linux:滚动更新,极简主义,手动配置,始终保持最新软件,适合折腾爱好者
- Gentoo:源代码编译安装,高度自定义,性能极致,适合追求性能的极客
- Alpine Linux:超轻量(仅 5MB),安全稳定,专为容器、嵌入式设备设计
五、Linux的成长时间线
- 1969---Unix诞生
- 1983---GNU Project 启动
- 1991---Linux Kernel 发布0.01
- 1994---Linux 1.0发布
- 1993-1996---经典发行版Debian、Red Hat、SUSE出现
- 2004---Ubuntu发布,Linux开始大规模进入桌面用户视野
- 2008---Android崛起,Linux占领移动端
- 今天---Linux已经成为云计算、容器、AI基础设施
六、Linux为什么能成功?
现如今 Linux 早已无处不在,应用场景遍布各行各业,而它能够收获巨大成功,核心原因主要分为以下五点。
- 开源:任何人都能查看和修改源码。
- 全球协作:开发者共同维护。
- 稳定可靠:服务器 uptime 极高。
- 可移植:支持几乎所有架构。
- 自由灵活:按需裁剪。
七、Linux对当今世界的影响
很多人以为 Linux 只是“程序员系统”。但是经过 30 多年发展,Linux 早已不是 “小众系统”,而是渗透到数字世界的每一个角落:
- 服务器:全球 90% 以上的服务器运行 Linux(阿里云、腾讯云、AWS 均基于 Linux)
- 云计算:Docker、Kubernetes 等容器技术基于 Linux
- 嵌入式:手机(安卓基于 Linux)、智能手表、路由器、智能家居、汽车系统
- 超级计算机:全球 TOP500 超级计算机 100% 运行 Linux
- 桌面:Ubuntu、Fedora 等逐步提升市场份额,适合开发者与办公
如果说Windows 改变了个人电脑。那么Linux 改变了互联网基础设施。
Linux 的成功,本质是开源精神的胜利:林纳斯将代码免费公开,全球志愿者自发贡献,无国界、无阶级、无利益垄断,共同打造一个 “属于全人类的操作系统”。这种 “自由分享、协同创新” 的精神,至今仍是开源社区的核心价值观。
写在最后
本文是博主在学习 Linux 过程中整理的个人笔记,写作时也查阅了大量公开资料与文献,力求内容准确。若有疏漏或表述不当之处,欢迎大家指正,也请多多包涵~
往期文章
C语言 基础编程练习题(一)
C语言 基础编程练习题(二)
C语言 基础编程练习题(三)
Java 基础编程练习题 (二)
Java 基础编程练习题 (三)