ReactOS ora si avvia su ARM64: un passo avanti inatteso

ReactOS compie un passo importante verso ARM64: il kernel ora esegue il boot su sistemi UEFI compatibili. Un passo in avanti che estende il supporto oltre la storica architettura x86.
ReactOS ora si avvia su ARM64: un passo avanti inatteso

ReactOS continua a inseguire uno degli obiettivi più complessi in assoluto: ricreare un sistema operativo compatibile a livello binario con Microsoft Windows, senza utilizzare codice proprietario. Il progetto nacque negli anni ’90 come evoluzione di FreeWin95 e nel tempo ha costruito un kernel NT-like capace di eseguire applicazioni e driver Windows su architettura x86 e AMD64. Ora arriva un passaggio che fino a poco tempo fa sembrava quasi fuori portata: il boot sperimentale su piattaforme ARM64.

Dietro l’avvio di ReactOS su ARMv8-A c’è un delicato lavoro che coinvolge firmware UEFI, gestione delle interruzioni hardware, adattamento del layer HAL e inizializzazione del kernel. Il team ha mostrato una build funzionante all’interno di QEMU su chip Apple Silicon ARM64; un dettaglio interessante, perché conferma che la base del porting non si limita ai SoC ARM server-oriented ma punta anche a sistemi consumer moderni.

È importante ricordare che ReactOS non è un clone di Windows: il progetto punta soprattutto a garantire la compatibilità ABI e API con Windows NT, cioè la capacità di eseguire software e componenti pensati per Windows utilizzando le stesse interfacce di programmazione, incluse le librerie Win32, i servizi di sistema e parte della gestione dei driver hardware. Il progetto deve insomma riprodurre comportamenti spesso documentati in modo incompleto o dedotti tramite reverse engineering. Proprio per questo il passaggio verso ARM64 ha richiesto molto più di una semplice ricompilazione del codice sorgente.

ReactOS ARM64

Fonte dell’immagine: ReactOS/alula.

ReactOS: il significato del supporto ARM64 e il valore del progetto

La compatibilità ARM64 apre scenari tecnici interessanti. Microsoft stessa ha investito molto su Windows on ARM con Windows 11 26H1 destinato a migliorare proprio il supporto dei chip Qualcomm Snapdragon di nuova generazione. ReactOS prova a inserirsi nello stesso territorio, nonostante sia un software che per 30 anni non è mai uscito dalla versione alpha.

Giudicare ReactOS soltanto come “sistema operativo incompleto” rischia di essere riduttivo. Il suo peso tecnico, infatti, è evidente sul piano del reverse engineering, sulla documentazione implicita delle API NT, sulla compatibilità binaria e sullo studio dell’architettura Windows.

ReactOS tenta infatti di replicare componenti estremamente complessi del kernel Windows: Object Manager, I/O Manager, gestione degli IRP, sincronizzazione kernel-mode, sottosistema Win32 e loader PE. Ricostruisce pezzo dopo pezzo il comportamento di Windows NT senza poter accedere al sorgente Microsoft.

Per anni il progetto ha condiviso codice, test e correzioni con Wine: le due piattaforme seguono infatti strade differenti ma complementari. Mentre Wine traduce le API Windows sopra kernel Unix-like; ReactOS implementa invece un kernel NT compatibile. Molte correzioni nate in ReactOS finiscono indirettamente per migliorare l’esecuzione di applicazioni Windows su Linux.

C’è poi un altro aspetto spesso ignorato: il valore legale e metodologico del progetto. ReactOS ha adottato per anni regole rigidissime di clean-room reverse engineering per evitare problemi di copyright con Microsoft. Gli sviluppatori devono evitare contaminazioni con codice proprietario non pubblico, una prudenza che ha avuto un costo enorme.

L’arrivo del supporto ARM64 rafforza proprio questa dimensione tecnica. Non significa che ReactOS diventerà improvvisamente un concorrente di Windows 11 ARM; significa piuttosto che il progetto riesce ancora a esplorare architetture moderne, mantenendo vivo uno dei più ambiziosi esperimenti di compatibilità binaria mai tentati nel mondo del software libero.

Apple Silicon e il ruolo di QEMU

Lo screenshot condiviso dagli sviluppatori mostra ReactOS in esecuzione su QEMU virtualizzato sopra un chip Apple ARM64. È un dettaglio che merita attenzione.

GIC, acronimo di Generic Interrupt Controller, costituisce il sottosistema che gestisce gli interrupt ARM. Le versioni GICv2 e GICv3 differiscono parecchio sotto il profilo architetturale.

Apple Silicon non utilizza un controller interrupt standard GIC puro come le piattaforme ARM server tradizionali. Apple implementa infatti componenti personalizzati, compreso il proprio Apple Interrupt Controller. Per questo motivo il boot diretto di sistemi operativi non progettati specificamente per Apple Silicon risulta molto complicato.

QEMU semplifica il problema emulando un hardware ARM64 standardizzato, completo di GIC compatibile e firmware UEFI generico. ReactOS quindi non gira ancora nativamente sui Mac M1 o M2; al momento sfrutta un ambiente virtualizzato che nasconde le differenze hardware più complesse.

Portare un kernel NT-like su ARM64 non significa soltanto compilare codice AArch64: serve un layer hardware coerente. Senza quello il kernel non può dialogare correttamente con timer, interrupt controller e controller PCIe.

Perché il progetto interessa ancora sviluppatori e ricercatori

ReactOS continua ad attirare interesse per diversi motivi: dal punto di vista accademico e tecnico offre una rara opportunità di studiare internamente il funzionamento di un sistema compatibile Windows NT. Per chi lavora su reverse engineering, sicurezza e compatibilità binaria, il progetto rappresenta una fonte preziosa.

Windows NT nacque con un design relativamente portabile: DEC Alpha, MIPS, PowerPC e Itanium ricevettero versioni ufficiali. Il ritorno di ReactOS su ARM64 ricorda proprio quella filosofia originaria di NT, molto più hardware-agnostic rispetto a quanto si pensi oggi.

Resta comunque una sfida enorme: il software Windows da componenti sempre più integrate con servizi Microsoft proprietari, virtualizzazione VBS, Secure Boot avanzato e driver firmati. ReactOS non può replicare facilmente tutte queste tecnologie.

Nonostante i limiti, però, il boot ARM64 segna un progresso concreto segnando l’uscita del kernel ReactOS dal perimetro storico del PC x86 classico.

Ti consigliamo anche

Link copiato negli appunti