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

Linux学习之旅(二) --- Linux启动过程

时间:2015-10-12 12:28:48      阅读:238      评论:0      收藏:0      [点我收藏+]

标签:

一、通用操作系统的启动过程:
     不同的处理器和硬件系统会采用不同的启动策略,从而具体的启动过程会有所差异。
     但无论差异如何,从计算机系统的角度来看,启动过程一般分为三个步骤:
                      
                 开机并执行bootloader程序     ---->     操作系统内核初始化     ---->     执行第一个应用程序
 
     大致流程:
              1、开机,系统供电,此时硬件电路会产生一个确定的复位时序,保证CPU是最后一个被复位的器件
              2、当正确完成复位后,CPU开始执行第一条指令,该指令所在的内存地址会因为CPU的不用而不同,但是一定是固定的。这个地址由CPU的制
                   造者指定。这个固定的地址所保存的程序往往被成为:“引导程序”(Boorloader),因为其作用是装载真正的用户程序;
              3、如何加载这个程序,是个策略问题,装载方式多样。但是,无论硬件上使用何种接口装载,装载过程必须提供以下信息,具体包括:
                            · 从哪里读取用户程序?
                            · 用户程序的长度是多少?
                            · 装载完用户程序后,应该跳转到哪里,即用户程序的执行入口在哪里?
              4、执行内核程序:初始化各种硬件,然后建立各种内部数据结构,这些数据将用语多线程调度及内存的管理等;
              5、运行Home程序:如Windows下的桌面,Linux下的Terminal;
 
     上面是从通用操作系统的角度分析了Linux的启动过程,下面,具体来看Android所使用的Linux内核的启动过程。
二、Android系统的Linux内核的启动过程:
     因为目前的Android系统多运行在ARM处理器之上,因此,下面主要分析ARM处理器上的Linux的启动过程。
     我们先来区分三个概念:ARM、处理器、CPU
     (1)ARM:一种微处理器内核的架构,
     (2)处理器:一种统称,可以指具体的CPU芯片,它包含CPU、片上内存、片上外设接口等不同的硬件逻辑,所以严格来说,处理器不等同于CPU;
     (3)CPU:CPU是处理器内部的中央处理单元的缩写,CPU可以按照类型分为短指令集架构长指令集架构两大类。ARM就属于短指令集架构。
 
    流程:
    ARM复位  -->  执行其片上ROM中的一小块程序(即Bootloader)-->  装载uboot或者fastboot程序(初始化硬件设备,提供一些调试功能)  -->  装载Linux内核  -->  进行内核初始化
 
                                                                                               Linux内核的启动步骤
技术分享
技术分享
  在Linux内核启动过程中,存在一个 init.rc 文件,此文件在Android手机中的系统根目录下,可以使用adb pull命令提取该文件。
  . /adb  pull  /init.rc  ~/Desktop
  init.rc 的内容格式类似于一种脚本,但是它却不是标准的Linux脚本,而是仅用于启动的脚本。关于它的完整格式,可以参考Linux相关文档。

Linux学习之旅(二) --- Linux启动过程

标签:

原文地址:http://www.cnblogs.com/pepsimaxin/p/4871034.html

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