中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net  论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
« [1] [2] [3] »
作者:
标题: 不点请进,GRUB for DOS的bug 上一主题 | 下一主题
不点
银牌会员

不甘寂寞的人


积分 2491
发帖 1115
注册 2003-9-24
状态 离线
『第 31 楼』:  

> 由于没有BCDL的源代码和详细的工作原理说明文件,所以至于BCDL所期望的是“软的”还是“硬的”,确实无法说明。

它要引导真实光驱,又假定它无法使用 BIOS 本身的光驱引导程序,那么,它大概也只有这一个办法了,用硬件 IO 标准 ATAPI 来实现。不排除它也同时实现软的方法,但,那可能性太小了,它如果实现了软的方法,那么它应当顺便就实现了 ISO 文件的引导。或者说,实现软的方法,其目的就是实现 ISO 文件的引导。

> 不过,如果GRUB针对BIOS写补丁程序的话,虽然可能实现一些非常美好的功能,但是,由于BIOS的光盘读功能本来就没有标准,GRUB的此补丁能做到通用吗?还有,如果BIOS本身就不支持光盘引导功能怎么办(比如我的那台电脑就是)?

GRUB 做出补丁的话,当然是 GRUB 自己的调用方法了(放在 int 13h 中),跟谁的都不一样;也没有谁的曾经出现过,所以,想跟它一样都不可能了。既然是 GRUB 自己的,当然就统一了。只要使用 GRUB,就会有这个统一的补丁。不使用 GRUB 的话,当然没有了。

GRUB 的补丁,就是要把 BIOS 里面的光盘扇区函数找出来,这些函数,可能不是以 int 的形式出现的,GRUB 补丁的意图,就是把这些函数封装到 int 13h 之中。如果某个主板对此进行加密(不太可能这么做),那我们就可能无法找到这个函数,这样,我们当然就放弃对这类主板的支持。我的机器是华硕的主板,看来这个函数比较容易找到,现在已经有点眉目了,只是没有时间去做。

如果 BIOS 本身都不支持,那么,当然没有这样的函数了。放弃对这个主板的支持。

在 GNU GRUB 的 TODO 列表中也有这样明确的暗示,要求 BIOS 本身必须支持光盘引导。看来 GNU GRUB 的开发者也是这么考虑的,其思路可能和我们的是一样的。

当如上所说无法支持某个主板的时候,我们是指不支持从真实光驱引导。从 ISO 文件引导完全是支持的,这个与 BIOS 是否支持光驱引导无关。ISO 文件是软的,使用“可引导的 CDROM 标准”。

要想在那些主板之下支持真实光驱引导,可以选择 SBM 或者 BCDL。两个都是漂亮的软件。GRUB 不可能代替它们。





因为我们亲手创建,这个世界更加美丽。
2003-10-7 00:00
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
Wengier
系统支持

“新DOS时代”站长


积分 27734
发帖 10521
注册 2002-10-9
状态 离线
『第 32 楼』:  

我这几天发现BCDL最新的3.0版也推出了,它显然扩充了自身的灵活性。具体情况是,它自动在C:\下查找以下文件:

VIDE-CDD.SYS (IDE/ATAPI光驱驱动)
USB_CD.SYS (USB光驱驱动)
USBASPI.SYS + ASPICD.SYS (USB光驱驱动)
ASPI2/4/7/8DOS.SYS + ASPICD.SYS (SCSI/ASPI光驱驱动)
等等。。。

可见,BCDL.BIN并非通过硬件方法将驱动定死在IDE/ATAPI光驱上,而是通过从网上到处拼凑一些各种类型(如SCSI、USB等)的光驱驱动程序来实现其相应光驱的引导的。说不定哪天BCDL真会通过SHSUCDHD来实现ISO文件的引导呢?




Wengier - 新DOS时代

欢迎大家来到我的“新DOS时代”网站,里面有各类DOS软件和资料,地址:
http://wendos.mycool.net/

E-Mail & MSN: wengierwu AT hotmail.com (最近比较忙,有事请联系DOSroot和雨露,谢谢!)

