藏经阁

250 阅读2分钟

Android

安卓系统中各镜像介绍 www.cnblogs.com/schips/p/in…

你应该知道的android虚拟机 www.jianshu.com/p/bea27d2f0…

前端测试

APP应用测试方法以及测试思路 zhuanlan.zhihu.com/p/82857339

浅谈自动化测试工具 Appium testerhome.com/topics/1131…

UIAutomator2.0详解(入门篇) blog.csdn.net/daihuimaozi…

Selenium的使用方法简介 cloud.tencent.com/developer/a…

Selenium WebDriver(一) www.jianshu.com/p/1b63c5f3c…

Web UI自动化测试之元素定位 segmentfault.com/a/119000003…

Selenium之unittest测试框架详谈及实操 cloud.tencent.com/developer/n…

Robot Framework官方教程 www.jianshu.com/p/c3a9d20db…

微信小程序技术原理分析 zhaomenghuan.js.org/blog/wechat…

H5测试点总结-UI测试、功能测试、兼容性测试、体验相关(弱网、资源、手机操作等)、安全性测试、性能测试 www.cnblogs.com/jieperhaps/…

数据库

mysql在磁盘中以什么格式文件存储? blog.csdn.net/qq_33722836…

MySql数据在磁盘上到底是怎么存储的?被存储的数据怎么查找? zhuanlan.zhihu.com/p/351510903

存储

磁盘的分区、格式化、检验与挂载 blog.csdn.net/weixin_4852…

SDcardFS文件系统浅析(一) - sdcarfs历史 blog.csdn.net/pen_cil/art…

uboot的作用和功能 blog.csdn.net/yilongdashi…

ANDROID 中UID与PID的作用与区别 www.cnblogs.com/perseus/art…

Vold工作流程分析学习 www.cnblogs.com/bastard/arc…

Vold 流程介绍 blog.csdn.net/wangjun7121…

fuse文件系统简介

image.png

注:/sdcard目录对应/storage/emulated/0(挂载类型为fuse),其真实目录为/data/media/0(挂载类型为f2fs)。

FUSE是Android11上针对手机自带外部存储(如上图)进行管理的运行在用户空间的文件系统,其实谷歌在Android 7之前用的也是fuse,但因为性能原因替换为了sdcardfs,随着目前手机性能越来越高,用户隐私和权限成为了主要问题,因此谷歌重新优化fuse后将其带回了Android11,用于精细化管控APP对用户空间的访问权限。基本原理如下:

image.png

步骤1:黑色箭头所示,app通过VFS和kernel的FUSE框架向FUSE Daemon发出读写操作请求 步骤2:红色箭头所示:FUSE Daemon完成实际操作,判断目录&文件权限、通过VFS & F2FS访问EMMC/UFS存储器件 步骤3:蓝色箭头所示:FUSE Daemon通过FUSE向app反馈操作结果

FUSE分为三大模块: • FUSE内核模块(内核态):提供文件系统框架、被注册为/dev/fuse块设备,连接用户态FUSE Daemon与VFS。 其原理是创建队列、将VFS过来的读写请求放入到队列中,FUSE Daemon通过LibFUSE读取/dev/fuse队列中的数据,处理完成后再写入/dev/fuse将结果返回给内核FUSE->VFS->APP。 • LibFUSE模块(用户态):为避免呈现太多细节,LibFUSE作为中间层封装底层接口,避免FuseDaemon直接使用类似ioctl()的接口来访问内核FUSE注册的/dev/fuse设备。 • FUSE Daemon(用户态):FUSE文件系统的核心,用来管控用户空间权限,完成实际的数据读写(通过mount_namespaces绑定到以底层真实文件系统f2fs挂载的路径/mnt/pass_through/0/emulated来实现),其位于MediaProvider层。

面经

testerhome.com/topics/2970…

全栈测试笔记 www.cnblogs.com/uncleyong/p…

python+selenium面试题 www.cnblogs.com/szl6/p/9542…