Langsung ke konten utama

fusefusefusefuse huehuehue


Haii bloger sekalian, ketemu lagi nih sama nay. Apa kabar nih bulan novembernya? Sehat saja? Senang saja? Ada yang galau kah? Atau mungkin ada yang sedang berbahagia sekaraang? Hoho, pokonya apapun yang kalian lakukan sekarang semoga berkaahhhh. Yak di apdetan kali ini nay akan kembali mengenalkan tentang sistem operasi ke kaliaan. Hari ini akan nay bahas mengenai fuse.
Sebelumnya nay akan menjelaskan mengenai file system. File system adalah adalah struktur logika yang digunakan untuk mengendalikan akses terhadap data yang ada pada harddisk. Terdapat berbagai jenis-jenisnya dan penggunaan algoritma yang berbeda. File system memiliki beberapa tipe yang pertama adalah File System Disk, File System Flash, File System Database, File System Transaksional, File System Jaringan, File System untuk tujuan khusus, dan File System Journaling.

Kalau membahas mengenai fuseakan berhubungan juga dengan virtual file system, dentry, superblock, inode dan banyak lainnya. Oke fuse adalah mekanisme sistem operasi untuk sistem operasi Unix-like yang memungkinkan pengguna tidak ber-hak istimewa menciptakan file system mereka sendiri tanpa mengubah kode kernel. 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.

Sekarang nay akan menjelaskan mengenai system menggunakan fuse. Pertama yang harus kalian lakukan adalah membuat fuse seperti di bawah 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>
#include <stdlib.h>
static const char *dirpath = "/home/nadia/Downloads";
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;
}
system("notify-send hello");
closedir(dp);
return res;
}
static int xmp_mkdir(const char *path, mode_t mode)
{
int res;
res = mkdir(path, mode);
if (res == -1)
return -errno;
return 0;
}
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);
}


untuk menjalanakan fuse di terminal dengan menggunakan syntax

gcc -Wall [nama file].c `pkg-config fuse --cflags --libs` -o [nama file]

Kemudian buat sebuah direktori, misalnya: /tmp/fuse

Coba jalankan fuse tadi dengan cara: ./[nama file] /tmp/fuse

nah segitu dulu bincang bincang dari nay, see ya in next blog hehe. Tetep semnagat yah besok senin lhooo hehehehe.

Komentar

Postingan populer dari blog ini

Sequence Diagram, Class Diagram dan Use Case Sistem Informasi Laundry

Sistem Informasi Laundry minggu ke-6  Sequence Diagram Sequence diagram adalah suatu diagram yang menggambarkan interaksi antar obyek dan mengindikasikan komunikasi diantara obyek-obyek tersebut. Diagram ini juga menunjukkan serangkaian pesan yang dipertukarkan oleh obyek-obyek yang melakukan suatu tugas atau aksi tertentu. Obyek-obyek tersebut kemudian diurutkan dari kiri ke kanan, aktor yang menginisiasi interaksi biasanya ditaruh di paling kiri dari diagram. Pada diagram ini, dimensi vertikal merepresentasikan waktu. Bagian paling atas dari diagram menjadi titik awal dan waktu berjalan ke bawah sampai dengan bagian dasar dari diagram. Garis Vertical, disebut lifeline, dilekatkan pada setiap obyek atau aktor. Kemudian, lifeline tersebut digambarkan menjadi kotak ketika obyek melakukan suatu operasi , kotak tersebut disebut activation box. Obyek dikatakan mempunyai live activation pada saat tersebut. Pesan yang dipertukarkan antar obyek digambarkan sebagai sebuah anakpanah ...

Hierarchial Input-Process-Output (HIPO)

Hierarchial Input-Process-Output (HIPO) Pengertian ü   Menurut Jogiyanto HM dalam buku Analisis & Desain Sistem Informasi (2005:787) HIPO ( Hierarchy plus Input-Process-Output)  adalah alat disain dan teknik dokumentasi dalam siklus pengembangan sistem. ü   Menurut Praptiningsih (2010:3),  “HIPO (Hierarchy Plus Input Process Output) adalah alat bantu yang digunakan untuk membuat spesifikasi program yang merupakan struktur yang berisi diagram dimana didalam program ini berisi input yang diproses dan menghasilkan output” ü   Jadi, HIPO adalah alat yang digunakan sebagai dokumentasi program dan sebagai alat desain dan teknik dokumentasi dalam siklus pengembangan system. ·          Merupakan metodologi yang dikembangkan dan didukung oleh IBM. ·          Sebenarnya merupakan alat dokumentasi program. ·          Sekarang...

Pre-Wedding Decoration Planner

Final Project TKAP  Description Pre-Wedding Decoration Planner will help you to arrange you pre-wedding photoshoot background. You just need to enter the number of Trees you want on your background. The game will change the background itself so you can decide which one is the best. Go find the best decoration for your dream Pre-wedding Photoshoot. Storyboard Source Code Start the game When the game started it will show the storyline and then when user Press the PLAY Button, the game will start and User need to input the number of Trees they want. 2. Define Branch  3. Clone Branch 4. Define New Tree 5. Get User Input 6. Delete Clones Link & Download http://scratch.mit.edu/projects/191259851/ https://phosphorus.github.io/app.html?id=191623052&turbo=false&full-screen=true