2003-10-7 00:00
查看资料  发送邮件  访问主页  发短消息 网志  OICQ (29206679)  编辑帖子  回复  引用回复
不点
银牌会员

不甘寂寞的人


积分 2491
发帖 1115
注册 2003-9-24
状态 离线
『第 33 楼』:  

那些光驱的驱动程序,应当都是用 ATAPI 硬件标准的。实现 ISO 文件的引导是不难的,别说有了 BCDL 以及 SBM 等,即便是没有它们,那么白手起家--用可引导的 CDROM 标准--也可以编写 ISO 的引导程序。引导 CDROM 同时需要上述两个标准。

GRUB 当然也可以加入对 ATAPI 标准的支持从而引导 CDROM。但是,那样的代价是,代码增大到不可接受的程度。这还是小事,更重要的,可能没有人去写了。即使把 SBM 的程序移植过来,都是相当不容易的。

我们现在的 GRUB 仿真程序,代码只有 1K,将来加入 CDROM、ISO 的支持,估计要增大到 2K 甚至 3K 了(仅就 int13的处理程序而言)。

如果用 ATAPI 标准把光驱的引导给以实现,那么,BIOS 中的CDROM 引导程序就不能得到有效的利用,这也是一种损失。

如果把 CDROM 的 int13 接口予以实现,那么,我们在 DOS 下不需要任何驱动程序,仅仅像对硬盘那样使用 int13 就可以任意访问光盘上的扇区了。这是用 ATAPI 硬件方法所不可能得到的、一个非常革命性的优点。

ATAPI 的方法,本质上只对老的 BIOS 才有价值【这些 BIOS 不能引导 CDROM】。我认为,支持老的 BIOS 以及老的 CPU 如 286,是意义不大的。

-----------

补充一下。似乎看到有人说某些 SCSI 光驱的主板,本身就可以把光驱当作硬盘来使用,是把光驱当作 BIOS 的硬盘号如 0x83 来实现。在 BIOS 设置程序中可以设置是否把光驱当作硬盘。

也许,不久之后,IDE 的光驱也会这么做的。果真如此,那就太方便了,也就不用我们再去 HACK 了。现在刷新 BIOS 是很方便的。也许我们应该等待,而不是急于去编写什么。我最害怕作无用功了。

有个人写了 BIOS 优化程序,是用来刷新 BIOS 的。也许我们可以等待他写出新的程序,将 CDROM 的补丁加入其中,这不就省事儿了?果真如此,我们也就只剩下编写从 ISO 文件来引导的程序了。所以,也许,应当只干这 ISO 文件的工作,这样,就不会白干了。

[此贴子已经被作者于2003-10-7 22:26:02编辑过]






因为我们亲手创建,这个世界更加美丽。
2003-10-7 00:00
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
hunome
银牌会员

颓废青年


积分 2265
发帖 721
注册 2003-5-12
状态 离线
『第 34 楼』:  

有没有可能和bcdl的作者联系一下呢?

2003-10-9 00:00
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
不点
银牌会员

不甘寂寞的人


积分 2491
发帖 1115
注册 2003-9-24
状态 离线
『第 35 楼』:  

> 有没有可能和bcdl的作者联系一下呢?

应当是可能的. 这个我不擅长, 不知道 wengier 能否.

有硬件的驱动, 再加入软件的驱动, 比较容易. 而从软件的驱动, 再去做硬件的驱动, 比较难.

我的意思是说, BCDL 或 SBM 的作者, 可以比较容易地加入 ISO 的仿真支持, 而别人不容易加入对 CDROM 硬件的支持. 硬件规范理解起来难, 而软件标准要容易理解一些.






因为我们亲手创建,这个世界更加美丽。
2003-10-10 00:00
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
xiaojun
银牌会员





积分 2202
发帖 499
注册 2003-6-12
状态 离线
『第 36 楼』:  













[em04][em04][em04]







[em04][em04][em04]

[此贴子已经被作者于2003-10-14 0:41:41编辑过]






一年四季,枫叶红了又红;人生四季,失去的,还能再来吗?—— !
2003-10-10 00:00
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
Gandalf
中级用户

