内核与文件系统

内核与文件系统

1.存储介质和文件系统的关系

  • mmc设备专门有一个扇区用来描述块设备的分区信息的,称之为MBR,对于SD卡来说,MBR在扇区0。U-boot中有一个命令fdisk -c 0时就进行了分区,分区表在固化在了U-boot源码中。kernel直接读取MBR就知道了分区。所以在U-boot和kernel之间mmc设备的分区信息是靠MBR传递的
  • 不同分区存放了不同类别的文件,比如bootloader区存放了u-boot.bin、kernel区存放了zImage.bin,但是只有rootfs区才具有文件系统(如xxxx.ext3)

2.文件系统是什么

  • 文件系统一般指的是某类镜像文件(如xxxx.ext3),一个分区只能烧录一个,也就是说一个分区只能存在一个文件系统。这个镜像文件记录了该分区所有的1.文件内容 2.文件系统的类别3.文件部署和分布,而kernel负责对该文件系统和分区的具体操作。可以类比为文件系统是本子,而kernel是写字的人
  • 存储介质上可以有多个含有文件系统的分区,并且类别也可以不同

3.文件系统和根文件系统的区别

  • 文件系统和根文件系统是两个概念。当kernel启动时,会根据U-boot传递的参数来确定rootfs区的位置,然后去加载rootfs区内的镜像(如xxxx.ext3),并将其作为根文件系统
  • 如果存储介质内有多个文件系统,那么就要靠U-boot传参决定谁能作为根文件系统了,参数详见U-boot引导内核流程分析 文末。当某个文件系统成为了根文件系统后,那么其他的文件系统就可以挂载到根文件系统内,被kernel统一管理
    内核与文件系统_第1张图片
  • 其实文件系统和根文件系统就好比员工和主管,员工之所以能够成为主管,是由于大领导U-boot的钦定,但是主管的本质还是公司的一名员工

4.kernel和根文件系统的关系

  • 在内核中以VFS来屏蔽各种文件系统的接口不同,以VFS向kernel提供一个统一的接口。如打开一个文件时统一使用open,写时采用write,而不用去考虑是那种文件系统,也不用去考虑文件系统是如何将数据写入物理介质的。其中 kernel中的配置,只是让VFS支持这种接口
    内核与文件系统_第2张图片

你可能感兴趣的:(【Linux内核与驱动】)