无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站投放广告、加入VIP会员,请联系 微信:wuyouceo
楼主: 窄口牛
打印 上一主题 下一主题

grub4dos虚拟个内存盘(用高位),进win98还能用上它?(已有结论,无法实现)

  [复制链接]
31#
 楼主| 发表于 2023-10-5 10:39:01 | 只看该作者
本帖最后由 窄口牛 于 2023-10-6 14:42 编辑

又测试了,win98可以识别非--top的盘;xp安装svbus驱动,可以识别大的--top的盘,大盘作为(可能是因为镜像是img非ima)fd,无法工作,必须是hd才行。
今天又鼓捣了一上午结果一致。

回复

使用道具 举报

32#
发表于 2023-10-5 10:50:32 | 只看该作者
本帖最后由 不点 于 2023-10-5 11:24 编辑
窄口牛 发表于 2023-10-5 10:39
又测试了,win98可以识别非--top的盘;xp安装svbus驱动,可以识别大的--top的盘;大盘作为fd,无法工作,必 ...

以前试验过了,虚拟软盘的大小没有限制。完全可以和硬盘一样大。不过,你自己试验的结果,你肯定更相信一些。实在找不到什么人对此感兴趣了。既不会有人支持你的结论,也不会有人反对你的结论。


没什么人进来讨论。已经进来的几位,八成是想帮你,两成是想看看这里到底有什么技术,有没有什么含金量,如果有的话,顺便学两招也没坏处。而其他大多数人,只是路人,只是好奇,或者看看热闹。

点评

是的。老掉牙了,路过看看,留个印象。恐怕很难有需要的时候。  发表于 2023-10-5 12:26
回复

使用道具 举报

33#
 楼主| 发表于 2023-10-5 11:02:19 | 只看该作者
那个realmode mapper功能有办法测试检查吗?

点评

有办法。只要你在 grub4dos 下建立虚拟盘,或者用 syslinux 里面的 memdisk 建立虚拟盘,而能够被 Windows 识别,这都表明 realmode mapper 在起作用。如果没有 realmode mapper,就不可能在保护模式下访问实模式的  详情 回复 发表于 2023-10-5 11:12
回复

使用道具 举报

34#
发表于 2023-10-5 11:12:51 | 只看该作者
本帖最后由 不点 于 2023-10-5 11:17 编辑
窄口牛 发表于 2023-10-5 11:02
那个realmode mapper功能有办法测试检查吗?

有办法。只要你在 grub4dos 下建立虚拟盘,或者用 syslinux 里面的 memdisk 建立虚拟盘,而能够被 Windows 98 识别,这都表明 realmode mapper 在起作用。如果没有 realmode mapper,就不可能在保护模式下访问实模式之下建立的虚拟盘。
回复

使用道具 举报

35#
发表于 2023-10-5 12:49:54 | 只看该作者
这应该是20年前的帖子。穿越了
回复

使用道具 举报

36#
发表于 2023-10-5 16:59:48 | 只看该作者
找到知乎上的文章。知乎上高手蛮多的。顺便把链接贴过来:

在一台“现代”PC上安装Windows 98(松下CF-NX1)
https://zhuanlan.zhihu.com/p/590700257

现在的电脑还可以装 Windows 98 吗?
https://www.zhihu.com/question/360335487/answer/1038240409

系统安装-Windows98 安装实录
https://zhuanlan.zhihu.com/p/351812925

回复

使用道具 举报

37#
发表于 2023-10-6 12:11:03 | 只看该作者
窄口牛 发表于 2023-10-5 10:39
又测试了,win98可以识别非--top的盘;xp安装svbus驱动,可以识别大的--top的盘;大盘作为fd,无法工作,必 ...

我不认为这段话的描述是可信的。尤其是 “大盘作为 fd 无法工作,必须是 hd 才行”。以前验证过的东西,应该不会突然之间就失效了。虚拟的 fd,不限于 1.44M,它可以是任意的几何参数,可以和硬盘一样大。否则,我们就无法把某个分区映射为软盘了。

另外一个问题,--top 之后 win98 不能识别?这我就不太确定了。当时还没有 --top,也没有 4G 以上的高位内存。但是,假如 real-mode mapper 真的把 CPU 切换到实模式,实模式的 grub4dos 代码就能读取位于 4G 以上高位内存中的扇区数据,这是不会失败的。难道说,微软的 real-mode mapper 没有把 CPU 切换到实模式?如果不切换到实模式,那么,访问 4G 以内的低位内存中的扇区数据,也会失败。但本帖报告 --mem 是成功的,所以也是解释不通。

如果 grub4dos 处理高位内存的代码存在 bug,那也会出问题。但是,代码只与 CPU 有关(与其它硬件无关,也不使用 int 指令),而且经过了无数网友的检验,能够访问高位内存。所以这种失败,也是讲不通的;当然确实有可能存在 bug,但可能性极低。汇编程序在内存间复制扇区数据块,代码很少,很难藏得住 bug。一旦有 bug,往往在任何电脑上统统都会失败,而不是只在某一台电脑上失败。

假如 --top 是成功的,那就没有疑问了。


因此,整体来看,我觉得楼主这段描述,不太可信,需要进一步验证。我希望有第二个测试者来做做看,确认一下。但是,实在是难以找到对此感兴趣的人了,也真是无奈。算了,还是离开这个话题吧——回归现实,不再研究这个问题了。
回复

使用道具 举报

38#
 楼主| 发表于 2023-10-6 15:34:08 来自手机 | 只看该作者
应该不是grub4dos的问题,因为在XP里没问题。
回复

使用道具 举报

39#
发表于 2023-10-6 16:12:20 | 只看该作者
本帖最后由 不点 于 2023-10-6 16:18 编辑

XP 之下,是使用 svbus 之类的驱动,而不是使用 grub4dos 的实模式代码。两者是完全不一样的。

所以,仍然有可能是 grub4dos 的实模式磁盘仿真代码出了 bug,虽然可能性不大。

还有一个可能性就是,你的 img 本身有问题,导致 win98 不能挂载它的文件系统。

可以试试一个 1.44M 的软盘,用 map --top --mem 加载为虚拟软盘 (fd0),看看进入 win98 之后是否能看到软盘。

如果成功,就说明 grub4dos 的代码是正常的、没问题的。
回复

使用道具 举报