CPU


积分 362
发帖 96
注册 2004-7-8
来自 北京
状态 离线
『第 37 楼』:  

其实,我个人猜测,BCDL 没有驻留于内存。他首先从当一个 dos 系统功能的提供者,然后把光驱的驱动载入;此刻,这个 sys 业已提供了一个 atapi 的微驱动;那么, 那些系统服务也就用不上了; 此刻,就可以像由 BIOS 的从光驱启动一样使用一个驱动器号对光盘进行访问啦.



f22_storm@163.com
http://sysoft.zdwx.com/
2004-8-11 00:00
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
fujianabc
金牌会员





积分 3467
发帖 1616
注册 2004-6-21
状态 离线
『第 38 楼』:  

   其实个人觉得,就算支持iso文件模拟光驱,意义也不大,原因如下:
光盘启动有三种模式:模拟软盘启动、模拟硬盘启动、无模拟启动
对于前两种模拟启动,grub已能支持,所以只需要把光盘内的镜像提取出来即可,
   而至于无模拟启动模式的iso文件,现在所见到的其实只有2k/xp/pe系列的光盘,就算能够模拟光驱启动,也只是基于bios的模拟,而2k/xp/pe不是基于bios的系统,就算能够模拟成功,也只能完成启动过程,无法完成进入操作系统。这就如同2k/xp/pe下不能访问grub所模拟的软驱一样,同理grub所模拟硬盘和光盘也无法进入winpe。                   而从bcdl的引导原理来看,却可以从中得到借鉴,有可能(?)用类似的原理实现从不支持u盘启动的主板上启动u盘。


2004-8-11 00:00
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
dato
高级用户




积分 916
发帖 377
注册 2004-3-8
状态 离线
『第 39 楼』:  

那现在的版本能不能将iso镜像模拟,然后直接在DOS安装。而不需要将镜像解包才能安装。



http://dato.ys168.com
google search bot
http://dato.minidns.net/
2004-8-11 00:00
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
fujianabc
金牌会员





积分 3467
发帖 1616
注册 2004-6-21
状态 离线
『第 40 楼』:  

现在不能模拟iso,但可以这样,提取出iso的启动镜像,先用虚拟软驱启动,然后加载dos下的虚拟光驱程序,再从iso开始安装。或许可以建议版主做成一个 img+iso 更方便,其中在img内完成虚拟光驱加载iso文件的步骤。

2004-8-11 00:00
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
newjordan2004
初级用户




积分 134
发帖 9
注册 2004-7-30
状态 离线
『第 41 楼』:  

请问版主怎么样才能使用虚拟机?因为本人装不了MS-DOS7.10,所以想用虚拟机玩,版主帮帮忙~~~

2004-8-12 00:00
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
不点
银牌会员

不甘寂寞的人


积分 2491
发帖 1115
注册 2003-9-24
状态 离线
『第 42 楼』:  

修改别人写的程序是痛苦的, 我最近在看 edd30, myint13h 等模块, 发现其中有不少错误, 同时也感觉到很难全面把握其编程思想, DOC很不详细.

我现在重又想起我以前的观点了, 就是 HACK BIOS, 直接找出 CDROM 的扇区函数. 这样虽然也难, 但至少是我自己编写的, 我自己可以读懂, 这是肯定的了.

我先HACK我自己机器上的 BIOS, 成功之后积累经验, 再 HACK 办公室机器上的 BIOS. 并且把 HACK 的方法公开出来, 然后别人也可以用类似的方法进行 HACK 了. 在理想的情况下, 所有的 BIOS 都可以支持了.

有源代码不见得就比没有源代码容易. 我的华硕主板的 BIOS, 即便用 DEBUG, 都非常清楚, 可是 edd30 以及 myint13 等程序, 看起来太乱了, 也很臃肿.






因为我们亲手创建,这个世界更加美丽。
2004-8-14 00:00
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
bush
银牌会员




积分 2165
发帖 730
注册 2004-4-21
状态 离线
『第 43 楼』:  

  有用~~~

2004-8-25 00:00
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
« [1] [2] [3] »
请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题



论坛跳转: