早期的 Linux

我叫拉尔斯-维尔岑纽斯(Lars Wirzenius),Linux 起步时我就在那里。Linux 如今在全球取得了巨大成功,但它的起点却相当卑微。这是我对 Linux 最早期的记忆、它的创建,以及它走到今天的起点。

💬 133 条评论 | |

我叫拉尔斯-维尔岑纽斯(Lars Wirzenius),Linux 起步时我就在那里。Linux 如今在全球取得了巨大成功,但它的起点却相当卑微。这是我对 Linux 最早期的记忆、它的创建,以及它走到今天的起点。

1988 年秋天,我开始在赫尔辛基大学学习计算机科学,并认识了 Linus Torvalds,他是那一年计算机科学专业的另一位讲瑞典语的新生。第一年快结束的时候,我们使用了一台 Unix 服务器,我无意中把 rm 错打成了 rn(Usenet 阅读器),从而发现了 Usenet(讨论系统)。我把这件事告诉了莱纳斯,我们花了太多时间来探索这个系统。

第一年结束后,我们都去服义务兵役了,虽然地点不同。1990 年秋天,我们回到大学学习,都选修了 C 和 Unix 编程课程,其中也包括不少 Unix 内核架构的理论知识。这促使我们阅读了其他操作系统内核的相关资料,如 QNX 和 Plan 9。莱纳斯和我兴致勃勃地讨论了如何正确构建操作系统。我们像 20 岁的大学二年级学生一样自信满满。这一切没有被记录下来,留给后人,对大家都好。

1991 年 1 月,莱纳斯从当地一家用零件组装电脑的商店买了他的第一台个人电脑。这台个人电脑的 CPU 是 386,在当时算是比较高级的,因为莱纳斯想探索多任务处理。此外,由于他使用的是带有 32 位摩托罗拉 68008 CPU 的 Sinclair QL,他想要一个 32 位的 CPU,而不想降级到 16 位,所以他没有选择 286。莱纳斯的第一台个人电脑只有 4 兆内存和一个硬盘。

他买了一份游戏《波斯王子Prince of Persia》的拷贝,这占据了他接下来几个月的大部分业余时间。后来,他还买了一份 MINIX,因为在大学里使用过 Unix 后,他希望家里也能有这样的电脑。

As 和 Bs

玩完游戏后,莱纳斯开始学习英特尔汇编语言。有一天,他给我看了一个执行多任务的程序。一个任务或线程会在屏幕上写下字母 “A ”流,另一个则写下 “B ”流;当 “As ”流变成 “Bs ”流时,上下文切换非常明显。这就是后来被称为 Linux 内核的第一个版本。

莱纳斯后来扩展了这个程序,并用 C 语言编写了大部分内容。在此期间,即 1991 年春末,我为他编写了 C 语言 sprintf() 函数的实现,因为他还没有学会如何编写带有变量参数列表的函数。我想让他不用为写出每种类型的值而使用不同的函数而痛苦。这段代码的核心仍在内核中,即 snprintf()。

随着时间的推移,莱纳斯不断完善他刚刚起步的内核,并不断实现新功能。过了一段时间,他有了键盘和串口的驱动程序,屏幕上有了 VT100 终端转义序列的仿真,还可以用它通过调制解调器拨号到大学,在家里阅读 Usenet。科幻小说 有一天,莱纳斯意外地尝试用硬盘拨号到大学,结果主引导扇区以 “ATDT ”和大学调制解调器池电话号码开头。恢复过来后,他在内核中实现了文件权限。

1991 年 8 月,莱纳斯在 comp.os.minix 新闻组中首次公开提到了他的新内核。其中包括一句 “我正在做一个(免费)操作系统(只是业余爱好,不会像 gnu 那样大而专业)”。真是谦虚。该系统最初名为 Freax。几周后,莱纳斯请ftp.finet.fi的管理员之一阿里-莱姆克(Ari Lemmke)上传了第一个tar压缩包。阿里选择了 Linux 这个名字。初始版本中的一个源文件中仍然包含最初的名称。

在此期间,人们有兴趣尝试这个新事物,因此莱纳斯需要提供安装方法和说明。因为他只有一台电脑,所以他特意来我的电脑上安装。由于他的电脑是用来开发 Linux 的,而 Linux 只是在他的 Minix 安装基础上发展起来的,所以以前从未真正安装过。因此,我的电脑是第一台安装 Linux 的电脑。当时,我正在打盹,我推荐这种安装 Linux 的方法:一边打盹,一边让 Linus 做艰苦的工作。

Linux 的最初版本使用的许可证禁止商业使用。一些早期的贡献者建议改用自由软件许可证。1991 年秋天,理查德-斯托尔曼(Richard Stallman)访问了芬兰,我带着莱纳斯去听了斯托尔曼的一场演讲。这、贡献者们的压力和我的唠叨最终说服 Linus 在 1992 年初选择了 GNU GPL 许可证。

圣诞假期期间,莱纳斯在 Linux 中实现了虚拟内存。这使得 Linux 在内存不足的廉价机器上成为一个更加实用的操作系统。

1992

1992 年开始了与安德鲁-塔南鲍姆(Andrew Tanenbaum)的著名辩论,他是一名大学教授,也是《MINIX》一书的作者。他对 Linux 及其架构有一些看法。Linus 则对 MINIX 有自己的看法。这场辩论被形容为一场火焰战,但事后看来其实相当文明。

对 Linux 未来的成功更重要的是,X11 系统被移植到了 Linux 上,使 1992 年成为 Linux 桌面年。

我选择在社区方面做出贡献,而不是直接为内核做贡献,并帮助回答问题、编写文档等。我还办了一份关于 Linux 的短期时事通讯,它的主要意义在于发表了对莱纳斯的首次采访。这份时事通讯后来被 comp.os.linux.announce 新闻组所取代。

第一个 Linux 发行版也于 1992 年诞生:Softlanding Linux System 或 SLS。第二年,SLS 变身为 Slackware,伊恩-默多克(Ian Murdock)受此启发,于 1993 年创建了 Debian,以探索更加基于社区的开发结构。随后几年,其他一些发行版也相继推出。

1993 年,莱纳斯和我都被聘为大学助教。我们共用一间办公室。那间屋子里有一台电脑,莱纳斯接管了它,用来开发 Linux。我则用 DEC 终端访问 Usenet。

有一天,莱纳斯觉得很无聊,而且工作中的电脑感觉很慢。为了提高速度,他花了一天时间用汇编语言重写了 Linux 内核命令行解析器。(当然,这样做毫无意义,为了便于移植,解析器后来又用 C 语言重写了一次。它的速度并不重要)。几年后,他花了好几天时间玩 Quake,表面上是为了对内核内存管理进行压力测试,不过那是在一台更新的 PC 上进行的。在那个房间里,大家玩得很开心,没有任何恶作剧。完全没有。

后来,Linux 开始支持以太网和 TCP/IP。这意味着人们无需使用调制解调器就能阅读 Usenet。唉,早期的 Linux 网络代码由于是从零开始编写的,偶尔会有些粗糙。有一次,Linux 发送的数据包出了问题,导致网络上所有的 Sun 机器瘫痪。由于很难修复 Sun 内核,Linux 被禁止进入大学网络,直到其错误被修复为止。在办公桌上无法访问 Usenet 是一个巨大的动力。

1.0

