📄 文件系统.txt
字号:
第二章 深入理解Windows CE
2.1 系统架构
Windows ce被设计成为一种分层结构,从底层向上分别为硬件层、OEM层、操作系统层和应用层。每一层由由不同的模块组成,每个模块由不同的组件组成。这种层次性的结构试图尽量将硬件和软件、操作系统与应用程序隔开,以便于实现系统的移植,便于进行硬件、驱动程序、OS和应用程序等开发的人员分工作合作、并行开发。
2.1.1硬件层
指CPU、存储器、I/O端口中、扩展板卡等组成的嵌入式硬件系统,是Windows ce操作系统必不可少的载体。
OEM层是嵌入式硬件与Windows ce操作系统的接合层。Windows CE操作系统要能在持定的硬件上运行,硬件必须要能够加载Windows ce操作系统,同时,操作系统也要能够实现对硬件系统的初始化并驱动这些硬件。OEM层主要由下列模块组成。
(1)OAL
是Windows ce内核与目标硬件之间的一个代码层,主要用来处理Windows ce内核与目标硬件设备之间的通信,基功能主要包括CPU初始化、处理中断、计时器等。
(2)boot Loader(启动加载程序)
将Windows ce操作系统纳核加载到目标硬件系统的内存并开始启动操作系统的执行。
(3)配置文件
配置文件用于对Windows ce操作系统的创建过程进行配置,其主要包括源代码配置文件和映 配置文件。源代码朽置文件用于对操作系统 行时映像用到的模块、特征和源代码的创建方式进行配置,而映像配置文件用于对最终操作系统运行时映像创建方式进行配置。
(4)驱动程序
驱动程序是对物事或虚拟设备功能的软件抽象,是操作系统与外部设备或虚拟设备的桥梁,应用程序只有通过驱动程序接口才能实现对物理或虚拟设备的操作。物理设备包括网卡、声卡、计时器、串并口等,而文件系统是虚拟设备的一个例子。windows ce下的设备驱动既要实现Windows ce规定的驱动程序接口,将设备的功能呈现给应用程序和操作系统经,也需要利用操作系统提供的服务,实现驱动程序的加载、调度和卸载。Windows ce 下的驱动被设计成为用户模式的应用程序,没有必要必须运行在内核模式。
在OEM层的代码构成中,OEM层主要由CSP代码和BSP代码组成,其中CSP支持不同的徽处理器体系结构,而BSP支持不同的徽处理器扩展和外设,它由Boot Loader、OAL和驱动程序代码组成。
2.1.3操作系统层
是Windows ce的核心层,它既要为下层OEM层提供接口和服务,也要为上层的应用程序提供服务与应用程序编程接口。
(1)核心
核心是Windows ce操作系统的最小定制内核,它为任何基于Windows ce的设备提供处理器调度 、内存管理、异常处理及系统内通信等系统功能,并为应用程序使用这些核心功能提供内核服务。Windows ce操作系统包含很多不同的文件,上文件都为操作系统提供不同的功能和服务,但只有Nk.exe为Windows ce操作系统的内核。Nk.exe始终运行在较训的优先级和处理器优先级上。除中断例程外,一般不允许操作系统纳的其他他占它的运行。
(2)Core DLL
该模块是最基本的操作系统模块,它为其他模块提供核心功能。所有的操作系统定制设计都必须包含这个模块,但并不是这个模块中的所有组件都是必须需的。在绝大多数情况下,Core DLL并不完成实际操作,它只是作为应用层与操作系统层的一个桥梁,将应用层对操作系统的调用传递给操作系统相应的模块,并触发对相应进程的本地过程调用,如将所有绘图和窗口调用发给GWES.exe。
(3)对象存储模块
对象存储是Windows ce为应用程序及其相关数据提供的存储方式,即使在关闭系统主电源只有后备电源的情况下,对象存储也能保证数据 不会丢失。通常非易的RAM芯片构成了物理的对象存储。理论上,对象存储是由文件系统、数据库、系统注册表三种类型的永久存储存储构成的。虽然文件系统、数据库和系统注册表共享一个单独的内存堆,但在实际应用中它们没有必要物理上驻留在对象存储里,它们可以驻留在ROM、单独到可安装文件系统或外部设备上。为此,Windows ce的文件系统又区分为RAM文件系统、ROM文件系统、FAT文件系统。数据的产生和访问是按照存储类型进行的,而与实际使用的物理存储设备无关。
操作系统使用对象存储主要完成下列任务:
a.管理栈和内存堆
b.必要时压缩和展开文件
c.无缝地集成基于ROM的应用和基于RAM的数据
(4)多媒体技术模块
多媒体技术模块将桌面计算机上的高性能多媒体技术引入到了嵌入式设备领域。
(5)图形窗口和事件系统模块
该模块包含大部分的核心Windwos ce功能,它集成了图形设备接口、窗口管理器和事件管理器。GWES模块是Windows ce操作系统高度组件化的部分,它分别由user和GDI两部分组成,user用来处理 消息、事件及鼠标和键盘等的用户输入,而GDI用来处理图形的屏幕和打印输出等。
在运行的Windows ce操作系统中,图形窗口和事件系统模块体现为Gwes.exe进程。GWES模块主要由以下三种类型的组件构成:
a.支持图形驱动的GDI组件
b.支持窗口控件的USER组件
c.支持其他窗口和图形功能的一般GWES组件。
(6)设备管理器模块
是运行在Windows ce操作系统下体现为Device.exe的一个进程,它提供基本的设备列表管理、即插即用管理、i/o资源分配管理及驱动的加载、卸载和跟踪已经加载的驱动及其接口等,它由内核加载并连续运行,一旦运行就永不缺载
(7)通信服务与网络模块
用于为基于Windows ce的设备提供有线或无线通信能力,ce设备能够与其他设备或计算机进行连接与通信。
(8)应用和服务开发模块
是为应用程序开发提供编程接口和服务支技的库模块,这些库模块一般 都 是一些DLL,微软并不提供这些DLL的源代码。应用和服务开发模块提供了对活动模板库(ATL)、C运行库、组件服务(COM和DCOOM)、消息队列、MFC等的支持。
应用层是在操作系统提供的Win32 API的基础上,由Win32 API构建的应用程序组成,这些应有程序为基于Windows ce的设备提供增值功能和服务。应用层的程序主要包括两部分:一部分是由Windows ce本身提供的应用程序,一部分是用户根据自身设备需要程序。
2.1.4就用程序
(1)Windows ce 应用程序
是微软提供的应用程序。
(2)Interne客户服务
提供了对浏览器应用程序、定制浏览器技术及脚本语言解析引擎的支持。其组件包括标准的浏览器组件、Internet Explorer6.0浏览器应用程序、Pocket Inernet Explorer浏览器应用程序及相关的插件和XML组件等。
(3)用户接口
构成了用哀恸与基于Windows ce的设备和应和程序的交互方式,它由鼠标接口、网络用户接口等程序组成。另外国际化模块也可以作为用户接口的一部分,国际化模块主要提供对本地化的用户接口和本地化特定的功能提供支持。国际化模块的应用程序包括本地化的资源文件、字库、输入法管理器、国家语言支技和多语言用户接口。
(4)客户应用程序
客户应用程序是用户为特定需要编写的特定功能的windows ce应用程序,一般在PB或EVC中创建。
Windows ce的文件系统和数据存储都指的是对象存储,对象存储是Windows ce的默认文件系统,它相当于Windows ce设备上的硬盘。对象存储是由共享一个内存堆的文件系统、数据库和注册表组成的,即使在没有系统主电源时,对象存储也能尖用程序及共相关数据不会丢失。对象存储是最大可以达到256MB、可压缩、非易失的RAM存储器,它将存储在ROM中的只读文件与应用程序和用户的读/写文件巧妙地集成到了一起。在用户看来,存储在对象存储 的RAM里的文件和存储在ROM里的文件没有任何差别,RAM里的文件和ROM里的文件可以共存于同一个目录下,用户也可以打开(不能编辑)ROM里的文件。
除对象存储之外,Windows ce还支持多达256个不同存储设备或存储设备上分区的多个可安装文件系统。
不像桌面版本的Windows系统,在Windows ce下没有盘符的概念,每个存储设备或存储设备分区都是根下的一个目录,Windows ce将所有文件系统统一到根下的单个文件系统中,所有文件均以在目录层次树中从根开始的唯一绝对路径进行标识。在默认情况下,Windows ce 将一个块存储设备或分区文件系统标 为根下的一个Storage Card目录,当插 入多个存储设备时,被依次标识,一个windows ce系统最多可插入100个存储设备。
Windows ce的文件系统既可以是一个RAM和ROM文件系统,也可以是一个ROM的文件系统:
a.RAM和ROM文件系统提供了RAM中文件的读/写访问和ROM中文件的读访问。
b.只有ROM的文件系统不允许将应用程序放在对象存储里,通过Windows目录,ROM数据是不可访问的。
数据库提供了对属性记录集的存储、访问和分类,Windows ce的默认数据库是CEDB数据库。
系统注册表用于存储关于应用程序、驱动程序、用户设置和其他配置的数据。
2.2.1对象存储
Windows ce 的对象存储是在当主电源被撤掉而只有一个后备电源时,提供对应用程序及相关数据的永久存储。一个或多个非易失的RAM存储器芯片构成了物理的对象存储。
对象存储由三种类型的永久存储即文件系统、数据库和系统注册表组成,虽然文件系统、数据库、系统注册表共享一个文件堆、但它们没有必要物理上驻留在对象存储里,它们可以驻留在ROM、单独的可安装文件系统或一个外部设备上,数据以独立于实际存储设备的形式按存储类型被产生和访问。
操作系统使用对象存储完成下列任务:
a.管理栈和内存堆
b.必要时压缩和展开文件
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -