标签:linux启动过程
Linux系统启动流程
从11月底报名马哥的Linux培训班,12月初真正开始学习,已经过去一个多月的时间了,从学习Linux的发展史开始、跟着学习命令行、文件系统挂载与管理、目录、Bash Shell的基本特性等等,Linux真的是博大精深,今天以CentOS 5,CentOS 6的启动过程进行一下简单的总结。由于才疏学浅,知识所限,有些地方分析不妥之处还请各位高手不吝赐教。
系统启动过程主要经过以下几个流程:
POST》BootSequence(BIOS)》Bootloader(MBR)》Kernel(Ramdisk)》Rootfs(只读)》INIT
通过上述流程大概的了解了Linux从按下电源器开始,到用户登录界面的整个流程,接下来我们再补充几个比较重要的概念,它们是启动过程当中不可或缺的部分:
启动第三步:Boot loader
Boot Loader 就是在操作系统内核运行之前运行的一段小程序。通过这段小程序,我们可以初始化硬件设备、建立内存空间的映射图,从而将系统的软硬件环境带到一个合适的状态,以便为最终调用操作系统内核做好一切准备。
系统读取内存中的grub配置信息(一般为menu.lst或grub.lst),并依照此配置信息来启动不同的操作系统。
启动第五步:
1)Linux的运行级别(用户层init依据inittab文件设置运行级别)
功能:它是为了系统的运行或维护等应用目的而设定的: 0-6:7个级别 0 : 关机 1 : 单用户模式式(root,无需登录),single,维护模式 2 : 多用户模式,会启动网络功能,但不会启动NFS:维护模式 3 : 多用户模式,正常模式,文本界面 4 : 预留级别,功能跟级别3一样,通过不使用 5 : 多用户模式,正常模式,图形界面 6 : 重启 默认级别 3,5 切换级别 init # (#代表对应的级别号) 查看级别 [root@jimjimlv ~]# runlevel N 5 [root@jimjimlv ~]# who -r run-level 5 2016-01-15 17:07
2)不同运行级别的脚本程序
系统会运行rc0.d到rc6.d中的相应的脚本程序,来完成相应的初始化工作和启动相应的服务
存储位置
[root@jimjimlv ~]# ls /etc/rc.d/ init.d rc0.d rc1.d rc2.d rc3.d rc4.d rc5.d rc6.d rc.local
3)执行/etc/rc.d/rc.sysinit: 系统初始化脚本
(1)设置主机名 (2)设置欢迎信息 (3)激活udev和selinux (4)挂载/etc/fstab文件中定义的文件系统 (5)检测根文件系统,并以读写方式重新挂载根文件系统 (6)设置系统时钟 (7)激活swap设备 (8)根据/etc/sysctl.conf文件设置内核参数 (9)激活lvm及software raid设备 (10)加载额外设备的驱动程序 (11)清理操作
它的整个流程为:/sbin/init --> (/etc/inittab)-->设置默认运行级别-->运行系统初始脚本,完成系统初始化-->>关闭对应下需要关闭的服务,启动需要启动服务-->设置登录终端
以上总结只是描述Linux在启动过程中涉及的几大模块,每个大模块下还有很多的小模块,以下附上一张不错的Linux系统启动流程图:
参考文献:
http://blog.chinaunix.net/uid-23069658-id-3142047.html
http://blog.itpub.net/8111049/viewspace-680043
http://blog.chinaunix.net/uid-26495963-id-3066282.html
http://baike.baidu.com/subview/9485/9079238.htm
本文出自 “Near的家园” 博客,请务必保留此出处http://nearlv.blog.51cto.com/2432295/1735544
标签:linux启动过程
原文地址:http://nearlv.blog.51cto.com/2432295/1735544