无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站广告联系 微信:wuyouceo QQ:184822951
查看: 6924|回复: 17
打印 上一主题 下一主题

GRUB4DOS的未来前途和BIOS息息相关

[复制链接]
跳转到指定楼层
1#
发表于 2014-2-26 22:26:41 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 ali88home 于 2014-3-2 12:06 编辑

更改标题一下

GRUB4DOS的问题现在不是能不能支持UEFI,是Bios是不是能继续存在的问题。


BIOS 的前途究竟怎样?(投票)
http://bbs.wuyou.net/forum.php?m ... &fromuid=156496
(出处: 无忧启动论坛)

这几天一直研究着GRUB2菜单,结果发现GRUB2它是如此强大,后学拿H3大大的PE合盘试试,居然有98%菜单都可以做到,那2%是我不会的,应该是几乎100%,甚至超过很多...

我的电脑是新的,支持UEFI,但是主机板却支持DOS开机-设定好了,选择UEFI或U盘启动就ok。

所以只要主机板支持DOS的一天,就是GRUB4DOS生存的一天,然后慢慢变淡...。

我正测试制作的GRUB2菜单

GRUB2 装载 SYSLINUX /GRUB4DOS 和SYSLINUX 装载 GRUB2/GRUB4DOS 菜单
http://bbs.wuyou.net/forum.php?m ... &fromuid=156496
(出处: 无忧启动论坛)




推荐
发表于 2014-3-2 17:06:02 | 只看该作者
2012rospartner 发表于 2014-3-2 08:04
你根本没搞清楚问题的根本。一个启动器,没那么重要。grub2已经支持uefi,即使没有grub4dos,也会有aaa,bbb ...

这个帖子就是在讨论如何在uefi环境下运行grub4dos,而不是怎么在uefi下运行dos/xp。
你怎么能说efi下不需要启动管理器呢?目前grub4dos有很多启动增强功能,比如map虚拟磁盘以及ramos启动,这目前在uefi下尚无法实现。正如你所说,uefi下可以写一个全新的启动器来取代grub4dos,如果能实现uefi下的iso/img磁盘仿真启动以及ramos启动等功能,那就算解决了本贴的问题了。grub4dos也可以随bios隐退了。

至于uefi下运行dos/xp,这和本帖主题无关,可以另发帖讨论,不过基本没有实现可能了。uefi下dos的替代品是efi shell,xp则被新版本windows取代了。
回复

使用道具 举报

2#
发表于 2014-2-27 09:30:34 | 只看该作者
现在很大的一个问题是,efi模式的grub2不支持linux16/initrd16和memdisk,从而无法实现镜像模拟

点评

请教grub2有x32的bootx32.efi吗? 如果有,那么在x32的EFI就可以执行x32的img实现镜像模拟  详情 回复 发表于 2014-2-27 11:30
回复

使用道具 举报

3#
 楼主| 发表于 2014-2-27 11:30:47 | 只看该作者
本帖最后由 ali88home 于 2014-2-27 14:15 编辑
fujianabc 发表于 2014-2-27 09:30
现在很大的一个问题是,efi模式的grub2不支持linux16/initrd16和memdisk,从而无法实现镜像模拟


请教grub2有x32的bootx32.efi吗?

如果有,那么在x32的EFI就可能执行x32的img实现镜像模拟

试过了bootx32.efi,可以启动grub2,但是支持linux16/initrd16和memdisk实现镜像模拟???居然???

点评

有吧。 下载的 WInLy-GRUB 中就带有 bootx32.efi 和 bootx64.efi. 只是我这里测试不了 bootx32.efi , 机器 只认 bootx64.efi.  详情 回复 发表于 2014-2-28 18:46
关键是linux16、initrd16、memdisk都是16位是模式程序。uefi不支持16位的  详情 回复 发表于 2014-2-27 14:38
回复

使用道具 举报

4#
发表于 2014-2-27 14:38:51 | 只看该作者
本帖最后由 fujianabc 于 2014-2-27 14:39 编辑
ali88home 发表于 2014-2-27 11:30
请教grub2有x32的bootx32.efi吗?

如果有,那么在x32的EFI就可能执行x32的img实现镜像模拟


关键是linux16、initrd16、memdisk都是16位是模式程序。uefi不支持16位的。
现在其实grub4dos相对于gnu grub增强的大部分功能,grub2都没能实现
回复

使用道具 举报

5#
发表于 2014-2-28 14:31:24 | 只看该作者
我还在担心efi的前途呢

mbr有什么不好呢。
回复

使用道具 举报

6#
发表于 2014-2-28 18:35:40 | 只看该作者
本帖最后由 mdyblog 于 2014-2-28 18:41 编辑

1:最要命的是 EFI。
EFI 的过渡,我等小虾是无法阻止的,只能适应了。

支持的G4D 只能是维护态了, 不可能在有人 大力气区发展他的。

只能是  开发同时支持 EFI 的 G4d-EFI .

2: 其实EFI开发比BIOS开发简单。 完全是C/C++的代码,完全是函数调用;没有BISO中的巫师代码(INT调用)。不需要考虑(有限的)寄存器。
     而且 EFI 中没有内存限制,代码可以大点,变量可以多点。(不想现在的G4D默认只支持几个变量)EFI写的话,变量可以随便用(不会用到极限-4G)。
   相信 很快 就会有人 将G4D编译成 支持EFI版。G4D开源是其优势,开发进度很快的,突击一把,一个月就可以出来的。

3: 用EFI 其实 不只是 G4D 的问题。
   还需要 其他支持。
   比如 现在BIOS G4d 的扇区map Vblock驱动支持。
   EFI 中也一样。 内存盘, 扇区映射盘,都需要第3方配合。或者说:G4D需要配合第3方来写,问题是
第3方 现在在哪儿???
   比如,最近,我用 第二代UD(MBROS) 存放EFI-8PE, 8PE的EFI Loader(bootx64.efi)就不加载 UD中的BCD.
需要 支持的 UD 的bootx64.efi 的“第3方”。
(说明,grub2-EFI能访问UD中的文件. EFI-8PE 的 bootx64.efi 也执行了)

点评

问题在于目前grub/g4d中很多功能的实现就是依靠的int调用,要efi化这些功能估计完全都要重写了。 类似的syslinux所带的memdisk也遇到这个问题,导致迟迟没有出efi版的memdisk  详情 回复 发表于 2014-3-1 15:56
回复

使用道具 举报

7#
发表于 2014-2-28 18:46:02 | 只看该作者
本帖最后由 mdyblog 于 2014-2-28 19:08 编辑
ali88home 发表于 2014-2-27 11:30
请教grub2有x32的bootx32.efi吗?

如果有,那么在x32的EFI就可能执行x32的img实现镜像模拟


1:有吧。
下载的 WInLy-GRUB 中就带有 bootx32.efi 和 bootx64.efi.
只是我这里测试不了  bootx32.efi , 机器 只认   bootx64.efi.

2:
》那么在x32的EFI就可能执行x32的img实现镜像模拟
我上面说过, 其实是配合的问题。 不只是G4D的问题。
现在 我们需要  各种OS的EFI-Loader,
原有的Loader(IO.SYS, NTLDr BootMgr) 都是 BIOS环境的。 在EFI环境都不能运行。
所以需要 有这些第3方(EFI-IO.SYS,  EFI-NTLDR, EFI-BootMgr, 也许还涉及到 其它文件),
(EFI-IO.SYS 应该是个DOS模拟器吧,虚拟出一个BIOS环境,DOS软件在虚拟BIOS上运行)
之后 才能 G4D配合他们来开发 。

BIOS启动:Loader就是完成 BIOS->WINDOWS的过渡
EFI启动: Loader就是完成 EFI->WINDOWS的过渡
过渡后,  Loader/BIOS/EFI 没有作用了,windows的工作 不需要  Loader/BIOS/EFI
(DOS工作 需要BIOS)


目前 EFI 只有Win8的Loader,XP 2003  DOS都没有。


grub2 有镜像模拟,但不是配合  DOS  XP 2003  的Loader 开发的。 目前只是配合Linux开发的,Linux可用。
大家知道,就是loop.
其实 loop 就是G4D的map。 只是没有开发对应的Loader。
(Vboot-grub2好像支持模拟,他有LOader到windows驱动一整套的东西)。可惜不开源,我等该不了。



回复

使用道具 举报

8#
发表于 2014-2-28 19:34:18 | 只看该作者
引导程序的修改支持efi事小,大问题是dos,xp里面的bios调用如何支持。要么就修改xp的引导过程为efi,而dos只能软件模拟bios了。
回复

使用道具 举报

9#
发表于 2014-3-1 11:34:40 | 只看该作者
记得去年试过当时是不能直接map 文件,现在有map xx.iso功能没?
http://bbs.wuyou.net/forum.php?m ... 3&fromuid=30984
回复

使用道具 举报

10#
发表于 2014-3-1 15:56:10 | 只看该作者
mdyblog 发表于 2014-2-28 18:35
1:最要命的是 EFI。
EFI 的过渡,我等小虾是无法阻止的,只能适应了。

问题在于目前grub/g4d中很多功能的实现就是依靠的int调用,要efi化这些功能估计完全都要重写了。
类似的syslinux所带的memdisk也遇到这个问题,导致迟迟没有出efi版的memdisk

点评

INT调用 不是问题,就当一个函数调用, int 0x13 就当作 CALL FUN_INT_13(...) EFI 中 就改作 FUN_INT_13_EFI(...) 这只是 示意:原来调用 A 函数,现在调用 A' 函数。(从移植 来说,现在 移植一个A函数就可以  详情 回复 发表于 2014-3-1 16:41
回复

使用道具 举报

11#
发表于 2014-3-1 16:41:46 | 只看该作者
本帖最后由 mdyblog 于 2014-3-1 16:43 编辑
fujianabc 发表于 2014-3-1 15:56
问题在于目前grub/g4d中很多功能的实现就是依靠的int调用,要efi化这些功能估计完全都要重写了。
类似的 ...


INT调用 不是问题,就当一个函数调用, int 0x13 就当作 CALL  FUN_INT_13(...)
EFI 中 就改作 FUN_INT_13_EFI(...)
这只是 示意:原来调用 A 函数,现在调用 A'  函数。(从移植 来说,现在 移植一个A函数就可以。上层逻辑和代码不变。)

而且, INT 是函数细节的问题。
上面一定有个 函数A包装。G4D 大逻辑是C写的,也是 函数-堆栈 调用,和EFI是代码机兼容。

我们只管A函数这个接口层, 至于A函数怎么写,授予移植的问题。原来用INT调用实现A函数, 现在调用EFI driver 实现A函数。


其实软件 关键 是 思想,算法。 这是做重要的,也是最花时间的。 至于底层接口,问题不大。
这个工作教移植(porting)。软件的逻辑不变,知识改变底层接口。
这个 不需要太多的脑力(思想),基本上只算体力活。


我多年感这种工作。
比如 WINDOWS ---LINUX---单片机   之间  相互移植。  
单片机 和 WINDOWS  差很远吧, 但 软件 的大逻辑在代码机还是兼容的。
只是移植底层函数。 原来 调用Windows-API, 现在 通过 单片机 的 寄存器 操作实现。

BIOS  --  EFI  移植类似,同理。
工作量比原始开发小多了。 大概 %1 吧。 一个月就可以。 (由于缺乏第3方的支持,有些功能,目前还不能实现,如MAP ,实现了目前也没有EFI程序用)

点评

你说的这是什么啊。你是说grub4dos源码改动是吗,有什么用?dos,xp的源码你又没有,再说就算有dos源码,dos是16位的,只能int调用,efi是64位的,根本不行。所以efi根本不支持dos,也不支持xp启动,除非把xp启动的过  详情 回复 发表于 2014-3-1 18:04
回复

使用道具 举报

12#
发表于 2014-3-1 18:04:46 | 只看该作者
mdyblog 发表于 2014-3-1 16:41
INT调用 不是问题,就当一个函数调用, int 0x13 就当作 CALL  FUN_INT_13(...)
EFI 中 就改作 FUN_I ...

你说的这是什么啊。你是说grub4dos源码改动是吗,有什么用?dos,xp的源码你又没有,再说就算有dos源码,dos是16位的,只能int调用,efi是64位的,根本不行。所以efi根本不支持dos,也不支持xp启动,除非把xp启动的过程改位xpboot.efi差不多。grub4dos改efi有什么用,16位程序,efi是64位,而且改了也不支持dos.

点评

需要DOS, XP源码干嘛? 完全不需要。 难带大家开发一个window相关的软件,就需要windows源码吗?  详情 回复 发表于 2014-3-1 21:56
回复

使用道具 举报

13#
发表于 2014-3-1 21:56:58 | 只看该作者
本帖最后由 mdyblog 于 2014-3-1 22:03 编辑
2012rospartner 发表于 2014-3-1 18:04
你说的这是什么啊。你是说grub4dos源码改动是吗,有什么用?dos,xp的源码你又没有,再说就算有dos源码,d ...


需要DOS, XP源码干嘛?  
完全不需要。 难带大家开发一个window相关的软件,就需要windows源码吗?

》》grub4dos改efi有什么用,16位程序,efi是64位,而且改了也不支持dos.
隔行如隔山。 看样子你不清楚C/C++软件开发。

软件 变换 平台时, 有相通之处。

其中的思想和算法 是相通的。

