File system dei floppy disk: FAT12, FAT16 e l'eredità della semplicità
I floppy disk usavano esclusivamente la famiglia di file system FAT (File Allocation Table). La variante specifica dipendeva dalla capacità del formato del disco e dall'era del sistema operativo.
Varianti FAT per formato floppy
| Formato floppy | Capacità (formattato) | Settori/Cluster | Tipo FAT | Volume max | Era / OS |
|---|---|---|---|---|---|
| 8 pollici (SS/SD) | 256 KB – 1,2 MB | 1–4 | FAT12 | 32 MB | CP/M-86, primi DOS 1.x |
| 5,25″ DD (360 KB) | 360 KB | 2 | FAT12 | 32 MB | DOS 2.0+ (1983) |
| 5,25″ HD (1,2 MB) | 1,2 MB | 1 | FAT12 | 32 MB | DOS 3.0+ (1984) |
| 3,5″ DD (720 KB) | 720 KB | 2 | FAT12 | 32 MB | DOS 3.2+ (1986) |
| 3,5″ HD (1,44 MB) | 1,44 MB | 1 | FAT12 | 32 MB | DOS 3.3+ (1987) |
| 3,5″ ED (2,88 MB) | 2,88 MB | 2 | FAT12 (raramente FAT16) | 32 MB / 2 GB | DOS 5.0+ / OS/2 |
| LS-120 / LS-240 (SuperDisk) | 120 / 240 MB | 32 / 64 | FAT16 (o FAT32) | 2 GB / 32 GB | Win 98/2000 |
| Zip 100/250/750 | 100–750 MB | 64/128 | FAT16 / FAT32 | 2 GB / 32 GB | Win 95/98/NT |
Perché FAT12 dominava i floppy
- Indirizzamento cluster: FAT12 usa indirizzi cluster a 12 bit (4096 cluster max). Perfetto per volumi < 2 MB. FAT16 (65k cluster) spreca spazio su dischi minuscoli (dimensione cluster ≥ 32 KB → enorme spazio slack).
- Overhead: settore di boot FAT12 + 2 FAT + Directory Radice (14 settori) = ~12 KB overhead. Minimo.
- Universalità: DOS, Windows, OS/2, Linux, macOS, RTOS embedded leggono/scrivono FAT12 nativamente. Zero problemi di driver.
- Semplicità: catena di cluster a lista collegata. Facile da implementare in 8 KB di ROM BIOS. Nessun journaling, ACL, compressione, cifratura.
Elementi strutturali chiave (FAT12 su 1,44 MB)
- Settore di boot (Settore 0): BPB (BIOS Parameter Block) — byte/settore, settori/cluster, settori riservati, numero FAT, voci root, settori totali, descrittore supporto, settori/FAT.
- FAT 1 & 2 (Settori 1–18): due copie per ridondanza. Ogni voce 1,5 byte (12 bit). Valori: 000=Libero, FF8-FFF=Difine/Fine-catena, 002-FF7=Cluster successivo.
- Directory Radice (Settori 19–32): 224 voci fisse (32 byte ciascuna). Nomi file 8.3. Nessuna sottodirectory nella root (le subdir sono cluster nell'area dati).
- Area dati (Settore 33+): Cluster 2–2879 (2880 cluster × 512 byte = 1,44 MB).
Limitazioni che ne decretarono la fine per gli HDD (ma non per i floppy)
- Volume max 32 MB (FAT12) / 2 GB (FAT16 con cluster da 32K).
- Nessun permesso, nessun nome file lungo (VFAT/LFN aggiunto in Win95), nessun journaling (corruzione su perdita di alimentazione), frammentazione grave.
- Limite voci directory root (224 per 1,44M).
Contesto moderno
- Lettori floppy USB vengono ancora montati come FAT12.
- Sistemi embedded (stampanti 3D, CNC, oscilloscopi) usano ancora FAT12/16 su SD card per G-code/config.
- DOSBox, VM, hobbisti del retro-computing tengono in vita FAT12.
In sintesi: FAT12 era la soluzione perfetta per i vincoli dei floppy: capacità ridotta, interoperabilità universale, ingombro ROM minimo. La sua semplicità è il motivo per cui è persistito 30+ anni.