免费注册 查看新帖 |

Chinaunix

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

根文件系统的启动分析 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2008-04-25 10:52 |只看该作者 |倒序浏览
根文件系统的启动分析
creator
sz111@126.com
        一般的系统是先启动/sbin/init,但是也可通过启动参数指定init=来确定,
如:我的系统就是制定的init=/linuxrc,因为文件系统是采用busybox的,而linuxrc
也是一个指向busybox的文件,不过不确认它指向具体哪个指令。不过可能是/sbin/init。
init进程的主要任务是按照inittab文件所提供的信息创建进程,由于进行系统初始
化的那些进程都由init创建,所以init进程也称为系统初始化进程。
    如我的inittab:
::sysinit:/etc/init.d/rcS
::respawn:-/bin/login
::restart:/sbin/init
::ctrlaltdel:/bin/reboot
::shutdown:/bin/umount -a -r
::shutdown:/sbin/swapoff -a
inittab的格式如下:
id:rstate:action:process
1.id字段是最多4个字符的字符串,用来唯一标志表项。
2.rstate(run state)字段定义该记录项被调用时的运行级别,rstate可以由一个或多个运行级别构成,
也可以是空,空则代表运行级别0~6。当请求init改变运行级别时,那些rstate字段中不包括新运行级
别的进程将收到SIGTERM警告信号,并且最后被杀死;只有a、b、c启动的命令外(a、b、c不是真正的运行级别)
3.action字段定义了该进程应该运行在何种状态下:
    代码:
    boot        在系统启动时运行,忽略runlevel
    bootwait    在系统启动时运行,init等待进程完成。忽略runlevel
    ctrlaltdel    当Ctrl+Alt+Del三个键同时按下时运行,把SIGINT信号发送给init。忽略    runlevel
    initdefault    不要执行这个进程,它用于设置默认runlevel
    kbrequest    当init从键盘中收到信号时运行。这里要求键盘组合符合KeyBoardSigral(参见/usr/share/doc/kbd-*关于键盘组合的文档)
    off        禁止进入,因此该进程不运行
    once        每一个runlevel级别运行一次
    ondemand    当系统指定特定的运行级别A、B、C时运行
    powerfail    当init收到SIGPWR信号时运行
    powerokwait    当收到SIGPWD信号且/etc/文件中的电源状态包含OK时运行
    powerwait    当收到SIGPWD信号,并且init等待进程结束时运行
    respawn        不管何时终止都重新启动进程
    sysinit        在运行boot或bootwait进程之前运行
    wait        运行进程等待输入运行模式
    process 字段包含init执行的进程,该进程采用的格式与在命令行下运行该进程的格式一样,
    因此process字段都以该进程的名字开头,紧跟着是运行时,紧跟着是运行时要传递给该进程的参数。
    比如/sbin/shutdown -t3 -r now,该进程在按下Ctrl+Alt+Del时执行,在命令行下也可以直接输入
    来重新启动系统。
4.Process字段中进程可以是任意的守候进程、可执行脚本或程序。
另外:在任何时候,可以在文件inittab中添加新的记录项,级别Q/q不改变当前的运行级别,
重新检查inittab文件,可以通过命令init Q或init q使init进程立即重新读取并处理文件inittab.
他会先执行/etc/init.d/rcS
#! /bin/sh
/bin/mount -a
mdev -s
而mount -a会执行/etc/fstab
proc        /proc    proc    defaults    0    0
none        /tmp    ramfs    defaults    0    0
mdev        /dev    ramfs    defaults    0    0
sysfs        /sys    sysfs    defaults    0    0
挂载一些ramfs。
               
               
               

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

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP