Linux 早期发展史
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 流的东西来说,这个结果还不错。”

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
Canonical 为 HWE 内核带来 Livepatch 支持
Canonical 宣布对硬件启用 (HWE) 内核提供 Livepatch 支持,第一个支持的 HWE 内核是 Linux 6.2,它将从 Ubuntu 23.04 版本向后移植并推送给 Ubuntu 22.04 LTS 的用户。 这意味着无论用户选择在 Ubuntu LTS 版本中运行哪个内核,都可以使用 Livepatch 功能保持内核更新和安全。 Livepatch 是一项为 Ubuntu Pro 订阅用户提供的功能,仅在 LTS 版本的 Ubuntu 上有效。启用后,Livepatch 允许用户安装各种实时补丁和更新,但之后无需重新启动,更新即可生效。 该服务对于不想重启或者由于运行/托管关键工作流程而无法重启的Ubuntu 用户来说比较有用,通常是企业、服务器和商业客户。 关于HWE 内核 HWE 内核专为 Ubuntu GA 内核发布时暂不支持的新硬件提供支持。对于那些想要使用最新硬件,但仍需要 LTS 版本的稳定性和支持的用户来说特别有用。 HWE 内核仅发布到 Ubuntu LTS 版本,但会从发行版的临时版本向后移植。例如,目前的 HWE 内核基于去年 10 月的 ...
- 下一篇
KDE 改进其多 GPU 基础架构
KDE 本周修复了很多 Bug 和其他问题,包括对多 GPU 基础设施进行了重大改革,用于 Plasma 6 中的 Intel 和 AMD GPU 变得“不再糟糕”。 之前开发组为了解决驱动程序的 Bug 强制 KWin 使用线性修改器。虽然成功解决了驱动的 Bug ,但又导致另一个显示问题:每当专用 GPU 用于合成时,连接到集成 GPU 的显示器上出现任何模糊,都会导致非常严重的性能问题。 最新的补丁合并稍微缓解了这个问题,而且标题还挺直白:“make multi gpu not suck”。 KDE 本周的其他更新: 新功能 在执行原本会自动跳到另一个窗口的操作时,现在可以选择不切换过去。 对于工作很有用,例如从电子邮件打开大量链接,但每次打开一个链接,窗口都会自动切换到 Web 浏览器中。启用新功能后,可以不自动跳转到浏览器。 用户界面改进 系统设置中的“突出显示更改的设置”功能现在可以在 Flatpak 权限页面上使用 使用Ctrl+.启动表情符号选择器窗口时,窗口弹出得更快。 身份验证对话框现在具有流线型样式 文件夹视图小部件使用弹出列表形式时,现在总是通过单击打开 在系统...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- CentOS8安装Docker,最新的服务器搭配容器使用
- Linux系统CentOS6、CentOS7手动修改IP地址
- 2048小游戏-低调大师作品
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- CentOS8安装MyCat,轻松搞定数据库的读写分离、垂直分库、水平分库
- CentOS8编译安装MySQL8.0.19
- CentOS6,CentOS7官方镜像安装Oracle11G
- CentOS7,8上快速安装Gitea,搭建Git服务器
- SpringBoot2整合Thymeleaf,官方推荐html解决方案
- MySQL8.0.19开启GTID主从同步CentOS8