Sistem berkas FAT atau
FAT File System 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.
Versi
Ada beberapa versi dari sistem berkas FAT, yang dibedakan dari berapa
banyak
unit alokasi
yang didukungya, yakni sebagai berikut:
FAT12
FAT12 adalah sistem berkas yang menggunakan ukuran
unit alokasi yang memiliki batas
hingga 12-bit, sehingga hanya dapat menyimpan maksimum hingga 2
12
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.
| Sistem operasi |
Dukungan |
| MS-DOS |
Ya (semua versi MS-DOS) |
| Windows 95 (semua versi) |
Ya |
| Windows 98 |
Ya |
| Windows Millennium Edition |
Ya |
| Windows NT 3.x |
Ya |
| Windows NT 4.0 |
Ya |
| Ya |
| Windows XP |
Ya |
| Windows Server 2003 |
Ya |
| Windows Vista |
Ya |
FAT16
FAT16 adalah sistem berkas yang menggunakan
unit alokasi yang memiliki batas
hingga 16-bit, sehingga dapat menyimpan hingga 2
16
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.
| Sistem operasi |
Dukungan |
| MS-DOS |
Ya (versi 4.x ke atas); Tidak (sebelum versi 4.x) |
| Windows 95 (semua versi) |
Ya |
| Windows 98 |
Ya |
| Windows Millennium Edition |
Ya |
| Windows NT 3.x |
Ya |
| Windows NT 4.0 |
Ya |
| Windows 2000 |
Ya |
| Windows XP |
Ya |
| Windows Server 2003 |
Ya |
| Windows Vista |
Ya |
VFAT (Virtual FAT)
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
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.
| Sistem operasi |
Dukungan |
| MS-DOS |
Tidak |
| Windows
95 (versi awal) |
Tidak |
| Windows
95 OSR2 |
Ya |
| Windows
98 |
Ya (Windows 98 juga memiliki utilitas untuk mengonversi FAT16 ke
FAT32) |
| Windows Millennium Edition |
Ya |
| Windows
NT 3.x |
Tidak |
| Windows NT 4.0 |
Tidak
(Beberapa perusahaan, seperti Winternals membuat driver FAT32
untuk Windows NT 4.0) |
| Windows 2000 |
Ya
(Windows 2000 membatasi kapasitas partisi FAT32 yang dapat dibuat hingga
32768 Megabytes saja) |
| Windows
XP |
Ya
(Windows XP membatasi kapasitas partisi FAT32 yang dapat dibuat hingga
32768 Megabytes saja) |
| Windows Server 2003 |
Ya
(Windows Server 2003 membatasi kapasitas partisi FAT32 yang dapat dibuat
hingga 32768 Megabytes saja) |
| Windows Vista |
Ya
(Windows Vista membatasi kapasitas partisi FAT32 yang dapat dibuat
hingga 32768 Megabytes saja) |
Karena menggunakan tabel alokasi berkas yang besar (32-bit), FAT32
secara teoritis mampu mengalamati hingga 2
32 unit alokasi (4294967296 buah).
Meskipun demikian, dalam implementasinya, jumlah
unit alokasi yang dapat dialamati
oleh FAT32 adalah 2
28
(268435456 buah). Ukuran unit alokasi maksimum dapat mencapai 32768
byte (64 sektor), sehingga secara teoritis 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 di mana Windows diinstalasikan kurang dari 2 Gigabyte, program
instalasi akan menggunakan sistem berkas FAT16; dan berlaku sebaliknya,
jika partisi di mana 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 dari pada 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.
Karakteristik
dan fitur setiap versi
Berikut ini adalah tabel perbandingan ukuran partisi dan ukuran unit
alokasi sistem berkas (
default) yang digunakan oleh sistem berkas
FAT.
| Ukuran partisi |
FAT12 |
FAT16 |
FAT32 |
| 0 MB hingga 6 MB |
1024 byte (2 sektor) |
Tidak didukung |
Tidak didukung |
| 7 MB hingga 16 MB |
2048 byte (4 sektor) |
Tidak didukung |
Tidak didukung |
| 17 MB hingga 32 MB |
4096 byte (8 sektor) |
512 byte (1 sektor) |
Tidak didukung |
| 33 MB hingga 64 MB |
Tidak didukung |
1024 byte (2 sektor) |
512 byte (1 sektor) |
| 65 MB hingga 128 MB |
Tidak didukung |
2048 byte (4 sektor) |
1024 byte (2 sektor) |
| 129 MB hingga 256 MB |
Tidak didukung |
4096 byte (8 sektor) |
2048 byte (4 sektor) |
| 257 MB hingga 512 MB |
Tidak didukung |
8192 byte (16 sektor) |
4096 byte (8 sektor) |
| 513 MB hingga 1024 MB |
Tidak didukung |
16384 byte (32 sektor) |
4096 byte (8 sektor) |
| 1025 MB hingga 2048 MB |
Tidak didukung |
32768 byte (64 sektor) |
4096 byte (8 sektor) |
| 2049 MB hingga 4096 MB |
Tidak didukung |
65536 byte (128 sektor)
Hanya dapat digunakan dalam keluarga Windows NT |
4096 byte (8 sektor) |
| 4097 MB hingga 8192 MB |
Tidak didukung |
Tidak didukung |
4096 byte (8 sektor) |
| 8192 MB hingga 16384 MB |
Tidak didukung |
Tidak didukung |
8192 byte (16 sektor) |
| 16385 MB hingga 32768 MB |
Tidak didukung |
Tidak didukung |
16384 byte (32 sektor) |
| 32769 MB - 127.5 GB |
Tidak didukung |
Tidak didukung |
32768 byte (64 sektor) |
| 127.5 GB - 2 TB |
Tidak didukung |
Tidak didukung |
65536 (128 sektor) |
Tabel berikut berisi informasi mengenai karakteristik dan fitur sistem
berkas FAT
| Karakteristik |
FAT12 |
FAT16 |
FAT32 |
| Panjang nama berkas maksimum |
8.3 dalam sistem operasi MS-DOS,
hingga 260 karakter dalam sistem operasi Windows 32-bit |
8.3 dalam sistem operasi MS-DOS,
hingga 260 karakter dalam sistem operasi Windows 32-bit |
Hingga 260 karakter dalam sistem operasi Windows 32-bit,
juga membuat format nama berkas 8.3 |
| Fitur keamanan |
Tidak ada |
Tidak ada |
Tidak ada |
| Fitur kompresi data |
Tidak ada |
Tidak ada |
Tidak ada |
| Jumlah unit alokasi tabel alokasi berkas |
12-bit (4096 buah) |
16-bit (65536 buah), |
32-bit (teoritis), 28-bit (praktik) |
| Jumlah unit alokasi fisik tiap partisi |
32680 sektor |
65524 buah unit alokasi
(seharusnya 65536 buah, tapi beberapa unit alokasi telah direservasikan) |
65527 buah unit alokasi
(seharusnya 65536 buah, tapi beberapa unit alokasi telah direservasikan) |
| Ukuran unit alokasi maksimum |
|
64 KB (maksimum); 32 KB (disarankan) |
64 KB (teoritis); 32 KB (praktik); 16 KB (disarankan) |
| Kisaran ukuran unit alokasi |
512 byte hingga 2048 byte |
512 byte hingga 65536 byte |
512 byte hingga 65536 byte |
| Ukuran partisi maksimum |
32 MB |
2 GB (pada semua sistem operasi); 4 GB (hanya pada keluarga Windows
NT) |
8 TB (teoritis), 2 TB (implementasi; limitasi ini dikarenakan tabel
partisi dalam skema partisi MBR yang digunakan oleh FAT32), 32 GB (Windows NT 5.x
ke atas) |
| Ukuran berkas maksimum |
|
4 GB - 1 byte (232-1 byte) |
4 GB - 1 byte (232-1 byte) |
| Jumlah berkas
tiap partisi |
|
65536 berkas |
4177920 berkas |
| Jumlah berkas maksimum dalam direktori akar |
|
512 berkas (Penggunaan nama berkas panjang
(nama berkas yang tidak menggunakan format 8.3) dapat mengurangi jumlah
ini secara signifikan) |
65534 berkas (Penggunaan nama berkas panjang
dapat mengurangi jumlah ini secara signifikan) |
| Saran penggunaan |
Media penyimpanan kurang dari 16 MB |
Media penyimpanan dari 16 MB hingga 511 |
Media penyimpanan dari 512 MB hingga 32768 MB. Gunakan NTFS atau
sistem berkas lainnya untuk media penyimpanan yang lain. |
Tabel Alokasi Berkas
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 di mana
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.
Entri-entri di dalam direktori akar dan juga sub-direktori tidak
diurutkan sehingga proses pencarian terhadap berkas-berkas tertentu
dapat memakan waktu yang lama, apalagi jika volume tersebut mengandung
banyak berkas dalam sebuah direktori.
Tabel alokasi berkas dan juga direktori akar selalu diletakkan pada awal
sebuah volume, atau biasanya terletak pada lokasi
track terluar
dari sebuah
disk.
Entri-entri tersebut merupakan entri-entri yang sering sekali dibaca
dari sebuah disk, utamanya pada sistem operasi yang mendukung
multitasking, yang membutuhkan banyak
pergerakan head hard disk yang lamban.
Bagaimana
sebuah berkas disimpan dalam volume FAT16
Sistem berkas FAT-16 menggunakan unit alokasi (atau cluster) sebagai
unit terkecil bagaimana ia dapat menyimpan berkas. FAT-16 mendukung
ukuran cluster dari 1 hingga 128
sektor.
Selanjutnya, ada juga entri direktori yang menyediakan ruangan yang
cukup untuk menampung berkas dengan nama berkas berformat 8.3 (delapan
nama berkas plus tiga nama ekstensi). Entri direktori pada sistem berkas
FAT-16 memiliki entri sebesar 32 byte untuk setiap berkas dan
subdirektori yang dikandung oleh direktori tersebut. Entri direktori
tersebut mengandung field-field berikut.
| Field |
Ukuran dalam bit |
Ukuran dalam byte |
| Nama berkas |
64 |
8 |
| Ekstensi berkas |
24 |
3 |
| Atribut berkas |
8 |
1 |
| Ruangan yang dicadangkan untuk berkas |
80 |
10 |
| Stempel waktu berkas |
16 |
2 |
| Stempel tanggal berkas |
16 |
2 |
| Alamat cluster pertama berkas dalam tabel alokasi berkas |
16 |
2 |
| Ukuran berkas terbesar |
32 |
4 |
Struktur organisasi dalam sistem berkas FAT16 tidaklah terlalu rumit
rumit. Berkas-berkas akan diberikan lokasi yang pertama kali ditemukan
oleh sistem berkas dalam sebuah partisi. Selanjutnya, sistem berkas akan
memberikan nomor terhadap lokasi tersebut, yang disebut dengan
cluster
number,
yang merupakan alamat lokasi cluster di mana berkas dimulai. Setiap
cluster berisi penunjuk (pointer) terhadap cluster berikutnya untuk
berkas yang sama, atau indikasi bahwa cluster yang bersangkutan
merupakan akhir dari rangkaian cluster sebuah berkas yang ditandai
dengan bilangan basis 16 (hexadecimal) 0xFFFF (FAT16), atau 0xFFF
(FAT12). Sebagai contoh, pada sebuah berkas yang menggunakan 10 buah
cluster, berkas tersebut akan memiliki 10 buah entri di dalam tabel
alokasi file, dan juga 9 buah tautan terhadap tabel alokasi file
tersebut, sedangkan 1 cluster terakhir berisi tanda bahwa ia adalah
cluster terakhir, dan berisi bilangan 0xFFFF. Umumnya, struktur sistem
berkas seperti ini disebut sebagai struktur
linked-list.
exFAT
exFAT (singkatan dari Extended File Allocation Table, atau sering
disebut sebagai FAT64) adalah sebuah sistem berkas proprietary yang
cocok untuk digunakan oleh media-media penyimpanan berbasis memori
flash. Sistem berkas ini pertama kali dibuat oleh Microsoft untuk
perangkat-perangkat benam di dalam Windows Embedded CE 6.0 dan Windows
Vista Service Pack 1. Diperkenalkan pada bulan November 2006, sistem
berkas ini dapat digunakan sebagai alternatif dari sistem berkas NTFS,
karena memang NTFS memiliki struktur data yang relatif lebih besar
ketimbang exFAT.
Keunggulan exFAT
Beberapa keunggulan yang ditawarkan oleh exFAT adalah sebagai berikut:
- Skalabilitas untuk HDD (hard disk drive) berukuran besar.
- Ukuran berkas teoritis maksimal 264 (16 EiB). Sebagai perbandingan,
FAT-32 hanya mendukung ukuran berkas maksimal hingga 232 (4 GB).
- Ukuran Cluster yang didukung hingga 2255 Sector, dengan batasan
implementasi hingga 32 MB (Megabyte).
- Performa untuk alokasi ruangan kosong dan penghapusan ditingkatkan
karena file system ini memperkenalkan implementasi baru, yaitu Free
Space Bitmap
- Mendukung lebih dari 216 (65536) berkas di dalam sebuah direktori
tunggal.
- Mendukung fitur access control list (ACL), seperti halnya NTFS.
Sayangnya, fitur ini belum didukung sepenuhnya di dalam Windows Vista
Service Pack 1.
- Mendukung Transaction-Safe FAT File System (sebuah fungsi opsional
untuk Windows CE yang diaktifkan).
- Memiliki ruangan tersendiri yang bisa digunakan oleh OEM untuk
melakukan kustomisasi terhadap sistem berkas untuk karakteristik
perangkat tertentu.
- Timestamp dapat ditampilkan dalam UTC, tidak hanya dalam local time
saja.
Kelemahan exFAT
Beberapa kelemahan yang dimiliki oleh exFAT, jika dibandingkan dengan
file system FAT sebelumnya (FAT12, FAT16, atau FAT32) adalah:
- Perangkat yang menggunakan file system exFAT tidak bisa menggunakan
kemampuan ReadyBoost milik Windows Vista (namun pada Windows 7,
Microsoft sudah membuat file system exFAT yang baru dengan dukungan
ReadyBoost).
- Status lisensi yang belum jelas. Akan tetapi, Microsoft telah
mempatenkan beberapa bagian dari file system FAT.
- Tidak bisa diakses oleh sistem-sistem operasi Windows terdahulu,
sebelum Windows Vista Service Pack 1 atau Windows CE 6.0.
- Belum tersedia implementasi dalam proyek open source