(1) 设计思想
(2) 算法
(3) 编码
只是(3) 不同。 1、2是相通的。 在此基础上,开发快多了。

点评

你根本没搞清楚问题的根本。一个启动器,没那么重要。grub2已经支持uefi,即使没有grub4dos,也会有aaa,bbb,等启动器支持uefi,就算grub4dos修改后支持uefi,64位模式和没有bios中断已经决定了不能支持dos.假设没有uefi,  详情 回复 发表于 2014-3-2 08:04
回复

使用道具 举报

14#
发表于 2014-3-2 08:04:14 | 只看该作者
mdyblog 发表于 2014-3-1 21:56
需要DOS, XP源码干嘛?  
完全不需要。 难带大家开发一个window相关的软件,就需要windows源码吗?
...

你根本没搞清楚问题的根本。一个启动器,没那么重要。grub2已经支持uefi,即使没有grub4dos,也会有aaa,bbb,等启动器支持uefi,就算grub4dos修改后支持uefi,64位模式和没有bios中断已经决定了不能支持dos.假设没有uefi,就只能启动windows7,windows8系统,如果要用win7,win8系统,还要grub4dos干吗?有bootmgr。如果一个机器真没有了bios,那么就不能运行xp,dos系统了,如果真的需要运行xp,dos系统,你不觉得悲哀吗?所以如果有办法能让uefi启动xp,dos,那才是重要的。为了修改一个grub4dos去支持uefi,没太多意义,就算修改grub4dos支持uefi,又有什么太大的使用用途呢?再说,启动器多大个事,几十k,几白k的问题,别人也可以编个全新的uefi的启动器。启动器最终目的的是启动系统。关键问题是,没有了bios,你的dos系统,xp系统如何运行,这才是头痛的问题。如果你说,不用dos,xp系统,那我也没什么说的,我只能说win7,win8系统直接efi启动bootx64.efi就得了,根本不需要启动管理器。

点评

这个帖子就是在讨论如何在uefi环境下运行grub4dos,而不是怎么在uefi下运行dos/xp。 你怎么能说efi下不需要启动管理器呢?目前grub4dos有很多启动增强功能,比如map虚拟磁盘以及ramos启动,这目前在uefi下尚无法实  详情 回复 发表于 2014-3-2 17:06
C: 判断自己的机器是X64构架还是IA32的构架以及一些名词的解释 不是我说的...看看吧 UEFI启动视频详解:启动分析+N项操作实例,赶紧学习,不要落伍啦,该给自己充电啦... http://bbs.wuyou.com/forum.php?mod=vie  详情 回复 发表于 2014-3-2 10:54
回复

使用道具 举报

15#
 楼主| 发表于 2014-3-2 10:54:29 | 只看该作者
本帖最后由 ali88home 于 2014-3-2 11:54 编辑
2012rospartner 发表于 2014-3-2 08:04
你根本没搞清楚问题的根本。一个启动器,没那么重要。grub2已经支持uefi,即使没有grub4dos,也会有aaa,bbb ...


C: 判断自己的机器是X64构架还是IA32的构架以及一些名词的解释
不是我说的...看看吧
UEFI启动视频详解:启动分析+N项操作实例,赶紧学习,不要落伍啦,该给自己充电啦...
http://bbs.wuyou.net/forum.php?m ... &fromuid=156496
(出处: 无忧启动论坛)

UEFI只判断X64构架还是IA32的构架,跟系统无关,为何这样的概念很多人都乱了。

看图证明XP支持UEFI启动,除非 VM 骗我,只要是x32,都是可以启动的。至于能不能去执行进入x32系统,那么就另外一回事了。
xp如果有efi启动档,还是可以启动...

GRUB4dos如果是16位,那就不用说了,如果它是支持32位,那么,呵呵...还是{可能}支持的哦!
GRUB4dos依赖bios太多,要让UEFI启动容易,但是要BIOS继续存在,就???

回复

使用道具 举报

17#
发表于 2014-3-4 00:06:10 | 只看该作者
fujianabc说的确实是,grub4dos的iso/img磁盘仿真启动以及ramos启动等功能成就了多少维护PE、工具的辉煌
回复

使用道具 举报

18#
发表于 2014-8-21 08:22:32 | 只看该作者
本帖最后由 wangjg 于 2014-8-21 08:30 编辑

看来需要有人写个csm.efi了。这样efi启动grub4dos,支持dos等等诸如此类问题是不是就解决了?
不过话说回来,同样的工作量都快可以实现efi上的虚拟机了。
这样pc上也像小型机一样有分区了,呵呵。
回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2024-9-22 07:23

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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