Eseguire applicazioni Linux su Windows grazie ad X: introduzione a Cygwin



Introduzione a Cygwin: eseguire applicazioni Linux su un server X che gira su Windows

Una feature del server X che può risultare molto utile quando si utilizzano più macchine su una rete è la possibilità di lanciare una applicazione in remoto mostrandone l’interfaccia sul computer sul quale si sta lavorando a patto che su entrambi sia installato X e che i due computer siano collegati tra di loro in rete.

L’operazione descritta è sicuramente facile se entrambe le macchine sono Linux perché avranno tutte e due un server X installato, ma come fare se si vuole ottenere lo stesso risultato su una macchina Windows? La soluzione è Cygwin, o meglio Cygwin/X.

Cos’è Cygwin

Cygwin è un software che consente di riprodurre in un sistema operativo Windows un ambiente Linux: come descritto nel sito di riferimento, Cygwin si compone di una dll che emula le API di Linux e da un insieme di tools che riproducono l’ambiente operativo tipico di un sistema Linux. Con Cygwin non sarà possibile eseguire direttamente su Windows applicazioni native per Linux, ma queste potranno funzionare correttamente una volta ricompilate. Oltre alla possibilità di effettuare il porting di proprie applicazioni Cygwin offre l’opportunità di avere accesso all’ampio parco di software già disponibile in questo ambiente: tra questi vi è anche il server X.

Cygwin/X

Cygwin/X è un porting del server X Windows System per il sistema operativo Microsoft Windows ed è ciò che serve per ottenere il risultato descritto all’inizio, ovvero lanciare una applicazione su un server Linux remoto ottenendone l’interfaccia su una macchina windows.

Installazione

Sia Cygwin che Cygwin/X si installano con lo stesso script di setup scaricabile dal sito web di Cygwin. Lo script di installazione può essere utilizzato più volte perchè Cygwin si compone di numerosi moduli, e non è necessario installarli tutti quanti insieme. Una volta lanciato il setup lo script scarica da internet tutti i moduli per l’installazione e mostra l’elenco completo permettendo di selezionare quali dovranno essere installati. Di partenza tutti i moduli sono deselezionati, per cui è necessario includere nell’installazione solo quelli necessari (attenzione a non esagerare perchè l’intera selezione richiede una notevole quantità di tempo per il download). Per installare il server X è sufficiente selezionare i moduli della categoria X11 (in fondo all’elenco). Lo script di setup tiene traccia delle dipendenze ed integrerà l’insieme selezionato con i moduli necessari prima di procedere all’installazione.

Esecuzione

Se l’installazione è andata a buon fine, sul Desktop e nel menu di avvio di Windows è disponibile una icona chiamata Cygwin. Un doppio click su di essa apre una shell.

E’ sufficiente digitare startx nella finestra per avere un server X a disposizione sulla propria macchina windows. La presenza del server X è indicata dall’apertura di una nuova console. A questo punto per poter lanciare una applicazione su un server Linux remoto è necessario collegarsi alla macchina tramite telnet o ssh.

Di default un server X accetta connessioni solo da localhost, per poter permettere ad altre macchine di connettervi è necessario concederne le autorizzazioni. Per fare questo è sufficiente aggiungere l’indirizzo IP (o l’hostname completo, ammesso che la macchina sia in grado di risolverlo) della macchina che si deve collegare alla lista di computer autorizzati ad accedere al server X nella seguente maniera:

xhost indirizzo_IP

Il comando precedente deve essere lanciato sulla macchina Windows, mentre sulla macchina Linux (quella remota) è necessario indicare un server X al quale collegarsi. Per indicare alle applicazioni che verranno lanciate di utilizzare il server X appena installato e configurato sulla macchina Windows è sufficiente memorizzare nella variabile DISPLAY l’indirizzo IP del server collegato dal numero del display:

export DISPLAY=indirizzo_IP_server_X:0

In questo modo (ammesso che si stia usando una shell Bash) si è indicato di utilizzare il display numero 0 sul server il cui indirizzo IP è indicato. Il numero esatto di display dipende dalla configurazione del server X. Per questo tutorial, se non si è modificato in alcun modo il comportamento di Cygwin :0 andrà bene.

Dopo aver eseguito questi due comandi è sufficiente tornare sulla console collegata al server remoto e lanciare il programma che si desidera: il tempo di caricamento e l’interfaccia verrà mostrata nel desktop di Windows. A questo punto sarà possibile utilizzare il software come se stesse girando sulla macchina Windows. Di fatto però è solo l’interfaccia ad essere mostrata sulla macchina Windows, mentre il programma è in esecuzione sul server remoto. Questo significa che se ad esempio eseguite kate come programma remoto e decidete di aprire un file vedrete il disco fisso della macchina remota e non quello di Windows.

E per il contrario?

Le applicazioni lanciate sotto Windows non possono girare sul server X, per cui se si vuole utilizzare da remoto un software che gira su Windows l’unica alternativa è accedere all’intero desktop. Per fare questo si può utilizzare VNC.

Conclusione

Se un accesso SSH o telnet consente di amministrare la macchina da remoto, tramite il forwarding di X sarà possibile estendere questa possibilità utilizzando anche l’interfaccia grafica. Naturalmente l’usabilità finale dipende fortemente dalla velocità della rete. In una LAN una soluzione simile permette alle macchine locali di utilizzare con facilità software residenti su macchine remote, allargando ancora di più l’orizzonte degli usi possibili e migliorando l’interoperabilità tra sistemi operativi Linux e Windows.

Altri articoli:

http://rebol.altervista.org

http://rebol.netsons.org

Annunci sponsorizzati:
Condividi su Facebook Condividi su Twitter!
Pinterest