1994 年春天,我们觉得 Linux 已经完成了。完成了。没有什么可添加的了。人们可以使用 Linux 进行编译、读取 Usenet 以及同时运行多个 xeyes 程序副本。我们决定发布 1.0 版本,并安排了一次发布活动。我们邀请了芬兰的计算机媒体,一家电视台甚至派出了摄制组。活动的大部分时间都是在后台编译 Linux 1.0,而 Linus 和其他人则谈论 Linux 是什么、有什么用。莱纳斯解释说,个人电脑上的商用 Unix 系统非常昂贵,因此自己编写更容易。

1995 年,莱纳斯和我在大学里学习了一门软件工程课程,主要包括一个大型实践项目。这个项目当然是建立在 Linux 的基础上。我坚持使用版本控制系统。在之前的课程中,我曾目睹过学生们用喊话的方式进行版本控制:学生们通过 NFS 共享一个源代码树,当他们要修改某些内容时,就大喊 “我正在编辑这个文件”。在我看来,这并不是一种有效的方法,所以我坚持使用 CVS,这也是我刚刚了解到的。这就是为什么莱纳斯不喜欢 CVS,多年来一直拒绝使用任何版本控制,而只是把 tar 球上传到 FTP 站点。

也是在那一年,Linux 首次被 Linus 移植到新的架构上。他得到了一台 DEC Alpha 机器。后来,我得到了这台机器,用作阅读 Usenet 的终端。其他人也把 Linux 移植到了其他架构上,但这并没有让我得到更多阅读 Usenet 的机器。

1997 年,莱纳斯毕业并搬到美国的 Transmeta 公司工作。我则在赫尔辛基地区的另一所大学工作。

在接下来的几年里,发生了很多事情。后来发现,Linux 还缺少一些功能,于是人们开始开发这些功能。开放源代码 “一词应运而生,IBM 在 Linux 开发上投入了大量资金。网景公司将其网络浏览器的一个版本作为开放源码发布。跳过一些细节和许多年,开源基本上占领了世界。LWN 创办后,逐周报道了这段历史的大部分内容。

1991 年,莱纳斯写道,Linux “不会像 gnu 那样庞大而专业”。2023 年。Linux 已经运行在各大洲、各大洋、数十亿台设备、轨道和火星上。对于最初只有两个线程、在屏幕上写入 As 和 B 数据流的系统来说,Linux 已经很不错了。

通过DeepL.com(免费版)翻译

元素周期表抱枕

本文由 TecHug 分享,英文原文及文中图片来自 The early days of Linux。

共有{133}条精彩评论

有趣。我从 1992 年的 0.98 版(忘记补丁级别了)开始使用 Linux。

当时有一个调制解调器,可以连接到很多公告板。我觉得自己很像 “战争游戏 ”中的英雄,打电话什么的:)

我还记得第一次使用 ppp 连接到真正互联网的那一天。经过反复试验,我终于 ping 到了 http://www.linux.org,它解析了主机名并返回了 ping。我先是沉默,然后只能说 “哇”。

哦,有趣的时光。)

-- linuxhansl

我的第一次网络连接是通过 shell 账户使用 slirp 进行的。Slirp 是一个 CSLIP 模拟器,运行在远程 shell 盒的用户空间。

在那个年代,多用户 shell 机器非常普遍,一些最早的互联网服务提供商也提供这种上网方式。

我所在的 ISP 叫做 Internet Access Cincinnati,它为每个用户提供运行 SunOS(Solaris 之前的版本)的 Sun Sparc 10 shell。用户还可以通过网络访问 POP 电子邮件和用户名主页文件夹。

-- api

Slirp 在 QEMU 和容器引擎中继续存在:https://github.com/rootless-containers/slirp4netns

-- jks

哈,在 ISP shell 盒中运行 slirp 也是我第一次超越 bbs 进入互联网狂野西部的方式。

此外,上网也是我使用 Linux 的最初动机之一,因为 Windows 3.1 的 Trumpet winsock 网络库非常糟糕,经常导致整台电脑崩溃。

-- jabl

奇怪的是,Linux 已经成为这个世界上唯一稳定的东西。你打开它,就知道随着时间的推移,它只会变得更好,而不会有任何恶意。

-- qwertox

在这个时代,这对我来说太重要了。大多数新技术和操作系统似乎都有自己的目的。它们想 “逼 ”我去做:购买 iPhone、订阅 Office 等。在这方面,使用 Linux 给我带来了一股新鲜空气。我只想让我的烤面包机烤面包。我不想让它告诉我应该买什么面包。

-- xtracto

这就是我不喜欢 Ubuntu 的原因–我不喜欢 Snaps,也不想让它们成为默认设置。

-- sgarland

不想烤未经授权的面包。

-- nehal3m

你不会从烤面包机上窃取热量。

-- xattt

>我只想要我的烤面包机

我听说 NetBSD 烤面包机不支持了 🙁

-- jmclnx

但我们都希望烤面包机问我们要不要烤面包

-- alt227

我记得在 90 年代中后期,我在购买[台式机]电脑和硬件之前必须做大量的研究–这种特定的网卡是否支持?这种显卡是否支持 X11?也许是当时的 WinModems 带来的创伤和妄想症,它们根本无法工作。

但到了本世纪初,我们似乎进入了一个我认为 Linux 会支持我的新硬件的世界,无论是二手 Zip 盘、网络摄像头还是其他什么。

如今我也是如此。我无所顾忌地随意购买主板和硬件玩具,并假定它们能正常工作。到目前为止,我一直很幸运,但这也是对驱动程序开发人员的真正考验。孤独的开发者对内核进行一次拉动请求,仅仅是为了添加神奇的数字来识别另一种 SD 卡或类似的卡。即使他们再也不做其他事情,我们也能从中获益。

-- stevekemp

即使是在 20 世纪中后期,我也不得不小心翼翼地购买 WIFI 等设备,否则就只能手动打补丁和编译半途而废的驱动程序。

-- kqr

蓝牙是另一个痛点。

但总的来说,这些东西还是能用的。

大约在同一时期,Windows 的设备驱动程序也不是完全没有问题。在随机硬件上进行全新安装时,往往需要在网上查找 Windows 驱动程序。当然,由于 Windows 的市场份额,这些驱动程序总是存在的。

-- hnlmorg

我多年来一直使用 10BaseT 以太网,后来又使用了有线以太网,这意味着我在很长一段时间内都没有使用过 WiFi。

现在你提醒了我,我在 2012/2013 年左右买了一个 WIFI 加密狗,结果因为无法使用而不得不退货。但我买的下一个替代品第一次就成功了。所以,也许我的记忆是玫瑰色的!

-- stevekemp

有人会用 ndiswrapper 吗?

-- noisy_boy

我用的是 LinModem!我的 US Robotics 33.6(带 X2 软件升级功能)可以正常工作了,我感到非常惊讶。后来,我爸爸的 ISP 又淘汰了一批外置串行 56k 调制解调器,我简直像到了天堂。那些调制解调器 “就是能用”。奇怪的是,大概是 6 个月后,DSL 开始大行其道,我试图找出在 Linux 下使用阿尔卡特 USB “黄貂鱼 ”型号调制解调器的方法。最后我买了一个外部 “网关”,它要求我把 MTU 设为 1492,而不是 1500。它把我的 Redhat 7.2 下载搞得一团糟。校验和总是不匹配,所以安装总是失败。

不知何故,我仍然把这些日子称为 “美好的过去”。

-- nobleach

哦,可怕的 WinModems!以及其他与 Linux 不兼容的硬件。为了帮助研究哪些硬件可以使用,有几个专门的网站试图从 Linux 用户那里收集关于使用哪些驱动程序等方面的信息。现在一切都简单多了。

