ReactOS,硬件抽象层,HAL概述

分析环境reactos0.3.4 ,i386体系]

 

ReactOS的硬件抽象层 HAL(Hardware Abstraction Layer)位于OS与硬件的中间,和windows的hal原理基本一致,硬件抽象层隐藏特定平台的硬件接口细节,为上层的系统提供标准的稳定的虚拟硬件平台,使商城系统具有与硬件无关的特性,从而达到可在多种平台上进行移植的目的。

 

既然硬件抽象层的功能是隐藏特定的硬件平台特性,那么这个硬件平台又是指什么呢?经过对HAL代码的阅读(主要是"hal"halx86"generic目录里的文件),以及在网上搜索了很多相关资料后,才了解到这个硬件平台是指:某种类型的计算机体系结构,比如说IBM PC机体系结构,也就是一般所指的x86 pc系统,或者PowerPC等。

 

而这些计算机虽然在构架上和技术上会有不同,但是也有相同的(我想应该这样)因为任何一台计算机都应该包含CPU系统总线、(地址总线、数据总线、PCI总线、很多其他总线吧,)还有就是一些可编成的控制器芯片,中断控制,设备驱动等等。这些相互搭配就够正了某种体系结构的计算机。

 

上面说的就是硬件平台,而Reactos对这些硬件制定了通用的抽象的硬件标准,这些标准组合在一起就构成了硬件抽象层。

 

微型计算机的硬件构成:

       微型计算机的硬件简单的说就是包含主机和外部设备这两部分,作为操作系统最关心的应该还是主机的内部硬件,其他的外设通过主板接口连接,搭配适当的驱动程序通过控制主板上的这些接口也就可以控制这些外部设备。

 

       那现在重点是主机内部的这些硬件设备,这些设备已在《微型计算机技术》中有相关的定义。

简单的说就是包括CPU、内存、总线、输入输出接口这几个部分,其实就我个人认为其实就是一块主板的体系结构。如下图的PC机主板体系结构。

 

 

 

通过上面这个图可以看出作为一台PC机的主板应该具备哪些硬件特性。而Reactos给计算机定义了一个比较基本的硬件标准,对于上层来说这就是计算机标准,那么作为ReactOS应该对上层提供那些基本的硬件标准呢:(一下是我对HAL的部分代码分析后得出的,这些其实就是计算机的硬件接口,而HAL主要就是通过这些接口来控制硬件)

1.         基本的电源管理

2.         主板BIOS/COMS数据管理

3.         计算机引导控制

4.         中央处理器控制

5.         总线控制(主要是PCI总线控制)

6.         存储器缓存控制器等

7.         系统时钟及时钟中断管理,时钟管理

8.         硬件及软件统一的中断管理(IRQL)

9.         直接内存存取(DMA)控制

10.     外部设备的I/O控制

11.     磁盘I/O存取控制

12.     共享数据同步访问IRQL,自旋锁(多处理器)

13.     杂项控制

软件和硬件IRQ 管理(MS定义的IRQL,以及在HAL级实现的DPC/APC软件中断,将硬件,软件引发的中断和在一起按照IRQL标准执行中断的嵌套调用)

[如需转载请注明出处:(雄)blog.csdn.net/mickey139]

posted @ 2008-10-04 21:33  BinSys  阅读(744)  评论(0编辑  收藏  举报