无忧启动论坛

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

Grub4DOS_0.4.5B_2010.05.25 问题???

[复制链接]
31#
发表于 2010-5-26 18:23:07 | 只看该作者
int08 和 int15,16 都不可能出问题的。唯一出问题的是,hhh333 在超限使用 grub.exe。他在走钢丝,所以,碰上像 dell 这样的机器失败死掉,本来就是正常的。如果不死,反而不正常了。遇到探测失败时,测试步骤都是一样的,上面已经给出了这些步骤。主要就是,在 int XX 指令之后,跟着一条 jmp 到自己的无限循环,这样,在正常的情况下,无论你执行多少个 t,都不会死机的。一直跟踪到 ROM 区域,就算成功了。如果永远进入不了 ROM,那个向量的探测就是失败的。

hhh333 在 config.sys 中加载了 XMS 内存管理程序,以及许多使用 XMS 内存的程序。他一直很忌讳谈到这些,因为一旦谈到,直接就 pass 掉,不会解决了。hhh333 既希望他的那些 DOS 程序都能运行,又希望 grub 也不出问题。想法是美好的,但不能实现。有一个程序他知道确实管用,就是 badgrub.exe,但是他又不喜欢用,所以,他就希望 grub.exe 能够解决探测中断向量时死机的问题。估计这就是大致的情况。
回复

使用道具 举报

32#
发表于 2010-5-26 18:23:09 | 只看该作者
原帖由 zhaohj 于 2010-5-26 17:35 发表
不点大你得告诉int08和int15h的测试步骤,以便HHH333反馈,以便DELL机问题的解决。

估计是这样吧,如int08:
敲入 debug 回车。
敲入 a 100 回车,开始编写程序。
敲入 int 08 回车
敲入 db eb fe 回车
此处再多敲入一个回车,结束编写程序。
按 t 回车,跟踪执行一条指令
再按 t 回车,继续跟踪。
重复这一步骤,注意看是否能够执行进入 ROM 空间中的 F000:XXXX 地址处
回复

使用道具 举报

33#
发表于 2010-5-26 20:17:19 | 只看该作者
插一句:badgrub具体的作用是什么>?去掉了某些东西的精简版?兼容版?
回复

使用道具 举报

34#
发表于 2010-5-26 22:38:19 | 只看该作者
这个PKUNZIP是SRS_F6里DOS下使用的解压.ZIP的程序,在大多数机器里不会出现问题。
希望HHH333再次测试一下不运行SRS_F6.BAT只运行MENU.BAT的程序会不会正常。看到运行PKUNZIP出现XMS等信息,如果确实是PKUNZIP引起的,我想法替换这个程序。
回复

使用道具 举报

35#
发表于 2010-5-26 22:50:14 | 只看该作者
再问不点大,中断号对应的ROM 空间中的 xxxx.xxxx地址是怎么对应或计算出来的?象上面的int72h,对应F000:0D86在0000:0558地址。没这方面的资料可查。
C000:0000 以上的空间就是ROM 的空间。
回复

使用道具 举报

36#
发表于 2010-5-27 07:58:12 | 只看该作者
从内存0000:0000开始:
offset 0x0:Int 0
offset  0x4:  Int 1
offset  0x8:  int 2
offset  0xC:  int 3
.....

[ 本帖最后由 canmao 于 2010-5-27 08:04 编辑 ]
回复

使用道具 举报

37#
发表于 2010-5-27 08:42:21 | 只看该作者
嗯,这样讲明白了.
从0000:0000开始的中断号*4开始的是DOS接管后的中断向量地址;
偏移540h后是DOS保持的原始ROM地址
只要进入C0000:0000以上的ROM地址~原始ROM地址,跟踪就达到了目的,再分析这部分指令。
回复

使用道具 举报

38#
发表于 2010-5-27 09:25:39 | 只看该作者
还是不懂是如何算出来的,请不点能详细讲解么?
回复

使用道具 举报

39#
发表于 2010-5-27 09:35:09 | 只看该作者

回复 #34 zhaohj 的帖子

