fuse的安装与使用

今天在做关于fuse的课设,现将相关过程与心得贴出来与大家分享~

使用用户空间的文件系统(FUSE),无需理解文件系统的内幕,也不用学习内核模块编程的知识,就可以开发用户空间的文件系统框架。

 

步骤1  FUSE的下载与安装

1)首先上fuse官网下载最新安装包:http://sourceforge.net/projects/fuse/files/fuse-2.X/

我下载的是2.8.5版。

 

2)安装fuse,根据官网教程:

   ①首先解压: tar zxvf fuse-2.8.5.tar.gz

   ②然后到解压后的文件夹fuse-2.8.5下,输入: ./configure

   ③编译: make

   ④make完后再输入: make install(注意:这一步要在root用户模式下做)

   ⑤查看fuse是否挂载成功: lsmod|grep fuse

       若没成功则可通过:“modprobe fuse”命令挂载fuse。

 

到此,fuse就已成功安装到虚拟机上了~

 

 

 

步骤2  FUSE的使用

安装完fuse后,其子文件夹example下有一些做好的文件系统实例,例如fusexmp、hello等,下面以fusexmp为例,教你挂载和使用该文件系统,并修改相应函数。

 

1)将fusexmp文件系统挂载到/mnt/fuse目录(fuse文件夹需要先在mnt下自己建),在example文件夹下输入:./ fusexmp /mnt/fuse –d

 

   这样在/mnt/fuse文件夹下就可以看到所有根目录文件夹了,不过/mnt/fuse文件夹下是fusexmp文件系统!

  另外有两点值得注意:

①该命令不会自动结束,使用过程中也不可以结束,所以如何再在终端中输入命令呢?推荐一种方法,按快捷键:Shift+Ctrl+T,会在新标签页新开一个终端,这样就有两个终端了,当然你也可以重新开一个终端窗口。如果的确需要退出第一个终端,则可按Ctrl+C。

②可用“df”命令查看是否挂在上该文件系统。

 

2)现在转到/mnt/fuse目录下,就可使用fusexmp这个文件系统所实现的命令了~

fusexmp实现的命令可以在example文件夹下的fusexmp.c文件中看到,也可以很方便的修改,比如xmp_mkdir函数增加一条输出提示语句:

static int xmp_mkdir(const char *path, mode_t mode)

{

       int res;

       write(0,"You are using 'mkdir'!",24);

       res = mkdir(path, mode);

       if (res == -1)

                return -errno;

       return 0;

}

要使该修改有效还需要以下几步:

①回到第一个终端(就是输入./ fusexmp /mnt/fuse –d的那个终端),按Ctrl+C结束;

②重新编译:make

③重新挂载:./ fusexmp /mnt/fuse –d

④在第二个终端中再进入/mnt/fuse目录下(若已在该目录或其子目录下得先退出后再进才有效),尝试mkdir命令,会发现在第一个终端中相应系统输出会有我们新增的输出语句~

 

 

 

到此,关于fuse的安装与使用就已讲完了~其它函数的修改类似,大家可以多多尝试,在此基础上要弄明白linux系统是怎么一步一步调用到fuse的这个函数,该函数又是如何调用到系统的底层函数的。

原文:http://blog.csdn.net/pc620/article/details/6059118

你可能感兴趣的:(linux)