免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 936 | 回复: 0
打印 上一主题 下一主题

Linux启动流程 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2008-11-11 12:57 |只看该作者 |倒序浏览
Linux启动流程
1. 从BIOS到KERNEL
   BIOS自检->MBR(GRUB)->KERNEL->KERNEL自解压->内核初始化->内核启动
2. 内核启动:创建1#进程并执行,由它创建若干内核线程(kernel thread),然后装入并执行程序/sbin/init(变成一个用户进程
)。此后,init根据/etc/inittab配置文件来执行相应的脚本进行系统初始化,如设置键盘、字体,装载模块,设置网络等
   对于Redhat来说,执行的顺序为:
   /etc/rc.d/rc.sysinit            # 由init执行的第一脚本
   /etc/rc.d/rc $RUNLEVEL          # init执行指定运行级别($RUNLEVEL为缺省的运行模式)的各脚本;
   /etc/rc.d/rc.local              #运行模式2、3、5时会运行的脚本
   /sbin/mingetty(或getty)        # 等待用户登录
   
   /etc/inittab中指定了系统的运行级别(RUNLEVEL),init根据运行级别启动相关的服务(一些后台进程),实现不同的功能。
   RUNLEVEL值为:0-6
   0:halt, 1:单用户,2:多用户,3:多用户并启动NFS服务
   4:保留,5:运行xdm(X window)以图形界面方式登录
   6:reboot
3、/etc/inittab文件
/etc/inittab的文件内容如下:
   # 设定系统开机预设的RUNLEVEL:
   id:3:initdefault:
   # 开始进行RUNLEVEL的服务启动前,使用来侦测与初始化系统环境的设定文件:
   si::sysinit:/etc/rc.d/rc.sysinit
   # 7 个不同 run level 的,需要启动的服务的 scripts 放置路径:
   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
   # 是否允许按下 [ctrl]+[alt]+[del] 就重新开机的设定项目:
   ca::ctrlaltdel:/sbin/shutdown -t3 -r now
   # 本机端终端机启动的个数:
   1:2345:respawn:/sbin/mingetty tty1
   2:2345:respawn:/sbin/mingetty tty2
   3:2345:respawn:/sbin/mingetty tty3
   4:2345:respawn:/sbin/mingetty tty4
   5:2345:respawn:/sbin/mingetty tty5
   6:2345:respawn:/sbin/mingetty tty6
   # 在 X Window (RUNLEVEL 5) 环境下的启动 script 设定项目:
   x:5:once:/etc/X11/prefdm -nodaemon
这个文件的语法是这样的:
   标识符:级别:init 的动作行为:指令项目
1. 标识符:
   最多四个字符,代表 init 的主要工作项目,只是一个简单的代表说明。
2. 级别:
   该项目在哪些 run level 底下进行的意思。如果是 35 则代表 runlevel 3 与 5 都会执行。
3. init 的动作行为:
   主要可以进行的动作项目意义有:
   initdefault    :代表预设的 run level 设定值;
   sysinit    :代表系统初始化的动作项目;
   ctrlaltdel    :代表 [ctrl]+[alt]+[del] 三个按键是否可以重新开机的设定;
   wait        :代表后面接的指令项目必须要执行完毕才能继续后面的动作;
   respawn    :代表后面接的, init 仍会主动的『重新』启动。
   更多的设定项目请参考 man inittab 的说明。
4. 指令项目:
   亦即应该可以进行的指令,通常是一些 script 啰。
说明:如根据上面的文件,init程序执行时根据/etc/inittab文件的内容,完成以下功能
      (1)获取RUNLEVEL(文件中的这一行 id:3:initdefault:)为3
      (2)执行rc.sysinit(文件中的这一行 si::sysinit:/etc/rc.d/rc.sysinit)
      (3)执行/etc/rc.d/rc3.d目录中的脚本(文件中的这一行 l3:3:wait:/etc/rc.d/rc 3,且因为本例RUNLEVEL为3)
      (4)然后设定是否允许按下 [ctrl]+[alt]+[del] 就重新开机(文件中的这一行 ca::ctrlaltdel:/sbin/shutdown -t3 -r now
,当然如果不允许,可把此行注释掉)
      (5)启动六个终端界面tty1-tty6
      (6)最后如果我们使用的是 run level 5 ,那么除了这六个终端机之外, init 还会执行 /etc/X11/prefdm -nodaemon 其主要
的功能就是在启动 X Window 啦!
               
               
               

本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u2/82873/showart_1404977.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP