Chinaunix首页 | 论坛 | 博客
  • 博客访问: 196116
  • 博文数量: 20
  • 博客积分: 45
  • 博客等级: 民兵
  • 技术积分: 346
  • 用 户 组: 普通用户
  • 注册时间: 2012-12-23 14:37
文章分类
文章存档

2016年(2)

2015年(3)

2014年(11)

2013年(4)

我的朋友

分类: LINUX

2014-05-15 12:58:53

开门见山:

1、嵌入式linux启动第一步----Boot Loader
    Boot Loader在这里我就不细说了,详细分析起来的话有很多内容,网上也有很多讲解很详细的文章。这段小程序中我们可以初始化硬件设备、建立内存空间的映射图,将系统的软硬件环境带到一个合适的状态,以便为最终调用操作系统内核做好一切准备。

2、嵌入式linux启动第二步----加载内核
    假如你是从u-boot启动的话,可能会有很多方式来实现内核的加载。系统读取内存映像,并进行解压缩操作,此时屏幕一般会有一些供调试用的打印信息。内核解压好之后,系统将解压后的内核放在内存之中,并调用start_kernel()函数来启动一系列的初始化函数并初始化各种设备,完成Linux核心环境的建立。至此Linux内核已经建立起来了,也就是说核心的任务调度、多用户什么的功能都齐全了。可能有人会问我们在Boot Loader里面不是已经初始化了硬件了么?怎么还要初始化设备。这里原因说不好,Boot Loader里面确实是初始化了一些硬件设备,但是那些初始化只是临时的,系统起来之后的初始化会覆盖掉。你可以理解为Boot Loader里面初始化算是游击、土八路,真正系统起来才是正规军。

3、嵌入式linux启动第三步----用户层init依据inittab文件来设定运行等级
    内核加载后,第一个运行的程序便是/sbin/init,该文件会读取/etc/inittab文件,并依据此文件来进行初始化工作。其实/etc/inittab文件最主要的作用就是设定Linux的运行等级,其设定形式是“xxx1:xxx2:xxx3:xxx4”其中xxx1是指入口标识符,xxx2是指init所处的运行等级,xxx3是指action,描述process的运行方式,xxx4是指process。
    运行等级设定如下:
    0:关机
    1:单用户模式
    2:无网络支持的多用户模式
    3:有网络支持的多用户模式
    4:保留,未使用
    5:有网络支持有X-Window支持的多用户模式
    6:重新引导系统,即重启

4、嵌入式linux启动第四步----init进程执行rc.sysinit
    在设定了运行等级之后,Linux系统执行的第一个用户文件就是/etc/rc.d/rc.sysinit脚本程序,它做的工作非常多,包括设定PATH、设定网络配置(/etc/sysconfig/network)、启动swap分区、设定/proc等等。

5、嵌入式linux启动第五步----启动内核模块
    依据/etc/modules.conf文件或/etc/modules.d目录下的文件来装载内核模块。

6、嵌入式linux启动第六步----执行不同运行级别的脚本程序
    根据不同的级别设置,运行rc0.d到rc6.d中的相应的脚本程序,来完成相应的初始化工作和启动相应的服务。

7、嵌入式linux启动第七步----执行/etc/rc.d/rc.local
    这是linux留给用户进行个性化的地方。可以把想设置和启动的东西放到这里。

8、嵌入式linux启动第八步----执行/bin/login程序,进入登陆状态
    

阅读(5218) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~