现在的位置: 首页 > 综合 > 正文

wince系统架构(一)

2013年10月03日 ⁄ 综合 ⁄ 共 1890字 ⁄ 字号 评论关闭

       接触wince已有5个月了,零零散散接触了wince的一些部分,始终没有系统的了解过wince的整体架构,这几天项目不是很忙,就抽空了解了下wince的系统架构,闲话少说,进入正题。

1、wince的核心:

跟其他操作系统类似,wince的核心主要做了以下几个工作1.)内存管理;2.)进程调度;3.)实时能力;4.)设备驱动程序;5.)高级电源管理。

1.)内存管理:

        a.)物理页面管理:跟踪系统物理页面的使用情况;

        b.)虚存管理:管理物理内存与虚拟内存页面的换入换出;

        c.)堆管理:管理进程空间内部的动态内存的释放和回收,以支持程序的动态数据结构。

2.)调度:

       wince的系统调度相比于桌面windows系统来说比较简单,区别于桌面windows系统主要由以下几个特点:

         a.)进程:wince醉倒支持32个独立的进程,每个进程占32M的空间,这里简要介绍下,wince的虚拟内存空间分配,wince的虚拟内存空间总共有4G,0x4200 0000~0xFFFF FFFF的高2G空间是分配给系统使用的,0x0000 0000~0x41FF FFFF的低2G空间是分配给用户进程使用的,总共分成32个进程空间0~32,它们用于存放进程的虚拟地址空间,其中slot0用于映射当前在处理器上执行的进程,slot1由XIP的DLL代码使用,slot2~slot32对应wince中每个进程的32M虚拟地址空间。

        b.)调度算法:wince支持256级优先队列的抢占式调度,同优先级的线程采用时间片轮转调度,256个基本优先级可以分成8个大的级别,持有THREAD_PRIORITY_TIME_CRITIVAL标志的优先级别不能被抢占。

        c.)调度状态:六种基本状态(新建态,终止态,活跃就绪,静止就绪,活跃阻塞,静止阻塞),相当于把3种基本状态每种再细分,转换关系较为简单。

        d.)配额:没有时间配额策略,大约采用10ms左右的时间片;

        e.)多用户:不支持多用户;

      f.)IPC:不支持命名管道,不支持资源句柄的复制和继承等操作,使用共享内存的形式较为普遍。

3.)实时能力

        wince只用一个很小的核,完成调度内存管理的核心API,这个核分为4个部分:a.)文件管理(filesys.exe)b.)图形用户界面(gwes.exe)c.)设备管理(device。exe)d.)服务管理(service。exe)

2.wince系统的编译过程

    我们定制系统的最终结果是得到wince系统的镜像NK.bin,这个镜像包括了wince的核,内存文件系统,存储的程序和文档,系统的配置文件,注册表和数据库等。

编译总共分为4个步骤:

   1.)GESYSGEN:这一步由debuild.bat和sysgen.bat控制,主要生成4中文件:

          a.)*.bib:说明需要打包进系统的wince文件;

          b.)*.dat:说明文件系统的描述,程序文件的存储位置;

          c.)*.db:对象存储数据库的描述;

          d.)*.reg:系统注册表。

2.)BSP编译链接:包括任何BSP驱动程序及OAL代码,这一步使用两类文件控制哪些源文件或库文件要编译进系统镜像,这两类文件是:

         a.)系统配置(决定需要编译哪些哪些模块,生成catalog文件夹下的*.pbxml中的);

         b.)makefile(决定编译那些代码,使用什么样的规则进行编译);

3.)BUILDREL:这一阶段的主要工作是拷贝,将编译好的驱动(*.dll),库(*.lib),配置文件(*.ini)等拷贝到一个特定的目录。

4.)MAKEIMG:构造系统镜像,在构造系统镜像时,编译系统需要做以下三件事:

        a.)将前面生成的配置文件按类型分别组合成一个主配置文件ce.bib(bib文件),initobj.dat(dat文件),initdb.ini(db文件),reginit.ini(reg文件);

        b.)重新装配所有可执行文件的资源,以适应当前的语言环境;

        c.)对镜像的内容进行布局,例如:构造一个只有一个根目录的文件系统,链接装配所有的就位可执行程序,映射ROM中的程序到文件的\windows目录中去,最后产生操作系统的镜像文件NK.bin。

未完待续,如有不对的地方,请各位指出。

抱歉!评论已关闭.