Linux 发展史
Linux 发展史
一、Linux 前身 —— Unix 发展史
1. 1964–1969 年:Multics 项目
- 由 MIT、贝尔实验室(Bell Labs)、通用电气(GE) 联合开发。
- 目标:打造一个多用户、分时、多功能的大型操作系统。
- 结果:项目过于庞大、进度缓慢、成本过高,贝尔实验室与 MIT 先后退出,Multics 最终失败。
2. 1969–1970 年:Unix 诞生(Unix 元年)
- 贝尔实验室的 Ken Thompson(肯・汤普逊) 在 Multics 废弃的基础上,为了运行自己写的游戏 Space Travel(太空旅行),用汇编语言写出了一套简易操作系统。
- 1970 年 1 月 1 日 被定为 Unix 时间戳起点,也被称为 Unix 元年。
- 最初的 Unix 完全用汇编语言开发,依赖硬件,移植性极差。
3. 1973 年:C 语言重写 Unix
- Dennis Ritchie(丹尼斯・里奇) 发明了 C 语言。
- Ken Thompson 与 Dennis Ritchie 用 C 语言重写了 Unix。
- 意义:
- 操作系统第一次摆脱硬件束缚
- 极大提升了可移植性
- 为后来 Unix 遍地开花奠定基础
4. 1975 年:Unix 进入大学
- 贝尔实验室允许大学、科研机构免费使用 Unix 用于教学,禁止商业使用。
- Unix 迅速在高校普及,成为计算机专业操作系统教学的标准系统。
二、开源文化与 GNU 计划(Linux 诞生的前提)
1. 1983 年:GNU 计划
- 发起人:Richard Stallman(理查德・斯托曼)
- 目标:开发一套完全自由、开源、免费的类 Unix 操作系统,命名为 GNU(GNU is Not Unix 的递归缩写)。
2. 1985 年:FSF 自由软件基金会
- 成立 FSF(Free Software Foundation),推动自由软件运动。
- 制定 GPL 开源协议(通用公共许可证):
- 软件可以自由使用、复制、修改、分发
- 修改后的衍生作品也必须开源
3. 1990 年前后:GNU 缺少内核
- GNU 已经完成:
- Emacs(编辑器)
- GCC(C 语言编译器)
- glibc(C 标准库)
- Shell、工具链等大量软件
- 但缺少操作系统内核,GNU 系统无法完整运行。
三、Linux 正式诞生
1. 核心人物
- Linus Torvalds(林纳斯・托瓦兹) —— Linux 之父
- 当时是芬兰赫尔辛基大学的学生,学习 Unix 操作系统。
2. 1991 年:Linux 0.0.1 版发布
- Linus 基于教学用的 Minix(微型 Unix),编写了一个简单的操作系统内核。
- 最初命名:Linus’s Unix
- 网友建议改名:Linux(Linus + Unix)
- 发布到网络社区,迅速吸引全球开发者参与贡献代码。
3. 关键版本时间线
- 1991 年:Linux 0.0.1(最初内核版)
- 1992 年:Linux 0.0.2
- 1994 年:Linux 1.0 正式版(稳定内核)
- 2003 年:Linux 2.6 内核(长期支持、广泛用于服务器)
- 之后:3.x、4.x、5.x、6.x 等版本持续迭代
4. 1992 年:GNU + Linux = GNU/Linux
- Linux 只是内核,本身不是完整操作系统。
- 结合 GNU 的各种工具、编译器、库,才形成完整可用的系统。
- 因此标准全称:GNU/Linux。
四、Linux 常见发行版(分支)
Linux = 内核发行版 = Linux 内核 + GNU 工具 + 软件 + 安装界面
主流发行版:
- Debian:社区驱动,稳定严谨
- Ubuntu:基于 Debian,桌面友好、易用
- Red Hat Enterprise Linux(RHEL):商业企业级
- CentOS:基于 RHEL 重新编译,免费、稳定、服务器首选
- Fedora:红帽旗下,新技术试验场
- SUSE:德国企业级发行版
- Arch Linux:滚动更新,定制化强
五、Linux 系统核心特点
- 开放性(开源)
- 内核源码公开,可自由修改、分发
- 多用户
- 系统可以同时登录多个独立用户,权限隔离
- 多任务
- CPU 分时机制,可同时运行多个程序
- 多平台、可移植性强
- 支持 x86、ARM、服务器、手机、嵌入式、物联网等
- 稳定、安全、性能优异
- 服务器领域几乎垄断
- 良好的网络功能
- 原生支持 TCP/IP,适合做服务器、路由、网关
- 一切皆文件
- 硬件、设备、进程、网络、配置,统统抽象为文件
- 统一操作接口,简单、一致、强大
六、Windows 与 Linux 对比
- Windows:单用户、多任务
- 通常同一时间一个主用户使用,可同时开多个软件
- Linux:多用户、多任务
- 多人同时登录、同时使用、同时运行多个程序,互不干扰
七、总结
Multics 失败 → Unix 诞生 → C 语言重写 → 高校普及 → GNU 缺内核 → Linus 写 Linux 内核 → 结合 GNU → 开源免费 → 发展出无数发行版 → 成为服务器、嵌入式、安卓底层的主流系统。