1,fuse的基本介绍
用户空间文件系统(Filesystem in Userspace,简称FUSE)是操作系统中的概念,指完全在用户态实现的文件系统。目前Linux通过内核模块对此进行支持。
2,代码分析:
android平台相关源码位置:
\system\core\sdcard\
\frameworks\base\cmds\installd\ JB
./frameworks/native/cmds/installd/ KK
\kernel\fs\fuse\
fuse的操作流程:
以开了share sdcard功能后,app对内卡上某个文件的读请求操作流程为例分析:
1,app调用文件系统(VFS)的标准接口通过VFS模块将请求发送到/dev/fuse设备,/dev/fuse设备将请求发送给用户层的sdcard daemon进程。
2,sdcard进程接收到相应的请求后并完成实际的请求操作(完成实际请求操作主要是通过VFS模块调用真正的ext4文件系统完成实际操作),然后
3,sdcard进程通过/dev/fuse设备节点将请求的结果返回给app。
以开了share sdcard功能后,app对内卡上某个文件的读请求操作流程为例分析:
1,app调用文件系统(VFS)的标准接口通过VFS模块将请求发送到/dev/fuse设备,/dev/fuse设备将请求发送给用户层的sdcard daemon进程。
2,sdcard进程接收到相应的请求后并完成实际的请求操作(完成实际请求操作主要是通过VFS模块调用真正的ext4文件系统完成实际操作),然后
3,sdcard进程通过/dev/fuse设备节点将请求的结果返回给app。
3,android storage的结构
4,使用fuse进行文件系统映射的好处
1,最大的好处是权限管控,直接使用软连接并不能处理权限问题。