不是pkzip引起的,不运行还是出问题。
刚才试了一下,将config.sys中的himem.sys挂起,可以通过。似乎这个一挂起,pkzip好象不能运行了,很快就出用户菜单了。
回复

使用道具 举报

40#
发表于 2010-5-27 09:40:36 | 只看该作者
纯dos映像内只保留:COMMAND.COM、IO.SYS、MSDOS.SYS、DEBUG.EXE试试
回复

使用道具 举报

41#
发表于 2010-5-27 09:50:57 | 只看该作者
原帖由 <i>hhh333</i> 于 2010-5-27 09:35 发表 不是pkzip引起的,不运行还是出问题。
刚才试了一下,将config.sys中的himem.sys挂起,可以通过。似乎这个一挂起,pkzip好象不能运行了,很快就出用户菜单了。
<br />

config.sys中:
files=20
buffers=20
我这里测试是正常的,你看一下有没有生成驱动。如果你DELL机可以生成,干脆取消HIMEM.SYS

Snap1.jpg (125.95 KB, 下载次数: 51)

Snap1.jpg
回复

使用道具 举报

42#
发表于 2010-5-27 16:06:33 | 只看该作者
不点大又更新了,HHH333的问题不知是否解决。
我FTP上已经更新,纯SRS_F6返回模块取消了HIMEM.SYS加载。
回复

使用道具 举报

43#
发表于 2010-5-27 17:27:27 | 只看该作者
原帖由 zhaohj 于 2010-5-27 16:06 发表
不点大又更新了,HHH333的问题不知是否解决。
我FTP上已经更新,纯SRS_F6返回模块取消了HIMEM.SYS加载。

这个是扩展内存支持用的吧.
PKUNZIP 需要这个的支持吗?? 是不是不需要?
回复

使用道具 举报

44#
发表于 2010-5-27 18:28:19 | 只看该作者
我上传的SRS_F6-1.IMG(无himem.sys支持)下载后改名为SRS_F6.IMG测试一下,应该能运行。
我这里测试通过。
回复

使用道具 举报

45#
发表于 2010-5-27 19:42:51 | 只看该作者
解放思想,不要以为 himem 是微软的,就一定没问题。我们有证据表明,即使是微软的 DOS,都可能失败死机。

himem 仅仅是微软的一个程序,更不会保证百分百成功。

我们通过解决问题,一定可以学到很深层的知识。

我们现在还不知道,究竟那些神秘的死机,都是如何产生的。

我刚刚又编译了一个版本: http://nufans.net/grub4dos/tinybit/grub.exe

请诸位一定下载试试,看看结果如何。

请 hhh333 在 himem 已经运行的情况下来测试。
回复

使用道具 举报

46#
发表于 2010-5-27 20:52:27 | 只看该作者
原帖由 zhaohj 于 2010-5-27 16:06 发表
不点大又更新了,HHH333的问题不知是否解决。
我FTP上已经更新,纯SRS_F6返回模块取消了HIMEM.SYS加载。


取消了HIMEM.SYS加载,是否必要?起码目前其它方面没有什么问题.
仅仅因为DELL的个别情况,改变已经稳定的版本.
回复

使用道具 举报

47#
发表于 2010-5-27 22:19:28 | 只看该作者
原帖由 不点 于 2010-5-27 19:42 发表
解放思想,不要以为 himem 是微软的,就一定没问题。我们有证据表明,即使是微软的 DOS,都可能失败死机。

himem 仅仅是微软的一个程序,更不会保证百分百成功。

我们通过解决问题,一定可以学到很深层的 ...


好象还是不行,我前次和这次将前5k的内存输出来了,方法是将configfile的两行挂起进DOS后马上运行grub,取得的文件是: grint0.rar (1.8 KB, 下载次数: 39) (带0的是上次的版本截下来的)
回复

使用道具 举报

48#
发表于 2010-5-27 22:58:11 | 只看该作者
这样的内存截下来估计没用,还是需要跟踪的。
回复

使用道具 举报

