"1.我不认为这500k是elf造成的.对elf和PE我都没有去了解过,所以现在我只能推测、想当然。但是不管是elf和PE本质都是在二进制代码上加了个壳,执行程序时PE格式是由系统脱壳装载,难道elf是自装载的?如果elf也是由系统装载的,那么PE和elf在功能上没有什么大的差别.那么在功能上差别不大的两件东西在数据量上会差别那么大?至于elf和pe熟优势劣不是我所关心的,linux和windows制定不同的标准的出发点也并不见得有多少差别,另外对于一个有确定性解的技术问题也不存在技术能力问题" ----------------------------------------首先elf格式是"脱壳装载"的, 脱壳器/lib/ld-linux.so.2. 功能上没什么区别?区别大了.大到可以改变现在软件格局的程度. 关于标准, 首先我所知道的是: linux下的标准全是国家化的,由权威组织制定的, 然后由开源软件实现. windows下的标准是微软自己制定的, 从来不管什么ISO什么ANSI之类, 运动员也是裁判员.
就elf格式标准的制定, 那是在80年代, 那个时候还没微软里, 全是unix机器, unix也是开源的啊, IBM弄个, sun弄个, 为了统一标准, 一个国家化组织(当时的美国标准)制定了elf格式.这个格式的先进性在于: 只要你符合了这个格式, 那么只要是同一硬件平台(2进制指令相同), 无论在哪编译的, copy完了就能跑.
也就是说:elf格式是与操作系统无关的. 无论什么操作系统, 只要符合elf标准, 那么你上边能跑的软件我这边也能跑.
大家可以看出微软如何采取elf格式的后果: 我们的什么office什么游戏, 全可以在*nix下跑, 你说这个是不是改变格局, 是不是有利于我们, 当然不利于微软, 于是, .....大家都知道的. pe格式. 在elf格式改改, 改什么? 当然是那些平台无关的信息都给剪掉. 好, 我们被微软绑架了.
那么elf和pe哪个好? elf是通用的, 肯定更加复杂, 包含的头信息更多, pe好实现, 而且要垄断 ,于是微软把精简的elf改了个名pe.
现在你该清楚为什么pe和elf如此类似.
|