二进制入门学习笔记-15.windows内核理论基础

1.内核理论基础

1.1 权限级别

CPU设计者将CPU运行的级别从内向外分为4个级别,分别为R0,R1,R2,R3。运行权限从R0~R3依次降低。即Ring0拥有最高权限,Ring3拥有最低权限。R0~R3级别的用途如下:

  • R0:运行系统内核
  • R1:运行设备驱动
  • R2:运行设备驱动
  • R3:运行应用程序

如图所示:

但是操作系统厂商为了方便并未使用R1,R2这两个级别,直接把内核以及驱动都运行在了R0中,把应用程序运行在了R3。即当前主流操作系统中R0~R3级别的用途如下:

  • R0:运行系统内核及设备驱动
  • R1:未使用
  • R2:未使用
  • R3:运行应用程序

以windows XP为例,系统的架构如下图所示: 根据上图所示,一个普通用户想要访问内核,主要是通过调用Win32APIWin32API调用ntdll.dll和内核打交道。

1.2 windows与内核启动过程

windows操作系统启动主要包含以下几个步骤:

  • 1.启动自检阶段

从BIOS中读取一些简单指令,进行硬件的初始化检查

  • 2.初始化启动阶段

根据CMOS(保存启动信息的芯片)的设置加载启动盘,将MBR(主引导记录)中的引导代码载入内存。启动过程交给MBR执行。启动代码搜索MBR中的分区表,找出活动分区,将第一个扇区的引导代码载入内存。引导代码检测当前文件系统,查找ntldr(win7之前)或Bootmgr(win7)文件,然后把控制权交给这个文件。

  • 3 .Boot加载阶段

设置内存模式,读取boot.ini等操作。

  • 4.检测和配置硬件阶段

检测适配器、鼠标、键盘等硬件。

  • 5.内核加载阶段

加载一些内核和抽象硬件层,然后从如下位置HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\读取这台机器安装的驱动并加载。依次查找Start键为为0或1的驱动进行加载。

  • 6.Windows会话管理启动

驱动加载完成,启动会话管理器。

  • 7.登录阶段

windows系统启动登录服务。