为什么会有Windows CE呢?Windows CE和微软其它的Windows 系统有什么联系和区别呢?首先我们来看一下微软的Windows 家族,我们所熟知的系统Windows 98、Windows NT以及以后的Windows 2000都是非常优秀的操作系统,他们可以很好的运行在IBM兼容的PC机器上。我们可以更换更快的CPU,更大的内存等等而仍旧能够运行相同的操作系统,这是为什么呢?事实上对于这类有一套标准的硬件平台,很容易找到一段时期内所有的CPU类型,速度以及内存等单元的下限,操作系统只要能满足这个要求,就能很好的运行大多数硬件平台上。
但是上面的这些系统显然不适合消费电子产品,所以就产生Windows CE,他是针对消费品市场设计的操作系统,大家都知道消费电子产品硬件没有统一的标准,硬件规范千奇百怪,甚至核心处理器的种类也是举不胜举,几乎无法提出一套标准的硬件规范。处理器已经不再向桌面处理器那样复杂而最求速度,这一领域的处理器更加注重节能。内存也不再是越多越好,为了节省成本大多数设备只是配备最少的内存。至于硬盘,可能现在很少的电子消费品会去配备,一是成本考虑,二是大多数电子消费品是嵌入式的,硬盘不适合被使用在这一领域。显示设备也变得很小,有的甚至没有。总而言之,硬件的选择标准最优先考虑的是大小、然后是能耗、再次是成本、最后考虑的才是速度。消费电子产品的发展趋势是更小、更智能、更便宜、更快。这也是消费电子产品的设计原则。
下面我们先来看Windows CE如何支持多种不同类型的核心处理器。
前面我们说了消费电子产品领域核心处理器种类很多,因为不同的消费电子产品针对不同的市场,对于核心处理器的要求也很多样,所以Windows CE必须能够支持不同的核心处理器。
Windows CE被设计成为跨核心处理器的系统,但是由于每种处理器的指令集不同,所以肯定会需要做针对不同核心处理器的移植。在Windows CE中这部分与核心处理器相关的代码被分成三个部分。第一部分是kernel部分,这部分代码由微软提供。第二部分叫做OEM Adaptation Layer(简称OAL)(OEM是original equipment manufacture的简称),这部分代码由设备制造商提供。第三部分是boot loader,这部分也是由设备制造商提供。Boot loader用来初始化核心处理器和关键芯片完成硬件初始化。OAL是描述具体硬件平台的那部分代码,他负责抽象和管理硬件资源。
还有一种第三方的商家,也被叫做Windows CE系统集成商,他们会提供所有硬件平台相关的OAL并绑定相应处理器的Windows CE的kernel.一般这些会被提供给某个特定的硬件平台,叫做board support package(BSP)这类软件包还包括了相应的驱动程序。BSP可以从Windows CE系统集成商那里购买,也可以由OEM自己设计。
以上文字不得用于商业用途转载
-------------------------------------------------------------------------------------------
good luck