无忧启动论坛

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

GRUB4DOS更新建议、bug反馈专帖

    [复制链接]
2821#
发表于 2013-4-8 10:48:39 | 只看该作者
我不是来干扰开发的,只是说说我自己的看法。

增添到 32 字节,依旧是固定长度,终究还是有人要抱怨。所以这没有解决根本问题。

最理想的情况是无限长度,或者支持类似于 Linux 的正则表达式,不过,那都不容易实现,或者说,实现起来太辛苦。

以上 zhaohj 的解决方法,可以给个别人(在个别场合)使用,这肯定没问题。但要融合到 grub4dos 的代码库中,我感觉还不是很合适的。

前不久 shao miller 给 grub4dos 打补丁要解决与 eltorito.sys 相关的某个问题,就被我果断地 “喀嚓” 掉了。他的解决方法不是不正确,而是(在我看来)不可以吸收到 grub4dos 的代码库中。 就是说,那样的解决方式是不成熟的,或者说是有问题的。正确的东西,不一定就能够进入 grub4dos 的代码库中。因为正确性本来也是相对的。干任何事情,都有权衡在里面,你不可能没有权衡。这权衡也便是哲学罢了。本来 “正确” 的东西,经过权衡之后,很可能变成 “不正确” 的,或者 “不合适” 的。

chenall 作为项目管理员,我希望也能够逐步加强哲学训练,把哲学的重要性进一步提升,更加重视哲学问题。其实,积累经验的过程,就是哲学精进的过程。所以,其实我们都是“活到老学到老”,我们每天的哲学都在不断前进,这是不由自主的。哲学是实实在在的,哲学是非常实用的,而不是高不可攀的,更不是无聊的空谈。

通常来说,中庸之道很有用。那就是不走极端。既要宽松,又要严肃。这是矛盾的。正是因为有了矛盾,所以才需要我们去判断、去权衡。这个工作要做起来,还是蛮困难的,不容易把握好。所以还是需要有经验,而经验本身也就是哲学。所以,说到最后,我们还是需要重视哲学,有意识地加强哲学训练。
回复

使用道具 举报

2822#
发表于 2013-4-8 11:11:24 | 只看该作者
本帖最后由 2011yaya2007777 于 2013-4-8 11:14 编辑

刚刚看到 chenall 解决了 0.46a版本 iso9600 文件系统的目录超过 1 扇区时出现的问题,可喜可贺。
之前看到过 udf 文件系统的目录超过 1 扇区的情况,他是连续的。没注意过 iso9600 的情况,也没有仔细测试,竟然是不连续的!

回复 2819# kd142718  :
grub4dos-0.4.6a-2013-04-06 貌似BUG

achi驱动用F6img加载就没有问题用DPMS加载后map出的光盘文件乱码

grub4dos 支持 UTF-8 ,不支持 gbk, gb2312 。文件名有汉字的话,光盘文件系统请使用 iso9600_Joliet 格式。
回复

使用道具 举报

2823#
发表于 2013-4-8 11:49:25 | 只看该作者
不点大师越来越像个传教士了,让人精神缥缈
回复

使用道具 举报

2824#
发表于 2013-4-8 12:19:12 | 只看该作者
本帖最后由 ekaromay 于 2013-4-8 12:52 编辑

回复 2817# zhaohj

我作为提出这个问题的人,我想说下自己的看法:我已经通过其他方法实现了我需要的功能,实际上zhaohj的32字节是仍然不满足我的需求的,这个--max参数还是不要添加为好,把16字节扩展为32字节没有意义,最好的实现还是--max参数可以无限制长度才好,但既然不点老师说实现有困难,那就算了。。。

而且对不点在2825楼所提出的关于小众问题打补丁的看法,我也有一些看法,补丁我觉得是要打的,毕竟这也代表一小部分人的需求,但技术上应该是以外部命令的方法来实现,grub4dos本身应作为一个平台,通用的功能作为内部命令,外部命令做无限扩展,补丁也可以作为一个外部命令,这本来就是模块化设计的初衷,在此也希望grub4dos对于外部命令的设计开发文档能够完善一些,未来在解决bug方面对于小众问题也可以及时修补。
回复

使用道具 举报

2825#
发表于 2013-4-8 12:25:03 | 只看该作者
回复 2823# 527104427

