Sistem File — Tanpa Ini, Komputermu Ga Akan Berfungsi

File-System Interface

File adalah sebuah tipe data abstrak berupa serangkaian catatan-catatan logis (logical records) yang didefinisikan and diterapkan oleh suatu sistem operasi. Suatu catatan logis dapat berbentuk byte, sebuah baris, atau elemen data kompleks. Kompatibilitas terhadap jenis-jenis catatan logis biasanya diatur oleh sistem operasinya sendiri. Namun, sistem operasi juga terkadang memberikan peran tersebut ke program-program aplikasi.

Salah satu tugas terpenting sistem operasi adalah untuk memetakan konsep file logis ke perangkat penyimpanan fisik seperti hard disk atau perangkat NVM. Karena ukuran dari catatan fisik tidak selalu sama dengan ukuran catatan logis, konversi dari catatan logis ke catatan fisik terkadang diperlukan. Peran ini terkadang diambil alih seluruhnya oleh sistem operasi atau diberikan kepada program-program aplikasi.

Dalam suatu sistem file, ada baiknya untuk membuat direktori untuk menjaga file-file agar tertata rapi. Sebuah sistem direktori satu tingkat pada sistem multiuser dapat menyebabkan masalah penamaan karena setiap file harus memiliki nama yang unik dan berbeda. Masalah tersebut dapat dipecahkan menggunakan sistem direktori dua tingkat, dimana setiap user dapat membuat direktori sendiri-sendiri.

Sistem direktori dua tingkat umumnya di generalisasikan sebagai direktori dengan struktur pohon. Namun, ada beberapa jenis struktur sistem direktori dua tingkat. Direktori pohon memungkinkan pengguna untuk membuat sub-direktori untuk penataan file. Sedangkan untuk struktur direktori acrylic-graph, pengguna dapat berbagi file dan subdirektori – tetapi perihal pencarian dan penghapusan terbilang rumit. Kemudian, pada struktur direktori general graph, pengguna juga mendapatkan fleksibilitas penuh dalam berbagi file dan direktori. Namun, struktur ini terkadang memerlukan metode garbage collection untuk memulihkan ruang disk yang tidak digunakan.

Sistem file jarak jauh (remote) membawakan tantangan-tantangan tersendiri dalam bidang keandalan, performa, dan keamanan. Sistem informasi terdistribusi bertugas untuk menjaga pengguna, host, dan akses informasi agar klien dan server dapat berbagi informasi tentang kondisi untuk mengelola penggunaan dan akses.

Karena file merupakan mekanisme informasi-penyimpanan utama pada kebanyakan sistem komputer, keamanan file dibutuhkan pada sistem multiuser. Akses ke file dapat dikendalikan secara terpisah untuk setiap jenis akses: read, write, execute, append, delete, list directory, dll. Keamanan file dapat disediakan melalui access lists, kata sandi, dan teknik-teknik lain.

File-System Implementation

Kebanyakan sistem file bersinggah pada tempat penyimpanan sekunder yang dirancang untuk menyimpan data berukuran besar secara permanen. Media penyimpanan sekunder paling umum adalah disk, tetapi akhir-akhir ini, penggunaan perangkat-perangkat NVM juga naik.

Perangkat penyimpanan dibagi menjadi partisi-partisi untuk mengelola penggunaan media dan memungkinkan beberapa sistem file dalam suatu perangkat komputer. Sistem-sistem tersebut dipasang pada arsitektur sistem file logis agar dapat digunakan.

Sistem file umumnya diterapkan dalam struktur berlapis atau modular. Tingkatan-tingkatan bawah dari struktur tersebut mengelola sifat-sifat fisik yang membuat suatu perangkat penyimpanan dan berkomunikasi dengannya. Sedangkan, tingkatan-tingkatan atas mengelola nama-nama file symbolic dan sifat-sfiat logis dari file.

