先说明本贴为什么要发在本版。本来想在开发室发帖,但是,我本人较少去开发室;这是其一。更重要的,开发室都是在讨论 DOS 之下的开发,极少讨论 DOS 本身的内核的开发。另外,“DOS 内核” 和 “启动盘” 是密切相关的,因此,我觉得,在这里发帖比较合适。
-----------------------
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!
----------------------
好了,废话不说。我希望大家能够关注、讨论这一话题,这是我今天提议的目的。我本人不能担负这个任务(我有别的事情在做),否则,我是不会让给别人的:-)。希望志同道合者认真考虑这一问题,勇于担负起这个重任,本人会竭尽全力支持您的!
[ Last edited by 不点 on 2007-1-6 at 05:31 AM ]
-----------------------
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!
----------------------
好了,废话不说。我希望大家能够关注、讨论这一话题,这是我今天提议的目的。我本人不能担负这个任务(我有别的事情在做),否则,我是不会让给别人的:-)。希望志同道合者认真考虑这一问题,勇于担负起这个重任,本人会竭尽全力支持您的!
[ Last edited by 不点 on 2007-1-6 at 05:31 AM ]
Gemini 解答
技术背景与可行性分析
2007年提出“新DOS内核开发”的需求,核心源于当时DOS生态的兼容性缺口与FreeDOS的发展局限,这一需求在技术层面具有明确的合理性,但需结合历史背景与技术前提理解其边界:
1. FreeDOS的“兼容不足”与开发停滞
FreeDOS在2000年代初的开发节奏放缓(2006年发布0.7版后,直到2012年才推出1.0正式版),其兼容性问题主要源于:
- 未完全复现MS-DOS的未文档化行为:MS-DOS(尤其是Win9x内置的7.x版本)存在大量因历史兼容或bug形成的“隐式规范”(如某些中断的非标准返回值、内存布局的特殊约定),FreeDOS作为独立实现难以100%覆盖;
- 硬件适配滞后:对当时新兴的大硬盘(>137GB)、USB设备等支持依赖第三方驱动(如DUSE),未内建于内核,导致用户需手动加载且占用基本内存;
- 命令行工具的细节差异:如原帖提到的
copy零字节文件、dir显示缓慢,实际是FreeDOS命令解释器(COMMAND.COM)对MS-DOS内部命令的实现细节(如缓存策略、错误处理逻辑)未完全对齐。2. “全面兼容Win98 DOS”的技术挑战
原帖目标“替换Win98内置DOS并支持启动Win98”的核心难点在于:
- Win98 DOS的特殊定位:Win98的DOS模式并非独立OS,而是Windows 9x实模式引导层(包含对保护模式组件的预加载逻辑),其内核与Windows的VxD驱动、32位文件系统(如VFAT)存在深度耦合;
- 内存管理差异:MS-DOS 7.x支持扩展内存(XMS)、高端内存(HMA)的非标准利用方式(如将部分内核代码加载到HMA以节省常规内存),新内核需精确复现这些内存布局才能被Win98的保护模式加载器识别;
- 硬件抽象层依赖:Win98 DOS依赖微软专有BIOS扩展(如对IDE控制器的增强访问),第三方内核难以完全兼容这些非公开接口。
3. 可借鉴的现有资源与后续发展
原帖提到的FreeDOS 32(实际为FreeDOS的32位扩展项目)、ReactOS(开源Windows兼容项目)等资源,确实为新DOS开发提供了参考:
- FreeDOS的基础框架:其内核(KERNEL.SYS)已实现DOS的核心中断(如21h文件服务、25h绝对磁盘读写),后续可基于此补充MS-DOS特有的中断子功能;
- ReactOS的实模式组件:ReactOS的引导加载器(NTLDR兼容层)包含对MS-DOS实模式的模拟逻辑,可参考其对MS-DOS系统调用的兼容性处理;
- 社区后续实践:2010年后,FreeDOS通过社区维护逐步改善了兼容性(如1.2版内建USB支持、优化长文件名处理),部分解决了原帖提出的问题,但“完全替换Win98 DOS”仍未实现——这一目标本质上需依赖对微软闭源接口的逆向工程,受法律与技术文档限制难以完全达成。
4. 历史误解的澄清
原帖中“FreeDOS开发停顿”的判断在2007年是客观的,但需注意:FreeDOS的“停顿”更多是开发节奏放缓而非终止,其社区始终在维护更新;而“其它DOS未以兼容MS-DOS为目标”的说法不准确——如NX-DOS、ROM-DOS等商业DOS均以MS-DOS兼容为核心卖点,只是因市场萎缩未广泛普及。
结论
原帖提出的“新DOS内核开发”需求在技术上具有合理性,其核心价值在于填补FreeDOS与MS-DOS 7.x之间的兼容性缺口;但“全面替换Win98内置DOS”的目标因微软闭源接口的耦合性,在无逆向工程支持的前提下难以完全实现。后续FreeDOS的发展已部分验证了“基于现有开源框架优化兼容性”的可行性,而原帖对DOS“内在美”与“不可替代性”的判断,也符合DOS在嵌入式系统、硬件调试等场景的长期存在价值。
因为我们亲手创建,这个世界更加美丽。

