|
花了几个小时,总算调整完成了。我自己还没有试验,请大家测试,看看会不会有什么“未曾料想”的异常情况。
调整后,--top 就像 is64bit 那样,用来控制是否采用 4G 之上的高位内存。is64bit 是全局变量,但 --top 属于局部变量,只在 map 命令行有效,而且只是对本次 map 生效,不影响其他 map 命令。如果需要把 img 映射在高位内存区,必须在 map 命令行中添加 --top 参数。如果 map 命令行没有 --top 参数,则与此 map 命令相应的 IMG 不会被加载在高位内存区。
与 --rehook 有关的代码也进行了调整。另外还强化了某些代码的健壮性,比如,处理了 map->BaseAddr + map->Length 相加之后可能溢出的情况。溢出之后,相加的结果有可能为 0。如果某 BIOS 有 bug(或者故意制造 bug),那么溢出后,相加的结果甚至可能会是大于 0 的。这些情况都考虑了,应该很健壮了。
如果 yaya 最终决定采用的话,ChangeLog 可以写:--top meaning changed to "allowing memory blocks above address of 4GB".
@yaya
我是帮 bean、chenall 和你,不要搞错啦。在 bean、chenall 接管这个项目以后,我曾经承诺过,我一定尽力提供帮助。现在对你也是一样的。我如果能够做到“不食言”,那我就觉得很自豪了。你们个个都是强手,完成了很多出色的工作,那些工作我都难以胜任。现在你们是“主”,我是“客”;grub4dos 如何发展?grub4dos 发展得好不好?我都不管了,我都不负责了;责任已经转嫁到你们头上了。我不认为有谁能够指挥你们,都是你们各位自己在指挥自己。公平来讲,我当初负责这个项目的时候,也是自己指挥自己。通过最近一年的艰难思考和认识,我终于发现,这世界是没有救世主的。一切的一切,都得靠自己的努力去达成。不能依靠某个巨头。当初我作为 grub4dos 的维护者,其实质也就是在“拯救自己”、为自己的利益而“奔命”罢了。开源是对终端用户有利的事业。“谁是我们的敌人,谁是我们的朋友”,这个“大是大非”的问题,是从事一切工作的首要问题。你们从事开源软件的开发,建设自己的美好家园,那也是符合我的利益的。现在我力不从心了,但如果我能尽到自己的微薄之力、能够给你们提供某些帮助,从而让我能够刷一刷“存在感”,我也就感到满意了(否则,假如“不存在”的话,那对谁都是一件很可怕的事情;我反正不敢去想)。
|
|