FAT
Sistem berkas FAT adalah sebuah sistem berkas yang menggunakan struktur tabel alokasi berkas sebagai cara dirinya beroperasi. Untuk penyingkatan, umumnya orang menyebut sistem berkas FAT sebagai FAT saja. Kata FAT sendiri adalah singkatan dari File Allocation Table, yang jika diterjemahkan secara bebas ke dalam Bahasa Indonesia menjadi Tabel Alokasi Berkas. Arsitektur FAT sekarang banyak digunakan secara luas dalam sistem komputer dan kartu-kartu memori yang digunakan dalam kamera digital atau pemutar media portabel.
FAT pertama kali dikembangkan oleh Bill Gates dan Marc McDonald, pada tahun 1976-1977. Sistem berkas ini merupakan sistem berkas utama untuk sistem operasi yang ada saat itu, termasuk di antaranya adalah Digital Research Disk Operating System (DR-DOS), OpenDOS, FreeDOS, MS-DOS, IBM OS/2 (versi 1.1, sebelum berpindah ke sistem HPFS), dan Microsoft Windows (hingga Windows Me). Untuk disket, FAT telah distandardisasikan sebagai
ECMA-107 dan ISO/IEC 9293. Standar-standar tersebut hanya mencakup FAT12 dan FAT16 tanpa dukungan nama berkas panjang, karena memang beberapa bagian dalam standar nama file panjang di dalam sistem berkas FAT telah dipatenkan.
Sistem berkas ini digunakan oleh sistem operasi MS-DOS (hanya versi FAT12 dan FAT16), Windows (hampir semua versi Windows; untuk versi FAT yang didukung olehnya lihat pada bagian versi), GNU/Linux, dan masih banyak sistem operasi lainnya yang juga mendukung, termasuk Macintosh Mac OS/X.
Ada beberapa versi dari sistem berkas FAT, yang dibedakan dari berapa banyak unit alokasi yang didukungya, yakni sebagai berikut:
FAT12 adalah sistem berkas yang menggunakan ukuran unit alokasi yang memiliki batas hingga 12-bit, sehingga hanya dapat menyimpan maksimum hingga 212 unit alokasi saja (4096 buah). Sistem berkas ini adalah sistem berkas asli dari FAT yang pertama kali digunakan dalam sistem operasi MS-DOS.
Karena beberapa sistem operasi Windows menggunakan ukuran unit alokasi sistem berkas yang dibuat berdasarkan ukuran sektor (kelipatan 512 byte, dari 1 sektor hingga 16 sektor), FAT12 memiliki batasan pada kapasitasnya, yakni hingga 32 Megabyte. Karena itulah, FAT12 umumnya hanya digunakan sebagai sistem berkas untuk media penyimpanan floppy disk. Tabel berikut berisi informasi sistem operasi apa saja yang mendukung sistem berkas FAT12.
FAT16 adalah sistem berkas yang menggunakan unit alokasi yang memiliki batas hingga 16-bit, sehingga dapat menyimpan hingga 216 unit alokasi (65536 buah). Sistem berkas ini memiliki batas kapasitas hingga ukuran 4 Gigabyte saja. Ukuran unit alokasi yang digunakan oleh FAT16 bergantung pada kapasitas partisi yang hendak diformat: jika ukuran partisi kurang dari 16 Megabyte, maka
Windows akan menggunakan sistem berkas FAT12, dan jika ukuran partisi lebih besar dari 16 Megabyte, maka Windows akan menggunakan sistem berkas FAT16. Tabel berikut berisi informasi sistem operasi apa saja yang mendukung sistem berkas FAT16.
VFAT adalah sebuah variasi sistem berkas FAT16 yang mendukung nama berkas panjang, hingga 255 karakter. Sistem berkas ini diintegrasikan ke dalam sistem operasi Windows 95 dan Windows NT 3.51. Meskipun mendukung nama berkas panjang, sebenarnya dalam struktur sistem berkas ini tidak ada perubahan yang signifikan. Bahkan nama berkas panjang akan memakai beberapa entri direktori secara sekaligus.
FAT32 adalah versi sistem berkas FAT yang paling baru, yang diperkenalkan ketika Microsoft merilis Windows 95 OEM Service Release 2 (Windows 95 OSR2). Tabel sistem operasi Windows yang mendukung sistem berkas FAT32 ini sebagai berikut.
Karena menggunakan tabel alokasi berkas yang besar (32-bit), FAT32 secara teoretis mampu mengalamati hingga 232 unit alokasi (4294967296 buah). Meskipun demikian, dalam implementasinya, jumlah unit alokasi yang dapat dialamati oleh FAT32 adalah 228 (268435456 buah). Ukuran unit alokasi maksimum dapat mencapai 32768 byte (64 sektor), sehingga secara teoretis dapat mengalamati 8
terabytes (8192 Gigabytes), meski tidak disarankan. Selain itu, program instalasi beberapa keluarga sistem operasi Windows NT 5.x ke atas hanya mengizinkan pembuatan partisi FAT32 hingga 32 Gigabyte (jika partisi lebih besar dari 32 GB, maka program instalasi Windows hanya menyediakan sistem berkas NTFS). Dalam instalasi sistem operasi Windows NT 5.x ke atas, jika ukuran partisi dimana Windows diinstalasikan kurang dari 2 Gigabyte, program
instalasi akan menggunakan sistem berkas FAT16; dan berlaku sebaliknya, jika partisi dimana Windows hendak diinstalasikan lebih dari 2 Gigabyte, program instalasi akan menggunakan sistem berkas FAT32. FAT32 menggunakan ukuran unit alokasi yang lebih kecil dibandingkan dengan sistem berkas FAT12/FAT16, sehingga FAT32 lebih efisien ketika diaplikasikan pada partisi yang besar (ukurannya
lebih besar daripada 512 Megabyte). Penghematan yang dilakukan oleh FAT32 dibandingkan dengan FAT16/FAT12 kira-kira adalah 20% hingga 27%. Windows 98 memiliki utilitas yang dapat digunakan untuk mengonversi partisi FAT16 menjadi FAT32 tanpa kehilangan data.
Berikut ini adalah tabel perbandingan ukuran partisi dan ukuran unit alokasi sistem berkas (default) yang digunakan oleh sistem berkas FAT.
Tabel alokasi berkas atau File Allocation Table merupakan sebuah tabel yang dipelihara di dalam hard disk atau media penyimpanan lainnya oleh sistem operasi yang bertindak sebagai "daftar isi media penyimpanan", yang menunjukan dimana direktori dan berkas disimpan di dalam disk.
Ketika sebuah media penyimpanan diformat dengan menggunakan FAT, sistem berkas ini akan membuat sebuah tabel alokasi berkas yang disimpan pada lokasi yang dekat dengan permulaan media penyimpanan tersebut. Media penyimpanan yang dimaksud adalah media penyimpanan seperti sebuah hard disk, sebuah partisi dalam sebuah hard disk, atau media penyimpanan portabel. Selain membuat satu tabel alokasi berkas, sistem
berkas tersebut juga membuat salinan dari sistem berkas tersebut, dan berada pada media penyimpanan yang sama. Jika salah satu salinan mengalami kerusakan, maka sistem berkas akan menggunakan salinan yang lain, dan mengganti tabel yang rusak tersebut dengan salinan yang masih baik (cara kerja ini disebut dengan FAT Mirroring, yang bekerja seperti layaknya RAID 1). Lokasi tabel alokasi
berkas ditentukan di dalam sebuah area yang disebut dengan BIOS Parameter Block (BPB) dalam boot sector sebuah media penyimpanan yang menggunakan sistem berkas FAT.
FAT16 akan membuat dua buah tabel alokasi berkas, yang diberi nama FAT1 dan FAT2. Tabel alokasi berkas akan diletakkan pada area tertentu, yakni pada lokasi yang berdekatan dengan boot sector. Tabel alokasi berkas akan berisi informasi-informasi berikut:
Unused, yang menandakan bahwa unit alokasi tersebut tidak terpakai In use, yang menandakan bahwa unit alokasi tersebut tidak dapat digunakan karena sedang digunakan oleh sebuah berkas tertentu. Bad, yang menandakan bahwa unit alokasi tersebut tidak dapat digunakan karena mengalami kerusakan. Last cluster, yang menandakan bahwa unit alokasi tersebut merupakan unit alokasi terakhir yang dimiliki oleh sebuah berkas.
Dalam strukturnya, FAT16 membedakan antara direktori akar (root directory) dan direktori lainnya, karena memang desain FAT16 menentukan lokasi direktori akar pada lokasi yang spesifik, dan memiliki batasan jumlah entri yang dapat disimpan (hanya dapat menampung 512 entri).
Direktori akar pada sistem berkas FAT16 terdiri dari sebuah ukuran yang tetap dan diketahui, karena berkas-berkas sistem operasi biasanya langsung diletakkan segera setelah direktori akar tersebut. Lokasi yang diketahui untuk berkas-berkas sistem operasi ini mengizinkan sistem operasi DOS, OS/2, atau Windows NT untuk langsung memulai proses booting sistem operasi. Tetapi, keputusan desain ini juga membatasi jumlah file yang dapat ditampung di dalam sebuah direktori akar dari sebuah volume FAT16.