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

一、通用操作系统的启动过程:

不同的处理器和硬件系统会采用不同的启动策略,从而具体的启动过程会有所差异。

但无论差异如何,从计算机系统的角度来看,启动过程一般分为三个步骤:

                 开机并执行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相关文档。

时间: 2024-08-07 00:17:41

Linux学习之旅(二) --- Linux启动过程的相关文章

Linux学习笔记之二————Linux系统的文件和目录

一.Windows和Linux文件系统区别 1.在 windows 平台下,打开"计算机",我们看到的是一个个的驱动器盘符: 每个驱动器都有自己的根目录结构,这样形成了多个树并列的情形,如图所示:  2.在 Linux 下,我们是看不到这些驱动器盘符,我们看到的是文件夹(目录): 二.类Unix系统目录结构 1.ubuntu没有盘符这个概念,只有一个根目录/,所有文件都在它下面: 2.Linux 目录 /:根目录,一般根目录下只存放目录,在Linux下有且只有一个根目录.所有的东西都是

Linux学习之十二-Linux文件属性

Linux文件属性 在Linux中,对于每个文件都有相应属性,以Linux中root用户家目录下新建文件a.txt为例,在a.txt中输入几个字符 使用命令ls -ild a.txt查看文件的权限等 [[email protected] ~]# ls -ild a.txt 1057689 -rw-r--r--. 1 root root 8 Apr 9 19:42 a.txt 说明: 第一列:1057689    文件的inode号 第二列第1位:-        文件类型,常见的文件类型有 d:

Linux学习之旅(一)Linux常用命令

pwd命令  显示当前所在的目录 ls命令  显示目录下的子目录和文件 ls 显示当前目录下的子目录和文件 ls -a 显示当前目录下的所以子目录和文件(包括隐藏文件和文件夹) ls -al    显示当前目录下的所以子目录和文件(包括隐藏文件和文件夹)的详细列表   ls  /路径/路径 -al 显示指定目录下的所以子目录和文件(包括隐藏文件和文件夹)的详细列表 cd命令    切换目录 cd /目录    切换至指定的绝对路径 cd 目录 切换至指定的相对路径(相对于当前目录) 当前在/op

马哥Linux学习笔记之二——网络

1.MAC(Media Access Control,介质访问控制) 是解决底层数据通信冲突的解决方案.因此,给每一个接入这样网络的主机一个id标示符,这个id标示符就叫做MAC地址. 2.CSMA/CD(Carrier Sense Multipath Access Collision Detection,载波侦听多路访问冲突检测),线型网络 以太网Ethernet最核心的标志. 3.Token-Ring(IBM)技术 环形网络解决冲突的方案.但是由于IBM的专利限制没能推广开来. 4.星形网络

【Linux学习之旅】[转]度娘的云:百度云Linux客户端Bcloud

云时代,各种网盘.云同步层出不穷.薄荷开源网从 Linux 桌面的角度也对此关注颇多,先后测试.使用过云诺.Wuala.金山快盘.坚果云等对 Linux 支持良好的网盘.作为业界大佬,百度云网盘容量大.用户多.速度快.不限流量,可惜没有 Linux 客户端. 如今,曾开发 Linux 下的酷我播放器 KWplayer 的作者 Liulang,写了一款百度云 Linux 客户端–Bcloud.薄荷开源网还魂草深感敬佩!当然,我们要做的就是加大宣传推介力度,让人们知道如今的 Linux 早已不是昔日

Linux学习之CentOS(二)----远程登录管理工具SecureCRT的使用

[声明] 欢迎转载,但请保留文章原始出处→_→ 生命壹号:http://www.cnblogs.com/smyhvae/ 文章来源:http://www.cnblogs.com/smyhvae/p/3919940.html 联系方式:[email protected] [正文] 虚拟机版本:VMware Workstation_10.0.3 Linux系统版本:CentOS_6.5(64位) 一.前言: 前几天做了一回小白,安装了上个月发布的最新版CentOS 7 ,发现在学习的时候有很多地方和

【Linux学习之旅】之Ubuntu14.04 Docky无法锁定Chrome解决之道

1) Install gconf-editor (sudo apt-get install gconf-editor). 2) Press ALT+F2 and type gconf-editor. 3) Navigate to /apps/docky-2 - note that Docky should not be running (or it may override your changes) and that any changes made require a restart of

【Linux学习之旅】之Ubuntu14.04虚拟机VirtualBox的上网和USB问题

无法上网问题: sudo subl /etc/network/interfaces 增加以下内容: # The primary network interface auto eth0 iface eth0 inet dhcp 无法使用USB问题: sudo /usr/sbin/usermod -G vboxusers -a username [Linux学习之旅]之Ubuntu14.04虚拟机VirtualBox的上网和USB问题,布布扣,bubuko.com

【Linux学习之旅】之Ubuntu14.04字体难看解决之道

安装Ubuntu14.04后使用中文作为本地语言,更新系统后会安装2个字体(fonts-arphic-ukai,fonts-arphic-uming),应该是楷体,非常难看,而且无法更改,在终端执行以下命令删除即可: sudo apt-get remove fonts-arphic-ukai fonts-arphic-uming 嘿嘿,是不是可以更改字体了. [Linux学习之旅]之Ubuntu14.04字体难看解决之道,布布扣,bubuko.com

【Linux学习之旅】之Ubuntu14.04安装及美化之后要做的事

以上是我的Ubuntu里安装的一些软件. 1)卸载不需要的软件,在启动器里右键单击要卸载的软件即可. 2)升级你的软件版本 sudo apt-get update && sudo apt-get upgrade 3)安装Fcitx sudo apt-get install fcitx fcitx-googlepinyin 4) 安装samba samba服务器安装后,就可以与你所在的网络中的其他用户共享文件了. sudo apt-get install samba 5)安装媒体工具 sud