Ya, dalam postingan kali ini, kita akan membahas FUSE. Apa itu FUSE? Sebelum membahas FUSE kita harus memahami apa itu FIlesystem.
File System/sistem berkas adalah struktur logika yang digunakan untuk mengendalikan akses terhadap data yang ada pada harddisk.
Dalam File System, terdapat berbagai jenis-jenisnya dan penggunaan algoritma yang berbeda. Semakin baru jenis dari sebuah File System, maka semakin bagus pula kualitas dari File System tersebut.
Dalam File System, terdapat berbagai jenis-jenisnya dan penggunaan algoritma yang berbeda. Semakin baru jenis dari sebuah File System, maka semakin bagus pula kualitas dari File System tersebut.
Misalnya FAT (File Allocation Table). Jenis partisi terdahulu pada Windows yang kemudian diperbaharui dengan adanya FAT-16, FAT -32, dan yang terakhir adalah jenis NTFS (New Technology File System).
Pada Linux, terdapat jenis File System EXT 2 (Extended 2), Swap (Virtual Memory), dan lain-lain. File System terbaru pada Linux adalah EXT 4 yang tentunya lebih baik dari versi-versi EXT yang lainnya.
Filesystem in Userspace (FUSE) merupakan mekanisme sistem operasi untuk sistem operasi Unix-like yang memungkinkan pengguna tidak ber-hak istimewa menciptakan file system mereka sendiri tanpa mengubah kode kernel. Hal ini dicapai dengan menjalankan kode file system di userspace, sedangkan modul FUSE hanya menyediakan "jembatan" untuk antarmuka kernel yang sebenarnya.
Module kernel FUSE dan FUSE library berhubungan melalui sebuah special file descriptor yang didapatkan dengan membuka /dev/fuse. FUSE kernal module meneruskan request ke aplikasi fuse anda. aplikasi anda memerintahkan fuse cara menjawab request. FUSE kernal module dan FUSE library berkomunikasi lewat file deskriptor spesial yang diperoleh dengan membuka /dev/fuse. file ini dapat terbuka berkali-kali dan file deskriptor yang diperoleh diteruskan ke mount syscall, untuk menyesuaikan deskriptor dengan filesystem mount.
Installasi 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
Ketikkan code berikut ini
#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/zavox/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);}
Code diatas merupakan conto template, jadi jika ingin mencoba FUSE, hanya perlu mengganti dirpath saja, untuk menjalankan program ketik gcc -Wall [nama file].c `pkg-config fuse –cflags –libs` -o [nama file]
Kemudian ketikkan mkdir [nama folder] nama folder bebas
Kemudian ketikkan ./[nama file] /tmp/fuse
Jika berhasil, dan anda menggunakan Ubuntu, maka pada folder device akan keluar [nama folder] dibawah drive HDD yang berisi filesystem dengan direktori "Documents"
Tidak ada komentar:
Posting Komentar