Linux 于 1991 年由芬兰学生 Linus Torvalds 作为个人项目开始,旨在创建一个新的免费操作系统内核。在其历史发展中,Linux 内核经历了持续的增长。自 1991 年首次发布源代码以来,Linux 内核从少量的 C 语言文件,且受限于禁止商业发行的许可,逐步发展到 2018 年发布的 4.15 版本,其源代码行数已超过 2330 万行(不包括注释)。Linux 内核在 GNU 通用公共许可证第 2 版(GPLv2)下发布,且带有系统调用例外条款,意味着通过系统调用使用内核的内容不受 GNU GPL 的约束。
促成 Linux 诞生的事件

Ken Thompson(左)和 Dennis Ritchie(右)是 Unix 操作系统的创建者。在 AT&T 退出 Multics 项目之后,Ken Thompson 和 Dennis Ritchie(两人均为 AT&T 贝尔实验室的员工)于 1969 年设计并实现了 Unix 操作系统,并在 1970 年首次发布。随后,他们使用一种新编程语言 C 重写了 Unix 以使其具有可移植性。Unix 的开放性和可移植性使其被学术机构和企业广泛采用、复制和修改。
1977 年,伯克利计算机系统研究小组(CSRG)基于 AT&T 的第六版 Unix 开发了伯克利软件发行版(BSD)。由于 BSD 包含了 AT&T 所拥有的 Unix 代码,AT&T 在 1990 年代初对加利福尼亚大学提起诉讼(USL 诉 BSDi 案),这极大地限制了 BSD 的发展和应用。
Onyx Systems 于 1980 年开始销售基于微型计算机的早期 Unix 工作站。后来,Sun Microsystems 公司作为斯坦福大学学生项目的衍生公司,亦在 1982 年开始销售基于 Unix 的桌面工作站。尽管 Sun 的工作站没有像后来 Linux 那样利用通用 PC 硬件,但它代表了第一个成功商业化的运行 Unix 操作系统的单用户微型计算机的分发尝试。
1983 年,Richard Stallman 启动了 GNU 项目,目标是创建一个自由的类 Unix 操作系统。作为该项目的一部分,他编写了 GNU 通用公共许可证(GPL)。到 1990 年代初,几乎有足够的软件来创建一个完整的操作系统。然而,GNU 的内核(名为 Hurd)未能吸引足够的开发资源,导致 GNU 系统不完整。
1985 年,Intel 发布了 80386 处理器,这是首个带有 32 位指令集和分页内存管理单元的 x86 微处理器。
1986 年,AT&T 贝尔实验室的 Maurice J. Bach 发表了《UNIX 操作系统的设计》一书,详细介绍了 System V Release 2 的内核,以及 Release 3 和 BSD 的一些新特性。
1987 年,Andrew S. Tanenbaum 发布了 MINIX,这是一种类 Unix 系统,旨在用于学术教学,展示其教材《操作系统:设计与实现》中的原理。尽管 MINIX 提供了源代码,但其修改和重新分发受到限制。此外,MINIX 的 16 位设计不适应日益普及的 32 位 Intel 386 个人计算机架构。在 1990 年代初,面向 Intel 386 个人计算机的商业 Unix 操作系统价格过高,个人用户难以承受。
这些因素,加上缺乏被广泛采用的免费内核,促使 Linus Torvalds 启动了他的项目。他曾表示,如果当时 GNU Hurd 或 386BSD 内核可用,他很可能不会编写自己的内核。
Linux的诞生

Linus Torvalds 于 2002 年 1991 年,在赫尔辛基大学攻读计算机科学专业期间,Linus Torvalds 开始了一个项目,这个项目后来成为了 Linux 内核。他专门为他当时使用的硬件编写了该程序,并且独立于任何操作系统,因为他希望能够充分利用他新购置的 80386 处理器的功能。开发工作是在 MINIX 系统上使用 GNU C 编译器完成的。
1991 年 7 月 3 日,Linus Torvalds 为了在他的项目中实现 Unix 系统调用,尝试从 comp.os.minix 新闻组中获取 POSIX 标准文档的数字副本,但未能成功获取。因此,Torvalds 最初使用赫尔辛基大学用于运行 Sun Microsystems 服务器的 SunOS 文档来确定系统调用。他还从 Andrew S. Tanenbaum 的 MINIX 教材中学到了一些系统调用,该教材是 Unix 课程的一部分。
正如 Torvalds 在其著作《Just for Fun》中所写的,他最终写出了一个操作系统内核。1991 年 8 月 25 日,年仅 21 岁的 Torvalds 在 comp.os.minix 新闻组上发布了这个系统的公告:
"大家好,使用 MINIX 的朋友们:
我正在开发一个(免费的)操作系统(仅仅是个业余项目,不会像 GNU 那样大和专业),适用于 386(486) AT 克隆机。这个项目自 4 月以来一直在进行,现在开始接近完成了。我希望能听到大家对 MINIX 的喜欢或不喜欢之处的反馈,因为我的操作系统在某些方面有些类似(例如文件系统的物理布局,出于实用原因)。
目前我已经移植了 bash(1.08) 和 gcc(1.40),它们似乎工作正常。这意味着几个月内我可能会有一些实用的东西,我想知道大多数人希望有哪些功能。任何建议都欢迎,不过我不保证会实现它们 😃
Linus(torvalds@kruuna.helsinki.fi)
PS:是的——它没有任何 MINIX 的代码,并且它有一个多线程文件系统。它不具有可移植性(使用了 386 的任务切换等),并且可能永远只支持 AT 硬盘,因为那是我唯一拥有的 😦"
根据 Torvalds 的说法,Linux 在 1992 年开始变得重要,这是因为 Orest Zborowski 将 X Window 系统移植到 Linux,使其首次支持图形用户界面(GUI)。
命名
Linus Torvalds 最初想把他的发明命名为 “Freax”,这个词结合了 “free”(自由)、“freak”(狂热者)和 “x”(表示与 Unix 的联系)。在系统开发的初期,他将文件以 “Freax” 这个名字保存了大约半年。尽管 Torvalds 曾考虑过 “Linux” 这个名字,但他最初觉得这个名字过于自我中心。
1991 年 9 月,为了方便开发,Torvalds 将文件上传至 FUNET 网络的 FTP 服务器(ftp.funet.fi)。赫尔辛基科技大学的志愿管理员 Ari Lemmke 认为 “Freax” 这个名字不太好,因此未经 Torvalds 许可,将项目命名为 “Linux”。后来,Torvalds 同意使用 “Linux” 这个名称。
为了演示 “Linux” 的正确发音([ˈliːnʊks]),Torvalds 在内核源代码中附带了一个音频指南。
Linux 使用 GNU GPL 许可
最初,Torvalds 在自己的许可下发布了 Linux 内核,该许可对商业活动有限制。与内核配合使用的软件是 GNU 项目开发的软件,并基于 GNU 通用公共许可证 (GPL) 授权。Linux 内核的第一个版本 Linux 0.01 包含了 GNU 的 Bash shell 的二进制文件。
在 0.01 版本的发布说明中,Torvalds 列出了运行 Linux 所需的 GNU 软件,并指出 “仅有内核是不够的,你还需要一个 shell、编译器、库等。” 这些工具大多是 GNU 软件,且在 GNU Copyleft 许可证下发布。
1992 年,Torvalds 提议将内核改为在 GNU GPL 许可下发布,并在 0.12 版本的发布说明中宣布了这一决定。同年 12 月,他发布了 0.99 版本,并正式采用了 GNU GPL 许可证。Linux 和 GNU 开发者随后合作,将 GNU 组件与 Linux 内核整合,形成了一个完整的自由操作系统。Torvalds 表示,“将 Linux 采用 GPL 许可证绝对是我做过的最好的决定。”

被折叠的 条评论
为什么被折叠?



