Intel afferma che i processori Intel 64 escono dal reset nello stesso stato del processore Intel 8086. Anche la documentazione AMD, secondo quanto riportato da XDA Developers, descrive un ingresso iniziale in modalità reale. È uno stato di avvio ereditato, non un’emulazione completa dell’8086. Intel XDA Developers
La distinzione conta anche sui PC con UEFI: il firmware può passare rapidamente a modalità più moderne, ma UEFI non cambia da solo lo stato di reset del processore. E il codice a 16 bit può ricomparire quando il sistema avvia altri core.
Che cosa significa partire in modalità reale
Nel modello convenzionale della modalità reale, l’indirizzo si calcola sommando l’offset al valore del segmento moltiplicato per 16. Con segmenti e offset a 16 bit, questo schema produce indirizzi a 20 bit e uno spazio nominale di 1 MiB.
Il calcolo non descrive però il particolare stato di reset dei processori moderni. XDA Developers riporta che il punto di prelievo iniziale è FFFFFFF0h, a 16 byte da 4 GiB, con una base nascosta del registro di segmento CS. È una condizione speciale di reset, distinta dal normale modello segmento più offset.
UEFI riguarda invece il percorso firmware: non obbliga il bootloader del sistema operativo a eseguire in modalità reale, ma non sostituisce il contratto di reset della CPU. La modalità reale può quindi essere una fase molto breve all’avvio, pur restando parte dell’architettura.
I registri di segmento conservano stato nascosto
La modalità reale non è una replica integrale dell’8086. Come spiega OS/2 Museum, i registri di segmento hanno attributi interni non visibili nel loro valore: caricare un segmento aggiorna il selettore e la base, mentre limiti e altri attributi possono derivare dai descrittori già presenti.
Questo stato aiuta a capire perché cambiare modalità non basta sempre a ripristinare il comportamento atteso. In una discussione su un caso specifico in QEMU, un partecipante di OSDev.org osserva che un salto lontano, da solo, non azzera gli attributi conservati: la transizione deve caricare descrittori a 16 bit mentre il processore è ancora in modalità protetta. La risposta su OSDev.org
Il tutorial in inglese di Daedalus Community mostra codice assembly per configurare la Global Descriptor Table e passare dalla modalità reale a quella protetta: è una dimostrazione software della transizione, non del reset del processore.
Perché l’avvio di altri core conserva codice a 16 bit
Con la sequenza tradizionale, il processore invia a un core aggiuntivo un segnale INIT e poi un SIPI. Il vettore SIPI indirizza il codice di avvio sotto 1 MiB, dove il core comincia in modalità reale. Per un’architettura senza queste modalità legacy servirebbe un meccanismo sostitutivo.
Le osservazioni di Adam Conway, pubblicate da XDA Developers, mostrano quanto questo passaggio sopravviva nel software. Nel percorso ordinario di avvio con QEMU e OVMF, Conway ha contato 18 indirizzi di istruzione distinti in modalità reale prima del passaggio alla modalità protetta. In un test separato con Linux 6.18 e due core virtuali, ha contato 67 istruzioni a 16 bit nella sequenza di avvio del secondo core. Sono risultati di due percorsi diversi, non misure intercambiabili. XDA Developers
Conway ha inoltre individuato gli stub HalpRMStub, HalpPMStub e HalpLMStub nella build di Windows 11 10.0.28000.3086. Sono esempi legati a quella build e alle analisi riportate, non una descrizione indistinta di ogni versione di Windows.
Che cosa avrebbe cambiato X86S
Nel 2023 Intel propose X86S, un’architettura x86 semplificata e limitata alle modalità a 64 bit. Il progetto prevedeva un avvio diretto in modalità paginata a 64 bit e un’alternativa a SIPI per avviare i core aggiuntivi. Intel spiegò che l’avvio tradizionale richiede passaggi di transizione e codice trampoline, da sostituire in un’architettura senza modalità legacy. Documento ufficiale Intel su X86S
| Design di avvio | Stato iniziale | Avvio dei core aggiuntivi | Differenza pratica |
| x86 documentato | Stato di reset associato alla modalità reale dell’8086 | Sequenza INIT e SIPI, con codice iniziale in modalità reale | Firmware e sistema operativo gestiscono passaggi legacy prima di arrivare a modalità più moderne |
| X86S proposto | Avvio diretto in modalità paginata a 64 bit | Meccanismo a 64 bit in sostituzione dell’avvio tradizionale con SIPI | Avrebbe eliminato la necessità di quei passaggi legacy, introducendo un nuovo percorso di avvio |
Intel ha dichiarato di mantenere un impegno di lunga data per la compatibilità software e, nel dicembre 2024, ha comunicato di aver scelto di non proseguire con X86S dopo i riscontri dell’ecosistema. La proposta avrebbe richiesto sostituti per i meccanismi di avvio esistenti; Intel ha anche descritto la virtualizzazione come possibile via per supportare sistemi operativi legacy a 64 bit. Intel