是什么决定U盘启动的速度-U启内核?
PE的体积,除了整体体积、内核体积外,其实还有一种,我称之为“U启内核”体积。
对U盘启动快的机器,包括先加载USB2.0支持的情形,无论什么PE,多大体积都无所谓,都不会特别慢,不必讨论。
以下只讨论U盘启动慢的机器。启动时间按出现windows桌面来算。
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启速度的因素、提高速度的方法。也顺带介绍了0PE的做法。
声明与其它PE的比较都是理论上的推理,无意贬低其它任何PE。
在我看来,其它PE都做得很好、很实用,0PE只是在某些理念上自以为想得美。
U启慢的机器,以后会逐步淘汰,U启内核概念,也只存在于特定历史条件下。