BIOS+MBR
BIOS(Basic Input Output System,基本输入输出系统),是一组固化到计算机内主板上一个ROM芯片上的程序,它保存着计算机最重要的基本输入输出的程序、开机后自检程序和系统自启动程序,它可从CMOS中读写系统设置的具体信息。 其主要功能是为计算机提供最底层的、最直接的硬件设置和控制
CMOS是主板上的一块可读写的并行或串行FLASH芯片,是用来保存BIOS的硬件配置和用户对某些参数的设定。
这是传统的启动方案。
机器通电以后,从BIOS中载入指令进行一系列自检操作,进行硬件的初始化检查。自检后根据CMOS的设置,加载启动盘,将MBR中的引导代码载入内存。引导代码检测当前使用的文件系统,winxp系统查找ntldr
文件,找到之后启动ntldr,由ntldr
完成之后的启动工作(win7之后使用,使用的是Bootmgr
文件)。
之后检查和配置硬件设备
ntrldr首先将加载Windows内核ntoskrnl.exe
和hal.dll
,读取机器安装的驱动程序计算机\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\
,然后依次加载驱动程序。初始化底层设备驱动,在注册表HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\
键下查找 "Start"的值为0和1的设备驱动。Start的值可以为0,1, 2,3, 4,数值越小,启动越早。
驱动加载完成,内核会启动会话管理器smss.exe
,这是Windows系统中创建的第一个用户模式的进程,
该会话管理器首先创建系统环境变量,加载win32k.sys
,启动csrss.exe
启动winlogon.exe
,创建虚拟内存页面文件
Windows子系统通过启动winlogon.exe
对Windows用户提供登录和注销,启动控制服务管理器services.exe
SCM,启动本地安全授权lsass.exe
LSA,显示登录界面
登录组件将用户的账户和密码安全地传送给LSA进行认证处理。如果用户提供的信息是正确的,能够通过认证,就允许用户对系统进行访问。
对于win7以后,由Bootmgr
接管之前ntldr
的工作,首先寻找活动分区boot文件夹下的启动数据配置BCD文件,读取显示启动菜单,在屏幕上显示多操作系统选择画面。
选择系统之后,启动winload.exe
进行内核、硬件、服务等加载,进而启动整个系统。
UEFI+GPT
这是比较新的启动方案。
UEFI(Unified Extensible Firmware Interface,统一的可扩展固件接口),主要用于替换BIOS。
UEFI本身已经相当于一个微型操作系统,具备文件系统的支持能力,能够直接读取FAT分区中的文件,.efi
文件可在UEFI下直接运行。
GPT(GUID Partition Table,全局唯一表示分区表),只有基于UEFI平台的主板才支持GPT分区引导活动
Reference:加密与解密[系统篇]