106.2 Lezione 1
Certificazione: |
LPIC-1 |
---|---|
Versione: |
5.0 |
Argomento: |
106 Interfacce Utente e Desktop |
Obiettivo: |
106.2 Desktop grafici |
Lezione: |
1 di 1 |
Introduzione
I sistemi operativi basati su Linux sono noti per la loro interfaccia a riga di comando avanzata: essa però può intimidire gli utenti non esperti. Con l’obiettivo di rendere l’utilizzo del computer più intuitivo, la combinazione di display ad alta risoluzione con dispositivi di puntamento ha dato vita a interfacce utente grafiche. Dato che l’interfaccia della riga di comando richiede una conoscenza preliminare dei nomi dei programmi e delle relative opzioni di configurazione, con una graphical user interface (GUI) la funzionalità del programma può essere attivata puntando a elementi visivi familiari, rendendo la curva di apprendimento meno ripida. Inoltre, l’interfaccia grafica è più adatta per attività multimediali e orientata ad altre attività visive.
In effetti, l’interfaccia utente grafica è quasi ormai un sinonimo di interfaccia per computer e la maggior parte delle distribuzioni Linux viene fornita con l’interfaccia grafica installata come impostazione predefinita. Non esiste, tuttavia, un singolo programma monolitico responsabile per i desktop grafici completi disponibili nei sistemi Linux. Invece, ogni desktop grafico è di fatto un’ampia raccolta di programmi e delle loro dipendenze, che variano dalle scelte della distribuzione al gusto personale dell’utente.
Il Sitema X Window
In Linux e in altri sistemi operativi Unix-like in cui è impiegato, X Window System (noto anche come X11 o più semplicemente X) fornisce le risorse di basso livello relative al rendering dell’interfaccia grafica e all’interazione dell’utente con essa, come:
-
La gestione degli eventi di input, quali i movimenti del mouse o le sequenze di tasti.
-
La possibilità di tagliare, copiare e incollare contenuto di testo tra applicazioni separate.
-
L’interfaccia di programmazione alla quale i programmi ricorrono per disegnare gli elementi grafici.
Sebbene il sistema X Window sia responsabile del controllo del display grafico (il driver video stesso fa parte di X), questo non è destinato a disegnare elementi visivi complessi da solo. Forme, colori, sfumature e qualsiasi altro effetto visivo sono generati dall’applicazione in esecuzione su X. Questo approccio offre alle applicazioni molto spazio per creare interfacce personalizzate, ma può anche portare a un sovraccarico di sviluppo che va oltre l’ambito dell’applicazione e a incongruenze nell’aspetto e nel comportamento rispetto ad altre interfacce di programmazione.
Dal punto di vista dello sviluppatore, l’introduzione dell'ambiente desktop facilita la programmazione GUI legata allo sviluppo dell’applicazione sottostante, mentre dal punto di vista dell’utente fornisce un’esperienza coerente tra applicazioni distinte. Gli ambienti desktop riuniscono interfacce di programmazione, librerie e programmi di supporto che cooperano per fornire concetti di design tradizionali ma ancora in evoluzione.
L’ambiente Desktop
La GUI tradizionale del computer desktop è costituita da varie finestre - -il termine window è usato qui per fare riferimento a qualsiasi area dello schermo autonoma — associata ai processi in esecuzione. Poiché il sistema X Window da solo offre solo funzionalità interattive di base, l’esperienza utente completa dipende dai componenti forniti dall’ambiente desktop.
Probabilmente il componente più importante di un ambiente desktop, il window manager controlla il posizionamento e le decorazioni delle finestre. È il window manager che aggiunge la barra del titolo alla finestra, i pulsanti di controllo — generalmente associati alle azioni di minimizzazione, ingrandimento e chiusura — e gestisce il passaggio tra le finestre aperte.
Note
|
I concetti di base che si trovano nelle interfacce grafiche dei computer desktop derivano da idee prese da veri e propri spazi di lavoro d’ufficio. Metaforicamente parlando, lo schermo del computer è il desktop, dove vengono posizionati oggetti come documenti e cartelle. Una finestra dell’applicazione con il contenuto di un documento imita atti fisici come compilare un modulo o disegnare un’immagine. Come i desktop reali, quelli dei computer hanno anche accessori software come blocchi note, orologi, calendari, ecc., La maggior parte dei quali basati sulle loro controparti reali. |
Tutti gli ambienti desktop forniscono un gestore di finestre che corrisponde all’aspetto del suo widget toolkit. I widget sono elementi visivi informativi o interattivi, come pulsanti o campi di input di testo, distribuiti all’interno della finestra dell’applicazione. I componenti desktop standard, come il launcher dell’applicazione, la barra delle applicazioni, ecc., e lo stesso window manager si affidano a tali toolkit widget per assemblare le loro interfacce.
Le librerie software, come GTK+ e Qt, forniscono widget che i programmatori possono utilizzare per creare elaborate interfacce grafiche per le loro applicazioni. Storicamente, le applicazioni sviluppate con GTK+ non sembravano applicazioni realizzate con Qt e viceversa, ma il migliore supporto dei temi degli ambienti desktop odierni rende la distinzione meno ovvia.
Nel complesso, GTK+ e Qt offrono le stesse funzionalità per quanto riguarda i widget. Semplici elementi interattivi possono essere indistinguibili, mentre i widget compositi, come la finestra di dialogo utilizzata dalle applicazioni per aprire o salvare i file, possono, tuttavia, avere un aspetto molto diverso. Tuttavia, le applicazioni create con toolkit distinti possono essere eseguite simultaneamente, indipendentemente dal toolkit widget utilizzato dagli altri componenti desktop.
Oltre ai componenti desktop di base, che potrebbero essere considerati singoli programmi isolati, gli ambienti desktop perseguono la metafora del desktop fornendo un insieme minimo di applicazioni accessorie sviluppate secondo le stesse linee guida di progettazione. Variazioni delle seguenti applicazioni sono comunemente fornite da tutti i principali ambienti desktop:
- Applicazioni relative al sistema
-
Emulatore di terminale, gestore di file, gestore di installazione di pacchetti, strumenti di configurazione del sistema.
- Comunicazione e Internet
-
Gestore contatti, client di posta elettronica, browser web.
- Applicazioni d’ufficio
-
Calendario, calcolatrice, editor di testo.
Gli ambienti desktop possono includere molti altri servizi e applicazioni: la schermata di benvenuto all’accesso, il gestore della sessione, la comunicazione tra processi, l’agente di gestione portachiavi, ecc. Incorporano anche funzionalità fornite da servizi di sistema di terze parti, come PulseAudio per l’audio e CUPS per la stampa. Queste funzionalità non richiedono l’ambiente grafico per funzionare, ma l’ambiente desktop fornisce frontend grafici per facilitare la configurazione e il funzionamento di tali risorse.
Ambienti Desktop Popolari
Molti sistemi operativi proprietari supportano solo un singolo ambiente desktop ufficiale, che è legato alla loro particolare versione e non dovrebbe essere modificato. A differenza di loro, i sistemi operativi basati su Linux supportano diverse opzioni di ambiente desktop che possono essere utilizzate insieme a X. Ogni ambiente desktop ha le proprie caratteristiche, ma di solito condividono alcuni concetti di progettazione comuni:
-
Un esecutore di applicazioni (launcher) che elenca le applicazioni integrate e di terze parti disponibili nel sistema.
-
Regole che definiscono le applicazioni predefinite associate ai tipi di file e ai protocolli.
-
Strumenti di configurazione per personalizzare l’aspetto e il comportamento dell’ambiente desktop.
Gnome è uno degli ambienti desktop più popolari, essendo la prima scelta in distribuzioni come Fedora, Debian, Ubuntu, SUSE Linux Enterprise, Red Hat Enterprise Linux, CentOS, ecc. Nella sua versione 3, Gnome ha apportato importanti cambiamenti nel suo aspetto e struttura, allontanandosi dalla metafora del desktop e introducendo Gnome Shell come nuova interfaccia.
Il launcher generico a schermo intero Gnome Shell Activities ha sostituito il tradizionale esecutore di applicazioni e la barra delle applicazioni. Tuttavia, è ancora possibile utilizzare Gnome 3 con il vecchio aspetto scegliendo l’opzione Gnome Classic nella schermata di accesso.
KDE è un ampio ecosistema di applicazioni e una piattaforma di sviluppo. La sua ultima versione dell’ambiente desktop, KDE Plasma, è usata di default in openSUSE, Mageia, Kubuntu, ecc. L’impiego della libreria Qt è la caratteristica principale di KDE, che conferisce il suo aspetto inconfondibile e una varietà di applicazioni originali. KDE fornisce anche uno strumento di configurazione per garantire la coesione visiva con le applicazioni GTK+.
Xfce è un ambiente desktop che mira a essere esteticamente gradevole senza consumare molte risorse della macchina. La sua struttura è altamente modulare, consentendo all’utente di attivare e disattivare i componenti in base esigenze e preferenze.
Esistono molti altri ambienti desktop per Linux, solitamente forniti da distribuzioni alternative derivate. La distribuzione Linux Mint, per esempio, fornisce due ambienti desktop originali: Cinnamon (un fork di Gnome 3) e MATE (un fork di Gnome 2). LXDE è un ambiente desktop su misura per un basso consumo di risorse, che lo rende una buona scelta per l’installazione su apparecchiature meno recenti o computer a scheda singola. Pur non offrendo tutte le funzionalità degli ambienti desktop più blasonati, LXDE offre tutte le funzionalità di base che ci si aspetta da una moderna interfaccia utente grafica.
Tip
|
Le scorciatoie da tastiera svolgono un ruolo importante nell’interazione con l’ambiente desktop. Alcune scorciatoie da tastiera — come Alt+Tab per passare da una finestra all’altra o Ctrl+c per copiare il testo — sono universali in tutti gli ambienti desktop, ma ogni ambiente desktop ha anche le proprie scorciatoie da tastiera. Le scorciatoie da tastiera si trovano nello strumento di configurazione della tastiera fornito dall’ambiente desktop, dove le scorciatoie possono essere aggiunte, rimosse o modificate. |
Interoperabilità Desktop
La diversità degli ambienti desktop nei sistemi operativi basati su Linux impone una sfida: come farli funzionare correttamente con applicazioni grafiche o servizi di sistema di terze parti senza dover implementare un supporto specifico per ciascuno di essi. Metodi e specifiche condivisi tra ambienti desktop migliorano notevolmente l’esperienza dell’utente e risolvono molti problemi di sviluppo, poiché le applicazioni grafiche devono interagire con l’ambiente desktop corrente indipendentemente dall’ambiente desktop per cui sono state originariamente progettate. Inoltre, è importante mantenere le impostazioni generali del desktop se l’utente alla fine cambia la scelta dell’ambiente desktop.
L’organizzazione freedesktop.org gestisce un ampio corpus di specifiche per l’interoperabilità desktop. L’adozione della specifica completa non è obbligatoria, ma molte di esse sono ampiamente utilizzate:
- Posizioni delle directory
-
Dove si trovano le impostazioni personali e altri file specifici dell’utente.
- Voci sul desktop
-
Le applicazioni della riga di comando possono essere eseguite nell’ambiente desktop tramite qualsiasi emulatore di terminale, ma sarebbe troppo confuso renderle tutte disponibili all’avvio dell’applicazione. Le voci del desktop sono file di testo che terminano con
.desktop
che vengono utilizzati dall’ambiente desktop per raccogliere informazioni sulle applicazioni desktop disponibili e su come usarle. - Avvio automatico dell’applicazione
-
Voci del desktop che indicano l’applicazione che dovrebbe avviarsi automaticamente dopo che l’utente ha effettuato l’accesso.
- Drag and drop
-
In che modo le applicazioni dovrebbero gestire gli eventi di trascinamento della selezione.
- Cestino
-
La posizione comune dei file eliminati dal file manager, nonché i metodi per archiviare e rimuovere i file da lì.
- Temi delle icone
-
Il formato comune per le librerie di icone intercambiabili.
La facilità d’uso fornita dagli ambienti desktop ha uno svantaggio rispetto alle interfacce di testo come la shell: la possibilità di fornire accesso remoto. Sebbene sia possibile accedere facilmente all’ambiente shell della riga di comando di una macchina remota con strumenti come ssh
, l’accesso remoto agli ambienti grafici richiede metodi diversi e potrebbe non ottenere prestazioni soddisfacenti su connessioni più lente.
Accesso Non Locale
I sistemi X Window adottano un design basato su display autonomi, in cui lo stesso X display manager può controllare più di una sessione desktop grafica allo stesso tempo. In sostanza, un display è analogo a un terminale di testo: entrambi si riferiscono a una macchina o un’applicazione software utilizzata come punto di ingresso per stabilire una sessione del sistema operativo indipendente. Sebbene la configurazione più comune implichi una singola sessione grafica in esecuzione nella macchina locale, sono possibili anche altre configurazioni meno convenzionali:
-
Passare da una sessione desktop grafica attiva all’altra nella stessa macchina.
-
Più di un set di dispositivi di visualizzazione (es. Schermo, tastiera, mouse) collegati alla stessa macchina, ognuno dei quali controlla la propria sessione di desktop grafico.
-
Sessioni desktop grafiche remote, in cui l’interfaccia grafica viene inviata attraverso la rete a un display remoto.
Le sessioni di desktop remoto sono supportate in modo nativo da X, che utilizza X Display Manager Control Protocol (XDMCP) per comunicare con i display remoti. A causa dell’elevato utilizzo della larghezza di banda, XDMCP viene utilizzato raramente tramite Internet o in LAN a bassa velocità. Anche i problemi di sicurezza sono un limite di XDMCP: il display locale comunica con un gestore di display X remoto privilegiato per eseguire procedure remote, quindi un’eventuale vulnerabilità potrebbe rendere possibile l’esecuzione di comandi privilegiati arbitrari sulla macchina remota.
Inoltre, XDMCP richiede istanze X in esecuzione su entrambe le estremità della connessione, il che può essere irrealizzabile se il sistema X Windows non è disponibile per tutte le macchine coinvolte. In pratica, vengono utilizzati altri metodi più efficienti e meno invasivi per stabilire sessioni desktop grafiche remote. Virtual Network Computing (VNC) è uno strumento indipendente dalla piattaforma per visualizzare e controllare ambienti desktop remoti utilizzando il protocollo Remote Frame Buffer (RFB). Attraverso esso gli eventi prodotti dalla tastiera e dal mouse locali vengono trasmessi al desktop remoto, che a sua volta rinvia gli eventuali aggiornamenti dello schermo da visualizzare localmente. È possibile eseguire molti server VNC sulla stessa macchina, ma ogni server VNC necessita di una porta TCP esclusiva nell’interfaccia di rete che accetti le richieste di sessione in entrata. Per convenzione, il primo server VNC dovrebbe utilizzare la porta TCP 5900, il secondo dovrebbe utilizzare la TCP 5901 e così via.
Il server VNC non necessita di privilegi speciali per essere eseguito. Un utente normale può, per esempio, accedere al proprio account remoto e avviare da lì il proprio server VNC. Quindi, nella macchina locale, qualsiasi applicazione client VNC può essere utilizzata per accedere al desktop remoto (supponendo che le porte di rete corrispondenti siano raggiungibili). Il file ~/.vnc/xstartup
è uno script di shell eseguito dal server VNC all’avvio e può essere utilizzato per definire quale ambiente desktop il server VNC renderà disponibile per il client VNC. È importante notare che VNC non fornisce metodi di crittografia e autenticazione moderni in modo nativo, quindi dovrebbe essere utilizzato insieme a un’applicazione di terze parti che fornisce tali funzionalità. I metodi che coinvolgono VPN e tunnel SSH vengono spesso utilizzati per proteggere le connessioni VNC.
Il Remote Desktop Protocol (RDP) viene utilizzato principalmente per accedere in remoto al desktop di un sistema operativo Microsoft Windows tramite la porta di rete TCP 3389. Sebbene utilizzi il protocollo RDP proprietario di Microsoft, l’implementazione client utilizzata nei sistemi Linux sono programmi open source concessi in licenza con la GNU General Public License (GPL) e non ha limitazioni legali sull’uso.
Simple Protocol for Independent Computing Environments (Spice) comprende una suite di strumenti finalizzati all’accesso all’ambiente desktop di sistemi virtualizzati, sia nella macchina locale sia in una posizione remota. In aggiunta a ciò, il protocollo Spice offre funzionalità native per integrare i sistemi locale e remoto, come la possibilità di accedere ai dispositivi locali (per esempio, gli altoparlanti e i dispositivi USB collegati) dalla macchina remota e la condivisione di file tra i due sistemi .
Esistono comandi client specifici per connettersi a ciascuno di questi protocolli di desktop remoto, ma il client di desktop remoto Remmina fornisce un’interfaccia grafica integrata che facilita il processo di connessione, memorizzando facoltativamente le impostazioni di connessione per un uso successivo. Remmina ha plugin per ogni singolo protocollo e ci sono plugin per XDMCP, VNC, RDP e Spice. La scelta dello strumento giusto dipende dai sistemi operativi coinvolti, dalla qualità della connessione di rete e dalle funzionalità dell’ambiente desktop remoto che dovrebbero essere disponibili.
Esercizi Guidati
-
Che tipo di applicazione fornisce sessioni di shell con finestre nell’ambiente desktop?
-
A causa della varietà di ambienti desktop Linux, la stessa applicazione può avere più di una versione, ognuna delle quali più adatta per un particolare widget toolkit . Per esempio, il client bittorrent Transmission ha due versioni: transmission-gtk e transmission-qt. Quale dei due dovrebbe essere installato per garantire la massima integrazione con KDE?
-
Quali ambienti desktop Linux sono consigliati per computer a scheda singola a basso costo con poca potenza di elaborazione?
Esercizi Esplorativi
-
Ci sono due modi per copiare e incollare il testo nel sistema X Window: usare il tradizionale Ctrl+c e Ctrl+v (disponibile anche nel menu della finestra) o usare il pulsante centrale del mouse facendo clic per incollare il testo attualmente selezionato. Qual è il modo appropriato per copiare e incollare il testo da un emulatore di terminale?
-
La maggior parte degli ambienti desktop assegna la scorciatoia da tastiera Alt+F2 alla finestra Esegui programma, dove i programmi possono essere eseguiti in una modalità simil riga di comando. In KDE, quale comando eseguirà l’emulatore di terminale predefinito?
-
Qual è il protocollo più adatto per accedere a un desktop Windows remoto da un ambiente desktop Linux?
Sommario
Questa lezione è una panoramica sui desktop grafici disponibili per i sistemi Linux. Il sistema X Window da solo fornisce solo semplici funzionalità di interfaccia, quindi gli ambienti desktop estendono l’esperienza dell’utente nell’interfaccia grafica a finestre. La lezione affronta i seguenti argomenti:
-
Interfaccia grafica e concetti del sistema X Window.
-
Ambienti desktop disponibili per Linux.
-
Somiglianze e differenze tra ambienti desktop.
-
Come accedere a un ambiente desktop remoto.
I concetti e i programmi affrontati sono stati:
-
Il sistema X Window.
-
Ambienti desktop popolari: KDE, Gnome, Xfce.
-
Protocolli di accesso remoto: XDMCP, VNC, RDP, Spice.
Risposte agli Esercizi Guidati
-
Che tipo di applicazione fornisce sessioni di shell con finestre nell’ambiente desktop?
Qualsiasi emulatore di terminale come Konsole, Gnome terminal, xterm, etc, darà accesso a una sessione di shell interattiva locale.
-
A causa della varietà di ambienti desktop Linux, la stessa applicazione può avere più di una versione, ognuna delle quali più adatta per un particolare widget toolkit . Per esempio, il client bittorrent Transmission ha due versioni: transmission-gtk e transmission-qt. Quale dei due dovrebbe essere installato per garantire la massima integrazione con KDE?
KDE è costruito sfruttando la libreria Qt, quindi la versione Qt — transmission-qt — dovrebbe essere installata.
-
Quali ambienti desktop Linux sono consigliati per computer a scheda singola a basso costo con poca potenza di elaborazione?
Ambienti desktop di base che non utilizzano troppi effetti visivi, come Xfce e LXDE.
Risposte agli Esercizi Esplorativi
-
Ci sono due modi per copiare e incollare il testo nel sistema X Window: usare il tradizionale Ctrl+c e Ctrl+v (disponibile anche nel menu della finestra) o usare il pulsante centrale del mouse facendo clic per incollare il testo attualmente selezionato. Qual è il modo appropriato per copiare e incollare il testo da un emulatore di terminale?
Le sessioni di shell interattive assegnano la sequenza di tasti Ctrl+c per interrompere l’esecuzione del programma, quindi si consiglia il metodo del pulsante centrale.
-
La maggior parte degli ambienti desktop assegna la scorciatoia da tastiera Alt+F2 alla finestra Esegui programma, dove i programmi possono essere eseguiti in una modalità simil riga di comando. In KDE, quale comando eseguirà l’emulatore di terminale predefinito?
Il comando
konsole
esegue l’emulatore di terminale di KDE, ma funzionano anche termini generici come terminal. -
Qual è il protocollo più adatto per accedere a un desktop Windows remoto da un ambiente desktop Linux?
Il Remote Desktop Protocol (RDP), in quanto è supportato nativamente sia da Windows sia da Linux.