微软和IBM开源MS-DOS 4.0代码,引发争议

近日,微软和IBM联手开源了MS-DOS 4.0的源代码,将其托管在GitHub平台上。 这一举动旨在让开发者和爱好者有机会深入了解这款具有历史意义的操作系统,并为其开发新的功能和应用程序。

MS-DOS 4.0发布于1988年,是当时最流行的个人电脑操作系统之一。它引入了许多新功能,例如支持更大的硬盘驱动器和改进的内存管理。

然而,此次开源也引发了一些争议。 OS/2 Museum 的运营者 Michal Necasek批评微软发布的代码“残缺不全”,并指出代码中存在一些错误,导致编译时间过长。 Tom’s Hardware网站报道称,在配备16MHz英特尔386 CPU的IBM个人电脑上编译MS-DOS 4.0源代码需要70分钟。

尽管存在争议,此次开源仍然具有重要意义。它为研究早期个人电脑操作系统和软件开发历史提供了宝贵资源。

以下是相关新闻链接:

1 个赞

服了,这也能争议

所指出的主要问题是:

  1. 源文件失去重要的时间戳: 对于历史代码研究来说,文件的时间戳信息非常重要,它能帮助研究者了解代码的演变过程,以及每个文件最后修改的时间。微软在使用 Git 管理代码时,似乎没有妥善保留这些时间戳信息,导致开源的代码失去了部分历史价值。
  2. 将源代码编码转换成 UTF8 导致古早编程器无法识别: 当时使用的编码方式与现在的 UTF8 不同。微软在开源代码时将其转换为 UTF8 格式,虽然方便了现在的开发者查看代码,但也可能导致一些古早编程器无法正确识别和处理这些代码文件,增加了研究和复现历史环境的难度。

还真的有人去编译啊。

这个 DOS 4.0 是比较特别的版本。实际上并没有被广泛使用。后面的 5.0 比较成功。但 5.0 是基于 3.x 继续开发的,而不是这个 DOS 4.0

IBM 后面开发的 4.1 版本还是个所谓的多任务 DOS.

其实 MSDOS 是个非常好的抽象平台。足够简单。如果有人能够像《深圳IO》那样,做个游戏出来,包含各种有趣的任务,DOS 其实是个非常好的给小朋友学习平台。

当然,既然是游戏,那肯定不能继续用以前那个不好看的界面。至少得美化一下。

如果不转成 UTF-8,等下在 github 上面乱码又要被批评巨硬不专业哈哈。

这两个真是鸡蛋里面挑骨头了。

1 个赞

那个时代的源代码有超出 ASCII 范围的字符吗?不超出的话怎么来的乱码?

https://www.freedos.org/

有的啊。写了中文或者超过 128 以后的 ascii 码。巨硬当然应该也没有想到 128 以后的字符现在被 utf-8 用上了。

当然,我没有去看巨硬这个 MSDOS 4.0 里面有没有这些字符。我相信是有的,不然也不需要转 utf8 了。要知道 utf8 和 ascii 的 128 之前是完全一致的,根本区分不出来。

现在应该没有多少年轻人喜欢玩 DOS 了哈哈。时髦一点玩 bsd, archlinux 更能学到东西。MSDOS 学到后面,需要跟 640k 内存做斗争很麻烦。

我的博客还写过一篇 MSDOS 内存的文章呢

DOS 内存粗解

除了内存的问题,MSDOS 一般不能联网,只有 16 色显示图片都费劲。只能玩文本命令行,还是很多人不习惯啊。

好像可以玩3d game?

对。目前 dosbox 主要就是为了玩 DOS 游戏。

但是 DOS 游戏其实很简陋,除了老人家回忆童年的时候玩一下,大概也不会有什么人会去玩那个 DOS 游戏了。像我比较年轻,接触电脑时已经是 win2k/winxp 时代,我就没太大兴趣去玩那些个 DOS 游戏。

另外, dosbox 不是 dos,它模拟了 dos 的各种系统调用,同时还有个 8086 虚拟机。但总归不是 dos,没有 DOS 的各种命令其实。

dosbox是如此,但是freedos好像不是,但我未去用,所以也不知道。

FreeDOS 是一个重新实现的 DOS,可以跑起大多数的 DOS 程序。而且是跑在真机上面,而不是像 dosbox 那样子——它其实是个标准的 win32/linux 程序,必须依附另外一个完整的操作系统来实现显示、声音等功能。所以说 dosbox 是个模拟器,而不是真正上的操作系统。原理上 dosbox 就是解释执行 8086 汇编指令,碰到 int 21 这种指令,它就去模拟执行一些操作。

有兴趣大家一起一起讨论一下哈哈。我一直想用游戏的形式复活 DOS 呢。

在1998年,我的富豪朋友就有了pc,一堆光碟game,但是,now想起好像也不知哪些好玩了。

在你看,dos有哪些好玩的game?

我说的“想要游戏的形式复活 DOS”不是指在 DOS 里面玩古代的游戏,或者说弄新游戏跑在 DOS 里面那样是没有前途的。DOS 本身是一个非常受限的平台,受限于 640KB,想实现 2D 游戏都非常麻烦。你可以想象,现在随便一个贴图都是几十 M 往 GPU 里面丢的,640KB 能做啥?

我的想法来源于《深圳 IO》。如果能够弄个 steam 游戏,小朋友可以在里面模拟一个古代的工程师,使用 DOS 环境,完成各种任务,说不定小朋友们会非常喜欢,比如:

  1. 有个障碍路挡住去路了,编写程序让机器狗狗帮忙搬走障碍物。
  2. 绘制好看的 UI 界面,调用 LLM AI 帮小朋友们写作文。
  3. 小朋友买了几个彩色的灯泡,编写一段程序,让这些灯泡按音乐节奏发光。

通关终极任务是登月!使用 640KB 的 DOS 机器,控制一台登月舱登录月球表面,并且发回拍摄到的图片——这些图片实际上我们的嫦娥六号采集回来的真实月球表面!