Linux si avvia dalla morte di Windows, merito della schermata blu

Anche se può sembrare più uno scherzo che una reale funzione, potrebbe aprire la strada a nuovi orizzonti.

Avatar di Luca Rocchi

a cura di Luca Rocchi

Managing Editor

Il programmatore NSG650, sul canale di NTDEV, ha mostrato un driver che modifica il comportamento di una schermata blu di errore (BSOD) in Windows. Invece di riavviare automaticamente il computer, il driver avvia un emulatore Linux. Benché questa modifica sia più una curiosità che una vera utilità pratica, rappresenta una dimostrazione ingegnosa di come sfruttare le funzionalità del software in modi non intenzionali.

Il funzionamento del driver è relativamente semplice: sfrutta la funzionalità di callback del controllo bug incorporata in Windows. Quando si verifica un arresto anomalo o un BSOD, Windows cerca di capire la causa attraverso un controllo bug. Durante la routine di callback del controllo bug, i driver possono "ripristinare un dispositivo a uno stato noto", secondo il manuale di codifica di Microsoft. In pratica, ciò consente al driver di eseguire del codice anche dopo un arresto anomalo.

Mentre la maggior parte dei driver utilizzerebbe questa opportunità per aggiungere dati diagnostici al file di dump del crash, il driver di NSG650 inserisce un emulatore Linux RISC-V. Questo potrebbe essere considerato un uso non convenzionale della funzione di callback del controllo bug da parte di Microsoft. È importante sottolineare che questa procedura non necessita di un sistema dual boot, in cui siano installati sia Windows che Linux.

L'emulatore Linux RISC-V è limitato, simile a DOS o a un sistema operativo a riga di comando, e non può eseguire distribuzioni Linux complete come Ubuntu o Arch Linux. Tuttavia, il fatto che sia incredibilmente piccolo, con soli 400 righe di codice, è notevole rispetto ai milioni di righe di codice presenti nel kernel Linux completo. La limitatezza dell'emulatore potrebbe essere dovuta alla complessità o alla difficoltà di far funzionare una distribuzione Linux completa.

Sebbene questo driver possa sembrare un semplice scherzo tra Windows e Linux, offre l'opportunità di esplorare ulteriori possibilità sfruttando la funzionalità di callback del controllo bug. Non è chiaro fino a che punto sia possibile spingersi con questa modifica, ma se è stato possibile eseguire un emulatore non escludiamo che ci si possa spingere anche su altre funzioni.