Linux 内核、uboot、文件系统之间的关系

通过接触Linux系统我们发现Linux 这个操作系统很奇怪,必须要挂一个操作系统,像有些系统就就不需要,比如Vxworks、UCos。

但是Linux 什么时候挂载文件系统呢?是一开始就挂载还是最后才挂载呢? 其实,是在Linux是在运行的最后才挂载文件系统的!这个最后是指开机初始化的最后。

所有的驱动都是内核里面

内核就是硬件层和上层的抽象层,它专门处理硬件信息。

文件系统是操作系统用于明确存储设备(常见的是磁盘,也有基于NAND Flash的固态硬盘)或分区上的文件的方法和数据结构;即在存储设备上组织文件的方法。操作系统中负责管理和存储文件信息的软件机构称为文件管理系统,简称文件系统。

了解他们的关系,我们从上电启动开始说起。

这个对于接触过开发板的开发者来说都知道,上电后先执行的那肯定是uboot,uboot 在运行的时候,我们会看到一些打印的信息,这些信息其实就是UBOOT检测内存,存储等设备,并且设置处理器等设备的时钟...... ;在我们启动开发板的时候我们会发现,Uboot到最后会留给我们几秒钟的时间,等待我们去敲击键盘,让他停下来,然后我们可以去做一些其他操作,如果不敲击呢?此时他就会引导内核,也就会把内核文件(zlmage文件)拷贝到内存并去运行,看串口的打印信息我们就会发现,会先打印 starting kernel......,此时,uboot已经寿终正寝了,紧接着内核上场了。往下看打印信息,你会发现内核不断打印出各种外部设备的信息,这就是对各种外设的驱动进行初始化,让各个外部设备各就各位,包括以太网、蓝牙、SPI等。接下来,就是挂载文件系统,文件系统大家肯定都有过接触,就是类似于Windows的文件管理器。实际上,Linux 内核最后挂载的文件系统不仅仅是挂载,还执行了文件系统里面的程序!就好比安卓系统,难道把文件系统挂载上去就出现安卓系统了吗?肯定不是,执行文件系统里一个也有一个的应用程序,最后安卓系统的界面才出来!实际上,可以把安卓系统看作是在Linux 上跑的一个应用程序

一、Linux 必须要挂载一个文件系统

二、Linux启动到最后,等所有驱动初始化完成以后,最后一步才挂载文件系统。

对于安卓和Qt系统 ,其实都算是个文件系统,无论是安卓还是Qt 它们的底层都是Linux内核,而它们又都是在Linux内核起来以后挂载的文件系统。

 

你可能感兴趣的:(arm,Linux,&,Ubuntu)