如何减少U启内核体积

09-19

PE的体积,除了整体体积、内核体积外,其实还有一种,我称之为“U启内核”体积。PE的启动速度主要取决于“U启内核”体积,越小越快,而与PE整体体积、内核体积不直接相关。如果认为功能少、整体体积小的PE,一定比功能多、整体体积大的PE的U启快,那就错了。

U启慢的机器,一般也号称支持USB2.0高速读取。但那是进入windows,有USB2.0驱动支持之后的事。在启动初期,读U盘速度并没有达到USB2.0高速。这个阶段要读取的那部分PE数据,就是U启内核。这时读盘速度低,U启内核体积自然成为决定U启速度的主要因素。

全外置PE,外置部分分离,启动初期一般不需读入这部分。U启内核体积一般等于PE内核体积。全内置PE,外置部分无法分离,启动初期得全部读入。U启内核体积等于PE整体体积。在总体积相同前提下,理论上全内置的PE比全外置的U启要慢得多。基于以上分析,0PE做了处理,使得U启内核超小,甚至比“骨头”版PE的都要小,只有PE内核的一半。理论上大体积的0PE(数百MB)比一般小体积PE(数十MB)还要快。

减少U启内核体积,并不需要减少PE内核、PE整体体积。0PE采取若干措施:

1、分离shell

总的思路是从以尽可能小的组件进入windows,尽快获得USB2.0高速支持。将其它组件的加载延迟到进入USB2.0高速状态后才进行。0PE的U启内核是CMDPE组件,类似于老九10MB的CMDPE,它被精简到连PECMD都运行不了。但它可迅速进入windows命令行(USB2.0高速)状态,后续启动在读U盘时间方面可忽略不计。与传统PE相比,0PE在非USB2.0高速状态下读入的不是整个PE内核,少读了从windows命令行到进入桌面这部分内容,理论上要快。

2、外置SRS驱动,智能选择

0PE首创ZIP格式外置SRS驱动包,精简了内核。多数情况下只加载选中的常用小驱动包,而非所有驱动包,减少了读盘。新的智能选择,一般能直接选中所需的单个小体积驱动文件,不用加载大体积驱动包。传统PE内置所有SRS驱动,不管是否用到都得从U盘读入数MB的全部驱动,而0PE只需读入200KB左右的单个驱动,相差一个数量级。

3、既外置又动态内置

0PE最早支持ISO散开藏入ud。迄今在全藏入ud的PE中,它理论上具有速度优势。传统全外置PE在某些情形,例如藏入ud时,多采取iso整体藏入、整体读取到内存的方式,这样就跟全内置无异了。0PE一向支持无mem参数整体map可见区iso的启动方式,穿透iso读取其中U启内核部分,使得启动速度与iso体积无关。传统PE整体iso启动的话,往往需要读入整个iso,这样体积一大就明显慢了。

U启内核概念的提出,以及在0PE中的实践,可以帮助理解为什么有的机器有的PE,U启很慢。可以不用到处找整体体积小的PE,以为那样启动快。关键还要看U启内核体积。因此我们如果想提高U盘启动速度,就可以采取措施来减少U启内核体积,U盘慢的机器,以后也会逐步被淘汰,因此U启内核的概念也仅存在于现在的这个阶段,随着科技技术的不断进步,今后定会出现更多的高速闪存盘。