Linux的开机启动流程
来源:互联网 发布:java 线程并发控制 编辑:程序博客网 时间:2024/05/21 02:36
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的开机启动流程
- Linux 开机启动流程
- linux开机启动流程
- Linux开机启动流程
- Linux开机启动流程
- linux开机启动流程
- linux 开机启动流程
- linux开机启动流程
- linux 开机启动流程
- Linux开机启动流程
- linux开机启动流程
- linux系统的开机引导、启动流程
- Linux 的开机启动流程详解
- Linux 的开机启动流程详解
- linux开机启动详细流程
- linux开机启动详细流程
- linux开机启动详细流程
- linux开机启动详细流程
- Matlab r2012b 安装后出现错误 License checkout failed. License Manager Error-96
- php和js如何通过json互相传递数据(转)
- Maven以及其Eclipse插件m2eclipse的安装
- 黑马程序员——JAVA学习日志7
- C 链表模板
- Linux的开机启动流程
- http get 和 post
- ubuntu root密码丢失-恢复
- Commons lang3 包ArrayUtils类使用
- Label javafx
- FLEX时间运算例子
- 使用Nexus2.x为Maven3.x搭建私服构件仓库
- 深入理解Java内存模型
- rqnoj-5