Linus Torvalds 的好友兼 linux 发展的重要人物 Lars Wirzenius 发文详细讲述了他记忆中的 Linux 称,作为现在全球范围内都相当成功的一个项目,Linux 的开端其实并不起眼。
Linux 诞生之初的一些代码是由 Linus Torvalds 与 Lars Wirzenius 合写的,因此 Lars 也是第一个与 Linux 合作的开发者。不过后来 Lars 选择了在社区方面,而不是直接对内核做出贡献,并帮助回答问题、编写文档等等。他还曾打理了一个 Linux 相关的短暂的时事通讯,因为发表了对 Linus 的第一次采访而受到关注,之后被 comp.os.linux.announce 新闻组所取代。
根据 Lars 的回忆,1988 年秋天,他在赫尔辛基大学学习计算机科学时遇到了 Linus Torvalds;两人在第一学年快结束时,获得了对 Unix 服务器的访问权限。之后在 1990 年秋天,两人在服完兵役之后继续回到大学学习;选修了 C 和 Unix 编程课程,其中包括了相当多的 Unix 内核体系结构理论,因此两人也对 QNX 和 Plan 9 等其他操作系统内核进行了解。彼时,两个 20 岁意气风发的年轻人,就已经开始讨论 “应该如何正确构建操作系统” 这一问题。
1991 年 1 月,Linus 从当地一家用零件组装计算机的商店购买了他的第一台 PC。为了满足 Linus 想探索多任务处理以及不想设备降级的需求,该 PC 配备了一个 386 CPU。与此同时,这台 PC 还拥有高达 4 兆字节的 RAM 和一个硬盘驱动器。在之后的几个月的时间里,Linus 的业余时间都花在了一个名为 Prince of Persia 的游戏上;后来还买了一份 MINIX。
As and Bs
游戏搞定后,Linus 开始学习英特尔汇编语言,并在某一天向 Lars 展示了他编写的一个执行多任务处理的程序:一个任务或线程会在屏幕上写入字母 “A” 的流,另一个是 “B”;当流 As 变成 Bs 时,上下文切换在视觉上很明显。这也是后来被称为第一个 Linux 内核版本的东西。
后来,Linus 扩展了这个程序,并采用 C 语言编写了大部分内容。在这段时间里,也就是 1991 年春末,Lars 帮忙写了一个 C sprintf 函数的实现,目前这段代码的核心仍然存在内核中。随着时间推移,内核不断更新变得更好:包括有了键盘和串行端口的驱动程序、屏幕的 VT100 终端转义序列仿真、并且可以用它通过调制解调器拨号到两人就读的大学。而有一次,在 Linus 不小心试图用硬盘驱动器拨打大学电话后,其主引导扇区变成了以 “ATDT” 和大学调制解调器池电话号码开头。但在解决了这一问题之后,Linus 就在内核中实现了文件权限。
时间线来到 1991 年 8 月,Linus 在 comp.os.minix 新闻组中首次公开提及了他的新内核,透露正在出于爱好开发新的免费操作系统 —— 最初命名为 Freax。几周后,Linus 要求 ftp.f.NET.fi的管理员之一 Ari Lemmke 上传第一个 tar 存档,Ari 则选择了 Linux 这个名字。初始版本仍然包含嵌入其中一个源文件中的原始名称。
Linus 为有兴趣的用户提供了安装方法和说明,并上门为 Lars 进行了安装,而 Lars 的电脑也是真正意义上第一台安装了 Linux 的 PC。对此,Lars 则调侃称,“在这一切发生时,我正在小睡,我推荐这种安装 Linux 的方法:小睡,而 Linus 则在努力工作。”
Linux 的第一个版本使用了禁止商业用途的许可证,一些早期贡献者建议其更改为自由软件许可证。1991 年秋天,Lars 带 Linus 去听了 Richard Stallman 在芬兰的演讲;于是,在贡献者的压力以及 Lars 的劝说下,Linus 在 1992 年初选择了 GNU GPL 许可证。同一阶段,Linus 也在 Linux 中实现了虚拟内存。
1992
1992 年要从与 MINIX 作者 Andrew Tanenbaum 的那场著名辩论说起。Andrew Tanenbaum 对 Linux 及其架构有一些看法,Linus 则对 MINIX 有意见。Lars 称,“这场辩论彼时被描述为一场口水战,但事后看来实际上是相当文明的”。同年,X11 系统被移植到了 Linux 上,使 1992 年成为 Linux 桌面年。
第一个 Linux 发行版也始于 1992 年:Softlanding Linux System 或 SLS。第二年,SLS 演变为 Slackware,激发了 Ian Murdock 在 1993 年创建 Debian,以探索更加基于社区的开发结构。接下来,其他一些发行版也相继冒出。
1993 年,Linus 和 Lars 都被大学聘为助教。Linus 开始在学校办公室的 PC 上进行 Linux 开发,并在某一天用汇编语言重写了 Linux 内核命令行解析器以实现提速;两个人在这个办公室度过了一段快乐的时光。在后来的某个时候,Linux 获得了对以太网和 TCP/IP 的支持。
1.0
1994 年春天,Linux 好像已经足够成熟:用户可以用 Linux 进行自我编译、阅读 Usenet、同时运行许多 xeyes 程序副本。因此,1.0 版本的发布被提上了日程。
1995 年,Linus 和 Lars 在大学上了一门软件工程课程,其中主要包括一个建立在 Linux 之上的大型实践项目。Lars 表示,他当时出于一些经验坚持要使用一个版本控制系统,也正是这种经历导致 Linus 不喜欢 CVS,并且多年来拒绝使用任何版本控制,除了将 tar 包上传到 FTP 站点。同年,Linus 得到了一台 DEC Alpha 机器,并首次将 Linux 移植到新架构。
1997 年 Linus 毕业并移居美国,在 Transmeta 工作;Lars 则在赫尔辛基地区的另一所大学开始了新工作。在接下来的几年里:Linux 功能日益完善、“开源” 一词被创造、IBM 在 Linux 开发上投入了大量资金、 Netscape 将其 Web 浏览器的一个版本作为开源发布等等相继。
Lars 称,“跳过一些细节和许多年,开源基本上占领了世界。1991 年,Linus 称 Linux 不会像 gnu 那样庞大和专业。2023 年。Linux 正在各大洲、各大洋、数十亿台设备、轨道和火星上运行。对于一开始只是两个线程,在屏幕上写入 As 和 Bs 流的东西来说,这个结果还不错。”
相关链接: https://lwn.net/SubscriberLink/928581/841b747332791ac4/