加密与解密(第四版)第7章 Windows内核基础

内核理论基础

1. 权限级别
系统内核层:ring0,应用层:ring3
CPU存在4个级别由高到底:R0(内核)、R1(驱动)、R2(驱动)、R3(应用)
操作系统的设计者为了简单,并未使用R1,R2

XP系统体系结构图:

2. 内存空间布局
x86系统内存布局图:

x86系统上最大寻址空间为4GB
Windows内存共包含4个部分:NULL空间,应用层空间,非法区域,内核空间

x64系统内存布局图:

x64系统上最大寻址空间理论上为16PB(2^64次方),但根本用不完
Windows最多支持2^44次方寻址空间,16TB
Linux最多支持2^64次方寻址空间,256TB

3. Windows与内核启动过程
包含以下阶段:

  1. CPU启动自检阶段
    打开电源时,CPU从BIOS中载入自检指令,执行这些指令进行自检操作,同时在屏幕上显示信息

  2. 初始化启动阶段
    自检完成后,根据CMOS的设置,BIOS加载启动盘,将主引导记录MBR中的引导代码载入内存,并执行。MBR中的引导代码搜索MBR中的分区表,找出活动分区,将第一个扇区的中的引导代码载入内存,第一个扇区的中的引导代码检测当前使用的文件系统,查找ntldr文件,找到之后启动它,此后BIOS将控制权交给ntldr,由ntldr完成操作系统的启动工作(Windows 7使用的是Bootmgr)

  3. Boot加载阶段
    对ntldr进行如下设置
    ①设置内存模式。如果是x86处理器,并且是32位系统,则设置“32-bit flat memory mode”;如果是x64处理器,并且是64位操作系统,则设置为64位内存模式
    ②启动一个简单的文件系统,以定位boot.ini、ntoskrnl、Hal等启动文件
    ③读取boot.ini文件

  4. 检测和配置硬件阶段
    这个阶段会检查和配置一些硬件设备,如系统固件、总线和适配器、显示适配器、键盘、通信端口、磁盘、输入设备、并口、ISA总线上运行的设备等

  5. 内核加载阶段
    ntldr将首先加载Windows内核Ntoskrnl.exe和硬件抽象层HAL。HAL会对硬件底层的特征进行隔离,并为操作系统提供统一的调用接口。接下来ntldr从注册表的

    HKEY_LOCAL_MACHINE\System\CurrentControlSet

    键下读取这台机器安装的驱动程序,然后依次加载驱动程序。初始化底层设备驱动,在注册表的

    HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services

    键下查找”Start“键的值为0和1的设备驱动
    Strat键的值可以为0、1、2、3、4数值越小,启动越早
    0:内核刚刚初始化,此时加载的都是和系统核心有关的重要驱动程序
    1:稍微晚一点
    2:从登录界面出现时开始加载
    3:在需要的时候手动加载
    4:禁止架子啊

  6. Windows会话管理启动
    当驱动程序加载完成后,内核会启动会话管理器(smss.exe),是操作系统第一个创建的用户模式进程,作用如下:

    • 创建系统环境变量
    • 加载win32k.sys,它是Windows子系统的内核模式部分
    • 启动csrss.exe,它是Windows子系统的用户模式部分
    • 启动winlogon.exe
    • 创建虚拟内存页面文件
    • 执行上次系统重启前未完成的重命名工作(PendingFileRename)
  7. 登录阶段
    Windows子系统启动的winlogon.exe系统服务提供对Windows用户的登录和注销的支持

    • 启动服务子系统(services.exe),也叫服务控制器SCM
    • 启动本地安全授权LSA过程(lsass.exe)
    • 显示登录界面

Tips:Windows 7和Windows xp启动过程的区别?

  • BIOS通过自检后,将MBR载入内存并执行,引导代码栈到启动管理器Bootmgr
  • Bootmgr寻找活动分区boot文件夹中的启动配置数据BCD文件,读取并组成相应语言的启动菜单,然后再屏幕上显示多操作系统选择画面
  • 选取Windows 7后,Bootmgr就会读取操作系统文件windows\system32\winload.exe,并将控制权交给winload.exe
  • winload.exe加载Windows 7的内核、硬件、服务等,然后加载桌面等信息,从而启动整个Windows 7系统

Tips:BIOS+MBR与UEFI+GPT的区别?
BIOS+MBR是传统的启动方式,磁盘逻辑地址LEA是32位的,最多支持2TB的磁盘。
UEFI是BIOS的替换方案,本身相当于一个微型的操作系统,磁盘逻辑地址LEA是64位的。UEFI具有文件系统的能力,能够直接读取FAT分区中的文件。UEFI下不需要主引导记录,不需要活动分区,不需要任何工具,只要将安装文件复制到一个FAT32分区或U盘中,通过这个分区或U盘即可安装和启动Windows

直接在UEFI环境下运行的程序以.efi结尾

4. Windows R0与R3通信

本章后面的部分目前无法看懂,需要看完《windows内核编程》才能看懂

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值