linux开机流程、模块管理与Loader(续)

1.init处理系统初始化流程:

1)/etc/rc.d/rc.sysinit这个脚本用来设定系统环境,具体为:

取得网络环境与主机类型(读取/etc/sysconfig/network取得主机名与默认网关等网络环境)

测试与挂载内存装置/proc及USB装置/sys(除了挂载内存装置/proc外,还会主动侦测系统上是否具有usb的装置,若有则会注定加载usb的 驱动程序,并尝试挂载usb的文件系统)

决定是否启动SELinux

启动系统的随机数生成器

设定终端机字形

设定显示于开机过程中欢迎画面

接口设备的侦测与PnP(Plug and Play)参数的测试,根据核心在开机时侦测的结果(/proc/sys/kernel/modprobe)开始进行ide/scsi/网络/音效等接口设备的侦测,以及利用已加载的核心模块进行PnP装置的参数测试

用户自定义模块的加载,使用者可以在/etc/sysconfig/modules/*.moudles加入自定义的模块,则此时会被加载到系统当中

加载核心相关的设定,系统会主动去读取/etc/sysctl.conf这个档案的设定值,使核心功能成为我们想要的样子

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

初始化软件磁盘阵列:主要是透过/etc/mdadm.conf来设定好的

初始化LVM的文件系统功能

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

进行磁盘配额quota的转换(非必要)

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

启动quota功能:所以我们不需要自动定义quotaon的动作

启动系统虚拟随机生成器

清除开机过程当中的临时文件

将开机相关信息加载/var/log/dmesg档案中

2.启动系统服务与相关配置文件

加载核心让整个系统准备接受指令来工作,再经过/etc/rc.d/rc.sysinit的系统模块与相关硬件信息的初始化后,你的CentOS系统应该已经顺利工作了。只是,我们还的要启动系统所需的各项服务,这样主机才能提供我们相关的网络或者是主机功能。

3./etc/inittab中的实例:“l5:5:wait:/etc/rc.d/rc 5”解读:

1)透过外部第一号参数来取得想要执行的脚本目录。即由/etcrc.d/rc 5可以取得/etc/rc5.d/这个目录来准备处理相关的脚本程序

2)找到/etc/rc5.d/K??*开头的档案,并进行/etc/rc5.d/K??* stop

3)找到/etc/rc5.d/S??*开头的档案,并进行/etc/rc5.d/S??* start

/etc/rc5.d/S??*底下实际是一些链接档,链到/etc/init.d/目录下对应的服务程序

4.在完成预设runlevel指定的各项服务启动后,就会执行/etc/rc.d/rc.local这个档案用于用户设定自己想要的开机后执行的程序或服务。

5.在完成了系统所有服务的启动后,接下来Linux就会启动终端机或者Xwindow来等待使用者登入。另外在/etc/inittab中“x:5:respawn:/etc/X11/prefdm -nodaemon”这句的意思是当后面的指令被终止(terminal)时,init会主动的重新启动该项目,这就是为何我们登入tty1终端接口后,以exit离开后,系统还是会重新等待用户输入的原因。

你可能感兴趣的:(linux,loader,模块管理,开机流程)