49#
发表于 2010-5-28 04:00:45 | 只看该作者
看到没有?流氓啊!

  1. 00000000   19 E8 00 F0  19 E8 00 F0  C3 E2 00 F0  4C 4C 20 20  ............LL
  2. 00000010   46 58 30 39  20 20 20 00  D8 91 00 F0  19 E8 00 F0  FX09   .........
复制代码


int3 int4 int5 这三个向量竟然都用垃圾字符填充!以此来破坏我们对于 int5 的跟踪探测!
回复

使用道具 举报

50#
发表于 2010-5-28 11:18:21 | 只看该作者
问不点大,上面int3 int4 int5 这三个向量都用垃圾字符填充,那DOS接管后需要用到的中断怎么处理的呢?如int5:0020:2020肯定需要用一个比较正确的地址,正确的地址肯定在C0000:0000开始以上地址处。
从DOS原保持的中断向量来分析?
回复

使用道具 举报

51#
发表于 2010-5-28 12:47:47 | 只看该作者
用最新的527版本可以了,不用加.exe也能过,这个对于其他的功能不会有影响吧?
另外要说的是感谢不点大侠的努力!
回复

使用道具 举报

52#
发表于 2010-5-28 16:00:14 | 只看该作者
问不点大,上面int3 int4 int5 这三个向量都用垃圾字符填充,那DOS接管后需要用到的中断怎么处理的呢?如int5:0020:2020肯定需要用一个比较正确的地址,正确的地址肯定在C0000:0000开始以上地址处。
从DOS原保持的中断向量来分析?


dos 爱死不死的,你就别管了,我们也管不了。其实,dos 不容易死掉,因为 DOS 很少调用这些中断。倒是很多 DOS 下的第三方程序,可能调用这些中断。int5是屏幕打印中断,现在几乎毫无用处了(现在没人愿意通过DOS来打印屏幕),所以,dell 才敢破坏这个中断。int3 和 int4 也没有太大的用处。

当执行一次 grub.exe 之后,grub会把那些不正确的中断用一个默认的中断向量来填充。这个默认的中断会指向 ROM 空间的一条 iret 指令。因此,运行了 grub.exe 之后,再调用 int5 就不会死机了。然而,即使这样也不可能执行打印屏幕的功能,因为 iret 仅仅是返回控制,什么也不做。经由 GRLDR 启动的 DOS 则不会自动修复这些坏的中断向量,所以,此时int5是不敢随便调用的。

dell 机器的陷阱很多。网上报导的 dell 的问题也非常多。
回复

使用道具 举报

53#
发表于 2010-5-28 17:42:24 | 只看该作者
谢谢不点大解释。
慢慢地我们自己也要学会调试,以便GRUB4DOS更加健康!
回复

使用道具 举报

54#
发表于 2010-5-28 18:43:01 | 只看该作者
现在有了 grldr 以后,调试的方便性就大大加强了。在 grldr 之下,由于未曾受到 DOS 的污染,所以,中断向量保持原汁原味。什么叫原汁原味?原汁原味的中断向量表,就是指当 BIOS 把控制交给磁盘、光盘引导扇区之前的那个时刻,BIOS 所建立的中断向量表。所以,grldr 之下的中断向量表,是原汁原味的,未曾更改过。

这次 hhh333 给出的,就有两个中断向量表,一个是 grldr 的,一个是 grub.exe 的。有了 grldr 原汁原味的中断向量表,就可以知道 BIOS 最初的设置。也正是从这个表,发现了 dell 的错误。

DOS 下的调试技术很少能用得上,除非是出现了像 hhh333 这种特殊情况,才用得着。这是极少数情况。

本次出现的情况,其实,错误发生在 int5。单步跟踪int5的执行过程,企图走到 ROM 中,成功获得这个中断的 ROM 入口。但是,垃圾代码把我们引向任意一个地址处,胡乱执行内存中的代码,因此也可能胡乱写入内存。虽然 int5 本身没死机,但到了 int8 就死机了。

所以,如果单单从 int8去调试,根本不会发现任何问题的。必须证明 int8 之前的调试都成功,然后才可以调试 int8。
这里是在 int5 的时候就出问题了,它破坏了 int8 的执行路线。所以,这个问题也是很隐蔽的。由此也说明,dell 是经过了周密安排的。历史上dell 破坏中断探测机制的手段有很多,这次不过就是更隐蔽罢了。
回复

