linux overlayfs文件系统生动讲解教程(android overlayfs)

I overlayfs(层叠文件系统)概述

Overlay文件系统是一种特殊的文件系统,它让你把一个文件系统“叠加”到另一个文件系统上面,从而实现“增量”修改,而不会改变原始数据。你可以把它想象成在玻璃板上画画:你在玻璃板上画画,但玻璃板下面的东西依然是可见的,而且不被改变。

假设场景

想象一下,你有一本非常珍贵的书(比如底层的文件系统),你不想在书上直接做笔记,因为会破坏书页。这时候,你拿了一张透明的塑料纸(上层的文件系统)盖在书上面,然后在塑料纸上随便画、写都不会影响到书的内容。

Overlay文件系统就像这样

底层(lower layer):就像那本珍贵的书,是原始的、不希望修改的文件内容。
上层(upper layer):就像那张塑料纸,任何的修改、创建、删除都只会作用在这张塑料纸上。
合并层(merged layer):就像你看到的那本书和塑料纸叠在一起的效果。当你阅读合并层时,看到的是一个融合后的结果

Overlay文件系统就是在原始文件系统上“叠加”一个可以修改的层,类似于在珍贵的书上盖上一张透明的塑料纸。你可以随意修改这张纸,但不会影响到下面的书。

具体运作

查看文件:如果上层的塑料纸上(upper layer)有文件的内容,它会直接显示出来;如果没有,它就会显示书本上的内容(lower layer)。

修改文件:当你在塑料纸上(upper layer)写东西时,它并不会改变书本上的内容,而是覆盖在上面。所以,底层(lower layer)内容保持不变。
删除文件:如果你在塑料纸上(upper
layer)“删除”了某个书本内容的部分,它不会真的擦掉书上的文字,而是在塑料纸上做一个标记,让你在看的时候“忽略”这部分内容。
保存数据:如果你决定把这些改动都保存下来,就可以把塑料纸的内容融合到书本里,变成新的书本版本。

使用场景

容器(Docker):Overlay文件系统特别适合在容器中使用。比如,容器从一个只读的基础镜像启动,运行时所有的修改都写入一个新的层,这样基础镜像保持不变,可以重复使用。
开发调试:如果你不确定某些配置改动会不会影响系统,可以用Overlay文件系统来临时测试。这样改动只作用在上层,而底层原始系统依旧保持不变。

在 OverlayFS文件系统 可以实现底层只读(共享给多个系统),上层读写(实现变化文件),这种模式在 Docker

在嵌入式Linux下,设备树(device tree)用来描述硬件平台的各种资源,Linux内核在启动过程中,会解析设备树,获取各种硬件资源来初始化硬件。设备树的overlay功能是指可以在系统运行期间动态修改设备树。一般情况下,如上图所示,设备树经过DTC编译器编译为二进制的hello.dtb文件,加载到内存,随Linux内核一起启动后,一般就无法更改了。如果我们想修改设备树,需要修改hello.dts文件文件,重新编译成二进制文件:hello.dtb,然后重新启动内核,重新解析。有了设备树的overlay功能,省去了设备树的重新编译和内核重启,我们可以直接编写一个设备树插件:overlay.dts,编译成overlay.dtbo后,直接给设备树“打补丁”,在运行期间就可以动态添加节点、修改节点...设备树的overlay功能,在很多场合都会用得到,会让我们的开发更加方便:外界插拔设备,无法在设备树中预先描述:耳机树莓派 + FPGA开发板基于I2C的温度传感器管脚的重新配置:PIN multiplexing修改bootcmd、分区...设备树的overlay功能,目前还没有加入到内核mainline(linux-5.10.x),但目前有些开发板和配套的BSP已经支持了,支持在系统运行期间动态修改设备树文件。如果你手头的开发板或内核平台还没有支持device tree overlay,可以学习本期课程,学习内核中设备树overlay的实现原理,如何给内核打补丁,使内核支持设备树的overlay功能。有了本期课程的学习基础,明白了设备树overlay的实现原理和运行机制,你就可以尝试在自己的开发板平台上实现这个功能了。本期课程的主要内容如下:在开发板上如何实现设备树的overlay功能Configfs文件系统的配置与挂载Configfs编程接口如何编写设备树 overlay插件设备树 overlay的编译和运行设备树overlay运行机制分析本期课程适合哪些人学习:嵌入式驱动工程师嵌入式BSP工程师嵌入式软件工程师想从事嵌入式开发的同学全网首家讲解设备树overlay的视频教程。   
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值