- File
system adalah struktur pokok dari komputer yang digunakan untuk
mengorganisir data.
- Tipe
dari file system:
- Disk
file system
File system yang
digunakan pada disk.
Contoh: FAT, Ext, NTFS.
- Flash
file system
File system yang
digunakan pada flash memory.
Contoh: JFFS, YAFFS.
- Network
file system
File system yang bekerja
sebagai client.
Contoh: client untuk
ASF, NFS, SMB protocol.
- Database
file system
File
sistem untuk menyimpan file sebagai database.
Contoh: IBM DB2.
- Tape
file system
File system yang
digunakan pada tape.
Contoh: LTFS.
3. Virtual file
system adalah suatu lapisan perangkat lunak dalam kernel yang menyediakan interface
sistem berkas untuk program userspace dan menangani semua system call
yang berhubungan dengan suatu system berkas di bawahnya. Fungsi dari VFS adalah
me-mediasi dari perbedaan sistem berkas yang digunakan oleh beberapa sistem
berkas, misal windows, mac os, linux. Dengan VFS, suatu aplikasi dapat
mengakses berkas dari sistem berkas yang berbeda.
4.
- Dentry
atau Directory Entry merupakan suatu struktur data yang bertugas sebagai
penerjemah dari suatu nama berkas ke inode-nya. disimpan dalam cache di
vfs. isi dari dentry adalah name, use of count,chains for lots of list,
pointer to parent dentry, list head of childre, pointer to inode. Operasi
pada dentry d_compare, d_release, dan d_delete.
- inode
: it stands for index node. semua objek yang ada di dalam file system
diwakili oleh sebuah index (inode). Inode merupakan identifier dari file
dan atribut. Inode berisi struktur data pada file system yang menyimpan
informasi dasar tentang sebuah file, direktori, atau obke file system yang
lain.
- superblock
: berisi informasi tentang file system seperti file system type, status,
size, dan informasi tentang struktu metadata. jikalau inode berisi file
attribute, superblock berisi file system attribute. superblock
merepresentasikan setiap sistem berkas yang di-mount.
5. Fuse (Filesystem
in Userspace) adalah sebuah kerangka sistem berkas pada area pengguna. Fuse
terdiri dari modul kernel, pustaka pada area pengguna, dan sebuah utilitas
untuk melakukan proses mount (fusermount). fuse memungkinkan pengguna untuk
membuat filesystemnya sendiri tanpa mengubah kernel [to make their filesystem
theirselves without change the kernel].
6. Cara Kerja
FUSE:
·
fuse_main() (lib/helper.c) = program user memanggil fungsi fuse_main() kemudian
fungsi fuse_mount() dipanggil. Lalu memanggil fuse_new() untuk memesan ruang untuk
fuse file system data. lalu fuse_loop dipanggil untuk memproses session.
·
fuse_mount() (lib/mount.c) = menciptakan UNIX domain socket, lalu membuat child
process yang menjalankan fusermount.
·
fusermount() (util/fusermount.c) = untuk mengecek apakah modul FUSE sudah di load.
then open /dev/fuse dan mengirim file handle melalu UNIX domain socket kembali
ke fungsi fuse_mount()
·
fuse_new() (lib/fuse.c) = create struktur data yang besiri ruang yang digunakan
untuk menyimpan data file system
·
fuse_loop() (lib/fuse.c) = membaca file system calls dari /dev/fuse
7. Keuntungan
menggunakan FUSE:
- Pengguna
biasa dapat menciptakan file system mereka sendiri dan memodifikasi tanpa
mengubah mode kernel.
- Kernel
tidak akan berpengaruh saat terjadi crash.
- Dapat
dilakukan load dan mount dengan user biasa.
- Dapat
menggunakan lebih banyak library.
- Kode
dari filesystem yang mengalami hang dapat dimatikan dengan mudah.