使用道具 举报

55#
发表于 2010-5-28 23:38:57 | 只看该作者
这样看来,grub.exe设计上要比grldr要考虑更多的事情。
因为从DOS到启动GRUB.EXE,有可能DOS程序破坏了中断向量入口,这也就是说启动DOS时不要加载任何程序、驱动来调试问题的原因,从而排除DOS或DOS下第三方程序的捣乱。

好在我们现在处理问题多是从grldr启动的,转到DOS下处理简单的问题,到某一天真的不要DOS了,比如我们用很多的外部程序来处理原本在DOS下要做的工作,G4D才变得像真正的操作系统。

这种外部程序的创立机制给G4D有了拓展的空间,就象DOS时代的扩展命令。
回复

使用道具 举报

56#
发表于 2010-5-29 00:48:55 | 只看该作者
其实,DOS是一代工业标准,曾经的老大。它并不容易消失。兼容性是一种普遍的呼声。人只要有惰性,就会有兼容性的要求。人们在思考软件发展问题的时候,往往过低估计兼容性的重要性,认为新的理念立刻就能推广。例子太多了。最终证明,那些 “立即将旧世界推翻” 的想法,是实现不了的。Intel 的复杂指令集 CPU 早就被预言要被取代,如今仍然占据市场主流。Windows也被预言说要很快消失,可现在的发展势头仍然很强劲。冷静思考之后,通常会作出比较符合现实的判断,不那么莽撞、孩子气了。

如果真到了 DOS 要消失的那一天,grub4dos 估计也要消失了。因为 grub4dos 代表了古老的 PC 工业标准的实现和支持。如果 DOS 消失了,那么古老的PC工业标准将面临生存危机,因而 grub4dos 也将失去存在的基础。

在可见的未来,DOS 不会消失的。由于硬件厂商、软件开发商、中间众多的服务行业、以及最终用户,各个层面的人员,普遍存在着惰性,这是很难克服的。所以,兼容性的要求,存在于我们每个人的潜意识中。我们自己很难接受那些不兼容的东西。还是举 VISTA 的例子,就可通俗地说明这一点。一台很重很庞大的机器,要搬动它,那是不容易的。微软为不兼容交了一笔学费。现在的 win7 被迫在兼容性上下功夫。Intel 一直在兼容老的 CPU,它是最大的受益者。其他很多CPU,有的在精简化方面很有竞争力。但是,由于缺乏 x86 系统下丰富的软件支持,其前路扑朔迷离,究竟能否占据一定的市场空间,还要看 Intel 给不给它们机会。像我们这样的人,都是 Intel 和 AMD 的义务工作者,它们不用给我们发放工资。因此,像这样的公司,它们占据兼容性优势,也就是占据天时、地利、人和。要打败它们,那可不是一件轻而易举的事。

DOS 的概念很好。我就是用 DOS 的思维方式,来开发 grub4dos 的进程管理和内存管理的。吸取了 DOS 简单易懂的优点。有些东西,DOS 还显得累赘,我们就设计得比 DOS 更简化、更直观、更方便、更易于理解,把 DOS 中的赘肉割去。
回复

使用道具 举报

57#
发表于 2010-5-29 01:18:25 | 只看该作者
读不点的帖子,思想性很强,像一位导师。
不点已经远远跳出了程序员的层次,是不是该称之为系统架构师?
回复

使用道具 举报

58#
发表于 2010-5-29 01:30:59 | 只看该作者
不点是个有思想有作为的人,值得我辈学习。
回复

使用道具 举报