我都升到大元帅了,讲话自然也得有所变化。姑妄言之,姑妄听之。每个人都是哲学家。你脑子里面想的是什么,别人干涉不了。你想听谁说,就听谁的。如果你不想听,完全可以置之不理。大家都是自由的、平等的。谁也不比别人高一头、宽一肩膀。自己的事,自己做主,别人做不了主。
回复

使用道具 举报

2826#
发表于 2013-4-8 12:40:27 | 只看该作者
grub4dos 支持 UTF-8 ,不支持 gbk, gb2312 。文件名有汉字的话,光盘文件系统请使用 iso9600_Joliet 格式。


这些写入G4D帮助文档就好了,知识散落到处,容易忘,不容易找
回复

使用道具 举报

2827#
发表于 2013-4-8 14:39:44 | 只看该作者

UD启动菜单更新后效果

本帖最后由 糊涂 于 2013-4-8 17:45 编辑

我用的哪个GRUB4版本老师们自己看
第一个是6日的新版本




回复

使用道具 举报

2828#
 楼主| 发表于 2013-4-8 16:20:29 | 只看该作者
本帖最后由 zhaohj 于 2013-4-10 18:05 编辑

那就来个无限制字符串的吧,也不加参数。

Snap2.jpg (139.66 KB, 下载次数: 115)

Snap2.jpg

grub4dos-0.4.5c-2013-04-10.7z.rar

259.31 KB, 下载次数: 11, 下载积分: 无忧币 -2

builtins.rar

98.28 KB, 下载次数: 3, 下载积分: 无忧币 -2

优化了一下

回复

使用道具 举报

2829#
发表于 2013-4-8 16:21:21 | 只看该作者
回复 2827# 糊涂


    多写几个汉字行吗  要不没几个人看的懂。。。
回复

使用道具 举报

2830#
发表于 2013-4-8 17:46:09 | 只看该作者
回复 2829# sratlf


    UD启动菜单,更新GRUB新版本后,进MINIPE花屏,导入旧版本GRUB后一切正常
回复

使用道具 举报

2831#
发表于 2013-4-8 18:23:32 | 只看该作者
本帖最后由 pseudo 于 2013-4-8 18:36 编辑

呵呵,有图无真相。

最好用正文来表达清楚,清楚到即使没有图也基本能看明白。
图只起帮助理解的作用,附图严格来说不属于正文。
图不会说话,以图完全代替正文通常是不行的,所以电影通常也少不了字幕。

所以,一个没有正文或不重视正文的帖子往往不利于沟通。
沟通不好就导致要反复回帖多次才能了解情况,时间效率就降低了。

更重要的是可能有高人忙,觉得要了解情况太费力,干脆路过不问情况了。
前面chenall大说“扯了好几个贴子都没有什么结果,我不想再扯这个问题了,恕不再回复”,估计也是觉得了解情况太费力。

以上是对正文与附图关系的个人见解,说出来与大家交流。
回复

使用道具 举报

2832#
发表于 2013-4-8 18:32:30 | 只看该作者
zhaohj 改进后,支持任意长字符串,这点不错。我没时间看代码。chenall 可以看看代码是否存在别的隐患,如果没有发现什么问题,我觉得可以采纳。或者 chenall 再检查、修改、完善一下,然后提交到 svn。
回复

使用道具 举报

2833#
发表于 2013-4-8 20:38:45 | 只看该作者
本帖最后由 糊涂 于 2013-4-8 20:39 编辑

回复 2831# pseudo


   删除了map前面的字符串可以正常引导PE

希望我的问题对老师们有帮助!



回复

使用道具 举报

2834#
发表于 2013-4-8 21:14:24 | 只看该作者
回复 2833# 糊涂


    map前的命令是什么啊。。。。。还是没说到重点。。。。 你单独开个帖子吧   还方便点
回复

使用道具 举报

2835#
发表于 2013-4-8 21:17:38 | 只看该作者
回复 2834# sratlf

其实问题是由昨天一台DELL本子引起的。。。

链接如下:

DELL本子进UD菜单后,键盘失灵
回复

使用道具 举报

2836#
发表于 2013-4-8 23:02:19 | 只看该作者
回复 2835# 糊涂


    从这个帖子我也没看到什么有用的信息  还是没看到删之前的完整菜单是什么  单独开贴吧  不要再在本帖回复了
回复

使用道具 举报

2837#
发表于 2013-4-9 09:42:52 | 只看该作者
是的,感觉糊涂兄应该发求助帖,而不是 bug 报告帖。

