WINCE6.0操作系统---内核(kernel)学习

备注:这里的内核指kernel,其表现形式为kernel.dll,OS指操作系统,core指核心。

 

WINCE6.0操作系统---内核(kernel)学习 - 男儿当自强 - 男儿当自强的博客

 

图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是如何编译生成的

WINCE6.0操作系统---内核(kernel)学习 - 男儿当自强 - 男儿当自强的博客

 

图2 指示生成kern.dll的makefile内容

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/435844.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【转】WPF调用图片路径,或资源图片

转自:https://www.cnblogs.com/sntetwt/p/5402098.html 一、加载本项目的图片 WPF引入了统一资源标识Uri(Unified Resource Identifier)来标识和访问资源。 其中较为常见的情况是用Uri加载图像。Uri表达式的一般形式为:协议授权路径 协议:pa…

如何自学java迅速成为java高手

很多网友咨询学习Java有没有什么捷径,我说“无他,唯手熟尔”。但是JAVA私塾愿意将一些经验写出来,以便后来者少走弯路,帮助别人是最大的快乐嘛! 要想学好Java,首先要知道Java的大致分类。我们知道,自从Sun推出Java以来…

WINCE6.0体系结构学习

WINCE6.0的体系结构图如下图所示: 图1 WINCE的体系结构 根据上图可以把WINCE6.0体系结构分为硬件层、OEM层、操作系统层和应用层,这四层紧密合作,相互配合来完成从应用程序的调用到对硬件的操作和交互。 1. 硬件层 硬件平台的核心是嵌入…

【转】DICOM图像像素值(灰度值)转换为CT值

转自:https://www.cnblogs.com/xuhui24/p/6193032.html https://zhuanlan.zhihu.com/p/358770379 CT值的单位是Hounsfield,简称为Hu,范围是-1024-3071。用于衡量人体组织对X射线的吸收率,设定水的吸收率为0Hu。 在DICO…

无限级分类查询

关于无限级分类的查询问题 分类表cataid parentid1 02 13 14 25 2 表 table1 id cataid title 一个分类信息表,根类别是parentid为0的 这时要查询出类别1下面的所有内容,怎么查,?转载于:https://www…

C/C++ 通过初始化列表和构造函数内赋值初始化成员变量的区别

一般我们进行成员变量初始化用两种方法 第一种是通过在构造函数内赋值 class Point{public:Point(){ _x 0; _y 0;};Point( int x, int y ){ _x 0; _y 0; }private:int _x, _y;}; 第二种是使用初始化列表 class Point{public:Point():_x(0),_y(0){};Point( int x, int y ):_…

【转】深度理解C# 的执行原理

转自:https://zhuanlan.zhihu.com/p/47177008 从编译原理说起虚拟机是什么C# 是什么,IL 又是什么.Net Framework vs MonoUnity3D 中的 C#小结作者:易立 | 腾讯IEG高级工程师为什么 Unity3D 可以运行 C#,C# 和 Mono 是什么关系&am…

C#提供的类库能够轻松实现对文件的操作

//C#写入/读出文本文件 stringfileName "c:I.txt";   StreamReader sr newStreamReader(fileName); stringstrsr.ReadLine (); sr.close();  StreamWriterrwFile.CreateText(Server.MapPath(".")"\myText.txt");   rw.WriteLine("写入…

Java程序员的推荐阅读书籍

作为Java程序员来说,最痛苦的事情莫过于可以选择的范围太广,可以读的书太多,往往容易无所适从。我想就我自己读过的技术书籍中挑选出来一些,按照学习的先后顺序,推荐给大家,特别是那些想不断提高自己技术水…

【转】Win10系统创建WiFi热点的两种方法

现在电脑和wifi已经成为很多人生活中不可缺少的一部分,上网过程只有连接WiFi才可以上网。使用windows10系统开启WiFi热点都是提示没有找到支持的无线网卡。不管你是驱动更新,重装,还是怎么操作都是不能用。为此,大家不妨参考下文方…

影院平台搭建 - (6)一个靠谱的视频播放方案的感想

折腾了我很久很久,让我一个月内天天只睡不到6个小时。总算折腾出一套至少我觉得是比较靠谱的东西了。在这里总结一下:1、如果追求画面质量,就不要用FLV格式,算法的先天缺陷导致无论怎么调试画面质量都不能上去。YouTube用MP4格式作…

【转】Win10系统怎么设置无线做AP热点_win10设置无线为ap热点的步骤

转自:http://www.win7zhijia.cn/win10jc/win10_33126.html 在win10系统中,默认情况下无线网卡大部分都用于STA模式,但是有时候需要将无线网卡的工作模式为SoftAP,这样如果有双网卡的话,就能够将本机网络共享给其他PC或…

虚析构函数解析

C 指出:当一个派生类对象通过使用一个基类指针删除,而这个基类有一个非虚的析构函数,则结果是未定义的。运行时比较有代表性的后果是对象的派生部分不会被销毁。如果一个类要被另外一个类继承,而且用其指针指向其子类对象时&#…

SQL Server 2005参考:PIVOT

SQL Server 2005参考:PIVOT 可以使用 PIVOT 和 UNPIVOT 关系运算符对表值表达式进行操作以获得另一个表。 (1)PIVOT 通过将表达式某一列中的唯一值转换为输出中的多个列来转换表值表达式,并在必要时对最终输出中所需的任何其余的列值执行聚合。 (2)UNPIV…

【转】wifi的几种工作模式

转自:https://www.cnblogs.com/Ph-one/p/12455362.html https://www.cnblogs.com/jpzhu/p/11983992.html WIFI配置具体的模式主要有以下这几种:STA模式、AccessPoint模式、Monitor模式、Ad-hoc(IBSS)模式、WDS模式、Mesh模式。 …

C++结构体实例和类实例的初始化

结构体实例(包括共用体)和类实例的初始化方法完全相同,二者都可以应用于继承层次中。不同点是结构体(包括共用体)默认成员为public,而类默认成员是private型的。 一、若类和结构体所有数据成员均为public型…

【转】WIFI-Direct(Wifi直连)、AirPlay、DLAN、Miracast功能介绍

转自:https://www.cnblogs.com/yuanqiangfei/p/11674640.html 不知道大家对无线同屏技术有多少了解,当这种技术普及的时候,我想我们的工作与生活又会方便很多吧!下面是目前三种主流同屏技术的介绍: 目前这种将终端信…

[轉]C# 中的委托和事件

轉自:http://www.cnblogs.com/jimmyzhang/archive/2007/09/23/903360.htmlpdf:http://www.tracefact.net/Document/Delegates-and-Events-in-CSharp.pdfC# 中的委托和事件 引言 委托 和 事件在 .Net Framework中的应用非常广泛,然而,较好地理解委托和事件…

可以让你少奋斗十年的工作经验

这个文章我看后,感触很深,写的很实际,也是我们很值得学习的,但是关键是我们要做到,很不容易啊,如果能都做到,那你就是一个牛人,我现在是没有都做到,但是我想努力去做到。…

【转】CT的FOV是什么含义

CT的FOV是什么含义 - : 视场,也可以说扫描范围24mm 在光学中FOV是什么意思 - : 视场角(FOV): 一个光学系统所能成像的角度范围. 角度越大, 则这个光学系统所能成像的范围越宽, 反之则越窄. 在实际产品当中, 又有光学FOV和机械FOV之分, 光学FOV是指SENSO…