Kecepatan . Kecepatan dari penyimpanan tersier memiliki dua aspek: benwidth dan latency,

Bab 21. Sistem Berkas Linux

21.1. Pendahuluan

Secara umum, sistem berkas adalah suatu sistem yang bertanggung jawab dalam penyimpanan, penempatan, pengaturan, dan pencarian suatu berkas atau data lain dalam suatu tempat atau media tertentu. Sebagian besar sistem operasi yang ada saat ini memiliki dan mengimplementasikan sistem berkasnya sendiri, salah satunya Linux, yang mengimplementasikan sistem berkas yang digunakan oleh Unix. Segala sesuatu dalam sistem berkas Linux dapat dipandang sebagai berkas; partisi adalah berkas, directory adalah berkas, dan berkas tentu juga berkas. Pada sistem mirip Unix contohnya Linux, beberapa sistem berkas yang terpisah tidak diakses melalui device identifiers seperti device number atau drive name, tetapi melalui mount point, yaitu path dimana sistem berkas itu di- mount oleh sistem. Pada Linux hanya terdapat sebuah struktur tree tunggal yang dimulai dari root directory direpresentasikan dengan kemudian meluas menjadi beberapa subdirectory. Linux menempatkan semua partisi di bawah root directory dengan me- mounting-nya atau mengaitkannya ke suatu directory tertentu. Salah satu keistimewaan dari Linux adalah dukungannya terhadap beberapa sistem berkas yang berbeda. Hal ini membuat Linux sangat flexible dan dapat berdampingan dengan sistem operasi lain dalam satu komputer. Kernel Linux mengatasi perbedaan berbagai jenis sistem berkas tersebut dengan menyembunyikan detil implementasi dari masing-masing sistem berkas di bawah suatu lapisan abstraksi yang dikenal dengan Virtual File System VFS. Beberapa sistem berkas yang didukung oleh Linux antara lain ext, ext2, ext3, ReiserFS, xia, minix, vfat, proc, smb, ncp, iso9660, sysv, hpfs, nfs, affs, dan ufs. Salah satu sistem berkas yang sangat populer di sistem Linux adalah Extended File System EXTFS, yang telah mendukung salah satu fitur penting dalam suatu sistem berkas, yaitu jurnal. Gambar 21.1. Diagram VFS 173

21.2. VFS

Virtual File System atau Virtual File System Switch adalah suatu lapisan abstrak di atas sistem berkas yang sesungguhnya, yang menangani semua system call yang berhubungan dengan suatu sistem berkas di bawahnya. Tujuan dari VFS yaitu agar berbagai sistem berkas yang berbeda dapat di akses oleh aplikasi komputer dengan cara yang seragam. Gambar 21.1 menunjukkan hubungan antara Linux VFS dengan sistem berkas yang sesungguhnya. Virtual File System menyediakan antarmuka antara system call dengan sistem berkas yang sesungguhnya. Keberadaan VFS tentu dapat mengatasi perbedaan berbagai sistem berkas yang digunakan oleh berbagai sistem operasi saat ini seperti Windows, Mac OS, Linux, dan sebagainya, sehingga suatu aplikasi dapat mengakses berkas dari sistem berkas yang berbeda tanpa perlu mengetahui jenis sistem berkas yang digunakan dan detil implementasi dari masing-masing sistem berkas tersebut. Sistem Berkas yang didukung oleh Linux VFS dapat dibagi menjadi tiga kategori: 1. Disk-based Filesystem . Contohnya EXTFS, iso9660, FAT, dan sebagainya. 2. Network-based Filesystem . Contohnya NFS, Coda, AFS, CIFS, dan sebagainya. 3. Sistem berkas khusus. Contohnya proc, RAMFS, dan DEVFS Sistem berkas biasanya diimplementasikan secara object-oriented. Jadi, sistem berkas dapat dipandang sebagai sekumpulan objek yang terbentuk dari suatu struktur data dengan beberapa methodfunction yang berkaitan. Ide dibalik implementasi VFS yaitu suatu konsep yang disebut common file model. Singkatnya, setiap sistem berkas yang didukung oleh Linux harus dapat menerjemahkan physical organization yang diimplementasikannya ke dalam VFS common file model. Linux VFS common file model terdiri dari beberapa objek, yaitu superblock, inode, file, dan dentry. Gambar 21.2. Interaksi antara proses dengan objek VFS VFS Superblock Setiap sistem berkas yang di-mount akan direpresentasikan oleh sebuah VFS Superblock. Superblock digunakan untuk menyimpan informasi mengenai partisi tersebut. Pada dasarnya superblock merupakan suatu struktur data yang menyimpan beberapa informasi sebagai berikut: • Device. Merupakan suatu device identifier, contohnya devhda1 adalah harddisk pertama yang terdapat pada sistem memiliki device identifier 0x300 . • Inode Pointer. Merupakan suatu pointer yang menunjuk ke inode pertama pada sistem berkas. • Blocksize. Menunjukkan ukuran suatu block dari sistem berkas, contohnya 1024 bytes. • Superblock operation. Merupakan suatu pointer ke sekumpulan superblock routine fungsi dari sistem berkas, contohnya read, write, dan sebagainya. 174