http://www.cn-dos.net/forum/viewthread.php?tid=26364 (本链接为管理员添加,便于参考)
-----------------------
DOS 已经有许许多多种了,有必要再建立一种 DOS 吗?多年以来,我也是有这么一个观念,所以,才一直没有主张建立一个新的 DOS;即便曾经在 FreeDOS 网站上看到招募 FreeDOS 管理者的公告,我也不曾想过要建立一个新的 DOS,或者去应聘管理 FreeDOS。
但是现在,我确实觉得有必要建立一个新的 DOS 了。原因主要有以下三点:
1、FreeDOS 的开发处于停顿状态,根本满足不了日渐增多的 DOS 需求和应用。在 FreeDOS 之后又诞生了若干种 DOS,这就是最好的证明。
2、FreeDOS 号称与 MS-DOS 100% 兼容,但遗憾的是,它并非 100% 兼容的。现今的工业标准 DOS 就是微软的 Win98 里面的 DOS。FreeDOS 远远不能代替这个 DOS,因此,它根本就是不理想的。
3、其它还有许多 DOS,但是竟然没有一个是把 “全面兼容微软的 DOS” 当作一个目标去做的。
因此,我觉得有必要建立一个新的 DOS,这个 DOS 的主要任务就是全面兼容微软的 DOS,并且可以替换掉微软的 DOS(比如说,在它之下敲入 win 就可以启动 Win98)。
-----------------
我们开发一个新的 DOS 是有可能的。DOS 虽然复杂,但比起 Windows 来,要简单得多。现存的许多项目中都有 DOS 的身影。比如 Wine, DOSEMU, DOSBOX, ReactOS, FreeDOS, NX-DOS 等等,这些都是开放源码的软件。我们还有微软的 DOS 躺在那里检验我们是否做到了兼容性。这都是有利条件。更重要的,我们有论坛上大量高素质的 DOS 人才在,这是难得的宝贵资源。
-----------------
开发 DOS 内核,可以大大提高开发者的技术水平,更多地发现微软的技术秘密。这无论对老手还是新手,都有着不可估量的作用。
-----------------
开发 DOS 内核是有意义的。DOS 是一个成熟的、简单的操作系统,它的历史很长。DOS 是不可能消亡的,这是由它的成熟度、简单性决定的。这就是它的内在美。DOS 和 BIOS 珠联璧合共同锻造了 PC 历史,因此,它有着雄厚的基础,它是不会在一夜之间就退出历史舞台的。你不可能消灭一个内涵和外延都很丰富的东西。当今的舞台上尽管有 Windows 和 Linux 在表现,但是,它们不能代表世界的全部。DOS 好像是一种纽带,它把不同的东西联系在一起。Linux 之下早就有成熟的 DOS 仿真器,Win9x 更是一个 DOS 下的应用程序。即便那日夜渴望消灭 DOS 的微软,也不得不在它最新版的 Windows 中继续保留 DOS 的一席之地。世界离不开 DOS,我们更离不开 DOS!
----------------------
好了,废话不说。我希望大家能够关注、讨论这一话题,这是我今天提议的目的。我本人不能担负这个任务(我有别的事情在做),否则,我是不会让给别人的:-)。希望志同道合者认真考虑这一问题,勇于担负起这个重任,本人会竭尽全力支持您的!
又及,谦虚是一种美德,本人好像不够谦虚啊。说实在话,本人还真做不了,因为本人不曾深入研究过 DOS,只是停留在略微了解的水平上。
Gemini 解答
技术背景与可行性分析
该提议的核心目标是开发一个**全面兼容MS-DOS 7.x(Win9x内嵌版本)**的DOS内核,以解决FreeDOS兼容性不足的问题。这一需求在2007年具有现实意义——当时工业场景、嵌入式设备及老软件仍依赖Win9x的DOS环境,而FreeDOS因开发方向分歧(如开发者团队对MS-DOS 7.x兼容性优先级低)无法满足需求。
关键前提与限制
兼容性的核心难点
Win9x启动依赖MS-DOS 7.x的私有接口(如注册表读写、版本验证、GUI启动钩子),这些接口未公开文档。Caldera公司曾通过逆向工程实现DR-DOS启动Win9x,但未公开技术细节;Ralf Brown中断列表仅记录部分接口的存在,参数多为未知(如Get/Set Registry entry的具体调用格式)。这意味着兼容性开发需依赖逆向分析,存在法律与技术风险。开发路径的选择
- 基于FreeDOS分支:FreeDOS的开源特性避免了版权问题,但其架构与MS-DOS存在差异(如多引导机制、内存管理实现),需重写核心模块以匹配MS-DOS 7.x的行为,工作量巨大。
- 逆向MS-DOS 7.x:直接分析Win98内嵌的IO.SYS/COMMAND.COM可获取私有接口细节,但逆向工程可能违反软件许可协议(EULA),存在法律风险。
- 基于LZ-DOS修改:LZ-DOS是压缩后的MS-DOS 7.10修改版,可启动Win9x,但本质是微软代码的衍生,无法作为独立开源项目的基础。
技术可行性
DOS内核的核心模块(文件系统、内存管理、中断处理)代码量约100KB级,理论上可通过团队协作实现。但需解决以下问题:
- 逆向分析MS-DOS 7.x的私有接口;
- 复现MS-DOS的未定义行为(如内存布局、中断处理顺序);
- 兼容Win9x的启动流程(如注册表加载、GUI初始化)。
历史误解与澄清
FreeDOS的“停顿”与兼容性
FreeDOS在2007年并非完全停顿,而是开发重心转向稳定性与新功能(如长文件名、大磁盘支持),而非MS-DOS 7.x的私有接口兼容。这一方向分歧源于开发者团队对“DOS标准”的定义差异(部分开发者认为MS-DOS 7.x是Win9x的附属,不应作为兼容目标)。LZ-DOS的本质
LZ-DOS并非独立开发的内核,而是俄国人对MS-DOS 7.10的压缩与精简版(去除冗余代码、压缩二进制),其兼容性依赖微软原始代码,无法作为开源项目的基础。后续讨论的补充价值
- Wengier的Caldera案例:指出私有接口可通过逆向工程实现,为兼容性开发提供了理论依据。
- johnsonlam的分支建议:提出从FreeDOS分支开发的务实路径,避免从零开始的高成本。
- 不点的启动测试:通过修改
scanreg.ini实现LZ-DOS启动Win98,验证了“压缩不影响核心功能”的结论,同时揭示了Win9x启动对注册表备份机制的依赖。结论
该提议在技术上具有可行性,但需解决私有接口逆向与法律风险两大核心问题。最务实的路径是基于FreeDOS分支,通过逆向分析MS-DOS 7.x的私有接口,逐步补全兼容性模块。这一项目的价值不仅在于开发新DOS,更在于挖掘PC早期操作系统的技术细节,为嵌入式开发、老软件维护提供支持。

置顶I
