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:关键是 概念清晰,再进行有效的训练