很可能是你原来的菜单有问题,只是未被你自己发现罢了。

回复

使用道具 举报

2838#
发表于 2013-4-11 10:35:02 | 只看该作者
本帖最后由 chenall 于 2013-4-11 10:37 编辑

@zhaohj,@不点
看了一下,这个暂不采纳.
这个修改只是简单的把以前的固定16数字改掉.
但是我不确定SCRATCHADDR处是否可以使用那么多空间..

需要更成熟的方案,特别是如果比较的字符太多的时候还要考虑效率的问题.
再者我认为如果确实需要判断那么多字符,那这个程序的效率也不会高到哪里去.

@zhaohj
你的代码还是旧版的,前面贴子中已经提醒过了,建议更新到最新版,
你的补丁文件会把以前的一些改动恢复回去.
回复

使用道具 举报

2839#
发表于 2013-4-11 12:15:15 | 只看该作者
chenall 发表于 2013-4-11 10:35
@zhaohj,@不点
看了一下,这个暂不采纳.
这个修改只是简单的把以前的固定16数字改掉.

你说的意思是,有隐患。

scratchaddr 处的空间是有限的,而且将来可能移动到别处。所以,依赖 scratchaddr 的做法,那就有着潜在的“缓冲区溢出”危险性。安全第一,你权衡之后不采用,我觉得也是对的。另外顺便说,即使采用调用 malloc 分配内存的方法,我也觉得不好,因为我认为 malloc 是不该由内核使用的。以前我说过,内核应该使用 32M 以内的固定内存地址,而不应该调用 malloc 来分配内存。

我同意你后来的分析。应用程序本身应该进行优化处理,避免搜索很长的字符串。

当然,搜索长字符串的问题,将来仍有可能解决。但另一方面,即使解决了任意长字符串的搜索问题,也不等于就解决了与此相关的所有应用问题。比如说,有人搜索的字符串不长,但却不是一个恒定的字符串,而是按照某种规律变化的字符串。此类特殊应用,即使使用 Linux 的 grep 也不一定能够解决。这些特殊的应用,似乎不应该列为 grub4dos 必须解决的问题,而应该划归一般的应用程序设计问题。

开发 grub4dos 很累。开发者、维护者应该也想到如何为自己 “减负”(减轻负担)的问题。不能够 “事事关心”、“面面俱到”。

有人反对我讲哲学。可是事事都离不开哲学。我以上这段话也全都是哲学。所以,反对归反对,执行归执行。别人的反对,与自己的执行,是两件事。别人的反对或支持,那只是自己的参考。权衡之后,自己有自己的判断,照着自己的来。世上没有绝对真理,也不可能让所有的人都满意。
回复

使用道具 举报

2840#
发表于 2013-4-12 00:11:46 | 只看该作者
@chenall

不知道这个算不算bug。。。

回复

使用道具 举报

2841#
发表于 2013-4-12 08:47:16 | 只看该作者
sratlf 发表于 2013-4-12 00:11
@chenall

不知道这个算不算bug。。。

比较的参数后面的是空,所以前面的那个肯定比后面的大.

看来起没有什么错误,,

只是程序对参数的要求不是很严格,后面的参数为空也可以比较...
如果是CMD是不允许的.

当然了这也属于语法问题,上面本身的写法就有问题了,在程序实际运行中这个%tmp%的值是不固定的.
如果tmp里面包含了空格等特殊字符就会出错.

结论上面的脚本写法可能会产生很严重的问题.这是写脚本的人的问题.
回复

使用道具 举报

2842#
发表于 2013-4-12 10:40:23 | 只看该作者
chenall 发表于 2013-4-12 08:47
比较的参数后面的是空,所以前面的那个肯定比后面的大.

看来起没有什么错误,,

我纳闷的就是为什么参数是空也可以进行比较。。。看来只能先判断参数了。。。
回复

使用道具 举报

2843#
发表于 2013-4-12 11:15:49 | 只看该作者
sratlf 发表于 2013-4-12 10:40
我纳闷的就是为什么参数是空也可以进行比较。。。看来只能先判断参数了。。。

不管是什么语言
一般做比较的两个参数,最好做防空处理.否则可能会出现意料之外的错误,这是常识.
像批处理字符串比较一般是两边都加上引号,或其它符号..

