几乎所有的BSD版本都保存得很好。如果你想找到1BSD,或者2BSD或4.3-Tahoe BSD,你可以在网上轻松地找到它们。然而,如果你搜索2.11BSD,你会很容易找到它,但它不会是原始的。您可以找到最新的补丁版本(2.11BSDpl469)或较早的流行版本(pl430很流行)。您甚至可以找到RetroBSD项目,该项目使用2.11BSD作为起点,为基于MIPS的微型PIC控制器创建系统。您将找到为该系统发布的每一个补丁程序。
但是,您将找不到原始的2.11BSD发行版磁带。你不会找到原始资料的。通过挖掘,你可以找到2.11bsdpl195。这本书是在原版发行约30个月后发布的,也是目前已知存在的最古老的一本。原因是原来的2.11BSD磁带是由USENIX发行的。他们对录音带收取了很高的费用,所以没有太多人购买。这是在Caldera在许可的许可下发布古代制服之前,所以大部分的饲料都流向了AT&;T。它的成本使其成为一种低销量的产品。另外,所有的时间都有补丁,所以主带会时不时地重新拼写。遗憾的是,原件没有保存下来,因为储存费用很高,而且到了20世纪90年代初,PDP-11有点像是一台边缘机器,除了在某些采购时间较长的利基市场之外。
但是等等,你说我们有所有的补丁,补丁-R超级好用。只是用它来倒车,对吗?
好吧,不。补丁程序并不都是上下文不同的。相反,它们包含指令,如删除这些文件,然后解压此uuended压缩tarball或其他信息销毁指令。所以,信息丢失了,也许是永远丢失了。我们到不了那里。
或者我们能不能。如果我们在真空中观察它,它听起来肯定是没有希望的。信息被毁了,你说的。然而,虽然它的真实信息在许多补丁中都被销毁了,但它只有一份副本被销毁。我们还有其他信息来源。2.11BSD版本是2BSD系列中一系列版本的一部分,因此我们有2.10.1BSD,也就是之前的版本。这一点被保存了下来。我们从发布说明中了解到,大量代码来自4.3BSD。还有一个名为comp.bugs.2bsd的Usenet新闻组发布了补丁。我们知道这些补丁最终出现在2.11BSD中(另外,2.11BSD的所有补丁都是由原始作者在Usenet离开之前发布在那里的)。
所以,这就把我们带到了我的2.11BSD pl 0恢复项目上。该项目的目标是创建两个主要构件。首先,如果有一个包含所有2.11BSD补丁的git回购会很酷。其次,如果能有2.11BSD发行版磁带的近乎副本,那真的很酷。该项目旨在以可重现的方式创建这些工件。完成后,任何人都可以使用我们现有的工件、项目中的脚本(包括从其他项目中获取数据所需的所有提示,以及一些手工制作的补丁,这些补丁生成的结果与所有关于这些文件的已知信息一致)。
我已经用我的方式完成了195个解除它们的补丁。它们中的许多都是简单的补丁,以令人讨厌的折衷的不同方式打包。然而,有些人会破坏信息,需要研究才能理清头绪。我已经尽了最大努力,并且已经回到了0级补丁来源(几乎有一两个挥之不去的问题需要在相对不重要的文件上进行追踪)。我已经创建了一个脚本来创建一个磁带,将其加载到我的2.11BSDpl 195中,以便在chroot中构建一个2.11BSD pl 0系统。
有一个我构建的脚本,它在pl0级别构建所有内容(两次)。在这些版本中至少有一些版本的发行说明中有噪音,说明存在可再现性问题。它目前已经过了初始引导阶段。我可以建造所有的图书馆,但需要自动化。
有两种方法可以让你随心所欲。一个是在推特上关注我。我的用户名是@bsdimp。或者你可以看看我的GitHub项目。我已经在那里写下了状态(虽然已经过时了几个星期),你可以找到一篇论文的开头(虽然它更过时,但有更多的背景)。我每周至少更新一次,但有时会更多,因为我有时间。