投稿问答最小化  关闭

万维书刊APP下载

Linux 早期发展史

2023/4/24 14:17:46  阅读:95 发布者:

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.funet.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/

转自:“计算机教育”微信公众号

如有侵权,请联系本站删除!


  • 万维QQ投稿交流群    招募志愿者

    版权所有 Copyright@2009-2015豫ICP证合字09037080号

     纯自助论文投稿平台    E-mail:eshukan@163.com