系统的启动过程

系统的启动过程:

1、当你按下开机键时,最早是由主板 BIOS 蕊片中的 BIOS 程序来执行硬件检测任务的,如果检查过程中发现关键硬件的故障,就会发出特定的响声通知用户,并停止启动。而 BIOS 程序是在主板出厂时固化在芯片中的一段程序。
2、当硬件没有问题时,BIOS 程序就会读入硬盘的主引导记录,将下面的任务交给主引导记录代码去完成。而主引导记录是在安装操作系统时对磁盘进行分区格式化操作时,写到硬盘中的。
如果找不到主引导记录,会出错停止,告诉你这是非法的系统启动盘。
3、主引导记录代码的工作是读入磁盘主分区的根目录,在里面读出 Ntldr 文件,并装入内存,然后将控制权交给它。注意看一下,硬盘根目录下是不是有个 Ntldr 文件?这个文件的属性是隐藏、系统,所以查看时要选择查看所有,且不隐藏被保护的系统文件才可看到。这个文件是安装操作系统时拷贝到硬盘上的,下面提到的文件都是在安装操作系统时拷上去的。如果没能找到 Ntldr 文件,则会停止启动,显示 Ntldr 没找到的错误信息。
4、Ntldr会将系统由原来的 16 位实模式切换到 32 位保护模式或 64 位长模式。它的工作是读取根目录下的 Boot.ini 文件,显然引导菜单,在多操作系统的计算机中,可以看到这个菜单。接着它会清屏,并在 Win2000 下显示一个黑白的进度条,在 XP 下显示 XP 的标志图同时显示下面不断滚动
的蓝色进度条,提示你它正在加载一些重要的文件。它在加载什么呢?它首先会加载 Ntoskrnl.exe、Hal.dll,如果这两个文件找不到,会出错停机,并显示找不到相应文件的信息。接着它读入注册表的 SYSTEM键文件,从中找出自动启动的各类驱动程序,这是很关键的,因为有些内核级的木马就是在这时启动的。每加载一个屏幕上的进度条就滚动一下子。中间如果某个驱动出问题,也可能会导至系统蓝屏崩溃。
5、接下来的工作由 Ntoskrnl.exe(或 Ntkrnlpa.exe)来进行,这是内核程序,它做的工作实在是太多了,它的最后一步工作就是创建会话管理子系统,也就是由 System进程创建的 Smss.exe 进程。
6、Smss.exe 进程负责创建用户模式环境,由用户模式环境向 Windows 提供可视的窗口界面。它会运行 BootExecute 中定义的程序,正常情况下是 Autochk,一个检查磁盘的程序。但有些杀毒软件会把自己的程序加到这里,来实现引导时杀毒,如果您的系统安装了江民类的杀毒软件,那么此时就会执行它的引导期杀毒程序,就是进入系统前出现的蓝底蓝字的病毒扫描窗口。
Smss.exe 还会执行 SessionManager 中的文件删除、移动操作,也就是调用 API:MoveFileEx 并选择重启后移除文件的,就是在这个环节执行了。当前有很多号称可以删除一切文件的安全工具都使用了MoveFileEx 来实现文件的删除,但是现在我们可以知道了,它的文件删除是在这个阶段执行的,而这时驱动程序已经加载了,所以用它们来清除驱动级的木马显然是不胜任的。创建附加的页面文件。加载 Win32k.sys,这个东西又是做什么的呢?这是一个内核模式的系统驱动程序,它负责了窗口的显示、屏幕的输入、鼠标键盘和其它设备的输入及消息的传递等。所以也是由 Win32k.sys 将显示器的分辩率设置为默认值的,也就是这个时候,咱们的计算机屏幕才真正的细致起来,在此以前都是 VGA 模式,当然了视频驱动是上面装载驱动程序时就已经加载了的,现在只是起到作用而已。再然后呢,就是启动Csrss.exe 与 Winlogon.exe 进程。启动完这两个进程后,Smss.exe 就进入了无限的等待,它在等它创建的 Csrss.exe 与Winlogon.exe,等着看这两个进程什么时候死掉,一旦他们中有死掉的,Smss.exe 马上罢工,让系统彻底崩溃。(在 XP 以后 Csrss 的死亡是由内核使系统崩溃的,而不是 Smss.exe),所以千万不要结束系统进程。Csrss.exe 负责的工作是创建或删除进程、线程,控制台与虚拟 DOS 机的支持等。它到此就开始工作了,不再参于后面的启动过程。但是 Winlogon.exe 还有很多工作要做呢,我们接下来看看后面的启动过程。
7、Winlogon.exe 是与登录相关的,但现在还不到显示登录窗口的时候,它还要先启动 Services.exe 及 Lsass.exe 进程,然后读取注册表 GinaDLL 中标明的 DLL,由这个 DLL 来显示一个登录对话话,也就是我们在进入系统时输入用户名与口令的窗口。为什么要先启动 Lsass.exe 呢?因为,这是本地安全认证子系统,负责的就是本机系统的安全,用户名与口令的验证工作是由它来进行的。还有一个进程Userinit.exe也是这个时候由 Winlogon.exe 来启动的,这是在用户登录进系统后,Winlogon.exe 启动此进程来进行用户初始化。你也可以自己加一个程序与 Userinit.exe 放在一起,那么,在这个时候 Winlogon.exe 会将那一位置的所有程序都启动起来。所以,这个Userinit.exe还有那个 GinaDLL 也就成了木马启动的一个可选位置。
8、最后,由 Winlogon.exe 启动的 Services.exe 开始加载标明为自启动的各个服务,及标明为手动的却是有必要加载的服务
9、而 Userinit.exe ,它在完成用户初始化后,就启动了 Explorer.exe,并功成身退。
10、最后,Explorer.exe 就成了我们的服务员,等待在那里静候我们的指令,听从我们的吩咐,进行相关程序的启动与功能的处理。

开机以后系统都做了些什么,而这对系统不能启动时的故障查明也有帮助,可以通过判断系统停在了哪个环节来断定是哪个部分出了问题

原作者写的文档:
链接:https://pan.baidu.com/s/1Y16qQb10Zlz-_dg5NDWn0w 提取码:3qh5

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值