Answers:
Rufus开发人员在这里。
正如@ magicandre1981正确指出的那样,Rufus提供的MS-DOS版本是Windows Millenium Edition的MS-DOS,“未打褶”以启用启动(我没有发明此补丁,而是从HP USB和其他USB拾起的。工具)。
此外,这也是重要的组成部分,鲁弗斯不会不嵌入应用程序中的MS-DOS文件,但挑选他们从它运行Windows系统,因为,因为MS-DOS二进制文件是专有的,由微软的版权,它是非法的任何人,但微软发布MS-DOS二进制文件,无论是在一个zip文件或应用程序(如事实上,看来惠普陷入与微软的法律问题时,他们试图制造一个版本的自己嵌入Windows 98 MS-DOS文件的HPUSBFW实用程序,Microsoft很快就让他们停止了此操作)。
因此,在Windows 10之前,我们都依赖于以下事实:diskcopy.dll
Windows用来创建DOS可引导软盘(实际上包含完整的可引导软盘FAT映像)的DLL()中包含了MS-DOS文件(来自Windows ME )。 ,然后从那里选择文件,我们可以合法地这样做。
但是,随着Windows 10的引入,Microsoft放弃了创建可引导软盘的功能(因为预期没有人使用Windows 10从软盘引导)并被删除diskcopy.dll
。这意味着我们不再具有创建MS-DOS可启动USB闪存驱动器的合法方法,最终结果是:
在实践中,我还没有遇到过有人指出FreeDOS在MS-DOS不能正常运行的情况下的明显报告,这就是为什么我不认为Windows 10中失去MS-DOS支持会造成很大的损失。另外,与使用MS-DOS(它是封闭源并且Microsoft早已停止支持)相反,FreeDOS是开放源代码并受到积极支持,因此使用FreeDOS通常会更好。
他从Windows文件中提取版本 diskcopy.dll
/* Extract the MS-DOS files contained in the FAT12 1.4MB floppy
image included as resource "BINFILE" in diskcopy.dll */
static BOOL ExtractMSDOS(const char* path)
查看dos.c中来自WinME(DOS 8.0)的DOS文件中的其他注释,他进行了如下所示的修补:
* diskcopy.dll中的COMMAND.COM和IO.SYS来自WinME残缺的版本 *删除了实模式DOS =>必须对其进行修补: * IO.SYS 000003AA 75-> EB * COMMAND.COM 00006510 75-> EB
我决定自己进行测试。我使用Rufus创建了一个运行MS-DOS的可启动USB,然后在笔记本电脑上将其启动。进入MS-DOS后,我运行ver
命令来确定其版本,该版本返回Windows Millennium(又名Windows ME)。
我猜这意味着Rufus使用的MS-DOS版本是从Windows ME中提取的,而不是较早的独立版本之一。我不完全确定此ME集成版本与早期版本有何不同。