Windows CE 6.0 启动流程重构与oal.exe与kernel.dll关键分析

需积分: 9 16 下载量 70 浏览量 更新于2024-12-28 收藏 92KB DOC 举报
Windows CE 6.0 的启动过程相对于前一代版本(如Windows CE 5.0)有了显著的变化。在Windows CE 6.0中,内核(Kernel)和OEM代码被重构,主要体现在以下几个关键组件上: 1. **模块化设计**:内核和OEM代码被拆分为oal.exe、kernel.dll和kitl.dll三个部分。启动代码(startup)不再与内核链接,而是作为独立的oal.exe编译,它包含了与硬件紧密相关的OAL层实现。同时,与内核相关的OAL层代码整合到kernel.dll中,这使得内核和OEM代码更加模块化。 2. **分离与整合**:内核无关传输层(KITL)的支持代码从前的OAL层中分离出来,编译成kitl.dll。这意味着在不启用KITL功能的情况下,kitl.dll不会被编译进系统。 3. **动态链接库的依赖**:Windows CE 6.0的启动顺序依赖于kernel.dll和kitl.dll这两个动态链接库,这意味着启动流程不再像Windows CE 5.0那样简单,分析时需要特别关注这两个文件的加载顺序。 4. **基本内核编译**:在没有启用特定功能如KITL的情况下,Windows CE 6.0会编译出基本内核形式的kern.exe。然而,oal.exe的源码位置相对直观,通常在BSP的OAL目录中可以找到。相比之下,kernel.dll的编译文件在BSP目录结构中难以直接找到,需要通过其他方式,如检查编译日志或深入BSP源码来定位。 5. **编译日志分析**:编译过程中的关键信息可以通过查看makeimg.out这样的编译日志文件来获取,例如,上述提到的将oal.exe复制到特定目录的过程,这对于理解编译过程和查找源码位置至关重要。 Windows CE 6.0的启动过程变得更加复杂和灵活,理解和分析这一过程需要对内核架构、模块化设计以及动态链接库管理有深入的理解,并可能涉及到特定的BSP配置和编译设置。对于开发者来说,熟悉这些变化并相应调整启动流程分析策略是至关重要的。