FUSE di Linux

Pengertian FUSE
Filesystem in Userspace (FUSE) adalah mekanisme sistem operasi yang memungkinkan pengguna tidak ber-hak istimewa menciptakan file system mereka sendiri tanpa mengubah kode kernel.

Diagram Cara Kerja FUSE
Cara Install FUSE 
1. Download FUSE dari http://fuse.sourceforge.net/ pada bagian Download stable release
2. Extract file tar.gz dan masuk ke direktori FUSE. (tar –xvzf fuse-2.9.4.tar.gz)
3. Lakukan installasi FUSE dengan cara :
a. Gunakan hak akses super user (sudo su)
b. Ketikkan perintah ./configure
c. Ketikkan perintah make
d. Ketikkan perintah make install
4. FUSE siap digunakan

Pengecekan FUSE
1. Buka text editor seperti gedit
2. Lalu copy kodingan dibawah ini ke gedit
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980#include <fuse.h>
#include <stdio.h>
#include <string.h>
#include <unistd.h>
#include <fcntl.h>
#include <dirent.h>
#include <errno.h>
#include <sys/statfs.h>

static const char *dirpath = "/home/widhi/Documents";

static int xmp_getattr(const char *path, struct stat *stbuf)
{
 int res;
 char fpath[1000];
 sprintf(fpath,"%s%s",dirpath,path);
 res = lstat(fpath, stbuf);

 if(res == -1)
 {
  return -errno;
 }

 return 0;
}

static int xmp_getdir(const char *path, fuse_dirh_t h, fuse_dirfil_t filler)
{
 char fpath[1000];
 if(strcmp(path,"/") == 0)
 {
  path=dirpath;
  sprintf(fpath,"%s",path);
 }
 else sprintf(fpath, "%s%s",dirpath,path);
 int res = 0;
 DIR *dp;
 struct dirent *de;
 dp = opendir(fpath);
 if(dp==NULL)
 {
  return -errno;
 }
 while((de = readdir(dp))!=NULL)
 {
  res = filler(h, de->d_name, de->d_type);
  if(res!=0) break;
 }
 closedir(dp);
 return res;
}

static struct fuse_operations xmp_oper =
{
 .getattr = xmp_getattr,
 //.readlink = xmp_readlink,
 .getdir = xmp_getdir,
 //.mknod = xmp_mknod,
 //.mkdir = xmp_mkdir,
 //.symlink = xmp_symlink,
 //.unlink = xmp_unlink,
 //.rmdir = xmp_rmdir,
 //.rename = xmp_rename,
 //.link = xmp_link,
 //.chmod = xmp_chmod,
 //.chown = xmp_chown,
 //.truncate = xmp_truncate,
 //.utime = xmp_utime,
 //.open = xmp_open,
 //.read = xmp_read,
 //.write = xmp_write,
 //.release = xmp_release,
 //.fsync = xmp_fsync,
 //.readdir = hello_readdir
};

int main(int argc, char *argv[])
{
 return fuse_main(argc, argv, &xmp_oper);
}
3. Untuk widhi yang berada di dirpath diganti dengan user kamu,Lalu save file tersebut dengan nama "cekfuse.c"
4. Setelah berhasil disave, lalu buka terminal
5. Ketikkan perintah: gcc -Wall cekfuse.c `pkg-config fuse --cflags --libs` -o cekfuse lalu tekan enter
6. Untuk menjalankan fusenya, ketikkan ./cekfuse /tmp/fuse diterminal lalu tekan enter
7. Setelah dijalankan maka isi folder Documents akan dimount ke /tmp/fuse
8. Untuk mengeceknya, anda buka explorer lalu buka Computer -> tmp -> fuse
9. Setelah berhasil mengmount folder Documents, untuk mengumount fuse tersebut. Ketikkan "sudo umount /tmp/fuse"

Sekian pemaparan tentang fuse di linux. Terima kasih :)
FUSE di Linux FUSE di Linux Reviewed by Widhi Mahaputra on 19.51 Rating: 5

Tidak ada komentar:

Diberdayakan oleh Blogger.