Come funziona la grafica in Linux: una panoramica dei vari ambienti desktop

Questo articolo riguarda come funziona la grafica in Linux e in quali componenti è composta. Contiene molti screenshot di varie implementazioni di ambienti desktop. 

Se non fai veramente distinzioni tra KDE e GNOME, o sì, ma vorresti sapere quali altre alternative esistono, allora questo articolo fa per te. Si tratta di una panoramica e, sebbene contenga molti nomi e pochi termini, il materiale sarà utile anche per i principianti e per coloro che guardano semplicemente a Linux.

L'argomento potrebbe interessare anche gli utenti esperti durante la configurazione dell'accesso remoto e l'implementazione di un thin client. Incontro spesso utenti Linux esperti con le affermazioni "sul server c'è solo una riga di comando e non ho intenzione di studiare la grafica in modo più dettagliato, poiché tutto questo è necessario per gli utenti ordinari". Ma anche gli esperti di Linux rimangono molto sorpresi e felici di scoprire l'opzione “-X” per il comando ssh (e per questo è utile per capire il funzionamento e le funzioni dell'X server).

Come funziona la grafica in Linux: una panoramica dei vari ambienti desktopFonte

Insegno corsi Linux da quasi 15 anni presso "Accademia di Rete LANIT“e sono sicuro che molte delle oltre cinquemila persone che ho formato leggono e probabilmente scrivono articoli su Habr. I corsi sono sempre molto intensi (la durata media dei corsi è di cinque giorni); è necessario trattare argomenti che richiedono almeno dieci giorni per essere compresi appieno. E sempre durante il corso, a seconda del pubblico (neofiti riuniti o amministratori esperti), nonché delle “domande del pubblico”, scelgo cosa trasmettere in modo più dettagliato e cosa in modo più superficiale, per poter dedicare di più è ora di passare alle utilità della riga di comando e alla loro applicazione pratica. Ci sono già abbastanza argomenti come questo che richiedono un piccolo sacrificio. Si tratta di "Storia di Linux", "Differenze nelle distribuzioni Linux", "Informazioni sulle licenze: GPL, BSD, ...", "Informazioni sulla grafica e sugli ambienti desktop" (l'argomento di questo articolo), ecc. importante, ma di solito ci sono molte più pressanti domande "qui e ora" e solo circa cinque giorni... Tuttavia, per una comprensione generale delle basi del sistema operativo Linux, una comprensione della diversità disponibile (in modo che anche utilizzando uno specifico Distribuzione Linux, hai comunque una visione più ampia di tutto questo immenso e vasto mondo che si chiama “Linux”), studiare questi argomenti è utile e necessario. 

Man mano che l'articolo avanza, fornisco collegamenti per ciascun componente per coloro che desiderano approfondire l'argomento, ad esempio, agli articoli di Wikipedia (puntando a una versione più completa/utile se sono presenti articoli in inglese e russo).

Per esempi e screenshot di base ho utilizzato la distribuzione openSUSE. Potrebbe essere utilizzata qualsiasi altra distribuzione sviluppata dalla comunità, purché ci sia un gran numero di pacchetti nel repository. È difficile, ma non impossibile, dimostrare la varietà di design desktop in una distribuzione commerciale, poiché spesso utilizzano solo uno o due degli ambienti desktop più conosciuti. In questo modo, gli sviluppatori restringono il compito di rilasciare un sistema operativo stabile e sottoposto a debug. Su questo stesso sistema ho installato tutti i DM/DE/WM (spiegazione di questi termini di seguito) che ho trovato nel repository. 

Gli screenshot con "cornici blu" sono stati acquisiti su openSUSE. 

Ho preso screenshot con "cornici bianche" su altre distribuzioni, sono indicati nello screenshot. 

Schermate con "cornici grigie" sono state prese da Internet, come esempi di progetti di desktop degli anni passati.

Quindi, iniziamo.

I componenti principali che compongono la grafica

Evidenzierò tre componenti principali e li elencherò nell'ordine in cui vengono avviati all'avvio del sistema: 

  1. DM (Gestione visualizzazioni);
  2. Server di visualizzazione;
  3. DE (ambiente desktop).

Inoltre, come importanti sottoclausole dell'ambiente desktop: 

  • Gestione app/Avvio applicazioni/Commutatore (pulsante Start); 
  • WM (Gestore finestre);
  • vari software forniti con l'ambiente desktop.

Maggiori dettagli su ciascun punto.

DM (Gestione visualizzazioni)

La prima applicazione che si avvia quando si avvia “grafica” è DM (Display Manager), un display manager. I suoi compiti principali:

  • chiedere quali utenti consentire l'accesso al sistema, richiedere i dati di autenticazione (password, impronta digitale);
  • scegli quale ambiente desktop eseguire.

Attualmente ampiamente utilizzato in varie distribuzioni: 

L'elenco dei DM esistenti viene mantenuto aggiornato in Articolo Wiki. 

Come funziona la grafica in Linux: una panoramica dei vari ambienti desktop
Come funziona la grafica in Linux: una panoramica dei vari ambienti desktop
Come funziona la grafica in Linux: una panoramica dei vari ambienti desktop
Come funziona la grafica in Linux: una panoramica dei vari ambienti desktop
Vale la pena notare che gli screenshot seguenti utilizzano lo stesso display manager LightDM, ma in distribuzioni diverse (i nomi delle distribuzioni sono indicati tra parentesi). Scopri quanto può apparire diverso questo DM grazie al lavoro di designer di diverse distribuzioni.

Come funziona la grafica in Linux: una panoramica dei vari ambienti desktop
Come funziona la grafica in Linux: una panoramica dei vari ambienti desktop
Come funziona la grafica in Linux: una panoramica dei vari ambienti desktop
Come funziona la grafica in Linux: una panoramica dei vari ambienti desktop
Come funziona la grafica in Linux: una panoramica dei vari ambienti desktop
L'importante in questa diversità è chiarire che esiste un'applicazione responsabile del lancio della grafica e di consentire all'utente di accedere a questa grafica, e che ci sono diverse implementazioni di questa applicazione che differiscono nell'aspetto e leggermente nella funzionalità (selezione di progettazione degli ambienti, selezione degli utenti, versione per utenti con scarsa visibilità, disponibilità di accesso remoto tramite protocollo XDMCP).

Server di visualizzazione

Display Server è una sorta di base grafica, il cui compito principale è lavorare con una scheda video, un monitor e vari dispositivi di input (tastiera, mouse, touchpad). Cioè, un'applicazione (ad esempio un browser o un editor di testo) resa in "grafica" non ha bisogno di sapere come funzionare direttamente con i dispositivi, né di conoscere i driver. X Window si occupa di tutto questo.

Quando si parla di Display Server, per molti anni in Linux, e anche in Unix, si intendeva l'applicazione X Window System o nel linguaggio comune X (X). 

Ora molte distribuzioni stanno sostituendo X Wayland. 

Puoi anche leggere:

Innanzitutto, lanciamo X e diverse applicazioni grafiche al loro interno.

Workshop “esecuzione di X e applicazioni in esso contenute”

Farò tutto dall'utente webinuser appena creato (sarebbe più semplice, ma non più sicuro, fare tutto come root).

  • Poiché X ha bisogno dell'accesso ai dispositivi, concedo l'accesso: L'elenco dei dispositivi è stato determinato esaminando gli errori all'avvio di X nel registro (/home/webinaruser/.local/share/xorg/Xorg.77.log) 

% sudo setfacl -m u:webinaruser:rw /dev/tty8 /dev/dri/card0 /dev/fb0 /dev/input/*

  • Successivamente lancio X:

% X -retro :77 vt8 & 

Opzioni: * -retro - avvia con uno sfondo classico “grigio” e non con il nero come predefinito; * :77 - Ho impostato (qualsiasi entro un intervallo ragionevole è possibile, solo :0 molto probabilmente è già occupato dalla grafica già in esecuzione) numero di schermo, in realtà una sorta di identificatore univoco tramite il quale sarà possibile distinguere diverse X in esecuzione; * vt8 - indica il terminale, qui /dev/tty8, sul quale verranno visualizzate le X). 

  • Avviare l'applicazione grafica:

Per fare questo impostiamo innanzitutto una variabile attraverso la quale l'applicazione capirà quale delle X ho in esecuzione per inviare ciò che deve essere disegnato: 

% export DISPLAY=":77" 

Puoi visualizzare l'elenco degli X in esecuzione in questo modo: 

ps -fwwC X

Dopo aver impostato la variabile, possiamo avviare le applicazioni nel nostro Xs, ad esempio lancio un orologio:

% xclock -update 1 & 

% xcalc & 

% xeyes -g 200x150-300+50 &

Come funziona la grafica in Linux: una panoramica dei vari ambienti desktop
Idee principali e conclusioni da questo frammento:

  • Gli X necessitano di accesso ai dispositivi: terminale, scheda video, dispositivi di input,
  • Le X stesse non mostrano alcun elemento dell'interfaccia: è una tela grigia (se con l'opzione "--retro") o nera di determinate dimensioni (ad esempio, 1920x1080 o 1024x768) per eseguire applicazioni grafiche al suo interno.
  • Il movimento della "croce" mostra che le X tracciano la posizione del mouse e trasmettono queste informazioni alle applicazioni in esecuzione al suo interno.
  • Gli X rilevano anche le sequenze di tasti sulla tastiera e trasmettono queste informazioni alle applicazioni.
  • La variabile DISPLAY indica alle applicazioni grafiche in quale schermata (ogni X viene avviata con un numero di schermo univoco all'avvio), e quindi in quale di quelle in esecuzione sulla mia macchina, le X dovranno essere disegnate. (È anche possibile specificare una macchina remota in questa variabile e inviare l'output a Xs in esecuzione su un'altra macchina sulla rete.) Poiché Xs è stato avviato senza l'opzione -auth, non è necessario gestire la variabile XAUTHORITY o xhost comando.
  • Le applicazioni grafiche (o come le chiamano i client X) vengono renderizzate in X, senza la possibilità di spostarle/chiuderle/modificarle "-g (Width)x(Height)+(OffsetFromLeftEdge)+(OffsetFromTopEdge)". Con segno meno, rispettivamente da destra e dal bordo inferiore.
  • Due termini che vale la pena menzionare: X-server (così vengono chiamati gli X) e X-client (così viene chiamata qualsiasi applicazione grafica che viene eseguita in X). C’è un po’ di confusione nel comprendere questa terminologia; molti la intendono esattamente al contrario. Nel caso in cui mi connetto da una "macchina client" (nella terminologia di accesso remoto) a un "server" (nella terminologia di accesso remoto) per visualizzare un'applicazione grafica dal server sul mio monitor, allora il server X si avvia sul macchina in cui il monitor (ovvero, sulla “macchina client”, non sul “server”), e gli X client vengono avviati ed eseguiti sul “server”, sebbene siano visualizzati sul monitor della “macchina client”. 

Come funziona la grafica in Linux: una panoramica dei vari ambienti desktop

Componenti DE

Successivamente, diamo un'occhiata ai componenti che solitamente compongono un desktop.

Componenti DE: pulsante Start e barra delle applicazioni

Cominciamo con il cosiddetto pulsante “Start”. Spesso si tratta di un'applet separata utilizzata nella "Barra delle applicazioni". Di solito c'è anche un'applet per passare da un'applicazione in esecuzione all'altra.

Come funziona la grafica in Linux: una panoramica dei vari ambienti desktop
Dopo aver esaminato diversi ambienti desktop, riassumerei tali applicazioni sotto il nome generico di "Gestione app (Launcher/Switcher)", ovvero uno strumento per la gestione delle applicazioni (avvio e passaggio da una all'altra), e indicherei anche le utilità che sono un esempio di questo tipo di applicazione.

  • Si presenta sotto forma di pulsante “Start” sulla classica “barra delle applicazioni” (lunga l'intera lunghezza di uno dei bordi dello schermo):

    ○ pannello xfce4,
    ○ pannello accoppiamento/pannello gnomo,
    ○ pannello Vala,
    ○ tinta2.

  • Puoi anche avere una "barra delle applicazioni a forma di MacOS" separata (non tutta la lunghezza del bordo dello schermo), sebbene molte barre delle applicazioni possano apparire in entrambi gli stili. Qui, piuttosto, la differenza principale è puramente visiva: la presenza di un "effetto di ingrandimento del pittogramma al passaggio del mouse".

    ○ attracco,
    ○ latte-dock,
    ○ molo del Cairo,
    ○ tavola.

  • E/o un servizio che avvia le applicazioni quando si premono i tasti di scelta rapida (in molti ambienti desktop è richiesto un componente simile che consente di configurare i propri tasti di scelta rapida):

    ○ sxhkd.

  • Esistono anche diversi “lanciatori” simili a menu (dall'inglese Launch (lancio)):

    ○ dmenu-esegui,
    ○ rofi -show drun,
    ○ Alberto,
    ○ grugnito.

Come funziona la grafica in Linux: una panoramica dei vari ambienti desktop

Componenti DE: WM (Window Manager)

Maggiori dettagli in russo

Maggiori dettagli in inglese

WM (Window Manager) - un'applicazione responsabile della gestione di Windows, aggiunge la possibilità di:

  • spostare le finestre sul desktop (inclusa quella standard tenendo premuto il tasto Alt su qualsiasi parte della finestra, non solo sulla barra del titolo);
  • ridimensionare le finestre, ad esempio, trascinando la “cornice della finestra”;
  • aggiunge un “titolo” e pulsanti per minimizzare/massimizzare/chiudere l'applicazione nell'interfaccia della finestra;
  • il concetto di quale applicazione è “focus”.

Come funziona la grafica in Linux: una panoramica dei vari ambienti desktop
Elencherò i più conosciuti (tra parentesi indico quale DE viene utilizzato di default):

Come funziona la grafica in Linux: una panoramica dei vari ambienti desktop
Elencherò anche i “vecchi WM con elementi DE”. Quelli. oltre al window manager hanno elementi più tipici del DE completo, come il pulsante “Start” e la “Barra delle applicazioni”. Tuttavia, quanto sono "vecchi" se sia IceWM che WindowMaker hanno già rilasciato le loro versioni aggiornate nel 2020. Si scopre che è più corretto non "vecchio", ma "veterani":

Come funziona la grafica in Linux: una panoramica dei vari ambienti desktop
Come funziona la grafica in Linux: una panoramica dei vari ambienti desktop
Come funziona la grafica in Linux: una panoramica dei vari ambienti desktop
Come funziona la grafica in Linux: una panoramica dei vari ambienti desktop
Come funziona la grafica in Linux: una panoramica dei vari ambienti desktop
Oltre ai "classici" ("stack window manager"), vale la pena menzionarli in modo speciale piastrellato WM, che consente di posizionare le finestre "affiancate" sull'intero schermo, nonché per alcune applicazioni un desktop separato per ciascuna applicazione avviata sull'intero schermo. Questo è un po' insolito per le persone che non l'hanno mai usato prima, ma poiché io stesso utilizzo un'interfaccia del genere da molto tempo, posso dire che è abbastanza conveniente e ci si abitua rapidamente a tale interfaccia, dopodiché I gestori di finestre “classici” non sembrano più convenienti.

Come funziona la grafica in Linux: una panoramica dei vari ambienti desktop
Il progetto merita anche una menzione separata Compiz e un concetto come "Composite Window Manager", che utilizza capacità di accelerazione hardware per visualizzare trasparenza, ombre e vari effetti tridimensionali. Circa 10 anni fa ci fu un boom degli effetti 3D sui desktop Linux. Al giorno d'oggi, molti dei gestori di finestre integrati in DE fanno un uso parziale delle funzionalità composite. Apparso di recente Wayfire - un prodotto con funzionalità simili a Compiz per Wayland.

Come funziona la grafica in Linux: una panoramica dei vari ambienti desktop
Un elenco dettagliato dei vari gestori di finestre può essere trovato anche in  articolo comparativo.

Componenti DE: resto

Vale anche la pena notare i seguenti componenti desktop (qui utilizzo termini inglesi consolidati per descrivere un tipo di applicazione - questi non sono i nomi delle applicazioni stesse):

  • Applet:
  • Software (toolkit widget) - spesso con l'ambiente viene fornito un certo "set minimo" di software:

DE (ambiente desktop)

Maggiori dettagli in inglese

Dai componenti sopra indicati si ottiene il cosiddetto “Desktop Design Environment”. Spesso tutti i suoi componenti sono sviluppati utilizzando le stesse librerie grafiche e utilizzando gli stessi principi di progettazione. Pertanto, come minimo, viene mantenuto lo stile generale per l'aspetto delle applicazioni.

Qui possiamo evidenziare i seguenti ambienti desktop attualmente esistenti:

GNOME e KDE sono considerati i più comuni e XFCE è subito dietro di loro.

Come funziona la grafica in Linux: una panoramica dei vari ambienti desktop
Un confronto tra diversi parametri sotto forma di tabella si trova nel corrispondente Articolo di Wikipedia.  

Varietà DE

Come funziona la grafica in Linux: una panoramica dei vari ambienti desktop
Progetto_Looking_Glass

Ci sono anche esempi interessanti nella storia: nel 2003-2007 è stato realizzato un "design desktop 3D" per Linux con il nome "Project Looking Glass" di Sun. Io stesso ho utilizzato questo desktop, o meglio ci ho “giocato”, poiché era difficile da usare. Questo "design 3D" è stato scritto in Java in un'epoca in cui non esistevano schede video con supporto 3D. Pertanto tutti gli effetti venivano ricalcolati dal processore e il computer doveva essere molto potente, altrimenti tutto funzionava lentamente. Ma è andata benissimo. Le tessere di applicazione tridimensionali potrebbero essere ruotate/espanse. Era possibile ruotare il cilindro del desktop con lo sfondo da un panorama a 360 gradi. C'erano molte belle applicazioni: ad esempio, ascoltare musica sotto forma di "cambiare CD", ecc. Puoi guardarlo su YouTube video riguardo a questo progetto, solo la qualità di questi video sarà molto probabilmente scarsa, poiché in quegli anni non era possibile caricare video di alta qualità.

Come funziona la grafica in Linux: una panoramica dei vari ambienti desktop
Xfce

Desktop leggero. Il progetto esiste da molto tempo, dal 1996. Negli ultimi anni è stato piuttosto popolare, al contrario dei più pesanti KDE e GNOME, su molte distribuzioni che richiedono un'interfaccia desktop leggera e “classica”. Ha molte impostazioni e un gran numero di programmi propri: terminale (xfce4-terminal), file manager (thunar), visualizzatore di immagini (ristretto), editor di testo (mousepad).

 
Come funziona la grafica in Linux: una panoramica dei vari ambienti desktop
Pantheon 

Utilizzato nella distribuzione del sistema operativo elementare. Qui possiamo dire che ci sono "desktop" che vengono sviluppati e utilizzati all'interno di una distribuzione separata e non sono molto utilizzati (se non "non utilizzati affatto") in altre distribuzioni. Almeno non hanno ancora guadagnato popolarità e convinto la maggior parte del pubblico dei vantaggi del loro approccio. Pantheon mira a costruire un'interfaccia simile a macOS. 

Come funziona la grafica in Linux: una panoramica dei vari ambienti desktop
Opzione con pannello dock:

Come funziona la grafica in Linux: una panoramica dei vari ambienti desktop
Illuminismo

Forte attenzione agli effetti grafici e ai widget (dai tempi in cui altri ambienti desktop non avevano widget desktop come calendario/orologio). Utilizza le proprie librerie. Esiste un ampio insieme di "bellissime" applicazioni: terminale (Terminologia), lettore video (Rage), visualizzatore di immagini (Ephoto).

Come funziona la grafica in Linux: una panoramica dei vari ambienti desktop
Moksha

Questo è un fork di Enlightenment17, utilizzato nella distribuzione BodhiLinux. 

Come funziona la grafica in Linux: una panoramica dei vari ambienti desktop
GNOME

Inizialmente, un'interfaccia desktop “classica”, creata in contrapposizione a KDE, che era scritta nella libreria QT, all'epoca distribuita con una licenza poco conveniente per le distribuzioni commerciali. 

Come funziona la grafica in Linux: una panoramica dei vari ambienti desktop
GNOME_Shell

Dalla terza versione, GNOME ha iniziato ad arrivare con la GNOME Shell, che ha un "aspetto non classico", che non è piaciuto a tutti gli utenti (eventuali cambiamenti improvvisi nelle interfacce sono difficili da accettare per gli utenti). Di conseguenza, sono nati progetti fork che continuano lo sviluppo di questo desktop in stile “classico”: MATE e Cinnamon. Utilizzato per impostazione predefinita in molte distribuzioni commerciali. Ha un gran numero di impostazioni e le proprie applicazioni. 

Come funziona la grafica in Linux: una panoramica dei vari ambienti desktop
MATE 

È emerso da GNOME2 e continua a sviluppare questo ambiente di progettazione. Ha un gran numero di impostazioni e fork delle applicazioni che sono stati utilizzati in GNOME2 (vengono utilizzati nuovi nomi) per non confondere i fork con la loro nuova versione per GNOME3).

Come funziona la grafica in Linux: una panoramica dei vari ambienti desktop
Cannella

Un fork di GNOME Shell che fornisce agli utenti un'interfaccia in stile “classico” (come nel caso di GNOME2). 

Ha un gran numero di impostazioni e le stesse applicazioni di GNOME Shell.

Come funziona la grafica in Linux: una panoramica dei vari ambienti desktop
Budgie

Un fork in stile "classico" di GNOME che è stato sviluppato come parte della distribuzione Solus, ma ora arriva anche come desktop autonomo su varie altre distribuzioni.

Come funziona la grafica in Linux: una panoramica dei vari ambienti desktop
KDE_Plasma (o come viene spesso chiamato, semplicemente KDE) 

Un ambiente desktop sviluppato dal progetto KDE. 

Ha un numero enorme di impostazioni disponibili per l'utente semplice dall'interfaccia grafica e molte applicazioni grafiche sviluppate nell'ambito di questo desktop.

Come funziona la grafica in Linux: una panoramica dei vari ambienti desktop
Trinità

Nel 2008, KDE ha rilasciato la sua nuova implementazione di KDE Plasma (il motore desktop è stato pesantemente riscritto). Inoltre, come con GNOME/MATE, non è piaciuto a tutti i fan di KDE. Di conseguenza, è apparso un fork del progetto, continuando lo sviluppo della versione precedente, chiamato TDE (Trinity Desktop Environment).

Come funziona la grafica in Linux: una panoramica dei vari ambienti desktop
Deepin_DE

Uno dei nuovi ambienti desktop scritti utilizzando Qt (su cui è scritto KDE). Ha molte impostazioni ed è piuttosto bello (anche se questo è un concetto soggettivo) e un'interfaccia ben sviluppata. Sviluppato come parte della distribuzione Deepin Linux. Esistono anche pacchetti per altre distribuzioni

Come funziona la grafica in Linux: una panoramica dei vari ambienti desktop
Volare 

Un esempio di ambiente desktop scritto utilizzando Qt. Sviluppato come parte della distribuzione Astra Linux. 

Come funziona la grafica in Linux: una panoramica dei vari ambienti desktop
LXQt

Ambiente desktop leggero. Come diversi esempi precedenti, scritti usando Qt. In realtà, è la continuazione del progetto LXDE e il risultato di una fusione con il progetto Razor-qt.

Come puoi vedere, il desktop in Linux può apparire molto diverso e c'è un'interfaccia adatta a tutti i gusti: da molto bella e con effetti 3D a minimalista, da "classica" a insolita, dall'uso attivo delle risorse di sistema a leggera, da grande schermi su tablet/smartphone.

Bene, spero di essere riuscito a dare un'idea di quali siano i componenti principali della grafica e del desktop nel sistema operativo Linux.

Il materiale per questo articolo è stato testato nel luglio 2020 in un webinar. Puoi guardarlo qui.

È tutto. Spero che questo sia stato utile Se avete domande o commenti scrivete. Sarò felice di rispondere. Bene, vieni a studiare "Accademia di rete LANIT"!

Fonte: habr.com

Aggiungi un commento