计算机行业的同学几乎是每天都在和Windows或Linux打交道,好多人可能每天都要面对系统多次的启动过程,而且您晓得在Windows和Linux的启动过程背后,隐藏着哪些秘密吗?在这一系列过程中都用到了什么重要的系统文件?系统的启动分为几个步骤?在这种步骤中计算机中发生了哪些事情?
清楚地晓得开机启动流程(原理),对于理解和处理系统开机故障有很大帮助。
Linux:
1、首先是bios加电自检、初始化,这个过程会检查相关硬件(cpu、内存、显卡、硬盘等),之后读取一个启动次序,以硬碟为例,会读取硬碟中的MBR。
2、加载内核读取/boot里面的配置文件。
3、、启动初始化进程,开始运行/sbin/init
4、、读取/etc/inittab确定运行级别
5、根据/etc/rc.d/rcN.d加载开机启动程序,rcN.d都是链接文件,都指向/etc/rc.d/init.d再运行/etc/rc.d/rc.local
6、用户登入(3种形式ssh、命令行、图形化)
7、进入loginshell,以命令行为例linux cp,首先读取/etc/profile这个全局配置文件,之后再针对当前用户读取家目录中的~/.bash_profile和~/.bash_login和~/.profile
8、最后一步就是打开non-loginshell,步入图形化后自动新建一个终端linux更改ip地址,但这个shell不读取/etc/profile
Windows:
1、电脑开机后linux 程序开机启动,开始启动BIOS,开始BIOS自检。
2、通过自检后,bios找到硬碟上的主引导记录MBR.
3、MBR开始读取硬碟分区表DPT,找到活动分区,找到活动分区中的分区引导记录PBR,而且把控制权交给PBR.
4、PBR搜索活动区中的启动管理器bootmgr,找到后,PBR把控制权交给bootmgr(相当于xp里的ntldr文件)。
5、Bootmgr找寻活动分区中的boot文件夹中的BCD文件(启动配置数据,相当于xp里的boot.ini文件)。
6、找到BCD后,Bootmgr首先从BCD中读取启动管理器bootmgr菜单的语言版本信息,之后再调用BOOTMGR与相应语言的BOOTMGR.EXE.MUI(在boot文件夹对应语言文件夹中)组成相应语言的启动菜单,然后在显示器上显示多操作系统选择画面。
7、如果存在多个操作系统并且系统设置的等待时间不是0,这么屏幕就显示多个操作系统的选择界面。若果没有多系统,这么直接步入当前的windows系统,不显示选择界面。
8、选择windows系统后,bootmgr才会读取BCD里win系统所在的盘里的windowssystem32winload.exe文件linux 程序开机启动,而且将控制权交给winload.exe。
9、Winload.exe加载windows内核、硬件、服务等,然后加载桌面等信息,进而启动整个windows系统。
10、上面几步可以概括一下就是:
BIOS---MBR---DPT---PBR---Bootmgr---BCD---系统选择界面---选择windows---Winload.exe---内核加载等---启动整个windows系统