linux与文件系统的关系

    1   运行linux  必须要有 linux内核 和 文件系统

    2   linux是在运行的最后才挂载文件系统(就是所有驱动初始化完成以后,最后一步才挂载文件系统)

几个基本概念

    zImage就是内核,运行起来以后挂载 1 和 2   (ramdisk-uboot.img,  system.img), 他们两都是文件系统,加起来就是个Android

换句话说:linux内核先运行,运行起来以后,再挂载一个文件系统,这个系统就是Android系统

  QT和Android系统一样,其实都算是个文件系统,而QT和Android的底层都是Linux内核,就是那个zImage

  ubuntu也是这样,只是linux内核起来以后挂载的一个文件系统,这几套系统底层全是linux内核,就是那个zImage

 

开发板一开机以后先运行什么?

     先运行uboot,会看到串口终端中的打印信息,

几个基本概念

从打印的信息中就可以看到,uboot检测内存,存储等设备,并且设置处理器等设备的时钟,uboot最后一步,等待你敲击任何键盘,让他停下来,如果不敲击,就开始引导内核,就是把zImage那个文件拷贝到内存中,并运行,这样就开始到内核中去执行了,从打印的信息 starting kernel。。。 就知道uboot已经运行结束,紧接着就开始zImge的表演了

几个基本概念

   从这可以看到 内核不断地打印出各种各样的外部设备信息,说明它在对各种外设进行驱动初始化,例如

SPI初始化

几个基本概念

蓝牙初始化

几个基本概念

dm9621以太网初始化等等

几个基本概念

内核就是硬件层和上层的抽象层 它专门处理硬件信息,也就是挂载文件系统,文件系统类似于windows中的文件管理器

几个基本概念

    zImage,也就是Linux内核,它执行到最后,挂载一个文件系统,就能变出Android系统?

    实际上,Linux内核最后挂载那个文件系统,不仅仅是挂载

    还要做什么呢,执行文件系统里的应用程序!

    执行着 。。。执行着。。。。执行了一个又一个应用程序。。。。

    Android的界面出来了!!

实际上,你真的可以把Android看做Linux上面跑的一个应用程序!

Android就是一个在Linux内核上跑的一个巨大应用程序!

Android这个应用程序,就放在了Linux内核最后挂载的那个文件系统里面

 

1:那个内核zImage,所有的驱动都在那里面,

2:Android 包含在那两个文件系统里面(ramdisk-uboot.img,  system.img)

3:然后学会这几个文件的烧写,也就是刷机

4:再就是编译,编译出这几个文件

5:等这些都会玩了,就开始深入到内核内部,看看里面五花八门的驱动到底有哪些,慢慢的学习,必须亲自搞畸变,这样才会熟练

6:关键是  概念清晰,再进行有效的训练

相关文章: