Windows内核中的关键组件

①HAL(硬件抽象层)
        HAL的设计目的是讲硬件的差别隐藏起来,从而为操作系统的上层提供一个抽象的、一致的硬件资源模型,以使Windows更容易被移植到不同的平台上。理想的情况是,只要硬件厂商能够提供一个HAL,Windows就能够在相应的硬件平台上运行。因此,HAL使得上层的模块无需考虑硬件的差异,他们通过HAL而不是直接访问硬件。
        尽管WIndows随带了多个主流机器的HAL,但是在安装系统时只会有一个被选中,(这就是系统安装后不能直接移动的原因)并拷贝和改名为hal.dll。
        自旋锁和中断的功能也是由HAL完成的。
②内核(微内核)
         它是内核模块ntoskrnl.exe的下层部分(上层为执行体),最接近于HAL层,负责线程调度和中断、异常的处理。对于多处理器系统,还负责同步处理器之间的行为,以优化系统的性能。这一层的核心任务是,让系统的所有处理器尽可能的忙和高效。内核层可在多个处理器上并发执行,它以C语言为主,也包含一些汇编代码。
         每个处理器上的线程切换也是由微内核来完成
         微内核总共管理两种对象:分发器对象和控制对象。    
         分发器对象实现了各种的同步功能:包括事件(event)、突变体(mutant)、信号量、进程、线程、队列、门和定时器。
         控制对象被用于控制内核的操作,但是不影响线程的调度,包括:异步过程调用、延迟过程调用、终端对象等。
③执行体
         执行体包含以下组件
            I、进程和线程管理器。负责创建进程和线程,以及终止进程和线程。
            II、内存管理器。此组件实现了虚拟内存管理,既负责系统地址空间的内存管理,又为每一个进程提供了一个私有的地址空间,并且也支持进程之间内存共享。
            III、安全引用监视器(SRM)。该组件强制在本地计算机上实施安全策略,它守护着操作系统的资源,执行对象的保护和审计。
            IV、I/O管理器。他实现了与设备无关的输入和输出功能,负责将I/O请求分发给正确的设备驱动程序以便进一步处理。
            V、缓存管理器。为文件系统提供了统一的数据缓存支持,允许文件系统驱动程序将磁盘上的数据映射到内存中,并通过内存管理器来协调物理内存的分配。
            VI、配置管理器。负责系统注册表的实现和管理。
            VII、即插即用管理器。负责列举设备,并为每个列举到的设备确定哪些驱动程序是必须的,然后加载并初始化这些驱动程序。并且检测到设备变化时,负责发送恰当的事件通知。例如WM_DEVICECHANGE消息。
            VIII、电源管理器。负责协调电源事件。
④设备驱动程序
         在内核中除了内核模块ntoskrnl.exe和HAL以外,其他的模块几乎都以设备驱动程序的形式存在。驱动程序既可以创建虚拟设备,也可以与设备完全无关,仅仅只是内核的扩展模块。我们可以认为设备驱动程序是Windows内核的一种扩展机制。
         设备驱动程序是可以动态加载到系统中的模块,其文件扩展名为.sys,格式是标准的PE文件格式。
⑤文件系统/存储管理
         在现代操作系统中,文件系统是外部存储设备的标准接口,他为应用程序使用这些设备中的数据提供了统一的抽象,多个应用程序和系统本身可以共享使用这些设备。Windows的原生文件系统是NTFS,其驱动程序为ntfs.sys。文件系统的底层是对存储设备的管理。大通量存储设备以分区和卷(volume)来管理整个存储空间。分区是指存储设备上连续的存储区域(连续的扇区),而卷是指扇区的逻辑集合。一个卷的扇区可能来自一个分区也可能来自多个分区甚至不同磁盘。
⑥网络
         Windows为应用程序提供了许多网络API,以下是主要的网络API:
            I、Windows套接字--Winsock。
            II、WinInet。是一个高层API,Microsoft Internet Explorer使用WinInet完成数据传输。
            III、命名管道和邮件槽。用于不同进程之间的通信。
            IV、NetBIOS。是一个早期的网络API。
            V、RPC。RPC建立在其他的网络API基础之上。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值