layerfsd实现的一些思路

来源:互联网 发布:一键瞬狙软件 编辑:程序博客网 时间:2024/05/30 07:14

第一种是完全可以通过应用层来做,这个不说了

第二种是通过虚拟磁盘+文件重定向的方法,osr上有两篇文章

http://www.osronline.com/article.cfm?article=560

http://www.osronline.com/article.cfm?article=571

具体方法大体是通过一个普通的文件系统filter过滤来重定向io操作到虚拟磁盘上,然后利用虚拟磁盘来最后做真实的读写,这个方案可能国内也有实施的了,自认为是一种取巧的方法,效果比第三种也稍微差点,就像Tony Mason 说的他更喜欢现在dmk的实现方法。

第三种就是dmk的方式了,我的跟他差不多的方法,核心还是shadow fileobject,充分利用shadow fileobject的灵活性,这个国内应该很多人在开始做了,但是有个问题比较麻烦,同步缓存,这里有几个办法:

第一个,你去直接发paging io 给下层文件系统,稍微处理下让pagingio可以扩展文件有效大小,在write的时候处理好文件大小扩展,这样保证不违反windows io 模型,但是需要处理下层文件系统缓存的刷新,效果一般,这个是我最早的实现方法。

第二种,用cache io 发给下层去同步缓存,但是这里不能这么简单就这么处理,不然死锁问题很麻烦,需要做一点点内存管理的处理,把数据打散,给下层,具体怎么办去阅读下wrk的cache与mm。

第三种,用nocache io 发给下层,处理上与第二种差不多

第四种,某些邪恶的xxx。不符合过滤驱动的就不提了

感叹一句,代码并不那么重要,重要的是思路,这个东西开源了也就是那么回事,只可惜国内人都抱着藏着,时机到了我会做个开源的layerfsd,一个产品的好坏还在于产品设计与用户体验,就是不用layerfsd一样可以把文件透明加密做好。

0 0
原创粉丝点击