linux基础:5、linux启动过程

linux启动过程

1BIOSbasic in out system

通电检查硬件,然后加载第一可用启动项的mbr

#可通过BIOS设置各种介质存储设备的启动顺序,比如:cdrom、disk、usb

2MBRmain boot recorder

磁盘的第一个扇区,共512字节,446字节的boot程序空间,64字节的分区表,2字节的校验位。

执行MBR内保存的boot loader程序,一般为GRUB,通过GRUB来找到kernelinitrdcentos6里面此文件更名)并将其拷贝到内存解压,控制权交给kernel

3kernel接管系统后,会执行ramdisk,通过ramdisk识别并释放文件系统,从而加载硬件驱动,此时硬件系统准备完毕,接下来系统会启动init进程

==================================================================
#看看boot文件夹里的核心文件
[root@san01 ~]# ls /boot | sort
config-2.6.32-431.el6.i686
efi
grub
initramfs-2.6.32-431.el6.i686.img      #虚拟文件系统ramdisk使用的镜像
lost+found
symvers-2.6.32-431.el6.i686.gz
System.map-2.6.32-431.el6.i686
vmlinuz-2.6.32-431.el6.i686            #启动的核心文件

#还记得我们在grub界面修改启动参数时的那三行命令吗?那里指定的就是这两个文件!
==================================================================

4、第一个进程init启动

作用就是要准备软件执行环境(主机名称、网络、语言环境、档案系统格式和其他一些服务)。

配置文件:/etc/inittab(按照此配置文件里,启动相应runlevel的服务进程)。

(例如启动/etc/rc3.d/下面的程序,/etc/rc3.d/下的文件名称一种K开头,意为kill,不启动,一种以S开头,意为start,根据S后面的两位数字的大小进行由小到大的顺序启动),至此软件运行环境准备完毕。

==================================================================
#查看下默认的运行级别
[root@san01 ~]# cat /etc/inittab |grep -v '^#'
id:3:initdefault:

#看看运行级别3目录下开机启动的服务是什么吧
[root@san01 ~]# ls /etc/rc3.d/ | grep '^S'
S08ip6tables
S08iptables          #防火墙服务
S10network           #网络服务
S11auditd
S12rsyslog
S25netfs
S26udev-post
S55sshd              #ssh守护进程
S80postfix
S90crond             #日常计划任务
S99local
==================================================================

5user的自定义启动项配置文件运行/etc/rc.local

#centos6.5中的路径是/etc/rc.local

#此配置文件可以自定义你希望开机执行的命令及脚本

==================================================================
[root@san01 ~]# cat /etc/rc.local
#!/bin/sh      #这里的含义是使用bash来当作命令解释器
#
# This script will be executed *after* all the other init scripts.
# You can put your own initialization stuff in here if you don't
# want to do the full Sys V style init stuff.

touch /var/lock/subsys/local      #开机会执行这条命令
===================================================================

6、启动终端或x-window

配置文件:/etc/inittab

根据上面的配置文件,启动/sbin/mingetty,启动六次,也就是启动6个终端

至此,系统显示登陆界面,启动过程准备完成。


你可能感兴趣的:(linux,启动过程)