操作系统的启动流程

windows:

1.计算机加电

2.BIOS开始运行,检测硬件:cpu、内存、硬盘等

3.BIOS读取CMOS存储器中的参数,选择启动设备

4.从启动设备上读取第一个扇区的内容(MBR主引导记录512字节,前446为引导信息,后64为分区信息,最后两个为标志位)

5.根据分区信息读入bootloader启动装载模块,启动操作系统

6.然后操作系统询问BIOS,以获得配置信息。对于每种设备,系统会检查其设备驱动程序是否存在,如果没有,系统则会要求用户按照设备驱动程序。一旦有了全部的设备驱动程序,操作系统就将它们调入内核。然后初始有关的表格(如进程表),穿件需要的进程,并在每个终端上启动登录程序或GUI

LINUX系统的系统启动流程:

1、计算机加电

2、BIOS开始运行,检测硬件:cpu、内存、硬盘等,BIOS读取CMOS存储器中的参数,选择启动设备

3、读取MBR。从启动设备上读取第一个扇区的内容(MBR主引导记录512字节,前446为引导信息,后64为分区信息,最后两个为标志位。第一部分为预引导区,占了446个字节,它的作用之一是找到标记为活动(ACTIVE)的分区,并将活动分区的引导区读入内存;第二部分为分区表,共有66个字节,记录硬盘的分区信息。
目前计算机读取"主引导记录"前面446字节的机器码之后,不再把控制权转交给某一个分区,而是运行事先安装的"启动管理器"(boot loader),由用户选择启动哪一个操作系统。
Linux环境中,目前最流行的启动管理器是Grub。

4、启动Boot Loader 就是在操作系统内核运行之前运行的一段小程序。系统读取内存中的grub配置信息(一般为menu.lst或grub.lst),并依照此配置信息来启动不同的操作系统

5、加载内核。kernel运行。

6、用户层init依据inittab文件来设定运行等级。

7、执行init进程。在设定了运行等级后,Linux系统执行的第一个用户层文件就是/etc/rc.d/rc.sysinit脚本程序,它做的工作非常多,包括设定PATH、设定网络配置(/etc/sysconfig/network)、启动swap分区、设定/proc等等。如果你有兴趣,可以到/etc/rc.d中查看一下rc.sysinit文件。

8、执行/bin/login,进入操作系统

posted @ 2017-05-18 19:47  Sargreis  阅读(499)  评论(0编辑  收藏  举报