-- stmw

哦,那个只能在 Windows 上工作的软调制解调器。

-- wejick

只要你不为你的 Linux 台式机购买英伟达™(NVIDIA®)驱动程序!

-- Philpax

我曾在多个 Linux 安装中使用过多块 Nvidia 显卡,从未遇到过一次问题。只要安装 Nvidia 驱动程序就能正常工作。我认为,在 Linux 上使用 Nvidia 显卡的所谓问题完全是夸大其词。

-- bigstrat2003

去年,我在 NixOS 的 Wayland 上的 sway/hyprland 上使用 NVIDIA,并安装了各种版本的驱动程序,但仍然出现了可怕的闪烁现象,基本上无法使用。经过一番折腾后,我买了一块 AMD 显卡,解决了这个问题,从此以后它就能顺利运行了。

-- Philpax

nouveau 的作者现在为英伟达工作。而红帽公司正在为主流写他们的 nova 驱动程序。我真希望这意味着在不久的将来,使用英伟达™(NVIDIA®)驱动将变得轻而易举。

在此之前,我会买 AMD。

-- pimeys

“孤独的开发者对内核进行一次拉动请求,仅仅是为了添加神奇的数字来识别另一种 SD 卡,或者类似的东西。即使他们再也不做其他事情,我们也能从中获益”。

非常正确–许多水滴汇成了洪流。

-- gjvc

每一口井都可能被下毒。Linux 依赖于人们的价值观和技能。这两者都无法避免随着时间的推移而退化。

就像二战后的公民社会一样,经济和外交的发展在人类历史上也是一个例外。

假设我们所拥有的现实将永远保持下去,而不需要保护或持续的维护努力,这是很危险的。

-- DoingIsLearning

> 每一口井都可能被下毒。Linux 依赖于人们的价值观和技能。这两者都无法避免随着时间的推移而退化。

恰恰相反,Linus 和它的核心委员会本身所持的道德立场,让 Linux 得以在这条道路上走到今天。

-- vednig

内核只是整个 Linux 生态系统的一小部分。

如今,就连 GNU 也只是一小部分。

systemd、Wayland、Xorg、PulseAudio、CUPS、KDE、Gnome 等都是在 Linus 和 GNU 治理之外维护的。

自由和开放源码软件操作系统(甚至不包括 Linux)提供的是选择的自由。但是,使用某些替代品可能要付出很大的努力。

因此,我不会说 Linux 就不会因为 Linus 而被 “毒化”。

-- hnlmorg

> 自由和开放源码软件操作系统(甚至不包括 Linux)提供的是选择的自由。但使用某些替代品可能要付出很大的努力。

没错。另一方面,Linux(内核)确实提供了基础。你可以替换它上面的大部分组件,你仍然可以为各种硬件提供硬件支持。即使你要开发一个全新的内核,Linux 内核也可以作为未记录或记录不全的硬件的文档代理。

我意识到这是过分强调设备驱动程序,因为内核提供的功能远不止这些,而且内核之外的生态系统也付出了巨大的努力,但现实情况是,大多数替代性操作系统的发展都超出了学术玩具阶段。部分原因在于,如果用户必须在虚拟机中使用操作系统,就很难吸引潜在用户,包括开发人员。

-- II2II

Linux 并非独角兽。FreeBSD 当然有很好的驱动程序支持。事实上,早在 00 年代,我在使用 FreeBSD WiFi 驱动程序时遇到的问题就比 Linux 少。

我不知道其他主要 BSD 的驱动程序情况如何,但 DragonflyBSD 是一个非常有趣的平台,其内核有一些真正的创新。

从技术上讲,MacOS 内核 XNU 也是开源的。尽管在这背后似乎没有太多的社区努力。

还有 OpenIndiana。它本身就有一些非常新颖的想法。

还有一些小型项目也有兼容性层,例如 Haiku 可以运行一些 Linux 和 FreeBSD 系统。ReactOS 和 Windows 驱动程序支持。但即使排除这些项目,而选择更大型、更稳定的项目,仍然有很多选择。

我还认为你过于强调内核了。例如,有些平台并不保证各版本之间的 ABI 兼容,而是要求使用其标准库作为内核入口(如达尔文而非 XNU,或某些 UNIX 上的 libc)。这就是为什么人们常说 GNU/Linux、Darwin 或 NT 不仅仅是内核的原因。

在这之前,我们先要解决一个大问题,那就是用户界面之上的所有抽象概念。例如,如今许多应用程序基本上都在一个名为 “网络浏览器 ”的虚拟机中运行。如今,一个现代浏览器本身几乎就是一个操作系统。

别误会我的意思,我并不是要贬低 Linux 或 Linux 内核。但它的主要优势在于它的发展势头,而不是它的独特性。

-- hnlmorg

不幸的是,苹果公司不接受 XNU 的拉取请求。用以前的 .NET Framework 术语来说,它们更像是 “可用源代码”。

-- p_ing

除非我弄错了,否则 XNU 的许可证(APSL)并不禁止在其他项目中分叉和重用(撇开 FOSS 许可证的兼容性不谈)。

例如,当甲骨文公司放弃对 OpenSolaris 的开发和支持时,OpenIndina 就从 OpenSolaris(CDDL)分叉而来。

APSL 已获得 FSF 批准,而其他 “可用源代码 ”类型的许可证则没有。

不过,就我个人而言,我还是更希望人们支持(例如)FreeBSD 而不是 Darwin/XNU。

-- hnlmorg

没错,但我也同意,为什么会有人去做一个基于 XNU 的操作系统呢?上游不会接受你的分叉改动,而且如果你想在一段时间内实现上游的任何改动,随着分叉的分化,也会变得很困难。我真的不认为 XNU 有什么特别之处。与 BSD、Illumos 或 NT 相比,XNU 到底有什么优势?

100%同意 BSD,不过我自己会选择 OpenBSD。两种方式都可以!

-- p_ing

遗憾的是,莱纳斯不是可再生资源。

-- llm_trw

> 不幸的是,莱纳斯并不是可再生资源。

我看到的主要问题是,我们并没有真正 “培养 ”出下一个莱纳斯

-- znpy

我们所有人都不会永远留在这个星球上,无论谁接替莱纳斯和核心委员会,他们都有自己的价值观和项目目标,无论如何都无法保证一切保持不变。

-- pjmlp

企业利益已经渗入 Linux。

-- userbinator

值得庆幸的是,大多数已经渗入 Linux 的企业利益都是积极的。如果企业能牢记上世纪 90 年代的教训,这种情况就不会改变。

(在上世纪 90 年代,企业要么开发和维护自己的操作系统,要么从别人那里获得授权。这两条路都很昂贵。此外,还出现过针对大型操作系统的合作,但似乎都没有取得积极的成果,因为拥有操作系统权利的企业最终都在相互直接竞争。不管出于什么原因,Linux 采用的开放源代码合作模式取得了成功。这很可能是因为没有人 “拥有 ”传统意义上的 Linux。)

-- II2II

企业利益本身并不坏,你必须指出它导致了什么邪恶的事情。大多数人似乎认为,企业对 Linux 的兴趣提高了投资水平,使我们可以在大多数商品硬件上使用 Linux,从而使它变得更好。

-- abenga

从不利的一面来看,一些有争议的大改动(通常是内核之外的改动,但仍然很重要)确实会被受雇于重要公司的人推动完成。

如果你的全职工作是 Linux,那么你确实有能力影响所发生的事情,而其他靠其他方式谋生的人则缺乏这种能力。你可以利用这种能力来克服一些反对意见。