59#
发表于 2010-5-29 08:33:06 | 只看该作者
优胜劣汰,适者生存。世界上有各种各色的思想,指导着各种各色的行为。有些成功了,有些失败了。大自然优胜劣汰的法则,必然会淘汰掉不合理的思想和行为,最终沉淀出符合现实的思想和行为。我们要到远方某个城市去(假如不乘坐飞机),我们肯定要从已经有的路上走,而不会从庄稼地里走。我们的行为,已经规范了。在做任何事情的时候,都要评估一下。评估的依据只能是已经掌握了的知识。掌握的知识不同,评估的结果也就不同。所以,对于我们每个人来说,最最要紧的,就是要掌握知识,增加评估的准确度。我们每个人都离不开评估。干任何一件事之前,都被迫作出评估,只不过,有时候你已经评估过了,自己却没有意识到这一点。世界上有很多现象,纷繁复杂。比如说,有人开发 Linux,有人开发 BSD,还有人开发别的操作系统。而且,Linux 和  BSD 都有很多种,每一种都代表了一种思维。世界上有千千万万种思维方式。不仅如此,世界上还有很多种宗教信仰。究竟哪一样适合自己,你不得不进行评估。我们普通人往往很容易陷入其中一个,而不能自拔。当你陷入其中之一的时候,你很有可能终身为之而奋斗。但奋斗的结果如何,却是客观的,不一定像你原来所想象的那样。这里面,评估同样很关键。评估影响到你全部的生命。论坛是讨论技术的,是的,但是,技术是什么?技术不就是思想的一种表现形式吗?技术=思想。不同的技术,就有不同的思想作为根基。而不同的思想,也导致不同的技术。所以,如果看透了,所有的东西,全都是思想,全都是认识,只不过认识的层次有差别。因此,技术论坛讨论思想认识,也并非离题。感谢几位哥们的赞同和支持,我很满足,谢谢。

继续吹牛。辩证唯物主义认为,物质第一性,意识第二性,物质决定意识。我们当然会反问,为什么是这样啊?会不会是别的情况啊?既然承认物质是“本来就有”的,那么,意识会不会也是“本来就有”的呢?如果说先有物质,后有意识,那不就等于说,意识是凭空产生的吗?既然意识能够凭空产生,那它会不会与物质同时产生呢?意识会不会本来就是物质的一种属性呢?电子围绕原子核运动,这究竟是物质现象呢,还是意识现象呢?谁让它那样运动?为什么不是别的运动方式?鸡和蛋谁先出现?从宇宙大爆炸开始,到形成稳定的星系,产生恒星,有了太阳和地球,然后又有了有机物,再有就是初始的生命形态,再进化,才有了人。这其中的每一个步骤,都不是截然不同的,而是有继承性的。这都是有原因,有结果的,是连续的、相继的、接连发生的。鸡和蛋的关系,正好可以描述物质和意识的关系。早在大爆炸那一刻,意识就已经存在了。不然的话,物理学的规律为什么从那时就开始起作用了呢?支配这些规律的,不就可以看成是意识吗?有人把它取名为上帝,也未尝不可。意识与物质可能本来就是不可分割的一体的。物质的演变与意识的演变,在同步进行。物质的初始形态,对应着意识的低级形态。有机物的意识,就比无机物的意识高级一些。最后,动物的意识比植物要高级一些。而人的意识就更高级了。为什么将要地震的时候,老鼠和蛇就能知道呢?为什么狗的鼻子很灵?这些动物在某些方面的本领,也可看成其相应的意识成分。人类并不比它们强很多。人类有优点,也有缺点。人不过就是一种高级的动物罢了。人的科技很发达,但人还不能造人呢。人都是大自然造的。大自然所掌握的科技知识,人类还远远掌握不了。大自然随便制造一种病毒,就可以导致人类的灾难。人类的意识,只是大自然本来就有的意识中的一部分而已,没什么奇怪的。大自然的意识是漫无目标的,而人类只不过是把意识运用在保护自己这方面了而已。意识就像物质一样,在不断进化,在不断变化之中。如果这么来看的话,那么意识就是物质的一种属性。它是伴随着物质而来的,是物质不可缺少的一部分。物质和意识不可分割。

[ 本帖最后由 不点 于 2010-5-29 09:53 编辑 ]
回复

使用道具 举报

60#
发表于 2010-5-29 08:58:57 | 只看该作者
向不点致以最崇高敬礼,你是我的榜样我的导师
回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2024-11-15 16:29

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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