【软件-操作系统】操作系统介绍/异构处理器支持

1.HAL(HardwareAbstractionLayer)

单片机系统使用BSP(板级支持包BoradSupportPackage)可以直接进行应用开发;

日益增长的芯片种类和复杂度,直接使用BSP挑战大,为了程序的可阅读性以及可移植性提出了硬件抽象层HAL这一个概念;

HAL库的实现是基于BSP库的,只是将其进一步封装,形成统一的标准,操作系统使用HAL接口来实现对硬件的操作;

WinCE面向的硬件架构种类太多,x86, ARM, MIPS等,微软不可能把这些都做出来,因此硬件和内核通信的部分,交给了OEM厂商,这些厂商按照接口规范实现特定硬件的软件抽象,供内核调用。因此就加OEM抽象层(OAL)=HAL。

Windows HDL:hal.dll

参考:https://blog.csdn.net/tq384998430/article/details/53484512  板级支持包BSP和硬件抽象层HAL的区别和关联;

参考:https://bbs.csdn.net/topics/390886702   关于BSP与HAL的区别

硬件 --> BSP--> HAL --> 驱动--> OS -->SDK(中间件)--> 应用

2.1Kernel Mode内核模式(操作系统)

代码具有对硬件的所有控制权限,可执行所有CPU指令,访问内存所有地址。

操作系统最底层,任何异常都会导致整机停机。

2.1.1 Microkernel(微内核)

操作系统底层服务,线程调度,多处理器同步,中断/异常处理;

2.2.2 Kernel mode drivers(内核模式驱动)

硬件设备驱动程序含网络驱动程序,文件系统;

驱动程序分为 :字符设备,块设备和网络设备;

微软提供给用户的DDK 开发环境所提供的包含文件和链接用的库只支持C和C++语言,所以网络上开发驱动的人基本都是用C或C++语言.

Windows 95、98和NT,Microsoft引入了WDM(Windows Driver Mode)。

WDM的出现是因为Microsoft想要驱动程序代码和后面所有新的操作系统兼容[Microsoft WDM, 02]。因此,驱动遵守WDM规范的好处是,驱动程序只需编写一次,在Microsoft之后所有新版操作系统上使用时只需要重新编译该驱动即可。

参考:https://www.cnblogs.com/woshiweige/p/4518439.html Linux和Windows设备驱动架构比较

参考:https://baike.baidu.com/item/内核模式驱动/5112202 

驱动是分层的;

L3:执行体(ntoskrnl.exe)

Windows操作系统基本服务,线程进程管理,内存管理,I/O管理等;

参考:https://blog.csdn.net/weixin_42135997/article/details/81032093 驱动初识与文件系统的理解

参考:https://blog.csdn.net/liyun123gx/article/details/29569189  驱动开发之用户模式和内核模式

User Mode用户模式

代码没有对硬件的直接控制权限,也不能直接访问内存地址。

应用程序通过调用系统接口(System APIs)来访问硬件。应用程序运行在用户模式

参考:https://blog.csdn.net/chy19911123/article/details/51089270  理解Windows内核模式与用户模式

参考:http://c.biancheng.net/view/1178.html  操作系统的运行机制(详解版)

参考:https://blog.csdn.net/tietao/article/details/8172411  误解程序运行(从单片机到开始)

参考:https://blog.csdn.net/liubing8609/article/details/80702818  理解用户模式(User Mode)和内核模式(Kernel Mode)

参考:https://www.zhihu.com/question/19849622/answer/15703017  Windows 8 是怎样做到同时支持 ARM 和 x86 架构的?

 

猜你喜欢

转载自blog.csdn.net/kinglapland/article/details/88393702