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
一、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
相关文章推荐
- Linux 学习笔记 -- 第五部分 Linux 系统管理员 -- 第20章 启动流程、模块管理与 Loader
- Note For Linux By Jes(14)-启动流程、模块管理与 Loader
- 启动流程、模块管理与 Loader
- linux开机流程、模块管理与Loader(续)
- 第二十章、启动流程、模块管理与 Loader
- 「学习笔记——Linux」Linux开机流程,模块管理与Loader
- 第二十章、启动流程、模块管理与 Loader
- 第二十章、启动流程、模块管理与 Loader
- Liunx的启动流程、模块管理与Loader
- 第二十章、启动流程、模块管理与 Loader
- Linux系统服务 4 ---- 启动流程+模块管理与loader
- Linux系统启动流程、内核及模块管理
- linux开机流程、模块管理与Loader(再续)
- 鸟哥的linux私房菜——第20章 启动流程、模块管理与loader
- Linux的启动流程、模块管理与boot Loader
- LINUX开机流程 模块管理与Loader
- 33.启动流程,模块管理与 Loader
- 拜师鸟哥之linux学习体会(15)——开机流程、模块管理与Loader
- 鸟哥的Linux私房菜(基础篇)- 第二十章、启动流程、模块管理与 Loader
- linux开机流程、模块管理与Loader