|
Gandalf
中级用户
CPU
积分 362
发帖 96
注册 2004-7-8 来自 北京
状态 离线
|
『第
151 楼』:
支持不点: 我现在忙于工作,刚刚过了试用期。 ^_^ 我会在恰当的时间,把 0.96 打上中文显示的补丁,并更进一下中文显示的方式,比如把字库进行压缩,节省存储空间; 还有,其实,我想也可以考虑为 gfxboot 作一个专门的 patch. - 这些以后的维护就多多仰仗不点的努力了,我现在考虑的是尝试着作一个操作系统,保护模式的,要么启动后就是一个虚拟机,要么能支持运行程序,多起动功能就是运行的一道用户程序,^_^。 这说得有点大了。 一个打算嘛,也是一种尝试,想一下总可以吧?! ^_^ Grub 很好,很强健;可是,我们的操作系统也需要有“好事者”,我现去看看。[em07] 如果行情还好,我觉得,大家一起干;虽然是基于人家的 CPU, 但是,我们也能学点东西,为后来者铺路嘛! [em05]
|
f22_storm@163.com
http://sysoft.zdwx.com/
|
|
2005-3-31 00:00 |
|
|
不点
银牌会员
不甘寂寞的人
积分 2491
发帖 1115
注册 2003-9-24
状态 离线
|
『第
152 楼』:
grldr的启动代码,这一部分,最大允许 16 个扇区,这已经够用的了,因此,我们无需考虑采用压缩技术。另外,压缩技术一般是适用于大的文件,对小的,几个 K 的文件,效果不会太好,正如你所说,解压代码还要占据一定的空间呢。
stage2 的要压缩的话,估计能压缩到 4:1 甚至更高的比率,方法主要不是依靠“压缩”技术,而是把 C 语言转成 assembly 就可以了。但是做这个,似乎意义不太大(我个人认为),因为 grub 的功能在增加,这还是会使得 GRUB 逐渐变大的。
前面有朋友曾经用“鸡肋”这个词语来形容一项功能的优点太渺小。GRUB 中就有很多这样的“鸡肋”,比如我自己就认为 savedefault 就是一个“鸡肋”,其它的“鸡肋”还多着呢。如果把这些鸡肋都去掉,GRUB 也可以大幅度减小体积。
我目前不看好将 GRUB 放在 ROM 这个做法,它既不容易,也不太必要。ROM 有它自己的功能,主要是提供统一的标准 BIOS中断接口,以前 IBM 把 BASIC 语言也放在 ROM中,后来都不再这么做了。新奇的做法,并不总是具有生命力;而标准的做法,往往具有强大的生命力的。当然这不是“否认新技术,否认改革,否认前进”的意思,而是,我认为做任何事情都要有一个权衡,比较一下得失。前面我们提到“鸡肋”,即便有可能将 GRUB 放进 ROM中,那么我仍然认为这是一个“鸡肋”,当然,我可能落伍了,我说的也只是我自己的看法而已,大家在技术方面该怎么发展就怎么发展,我本人就不受任何教条的束缚,所以我的话也不一定就很对,完全不要当一回事。
|
因为我们亲手创建,这个世界更加美丽。 |
|
2005-4-1 00:00 |
|
|
不点
银牌会员
不甘寂寞的人
积分 2491
发帖 1115
注册 2003-9-24
状态 离线
|
『第
153 楼』:
祝贺你过了试用期,世界需要能干的人,相信你的老板也需要这样的人。在你工作之余,可以为 GRUB 再做点事情,因为 GRUB 需要你做。但是,你的工作属于第一位的,这个,大家都可以理解的。GRUB 的事情,完全可以往后面放啊,这个都没关系的。
你愿意做多少个补丁,都可以的,你慢慢做吧,把比较成熟的版本提供给我就行。好像应该在 GRUB for DOS 的发布中开辟一个目录,专门存放你做的中文等补丁及其编译结果,这样也不影响原来的纯英文的发布。
你做操作系统的想法,我是比较赞成的。GRUB本身就算是一个不太成熟的操作系统,如果再加以完善,就可以成为一个不折不扣的、完美的操作系统了。但是前面我提到了,GRUB本身也并不完美,要把它改造成操作系统,还需要一个“去伪存真”的过程,吸取其精华,剔除其糟粕,然后才达到精炼、合理、强悍。自己另外设计一套操作系统也是可以的,刚开始,可以跨出一小步,以后慢慢再展开,不要急于求成。关键是,自己所设计的操作系统,要和现存的那些操作系统有差别才行,比如在某方面强过现存的所有的操作系统,这才有前途。只要能想到,就有可能做到。世界缺乏有胆略的人,没了胆子,什么都完蛋了。很支持你。
|
因为我们亲手创建,这个世界更加美丽。 |
|
2005-4-1 00:00 |
|
|
不点
银牌会员
不甘寂寞的人
积分 2491
发帖 1115
注册 2003-9-24
状态 离线
|
『第
154 楼』:
windrv 兄提到的 GRLDR 作为 CDROM no-emulation-mode 的可引导映象问题,是完全能够实现的。现在处于测试阶段:
New grldr can be used with no-emulation-mode bootable CDROM:
At a Linux shell prompt, type these commands:
mkdir iso_root
cp grldr iso_root
mkisofs -R -b grldr -no-emul-boot -boot-load-seg 0x1000 -o grub_bootable_cdrom.iso iso_root
and the created file grub_bootable_cdrom.iso is then a bootable CDROM image.
Download the latest grldr: ftp://ftp.linuxeden.com/tinybit/grldr
已经发现 configfile 命令有严重缺陷导致死机,等解决了这一问题后,就可以用新的 GRLDR 来代替 stage2_eltorito 了。
|
因为我们亲手创建,这个世界更加美丽。 |
|
2005-4-1 00:00 |
|
|
Gandalf
中级用户
CPU
积分 362
发帖 96
注册 2004-7-8 来自 北京
状态 离线
|
|
2005-4-4 00:00 |
|
|
不点
银牌会员
不甘寂寞的人
积分 2491
发帖 1115
注册 2003-9-24
状态 离线
|
『第
156 楼』:
grldrstart.S 和 dosstart.S, 应当是无法再合并了。主要的困难在于,DOS EXE 格式必须以 MZ 开头,而不是以 JMP 开头。
0.4.0pre5 已经上载了,但是 configfile 命令无法使用了,所以大家不要下载。当然,如果有人愿意帮助解决问题的话,可以下载,并帮助修改源程序。
|
因为我们亲手创建,这个世界更加美丽。 |
|
2005-4-4 00:00 |
|
|
不点
银牌会员
不甘寂寞的人
积分 2491
发帖 1115
注册 2003-9-24
状态 离线
|
『第
157 楼』:
刚才漏掉了一点。虽然 由 NTLDR 载入 grldr 时,是从 0x256 开始执行,但是,当把 GRLDR 安装到MBR,我们仍然是从偏移 0 开始执行。GRLDR第一扇区已经是高度集成化的了,能节约的字节,都尽力节约掉了,剩下的,几乎不能再有任何更动的余地了。因此,要把 GRLDR和另外一个东西(比如grub.exe, grub4lin)合并,都是不可能了。另外,grub.exe 和 grub4lin倒是有合并的可能,不过,其合并的意义不大。
|
因为我们亲手创建,这个世界更加美丽。 |
|
2005-4-4 00:00 |
|
|
Gandalf
中级用户
CPU
积分 362
发帖 96
注册 2004-7-8 来自 北京
状态 离线
|
『第
158 楼』:
昨天下午,我也考虑了一下。 在技术上, grldr 和 grldr.exe 合并是没有问题的,这样的话,就只能用 ntldr 来载入了。 而且必须修改两者的代码。 结构看起来像这样:
Quote: | 0x0000 MZ_Header <Point_to_MZ_EXE_STUB>0x0256 JMP <Point_to_LDR_STUB>0x0400 <LDR_STUB>0x0C00 <MZ_EXE_STUB>0x1000 GRUB_STAGE2_STUB |
|
----------------------我想,也是,没什么太大的意义,悉罢之。 [em07]
|
f22_storm@163.com
http://sysoft.zdwx.com/
|
|
2005-4-5 00:00 |
|
|
不点
银牌会员
不甘寂寞的人
积分 2491
发帖 1115
注册 2003-9-24
状态 离线
|
『第
159 楼』:
GRLDR 的结构,是很奇特的。它是一个“多合一”的结构,第一扇区最拥挤,不能够再挤得下DOS MZ 格式的32个字节了。
GRLDR 符合 NTLDR 的结构,因此,它的第一条指令,必须是 JMP 指令;而且,从 第三个字节开始,必须是 FAT_12_16的补丁代码(这是NTLDR结构所必然要求的)。GRLDR 的这一结构,和 DOS 的 EXE 格式是冲突的,因此,不可能将它和grub.exe 进行合并了。
GRLDR 的第一扇区,可被用来写入 MBR,即使没有后续的辅助扇区,该扇区也可以有一定的查找功能,可以找到主分区中的 GRLDR,不过对不含 NT bootsector 的FAT12/16/32分区,这个查找会失败, 因此需要后续的那些辅助扇区。
GRLDR 还可以当作 no-emul-boot 的引导映象。GRLDR的第3第4扇区可以用来写入软盘引导区。所有这些都不太要紧,关键是第一扇区太拥挤了,再也挤不下别的结构了。决不是说挤进去之后“有没有意义”的问题,而是根本就挤不进去了,没有空间了。
|
因为我们亲手创建,这个世界更加美丽。 |
|
2005-4-5 00:00 |
|
|
不点
银牌会员
不甘寂寞的人
积分 2491
发帖 1115
注册 2003-9-24
状态 离线
|
『第
160 楼』:
0.4.0pre6 已经上载到老地方的 FTP 空间,解决了 configfile 命令的巨大 BUG。
0.4.0pre7 也将上载,做了一点改进,优先查找 config_file , 也就是 /menu.lst,失败时才执行 preset_menu,这样才更合理。
|
因为我们亲手创建,这个世界更加美丽。 |
|
2005-4-7 00:00 |
|
|
Gandalf
中级用户
CPU
积分 362
发帖 96
注册 2004-7-8 来自 北京
状态 离线
|
『第
161 楼』:
不点兄,我想了想,还有办法作这么一个事情,让 grub.exe 在 Windows 下拥有图标!! ;)
TOD
============
将 ieldr 和 ieldr.exe 合并。 生成 aviator.exe.
这个 aviator.exe 得使用方法是:
1. 用 ntldr 载入
c:\aviator.exe="Boot AviatoR demo"
2. 在 纯 DOS 下使用
a:\>aviator.exe
3. 在 Windows 下使用
双击就可以了。
|
f22_storm@163.com
http://sysoft.zdwx.com/
|
|
2005-4-7 00:00 |
|
|
不点
银牌会员
不甘寂寞的人
积分 2491
发帖 1115
注册 2003-9-24
状态 离线
|
『第
162 楼』:
我不太知道 IELDR 和 IELDR.EXE 的结构。不过,似乎你曾经说 IELDR 是 GRLDR 的结构格式,IELDR.EXE 是 grub.exe 的结构格式。如果确实是这样,那么,不可能将两者合并了,正如前面所说。
假如你一定要合并,恐怕合并之后,要损失功能了,比如,你把 grldrstart.S 第一扇区中的 FAT_12_16 补丁代码去掉,那么 IELDR 就不能适应 FAT12/16 的文件系统了。
在 win98 下确实可以双击 grub.exe 来运行 grub,只要把随 grub_for_dos 一起发布的 grub.pif文件放在与 grub.exe 相同的目录下便可。如果你相应地制作了 ieldr.pif 文件,那么当然也可以双击启动 ieldr.exe 了。
-------------------------------------------------------------------------------------------------------
0.4.0pre7 已经上载,支持优先查找 “和 grldr 处在相同根目录的 menu.lst 文件”。什么意思呢?就是说,
当 (hd0,0) 中的 GRLDR 获得执行权的时候,它将查找 (hd0,0)/menu.lst 文件,并立即执行它。
当 (hd0,1) 中的 GRLDR 获得执行权的时候,它将查找 (hd0,1)/menu.lst 文件,并立即执行它。
……………………………………………………………………………………………………
当 (hd0,n) 中的 GRLDR 获得执行权的时候,它将查找 (hd0,n)/menu.lst 文件,并立即执行它。
同理,当 (hdM,n) 中的 GRLDR 获得执行权的时候,它将查找 (hdM,n)/menu.lst 文件,并立即执行它。
当 (fd0) 中的 GRLDR 获得执行权的时候,它将查找 (fd0)/menu.lst 文件,并立即执行它。
当 (cd) 中的 GRLDR 获得执行权的时候,它将查找 (cd)/menu.lst 文件,并立即执行它。
只有当上述文件找不到的时候,才转而执行 preset_menu 的内容。
简言之,与 GRLDR 处于相同目录的 menu.lst 将无条件获得执行。只有该 menu.lst 文件不存在时,才去执行 preset_menu, 继续查找其它分区中的 /menu.lst 文件。
这是 pre7 才有的功能。
|
因为我们亲手创建,这个世界更加美丽。 |
|
2005-4-7 00:00 |
|
|
Gandalf
中级用户
CPU
积分 362
发帖 96
注册 2004-7-8 来自 北京
状态 离线
|
『第
163 楼』:
支持一下 pre7.-------------我的意思可能不是你所理解到的意思。 ;) 我的意思是你的意思的逆向,或者更进。 简单的说来,就是不仅让 grldr 和 grub.exe 合并,而且,在同一个可执行程序里还带上pe 代码,就是 Windows 的 GUI. 直观得说来,就是可以为 grub.exe 加上一个 Windows环境下得图标。 不点,你推荐一下?!
|
f22_storm@163.com
http://sysoft.zdwx.com/
|
|
2005-4-8 00:00 |
|
|
Gandalf
中级用户
CPU
积分 362
发帖 96
注册 2004-7-8 来自 北京
状态 离线
|
|
2005-4-8 00:00 |
|
|
不点
银牌会员
不甘寂寞的人
积分 2491
发帖 1115
注册 2003-9-24
状态 离线
|
『第
165 楼』:
实在对不起,我除了 email 和论坛之外,其它的都不用。你可以用本论坛的短信方式和我联系。email 方式不太好,我一个月才看一次 email。这个论坛我来的还是比较及时的,几乎每天都来。
PE 格式的属于 windows 程序。在 windows 下,运行的程序都是保护模式的,而 grub.exe 需要实模式才能工作。从windows 的保护模式切换到实模式,不容易呀。这个要是实现了,那将是很大的突破。我以前把 GRLDR 叫做 grub for ntldr而不是叫做 grub for windows,其原因就是,grldr 只能在 NTLDR 下运行,它不能在 Windows下运行。如果你能实现从保护模式到实模式的切换,那么,你制作的 GRUB 就可以称为 GRUB for WINDOWS 了。我制作的grub4lin 就是在 linux 下从 保护模式运行实模式的 GRUB,它可以称做 grub for linux。
至于说图标,你自己喜欢什么样的都行,我没有美术细胞,帮不了你。关键是要解决 CPU 模式的切换,这个要是解决了,有没有图标都无关紧要了。我觉得很不容易呀,希望你能成功。
|
因为我们亲手创建,这个世界更加美丽。 |
|
2005-4-8 00:00 |
|