- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
NFS概要设计规程_概要设计书
网络文件系统
NFS
概要设计书
版本:1.0.0
江苏润和软件股份有限公司
文件状态:
[√] 草稿
[ ] 正式发布
[ ] 正在修改 文件标识: 概要设计书 当前版本: 1.0.0 作 者: 徐飞 完成日期: 2011/07/01
1 模块所处位置
Framework层
Linux应用层
Linux内核
2 模块源码信息
NFS客户端Linux内核已经支持,不需要移植。
NFS服务器所用源码为:nfs-server-2.2.47-2。支持nfs v3协议。内核配置须打开对NFS服务器的支持。
服务器代码来源为:
/m/nfs-server-2.2.47-2.tar.bz2.97807.0.0.html
代码所处的Android目录位置:
NFS服务器:Froyo/external/ nfs_server
Nfsinit进程:froyo/external/nfsclt
3 源码修改情况
NFS服务器用了源码的rpc.mountd 和rpc.nfsd进程。没有用到rpc.ugidd进程。
Portmap进程没有增添。
添加库libsunrpc。由于bionic不支持sunrpc.此库为从glibc提取出来的专门为支持NFS服务器的。
4 基于协议及运行方式
基于nfs v3及rpc通讯协议。NFS服务器主要有三个进程,
portmap,rpc.mountd,rpc.nfsd,portmap主要负责rpc程序的端口映射管理,rpc.mountd主要负责挂载后的文件管理和操作,rpc.nfsd主要服务客户端认证及权限的控制。服务器和客户端都需要rpc的支持。
5 模块JNI接口信息
NFS客户端接口主要有:
卸载某挂载目录
int umountNFS(const char *pCltFold)
将服务器某目录挂载到某目录下
int mountNFSSvr(const char *pSvrIP, const char *pSvrFold, const char *pCltFold, int ucIsAuto)
设置当前某已挂载的目录是否为开机自动挂载
int setAutomount(const char *pSvrIP, const char *pSvrFold, const char *pCltFold, int ucIsAuto)
获取当前已挂载的目录及对应服务器信息
const char * getMountedListInfo()
NFS服务器接口主要有
启动NFS服务器
int NFSSvrStart()
关闭NFS服务器
int NFSSvrStop()
获取当前客户端配置信息(哪些客户端可以挂载哪些目录,或哪些目录对所有客户端开放)。
char * getCltsList()
添加一条客户端配置信息
int addaClt(const char* szcltIP, const char* szshareFold)
删除某条客户端配置信息
int delaClt(const char* szcltIP, const char* szshareFold)
6 关键点
(1)模块启动及命令触发方式
由于JNI没有没有执行系统SHELL脚本的权限,解决方法为:JNI通过SOCKET将命令发送给有权限的进程“nfsinit”来执行。传送的内容为系统命令和写文件的内容。
(2)nfsinit进程
该进程主要完成的功能有两点1.就是上面所说的接收JNI发过来的命令和写文件的内容。2 开机启动后执行挂载命令,以完成开机自动挂载的功能。
(3)NFS服务器配置文件为/data/exports主要是配置哪些客户端可以访问本机的哪些目录。通过NFS服务器配置可以配置该文件。配置文件修改后,NFS服务器须重启,配置才生效。该文件必须为只读状态,NFS服务器才能启动。
(4)库libsunrpc。由于bionic不支持sunrpc.此库为从glibc提取出来的专门为支持NFS服务器的。
(5)原来android下的mount因为是toolbox里的,不支持NFS挂载类型。但busybox里的mount支持,所以修改了mount的软连接到busybox里的mount
润和软件 概要设计书
第 3 页 共 6 页
nfsinit
nfs服务器
JNI:NFS客户端及服务器配置接口。
Nfs客户端(mount命令)
NFS客户端及服务器内核部分
文档评论(0)