grub4dos下一般都没有太严格的参数限制,只是内部保证程序不出错.
回复

使用道具 举报

2844#
发表于 2013-4-12 20:49:31 | 只看该作者
关于malloc的问题。。。
可以专门写个内部使用的malloc
分配32M以下空间
具体空间来源可以是保留的char数组空间(比如说保留8192个char)
回复

使用道具 举报

2845#
发表于 2013-4-13 21:42:16 | 只看该作者
本帖最后由 2010RENDQ 于 2013-4-13 23:06 编辑

最近一些版本,我没有测试出是从哪个版本开始,造成0PE启动时那个倒计时3秒的菜单在有些机上根本不出现而在有些机上一闪而过(只有零点几秒)。但是奇怪的是用FbinstTool的“Qemu测试”来测试启动U盘时倒数3秒又很正常。grub4dos-0.4.6a和grub4dos-0.4.5c都试过最新的两个版本,效果一样。
望引起各位大大的重视,把这个问题一起解决了吧!!
回复

使用道具 举报

2846#
发表于 2013-4-14 13:57:50 | 只看该作者
sunsea 发表于 2013-4-12 20:49
关于malloc的问题。。。
可以专门写个内部使用的malloc
分配32M以下空间

有没有什么好主意?可以提交补丁...
回复

使用道具 举报

2847#
发表于 2013-4-14 14:22:27 | 只看该作者
本帖最后由 不点 于 2013-4-14 15:39 编辑

我印象中,Linux 的内核中就有一个叫做 kmalloc 的函数。它分配的内存是内核空间的内存。而普通的 malloc 所分配的内存是给应用程序使用的。

如果用固定内存的话,则不需要创建 kmalloc 函数。

使用固定内存当然是有坏处的,比如说,内存的使用不灵活。但固定内存的执行效率要稍稍高那么一点点,不需要“分配内存”这个动作。

我觉得 chenall 有时间、有精力的话,就写个 kmalloc 函数。需要懂得内核的空间占用情况,才能写好这个 kmalloc 函数。如果别人不熟悉 grub4dos 的内存占用情况,那就不太容易做这个工作。所以我还是觉得 chenall 比较适合做这个工作。

如果没时间的话,就保持现状也可以。

顺便说,我已经渐渐脱离 grub4dos 的开发。关于 grub4dos 的开发方面的见解、主张,我已经在论坛上有所表露。离开之后,我当然还是很关心 grub4dos 的。看过去的历史,有很多事情是我不曾想到的。正式加入维护的有 bean,chenall,Roy,yaya。对这几位维护者表示十二分的满意。维护者们各自都有超级精彩的贡献,这是以前所没能想到的(没敢有这奢望,甚至曾经担心不会有人接手开发)。还有太多幕后的奉献者,像 Gandalf 等,不一一提及。在 chenall 投入 grub4dos 开发之初,我就说过,我一定全力支持。我觉得,我也尽到了最大努力支持 chenall 和 grub4dos。我能够如此满意地渐渐离开,这真的是我做梦都不曾想到的。也许是上帝给了我支持吧,感谢上帝。也简单作个自我评价。我觉得我自己对这个项目的贡献主要是两条:其一是应对 BIOS bug 的挑战,其二是引入哲学式开发和维护的思路。在早期由于认识水平低下,我还骂人了,或者与朋友们发生矛盾冲突,表现出神经质的症状。希望得到当事人的理解与原谅。

回复

使用道具 举报

2848#
发表于 2013-4-14 15:16:47 | 只看该作者
不点 发表于 2013-4-14 14:22
我印象中,Linux 的内核中就有一个叫做 kmalloc 的函数。它分配的内存是内核空间的内存。而普通的 malloc 所 ...


目前对内核使用的内存不是很明了,这个放到0.4.6再说.
0.4.5c如果没有什么问题的话,可以发正式版了,就是文档欠缺,我会尽量抽空整理一些文档.
回复

使用道具 举报

2849#
发表于 2013-4-14 15:23:05 | 只看该作者
好的,有太多的人在等待正式版了。

回复

使用道具 举报

2850#
发表于 2013-4-17 20:13:02 | 只看该作者
使用的是ThinkPad X230i ; 是核显,单条2G内存,启动到grub4dos里面只能看到 Mem: 630K/511M/6M ,无法载入ramos;
用了 0.44和0.45多个版本都一样
回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2024-5-11 16:19

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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