名词:image(镜像)
u-bootlinux
全称Universal BootLoader,u-boot是一种广泛用于嵌入式系统中的Bootloader,Bootloader是在操做系统运行以前执行的一小段程序,经过它,咱们能够初始化硬件设备、创建内存空间的映射表,从而创建适当的软硬件环境,为最终调用操做系统内核作好准备。Boot Loader的主要运行任务就是将内核映象从硬盘上读到RAM中,而后跳转到内核的入口点去运行,即开始启动操做系统。系统在上电或复位时一般都从地址0x00000000处开始执行,而在这个地址处安排的一般就是系统的Boot Loader程序。android
linux kernelwindows
Linux内核[kernel]是整个操做系统的最底层,它负责整个硬件的驱动,以及提供各类系统所需的核心功能,包括防火墙机制、是否支持LVM或Quota等文件系统等等,若是内核不认识某个最新的硬件,那么硬件也就没法被驱动,你也就没法使用该硬件。安全
其实就是安卓手机系统(安卓文件系统);安卓手机系统为何叫ROM?能够说不只仅是安卓系统叫作ROM,目前全部的手机系统,均可以叫作ROM(包括但不局限于苹果、塞班、黑莓)这是因为ROM是只读内存(Read-OnlyMemory)的简称。特色是只能读而不能快速改写。所以全部刷写进不可改变或擦除的系统咱们均可以将之成为ROM。网络
uboot是个引导启动程序。BIOS自检完成后就把电脑控制权交给uboot,由uboot来加载并引导操做系统运行。
内核就是最最最核心的那部份。操做系统内核就是操做系统的最最最最核心的那些程序。新安装的操做系统中,一些自带的小工具啊,小游戏啊,甚至连键盘鼠标控制功能,这些都不属于内核。内核是不包括硬件驱动程序的。
操做系统就是控制计算机硬件的软件系统。它与内核的区别是它包含硬件驱动和一些基本的实用功能。
根文件系统这个名词不多出如今windows中。在计算机存储中,目录结构都是以树形结构表示的,根就是指这棵树的根部。其余全部目录都是在这个“根”上面逐级分配而来。“根文件系统”由于你加了“系统”二字,因此能够解释为是指“整棵树”,整个“树形结构的文件系统”
它们之间的关系是:BIOS自检---uboot引导----加载内核----操做系统启动---启动完成,系统待机。这几个步骤所须要用到的文件与程序什么的所有存贮在文件系统中。在这几个名词来讲,文件系统能够独立存在,但其余几样则没法脱离文件系统而存在。
操做系统是一个用来和硬件打交道并为用户程序提供一个有限服务集的低级支撑软件。
内核指的是一个提供硬件抽象层、磁盘及文件系统控制、多任务等功能的系统软件。内核是一个操做系统的核心,是操做系统最基本的部分。它负责管理系统的进程、内存、设备驱动程序、文件和网络系统等,决定着系统的性能和稳定性。它是为众多应用程序提供对计算机硬件的安全访问的一部分软件,这种访问是有限的,而且内核决定一个程序在何时对某部分硬件操做多长时间。直接对硬件操做是很是复杂的,因此内核一般提供一种硬件抽象的方法来完成这些操做。硬件抽象隐藏了复杂性,为应用软件和硬件提供了一套简洁,统一的接口,使程序设计更为简单。工具
PC机的启动过程?性能
(1)部署:典型的PC机的BIOS程序部署在PC机主板上(随主板出厂时已经预制了),操做系统部署在硬盘上,内存在掉电时无做用,CPU在掉电时不工做。spa
(2)启动过程:PC上电后先执行BIOS程序(实际上PC的BIOS就是NorFlash),BIOS程序负责初始化DDR内存,负责初始化硬盘,而后从硬盘上将OS镜像读取到DDR中,而后跳转到DDR中去执行OS直到启动(OS启动后BIOS就无用了)操作系统
典型嵌入式linux系统启动过程?命令行
(1)典型嵌入式系统的部署:uboot程序部署在Flash(能做为启动设备的Flash)上、OS部署在FLash(嵌入式系统中用Flash代替了硬盘)上、内存在掉电时无做用,CPU在掉电时不工做。
(2)启动过程:嵌入式系统上电后先执行uboot、而后uboot负责初始化DDR,初始化Flash,而后将OS从Flash中读取到DDR中,而后启动OS(OS启动后uboot就无用了)
总结:嵌入式系统和PC机的启动过程几乎没有两样,只是BIOS成了uboot,硬盘成了Flash。
android系统启动过程?
(1)Android系统的启动和Linux系统(前面讲的典型的嵌入式系统启动)几乎同样。几乎同样意思就是前面彻底同样,只是在内核启动后加载根文件系统后不一样了。
(2)能够认为启动分为2个阶段:第一个阶段是uboot到OS启动;第二个阶段是OS启动后到rootfs加载到命令行执行;如今咱们主要研究第一个阶段,android的启动和linux的差异在第二阶段。