windows内核开发学习笔记二十四:windows内核架构

从上图上可以看出,windows内核主要层次划分为三个层次,以及windows子系统、文件系统、网络、设备驱动程序等几个部分。

  •  硬件抽象层(Hardware Abstraction Layer,简称HAL):主要是把所有与硬件相关联的代码隔离到一个专门模块中,从而使上面的层次尽可能做到独立于硬件平台。
  • 内核层或微内核层(micro-kernel):位于HAL硬件抽象层之上,主要包含了基本的操作系统原语和功能,如线程和进程、线程调度、中断和异常的处理、同步对象和各种同步机制。
  • 执行体层(execution):提供供应用层或者内核驱动程序直接调用的功能和语义。包含一个内核管理器,用于一致地管理执行体中的对象。

      执行体和内核层位于内核基本模块ntoskrnl.exe二进制模块中,二者的具体分工是:内核层实现操作系统的基本机制,执行体负责所有的策略的决定。执行体中的对象绝大多数封装了一个或者多个内核对象,并且通过某种方式(如句柄)提供给应用程序,体现了机制与策略分离的设计思想。

        windows内核为用户模式代码提供了一组系统服务,供应用程序使用内核中的功能,并且是通过一组系统DLL,最终通过ntdll.dll切换到内核模式下的执行体API函数中,来调用内核中的系统服务。ntdll.dll是这种调用的桥梁。对于内核提供的每一个系统服务,该DLL都提供一个响应的存根函数,这些存根函数的名称以“Nt”作为前缀,如NtCreateProcess、NtOpenFile和NtSetTimer等。另外ntdll.dll还提供了许多系统级的支持函数,如映像加载函数(前缀Ldr)、windows子系统通信函数(前缀Csr)、调试函数(前缀Dbg)、系统事件函数(前缀Etw),以及一般的运行支持函数(前缀Rtl)和字符串支持函数等。

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

jyl_sh

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值