在我的例子里,Linux的kernel与user space如何进行通信才好?-问答-阿里云开发者社区-阿里云

开发者社区> 问答> 正文

在我的例子里,Linux的kernel与user space如何进行通信才好?

2016-07-11 11:12:09 2083 2

我的例子大概如下:
我想做一个简单的分布式文件系统。在client端,当某个用户态应用程序open()一个远程文件时,VFS会去通知另一个专用的用户态应用程序,然后这个专用的用户态应用程序会去server端把远程文件缓存到本地,然后通知VFS这个缓存文件的路径。然后VFS会去打开这个缓存文件,再把文件的描述符返回给最开始的用户态应用程序。
在这里,我要进行kernel和user space的通信。一方面,在kernel里的VFS要告诉专用的用户态应用程序,我要打开的远程文件的路径是什么;另一方面,专用的用户态应用程序要告诉VFS,缓存下来的文件的路径是什么。
我目前是使用netlink socket来实现这个功能。这是没有问题的。但是由于我对Linux kernel并不熟悉,所以我不知道是不是还有其它更加有效的方式来解决这个问题。
比如,我之前在想,能不能用mmap()的方式实现kernel和user space之间的通信。但是我在了解了一下之后发现,在我的这个例子里,好像我必须要写一个驱动程序,才能提供一个设备文件作为mmap()的后盾。这在用法上就有点像命名管道或者命名socket(或者叫Unix domain socket?),感觉没什么意思,而且似乎也不太容易整合进VFS去。
然后,我又在想,能不能让VFS和这个专用的用户态应用程序somehow约定一个user space的缓冲区地址,然后VFS直接copy_to_user()(专用的用户态应用程序就直接写这个缓冲区)。但是我又不知道要怎样约定这个缓冲区的地址才好,以及怎么通知对方说我写了新的数据进去。
所以在这里求教。有没有什么好的办法在我的这个例子里实现kernel与user space的通信?以及我对mmap()、命名管道、命名socket或者copy_to_user()的理解有没有问题?感谢。

取消 提交回答
全部回答(2)
  • jesuszhu_
    2019-07-17 19:54:03

    你框架就没选对, 这类需求用fuse做最合适了. 它不光替你处理好了这些通信什么的, 更重要的是它替你搭好了一个基本的文件系统的架子

    0 0
  • 杨冬芳
    2019-07-17 19:54:03

    改写VFS驱动,只要是涉及到内核,都是需要写内核模块的,驱动也是内核模块的一种,理解上是没有错的,只是这样用的话,对你来说就转折了点

    0 0
添加回答
相关问答

30

回答

云计算之路:为什么要选择云计算

cnblogs 2013-03-27 10:22:27 144399浏览量 回答数 30

170

回答

惊喜翻倍:免费ECS+免费环境配置~!(ECS免费体验6个月活动3月31日结束)

豆妹 2014-10-29 17:52:21 232089浏览量 回答数 170

145

回答

【新手入门】云服务器linux使用手册

fanyue88888 2012-11-26 17:14:18 159365浏览量 回答数 145

24

回答

阿里云开放端口权限

xcxx 2016-07-20 15:03:33 657707浏览量 回答数 24

39

回答

安全组详解,新手必看教程

我的中国 2017-11-30 15:23:46 262796浏览量 回答数 39

295

回答

Linux Bash严重漏洞修复紧急通知(已全部给出最终修复方案)

qilu 2014-09-25 13:26:50 437621浏览量 回答数 295

251

回答

阿里云LNAMP(Linux + Nginx + Apache + MySQL + PHP)环境一键安装脚本

云代维 2014-02-14 15:26:06 309227浏览量 回答数 251

97

回答

Redhat/CentOS一键安装web环境全攻略

xiaofanqie 2011-08-11 14:51:38 124702浏览量 回答数 97

40

回答

阿里云ecs从购买到环境搭建和建站!!(phpstudy一件包)

梦丫头 2014-07-29 20:51:49 163641浏览量 回答数 40

24

回答

【精品问答】python技术1000问(1)

问问小秘 2019-11-15 13:25:00 483116浏览量 回答数 24
+关注
杨冬芳
IT从业
1
文章
9167
问答
问答排行榜
最热
最新
相关电子书
更多
OceanBase 入门到实战教程
立即下载
阿里云图数据库GDB,加速开启“图智”未来.ppt
立即下载
实时数仓Hologres技术实战一本通2.0版(下)
立即下载