对某些人来说,Linux 的目标是成为世界的操作系统。我以前也这么认为,但现在我意识到,如果真的这样做了,它就会变得一成不变、墨守成规。这是因为,Linux 的使用体验必须是稳定和通用的,这样,所有不关心 Linux 本身的用户就不必不断地重新学习如何使用它,或者至少只需要重新学习一种方法。因此,必须要有一个世界性的 Linux 发行版,可能会由一些恃强凌弱的公司来运营,以保证应用程序开发者和硬件供应商的利益。

我们会像抱怨 MS 或苹果一样抱怨它。我喜欢Linux的原因是错误的–我喜欢它是因为它有太多的选择。简约就是要消除选择。

-- t43562

> 对某些人来说,Linux 的目标是成为世界的操作系统。

这一点非常令人担忧。由于除了瞻博网络(Juniper)之外的所有制造商似乎都把企鹅蛋放在一个篮子里,关键网络基础设施中的 Linux 单一文化已经够多了。我只能希望,在 linux 经历重大失败和冥王星之吻开始让人感觉有点过于真实之前,未来能酝酿出一些常识。

-- NexRebular

每次更新都会有新的问题。我猜你说的 “稳定 ”是指 “你可以指望总会有东西坏掉”。

-- samiv

我担心这是莱纳斯的问题–他还是得时不时地出面维持秩序。我不确定当他退休后,情况是否会一直保持在好转的轨迹上。

-- exe34

我想去年有一次关于这个问题的讨论,当时 Linus 说他们已经在考虑在他之后由谁来发号施令了,所以我认为尽管现在这在很大程度上是 Linus 的事情,但我认为他们已经为下一个领导者做好了准备,以备不时之需。

-- cnt-dracula

它是开放源代码的恰当组合,但又拥有众多资源丰富的庞大用户,因此改进它符合每个人的利益。在这个具体案例中,“公地悲剧 ”就像是在倒退。

我们应该研究其中的社会经济动态和博弈论,并尝试复制它。应该有人写一篇关于 Linux 的博弈论博士论文,研究它是如何体现非公地悲剧的。

-- api

年轻到从未经历过没有 Linux 的世界,但又与 Linux 诞生的时间足够接近,以至于许多参与其中的人都还在,这种感觉很奇怪。我的整个职业生涯在某种程度上都是围绕着 Linux 展开的。甚至从 12 岁开始,我的整个人生都与 Linux 有关?想想它对我生活的影响,真是令人难以置信。

-- klysm

我对整个计算机科学领域也有类似的感觉。想想计算机科学的许多奠基人都还在我生命中的相当长的一段时间里,我就觉得很奇怪。

克劳德-香农 2001 年

埃德斯格-戴克斯特拉 2012

约翰-麦卡锡 2011

尼克劳斯-维斯 2024

康拉德-祖泽 1995

阿朗佐-丘奇 1995

吉姆-格雷 2007/2012

格蕾丝-霍珀 1992

如果阿兰-图灵没有被谋杀,在我有生之年,他甚至可能还活着。

2015 年去世的弗里德里希-L-鲍尔(Friedrich L. Baur)在我就读的大学里还有一间办公室,我经常路过,看到他的名牌,就想知道这一切是不是真的。

幸好唐纳德-克努特还在。

-- weinzierl

阿兰-图灵是故意或意外自杀的,他不是被谋杀的

-- neontomo

许多人认为他的 “化学阉割”(强制荷尔蒙疗法)先导致抑郁,后导致自杀。

也有人认为他是被毒死的。

我想这就是 “谋杀 ”的由来。

-- throw-qqqq

如果你了解一下英国政府在战后是如何对待他的,那么即使他们没有直接处决他,本质上也是谋杀。

-- flohofwoe

不,言之有物。如果他们没有真正扣动扳机,那就不是谋杀。这并不是说他们这样对待图灵是可以的,因为这是不对的。但重要的是,不要为了追求更大的修辞效果而滥用词语,从而污染了词语的含义。

-- bigstrat2003

https://en.wikipedia.org/wiki/Social_murder

-- Philpax

是什么导致他自杀的?

-- Philpax

注意 “Linux 是一个 10 岁男孩 ”的经典广告 https://www.youtube.com/watch?v=x7ozaFbqg00

-- ahazred8ta

我知道你的意思。很难想象一个没有 iPhone 的世界。

-- kernal

> 对于 Linux 未来的成功来说,更重要的是 X11 系统被移植到了 Linux 上,使 1992 年成为 Linux 桌面年。

我很高兴这件事终于尘埃落定了。)

读得不错!

-- imiric

我还清楚地记得 Linux 的早期。上世纪 90 年代中期,滑铁卢大学对 Linux 颇感兴趣,但也有很多人在谈论如何安装 Linux 或如何让它在某些系统上稳定运行的问题(尽管这在当时的操作系统中并不罕见)。在那个年代,人们必须知道如何编译自己的内核,并与 XFree86 进行斗争。

红帽(Red Hat)等 Linux 发行版在很短的时间内就解决了这些问题,使各方面的工作都变得简单多了。他们的文档也非常出色。

到 20 世纪 90 年代末,红帽在大学里已经和 Solaris、AIX 和 IRIX 一样普遍,但大多数人仍然认为它不如 Solaris。而现在,RHEL 是那里使用的主要*nix 系统(少数人使用 Debian)。

-- jasoneckert

最近,我试着在虚拟机中安装 Solaris,安装程序立即勾起了我对红帽衍生系统安装程序的回忆,我甚至都没意识到我还记得那个安装程序。我的年龄还不足以参与当时的商业 Unices,但即使回想起来,红帽似乎也非常清楚他们的目标是什么。

-- mananaysiempre

我认为这与当时的大型大学是一致的。我记得在 Alpha 即将停产的时候,在这些系统上重新安装 RedHat 确实让 Linux 成为研究人员的日常驱动程序。

-- ttyprintk

Linux 确实为这个伟大的平台注入了活力。我的地下室里还有一台运行 Red Hat 的 Alpha 个人工作站 600au。

-- jasoneckert

我有一台 Jensen(DECpc AXP 150)和一台 Alpha Multia;它们是 Windows NT 3.51 在 Alpha 上的第一批目标,但我在上面运行过早期的 Alpha Linux。这些设备可能还埋在我父母家的地下室里。没有公司里那台基于 OSF/1 的 DECserver 2100 “Sable ”酷。我很喜欢那台机器。

-- cbm-vic-20

> 那是必须知道如何编译自己的内核并与 XFree86 斗争的年代。

是 XF86Config modeline HOWTO 让我知道了 CRT 控制器是如何工作的。

-- ajross

在我人生的大部分时间里,似乎所有这些技术成就都是那些不可触碰的天才们的杰作,但读到这个故事,也让我深刻体会到长期友谊和经济/社会稳定对于支持彼此探索的价值。

-- infp_arborist

TIL: 莱纳斯是一个会说瑞典语的芬兰人;这也是一种东西。

这个声音从 1994 年起就免租地住在我的脑海里:

https://en.wikipedia.org/wiki/File:Linus-linux.ogg

-- qingcharles

的确,他是芬兰的瑞典少数民族… 我还以为每个人(在 HN 上)都已经知道了呢?

-- stmw

很多芬兰人都会说瑞典语。大约10%?这是一种官方语言。

1994/5 年,当我见到 Linus T 时,我问他为什么说瑞典语而不说芬兰语,他翻了个白眼。当时我就对这个问题感到厌烦。

https://linuxjournal.rubdos.be/ljarchive/LJ/008/2867.html

-- emmelaich

是啊。说瑞典语尤其是在芬兰沿海地区很常见。我的岳父在他的谈话中就很有趣地把两种语言混在一起。这有点滑稽,但在芬兰瑞典人中也很常见……

-- pimeys

转码

-- trueismywork

没有!我是个语言书呆子,曾在诺基亚工作过(不过只去过母公司一次),十几岁时在芬兰的 demoscene 中度过,90 年代剩下的时间都在 Linux 中度过。

-- qingcharles

哇哦 我想他的英语发音应该是后来才改变的吧?

-- rottc0dd

经典之作,一直在寻找。我还记得,ftp 站点上有一个名为 linus.au 的文件(我猜是原版,因为当时还没有发明 .ogg),还有一个非英语版本(芬兰语?

-- wolfi1

您可能想看看 https://www.kernel.org/pub/linux/kernel/SillySounds/

-- zaikunzhang

我有一台运行 Linux 0.95 的最低限度的机器:386sx16,4MB 内存,40MB 硬盘。实际上,我只有 2mb 内存,但我记得 Linux 已经安装,但几乎无法运行。我用 SIPPs 对它进行了升级,这样就能正常运行 Linux 了。在高中时,我的桌子上摆着一个 Unix 系统的盒子,那真是无比有趣。但实际上,我的 30 年职业生涯都是建立在这段经历之上的。衷心感谢 Linus 和所有支持这个项目的贡献者(到目前为止!)。

-- relistan

还值得一读: 只是为了好玩

https://www.amazon.com/Just-Fun-Story-Accidental-Revolutiona…

-- LorenDB

大约十年前读过这本书。文章很短,但强烈推荐。

-- juhanakristian

> 第一个 Linux 发行版也诞生于 1992 年:Softlanding Linux System 或 SLS。第二年,SLS 变成了 Slackware,伊恩-默多克(Ian Murdock)受此启发,于 1993 年创建了 Debian,以探索一种更加基于社区的开发结构。随后几年,其他一些发行版也相继推出。

它们的确跟进了!<https://upload.wikimedia.org/wikipedia/commons/1/1b/Linux_Di…>网站上的 “伟大的 Linux 发行版时间表”(Great Linux Distribution Timeline)提供了一张令人印象深刻的图表,展示了从 Slackware、Debian 等发行版发展而来的无数发行版。该图表目前仍由这里的社区积极维护: <https://github.com/FabioLolix/LinuxTimeline&gt;.

-- susam

在 Linux 的早期,我经常想到的一件事就是它的竞争对手。这篇文章提到 “商业 Unix 昂贵无比,因此自己编写更容易”。这在很大程度上是对的。

不过,还有 Coherent Unix。我还记得当时很多杂志的封底都有它的广告,售价 99 美元。我一直对购买它犹豫不决。Coherent 的一大缺点是没有联网功能。

后来,Linux 问世了,令人震惊的是,不久之后 Linux 就超越了 Coherent,Coherent 似乎一夜之间就消失了。

https://en.wikipedia.org/wiki/Coherent_(operating_system)

-- linsomniac

读一读 1990 年 12 月的一篇评论[1],似乎并没有那么精彩:

“Coherent忠实于Unix的根基,摒弃了局域网、图形用户界面、菜单、鼠标以及当今DOS用户和Unix用户对现代软件所期待的许多其他便利设施”。

报告还指出,“从 Coherent 学习 Unix 将会是一条崎岖不平的道路”,“用 Coherent 实现小型企业自动化也不现实”。

Coherent 是封闭源代码的,因此你无法利用像 Linux 这样不完善的系统来帮助改进它。Linux 早期吸引了大量的贡献者,并不是因为当时的 Linux 有多好,而是因为人们喜欢研究这种东西。

如今,99 美元约合 230 美元。我知道以前的软件一般都要贵得多(例如,80 年代末,PKZIP 的价格是 25 美元),但 230 美元买一个供玩耍的简易操作系统,相对于企业级 Unix™® 的定价来说,只能算是 “便宜”。

[1]: https://books.google.ie/books?id=JZxkO0PpksUC&pg=PT61&redir_…

-- ARP242

它没有某种 ncurses 功能吗?我看到的很多八十年代的软件(主要是通过电影)似乎都只需要一个未联网的 unix 终端就能操作。

-- ForTheKidz

>不过,还有 Coherent Unix。

我曾是它的客户,它的性能非常好,我曾在工作中使用 kermit 拨入 Sun 系统,它会给我回电,这样我就不用付费了。那是为了访问 USENET 和普通互联网。那是一段有趣的时光。老实说,到 1995 年,他们不得不倒闭,这实在是太糟糕了、

他们倒闭后,我开始使用 Slackware,现在还在用。那时,Linux 几乎每天都在变化。

Coherent 有一件事 Linux 做不到,但我通过 USENET 询问,有人在几天内就为我提供了一个补丁。它可以让我在 386sx 上使用两块显卡(一块 BW 显卡和一块 VGA 显卡)来显示两台显示器,就像 Coherent 所能做到的那样。

在 2000 年代财富 500 强公司介入之前,那时的人们更容易接受。

-- jmclnx

是的,当社区还很小的时候,人们真的很容易接近。我记得曾打电话给一个(也是德国人)咨询打印机的问题–我的三星打印机的爱普生仿真显然无法满足我的发行版爱普生驱动程序的要求。当时应该是 98 年或 99 年。他要么是 S.u.S.E.(当时的名字)的打印机人员,要么是维护相关驱动程序的人员。我们聊了大约一个小时,我记得他非常愿意与人打交道,他收藏的工作站级计算机也给我留下了深刻印象。但我的打印机问题仍然没有解决。

-- ahartmetz

作为一个倦怠的贡献者,我为用户调试的最初几次聊天非常愉快。但后来,他们成群结队地来了又来,我不得不竖起一堵墙,让自己专注于工作,这让我与用户的关系变差,压力越来越大……

祝福那些能够坚持下来的撰稿人。他们才应该拿着大科技公司的薪水,而不是我们这些放弃并向广告技术公司出卖灵魂的人。

-- OsrsNeedsf2P

这是一个非常重要的区别

-- stmw

此外,BSD 也是在同一时期出现的,尤其是 386BSD [1]。莱纳斯曾说过一句名言:如果早期就有 386BSD,他可能永远也不会开发 Linux [2]。

386BSD 的首次发布是在 1992 年,因此我们所说的时间窗口很短,只有 1-2 年。当然,FreeBSD 和 NetBSD 也是在那之后不久分叉出来的。

[1] https://en.wikipedia.org/wiki/386BSD

[2] https://www.antman.se/abc-klubben/linux/linuxdoc/linus.html

-- atombender

我从 1987 年开始在 i386 PC 上运行 386/ix [1],1992 年底转到 386BSD 0.1,然后在 1993 年的某个时候转到 FreeBSD。

[1] https://en.wikipedia.org/wiki/Interactive_Systems_Corporatio…

-- rjsw

我还记得 1994 年安装 FreeBSD 的情景。作为一个 13 岁的孩子,在我的电脑上安装一个类似 Unix 的环境对我来说太酷了。我觉得 FreeBSD 比 Linux 优越,但就像其他东西一样,应用程序的可用性决定了它的胜负。

-- xtracto

的确,关于早期的 Linux 和 Linus,这个问题非常有趣–显然不仅仅是替代品的价格或 ~Unix-on-x86 的整体概念–甚至在早期,Linus Torvalds 的方法就有些与众不同,我们可以从这些早期故事中窥见一斑。

-- stmw

虽然不想这么说,但微软的 Xenix 在 i386 上运行得非常快。1991/2 年,我用它进行了大量的科学编程。

-- emmelaich

是的!我记得那个时候。在进入 SLS 等早期 Linux 发行版之前,我曾短暂运行过 Coherent(1991 – 1992 年左右)。

-- icedchai

它支持 286 CPU 上的内存保护(真正的分段!),但没有 IP 栈(不过支持 uucp)。

它的文档相当不错,有一个很大的 “门挡”,他们称之为 “词典”,还有一个不错的 C 语言工具链,一个定制的 emacs 移植(他们称之为 microemacs)。

在此之前,我唯一玩过的 unix 是 atari st 上的一些 port,顺便说一句,它是 mark williams c 编译器(mwc 是 coherent 背后的公司)的一流平台。

它可以装在两张磁盘上,而我有一大堆软盘,用来装 slackware(内核 0.99pl2)。Linux 更有趣–它是通过互联网开源的。

有趣的时光

-- a-dub

我们不妨思考一下,如果没有 Linux,我们现在是否还在使用 GNU Hurd。

-- femto

更有可能的是,我们都在使用 FreeBSD

-- skissane

这是在假设许多为 Linux 内核投入时间和精力的人都会转而为 Hurd 工作。问题是,除了 Linux 的流行之外,没有什么能阻止他们做出这样的选择。不过,我倒是很想看看那个时间表。

-- nobleach

2003 年,有一部关于 Linux 的纪录片很不错。叫做《革命操作系统》。强烈推荐!https://www.youtube.com/watch?v=k0RYQVkQmWU

-- udev4096

我赞成。这是我看过的关于 Linux 和 GNU 的最佳纪录片。

-- rixed

当时(文章的)讨论:

Linux 的早期 – https://news.ycombinator.com/item?id=35557848 – 2023 年 4 月 (224 条评论)

-- dang

习惯于使用基于 pdp11/vax 的系统,转而使用 Suns 和其他工作站,由于种种原因,最初推出的 linux 软盘感觉 “不够熟”,而 BSD 系统也是针对带 MMU 的较大型英特尔芯片发布的。不过,Linux代码在较小的英特尔芯片上运行的效果要比Minix好一些。

当 386BSD 开始大显身手时,Linux 的优势就不那么明显了,但很快,发行版 “场景 ”的背后就出现了推动力,Linux 就像火箭一样飞了起来。

在最初的那些日子里,没有真正的网络堆栈,对桌面的支持少之又少,一切都是 “行云流水”。主要原因是,我认为 BSD 诉讼/许可证问题是 BSD 占据一席之地的负能量来源。

当时我有一台 IBM PC/RT,运行的是 4.3bsd 端口,非常可爱。但硬件太笨重了。个人电脑开始进入自己的时代,IBM 不想继续在多个操作系统中打转,于是推出了 AIX,ROMP 芯片也开始老化。一旦 PCI 图形显示卡和便宜的以太网卡出现,再加上主板上的以太网,我想游戏就结束了。(尽管由于显而易见的原因,大多数人对网络的体验都是串口调制解调器)。

-- ggm

” 我们就像 20 岁的大学二年级学生一样过于自信”。- 这就是改变世界的方式

-- zidoo

就是这样开始的。同样重要的是要认识到,UNIX 以及最终的 POSIX 框架的大部分内容都已制定。他们填补了一个小小的空白,并使其免费。对我来说,这才是最神奇的地方。

-- timewizard

lwn.net – 这样一个漂亮的网站,在手机上简直完美。有谁知道它是否使用了众所周知的内容管理系统?

-- indigodaddy

这是一个使用 Quixote 创建的自定义内容管理系统。

-- jzb

乔-布罗克迈尔 这个名字我已经很久没听过了。我是肖恩-雷夫施奈德(Sean Reifschneider),如果你还记得的话。

-- linsomniac

> 开放源代码 “这个词被创造出来,IBM 在 Linux 开发上投入了大量资金。

与其他 UNIX 克隆版相比,Linux 为何能真正起飞,这一点至关重要。

红帽公司(Red-Hat)的收购及其对 GCC、GNOME、Wayland、RPM……贡献的影响,又是如何最终实现的。

-- pjmlp

[2023],但这并不重要。很棒的文章!很高兴看到开发初期的情况–我一直听说一些轶事,比如它的简陋起源和 MINIX 争论,但我以前从未了解过它们的来龙去脉。

-- Philpax

我的错,当当刚刚也指出了这一点:

 当时(文章的)讨论:
  Linux 的早期 - https://news.ycombinator.com/item?id=35557848 -   
  2023 年 4 月 (224 条评论)

我刚刚看到这篇文章,没想到它两年前就出现在 Hn 上了。

-- stmw

没关系,一定时间后允许重复。

-- forbiddenlake

我知道这个故事的基本情况,但不知道内核 1.0 是在 1994 年年中出现的,而不是我模糊地认为的 1991-1993 年之间。当然,我在 1995 年 12 月安装的 Red Hat Linux 2.1(内核 1.2.13)(从那时起,我的家就 100% 没有微软的影子了)感觉功能相当完备。

-- ylee

读得不错。我的第一个 Linux 发行版应该是 Slackware,内核版本大约在 2.2 – 2.4 之间。我用过很多发行版;我认为 “巫师”(Sorcerer)是最神秘的一个。我最终选择了 Gentoo,就像一个人做的那样,我花在编译/破解/修复上的时间比我使用任何东西的时间都多。最终,我看重的是稳定性而不是先进性,从那时起,我就一直在愉快地使用 Debian。

-- sgarland

摘自维基百科上关于 Tannenbaum x Torvalds 辩论的链接文章: > 但 5 年后,每个人都会在自己的 200 MIPS、64M SPARCstation-5 上运行免费的 GNU。

我觉得有趣的是,当时的学术界并不看好 x86 的寿命。

-- chem83

人们并不认为 UNIX 工作站会像谷歌在 x86 上运行 GNU/Linux 的廉价 PC 硬件计划那样受到破坏。

如果 BSD 没有与 AT&T 抗争,或者微软没有为政府合同的最低要求而费心在 Windows NT 中提供适当的 POSIX 体验,Linux 的历史也许会大不相同,包括它对廉价 UNIX 服务器的影响。

-- pjmlp

>对于 Linux 未来的成功来说,更重要的是 X11 系统被移植到了 Linux 上,从而使 1992 年成为 Linux 桌面年。

然而,有些人还在等待第二次降临。

-- DeathArrow

令人惊奇的是,它真的很快就变得如此优秀和稳定。1994 年,还在上高中的我就能安装它,并将它与 X 一起使用,而且无所不能。从那时起,它就成了我唯一的操作系统,并奠定了我的职业生涯和人生道路。

-- segmondy

哦,我还以为是早期呢,因为就在前几天,整个系统陷入了死亡螺旋,所有的图形处理都慢慢停止,然后完全冻结,我不得不拔掉电源线。或者考虑到在调试状态下构建我的项目(是的,使用 GCC 的普通标准 CMake 调试构建),大约有一半的时间会导致内核完全挂起,我不得不再次拔掉电源线。

Linux(内核+你选择的任何用户空间)已经完成了大约 90%。现在,它只需要完成另外的 90%,就能超越 alpha….

“Linux桌面之年永远是10年之后”;-)

-- samiv

1998-99 年的 Slackware 3.6/4.0 永远不会忘记。

startx 命令工作的快乐(有时)

有趣的时光

-- openplatypus

我还记得,当时我必须选择是做 slackware 还是 debian!

我和周围许多说法语的家伙一样,选择了 slackware。哦,那段时光。

PS:从那时起,我就一直用 debian。

-- keyle

Slackware 11 是我在 2006-2008 年间作为大学生所使用的所有 PC(是的,刚刚告别了 Win XP)。我做作业所需的所有工具都装在 3 张光盘里。当时,快速的网络连接被认为有点昂贵。

现在我对 Debian 很满意。

-- anta40

> 我叫拉斯-维尔泽纽斯(Lars Wirzenius),Linux 诞生时我就在那里。

“我在那里,甘道夫。我 3000 年前就在那儿了” XD

-- tonnydourado

我们将永远拥有 Linux(内核),但桌面体验却被微软的 WSL 破坏了。

-- 9front

我不同意微软通过 WSL 破坏 Linux 桌面的说法。在我看来,我认为是自由和开放源码软件桌面生态系统(FOSS desktop ecosystem)西西弗式的开发搅局阻碍了 Linux 桌面的发展。然而,全行业从本地应用程序转向网络应用程序,再加上一些人对 Windows 越来越不满,以及转用 Mac 的高昂成本(尤其是那些需要比苹果默认销售内存更大内存的用户),这些都为 Linux 桌面提供了一条巨大的生命线。

