似乎还没有眨眼,一周又过去了!
How time flyes!
今天她突然告诉我她要回家了,因为她研究生考试的初试顺利过关,今天接到了复试通知,真的很替她高兴,祝她复试顺利!
这周的大部分时间都是花在了将移植到我们的嵌入式系统上,不过时间也没有白费,现在总算是运转正常了。
加密文件系统不只有cryptofs一个,还有,不采用encfs,起初是因为我configure的时候没能一次通过,很可能是我自己没有设置好参数的问题。因为比较急,也就没有再想,直接转用cryptofs了。不过cryptofs也没有让我省多少心,不仅要自己实现一个精简版本的glib库,还碰到了两个Bug,着实也让我fix了一段时间。并且它依赖的包也不少,libgpg-error,libgcrypt,并且似乎libgcrypt比encfs依赖的的openssl库还不小。给cryptofs“捉虫”的过程也是学习的一个过程,渐渐发现cryptofs似乎应该比encfs更加安全,因为它没有在任何地方保存密码,即使你给出错误的密码,你也能够挂载,只是你看到的是一堆junk。
用户空间文件系统也有fuse和lufs可以选择,因为fuse已经加入官方内核,并且现在开发仍然比较活跃,相比最新版本为2003年发布的lufs,应该是更有前途。移植过程也是比较费力,自己修复了两个Bug,又从官方的论坛上找到了两个dirty的patch,一切才完全OK!谈谈fuse和lufs的实现吧,其实他们的原理都很简答,当一个用户空间的文件系统操作发生后,系统调用产生,内核再将这个请求通过一定的方式发给运行着的文件系统守护进程,守护进程接收并相应请求,完成操作后将结果再传回内核,内核完成系统调用的过程,控制权再次交给用户空间。fuse和lufs的内核和用户空间的通信方式是不同的,fuse用字符设备/dev/fuse来实现通信,lufs用UNIX域套接字实现通信,至于其它的部分,两个还是很雷同的。
阅读(1425) | 评论(0) | 转发(0) |