标题: 关于WinMe的DOS8
[打印本页]
作者: brglng
时间: 2005-2-1 00:00
标题: 关于WinMe的DOS8
WinMe的Himem好像是在磁盘引导区加载的,因为我用WinMe做的启动盘,把里面的IO.SYS换成DOS 7.1的IO.SYS,COMMAND.COM、MSDOS.SYS也都换成DOS 7.1的,并删掉Himem.sys,用它启动,它提示我找不到Himem.sys呢!
作者: JonePeng
时间: 2005-2-2 00:00
不明白楼主的意思……既然DOS的核心文件都换成7.1的,这个DOS还叫做DOS 8吗?删掉Himem.sys当然会提示找不到它啦,Himem.sys是在CONFIG.SYS里面加载的啊。
作者: brglng
时间: 2005-2-2 00:00
其实我就是在WinMe里面格式化磁盘,并选择了“复制系统文件”,做成了一张DOS8 的启动盘,里面根本就没有AUTOEXEC和CONFIG,只有DOS 8 启动所需的文件。我把DOS的核心文件都换成DOS 7.1 的,且删掉了HIMEM.SYS,这样并没有修改引导区的内容,而用它启动电脑,仍然提示找不到HIMEM.SYS,这说明,所谓DOS 8能自动加载HIMEM.SYS,这与IO.SYS、COMMAND.COM、MSDOS.SYS都无关,而应该是在磁盘引导区内加载的。我想,如果做一张DOS 7.1 的启动盘(没有AUTOEXEC和CONFIG),并把其核心文件换成DOS 8的,它应该就不会自动加载HIMEM.SYS。
作者: bush
时间: 2005-2-4 00:00
有點意思~
作者: Michael
时间: 2005-2-12 00:00
以下是引用JonePeng在2005-2-2 0:32:10的发言:
不明白楼主的意思……既然DOS的核心文件都换成7.1的,这个DOS还叫做DOS 8吗?删掉Himem.sys当然会提示找不到它啦,Himem.sys是在CONFIG.SYS里面加载的啊。
楼主意思是:
dos7的config.sys里又没加载himem,怎么会提示找不到呢?
是不是做启动盘是把himem的加载代码放到了启动扇区里呢?
作者: JonePeng
时间: 2005-2-12 00:00
我从没装过WinME啊,所以启动盘是什么样子我不得而知,网上又没有该启动盘下载。
作者: Michael
时间: 2005-2-13 00:00
仔细找找,我很久以前传过一个的,不过现在肯定不能下载了,哈哈。
作者: Wengier
时间: 2005-2-14 00:00
呵呵,HIMEM.SYS在啟動扇區中加載?雖然是很可笑,不過不要忘記一個事實,那就是WinDOS8跟真正的純DOS是不同的,不要以為WinDOS8的IO.SYS衹是一般的啟動文件。事實上,WinDOS8的IO.SYS跟DOS6.x/7.x的結構是大不相同的,不可混為一談。所以說,WinDOS8並不是真正的純DOS系統。
作者: brglng
时间: 2005-2-14 00:00
可是我已经把IO.SYS换成DOS7.1的了~~它还是说找不到HIMEM.SYS,这说明,HIMEM的加载应该和IO.SYS无关啊!……
作者: brglng
时间: 2005-2-15 00:00
Microsoft爲什麽不單獨發行一個DOS8呢?
不過DOS 8 的兼容性好象確實不好,我用WINME的啓動槃啓動電腦安裝2k,他會報錯,並且無法再繼續。不過裝XP好像沒這個問題。(都是運行I386裏面的WINNT.EXE)
順便說一下,XP裏面的“格式化爲一個MS-DOS啓動槃”做出來的也是DOS 8,我試過了。
作者: Wengier
时间: 2005-2-15 00:00
brglng:可別把我上面的話理解錯了。HIMEM.SYS跟MS-DOS 7.1的IO.SYS當然是無關的,但是和WinDOS8的IO.SYS是有關系的!也就是說,WinDOS8是根本不需要HIMEM.SYS這個文件的,而真正的純DOS(如MS-DOS 7.1)則需要這個文件才能提供XMS等內存。不要以為MS-DOS 7.1和WinDOS8的IO.SYS的功能和結構是一樣的(雖然名稱相同,但事實上是有很大區別的),這才是我上面說到的意思。
再補充說明一下,跟WinDOS8根本不需要HIMEM.SYS這個文件不同,MS-DOS 7.1的HIMEM.SYS在默認情況下是自動加載以優化內存的,所以當沒有HIMEM.SYS這個文件存在的情況下才會報錯。如果你在CONFIG.SYS中加一條DOS=NOAUTO命令,那麼MS-DOS 7.1啟動時就不會自動加載HIMEM.SYS等文件了(不過通常情況下還是建議加載這個文件以優化內存使用)。
作者: qqqmmkx
时间: 2005-2-16 00:00
Win2003的是DOS 9 吗?
作者: Wengier
时间: 2005-2-17 00:00
楼上的,没有那么回事。WinNT/2K/XP及以上的系统都是NT内核的,与DOS无关。不过它们都能制作WinME带的DOS启动盘,即WinDOS8启动盘。根本不存在DOS9这个东东。
作者: brglng
时间: 2005-2-17 00:00
以下是引用Wengier在2005-2-15 23:46:56的发言:brglng:可別把我上面的話理解錯了。HIMEM.SYS跟MS-DOS 7.1的IO.SYS當然是無關的,但是和WinDOS8的IO.SYS是有關系的!也就是說,WinDOS8是根本不需要HIMEM.SYS這個文件的,而真正的純DOS(如MS-DOS 7.1)則需要這個文件才能提供XMS等內存。不要以為MS-DOS 7.1和WinDOS8的IO.SYS的功能和結構是一樣的(雖然名稱相同,但事實上是有很大區別的),這才是我上面說到的意思。再補充說明一下,跟WinDOS8根本不需要HIMEM.SYS這個文件不同,MS-DOS 7.1的HIMEM.SYS在默認情況下是自動加載以優化內存的,所以當沒有HIMEM.SYS這個文件存在的情況下才會報錯。如果你在CONFIG.SYS中加一條DOS=NOAUTO命令,那麼MS-DOS 7.1啟動時就不會自動加載HIMEM.SYS等文件了(不過通常情況下還是建議加載這個文件以優化內存使用)。
按你的意思说,即使把dos8启动盘中的himem.sys删掉,也能提供xms内存?我自己做的dos 7.1启动盘不加dos=noauto也不会自动加载himem.sys啊!没有himem.sys的时候也不会报错。要加载himem.sys,需要在config.sys里面加device=himem.sys。想一想这些,觉得只可能是在启动扇区上的区别啊。要在dos7.1的io.sys中集成himem.sys我想应该也不是不可以的吧?为什么xp自带的“格式化为一张ms-dos启动盘”提供的是dos8呢?难道m$会不知道dos8不是纯dos吗?
作者: 不点
时间: 2005-2-17 00:00
好象没影的事,居然讨论了这么多。
我刚试验过了,winme 的引导扇区引导 win98 的 io.sys,(删去 config.sys 和 autoexec.bat 文件),根本没有 himem 之类的提示。
在 winme 的 512 字节引导扇区中,也根本发现不了查找 himem 文件的程序代码。它和 win98 的 dos 启动软盘的 bootsector 几乎就是一模一样的。
作者: Wengier
时间: 2005-2-18 00:00
brglng:
“按你的意思说,即使把dos8启动盘中的himem.sys删掉,也能提供xms内存?”
沒錯!正是這樣!
“我自己做的dos 7.1启动盘不加dos=noauto也不会自动加载himem.sys啊!没有himem.sys的时候也不会报错。要加载himem.sys,需要在config.sys里面加device=himem.sys。”
這是可能的,因為是否自動加載himem.sys不僅與dos=noauto這行有關,而且與msdos.sys的設置也有關系!除dos=noauto外,msdos.sys的設置也有可能使得不自動加載himem.sys!另外,如果根本沒有msdos.sys這個文件或這個文件為空的話也不會自動加載himem.sys。這點我以前做DOS啟動盤的時候早就非常清楚了,不過我在上面回帖的時候覺得真的沒有必要說那麼多。本來就是一件無影的事(不点語),不要為此就扯來扯去的。
“想一想这些,觉得只可能是在启动扇区上的区别啊。”
這完全是你自己的誤解,根本沒這回事。啟動扇區中是不會調用himem.sys的,這點上面不点的回帖也提到過了。
“要在dos7.1的io.sys中集成himem.sys我想应该也不是不可以的吧?”
記住,沒有任何事情是完全不可以的,衹是是否有必要以及編寫難度的大小甚至編程目的和態度的問題。目前的問題在於,事實就有這樣的差別。
“为什么xp自带的“格式化为一张ms-dos启动盘”提供的是dos8呢?难道m$会不知道dos8不是纯dos吗?”
M$當然知道,連EMM386都無法加載的DOS當然不可能是純DOS。不過M$關於這個問題其實自己也很矛盾,一會兒說這是MS-DOS Startup Disk,一會兒又說這是Windows ME Startup Disk(見裡面的README.TXT等文件),就可見一斑了。
作者: brglng
时间: 2005-2-18 00:00
Wengier:
十分感谢您如此耐心的回答我这么一个无聊的问题。
刚才又做了一次dos8的启动盘(在xp下)。发现里面确实没有himem.sys,启动后到WinME的command文件夹下用mem /a/c/p看了一下,确实也看不到himem。可是我发现一个很奇怪的问题,在xp下做出的启动盘io.sys是114k,而winme做出来的启动盘却是116k?我都试了一下,发现两者所占内存也不一样,xp下做出的占21k,而winme的占36k,这是为什么?难道WinME的启动文件和XP做出来的启动盘中的启动文件是不一样的吗?我都用工具看过,版本号都是8.0。还有,为什么pwinme启动盘(是指系统的启动盘,不是空启动盘)下有himem.sys呢?有用吗?
用ver看了一下,xp做出来的盘,版本名称是“Windows Millionium”,WinME做出来的盘,版本是“Windows Millionium Edition”;而启动时,一个显示“Starting”,另一个显示“Starting Windows Millionium Edition”。M$可真有意思,连这个都要改!
我又把系统文件都换成dos7.1的试了一下,这次到没有提示少himem.sys!奇怪!
我发现dos7.1要占内存80k!如果dos8是纯dos,那一定会很不错,启动文件体积又小,占内存又少……(io.sys集成了xms功能,体积只有一百十几k,比你精简过的dos7.1的io.sys还小近10k呢!)
刚才又试了一下,确实不能加载emm386,一加载就死机。但是竟然可以运行32位的rar!这是不是说明dos8本身已经集成了保护模式?也就没有实模式了?难怪兼容性不好呢!但如果要用EMS也不能用emm386了,是不是一定要用不提供保护模式的ems驱动了?有这种东西吗!?
M$很奇怪,明知是dos8,却偏要在msdos.sys中加上“;W98EBD”的字样,有人以为这是从98取来的文件呢!还有,请问如何在dos7.1的msdos.sys中设置是否自动加载himem.sys呢?是否这样设置就不需要在config.sys中设置device=himem.sys了?顺便问一下,dos8的msdos.sys可以像dos7.1的那样配置吗?谢谢!!!
作者: Wengier
时间: 2005-2-19 00:00
“刚才又做了一次dos8的启动盘(在xp下)。发现里面确实没有himem.sys,启动后到WinME的command文件夹下用mem /a/c/p看了一下,确实也看不到himem。可是我发现一个很奇怪的问题,在xp下做出的启动盘io.sys是114k,而winme做出来的启动盘却是116k?我都试了一下,发现两者所占内存也不一样,xp下做出的占21k,而winme的占36k,这是为什么?难道WinME的启动文件和XP做出来的启动盘中的启动文件是不一样的吗?我都用工具看过,版本号都是8.0。... 用ver看了一下,xp做出来的盘,版本名称是“Windows Millionium”,WinME做出来的盘,版本是“Windows Millionium Edition”;而启动时,一个显示“Starting”,另一个显示“Starting Windows Millionium Edition”。M$可真有意思,连这个都要改!
两者的本质确实是一样的,大概M$也觉得不能所有内容都完全一样吧,所以就修改了少许内容,就像Win95OSR2和Win98的IO.SYS虽然有些区别,但本质一样同样的道理。M$改它自有它的原因,而且我也不是很喜欢M$最后的DOS败笔--WinDOS8,所以在此我就不再详细说了。
还有,为什么pwinme启动盘(是指系统的启动盘,不是空启动盘)下有himem.sys呢?有用吗?”
这个文件当然是没用的。说实在的,WinME中的himem.sys、emm386.exe等很多DOS有关的文件都是做摆设的,删掉均可。
我又把系统文件都换成dos7.1的试了一下,这次到没有提示少himem.sys!奇怪!
这就是msdos.sys和config.sys等系统配置文件的配置内容不一样造成的了。这就是DOS的可配置性。
我发现dos7.1要占内存80k!如果dos8是纯dos,那一定会很不错,启动文件体积又小,占内存又少……(io.sys集成了xms功能,体积只有一百十几k,比你精简过的dos7.1的io.sys还小近10k呢!)
其实,这就是我非常不建议DOS启动盘中不加载himem.sys的主要原因之一。如果加载了himem.sys的话,DOS绝对是不会占多达80K的常规内存的。换句话说,himem.sys基本上是启动盘中必备的程序。事实上,如果同时加载了himem.sys和emm386.exe的话,DOS 7.1只会占10KB左右的常规内存而已(其它的部分则在UMB和HMA中),这已是非常小了。至于WinME的IO.SYS,我在前面的帖子中已经说过,它的结构和纯DOS的有很大的不同,是经过特殊处理和压缩过的,而且删掉了很多纯DOS所需的代码等等,最后才会变得那么小的。不过既然跟DOS 7.1的IO.SYS大小已相差无几,所以也就不具备什么优势了,更何况它还有诸多问题(尤其是兼容性问题等)。
刚才又试了一下,确实不能加载emm386,一加载就死机。但是竟然可以运行32位的rar!这是不是说明dos8本身已经集成了保护模式?也就没有实模式了?难怪兼容性不好呢!但如果要用EMS也不能用emm386了,是不是一定要用不提供保护模式的ems驱动了?有这种东西吗!?
应该是没有的。一般用的EMS是一种虚拟内存,是不能直接在保护模式中提供的。其实WinDOS8可以说是一种特殊模式,跟纯DOS的情况都不太一样。
M$很奇怪,明知是dos8,却偏要在msdos.sys中加上“;W98EBD”的字样,有人以为这是从98取来的文件呢!还有,请问如何在dos7.1的msdos.sys中设置是否自动加载himem.sys呢?是否这样设置就不需要在config.sys中设置device=himem.sys了?顺便问一下,dos8的msdos.sys可以像dos7.1的那样配置吗?谢谢!!!
是否自动加载himem.sys除跟config.sys中的设置有关外,跟msdos.sys中的中的windir和winbootdir等项也有关系,如果它们被设置了(即非空)的话,系统将自动加载%winbootdir%\himem.sys(补充说明一下,windir和winbootdir设置项之间的关系很微妙,我以前已在论坛的某帖中讲过,在此不再重复)。至于WinDOS8,虽然也有点类似,但记住它跟DOS 7.1有些不一样,它的很多设置项都是没有用的,也就是做摆设的(有点类似himem.sys和emm386.exe)。这里面的明堂可多了,不过真的对这些非常“无影”的问题这么感兴趣吗?
作者: langhua
时间: 2005-2-19 00:00
这样的折腾点东西很有意思..........真的.佩服了.....我觉得就目前看.PC DOS...我觉得是我接触到的比较不错的...我做的启动光盘..就准备用他了.这几天换个2K系统...就为做这个呢...看看PCDOS理想不....我要试验下........
作者: brglng
时间: 2005-2-19 00:00
非常感谢Wengier !。。。
虽然你们都说我的问题“无影”,不过我确实觉得受益匪浅!长了不少知识!很高兴!我以后再也不会把MS-DOS 8.0 当作DOS来用了。不过我会去研究它……作启动盘还是用MS-DOS 7.1,为了兼容性和易用性,还是暂时不用别的DOS。。。但如果freedos 32什么时候出了可以“用”,且与ms-dos兼容性好的版本,我会去试试。
Wengier,能把你修改后不怕“逻辑锁”的MS-DOS 7.1的IO.SYS上传一下吗?论坛上的链接已不可用。。。谢谢!
作者: Wengier
时间: 2005-2-20 00:00
brglng:试试在这儿下载可以防“逻辑锁”的MS-DOS 7.10启动盘吧,里面的IO是已经修改过了的:http://newdos.yginfo.net/dosware/mdos71bk.zip
作者: 不点
时间: 2005-2-20 00:00
winme的DOS,或者 XP 制作的启动软盘中的 DOS,好像都是实模式的。在这些 DOS 中,都可以运行 grub.exe。
在 GRUB.exe 开始运行时,首先要检查 CPU 是否处于 real mode,如果不是的,将打印出错信息,退回到 DOS。因此,能够运行GRUB 的 DOS,应当是处于实模式的了。我想这一点应该是肯定的,至于说 WinDOS8 在别的方面出现毛病,那是另外一个问题。
winme 的 FDISK 可以直接在 win98se 的 DOS 下使用。win98se 自己所带的 FDISK是不能分区大硬盘的,winme 的 FDISK 则毫无问题,所以我建议直接将 winme 的 FDISK 放在 win98se下使用。(这可能是 winme 仅有的一个可以称道的优点了)。
作者: Wengier
时间: 2005-2-20 00:00
不点:呵呵,当然了,除目前还很不稳定的FreeDOS32以外,没有一个DOS是处于一开机就真正是处于保护模式的(就像以前我跟你讨论时跟你提到过的关于EMM386加载前后的情况那样)。不过WinDOS8的情况确实很特殊,虽说内核还未进入保护模式(这是自然的),但有着诸多的问题,实在不像样。这里就不再多说了。不过不知不点指的“大硬盘”是指多大的硬盘?以前所指的“大硬盘”一般是8GB以上,60GB左右以下的硬盘,但这些用各种新版本的FDISK分区基本上都并不是什么问题。更大的一点的(超过60GB的),比如说我的80GB硬盘,用Win98自带的FDISK显示为16GB,故无法正常分区;用MS-DOS 7.10启动盘和完整版、FreeDOS以及WinME中的FDISK则都显示为80GB并可以正常分区。再大的硬盘我就没有试过了,不过现在也没有多少人有更大的特大硬盘了。所以通常的硬盘用FreeDOS、MS-DOS 7.10启动盘中的FDISK或Norton GDISK之类的就足够了,没有WinME也没有关系。
作者: 不点
时间: 2005-2-20 00:00
我的意思是说,为了统一起见,用微软的就只用微软的,因为毕竟是它一家出的,微软在 DOS 方面的信誉也比较好,不容易出现什么BUG,比如,导致硬盘信息的丢失。而用第三方的软件,则是没有这个保障的,或者保障不充分,我就曾经用 PQ整坏过硬盘,硬盘上的全部数据都玩完了。如果谁说他没有被搞死过,那我认为那是他运气不错。一万次之中如果碰上一次,就是要命的大 BUG了。微软的这个程序,多少亿人在使用,可以放心,它有的 BUG,都很小,比如 win98se 的 fdisk 就不能分区 80G 硬盘,这样的BUG 也没什么危险。因为微软的软件用起来放心,所以,我个人倾向于使用微软的这些工具。因此我才觉得,应当将 winme 的 fdisk 放在win98se 来用。
我认为,像 FDISK, FORMAT 这类操作,是很危险的操作。尤其是 FDISK 威胁最大,format 一般只坏掉一个分区,而 fdisk 通常坏掉一整块硬盘。那个 FREE FDISK,我也曾用过,发现它有 BUG,后来就没再用了。
关于分区大小的问题,我也只是知道 64G 是一个门槛,win98se 的有 BUG,winme 的就没有 BUG。更大的硬盘,比如说 200G,估计它们都不能处理了。
作者: Jneny
时间: 2006-1-19 13:30
WinMe的IO。SYS好像是经过压缩的而且包含有HIMEM。SYS文件的功能
并且默认情况下是自动加载的