31820 Letture
Eseguire programmi Linux su Windows, anche con interfaccia grafica

Eseguire programmi Linux su Windows, anche con interfaccia grafica

Il nuovo componente WSL 2 (Sottosistema Windows per Linux 2) di Windows 10 permette di eseguire anche i programmi Linux in modalità grafica, sia in finestra che a tutto schermo. Ecco come fare.

Con il rilascio di Windows 10 versione 2004, rilasciato a maggio 2020, Microsoft ha introdotto nel suo sistema operativo Windows Subsystem for Linux 2 (WSL 2) ovvero la seconda versione del Sottosistema Windows per Linux, un componente che avvicina ancora di più la piattaforma closed-source con la piattaforma del pinguino.

Grazie a WSL gli utenti di Windows possono installare nel sistema operativo Microsoft le principali distribuzioni Linux ed eseguire i vari comandi da un'apposita finestra bash.

Nell'articolo Linux in Windows: come, quando e perché utilizzarlo abbiamo spiegato come installare WSL in Windows 10 e come caricare una distribuzione Linux attingendo al Microsoft Store. Abbiamo anche presentato i principali comandi per aggiornare la distribuzione e i pacchetti software via a via aggiunti.

Le distribuzioni Linux installabili con WSL in Windows 10 funzioneranno per impostazione predefinita da riga di comando. Seppure Microsoft non ne faccia menzione, tuttavia, con WSL è possibile avviare anche programmi Linux dotati di interfaccia grafica.
Gli sviluppatori Microsoft stanno lavorando per integrare il supporto per i programmi Linux dotati di interfaccia grafica direttamente in WSL ma al momento questa possibilità non è stata ancora aggiunta: Eseguire applicazioni Linux in Windows con interfaccia grafica.


Avviare programmi Linux in Windows 10 usando la loro interfaccia grafica: come preparare "il terreno"

Per il momento Microsoft supporta soltanto i programmi Linux capaci di funzionare da riga di comando mentre non consente l'utilizzo di alcuna interfaccia grafica.

Con un semplice trucco è comunque possibile avviare i programmi Linux in Windows 10 usando una GUI (Graphic User Interface).
È fondamentale che i programmi Linux avviati sino a 64 bit perché WSL non supporta il caricamento e l'esecuzione di applicazioni a 32 bit.

Le applicazioni Linux dotate di interfaccia grafica necessitano della presenza di un X server che, nelle normali distribuzioni, si occupa del rendering del desktop e degli elementi che compongono ogni programma.

Dopo aver installato e configurato WSL 2 come spiegato nell'articolo Linux in Windows: come, quando e perché utilizzarlo, si può innanzi tutto aggiornare la distribuzione Linux.
Nel caso di Ubuntu e derivate si può usare il comando sudo apt update && sudo apt -y upgrade.

Installazione del server RDP per chi volesse collegarsi con Desktop remoto e di un ambiente desktop

È bene quindi provvedere all'installazione di alcune utilità che consentiranno anche di collegarsi in modalità Desktop remoto alla distribuzione Linux installata in WSL. Nel caso di Ubuntu e derivate si può digitare quanto segue:

sudo apt -y install build-essential
sudo apt -y install net-tools
sudo apt -y install xrdp -y && sudo systemctl enable xrdp


xrdp è un'implementazione opensource del server di Desktop remoto Microsoft: essa consente di collegarsi a sistemi operativi diversi da Windows con un'esperienza desktop simile a quella ottenibile sulla piattaforma Microsoft.

Con i comandi che seguono, invece, si installerà l'ambiente desktop xfce4 in Ubuntu (pacchetto xubuntu-desktop) insieme con le librerie gtk2. Si potranno però scegliere altri desktop environment come ad esempio mate:


sudo apt -y install tasksel
sudo tasksel install xubuntu-desktop
sudo apt -y install gtk2-engines


A questo punto è opportuno configurare la distribuzione Linux in maniera tale che possa collegarsi all'X server su Windows. La procedura è semplice e consiste nel digitare quanto segue:

export DISPLAY=$(cat /etc/resolv.conf | grep nameserver | awk '{print $2; exit;}'):0
export LIBGL_ALWAYS_INDIRECT=1
sudo /etc/init.d/dbus start &> /dev/null


Digitando printenv DISPLAY si leggerà l'IP locale che verrà utilizzato da Linux per colloquiare con l'X server installato in Windows sulla stessa macchina. Consigliamo di attenersi alla procedura indicata perché con WSL 2 le modalità di gestione degli IP locali è cambiata e le istruzioni valide per WSL non sono più applicabili.
Lo stesso IP può essere letto in ambiente Windows digitando quanto segue al prompt dei comandi:
netsh interface IPv4 show addresses "vEthernet (WSL)"

vEthernet (WSL) è infatti il nome dell'interfaccia di rete virtuale assegnata alle macchine virtuali Linux eseguite con WSL 2.

Installare X server su Windows

Per installare un X server in ambiente Windows, suggeriamo di utilizzare VcXsrv scaricandone l'ultima versione disponibile.


Avviando XLaunch dal menu Start di Windows 10 si potrà eseguire l'X server VcXsrv.
L'installazione può avvenire accettando le impostazioni predefinite. In particolare, nella finestra Select display settings, si può scegliere Multiple windows.


Eseguire programmi Linux su Windows, anche con interfaccia grafica

In quella successiva (How to start clients), si può lasciare selezionata l'opzione Start no client quindi fare clic su Avanti.

Eseguire programmi Linux su Windows, anche con interfaccia grafica

Infine, nella finestra Extra settings, si possono accettare tutte le impostazioni facendo clic sul pulsante Avanti. Spuntare tutte le caselle proposte compresa l'ultima ovvero Disable access control.

Eseguire programmi Linux su Windows, anche con interfaccia grafica

Alla comparsa della finestra di Windows Firewall si dovranno spuntare entrambe le caselle Reti private e Reti pubbliche cliccando su Consenti accesso.

A questo punto si può tornare nella finestra di WSL e scrivere quanto segue per installare un'applicazione dotata di interfaccia grafica:

sudo apt -y install firefox

Digitando quindi firefox e premendo il tasto Invio, in questo caso il browser Firefox si aprirà in una finestra Windows e mostrerà la sua icona nella barra delle applicazioni di Windows 10.


Eseguire programmi Linux su Windows, anche con interfaccia grafica

Nell'esempio in figura abbiamo provato ad avviare gvim, versione dotata di interfaccia grafica del noto editor di testo opensource. Come si vede, gvim viene aperto in Windows come qualunque altra finestra e la sua icona appare nella barra delle applicazioni del sistema operativo Microsoft.

Eseguire programmi Linux su Windows, anche con interfaccia grafica

Provate anche a digitare
sudo apt install hardinfo
quindi hardinfo.

Eseguire programmi Linux su Windows, anche con interfaccia grafica

In caso di problemi, suggeriamo di utilizzare il comando sudo apt update per scaricare informazioni aggiornate su tutti i pacchetti disponibili.

Eseguire l'ambiente desktop xfce4 da Windows 10

Dopo aver chiuso X server, si può provare a riavviarlo quindi a selezionare l'opzione Fullscreen anziché Multiple windows: si otterrà una schermata completamente nera.


Premere ALT+TAB per tornare alla riga di comando di WSL 2 quindi digitare:
xfce4-session

Premendo di nuovo ALT+TAB e selezionando X Server si passerà al desktop di xfce4.

Eseguire programmi Linux su Windows, anche con interfaccia grafica

Ve lo sareste mai immaginato fino ad appena qualche anno fa (vedere anche Microsoft entra nella Open Source Initiative come premium sponsor: altra giornata storica)?


Eseguire programmi Linux su Windows, anche con interfaccia grafica