【读书笔记】Windows CE嵌入式系统_【2】_操作系统层
来源:互联网 发布:雷洋死亡真相 知乎 编辑:程序博客网 时间:2024/05/16 15:30
一、系统调用与CoreDLL.DLL
1、CoreDLL.DLL的主要功能是负责英勇程序与Windows CE通讯以及完成Windows CE的系统调用(system Call)。
CoreDLL.DLL不是一个单独的进程,它是一个会被所有用户进程都加载的动态链接库(DLL,Dynamic Link Library)。所用的应用程序只能通过CoreDLL访问Windows CE所提供的服务。
2、系统调用的详细过程:
第一种:返回
第二种:自陷
3、系统调用机制
在Windows CE中,系统调用发生的整个过程中,并没有发生真正的线程上下文切换。Windows CE内核负责把API调用赚到实现该API的PSL进程。PSL进程会把进行系统调用的执行线程从一个进程迁移到下一个进程。
也就是说,在整个系统调用过程中,在处理器上执行的线程始终是同一个。
eg:
createWindow系统调用会在应用程序,NK.EXE和GWES.EXE中来回切换,但是在三个进程中执行的线程是同一个线程,也就是说,并没有真正的上下文切换发生,所谓的“切换”只是把执行进程的虚拟地址空间映射到Slot 0 。Windows CE内核负责把应用程序中的用户态线程改变访问权限,然后把它迁移到系统进程中,在整个系统调用过程中,这个线程在三个进程中使用同一个栈和同一个寄存器。当这个线程离开PSL进程的时候,Windows CE内核再把它的特殊访问权限移除。 借助PSL,在系统调用时并没有真正的发生上下文切换,因此,系统的效率不会受到影响。
Windows CE采用平板式的虚拟内存模型,多个进程共享一个4GB的平坦虚拟地址空间。因此,只要有访问权限,数据在进程之间无需复制也可以共享。
PSL机制是在NK.EXE中实现的。它只在Windows CE内部使用,用户和OEM无法对PSL进行扩展。
二、内核NK.EXE
NK.EXE实现了Win32 API中核心的进程创建加载、线程调度、中断处理和内存管理等核心功能。
NK.EXE 由 NK.LIB 和 OAL.LIB组成。
- NK.LIB----与CPU指令体系结构相关和具体的外设无关
- OAL.LIB----OEM层中的OAL代码编译后的输出。
三、图形系统 GWES.EXE
图形窗口事件系统(GWES)提供基本的绘图功能和窗口管理器。所有的用户输入(键盘、鼠标、触摸屏等)相关的驱动程序,以及显示驱动都有GWES.EXE来加载和管理。
GWES.EXE实现的基本功能基本上是桌面Windows中的USER32和GDI32的集合。
四、对象存储FILESYS.EXE
对象存储=文件系统+数据存储
FILESYS.EXE是在运行时负责对象存储的进程。
对象存储包括
- 文件系统 ----RAM文件系+ROM文件系统
- Windows CE数据库 ----提供结构化的数据存储
- 系统注册表 -----负责存储系统和应用程序的配置信息。
- 【读书笔记】Windows CE嵌入式系统_【2】_操作系统层
- 【读书笔记】Windows CE嵌入式系统_【1】_简介
- 【读书笔记】Windows CE嵌入式系统_【4】_线程同步
- 【读书笔记】Windows CE嵌入式系统_【3】_进程、线程与调度
- 【读书笔记】Windows CE嵌入式系统_【5】_进程间通讯u
- windows ce 嵌入式系统读书笔记(一)
- 嵌入式操作系统的基本概念_读书笔记_1
- 《嵌入式实时操作系统uC/OS-II》_第2章_实时系统概念
- 嵌入式操作系统Windows CE研究
- 第一章 嵌入式操作系统_基础知识
- 嵌入式操作系统Windows CE之架构概述
- 嵌入式操作系统Windows CE之架构概述
- 为Windows CE平台开发嵌入式系统
- Windows CE嵌入式系统程序开发
- 如何选择嵌入式操作系统 Windows CE还是Windows XP Embedded?
- IOS_Cocos2D_label_菜单_粒子系统_图层_飞机
- Windows CE下开发建立GPRS连接_调用系统API
- 选择Windows CE wince嵌入式操作系统 的十大理由
- 深入浅出面向对象分析与设计笔记
- TableView的添加删除执行顺序
- 2.Swift教程翻译系列——Swift概览
- WRTNode(MT7620) UBoot 中实现USB功能过程记录
- Oracle SQL性能优化
- 【读书笔记】Windows CE嵌入式系统_【2】_操作系统层
- openSession和getCurrentSession的比较
- 11gR2 grid安装执行root.sh报错
- Question
- 剑指offer面试题34
- 用C语言解决迷宫问题
- 如何定位死循环或高CPU使用率(linux)
- ios --地图整理
- Day04