您的位置:首页 > 运维架构 > Linux

Day7:Linux的启动流程、模块管理和Loader

2017-06-06 14:45 239 查看
学习心得:

一、Linux的启动流程

1.加载BIOS的硬件信息与进行自我测试,并依据设置取得第一个可启动的设备:

启动系统首先要让系统加载BIOS,并通过BIOS去加载CMOS信息,通过CMOS内的设置值取得主机的各项硬件配置,取得信息后,BIOS还会进行开机自检,然后执行硬件测试的初始化,并配置PnP设备,之后定义出可启动设备的顺序,然后进行启动设备的数据读取。

2.读取并执行第一个启动设备内MBR的boot Loader(grub ,spfdisk):

BIOS通过硬件的INT 13 中断功能来读取MBR,MBR为启动设备的第一个扇区,执行boot loader

3.依据boot loader 的设置加载Kernel,Kernel会开始检测硬件和加载驱动程序

在安装Linux系统时,可以选择将boot loader安装到MBR中,也可以选择不安装到MBR中,安装window时,会默认将MBR和bootsector都装上一份boot loader,这也是为什么在双Linux和Windows双系统的时候,需要优先安装Windows的原因。

boot loader主要提供以下功能:

提供菜单:用户可以选择不同的启动选项,这也是多重引导的重要功能

加载内核文件:直接指向可启动的程序区段来开始操作系统。

转交其他的loader:将引导装载功能转交给其他的loader负责 -- grub

最终的功能都是 用于加载内核。

当通过boot loader的管理而开始读取内核文件后,接下来,Linux就会将内核解压缩到内存中(通过虚拟文件系统/boot/initrd),利用内核的功能,开始测试与驱动各个设备,此时Linux内核会以自己的功能重新检测一遍设备,而不一定会使用BIOS检测的设备信息,此时,内核才开始接管BIOS的工作。

启动,initrd有加载模块名挂在虚拟文件系统的功能。

4.在硬件驱动成功后,Kernel会主动调用init进程,而init会取得run-level信息

5.init执行/etc/rc.d/rc.sysinit文件来准备软件执行的操作环境

取得网络环境与主机类型

测试与挂载内存设备/proc及USB设备/sys

决定是否启动SELinux

启动系统的随即数生成器

设置终端机字体

设置显示于启动过程中的欢迎画面

设置系统时间和时区设置:需要读如/etc/sysconfig/clock的设置值

接口设备的检测与Plug and Play(PnP)参数测试

用户自定义模块的加载

加载内核的相关设置

设置主机名与初始化电源管理模块(ACPI)

初始化软件磁盘阵列:主要是通过/etc/mdadm.conf来设置号的

初始化LVM的文件系统功能

以fsck检验磁盘文件系统:会进行filesystem check

进行磁盘配额quota的转换

重新以可读写模式挂载系统磁盘

6.init执行run-level的各个服务的启动(script)

run level:执行等级

0-halt:系统直接关机

1-single user mode :单用户维护模式,用于系统出问题时的维护

2-Multi-user,without NFS :类似run level 3,但是没有NFS功能

3-Full multi-user mode: 含有完整的网络的纯文本模式

4-unused :系统保留功能

5-X11:与run level3类似,但加载使用X Window

6-reboot :重新启动

7.init执行/etv/rc.d/rc.local文件

用户自定义开机启动程序

8.init执行终端机模拟程序mingetty来启动login进程,等待用户登陆

根据/etc/inittab的设置加载终端机或X Window界面

二、内核与内核模块

1.内核模块之间的依赖性 :

通过depmod创建/lib/modules/$(uname - r)/moudules.dep ,都过查看该文件来了解内核模块之间的依赖性

2.内核模块的查看 -- lsmod

3.内核模块的加载 -- insmod 和删除 -- rmmod

4.内核模块的额外参数设置 -- /etc/modprobe.conf

三、Boot Loader: Grub

1. MBR是整个硬盘的第一个sector内的一个块,充其量也就是446b大小,要将boot loader安装在这里,分成了两个阶段:Stage1 :执行boot loader主程序 (装载MBR中)Stage 2 : 主程序加载配置文件(menu.lst)

2. grub的配置文件/boot/grub/menu.lst
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  centos 初学者 linux