博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
操作系统的启动流程
阅读量:4322 次
发布时间:2019-06-06

本文共 1039 字,大约阅读时间需要 3 分钟。

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,进入操作系统

转载于:https://www.cnblogs.com/Sargreis/p/6875256.html

你可能感兴趣的文章
redis常见面试题
查看>>
导航控制器的出栈
查看>>
玩转CSS3,嗨翻WEB前端,CSS3伪类元素详解/深入浅出[原创][5+3时代]
查看>>
iOS 9音频应用播放音频之播放控制暂停停止前进后退的设置
查看>>
Delphi消息小记
查看>>
HNOI2016
查看>>
JVM介绍
查看>>
将PHP数组输出为HTML表格
查看>>
Java中的线程Thread方法之---suspend()和resume() 分类: ...
查看>>
经典排序算法回顾:选择排序,快速排序
查看>>
BZOJ2213 [Poi2011]Difference 【乱搞】
查看>>
c# 对加密的MP4文件进行解密
查看>>
AOP面向切面编程C#实例
查看>>
Win form碎知识点
查看>>
避免使用不必要的浮动
查看>>
第一节:ASP.NET开发环境配置
查看>>
sqlserver database常用命令
查看>>
rsync远程同步的基本配置与使用
查看>>
第二天作业
查看>>
访问属性和访问实例变量的区别
查看>>