码迷,mamicode.com
首页 > 系统相关 > 详细

Linux启动简单分析

时间:2014-08-29 23:53:38      阅读:507      评论:0      收藏:0      [点我收藏+]

标签:style   blog   http   color   os   io   ar   for   文件   

1. 概述

从Bootloader至init程序主要过程如下

++++++++++++++    ++++++++++++++++++    ++++++++++++++++++++++++++++++++++++++++++++++++++
|            | -> | kernel_entry() | -> | start_kernel() -> rest_init() -> kernel_init() |
============== -> ================== -> ==================================================
| BootLoader | -> |    MIPS        | -> |                    kernel                      |
++++++++++++++    ++++++++++++++++++    ++++++++++++++++++++++++++++++++++++++++++++++++++ 

kernel_init()首先尝试执行从bootloader传递的命令参数rdinit=、init=
如果失败,会依次尝试执行/sbin/init、/etc/init、/bin/init、/bin/sh、

以下是从UBoot传递的命令行实例
如console=ttyS0,115200 root=/dev/ram rw init=/linuxrc

2. busybox

在嵌入式系统中,init程序通常就是是busybox
而linuxrc则为busybox的符号链接

busybox的init程序,即init_main函数

init_main() -> parse_inittab() -> run_actions(SYSINIT)

3. inittab

文件/etc/inittab是Linux启动非常重要的文件

参考</etc/inittab文件分析> 或 <linux /etc/inittab文件>

这里关注以下action为sysinit的行
该行指定的脚本将完成系统的初始化过程

在ttylinux中,该行为

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

rc.sysinit完成的工作主要有
设置环境变量,加载文件系统。。。

其中值得关注的是启动服务

~~~~~~~~~~~~~ Part of /etc/rc.d/rc.sysinit ~~~~~~~~~~~~~
# *****************************************************************************
# Start the services.
# *****************************************************************************

for p in /etc/rc.d/rc.startup/*; do
    [[ -x ${p} ]] && ${p} start
done; unset p
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

而rc.startup目录下又包含如下脚本

$ ls -al /etc/rc.d/rc.startup
total 8
drwxr-xr-x    2 root     root          4096 Jul 29 07:33 .
drwxr-xr-x    5 root     root          4096 Jul 29 07:33 ..
lrwxrwxrwx    1 root     root            16 Jul 29 07:33 00.random -> ../init.d/random
lrwxrwxrwx    1 root     root            18 Jul 29 07:33 01.firewall -> ../init.d/firewall
lrwxrwxrwx    1 root     root            16 Jul 29 07:33 05.syslog -> ../init.d/syslog
lrwxrwxrwx    1 root     root            17 Jul 29 07:33 10.network -> ../init.d/network
lrwxrwxrwx    1 root     root            14 Jul 29 07:33 20.sshd -> ../init.d/sshd
lrwxrwxrwx    1 root     root            15 Jul 29 07:33 30.inetd -> ../init.d/inetd
lrwxrwxrwx    1 root     root            13 Jul 29 07:33 85.gpm -> ../init.d/gpm
lrwxrwxrwx    1 root     root            15 Jul 29 07:33 90.crond -> ../init.d/crond

可以看出ttylinux依次启动了脚本中指定的服务

Linux启动简单分析

标签:style   blog   http   color   os   io   ar   for   文件   

原文地址:http://www.cnblogs.com/hzl6255/p/3945854.html

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