Linux 桌面历经坎坷。最初的问题是最初的 KDE 使用了非自由和开放源码软件的 Qt,这导致了 GNOME 的开发,将自由和开放源码软件桌面生态系统分裂成两个相互竞争的桌面,分散了本已稀薄的资源。当然,2000 年代中期的情况还是不错的,当时 GNOME 2 和 KDE 3 刚刚问世,Linux 桌面似乎已经准备好向 Windows XP 发起冲击,就像 2005 年的火狐浏览器(Firefox)对 Internet Explorer 构成了巨大的挑战一样。就连 OpenOffice 在当时似乎也对微软 Office 构成了严峻的挑战。

在我看来,自 2000 年代末以来,已经出现了许多挫折。GNOME 3 极具争议的变化导致了 GNOME/Gtk 社区的分裂(肉桂和 MATE)。尽管 KDE 5 广受赞誉,但 KDE 4 并不受欢迎。GNOME 和其他项目(但不包括 KDE)深受移动计算模式的影响,因为人们误以为台式机将被淘汰。至少可以说,从 X11 到 Wayland 的过渡相当坎坷。

有趣的是,如今提高 Linux 桌面竞争力的因素已经从本地应用程序转向网络和 Electron 应用程序。作为一名 Mac 的老用户,我对原生应用程序的衰落和一致性的丧失感到遗憾,但基于网络技术的应用程序是跨平台的,甚至是平台无关的。如果一个人不需要 Windows 和 macOS 原生应用程序,那么转用 Linux 桌面的门槛就会低得多。甚至在 Linux 上,游戏情况也有了显著改善。

-- linguae

别忘了 Valve。

如果没有 Steam 内置的质子兼容层,没有游戏玩家会真正使用 Linux。

在工作之外,我可能 70% 使用 Linux,30% 使用 Windows。音乐制作在 Windows 上要好得多,但软件开发在 Linux 上要容易得多。在我的青少年时期,对 Ubuntu 的狂热是我后来职业生涯的重要组成部分!

-- 999900000999

我使用 Ubuntu 作为主硬盘已经有几个星期了,但我不得不承认,它显然还没有为大众做好准备。

-- markus_zhang

另见同一作者的文章:https://liw.fi/linux20

-- homebrewer

读后很受启发!感谢你的写作和/或分享。我未来的许多隐居计划之一就是黑进一个早期版本的 Linux。

———— 请忽略,我只是记下来,以备不时之需 —————

(事实上,比起 Linux,我更想研究 Win NT,因为它给我带来了美好的回忆,但 Win NT 从一开始就是作为成熟产品设计的,即使是泄露的 3.5 源代码对我来说也太多了。)

我查看了历史版本,0.11 似乎是一个好的开始。原因是什么?

– 有本书(https://download.oldlinux.org/ECLK-5.0-WithCover.pdf)沿用了 Lion 的 Unix v6 书籍的风格,并使用 0.12 内核作为参考;

– 0.11 没有虚拟内存和虚拟终端,而它们是我想实现的软件之一;

– 0.11 有一些基本的东西,因此我认为用 QEMU 和 QEMU-gdb 设置并不困难;

我要实现的软件清单

– 调试器(我可能会使用 QEMU-gdb,但如果我能编写一个简单的步入式调试器,也许会让调试更容易一些?不过现在还为时尚早,因为还没有编译器)

– 虚拟内存系统(仿效麻省理工学院 xv6 实验室的做法,也许会更先进一些,因为我将在完成麻省理工学院 xv6 实验室的工作后再进行这项尝试);

– 虚拟终端(不确定能实现多少,也许只是一个支持有限控制序列的基本终端);

– USB 驱动程序(不确定 0.11 版是否可以实现,我以前从未编写过驱动程序);

– 鼠标驱动程序(对我来说可能也太难了)

– 大量 CLI 程序作为热身。基本上是现代程序的简化版(开关较少);

– 文本编辑器。我从不喜欢 emacs 或 vim 的按键布局,所以这将是我自己的东西。我非常在意在不使用鼠标的情况下移动字符串;

– 一个非常基本的图形用户界面系统。不需要什么花哨的东西,只要能显示窗口和一些小工具就可以了。也许我根本不在乎多个窗口。要在一个窗口中显示一个菜单和一些按钮,可能需要花费很多精力;

– 简单语言的编译器/链接器(我认为,没有编辑器、编译器、链接器和调试器,狗粮就无从谈起)

准备工作:

– 我需要完成所有 MIT RISC xv6 实验;

– 我需要弄清楚如何编写 USB 和鼠标驱动程序;

– 我想研究 X11 和 Win32 图形用户界面是如何实现的,并弄清其架构;

– 我需要弄清楚如何编写终端和文本编辑器。网上有大量教程,应该不难;

– 我需要学习编译器理论,只要继续阅读《Crafting Interpreters》就足够了;

– 我需要找到一个舒适的开发和调试环境;

-- hnthrowaway0315

每当人们谈到编写或黑进自己的操作系统等问题时,我总是把这本书丢在一边:

https://www.amazon.com/Developing-32-Bit-Operating-System-Cd…

也许能在影子图书馆找到这本书。在 x86 上启动有些棘手,因为中央处理器是在实模式下启动的,所以在执行内核之前,你必须创建自己的启动扇区和引导程序。

1995 年,这本书和 Linux 激发了我编写自己操作系统的灵感。我的目标是要有一个能直接启动到现代图形用户界面的操作系统,并(使用基本工具)将其安装到一张 1.4Mb 软盘上。

-- qingcharles

谢谢你对这本书的介绍。据我所知,Linux 0.11 确实有自己的引导加载程序,其形式为 `bootsect.S`,但我不是操作系统方面的专家,所以肯定可能是错的。

现在我对这个项目有了更多的思考,可能第一个障碍就是如何编译这个东西……肯定有人试过,或者书中肯定有相关的章节。不过,我会先研究 xv6,给自己提供一些实践机会。

-- hnthrowaway0315

> 我想学习 Win NT

Windows NT 设计工作手册》:

https://computernewb.com/~lily/files/Documents/NTDesignWorkb…

两个内核的故事

https://youtu.be/HdV9QuvgS_w

我相信你已经买了一本《Windows 内部》。现在我正在等一本《Windows NT 内部》(该系列的第一版)和《Windows NT 文件系统内部》,两本书的作者都是海伦-卡斯特(Helen Custer)。

-- p_ing

谢谢。我确实有一本《Inside Windows NT》,但我决定先学习 XV6,因为它具有教学价值。即使是编译泄露的 NT 3.X 源代码也很困难。

-- hnthrowaway0315

90 年代初,i286 的故事让我想起了购买 i386 SX(4 MB 内存,20 MB HD)、运行 DOS 5 和 DOS 6 时的情景,由于某些原因,我买不起 DX 版!

-- baskint

已收藏。

-- initramfs

有趣的是,“Linux ”这个名字实际上是由阿里-莱姆克(Ari Lemmke)而不是莱纳斯本人取的。这样的细节凸显了社区和偶然性在开源软件历史中的作用。

-- linwangg

引用维基百科[1],其中提供了更多细节(截至 2025-03-03):

Linus Torvalds 曾想把他的发明称为 Freax,这是 “free”、“freak ”和 “x ”的谐音(暗指 Unix)。在系统开发初期,他以 “Freax ”为名存储了大约半年的文件。托瓦尔兹曾考虑过 “Linux ”这个名字,但最初认为过于自负而放弃了。[2]

为了便于开发,1991 年 9 月,文件被上传到 FUNET 的 FTP 服务器 (ftp.finet.fi)。赫尔辛基理工大学(HUT)的 Ari Lemmke 是当时 FTP 服务器的志愿管理员之一,他认为 “Freax ”不是一个好名字。因此,他在没有咨询 Torvalds 的情况下,将服务器上的项目命名为 “Linux”。[2] 不过,后来托瓦尔兹同意使用 “Linux”。

为了演示 “Linux ”这个词应该如何发音([ˈliːnɵks]),托瓦尔兹在内核源代码中加入了音频指南。[3]

[1] https://en.wikipedia.org/wiki/History_of_Linux#Naming

[2] Torvalds, Linus; Diamond, David (2001). Just For Fun – The Story Of An Accidental Revolutionary. New York: HarperBusiness. p. 84. ISBN0-06-662072-4。

[3] Torvalds, Linus (March 1994). “Index of /pub/linux/kernel/SillySounds” (https://www.kernel.org/pub/linux/kernel/SillySounds/). 2009 年 10 月 8 日从原文存档 (https://web.archive.org/web/20091008074754/http://www.kernel…)。2009 年 8 月 3 日检索。

-- zaikunzhang

当时我 22 岁,正在使用 Progress 4GL 软件,结合使用 Quarterdesk DesqView 和 “远程控制 ”软件维护全国各地的数据中心,“远程控制 ”软件提供了一种通过调制解调器连接控制键盘/鼠标/显示器的方法。

每个外地办事处都有 2 或 3 台 PC,专门为我们的开发团队提供 “远程终端”,这样我们就可以远程拨号,对 Progress 4GL 数据库服务器进行管理,该服务器在另一个专用系统上运行,通常是一个胖胖的 Novell Netware 服务器,有 4 或 8 个 640 兆字节的 “巨大 ”磁盘,专门用于数据库。

我的工作就是监控我们这边用于远程管理的一排排电脑。

老实说,我很不喜欢这份工作。

我在 80 年代的大部分时间都在学习 C 和 Unix 编程–我的第一台 Unix 机器是一台运行 risc/OS 的 MIPS Computing Magnum pizzabox。这台价值 1.5 万美元的机器就摆在我的办公桌上,但我仍然不得不走过走廊,在廉价的 DOS 电脑上黑来黑去,以便在全国各地新罕布什尔州的某个地狱般的壁橱里把东西修好。

至少我的收入还不错。

每个周末,我都可以去帕萨迪纳定期举行的 PC 电脑交换会,给自己买些零件,组装一台 “像样的家用电脑”–一台 486 电脑,8 兆内存,几百兆磁盘空间。一个 CD-ROM 驱动器,也许还有一个高端显卡和能显示 1025×768 色和 256 色的显示器。一个调制解调器,这样我就可以在家工作,运行我自己的 DesqView 实例,与所有那些麻烦的外地办事处进行多终端连接。

我还会定期(每周)去好莱坞的 Opamp 书店–我最喜欢的地方之一。正是在那里,我逛到了 “Unix ”区,看到了一些关于 MINIX 操作系统的杂志和书籍,也正是在那里,我了解到了 Usenet 的兴起,它是一个结识其他黑客、C 程序员和 Unix 书呆子的地方。我每月都会在这里阅读《2600》杂志。

有一天,我的家用电脑终于建成、启动并运行了。我连接到我的邮件服务器 wnsnews.com … 查看我的邮件。一位操作员同事给我发了一条信息:“看看 minix-list,他们在讨论一个新的类似 unix 的内核,你可能会感兴趣……”。

于是我就订阅了,结果就看到了–ftp.finet.fi 的链接,Linux 的早期版本。我花了大约一天的时间下载它,花了大约一周的时间弄明白我必须制作的各种软盘,以便为所有东西设置驱动程序,又花了整整一个周末的时间,在我的 Desqview 设置中,在一个全新的硬盘驱动器上安装了各种东西。

我被迷住了。它并不是什么都有–X11 还没有移植过来–但它已经足够让我移植一些自己的 C 代码了,让我看到事情可以像我的 MIPS pizzabox 一样工作,尽管是在我便宜的 486 上,而且……也许……有一天……会有人把 “远程控制 ”甚至 Desqview 终端移植到这个全新的 “Linux ”上。

几个月后,在我的灰胡子程序员同事们要我停止摆弄 “远程控制 ”机房里的所有备件,并将其完全关闭的时候,我了解到了这个全新的 Linux “发行版”–Yggdrasil。

到 OpAmp 书店一逛,就找到了:可启动软盘和完整的 Linux 文件系统,包含在 CD 中,可将我们的任何机器变成一个可工作的 Linux 系统 – 板载 X11!而且,如果我选择正确的 SVGA 显卡设置,它可能还能工作!真是大开眼界!我可以用家里的 486 作为我的 pizzabox 的一个像样的终端!我可以用 telnet 进入国家另一端的 Novell 服务器!我可以一遍又一遍地用 “Linux 才是未来 ”的想法无休止地惹恼我的白胡子同事,直到他们最终把我锁在 Novell 服务器之外,并决定我只适合做 Unix 的事情,以此作为惩罚,因为他们很清楚 “Unix 已经死了!”

几十年过去了,Unix 已经死了。Linux 无处不在。自从我在 minix-list 上看到第一篇关于 funet.fi 的帖子后,我每天都在使用它。我用它谋生,我做过惊奇的事、无聊的事、平凡的事和普通的事。“Netware已死,伙计!Desqview已死!DOS 早已不复存在!”

好吧,好吧,MIPS Computing 也没撑多久,那台 pizzabox 也真的(可悲地)退役了。不过,90 年代我在南加州赚了不少钱,在威尔希尔一号自己的小咨询办公室里使用 Linux 工作,我买了所有我想要的 SGI 玩具……现在我还保留着它们。

不过奇怪的是,我大部分时间都用苹果公司的 Unix 作为前端来访问它们,呵呵……。

-- helpfulContrib

他们在那篇文章中混淆了 Linux 和 GNU/Linux。

-- looofooo0

是的,他们没有费心去区分几乎无人问津的 Linux 和 GNU/Linux。

-- AnimalMuppet

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

你也许感兴趣的: