3138
- 收藏
- 点赞
- 分享
- 举报
深入理解Windows CE 2
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.必要时压缩和展开文件
c.无缝地集成基于ROM的应用程序和基于RAM的数据
在对象存储里数据的存储机制是基于交易的,如果当数据正在被写入对象存储时电源被中断,那么操作系统保证存储不会中断。当系统重新启动或回滚到中断前的正常状态时,存储机制通过完成存储操作来做到这一点。对于文件系统,包括注册表设备,如果没有定义一个后备系统来保存当前设备,这可能意味着要从ROM重新加载初始设置。
目前,对象存储的大小限制为256MB的RAM,由于对象存储的压缩属性,对象存储实际能够包含的数据量可以达到51,M。对象存储里单个的文件限制为最大32M。
2.2.2文件系统
Windows ce提供以下三种类型的文件系统:
a.基于ROM的文件系统
b.基于RAM的文件系统
c.FAT文件系统
不论采用什么存储设备类型,所有文件系统都通过Win32文件系统API访问。Windows ce支持绝大多数与桌面Windows相同的文件i/o函数。
由于Windows ce没有当前目录的概念,因此所有对对象的引用都使用完整路径。基于OEM选项,Windows ce自动压缩对象存储里的所有文件,因此没有必要使用文件的FILE_ATTRIBUTE_INROM属性指出文件上是压缩的。
除了对象存储外,Windows ce还支持实现一个如FAT文件系统等的可安装文件系统。可安装文件系统能够提供对PC卡或其他外部存储设备的访问,一个外部存储设备可以被分为多个卷,每个分区一个卷,每个卷单独安装到文件系统。对于每一个安装的卷,用户看到的是位于可安装文件系统根目标下的一个文件夹。
windows ce将对象存储看做始终安装的特殊类型的卷。
1.文件系统的选择
Windows ce的内部文件系统控制对ROM的访问,也提供了对位于RAM中的对象存储里的文件存储,在两种可用的文件系统:RAM和ROM文件系统以及ROM文件系统,它们分别具有不同的属性,开发者需要为自己的目标设备选择合理的文件系统,这两种文件系统都具有安装另外的外部文件系统的能力。
RAM和ROM文件系统提供了对象 的文件存储以及对ROM的访问,对象存储是文件系统的根,而且,除外部文件系统被作为一个目录安装到根下之外,所有数据被保有耻在对象存储里。通过Windows目录,位于ROM里的数据是可以被访问的。由于当不刷新RAM时就会丢失对象存储,所以RAM和ROM文件系统对目标是非常有用的,它连续不断地为RAM提供动力。
ROM文件系统不允许应用程序将文件存储在对象存储里,通过Windows目录可以访问ROM中的数据。外部文件系统被安装为根下的目录,而且,利用ROM文件系统可以选择将一个外部文件系统放置在文件系统的根。如果必须安装一个文件系统作为根,那么除了其他外部文件系统之外,在根下的所有数据被存储到那个文件系统。
2.FAT文件系统
FAT文件系统与任何插 到Windows ce 系统的外部存储设备一起工作,这引动存储设备的每部分区域都包含一个文件系统分区,每个区域都被安装为一个FAT卷,并放置到根目录下的一个特殊的文件夹下,和外部存储设备相关的设备驱动提供安装文件夹的名称。一旦安装了文件系统,就可以在安装文件挟 下包含信件夹、文件和数据库。
从windows ce 4.0版本后,提供了一种新的FAT文件系统,称为交易安全的FAT文件系统(TFAT)。交易的概念来自于数据库,它是一种保证操作一定完成的一种机制。是专门设计用来为存储在磁盘上的数提供交易安全的文件系统,TFAT需要一个为那种类型的存储价质设计的特定于硬件的驱动,并在此介质上存在FAT文件系统,那么TFAT能够对可插拔介质以及不可插拔介质进行操作。
FAT文件系统不是一个交易安全的文件系统,如果在一个交易的中间写操作被中断,如突然断电或移去存储介质等,FAT系统可能崩溃。当文件分配表的内容与卷的目录或数据部分出现不一致时,FAT卷会崩溃。TFAT文件系统保证当出现断电时,文件分配表和目录保持完整。为了做到这点,FAT和目录数据的每个交易要么完全写入要么完全不写入。由于TFAT阻止了FAT和目录数据可能出现的相互不一致,所以写操作不能使磁盘上的主卷崩溃。
TFAT文件系统驱动是FAT文件驱动的超集,TFAT既支持TFAT卷又支持FAT卷。所以在一个系统中没有民要既包括TFAT驱动又包括TAT驱动,要么包括这个驱动,要么包括那个驱动。
值得注意的是:TFAT文件系统的写操作要比FAT文件系统的写操作慢,所以当考虑使用TFAT作为文件系统时,要考虑到性能的降低。读操作的性能在FAT和TFAT文件系统相当。
3.二进制ROM映像文件系统
二进制ROM映像文件系统是一个读由romimage.exe 在实际系统中,nk.bin文件睹阳被存放到一个物理的存储设备上,通常是块存储设备,为了实现对它的读/写,需要在块驱动之上加载BinFS文件系统。产生的二进制映像(.bin)文件格式的文件系统。.bin文件以特定的片段组织数据,每个片段包含一个片段头,片段头定义了这个片段的起始地址、片段长度及校验和。romimage.exe将以逻辑片段组织的数据写到.bin文件中。
Windows ce默认的操作系统映像文件为nk.bin文件,这是一个基于RAM的映像文件,我们可以使用Windows ce开发系统提供的命令Viewbin.exe查看nk.bin文件的格式,看到各个逻辑片段的定义。
4.CDFS/UDFS
压缩磁盘(CDFS)文件系统和通用磁盘(UDFS)文件系统被用来读取CD盘、DVD盘和CD-ROM。
5.可安装的文件系统
Windows ce开发者可以为自己的系统产阁下特定的文件系统.例如:可以使用可安装的文件系统充分利用一种新型的存储硬件提供的特殊功能,或者在一个标准的PC卡硬件上对文件的操作进行限制。可安装文件系统为开发者提供了对Windows ce支持的存储设备进行扩展的能力,使Windows ce的文件系统成为了一个开放的系统。
2.2.3数据库
Windows ce数据库不同于桌面Windows系统下的SQL数据库,它不是一种关系数据库,一个CEDB数据库更像关系数据库中的一个数据表。数据库的每一行代表一个记录,数据库的每一列代表一个特性。CEDB数据库不允许被锁定,但Windowsce 确实提供了一种方法通知一个进程另一个线程修改了数据库。CEDB数据库还对数据库记录提供了多达4层的分类排序与索引。
总之,Windows ce提供了基本的数据库功能以基本的数据库功能以帮助应用程序组织简单的数据结构。
2.2.4注册表
windows ce注册表是一个系统数据库,用来存储关于应用程序、驱动程序、用户配置及春他配置的数据。Windows ce注册表的结构类似于在其他桌面Windows 注册表结构,它被组织成树状结构。
2.2.5文件管理
Windows ce文件系统和所有与文件相关的操作都是通过Filesys.exe进程进行管理的,所以通常将它称为文件管理器。文件管理器实现了对象存储和存储管理,并将所有文件系统统一到一个根下面的单个系统中。
存储管理器用来对块设备进行管理,它由块驱动程序、分区驱动程序、文件系统驱动程序和文件筛选取器组成。存储管理器负责管理所有与外部存储相关的项目,包括所有的文件系统和块驱动,所有文件、数据和卷操作都归于存储管理器。因此,存储管理器处于所有磁盘和其他永久存储介质i/o的中心位置。由于所有与磁盘相关的i/o都必须经过存储管理器层,所以使用筛选器层来过滤磁盘i/o,在任一个磁盘i/o到达相应的的文件系统之前,文件筛选器捕獗行何调用并完成加密、压缩及病毒扫描等操作,然后,文件系统发送命令来启动运行会区驱动程序或直接启动运行块驱程序。
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.必要时压缩和展开文件
c.无缝地集成基于ROM的应用程序和基于RAM的数据
在对象存储里数据的存储机制是基于交易的,如果当数据正在被写入对象存储时电源被中断,那么操作系统保证存储不会中断。当系统重新启动或回滚到中断前的正常状态时,存储机制通过完成存储操作来做到这一点。对于文件系统,包括注册表设备,如果没有定义一个后备系统来保存当前设备,这可能意味着要从ROM重新加载初始设置。
目前,对象存储的大小限制为256MB的RAM,由于对象存储的压缩属性,对象存储实际能够包含的数据量可以达到51,M。对象存储里单个的文件限制为最大32M。
2.2.2文件系统
Windows ce提供以下三种类型的文件系统:
a.基于ROM的文件系统
b.基于RAM的文件系统
c.FAT文件系统
不论采用什么存储设备类型,所有文件系统都通过Win32文件系统API访问。Windows ce支持绝大多数与桌面Windows相同的文件i/o函数。
由于Windows ce没有当前目录的概念,因此所有对对象的引用都使用完整路径。基于OEM选项,Windows ce自动压缩对象存储里的所有文件,因此没有必要使用文件的FILE_ATTRIBUTE_INROM属性指出文件上是压缩的。
除了对象存储外,Windows ce还支持实现一个如FAT文件系统等的可安装文件系统。可安装文件系统能够提供对PC卡或其他外部存储设备的访问,一个外部存储设备可以被分为多个卷,每个分区一个卷,每个卷单独安装到文件系统。对于每一个安装的卷,用户看到的是位于可安装文件系统根目标下的一个文件夹。
windows ce将对象存储看做始终安装的特殊类型的卷。
1.文件系统的选择
Windows ce的内部文件系统控制对ROM的访问,也提供了对位于RAM中的对象存储里的文件存储,在两种可用的文件系统:RAM和ROM文件系统以及ROM文件系统,它们分别具有不同的属性,开发者需要为自己的目标设备选择合理的文件系统,这两种文件系统都具有安装另外的外部文件系统的能力。
RAM和ROM文件系统提供了对象 的文件存储以及对ROM的访问,对象存储是文件系统的根,而且,除外部文件系统被作为一个目录安装到根下之外,所有数据被保有耻在对象存储里。通过Windows目录,位于ROM里的数据是可以被访问的。由于当不刷新RAM时就会丢失对象存储,所以RAM和ROM文件系统对目标是非常有用的,它连续不断地为RAM提供动力。
ROM文件系统不允许应用程序将文件存储在对象存储里,通过Windows目录可以访问ROM中的数据。外部文件系统被安装为根下的目录,而且,利用ROM文件系统可以选择将一个外部文件系统放置在文件系统的根。如果必须安装一个文件系统作为根,那么除了其他外部文件系统之外,在根下的所有数据被存储到那个文件系统。
2.FAT文件系统
FAT文件系统与任何插 到Windows ce 系统的外部存储设备一起工作,这引动存储设备的每部分区域都包含一个文件系统分区,每个区域都被安装为一个FAT卷,并放置到根目录下的一个特殊的文件夹下,和外部存储设备相关的设备驱动提供安装文件夹的名称。一旦安装了文件系统,就可以在安装文件挟 下包含信件夹、文件和数据库。
从windows ce 4.0版本后,提供了一种新的FAT文件系统,称为交易安全的FAT文件系统(TFAT)。交易的概念来自于数据库,它是一种保证操作一定完成的一种机制。是专门设计用来为存储在磁盘上的数提供交易安全的文件系统,TFAT需要一个为那种类型的存储价质设计的特定于硬件的驱动,并在此介质上存在FAT文件系统,那么TFAT能够对可插拔介质以及不可插拔介质进行操作。
FAT文件系统不是一个交易安全的文件系统,如果在一个交易的中间写操作被中断,如突然断电或移去存储介质等,FAT系统可能崩溃。当文件分配表的内容与卷的目录或数据部分出现不一致时,FAT卷会崩溃。TFAT文件系统保证当出现断电时,文件分配表和目录保持完整。为了做到这点,FAT和目录数据的每个交易要么完全写入要么完全不写入。由于TFAT阻止了FAT和目录数据可能出现的相互不一致,所以写操作不能使磁盘上的主卷崩溃。
TFAT文件系统驱动是FAT文件驱动的超集,TFAT既支持TFAT卷又支持FAT卷。所以在一个系统中没有民要既包括TFAT驱动又包括TAT驱动,要么包括这个驱动,要么包括那个驱动。
值得注意的是:TFAT文件系统的写操作要比FAT文件系统的写操作慢,所以当考虑使用TFAT作为文件系统时,要考虑到性能的降低。读操作的性能在FAT和TFAT文件系统相当。
3.二进制ROM映像文件系统
二进制ROM映像文件系统是一个读由romimage.exe 在实际系统中,nk.bin文件睹阳被存放到一个物理的存储设备上,通常是块存储设备,为了实现对它的读/写,需要在块驱动之上加载BinFS文件系统。产生的二进制映像(.bin)文件格式的文件系统。.bin文件以特定的片段组织数据,每个片段包含一个片段头,片段头定义了这个片段的起始地址、片段长度及校验和。romimage.exe将以逻辑片段组织的数据写到.bin文件中。
Windows ce默认的操作系统映像文件为nk.bin文件,这是一个基于RAM的映像文件,我们可以使用Windows ce开发系统提供的命令Viewbin.exe查看nk.bin文件的格式,看到各个逻辑片段的定义。
4.CDFS/UDFS
压缩磁盘(CDFS)文件系统和通用磁盘(UDFS)文件系统被用来读取CD盘、DVD盘和CD-ROM。
5.可安装的文件系统
Windows ce开发者可以为自己的系统产阁下特定的文件系统.例如:可以使用可安装的文件系统充分利用一种新型的存储硬件提供的特殊功能,或者在一个标准的PC卡硬件上对文件的操作进行限制。可安装文件系统为开发者提供了对Windows ce支持的存储设备进行扩展的能力,使Windows ce的文件系统成为了一个开放的系统。
2.2.3数据库
Windows ce数据库不同于桌面Windows系统下的SQL数据库,它不是一种关系数据库,一个CEDB数据库更像关系数据库中的一个数据表。数据库的每一行代表一个记录,数据库的每一列代表一个特性。CEDB数据库不允许被锁定,但Windowsce 确实提供了一种方法通知一个进程另一个线程修改了数据库。CEDB数据库还对数据库记录提供了多达4层的分类排序与索引。
总之,Windows ce提供了基本的数据库功能以基本的数据库功能以帮助应用程序组织简单的数据结构。
2.2.4注册表
windows ce注册表是一个系统数据库,用来存储关于应用程序、驱动程序、用户配置及春他配置的数据。Windows ce注册表的结构类似于在其他桌面Windows 注册表结构,它被组织成树状结构。
2.2.5文件管理
Windows ce文件系统和所有与文件相关的操作都是通过Filesys.exe进程进行管理的,所以通常将它称为文件管理器。文件管理器实现了对象存储和存储管理,并将所有文件系统统一到一个根下面的单个系统中。
存储管理器用来对块设备进行管理,它由块驱动程序、分区驱动程序、文件系统驱动程序和文件筛选取器组成。存储管理器负责管理所有与外部存储相关的项目,包括所有的文件系统和块驱动,所有文件、数据和卷操作都归于存储管理器。因此,存储管理器处于所有磁盘和其他永久存储介质i/o的中心位置。由于所有与磁盘相关的i/o都必须经过存储管理器层,所以使用筛选器层来过滤磁盘i/o,在任一个磁盘i/o到达相应的的文件系统之前,文件筛选器捕獗行何调用并完成加密、压缩及病毒扫描等操作,然后,文件系统发送命令来启动运行会区驱动程序或直接启动运行块驱程序。
我来回答
回答0个
时间排序
认可量排序
暂无数据
或将文件直接拖到这里
悬赏:
E币
网盘
* 网盘链接:
* 提取码:
悬赏:
E币
Markdown 语法
- 加粗**内容**
- 斜体*内容*
- 删除线~~内容~~
- 引用> 引用内容
- 代码`代码`
- 代码块```编程语言↵代码```
- 链接[链接标题](url)
- 无序列表- 内容
- 有序列表1. 内容
- 缩进内容
- 图片![alt](url)
相关问答
-
2012-12-05 14:32:53
-
22013-11-21 21:50:42
-
2012-12-05 11:13:14
-
2012-12-05 11:12:01
-
2008-08-18 22:21:13
-
2010-06-01 23:29:28
-
2008-05-27 11:09:53
-
2012-12-05 11:07:55
-
2012-12-05 13:33:42
-
2010-06-01 23:25:04
-
2012-12-05 13:34:26
-
2008-07-18 20:42:04
-
2008-07-24 01:33:17
-
2012-12-05 14:39:10
-
2012-12-05 13:38:25
-
2012-12-04 14:09:01
-
2012-12-05 14:19:35
-
2012-12-04 13:54:12
-
2008-11-02 17:14:58
无更多相似问答 去提问
点击登录
-- 积分
-- E币
提问
—
收益
—
被采纳
—
我要提问
切换马甲
上一页
下一页
悬赏问答
-
20帮忙交叉编译个源码
-
5Hi3516CV610 如何使用SD卡升级固件
-
5cat /dev/logmpp 报错 <3>[ vi] [func]:vi_send_frame_node [line]:99 [info]:vi pic queue is full!
-
50如何获取vpss chn的图像修改后发送至vo
-
5FPGA通过Bt1120传YUV422数据过来,vi接收不到数据——3516dv500
-
50SS928 运行PQtools 拼接 推到设备里有一半画面会异常
-
53536AV100的sample_vdec输出到CVBS显示
-
10海思板子mpp怎么在vi阶段改变视频数据尺寸
-
10HI3559AV100 多摄像头同步模式
-
9海思ss928单路摄像头vio中加入opencv处理并显示
举报反馈
举报类型
- 内容涉黄/赌/毒
- 内容侵权/抄袭
- 政治相关
- 涉嫌广告
- 侮辱谩骂
- 其他
详细说明
提醒
你的问题还没有最佳答案,是否结题,结题后将扣除20%的悬赏金
取消
确认
提醒
你的问题还没有最佳答案,是否结题,结题后将根据回答情况扣除相应悬赏金(1回答=1E币)
取消
确认