File dalam suatu sistem file dapat dialokasikan ruang dalam tempat penyimpanan melalui tiga cara: contiguous allocation, linked allocation, dan indexed allocation. Contiguous allocation adalah sebuah teknik dimana sebuah file disimpan dalam serangkaian blok yang berdekatan. Linked allocation adalah sebuah teknik dimana setiap file adalah sebuah linked list dari kumpulan blok dalam disk. Perlu dicatat bahwa blok disini tidak perlu berdekatan seperti halnya dalam contiguous allocation. Indexed allocation adalah sebuah teknik dimana sebuah file memiliki yang namanya index blok, yaitu sebuah blok yang berisi pointers ke semua blok-blok yang digunakan untuk menyimpan file tersebut.

Metode alokasi ruang kosong juga mempengaruhi efisiensi penggunaan disk, performa sistem file, dan keandalan penyimpanan sekunder. Metode-metode yang digunakan meliputi bit vectors dan linked list. Optimisasi yang dapat dilakukan adalah melalui grouping, counting, dan tabel alokasi file yang menaruh linked list dalam area-area yang saling berdekatan.

Praktek-praktek manajemen direktori harus mempertimbangkan efisiensi, performa, dan keandalan. Salah satu metode yang umumnya digunakan adalah tabel hash karena performa nya yang cepat dan efisien. Namun, kerusakan pada tabel atau sistem crash dapat menimbulkan ketidakkonsistenan (ketidaksamaan) antara informasi direktori dan konten disk.

Pengecek konsistensi dapat digunakan untuk memperbaiki struktur sistem file yang rusak. Alat-alat pemulihan yang disediakan oleh sistem operasi memungkinkan data untuk disalin ke pita magnetik atau perangkat penyimpanan lain. Hal ini memungkinkan pengguna untuk memulihkan data-data yang hilang yang disebabkan oleh kegagalan hardware, bug pada sistem operasi, atau kesalahan pengguna.

Karena sistem file memiliki peran yang sangat mendasar dalam pengoperasian sebuah sistem, performa dan keandalan dari suatu sistem file amatlah penting. Teknik-teknik seperti struktur log dan caching dapat membantu performa, sedangkan log struktur dan RAID dapat membantu keandalan. Salah satu contoh optimisasi performa adalah dengan menggunakan sistem file WAFL.

File-System Internals

Sistem operasi general-purpose menyediakan banyak jenis sistem file, dari jenis-jenis umum hingga jenis-jenis yang memiliki tujuan tertentu. Volumes yang berisi sistem-sistem file dapat di mount (dipasang) ke ruang sistem file suatu komputer. Tergantung sistem operasinya, ruang sistem file dapat bersifat seamless atau mulus (sistem file yang dipasang terintegrasi ke struktur direktori), atau distinct atau terpisah (setiap sistem file yang terpasang memiliki tempat tersendiri).

Setidaknya satu sistem file harus dapat dinyalakan agar sistem dapat berjalan. Dalam kata lain, sistem file tersebut harus berisi sebuah sistem operasi. Saat proses boot up, bootloader dijalankan terlebih dahulu. Bootloader adalah sebuah program yang bertugas untuk mencari kode kernel pada sistem file untuk memuatnya dan lalu mengeksekusinya. Sebuah sistem dapat memiliki beberapa partisi bootable, memungkinkan admin untuk memilih partisi mana yang ingin dinyalakan.

Kebanyakan sistem bersifat multiuser yang berarti sistem tersebut harus menyediakan metode untuk berbagi file dan keamanan file. Umumnya, file dan direktori meliputi metadata seperti pemilik, pengguna, dan izin akses grup.

Partisi penyimpanan massal digunakan sebagai blok I/O mentah atau sistem file. Setiap sistem file bersinggah di sebuah volume yang terdiri dari satu partisi atau lebih yang bekerja sama melalui volume manager.

Untuk menyederhanakan penerapan sekumpulan sistem file, sebuah sistem operasi dapat menggunakan pendekatan bertingkat (layered approach) dengan bantuan dari suatu sistem file virtual yang memungkinkan akses ke suatu sistem file yang berbeda terasa mulus.

