免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 5305 | 回复: 9
打印 上一主题 下一主题

generic_make_request函数在访问文件的哪一层? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2008-04-20 22:53 |只看该作者 |倒序浏览
看一篇论文说 在VFS层实现一个加密文件系统。
加密的位置是在generic_make_request( )函数中进行的。


而Linux操作系统中generic_make_request( )函数完成将实际的读写请求传递到下层的设备驱动的任务。
我认为这个函数并不是VFS层的,应该属于I/O传输层~
可是我也是在这个函数中实现的加密,的确也可以屏蔽所有具体的文件系统。一般
文件访问流程应该是

系统调用 -> VFS -> 具体文件系统 —> 磁盘缓存 -> 磁盘驱动 -> 磁盘控制器 -> 磁盘介质

我觉得generic_make_request也没有到驱动这层吧,最多也只是提交驱动的函数而已,请问下这个函数到底属于哪个层次呢?
也可以屏蔽所有的具体文件系统。
而bh中的b_end_io方法又属于哪个层次呢?

知道的达人请解答下,不甚感激:)

论坛徽章:
0
2 [报告]
发表于 2008-04-20 23:15 |只看该作者
原帖由 zixin 于 2008-4-20 22:53 发表
看一篇论文说 在VFS层实现一个加密文件系统。
其加密的位置是在generic_make_request( )函数中进行的。


而Linux操作系统中generic_make_request( )函数完成将实际的读写请求传递到下层的设备驱动的任务。 ...


楼主看看这幅图对你有用不?

BTW:你看的论文是中国人写的还是外国人写的?

论坛徽章:
0
3 [报告]
发表于 2008-04-20 23:17 |只看该作者
原帖由 zixin 于 2008-4-20 22:53 发表
看一篇论文说 在VFS层实现一个加密文件系统。
其加密的位置是在generic_make_request( )函数中进行的。


而Linux操作系统中generic_make_request( )函数完成将实际的读写请求传递到下层的设备驱动的任务。 ...


晕,刚才发掉了。

vfs.jpg (51.78 KB, 下载次数: 50)

vfs.jpg

论坛徽章:
0
4 [报告]
发表于 2008-04-20 23:20 |只看该作者

回复 #2 scutan 的帖子

谢楼上的~ 可是我怎么看不到图呢?

是中国人写的。其实在generic_make_request( )函数完成加密操作也是我自己想出来的,在读内核时觉得文件访问的最终都是靠这个函数来发送读写请求的,所以是已经实现了的。但是理论基础现在看起来不是很清晰。

后来看这篇论文,也是这么一说,但是他说这样做是在VFS层实现。我就纳闷了。

论坛徽章:
0
5 [报告]
发表于 2008-04-20 23:22 |只看该作者

回复 #3 scutan 的帖子

不好意思 已经看到图了 我再仔细看看 :)

论坛徽章:
0
6 [报告]
发表于 2008-04-20 23:28 |只看该作者

回复 #3 scutan 的帖子

这是基于2.6内核的图吧
那就是通用块层 虽然我还是在2.4上开发的,但是这个通用块层的概念应该还是一样的
我看流程差不多

通用块层的主要工作是:接收上层发出的磁盘请求,并最终发出 IO 请求。该层隐藏了底层硬件块设备的特性,为块设备提供了一个通用的抽象视图。

汗颜~~ 那我开发的看来都不能叫加密文件系统了么?

论坛徽章:
0
7 [报告]
发表于 2008-04-20 23:51 |只看该作者

回复 #7 scutan 的帖子

呵呵~ 还有这种事情哦
看来我胡编乱造的功底实在太烂了...

十分感谢scutan 啦 我自己再琢磨琢磨啦!

论坛徽章:
0
8 [报告]
发表于 2008-04-21 20:39 |只看该作者
你这个不是加密文件系统

论坛徽章:
0
9 [报告]
发表于 2008-04-22 10:49 |只看该作者
以kernel 2.6为例,存储加密的实现方法大概有这几种:
1、在block层实现。LZ的实现即属此类,类似的有kernel中的dm-crypt模块。
2、在各个具体的文件系统中实现。
3、实现一个建立在其它具体文件系统之上的通用加密文件系统,如ecryptfs。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP