Sapete che è possibile eseguire Windows in un browser Web senza modificare la configurazione del dispositivo che si sta utilizzando?
Si tratta di una possibilità che permette di provare Windows e gli altri sistemi operativi da una finestra dell’applicazione preferita per navigare in rete. Alcuni servizi online offrono questa possibilità gratuitamente, spesso per mostrare il funzionamento delle vecchie versioni di Windows o di altre piattaforme: l'”effetto nostalgia” è assicurato.
In altri casi, invece, appositi servizi accessibili via Web consentono di interagire con vere e proprie installazioni di Windows allestite su server remoti.
Si pensi ad esempio a Windows 365 Cloud PC, uno strumento presentato da Microsoft che permette di accedere a un’installazione di Windows perfettamente funzionante (effettuata sul cloud) da qualunque dispositivo client, indipendentemente dalla sua tipologia e dalla sua configurazione.
Si è anche parlato dell’arrivo di una nuova funzionalità che permette di unire Windows 11 con Windows 365 Cloud PC: gli utenti possono decidere se avviare la copia locale del sistema operativo Microsoft oppure un’installazione sul cloud.
Ad ogni modo, l’idea alla base di Windows 365 Cloud PC è quella di offrire una piattaforma indipendente utilizzabile a distanza da qualunque sistema che può diventare un semplice Thin PC ovvero un sistema con una configurazione hardware modesta che si limita a offrire lo stretto necessario per interagire con un’installazione di Windows offerta tramite cloud. La potenza computazionale si sposta insomma sul cloud e il Thin PC deve soltanto mostrare ciò che riceve dal server remoto.
Differenza tra emulazione e virtualizzazione
Nel caso di Windows 365 Cloud PC l’istanza del sistema operativo Microsoft viene virtualizzata su server cloud.
Questo tipo di soluzioni poggiano il loro funzionamento su un componente software chiamato hypervisor che si occupa di separare il sistema ospite dall’hardware fisico della macchina. All’interno di ogni macchina virtuale gestita dall’hypervisor (su ogni sistema host possono essere create e contemporaneamente caricate più macchine virtuali) può essere installato un sistema operativo.
Quest’ultimo è in grado di vedere parte delle risorse hardware messe a disposizione dal sistema host per tramite dell’hypervisor; inoltre, il sistema guest (ovvero installato nella macchina virtuale) non ha alcun accesso diretto al sistema host.
Come abbiamo spiegato nell’articolo citato in precedenza, la virtualizzazione può essere utilizzata sia in ambito locale che sul cloud, per ogni genere di esigenza. Ad esempio, anziché usare un server dedicato per erogare servizi online, si può richiedere la creazione di un server cloud, una macchina virtuale alla quale viene assegnato un certo insieme di risorse.
Un emulatore usa un approccio diverso: ricalca il funzionamento di un altro sistema, diverso da quello utilizzato sulla macchina, utilizzando però la configurazione hardware e software realmente disponibile.
L’emulatore si interpone tra il sistema ospitante (ad esempio la macchina sulla quale è in esecuzione Windows, Linux o macOS) e il sistema da emulare ricostruendone l’ambiente necessario per il corretto funzionamento.
Con l’emulazione si ottengono prestazioni inferiori rispetto a quelle garantite dalla virtualizzazione completa (nativa): ciò è dovuto al fatto che le istruzioni nel formato utilizzato sul sistema ospite devono essere sempre tradotte nel formato comprensibile dal sistema ospitante. Questo lavoro aggiuntivo è piuttosto oneroso e va ad impattare significativamente sulle performance del sistema emulato.
Con la virtualizzazione nativa, invece, le applicazioni vengono eseguite direttamente sull’hardware del sistema ospitante (host).
Virtualizzare Windows e accedervi da browser Web
Parlando di virtualizzazione, oltre al già citato Windows 365 Cloud PC, AppOnFly permette di collegarsi a una macchina virtuale Windows Server 2019 dal browser Web.
La macchina virtuale di AppOnFly è collegata alla rete Internet, è funzionante in ogni suo aspetto e utilizza un indirizzo IP pubblico verificabile ad esempio con MaxMind Locate My IP Address.
La dashboard di un servizio come BrowserStack permette invece di virtualizzare sul cloud molteplici sistemi operativi diversi: Windows, macOS, Android, iOS. In tutti i casi il sistema è però limitato perché viene essenzialmente consentita la navigazione Web selezionando prima dell’avvio della macchina il browser che si intende adoperare.
Emulare una CPU x86 e le vecchie versioni di Windows
A distanza di circa 10 anni dalla sua ideazione, ci pare sempre interessante ricordare il progetto Copy.sh v86: continuamente aggiornato ancor oggi, provvede a emulare nel browser una CPU x86 e una configurazione hardware compatibile traducendo il codice macchina in WebAssembly così da assicurare performance di rilievo.
WebAssembly è uno standard che permette di scrivere e veicolare codice eseguibile tramite le pagine Web: permette di abilitare l’esecuzione del codice quasi alla stessa velocità con cui viene eseguito codice macchina nativo.
Su GitHub è pubblicato il sorgente del progetto in modo che chiunque possa verificarne il funzionamento ed eventualmente riutilizzarlo in proprio.
Copy.sh v86 permette di eseguire e provare Windows 2000, Windows 98, Windows 95, Windows 3.1, Windows 1.01, MS-DOS 6.22, FreeDOS e tanti altri sistemi operativi senza abbandonare il browser Web.
Per uscire dal riquadro della macchina virtuale una volta fatto clic, basta semplicemente premere il tasto ESC
.
Con Copy.sh v86 è possibile anche inviare alla macchina emulata combinazioni di tasti speciali come CTRL+ALT+CANC
e ALT+TAB
, salvare lo stato della macchina con la possibilità di ripristinarlo successivamente, creare un dump della memoria, catturare il traffico di rete (packet sniffing) e altro ancora.
Suggeriamo anche PCjs Machines, un emulatore che permette di mettere alla prova diversi sistemi operativi “storici”.
Bellissimo è anche il progetto Windows 11 in Svelte: l’obiettivo degli autori è replicare il funzionamento di Windows 11 da browser Web utilizzando il noto e apprezzato framework Svelte.
Per simulare il funzionamento di Windows 11 nel browser con Svelte basta visitare questa pagina per rendersi conto di cosa è stato possibile realizzare.
Controllo remoto dal browser Web
Per estensione, è di fatto possibile eseguire Windows in un browser Web utilizzando una soluzione per l’amministrazione remota. In questo caso ciò che si fa è collegarsi con un sistema remoto che esegue un’istanza di Windows quindi controllarlo a distanza usando l’interfaccia del browser.
Ci sono diverse soluzioni che consentono l’accesso remoto da browser Web: citiamo alcune delle soluzioni più comuni:
TeamViewer Remote: TeamViewer è una soluzione software di accesso remoto molto popolare che consente di accedere a un computer o a un server da un altro dispositivo utilizzando anche il browser Web in luogo dei client tradizionali.
Chrome Remote Desktop: un’applicazione gratuita di Google che consente di accedere a un computer remoto tramite un browser Web. È compatibile con diversi sistemi operativi e consente di accedere ai file e alle applicazioni del computer remoto da qualsiasi dispositivo.
AnyDesk: soluzione per l’accesso remoto veloce e affidabile che consente di accedere a un computer o a un server da qualsiasi dispositivo, compreso un browser Web. AnyDesk utilizza una tecnologia di compressione video per garantire una connessione remota fluida e senza ritardi.
Anche per Microsoft Desktop remoto viene fornito il client Web: in questo caso sono però necessarie delle modifiche tecniche lato server, compreso l’utilizzo di alcuni comandi PowerShell.
Oltre alle soluzioni per l’emulazione e la virtualizzazione non possiamo non citare un progetto come The Restart Page: aiuta a ricordare in che modo erano strutturate le procedure di boot dei vari sistemi operativi. The Restart Page riproduce anche tutti i suoni di avvio, riavvio e spegnimento del sistema operativo. Anche in questo caso l’effetto nostalgico è assicurato.