操作系统的启动
启动过程
从加电到用户工作环境准备好的过程。
(1) 初始引导
(2) 核心初始化
(3) 系统初始化
1)初始引导
目的
把OS核心装入内存并使之开始工作接管计算机系统
过程
- 加电,Jump post
- ...BIOS中的启动程序运行
启动程序
常见引导程序 |
---|
(1)ntldr |
(2)GRUB |
(3)(bootmgr) |
(4)LILO |
读取0面0道第1扇区内容(MBR),加载MBR中的引导程序。
引导程序
根据相关参数,读取硬盘指定位置的文件到内存,加载到硬盘上的OS内核,并初始化基本参数。
OS内核:逐步加载OS剩余部分,最后完全控制计算机。
2) 核心初始化
核心初始化
目的:OS内核初始化系统的核心数据
典型工作
各种寄存器的初始化
存储系统和页表初始化
核程进程构建
.......
3) 系统初始化
系统初始化
为用户使用系统作准备,使系统处于待命状态。
主要工作
初始化文件系统
初始化网络系统
初始化控制台
初始化图形界面
........
特定的操作系统他的启动过程
1.Windows的启动过程
POST
加电后BIOS启动主机自检程序
初始引导
BIOS从MBR读入引导程序,装入内存的特定位置,引导程序启动DOSTO,调入操作系统核心,WINDOWS开始接管系统。
核心初始化
资源状态:核心数据等初始化
系统初始化
GUI界面生成|系统处于待命|消息接收状态
2.linux的启动过程
POST—>MBR—>KERNEL映像—> KERNEL映像自解—>内核初始化—>内核启动—>压并执行
注释:
KERNEL映像是一个zlib压缩过的内核映像。
KERNEL映像前端是一个可执行例程(实现核心硬件初始化并解压)
然后该例程调用内核并开始启动内核引导的过程。
内核完成引导后,加载initi程序
进程号
init进程通过/etc/inittab脚本,进行初始化
不同运行级别(Runlevel)/etc/initab脚本不同
脚本文件/etc/inittab
init进程文件依据/etc/initab执行相应的脚本初始化系统
设置键盘、字体、装载模块、设置网络等等。
网友评论