计算机行业的朋友几乎是每天都在和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、进入login shell,以命令行为例,首先读取/etc/profile这个全局配置文件,然后再针对当前用户读取家目录中的~/.bash_profile和~/.bash_login和~/.profile 8、最后一步就是打开non-login shell,进入图形化后 手动新建一个终端,但这个shell不读取/etc/profile Windows: 1、电脑开机后,开始启动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系统所在的盘里的windows\system32\winload.exe文件,并且将控制权交给winload.exe。 9、Winload.exe加载windows内核、硬件、服务等,之后加载桌面等信息,从而启动整个windows 系统。 10、上面几步可以概括一下就是: BIOS---MBR---DPT---PBR---Bootmgr---BCD---系统选择界面---选择windows---Winload.exe---内核加载等 ---启动整个windows系统