打造你自己的拒社交写作设备:使用 DOS 和 2 美元 USB 密钥

360影视 动漫周边 2025-04-28 17:12 2

摘要:有时候,现代操作系统的体量和复杂度 —— 即便是开源系统 —— 让我们怀念那种一个完整可启动的操作系统只需三个文件、配置一台生产用 PC 只需编辑两个每个可能只有十几行文本的文件的年代。DOS 虽然功能有限,但其所能做到的已经足够。从 1980 年代初开始的十

有时候,现代操作系统的体量和复杂度 —— 即便是开源系统 —— 让我们怀念那种一个完整可启动的操作系统只需三个文件、配置一台生产用 PC 只需编辑两个每个可能只有十几行文本的文件的年代。DOS 虽然功能有限,但其所能做到的已经足够。从 1980 年代初开始的十几年甚至二十几年里,全球大部分时间都在运行 DOS。随后 Windows 3 问世,可以说那便是衰败的开端。

并非只有这位老家伙对 DOS 怀有一丝怀旧情怀,这也是为何今天社区驱动的开源项目中有重现 DOS 的作品。近年来,我们关注过 FreeDOS 和 SvarDOS。如今,一群使用 DOS 的人是为了玩经典游戏,专门的模拟器例如 DOSBox-X、86Box 和 PCem 就是为了这一目的而生。但这位老家伙并非游戏爱好者,他觉得模拟效果略显不足。

随着 Microsoft 推出 Windows 95 后对 MS-DOS 逐渐失去兴趣,去年还发布了 MS-DOS 4 的源代码。而 IBM 对其 PC DOS 变种的开发则持续了更长时间,先后发布了 PC DOS 6.3、7.0 與 7.1,如主开发者 Vernon Brooks 在他的网站 PC DOS Retro 上所记载。除此之外,PC DOS 将 Microsoft QBASIC 替换为 Rexx 语言的解释器,并用 IBM E 取代了 Microsoft 的全屏文本编辑器。最后一个版本 PC DOS 7.1 甚至包含对 FAT32 的支持,虽然从未获得商业发布,但它成为 IBM ServerGuide Scripting Toolkit 的一部分,该工具包可免费下载。

64 位操作系统使运行 DOS 程序变得更加困难,但仍是可能的。至于真正的 DOS,却是另一回事。Reg FOSS 团队这几年来一直在现代硬件上试验 DR DOS 和 PC DOS。将它们安装并在虚拟机中运行相对容易,但是问题在于:在虚拟机中数据的进出并不简单。DOS 的出现远早于局域网,而它所支持的网络功能几乎也早于互联网。虽然能将 DOS 机器(包括虚拟机)接入互联网,但这会占用大量可用内存,而且一旦接入,也只能做很少事情。DOS 对 USB 的支持也不完善,虽然有一些驱动,但大多数现代硬件难以正常工作。

秘密的 DOS 超能力

然而,我们发现了一个有用的漏洞。早期的 DOS 完全依靠软盘启动,而现代计算机早已不再配备软盘 —— 但这些软盘的格式依然被沿用。任何现代操作系统都能轻松读取和写入 DOS 介质 —— 包括 USB 存储设备。这意味着几乎任何支持遗留引导的 x86 PC 都可以通过 USB 驱动器引导 DOS。当你这么做时,会出现一丝魔法:固件(BIOS 或带有“兼容支持模块”的 UEFI,用来模拟 PC BIOS)为 DOS 进行转换。一个可启动的 USB 密钥在 DOS 看来就像一块普通硬盘,无需任何驱动程序。DOS 无法读取现代磁盘格式,实际上对于超过 2 TB 的驱动器也无法支持,但这无关紧要,因为整个操作系统及所有程序都能装进几百 MB 的空间中,而这还远低于现在能买到的最小 USB 闪存盘。

多亏了古老的 IBM PC DOS Shell,这个可启动 USB 密钥提供了一个友好的菜单 —— 点击可放大查看。

IBM PC 兼容性已经延续了四十多年,虽然技术已发生巨大变化,但直到最近十几年,符合 Windows 10 或 11 规范的 PC 才逐步放弃对遗留引导的支持。

它不能做什么

因此,你可以从 USB 闪存盘引导 DOS,并且运行良好。但在 2020 年代,DOS 又能有什么用处呢?它对 BIOS 更新帮助甚微;UEFI 已经使其过时。DOS 无法读取 NTFS 或其他现代文件系统,所以作为紧急救援盘毫无作用。现代声卡或网络控制器的驱动很少,而且它对 TCP/IP 的支持非常有限,Wi-Fi 更是不用提了。

不过,我们可以给 DOS 添加许多这些功能。我们对此进行了研究和试验:可以加入 USB 存储、CD-ROM、网络与 TCP/IP 驱动,以及部分现代文件系统的驱动。但 DOS 的根本限制在于其“基本”或“传统”内存上限只有 640 kB。所有的驱动都必须装入这块内存;一旦加载几个驱动,就会导致没有足够的内存去运行任何应用程序。虽然曾有各种技巧试图扩展这一限制,而且最后一代的 DOS 标准版本也普遍内置了能够扩展内存的管理器,但有两个问题严重制约了这种扩展。

其一是,任何内存管理器都必须为每台机器手动定制。将一台机器的定制转移到另一台 PC,很可能导致 DOS 无法启动。有一些更聪明的内存管理器能够自动优化,其中 Qualitas 386MAX 已转为 GPL3 开源软件。但可惜的是,在我们的测试中,它们连一台 20 年前的 CPU 速度都难以应付,加载时便会冻结。如果有人能在任何 64 位芯片上顺利运行 386MAX,请务必告知。由于这两个因素,复杂的内存管理在 DOS 上实在难以实现,从而也限制了许多更高级 DOS 增强功能的发展。

以 21 世纪的标准看,DOS 如此精简简单,几乎可以在任何硬件上运行。它拥有成千上万的应用程序,其中不少工具非常强大。许多程序原本是共享软件或公共领域软件,因此可免费合法使用。甚至曾经商业化的一些应用现在也都合法转为免费软件。例如,FreeDOS 仓库中就有不少这类资源。开源在 DOS 时代尚不盛行 —— 它甚至早于 GPL 的诞生 —— 但一些知名开源软件(例如 Emacs 和 Vim)的 DOS 版本确实存在。

然而,DOS 的功能非常有限。它是一个独立的操作系统 —— 没有能够与现代系统通信的网络功能,而实现联网需要耗费大量精力。在现代硬件上,它还缺乏声音支持、图形功能非常有限,而且著名的一点是,它不支持多任务处理。

而它能做什么

随后,我们萌生了一个念头。有一种应用场景下,像数字世界中隐居沙漠洞穴的隐士一样与世隔绝竟成了一种优势——一种对无法连接 WLAN 和访问网络的状态反而乐见其成的用途:一个独立、不联网且无多媒体功能的写作设备。

不少知名文字处理软件的早期版本都运行于 DOS 上,包括经典的 WordPerfect 及最初版本的 Microsoft Word。还有其他一些写作工具,比如 Symantec 的 GrandView 大纲软件。虽然如今并非所有工具都免费,但令人惊讶的是,许多软件已免费。例如,1980 年代繁荣时期最受欢迎的英国应用 Arnor Protext 现已成为免费软件。甚至一些曾经知名的产品,在其最后继承者数年前停止营业后,也合法转为免费软件,正如我们去年提及的 MicroPro 的 WordStar 所示。

大纲软件 —— 作家的好帮手。Symantec 很久以前就将其 DOS 版本设为免费。

Microsoft Word 5.5 于 1990 年发布,是首个带有现代 CUA 用户界面的 DOS 版本 —— 也就是说,用户可以使用标准快捷键和下拉菜单。它仍然运行良好,且 Microsoft 在 1999 年将这一版本作为对早期 DOS 及 OS/2 平台上 Word 产品的千年虫修复版免费发布。(遗憾的是,这不适用于最后发布的 DOS 版本 Word 6.0,该版本的使用体验稍逊一些。)

在 1990 年代末,Microsoft 将 Word 5.5 for DOS 定为免费软件,作为千年虫修复措施问世。感谢你,Bill!

这取决于个人喜好,但对我们来说,一台装有 DOS 及一些功能强大、运行流畅应用程序的老笔记本电脑构成了一个令人愉悦的写作环境。我们曾经尝试过一些专用写作设备。大约十五年前,为了撰写本文的调研工作,这位老家伙购买了 Cambridge Z88 及 Amstrad NC100。它们都是很棒的设备,但在 21 世纪,资料的导入和导出操作变得极为繁琐。下一步便是那些数据传输更便捷的设备 —— 它们仅充当键盘角色。我们先从 AlphaSmart 3000(一个仅 19 美元的“神奇”小废物)起步,后来升级到稍微现代些的 AlphaSmart Neo,最终选用了 AlphaSmart Dana Wireless。尽管它们各有诸多局限,但都是出色的设备。我们也避免花费过多购买高端设备,例如 Freewrite 系列或我们在 2023 年提到的 ReMarkable 键盘(我们当时还提及了 Pomera 数字打字机)。这些设备看起来非常有趣 —— 虽然它们的键盘体验可能不尽如人意 —— 但价格并不便宜。

虽然这些设备在各自擅长的领域表现出色,但对我们来说,更大的屏幕、高质量的笔记本键盘以及功能丰富的文字处理器,无疑能提供更加愉快且高效的写作体验。

诚然,你可以运行某个 Linux 发行版,仅仅不安装 GUI 而采用文本控制台。但是,问题在于针对人类语言撰写的工具非常稀缺。大多数控制台文本编辑器都是为编写程序代码设计的。更糟的是,Vim 或 Emacs 的学习曲线极其陡峭 —— 我们自 1988 年起就使用 Vi 类编辑器,但至今仍厌恶它;而 Emacs 则更为艰涩。虽有更好的文本编辑器,但它们依然侧重于计算机文本处理,而非创作自然语言。

少数几个仅支持控制台模式的文字处理器之一是 David Given 开发的 WordGrinder,其设计注定了功能上的局限。即便如此,你依然需要掌握基本的 shell 使用方法。在 Linux 文本控制台下,你甚至可以上网、查收邮件、并将文件通过邮件发送给自己;然而,这过程繁琐且破坏了独立运行 DOS 所带来的少干扰优势,而 DOS 在为作家提供的应用程序上更胜一筹。

USB 可引导的 DOS

去年年底假期期间,我们在 GitHub 上推出了 USB-DOS 项目。这是一个(目前还非常小巧的)可引导 USB 密钥镜像合集,包含 FAT16 与 FAT32 两种映像。FAT16 映像可安装在 256 MB 的 USB 闪存盘上(如果你还能找到这么小的设备);而 FAT32 映像则适用于 4 GB 的 USB 密钥,还留有大量空余空间。第一个发布版本 1.0 包含了 MS Word、Arnor Protext、一款大纲软件以及 WordPerfect 编辑器。启动后会直接进入一个图形菜单,使你无需看到 DOS 命令行便能运行各个应用程序。第二个版本 1.1 的容量接近翻倍,但这是因为它新增了 Robert Sawyer 的 WordStar 7 档案中包含的 DOS 组件,包括文件转换工具和大量以 PDF 形式提供的重要文档。为此,我们还添加了 Adobe Reader for DOS。

官方 Adobe PDF 查看器 for DOS 随附其中,且甚至支持 SVGA。

该 USB 密钥基于最新版本的 SvarDOS。正如我们去年 12 月所述,SvarDOS 项目最近已从 FreeDOS 内核切换到使用 Enhanced DR-DOS 内核。该内核源自 Udo Kuhnt 的 DR-DOS Enhancement Project,该项目始于 Caldera 1996 年短暂的源代码发布。Caldera 在公布 DR-DOS 内核及若干核心工具后,却因忐忑而重新商业化 DR-DOS,期间加入了 FAT32 支持等关键增强。Kuhnt 在继续开源代码发布时复刻了大部分这些增强功能。

随后,一家名为 DeviceLogics 的 Caldera 分拆公司发布了 DR-DOS 8,接着推出了 DR-DOS 8.1——后者意外使用了 Kuhnt 的内核以及部分 FreeDOS 文件,旋即被撤回。

我们在使用 SvarDOS 进行实验时感到非常舒适。它比 FreeDOS 更小、更简单,而且保留了 1990 年代 DR-DOS 相同的配置文件名称和命令行语法,而 FreeDOS 则略有不同。使用 SvarDOS 就像穿上一双久违的老鞋,因此我们选择了它。

当前版本中的应用程序是经过刻意限定的。虽然存在一些 WordPerfect 的免费版本,但其 Windows 版本仍在销售,因此我们将其排除。不过,我们欢迎大家提出建议,前提是所推荐的软件须明确为免费,或其开发公司已不再存在。

我们的制作过程

从 USB 启动 DOS 非常简单。一旦完成,DOS 会将 USB 密钥识别为计算机中主要的可启动硬盘,且由于 DOS 只能原生读取 FAT 与 FAT32 格式,真实 HDD 或 SSD 上的数据对它来说都是不可见的。但这种 BIOS 模拟魔法仅在你从 USB 介质启动 DOS 后生效;如果 DOS 安装在真正硬盘上,则不具备此效果。因此,我们需要另外的工具来实现这项模拟 —— 这就需要借助虚拟机监控器(hypervisor)。

如果你曾从 ISO 文件安装操作系统到虚拟机中,你会明白,对于来宾操作系统来说,附加到虚拟机的 ISO 文件就如同一个光驱。对于附加的 USB 密钥亦然。VirtualBox 是一款开源软件,使这一过程相对简单,尽管文档并不十分清晰。正如 Reg FOSS 团队通常在 Linux 主机上工作一样,在 macOS 上操作则要复杂且不够稳定。总结一句:不要使用 Mac。我们甚至没有在 Windows 上尝试,因为人生实在短暂。如果你偏好其他虚拟机监控器,那就另当别论。

整个过程分为两个步骤,两者均不可或缺,且必须按顺序执行:

步骤 1

将你的用户账户设置为 USB 密钥设备节点的所有者。否则,当你以普通用户身份运行 VirtualBox 时,将无法访问该设备,虚拟机也会因莫名错误而无法启动。命令非常简单:

chmod lproven:lproven /dev/sdc

显然,请将命令中的用户名替换为你自己的。记住,每次重启计算机,或每次移除或重新连接 USB 密钥时,都必须重新执行此命令。

使用 VirtualBox 命令行创建一个虚拟的 VirtualBox .vmdk 设备文件,该文件指向 USB 密钥。例如,我们的测试机有两个 SATA SSD(/dev/sda 和 /dev/sdb),因此你插入的第一个 USB 密钥会被识别为 /dev/sdc。进入 VirtualBox 虚拟机存放目录,然后输入:

VBoxManage createmedium disk --filename sdc.vmdk --format=VMDK --variant RawDisk --property RawDrive=/dev/sdc

上述命令将生成一个名为 sdc.vmdk 的小型设备文件,其指向当前的 /dev/sdc。我们建议不要同时使用多个 USB 密钥。该文件是持久的,会在重启等情况下保留。

注意,该设备文件的权限并非持久,因此每次重启或重新插入后,都必须重新执行 chmod 命令。

我们在一台以文件作为硬盘的普通 DOS 虚拟机中创建了可启动 DOS 磁盘映像。我们将 sdc.vmdk 作为虚拟机的第二硬盘附加,以便从 DOS 内部对其进行分区和格式化 —— 这对制作可启动密钥至关重要。

同时,我们还创建了另一台测试虚拟机,将 sdc.vmdk 设置为其第一硬盘。最终得到的虚拟机能够(或尝试)从真实的 USB 密钥启动,这对测试非常有用。

这里需要提醒的是 —— 同时让两台机器挂载同一磁盘是非常危险的行为,往往会导致磁盘损坏。这意味着,如果 Linux 在插入 USB 密钥后自动挂载,请在尝试通过虚拟机访问前先卸载它。请不要通过弹出设备来卸载,否则虚拟机将无法再访问该设备。同样,在拔出密钥前请务必关闭虚拟机。此外,不要试图让两个虚拟机同时指向同一虚拟驱动器,无论该驱动器是真实的 USB 密钥还是虚拟硬盘。

如果你知道怎么操作,这里有一个传统的命令提示符,以及大量免费的基本内存。

我们不会详细介绍安装和配置 DOS,或更不用说 DOS 内存管理的步骤了。这些技能早已过时,虽然重温这些步骤是一种怀旧之作,但实际上不值得花费时间去传授。

这个 USB 密钥存在一些限制,不过是可以通过一些方式来解决。例如,SvarDOS 没有简便的方法来检查或修复 FAT32 驱动器,但我们不愿包含任何来自 Microsoft 的 DOS 或 Windows 9x 的组件以实现此功能,因为 Windows 至今仍在销售。请使用现代的 Windows、Linux 或 macOS 来修复磁盘。同理,DOS 密钥中不包含任何 Windows 或 Windows 软件 —— 我们也不会添加,所以请不要要求。

如前所述,我们可以添加驱动,使得该可引导密钥具备联网功能、读取 NTFS 或 Ext4 文件系统,或访问光驱 —— 但这些功能均受到限制,并且会以牺牲 DOS 基本内存为代价。更糟糕的是,这些举措会增加使用该密钥所带来的潜在风险。没有杀毒软件,因为我们认为 DOS 病毒对现代操作系统几乎没有威胁 —— 而现代操作系统的恶意软件也无法在 DOS 上运行。

可启动 USB 密钥的镜像文件已在我们的 GitHub 页面上提供下载,同时附带了一个基本 Wiki,其中包括一些文档和两份主要的 DOS 配置文件。如有问题或漏洞,欢迎通过 GitHub issue 向我们反馈。

来源:至顶网

相关推荐