码迷,mamicode.com
首页 > 其他好文 > 详细

kernel及系统初始化的过程

时间:2015-05-12 11:45:44      阅读:245      评论:0      收藏:0      [点我收藏+]

标签:kernel及系统初始化的过程

1.Kernel初始化的过程:

   a、设备探测

   b、驱动初始化(可能会从initrd(initramfs)文件中装载驱动模块)

   c、以只读挂载根文件系统;

   d、装载第一个进程init(PID:1)

   eint进程的配置文件/etc/inittab

   f、/etc/inittab文件的格式    

     id:runlevels:action:process

       id: 标识符

       runlevels: 在哪个级别运行此行

       action: 在什么情况下执行此行

       process: 要运行程序

      action:

       initdefault: 设定默认运行级别

       sysinit: 系统初始化

       wait: 等待级别切换至此级别时执行

       respawn: 一旦程序终止,会重新启动

      id:3:initdefault:  设定默认的启动级别

      si::sysinit:/etc/rc.d/rc.sysinit 设定系统初始化时执行的脚本

# System initialization.
si::sysinit:/etc/rc.d/rc.sysinit

l0:0:wait:/etc/rc.d/rc 0
l1:1:wait:/etc/rc.d/rc 1
l2:2:wait:/etc/rc.d/rc 2
l3:3:wait:/etc/rc.d/rc 3
l4:4:wait:/etc/rc.d/rc 4
l5:5:wait:/etc/rc.d/rc 5
l6:6:wait:/etc/rc.d/rc 6

2./etc/rc.d/rc.sysinit文件完成的任务:

    1、激活udev和selinux

    2、根据/etc/sysctl.conf文件,来设定内核参数

    3、设定时钟时钟

    4、装载键盘映射

    5、启用交换分区

    6、设置主机名

    7、根文件系统检测,并以读写方式重新挂载

    8、激活RAID和LVM设备

    9、启用磁盘配额

    10、根据/etc/fstab,检查并挂载其它文件系统

    11、清理过期的锁和PID文件

3./etc/rc.d/rc.sysinit脚本会根据运行级别选择执行对应目录下的脚本(服务启动或停止)  

l3:3:wait:/etc/rc.d/rc 3

运行级别为3 对应/etc/rc.d/rc3.d/目录下的文件,以K开头的服务被停止,S开头的服务开启(先停止后开启)关闭或启动的优先次序,数值越小越优先被选定

/etc/rc3.d 为链接文件指向/etc/rc.d/rc3.d

/etc/rc3.d/目录下文件为链接文件,源文件存放在/etc/rc.d/init.d/目录下

/etc/init.d指向/etc/rc.d/init.d

4.系统初始化

si::sysinit:/etc/rc.d/rc.sysinit

/etc/rc.d/init.d/目录下为所有的服务类脚本

注意:这两行前面一定要有#号

# chkconfig: 2345 9 91
# description: start and stop ISDN services

这两行用于在对应级别目录下创建相应的链接文件

# chkconfig: 2345 9 91

# chkconfig: runlevels SS KK

2345 代表在哪些级别下是启动的,runlevels表示默认创建为S*开头的链接,-表示没有级别默认为S*开头的链接,除此之外的级别默认创建为K*开头的链接

9 SS对应的启动优先级为SS所表示的数字

91 KK对应关闭优先次序为KK所表示的数字

# description: start and stop ISDN services

用于说明此脚本的简单功能; \用于续行

执行chkconfig命令时有这两行的脚本会自动创建相应的链接文件

5./var/lock/目录下

服务脚本启动后会在/var/lock/目录或/var/lock/subsys/目录下创建相应的锁文件

chkconfig --list: 查看所有独立守护服务的启动设定,独立守护进程

chkconfig --list SERVICE_NAME

将指定的脚本转化为服务脚本,并且为其在可运行的相应级别目录下创建链接文件

chkconfig --add SERVICE_NAME

移除相应目录下所有链接文件

chkconfig --del SERVICE_NAME


指定服务脚本在哪些级别下开启或关闭

chkconfig [--level RUNLEVELS] SERVICE_NAME {on|off}

如果省略级别指定,默认为2345级别

6./etc/rc.d/rc.local文件

系统最后启动的一个服务,准确说,应该执行的一个脚本

7./etc/inittab文件

    /etc/inittab的任务:

      1、设定默认运行级别

      2、运行系统初始化脚本

      3、运行指定运行级别对应的目录下的脚本

      4、设定Ctrl+Alt+Del组合键的操作

      5、定义UPS电源在电源故障/恢复时执行的操作

      6、启动虚拟终端(2345级别)

      7、启动图形终端(5级别)

本文出自 “珞辰的博客” 博客,请务必保留此出处http://luochen2015.blog.51cto.com/9772274/1650460

kernel及系统初始化的过程

标签:kernel及系统初始化的过程

原文地址:http://luochen2015.blog.51cto.com/9772274/1650460

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!