WINCE6.0操作系统---内核(kernel)学习
********************************LoongEmbedded********************************
作者:LoongEmbedded(kandi)
时间:2012.02.20
类别:WINCE系统开发
********************************LoongEmbedded********************************
备注:这里的内核指kernel,其表现形式为kernel.dll,OS指操作系统,core指核心。
图1 WINCE6.0体系结构
1. kernel的组成和功能
WINCE6.0操作系统内(kernel)在代码中的表现形式是kernel.dll(也就是kern.dll), WINCE5.0中内核的表现形式为NK.exe,而WINCE6.0中的NK.exe中仅仅包含一些OAL代码和保持兼容性的程序了。
内核提供任何WINCE6.0设备的基本OS功能,这些基本功能包括进程、线程和内存管理,另外内核也提供一些文件管理功能、线程调度、实时性能、装载器(loader)、系统调用、电源管理和OS提供的多种多样的服务。内核服务(service)使应用程序可以使用这些核心(core)功能。
NK.exe是OAL层的进程,在OAL层启动的过程中加载kernel.dll。使用内核进程和线程函数可以创建、终止、同步进程和线程,并且可以调度和挂起线程。进程是正在运行的程序(比如iexplore.exe)的单个实例,这样使得同时可以运行多个程序,对于WINCE5.0来说能够同时运行的进程是32个,假如我们同时打开多个Internet Explorer浏览器(对应一个iexplore.exe),那这时内存中就相应有多个浏览器的进程,所以WINCE5.0操作系统如果要应用在网络系统,尤其是同时运行多进程的系统中并不是很好的选择。WINCE6.0支持同时运行的进程数达到32000个,就基本不存在这方面应用的限制。线程使得程序一次可以执行多个任务,因为一个程序可以创建多个线程。线程优先等级、优先级继承、中断支持、和计时(timing)与调用也都是内核包含的功能。内核的所有功能共同为对时间要求很严格的系提供实时应用。
WINCE内核基于页式虚拟内存系统(virtual-memory system)来管理和分配应用内存,虚拟内存系统提供连续的大小为64KB内存块,每块的大小为4KB,所以应用程序不需要管理内存的分配。如果一个应用程序需要使用小于64KB的内存,那么它可以使用局部堆(local heap)或是创建独立的堆来提供内存空间。内核也要为每个新的进程或线程分配栈(stack)空间。
内核使用内存函数来分配和释放虚拟内存,可以使用local堆和独立堆的内存,可以从栈中分配内存,也可以使用装载应用程序所需要分配但又没有使用的静态数据库内存。而且进程可以使用内存映射对象(memory-mapped object)来共享数据。
2. Kernel.dll的编译生成
在common.bib文件中可以找到下面的内容:
IF IMGPROFILER !
kernel.dll $(_FLATRELEASEDIR)\kern.dll NK SHZ
ENDIF IMGPROFILER !
可知kernel.dll实际就是kern.dll,那kern.dll在哪里生成的呢?没有找到和kern.dll相关的sources文件,但在\WINCE600\PUBLIC\COMMON\CESYSGEN\makefile文件中,从下面的内容可以看到kern.dll是如何编译生成的
图2 指示生成kern.dll的makefile内容
WINCE6.0操作系统---内核(kernel)学习相关推荐
- WINCE6.0+S3C2443下WatchDog学习
********************************LoongEmbedded******************************** 作者:LoongEmbedded(kandi ...
- wince6.0中文内核定制
对WinCE体积进行剪裁,并让WinCE支持简体中文和英文显示,默认显示是中文,并以下对字体选取 作详细的说明: 关键操作步骤: 1.先创建一个WINCE内核工程. 2.先打开目标的工程文件,单击&q ...
- WINCE6.0+S3C2443的启动过程---内核启动
********************************LoongEmbedded******************************** 作者:LoongEmbedded(kandi ...
- WINCE6.0系统调用
********************************LoongEmbedded******************************** 作者:LoongEmbedded(kandi ...
- WinCE6.0的EBOOT概要
为一个新的硬件设备定制WinCE6.0操作系统,一般需要完成以下几个主要步骤: 1. 针对特定的硬件设备创建板级支持包(Board Support Package缩写为BSP),BSP必须 ...
- WINCE6.0+S3C6410串口驱动
********************************LoongEmbedded************************作者:LoongEmbedded(kandi)时间:2011. ...
- WINCE6.0 SDK 模拟器下载与安装
在使用VS2008进行CE开发过程经常需求调试程序,和模拟程序执行,附件中是WINCE6.0模拟器(SDK),使用系统开发是可以模拟WINCE6.0操作系统运行 C#(CF)程序. 下载并安装完成后, ...
- linux 0.01内核分析与操作系统设计 pdf,《Linux 0.01内核分析与操作系统设计——创造你自己的操作系统》...
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 readme 本光盘为<Linux 0.0.1内核分析与操作系统设计--创造你自己的操作系统>一书的配套光盘,读者可自由取其源文件做学习,研究 ...
- Linux0.1源码分析,《Linux 0.01内核分析与操作系统设计——创造你自己的操作系统》...
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 readme 本光盘为<Linux 0.0.1内核分析与操作系统设计--创造你自己的操作系统>一书的配套光盘,读者可自由取其源文件做学习,研究 ...
最新文章
- strtotime 获取当月最后一天的日期
- 计算机在线咨询,计算机科学与技术
- BBSSDK插件技术方案
- 如何設定 VS2008 讓 HTML 在格式化排版時不要破壞版面
- 【C 语言】变量本质 ( 变量概念 | 变量本质 - 内存空间别名 | 变量存储位置 - 代码区 | 变量三要素 )
- python实训第七天
- 20181204-1 每周例行报告
- 1.8 Collections类操作集合详解——排序,查找,复制
- python打包出现乱码_python解压zip包中文乱码解决方法
- JVM快速调优手册v1.0之三:内存分配策略
- 转 如何通过ildasm/ilasm修改assembly的IL代码
- zuul网关,springsecurity认证中心 和 Swagger2 整合遇到的问题
- 番茄花园xp开机音乐_抱歉,Windows XP的开机音乐骗了你20年
- vs code发布1.37,全部换新的图标,这跟java是有仇吧,.java图标无法接受
- Excise_day04Array
- 让我的诗句带走你的空虚
- 设计素材|最流行的抽象流体彩色渐变海报,艺术感爆棚
- wps里表格中间的字怎么置顶_怎么把wps文字放在最中间
- 计算机flash方面参考文献,flash毕业论文参考文献(2)
- 西电-机器学习-逻辑回归
热门文章
- mflac文件解析工具_9 个爱不释手的 JSON 工具
- 关于linux驱动程序的学习
- 线性表adt的c语言表达,抽象数据类型定义(ADT)
- C语言中,带空格的字符串输入
- 图像处理:二维傅里叶变化的平移性_matlab实现
- 抽象工厂模式java_面试官:说一下静态工厂模式,工厂方法模式,抽象工厂的区别吧...
- Nginx实现静态代理,负载均衡,前后端分离
- nacos enablediscoveryclient_Nacos入门指南03 服务发现实践
- python 加密解密_python实现AES加密解密
- 华为emui10是鸿蒙,昨日,华为EMUI10,鸿蒙系统正式发布!