Modalità Operative Intel 80386: Real, Protetto e Virtual 8086 a Confronto
L'Intel 80386 (1985) fu la prima CPU x86 a supportare il calcolo a 32 bit mantenendo la piena retrocompatibilità. Introdusse tre modalità operative distinte:
| Caratteristica | Modalità Reale | Modalità Protetta | Virtual 8086 |
|---|---|---|---|
| Predefinita al Reset | Sì | No (Switch tramite bit PE in CR0) | No (Task Gate / Flag VM86 in EFLAGS) |
| Larghezza Bus Indirizzi | 20-bit (A0–A19) | 32-bit (4 GB Fisico) | 20-bit (Emulato) |
| Memoria Indirizzabile Max | 1 MB | 4 GB Fisico / 64 TB Virtuale | 1 MB per VM |
| Modello di Segmentazione | Segmenti fissi 64 KB (Base = Selector × 16) | Basato su descrittori (GDT/LDT/IDT), 4 GB Limite per Segmento | Stile Modalità Reale, ma intrappolato dall'Hypervisor |
| Supporto Paginazione | No | Sì (Pagine 4 KB, CR3/PDBR) | No (L'OS Host Usa Paginazione) |
| Anelli di Protezione | Nessuno (Solo Ring 0) | 4 Anelli (0–3) | Esegue a Ring 3 (Trap a Ring 0) |
| Multitasking | Cooperativo (TSRs) | Preemptivo, Switch Task Hardware (TSS) | Più task VM86 sotto OS in Modalità Protetta |
| Ambiente OS Tipico | MS-DOS, DR-DOS, Primi Bootloader | Windows NT/95+, Linux, OS/2, Unix | App DOS sotto Windows 3.x / 9x / NTVDM |
| Set di Istruzioni | 8086 + Registri 32-bit (Prefissi Override Operando/Indirizzo) | Completo 32-bit (Registri 32-bit, Indirizzamento, Operandi) | Subset 8086 (Istruzioni privilegiate trappate) |
Significato Storico
- Modalità Protetta permise i moderni sistemi operativi preemptivi (Windows NT, Linux) con protezione della memoria e memoria virtuale.
- Virtual 8086 Mode fu la "funzione killer" per il mercato PC: permise l'integrazione senza soluzione di continuità di applicazioni DOS legacy (Windows 3.x, 95, 98, NTVDM in NT) all'interno di un ambiente in modalità protetta.
- Modalità Reale fu relegata all'esecuzione BIOS, bootloader e inizializzazione kernel iniziale prima del passaggio alla Modalità Protetta.