Linux的开机启动流程
2013-04-13 23:27
183 查看
Linux的开机启动流程
《鸟哥的Linux私房菜之基础篇》学习笔记(一)
1.加载
BIOS(BasicInput Output System)
的硬件信息与进行自我测试,并依据设定取得第一个可开机的装置;
2.读取并执行第一个开机装置内MBR(MasterBootRecord,主引导分区)的
bootLoader (亦即是
grub,spfdisk 等程序);
重点说明一下Linux中最主流的bootloader
:Grub
由于MBR是硬盘的第一个扇区内的一个数据块,其整个大小不能满足bootloader程序代码和设置数据的需求,所以Linux将bootloader的程序代码执行与设置值加载分成两个阶段:
a.Stage1:执行bootloader主程序
b.Stage2:主程序加载配置文件
其中grub的配置文件是/boot/grub/menu.lst,可以对其进行配置.
3.依据
bootloader 的设定加载
Kernel,Kernel 会开始侦测硬件与加载驱动程序;
bootloader加载完内核后,由于驱动程序常被编译成内核模块,放置于/lib/modules/$(uname-r)/kernel/中,这些模块必须要根目录被挂载时才能够被读取,但是如果内核本身不具备磁盘的驱动程序时,当然无法挂载根目录,也就没有办法取得驱动程序.此时bootloader
会加载/boot/initrd(虚拟文件系统)到内存中,然后这个文件会被解压缩并仿真成一个根目录,且此仿真在内存中的文件系统能够提供一个可执行的程序,通过该程序来加载启动过程中所需要的内核模块.
4.在硬件驱动成功后,Kernel会主动呼叫
init程序,而
init会取得 run-level信息;
/sbin/init通过配置文件/etc/inittab取得run-level信息.
5.init
执行 /etc/rc.d/rc.sysinit档案来准备软件执行的作业环境(如网络、时区等);
init通过/etc/rc.d/rc.sysinit这个脚本进行系统的初始化工作.
6.init
执行 run-level的各个服务之启动
(script方式);
启动run-level所对应的系统服务,各个不同的run-level服务启动的shellscrips在/etc/rc.d/rcN中,其中的脚本都是连接文件,连接到standalone服务启动的目录/etc/init.d/.
7.init
执行 /etc/rc.d/rc.local档案;
/etc/rc.d/rc.local是用户自定义的开机启动程序,用户如果有想要在启动时就进行的工作,可直接将它写入/etc/rc.d/rc.local,那么该工作就会在启动的时候自动被加载;
8.init
执行终端机仿真程序 mingetty来启动
login程序,等待用户登入;
《鸟哥的Linux私房菜之基础篇》学习笔记(一)
1.加载
BIOS(BasicInput Output System)
的硬件信息与进行自我测试,并依据设定取得第一个可开机的装置;
2.读取并执行第一个开机装置内MBR(MasterBootRecord,主引导分区)的
bootLoader (亦即是
grub,spfdisk 等程序);
重点说明一下Linux中最主流的bootloader
:Grub
由于MBR是硬盘的第一个扇区内的一个数据块,其整个大小不能满足bootloader程序代码和设置数据的需求,所以Linux将bootloader的程序代码执行与设置值加载分成两个阶段:
a.Stage1:执行bootloader主程序
b.Stage2:主程序加载配置文件
其中grub的配置文件是/boot/grub/menu.lst,可以对其进行配置.
3.依据
bootloader 的设定加载
Kernel,Kernel 会开始侦测硬件与加载驱动程序;
bootloader加载完内核后,由于驱动程序常被编译成内核模块,放置于/lib/modules/$(uname-r)/kernel/中,这些模块必须要根目录被挂载时才能够被读取,但是如果内核本身不具备磁盘的驱动程序时,当然无法挂载根目录,也就没有办法取得驱动程序.此时bootloader
会加载/boot/initrd(虚拟文件系统)到内存中,然后这个文件会被解压缩并仿真成一个根目录,且此仿真在内存中的文件系统能够提供一个可执行的程序,通过该程序来加载启动过程中所需要的内核模块.
4.在硬件驱动成功后,Kernel会主动呼叫
init程序,而
init会取得 run-level信息;
/sbin/init通过配置文件/etc/inittab取得run-level信息.
5.init
执行 /etc/rc.d/rc.sysinit档案来准备软件执行的作业环境(如网络、时区等);
init通过/etc/rc.d/rc.sysinit这个脚本进行系统的初始化工作.
6.init
执行 run-level的各个服务之启动
(script方式);
启动run-level所对应的系统服务,各个不同的run-level服务启动的shellscrips在/etc/rc.d/rcN中,其中的脚本都是连接文件,连接到standalone服务启动的目录/etc/init.d/.
7.init
执行 /etc/rc.d/rc.local档案;
/etc/rc.d/rc.local是用户自定义的开机启动程序,用户如果有想要在启动时就进行的工作,可直接将它写入/etc/rc.d/rc.local,那么该工作就会在启动的时候自动被加载;
8.init
执行终端机仿真程序 mingetty来启动
login程序,等待用户登入;
相关文章推荐
- 转载:linux 系统开机启动流程
- Linux 的开机启动流程详解
- 小c学Linux(11)--开机系统启动流程
- linux开机启动详细流程
- Linux 的开机启动流程详解
- 介绍Linux系统如何初始化和启动系统服务的(Linux的开机流程)
- Linux开机启动流程
- Linux曲径通幽:Linux启动流程、运行级别、开机自启动、修复
- 简要描述Linux开机启动流程
- linux系统的开机引导、启动流程
- Linux开机启动流程
- linux开机启动流程
- 初学Linux对开机启动流程的相关实验
- linux开机启动详细流程
- 思维导图_Linux开机启动流程
- linux开机启动流程
- Linux开机启动流程及运行级别和常用组合键 == 第一次所学知识框架==
- Linux开机启动流程
- linux开机启动流程
- linux 开机启动详细流程