Windows CE 的 体 系 结 构 与 特 征


---- 微 软 自1996 年 发 布Windows CE 1.0 版 到 今 天Windows CE 2.11 简 体 中 文 版 及 其 开 发 工 具SDK 的 正 式 发 布, 其 功 能 已 经 更 加 强 劲, 基 于Windows CE 的 应 用 也 更 加 广 泛。 本 文 试 就Windows CE 中 的 一 些 技 术 特 点 做 一 简 要 介 绍。

---- Windows CE 的 体 系 结 构 采 用 独 立 于 通 常 的 程 序 设 计 语 言 并 且 和Windows 兼 容 的API 的 方 式, 这 样 就 可 以 保 障Windows CE 的 组 件 化 和ROM 化, 充 分 适 应 有 限 的 存 储 空 间 和 各 种 不 同 芯 片 的 要 求。

---- Windows CE 的API 是Win32 API 的 一 个 子 集, 支 持 近1500 个Win32 API。 有 了 这 些API, 足 可 以 编 写 任 何 复 杂 的 应 用 程 序。 当 然, 在Windows CE 系 统 中, 所 提 供 的API 也 可 随 具 体 应 用 的 需 求 而 定。

---- 和Windows 95/NT 的API 相 比,Windows CE 中 的API 不 提 供 冗 余 的API, 也 没 有Windows NT 中 的 安 全 函 数、ASCII API 版、DCOM/RPC 以 及OLE 中 的“LE”, 此 外Windows CE 中 还 去 掉 了 一 些 没 有 太 多 必 要 的API。 在 设 计Windows CE 的API 时, 更 多 关 注 的 是 内 存 的 大 小、 电 源 的 管 理、 驱 动 程 序 的 模 型 以 及 如 何 使 线 程 调 度 表 更 简 单。 此 外,Windows CE API 的 一 个 特 点 是 不 同 产 品 类 有 不 同 的API 集。

---- 除 了 提 供API 之 外,Windows CE 还 提 供 集 成 开 发 环 境Windows IDE 用 来 创 建 应 用 程 序。

---- 在Windows CE 的 体 系 结 构 里, 内 置 了 与PC、Internet 及 其 他Windows CE 设 备 的 通 信 功 能。 有 了 这 些 功 能, 可 以 实 现 任 何 数 据 间 的 传 输, 包 括 直 接 连 接、LAN、 拨 号 方 式、Internet 以 及 与 数 码 相 机、 打 印 机 等 的 数 据 传 输。 目 前,Windows CE 在 通 信 方 面 已 经 支 持PC 卡、 内 置Modem、 以 太 网 芯 片 以 及 软Modem 等。Windows CE 支 持TCP/IP、PPP 和IrDA 协 议, 也 提 供Windows Sockets、Win32 串 行API、TAPI、Winlnet 以 及Win32 远 程 控 制API 的 子 集, 此 外 还 提 供HTTP、FTP 应 用 程 序 的Winlnet 以 及LAN 文 件 和 打 印 存 储 的 服 务 器 信 息 块(SMB) 转 换 器。 对PPP/SLIP 的 支 持、 以 太 网 和IrDA NDIS 驱 动 的 支 持、 红 外 线(IR) 连 接 等 也 是Windows CE 的 特 色。

---- Windows CE 的 设 备 驱 动 程 序 采 用 专 用 和 通 用 两 种 接 口 方 式, 以 适 用 不 同 硬 件 设 备 的 需 求。 对 于 键 盘、 触 摸 屏、 显 示 器 等 设 备, 采 用 固 有 驱 动 程 序 的 办 法, 而 对 于 串 口、PC 卡 等, 则 采 用 流 接 口 驱 动 程 序 的 办 法。 由 于Windows CE 需 要 驱 动 的 设 备 千 差 万 别, 所 以 具 体 的 设 备 支 持 范 围 由OEM 厂 商 和IHV 决 定。

---- Windows CE 的 内 核 支 持ROM 和RAM 的 执 行 和 页 面 调 度。 在 装 载 时, 采 用Win32 可 执 行 文 件 的 格 式, 同 时 内 核 还 支 持 换 页 技 术, 但 不 支 持 页 面 的 后 备 存 储。Windows CE 已 经 能 够 支 持 多 处 理 器, 但 是 现 在 微 软 并 不 公 开 用 于 支 持 多 处 理 器 的API。

---- 此 外,Windows CE 还 提 供 对 内 核 的 标 准 调 试 工 具API 和 工 具 帮 助(Toolhelp)API。

---- Windows CE 的 进 程 模 式 采 用 标 准 的Win32 的 进 程 和 线 程 模 式, 在 运 行 时, 系 统 最 多 可 提 供32 个 进 程, 但 线 程 数 可 以 无 限。 在 处 理 进 程 时, 实 现 了 可 同 时 等 待 多 对 象、 等 待 线 程/ 进 程 的 句 柄 的 完 全 同 步 机 制。 处 理 调 度 表 时, 设 计 了8 个 任 务 优 先 级, 其 中 一 个 优 先 级 用 来 处 理 实 时 系 统。

---- Windows CE 对 语 言 的 支 持 也 是 一 大 特 色。 比 如Windows CE 内 置 了 对 日 文 和 中 文 的 支 持, 以 及IMM、IME、EUDC 字 体、SIP 等 和 语 言 有 关 的 技 术。Windows CE 内 置 了75000 个 英 文 单 词, 用 作 拼 写 检 查 器, 此 外, 它 也 提 供 手 写 识 别 的API, 包 括 对 英 文、 日 文 和 中 文 的 手 写 识 别。 在Windows CE 2.11 中 文 版 中, 已 经 集 成 了 金 山 词 霸、 汉 王 手 写 体 识 别 两 个 中 文 处 理 软 件。 在 屏 幕 捕 获 方 面, 现 在Windows CE 已 经 能 够 做 到 全 屏 捕 获, 并 且 它 还 提 供 窗 口 内 捕 获 的API。

---- 对 于GDI 和USER,Windows CE 采 用 多 组 件 的 方 式,OEM 厂 商 可 以 从 中 挑 选 自 己 合 适 的 组 件 构 造GDI 和USER, 比 如 可 以 根 据 需 要 选 择 黑 白 或 彩 色 界 面。 在GDI 对 颜 色 的 支 持 上,Windows CE 设 计 的 像 素 深 度 可 以 支 持 从1 ~32 个BPP(Bit Per Pixel), 而 且 支 持 应 用 软 件 对 调 色 板 的 设 置。

---- 在 对COM/ActiveX 的 支 持 上,Windows CE 只 支 持“ 轻 量 级” 的COM, 而 且 对COM 的 执 行 是 在 进 程 内 完 成 的, 目 前Windows CE 还 不 支 持DCOM 以 及 跨 进 程 的 对 象 代 理。 通 过VB、VC++,Windows CE 就 可 访 问ActiveX 控 件, 这 样 使 从Windows 到Windows CE 的ActiveX 控 件 移 植 变 得 非 常 简 单。 在 对Java 的 支 持 上,Windows CE 2.0/2.1 已 经 兼 容JDK 1.1 的Java VM, 不 过 带JDK 的Java 需 要4MB 的ROM, 这 是 一 笔 不 小 的 开 销。

---- Windows CE 支 持 的 处 理 器 系 列 有:MIPS 3900/4xxx/52xx(MIPS 32)、SH3、SH4、486、Pentium、PPC、ARM、StrongARM 等。 在http://www.microsoft/windowsce 站 点 上, 还 列 出 了Windows CE 所 支 持 的 芯 片 的 情 况。Windows CE 对 显 示 器 的 支 持 可 以 从 没 有 显 示 器 到 大 型 显 示 器(1600 ×1200 或 更 大)。

---- 在 开 发 基 于Windows CE 的 应 用 程 序 时,Windows CE 除 了 提 供 非 常 好 的 编 程 语 言 和 编 程 环 境 之 外, 还 提 供 了 非 常 好 的 仿 真 环 境, 它 可 以 在Windows NT 下 仿 真。 此 外,Windows CE 还 支 持 远 程 开 发 和 远 程 调 试, 为 应 用 程 序 开 发 人 员 提 供 了 良 好 的 开 发 和 仿 真 环 境。

---- 在 硬 件 开 发 平 台 的 选 择 上, 目 前 微 软 使 用 的 是Hitachi D9000, 当 然 还 支 持486DX 系 列 和Pentium 系 列 处 理 器, 也 支 持S3 和ET4000 的 显 示 驱 动 程 序。Windows CE 正 在 努 力 的 方 向 包 括 支 持 更 多 的 多 媒 体 特 性, 比 如 对DirectX、Video 的 支 持, 以 及 能 够 适 用 于 各 种 嵌 入 式 应 用 的IE 4.0 变 体, 对COM+、DCOM 和RPC 的 支 持 也 是Windows CE 感 兴 趣 的 问 题。

( 本 刊 记 者 许 菊 芳)
Windows CE 2.0/2.1 的 体 系 结 构
应 用 程 序
壳 的 服 务-------------------IE--------------远 程 接 入
Win32 API、ActiveX、TAPI、HTML、Visual Basic、Java、MFC 的 子 集
IrDA-----TCP/IP、PPP-----Kernel-----User GDI Object Stores
设 备 驱 动 — —Stream、Native、NDIS、USB
OAL 和 电 源 的 管 理


中国计算机世界出版服务公司版权所有