40#
发表于 2023-10-6 16:28:35 | 只看该作者
窄口牛 发表于 2023-10-5 10:39
又测试了,win98可以识别非--top的盘;xp安装svbus驱动,可以识别大的--top的盘,大盘作为(可能是因为镜像 ...

你修改帖子之后,我猜到问题在什么地方了。你试图把含有分区表的 img 仿真成软盘 fd0,这肯定不行。你需要的是一个不含 mbr 磁道,只有分区(卷)的 img,这才可以仿真为软盘。

点评

嗯,能懂你的意思。  详情 回复 发表于 2023-10-6 18:22
回复

使用道具 举报

41#
 楼主| 发表于 2023-10-6 18:22:58 | 只看该作者
不点 发表于 2023-10-6 16:28
你修改帖子之后,我猜到问题在什么地方了。你试图把含有分区表的 img 仿真成软盘 fd0,这肯定不行。你需 ...

嗯,能懂你的意思。
回复

使用道具 举报

42#
 楼主| 发表于 2023-10-7 07:15:18 来自手机 | 只看该作者
本帖最后由 窄口牛 于 2023-10-7 08:54 编辑

win98下可以看到(map --mem --top)盘符,但是处于无法使用状态,就像坏了的优盘一样,可以反复格式化,但格完也还是不能用。

xp正常

98非top正常

98一个非top正常,一个top不正常

点评

你报告得很详细。有两种可能:其一,grub4dos 的实模式仿真代码,可能有 bug。其二,win98 系统的 realmode mapper 可能由于某种原因(可能存在内存冲突之类的原因),不能与 grub4dos 的实模式高位内存处理代码协同  详情 回复 发表于 2023-10-7 13:00
回复

使用道具 举报

43#
发表于 2023-10-7 13:00:56 | 只看该作者
窄口牛 发表于 2023-10-7 07:15
win98下可以看到(map --mem --top)盘符,但是处于无法使用状态,就像坏了的优盘一样,可以反复格式化,但 ...

你报告得很详细。有两种可能:其一,grub4dos 的实模式仿真代码,可能有 bug。其二,win98 系统的 realmode mapper 可能由于某种原因(可能存在内存冲突之类的原因),不能与 grub4dos 的实模式高位内存处理代码协同工作。

我想了解,在进入 win98 之前,也就是在 grub4dos 环境下,或者从 grub4dos 直接启动一个 DOS 系统,这样能否访问 --top 内存盘中的文件?这个问题很重要。如果能访问,那就说明是 win98 与 grub4dos 的高位内存处理代码有冲突。如果 dos 和 grub4dos 下也不能正常访问 --top 虚拟出来的软盘,那问题就大了,属于巨大 bug。
回复

使用道具 举报

44#
 楼主| 发表于 2023-10-7 13:34:07 来自手机 | 只看该作者
g4d控制台可以访问,dos也可以访问,就是98里面不行。

点评

好的,明白了。大的 bug 是没有的。但可能存在小 bug,那就是,grub4dos 对于高位内存的处理(代码层面),不能适应 win98 环境。猜测很可能需要改进代码。  详情 回复 发表于 2023-10-7 19:01
回复

使用道具 举报

45#
发表于 2023-10-7 19:01:46 | 只看该作者
窄口牛 发表于 2023-10-7 13:34
g4d控制台可以访问,dos也可以访问,就是98里面不行。

好的,明白了。大的 bug 是没有的。但可能存在小 bug,那就是,grub4dos 对于高位内存的处理(代码层面),不能适应 win98 环境。猜测很可能需要改进代码。
回复

使用道具 举报

46#
发表于 2023-10-8 23:09:31 | 只看该作者
这个 --top 的问题貌似是无法解决的。我猜,real-mode mapper 里面的 real-mode,并非真的是指 real-mode,而很可能是表示 “16 位模式” 或者 vm86 模式。也就是说,grub4dos 的实模式代码在 win98 环境是失效的。grub4dos 在 win98 的 vm86 模式下,是通过调用 bios 的 int15 / 87h 来实现 4G 以内的内存块移动(可以理解为内存块读写)。而 int15/87h 不支持对 4G 以上的内存块进行操作(幸运的是 4G 以内的低位内存,能够完美支持)。看来,要想实现 --top 内存盘的访问,还真是需要有人为 win98 写一个(类似于 svbus 的)驱动程序。前面已经说了,这希望太渺茫了,那就当做一个美丽的梦想吧。

点评

应该是这样的。Win98的系统调用就是这么个半吊子的东西。保护模式不保护模式,实模式不实模式,非要从32位进入这么一个东西再跑回来,所以98比纯保护模式的NT不稳定的多。  详情 回复 发表于 2023-10-10 08:22
回复

使用道具 举报

47#
发表于 2023-10-9 06:36:19 | 只看该作者
找到一些相关的技术,说不定以后有人找到这里了,他就能用得着。

https://dosbox-x.com/wiki/Guide%3AInstalling-Windows-98

这个网页居然说可以从 DOSbox-X 下安装、运行 Win98。我记得以前在 DOSbox 之下是不能运行 win98 的。所以,这个 DOSbox-X 是个突破。

可惜,我这里无法访问 dosbox-x.com 这个网站,猜测可能是被墙了吧。


点评

嗯,dosbox,pcem,都可以模拟win98.,win2000打游戏。  详情 回复 发表于 2023-10-9 06:54
回复

使用道具 举报

48#
 楼主| 发表于 2023-10-9 06:54:39 来自手机 | 只看该作者
不点 发表于 2023-10-9 06:36
找到一些相关的技术,说不定以后有人找到这里了,他就能用得着。

https://dosbox-x.com/wiki/Guide%3AIn ...

嗯,dosbox,pcem,都可以模拟win98.,win2000打游戏。
回复

使用道具 举报

49#
发表于 2023-10-9 07:10:03 | 只看该作者
又找到一个网站,目前能够正常访问:

https://www.dewassoc.com/windows-95-98-and-nt-setup-switches/

它介绍了 win98 setup.exe 安装时的一些选项,包括未公开的(秘密)选项。对于玩 win98 的人来说,这应该也是有用的。


回复

使用道具 举报

50#
发表于 2023-10-9 07:16:43 | 只看该作者
这个 --top 的问题貌似是无法解决的

我觉得不点分析的很到位。我看了一下asm.S文档,前辈们有以下2段注释:

/* But Win9x may expect additional data after SafeMBRHook structure. //但在Win9x可能期望SafeMBRHook结构后的附加数据。
* This is undocumented, and mysterious. If this area is not what    //这是无证,而神秘。如果这方面是不是有什么Win9x的预期,Win9x的可能挂起。
* Win9x expected, Win9x could hang.
*/

# win9x vm86-mode int15/ah=87h will also fail in accessing more than 4G                //Win9x vm86模式int15/ah=87h访问超过4G内存失败。
# memory. Hope someone would develop a driver for win9x in the future.                //希望有人会发展为未来的Win9x驱动程序。

点评

在g4d下可以看到,打开,说明不是grub4dos的锅了,只能在win98里解决这个问题。 九八方面 http://windows98.xf.cz/这个网站可以关注一下,我就是在玩这些东西,不过有些还没玩到位。  详情 回复 发表于 2023-10-9 07:30
回复

使用道具 举报

51#
 楼主| 发表于 2023-10-9 07:30:46 来自手机 | 只看该作者
2011yaya2007777 发表于 2023-10-9 07:16
我觉得不点分析的很到位。我看了一下asm.S文档,前辈们有以下2段注释:

/* But Win9x may expect addi ...

在g4d下可以看到,打开,说明不是grub4dos的锅了,只能在win98里解决这个问题。
九八方面
http://windows98.xf.cz/这个网站可以关注一下,我就是在玩这些东西,不过有些还没玩到位。

点评

Microsoft WINDOWS 98 (SE) unofficial support site http://windows98.xf.cz/ 牛B plus!牛B 确实牛B,但我的理解力还跟不上,理解不动。微软扔掉的、而且封杀了多年的东西,还能捡起来? 不过,那东西  详情 回复 发表于 2023-10-9 13:52
回复

使用道具 举报

52#
发表于 2023-10-9 07:34:17 | 只看该作者
现在都 2023 年了,还有人在 Linux 下用 DOSbox 运行 win98:

Run Windows 98 in Vanilla DOSBox
https://leo3418.github.io/2023/01/03/windows-98-in-vanilla-dosbox.html


回复

使用道具 举报

53#
发表于 2023-10-9 13:52:33 | 只看该作者
窄口牛 发表于 2023-10-9 07:30
在g4d下可以看到,打开,说明不是grub4dos的锅了,只能在win98里解决这个问题。
九八方面
http://windo ...

Microsoft WINDOWS 98 (SE) unofficial support site
http://windows98.xf.cz/


牛B plus!牛B 确实牛B,但我的理解力还跟不上,理解不动。微软扔掉的、而且封杀了多年的东西,还能捡起来?


不过,那东西倒是也有优点。其一,精简、轻量。其二,不含网络后门,不会从网上控制你。



回复

使用道具 举报

54#
 楼主| 发表于 2023-10-10 00:11:11 来自手机 | 只看该作者
还有一个专门给win9x搞补丁的https://github.com/JHRobotics/patcher9x

点评

呵呵,干脆让微软放出 win98 源代码,就省事了。 难道说,这帮人还要把 win98 的内核翻个底朝天?那得多费劲啊? reactOS 就够费劲的,现在还有 “掏空” win98 的。 我想,这帮人可能是想练手、提高个人技  详情 回复 发表于 2023-10-10 07:41
回复

使用道具 举报

55#
发表于 2023-10-10 07:00:19 | 只看该作者
好建议
回复

使用道具 举报

56#
发表于 2023-10-10 07:41:50 | 只看该作者
窄口牛 发表于 2023-10-10 00:11
还有一个专门给win9x搞补丁的https://github.com/JHRobotics/patcher9x

呵呵,干脆让微软放出 win98 源代码,就省事了。

难道说,这帮人还要把 win98 的内核翻个底朝天?那得多费劲啊?

reactOS 就够费劲的,现在还有 “掏空” win98 的。

我想,这帮人可能是想练手、提高个人技能,以反汇编和破解为乐趣。

要掏空 XP 可能很难。所以,他们要拿 win98 来练手。

还有一个重要的原因,win98 与实模式 DOS 搭配良好,其后的 Windows 都开始逐步抛弃 DOS 了。

商家抛弃 DOS 之后,这些高手们觉得失去了自由。他们想找回自由。

因此,Win98 是个最好的 “切入点”。

还有一点,我想说。IBM 个人电脑的普及,是一个巨大的事件。DOS 里面的 debug,是编程者的最大福音,没有之一。debug 是有史以来最好的程序。没有 debug,你的电脑知识就只能停留在应用层面,不可能深入一步。debug 与其他编译器、调试器的不同之处在于,它是轻量级的。它运行在 DOS 下,而 DOS 本身也是轻量级的。在 debug 中,每一条 CPU 指令,你都可以尝试运行。那种轻易就能够获得的 “控制感”,能够让你确实感受到乐趣。否则,如果一开始都很难,那么大多数人都将失去耐心,逃之夭夭了。debug 能够让一个普通爱好者快速切入电脑的内部工作流程当中,不需要专门的培训。

干掉 DOS,就没有了 debug,那么,要想进入电脑内层,就提高了门槛。普通爱好者就不要再想了。

电脑刚开始普及的时候,商家需要有人对电脑内幕感兴趣。但是,后来感兴趣的人多了,反而对商家不利。此时,商家需要提高门槛,让一般人不能切入系统内层,这样就保护了商家的利益。

debug 和 DOS 的 .com 程序格式,是一个精粹。.com 程序不拖泥带水,一开始就是 cpu 指令,没有复杂的结构。最短的 .com 程序,可以只有一个字节,只放置一条 ret 指令(这是个单字节指令)就行了。Linux 之下没有类似这种的 “无结构” 可执行文件格式,而是复杂的 ELF 格式。而且,进入 Linux 之后,调试器本身也处于保护模式,而不是实模式。要想切换到实模式,还颇为困难。因此,要想学习 CPU 知识,通过 DOS 下实模式的 debug 来学习,是最好的途径,没有之一。

ARM 之下没有实模式和保护模式的区分。但要命的是,ARM 之下连统一的 BIOS 都没有。没有类似 DOS 的轻量级操作系统。DOS 之所以轻量,是因为 BIOS 提供了很多服务。DOS 只需调用这些服务即可。而 DOS 下运行 debug,理论上就可以控制所有的方面了。ARM 有 Linux 和 gdb,但 Linux 也缺乏类似于 .com 格式的可执行文件,而 ELF 格式比较复杂,不利于初学者、门外汉快速切入。
回复

使用道具 举报

57#
 楼主| 发表于 2023-10-10 07:58:59 | 只看该作者
xp也有搞得,之前把win8的驱动移植到xp,现在把win7的也移植了,只要还能装win7的现代机器,都可以跑xp啦。
大部分是手机回复,只有电脑回复才比较容易设置大字体。
回复

使用道具 举报

58#
发表于 2023-10-10 08:22:43 | 只看该作者
不点 发表于 2023-10-8 23:09
这个 --top 的问题貌似是无法解决的。我猜,real-mode mapper 里面的 real-mode,并非真的是指 real-mode, ...

应该是这样的。Win98的系统调用就是这么个半吊子的东西。保护模式不保护模式,实模式不实模式,非要从32位进入这么一个东西再跑回来,所以98比纯保护模式的NT不稳定的多。

点评

模式切换,确实不好。但这是历史造成的。如果执意要跟历史割裂开来,那当然就不需要模式切换了,只需要新的 CPU 指令集、新的架构、新的功能就行了。 ARM 和龙芯,都属于新的架构。龙芯不太了解,暂且不说。但 AR  详情 回复 发表于 2023-10-10 13:45
回复

使用道具 举报

59#
发表于 2023-10-10 13:45:18 | 只看该作者
sunsea 发表于 2023-10-10 08:22
应该是这样的。Win98的系统调用就是这么个半吊子的东西。保护模式不保护模式,实模式不实模式,非要从32 ...

模式切换,确实不好。但这是历史造成的。如果执意要跟历史割裂开来,那当然就不需要模式切换了,只需要新的 CPU 指令集、新的架构、新的功能就行了。

ARM 和龙芯,都属于新的架构。龙芯不太了解,暂且不说。但 ARM 就不是取代 x86 的气势。

看看传统电脑的设计:主板 ROM 提供服务 ==>  DOS 操作系统 ==> 应用程序。

有了主板提供的基本输入输出系统,操作系统的设计就很简单、很精炼。

多级设计,才能达到精炼。就像飞船登月,需要多级火箭。每一级都是对后续(下一级)的支撑。

ARM 电脑缺乏这个具有统一规范的基本输入输出系统。操作系统启动后,直接操纵硬件。这么一来,操作系统就需要各种各样的驱动程序,体积就十分庞大。Windows 也是这样,不再利用 BIOS,而是直接操纵硬件。

其实 Windows 也可以建立一套适用于 Windows 的新型 BIOS 规范,让主板制造商(以及其它硬件设备制造商)遵守,这样,就不需要五花八门的驱动程序了,只调用主板提供的服务就行。可是,Windows 此时已经没有动力干这个事了。这是因为,Windows 正在努力把系统体积变大,而不是变小。体积越大,控制力越强。操作系统越臃肿就越符合操作系统开发商的利益。

对于操作系统的学习者来说,当然操作系统越精炼、越简单,就越好。这刚好跟开发商的想法相反。开发商的操作系统,目的是让你变傻,然后方便收钱。而学生则是想学会、掌握这门技术的。开发商不怕普通用户学会技术,因为普通用户根本就不去学。开发商害怕竞争对手掌握了它的技术。所以,开发商需要保护自己。怎样才能保护自己?就是采用封闭策略。已有的规范,要破坏掉。为什么?因为这些规范已经被竞争对手掌握,自己无法在技术上占据压倒优势。为什么不再推出新的 BIOS?因为新的 BIOS 规范一旦推出,迟早也还是要被竞争对手掌握。在开发商看来,没有规范最好了,所有的硬件都由操作系统来处理,别人难以掌握,这就提高了门槛,挡住了竞争者。

这就明白了,今后再也不会有 BIOS 了。任何商家都不会推出类似 BIOS 这种规范了。商家要提高门槛,就必须这么做。

虽然 BIOS 已经差不多算是死干净了,但假如还有人由于某种特殊的原因而想念 BIOS,他就会觉得历史上曾经出现的 BIOS 十分珍贵。一个东西,再也找不着了,那么,物以稀为贵,他有可能把它当作贵重的文物保存起来(虽然可能只是保存在自己的脑海里)。那些不学技术的普通人,当然不可能把这当成宝贝。
回复

使用道具 举报

60#
发表于 2023-10-11 22:45:16 | 只看该作者
本帖最后由 dayeye 于 2023-10-11 23:04 编辑

ACER 4750G,10G内存,实机安装win98。map --mem --top 的2375M的fd盘可以格式化完成使用。格式化时间很长,拷贝文件时很不稳定,反复报错。
我觉得不稳定报错的原因可能是我的win98系统本就没安装好,缺少大堆驱动,能打开而已。
小的fd小到只有4k,格式化为720k-3.5'软盘可以使用。2375M-fd部分想分开成一个fd+一个hd没有成功。
其他试用结果与楼主结果基本一致。
4096M以后的--TOP盘fd/hd都无法使用。4096以内hd完好使用。


实机在1G内存时安装成功。2G及以上内存时不能自行引导启动。

点评

大内存补丁后就能了。系统内认到3.5g,实际可能会用的就2g。  详情 回复 发表于 2023-10-12 08:40
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|捐助支持|无忧启动 ( 闽ICP备05002490号-1 )

闽公网安备 35020302032614号

GMT+8, 2024-11-2 05:30

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表