fuse的write过程到底是怎么样的,128KB的buffer怎么用?
2024-08-24 19:44:04
1. 在fuse/lib/fuse_kern_chan.c中有一个buffer设置
#define MIN_BUFSIZE 0x21000 //十进制132×1024 //为何不是128?
下面有一句
size_t bufsize = getpagesize() + 0x1000;
看来这多出来的 0x1000 是有特别用途的。
2. 不管怎么样,这个buffer size是怎么被使用的呢?
对于读操作,可以这样推测。应用调用read,被VFS传递给内核fuse,再到libfuse然后到前端fuse,前端fuse进行实际的读操作,比如读一个EXT4文件,读到的内容返给libfuse,再给内核fuse,再返回给应用。
那么,对于写操作,前端fuse写一个ext4文件后,内容就通过fwrite写了,这怎么使用上面所提的buffer呢?
因此,对于read的推测可能也是不准确的。
留待证明。。。。。。。。。
17.5.11
上面的2推测过程是有bug的。写操作的流程应该是这样的。应用调用vfs,将要写的内容传递给内核fuse,内核fuse将内容传递给libfuse,libfuse对这内容进行缓存,达到128KB时调用前端的fuse进行写操作。这样,buffer被怎么用就清楚了。
最新文章
- BZOJ 1984: 月下“毛景树” [树链剖分 边权]
- ABAP 字符串操作
- 你好,欢迎来到我的博客,我是博主royalmice1
- 原创:C语言打开、下载、删除网页,统计网页字符个数
- js - 驼峰命名
- Xshell5最新版激活
- BootStrap2学习日记1--网格系统
- (转)iOS 证书、密钥及信任服务
- C51单片机内存优化
- IOS开发之xcode 快捷键
- 努比亚 Z5 mini刷机包 omni4.4.2改动V4.0 自用版 精简 MIUI特效
- 【原】tinker dex文件格式的dump工具tinker-dex-dump
- HttpClient 教程 (二)
- IOS使用pods初次加载出现Pods-resources.sh: Permission denied错误的解决方案
- js、css等引入文件路径正确,却报404的解决办法
- 微信小程序web-view实例
- 将逗号分隔的字符串与List互转
- Windows Phone 8 获取设备名称
- Highstock生成股票K线图
- python 异常处理、进程