Sistem file jarak jauh (remote) dapat diterapkan melalui program seperti ftp atau model client-server yang terdapat di internet. Permintaan pemasangan (mount request) dan ID pengguna harus diotentikasi untuk mencegah akses yang tidak dizinkan.

Fasilitas client-server secara native tidak punya kemampuan untuk berbagi informasi. Tetapi, sistem informasi terdistribusi seperti DNS dapat digunakan untuk memungkinkan file sharing. Mereka menyediakan ruang username, manajemen kata sandi, dan identifikasi sistem. Sebagai contoh, Microsoft CIFS menggunakan direktori aktif yang memanfaatkan sebuah versi dari protokol otentikasi jaringan Kerberos untuk menyediakan suatu set penuh yang berisi nama dan servis otentikasi diantara komputer dalam suatu jaringan. Setelah file sharing dapat dilakukan, sebuah model semantik konsistensi harus diterapkan untuk mengatur sekumpulan akses konkuren terhadap file yang sama. Model semantik meliputi UNIX, session, dan immutable-shared-files semantics.

NFS adalah sebuah contoh dari sistem file jarak jauh. NFS menyediakan akses mulus terhadap direktori, file, dan juga seluruh sistem file. Sebuah sistem file jarak jauh dengan fitur yang melimpah umumnya memiliki prokol komunikasi dengan operasi jarak jauh dan juga penerjemah path-name.

File-System: Linux vs Windows

Linux

Linux mendukung lebih dari 12 sistem file dengan teknologi NFS. Saat kode sistem operasinya terhubung, sistem file defaultnya harus ditentukan. Sistem file lainnya dapat dipanggil secara dinamis tergantung kebutuhan. Umumnya, sistem file ext menjadi pilihan terpopuler. Sistem tersebut mirip dengan sistem file Berkeley.

Sistem file ext mengasumsikan bahwa disk dimulai dari boot block. Disk tersebut terbuat dari serangkaian blockgroup yang dinomorkan secara sekuensial dan mengandung beberapa subfield. Organsiasi sistem dapat dipahami menggunakan gambar dibawah:

Detail setiap subfieild adalah sebagai berikut:

  1. Super Block – menentukan jumlah blok, i-nodes, ukuran blok, dll.
  2. Group Description – mengandung informasi tentang lokasi bitmap, jumlah blok kosong, i-nodes, direktori pada group, dll.
  3. Block Bitmap – mengandung sebuah list dari semua blok kosong
  4. I-node Bitmap – mengandung sebuah list dari semua i-node kosong
  5. I-node – memiliki panjang sebesar 128 byte.

Linux mendukung jenis file berikut:

  1. Direktori – seperti folder
  2. Ordinary File – file umum
  3. Symbolic link – suatu link ke file lain
  4. Special File – driver perangkat
  5. Named  Pipe – saluran antara dua proses atau lebih untuk pertukaran data

Windows

Windows 2000 (W2K) mendukung beberapa jenis sistem file termasuk tabel alokasi file (FAT) yang berjalan pada Windows 95, MS-DOS, dan OS/2. Namun, para pengembang W2K juga merancang sistem file baru, yaitu NTFS yang ditujukan untuk memenuhi kebutuhan high-end dari server dan workstation. Contoh dari aplikasi high-end adalah:

  1. Aplikasi client-server
  2. Aplikasi ilmiah dan teknik yang memerlukan banyak resource
  3. Aplikasi jaringan untuk sistem korporasi besar.

NTFS sendiri adalah sistem file yang andal, yang dibangun dengan dasar sistem file yang sederhana. Fitur-fitur penting dari NTFS meliputi: recoverability, security, large disks and files, multiple data streams, dan general indexing facility.

Leave a Comment

Your email address will not be published. Required fields are marked *

* Kode Akses Komentar:

* Tuliskan kode akses komentar diatas: