Com funcionen els gràfics a Linux: una visió general dels diferents entorns d'escriptori

Aquest article tracta sobre com funcionen els gràfics de Linux i de quins components es compon. Té moltes captures de pantalla de diverses implementacions d'entorns d'escriptori. 

Si no sabeu gaire coses sobre KDE i GNOME, o si ho sabeu, però us agradaria saber quines altres alternatives hi ha, aquest article és per a vosaltres. És una visió general, i tot i que té molts noms i pocs termes, el material també serà útil per a principiants i només mirant cap a Linux.

El tema també pot ser d'interès per als usuaris avançats quan configuren l'accés remot i quan s'implementa un client lleuger. Sovint em trobo amb Linuxoids força experimentats amb les declaracions "al servidor només hi ha una línia d'ordres i no penso estudiar els gràfics amb més detall, ja que tot això és necessari per als usuaris normals". Però fins i tot els coneixedors de Linux estan sorpresos i contents de descobrir l'opció "-X" per a l'ordre ssh (i per això és útil entendre el funcionament i les funcions del servidor X).

Com funcionen els gràfics a Linux: una visió general dels diferents entorns d'escriptoriFont

He estat ensenyant cursos de Linux durant gairebé 15 anys a "Network Academy LANIT”I estic segur que moltes d'aquestes més de cinc mil persones que vaig formar llegeixen i probablement escriuen articles sobre Habr. Els cursos sempre estan molt ocupats (la durada mitjana del curs és de cinc dies), cal parlar de temes que requereixen almenys deu dies per a un coneixement complet. I sempre durant el curs, en funció del públic (novells reunits o administradors experimentats), així com de les "preguntes del públic", trio què transmetre amb més detall i què és més superficial per dedicar-hi més temps. a les utilitats de la línia d'ordres i la seva aplicació pràctica. Hi ha prou temes d'aquest tipus que s'han de sacrificar una mica. Aquests són "Història de Linux", "Diferències en les distribucions de Linux", "Sobre les llicències: GPL, BSD, ...", "Sobre gràfics i entorns d'escriptori" (el tema d'aquest article), etc. No és que no siguin importants, però normalment hi ha moltes preguntes més rellevants "aquí i ara" i només uns cinc dies... No obstant això, per a una comprensió general dels fonaments bàsics del sistema operatiu Linux, una comprensió de la diversitat disponible (de manera que fins i tot utilitzant una distribució específica de Linux , encara tenen una visió més àmplia de tot aquest enorme i vast món que s'anomena "Linux") és útil i necessari estudiar aquests temes. 

Al llarg de l'article, per a cada component, indiqui enllaços per a aquells que vulguin aprofundir en el tema, per exemple, als articles de la Viquipèdia (tot i que assenyaleu una versió més completa / útil si hi ha articles en anglès i rus).

Per a exemples bàsics i captures de pantalla, vaig utilitzar la distribució openSUSE. Va ser possible utilitzar qualsevol altra distribució desenvolupada per la comunitat amb un gran nombre de paquets al repositori. És difícil, però possible, demostrar la varietat de dissenys d'escriptori en una distribució comercial, ja que sovint utilitzen només un o dos dels entorns d'escriptori més coneguts. Així, els desenvolupadors redueixen la tasca d'alliberar un sistema operatiu estable i depurat. Al mateix sistema, vaig instal·lar tots els DM / DE / WM (una explicació d'aquests termes a continuació), que vaig trobar al repositori. 

Les captures de pantalla amb "marcs blaus" s'acaben de fer a l'openSUSE. 

Es van fer captures de pantalla amb "marcs blancs" en altres distribucions, s'indiquen a la captura de pantalla. 

Les captures de pantalla amb "vores grises" es van extreure d'Internet, com a exemples de dissenys d'escriptori d'abans.

Així doncs, comencem.

Els principals components que conformen els gràfics

Escolliré tres components principals i els enumeraré en l'ordre en què s'inicien a l'inici del sistema: 

  1. DM (Gestor de pantalla);
  2. servidor de visualització;
  3. DE (Entorn d'escriptori).

A més, com a subelements importants de l'entorn d'escriptori: 

  • Gestor d'aplicacions/llançador/canviador (botó d'inici); 
  • WM (Gestor de finestres);
  • programari que inclou l'entorn d'escriptori.

Més detalls sobre cada article.

DM (Gestor de visualització)

La primera aplicació que s'inicia quan s'inicia "gràfics" és DM (Display Manager), un gestor de visualitzacions. Les seves principals tasques:

  • preguntar quins usuaris deixar entrar al sistema, demanar dades d'autenticació (contrasenya, empremta digital);
  • triar quin entorn d'escriptori s'executa.

Actualment, s'utilitzen àmpliament diverses distribucions: 

La llista de DM existents es manté actualitzada a Article de la wiki. 

Com funcionen els gràfics a Linux: una visió general dels diferents entorns d'escriptori
Com funcionen els gràfics a Linux: una visió general dels diferents entorns d'escriptori
Com funcionen els gràfics a Linux: una visió general dels diferents entorns d'escriptori
Com funcionen els gràfics a Linux: una visió general dels diferents entorns d'escriptori
Val la pena assenyalar que les captures de pantalla següents utilitzen el mateix gestor de visualització LightDM, però en diferents distribucions (els noms de les distribucions estan entre parèntesis). Comproveu com de diferent pot semblar aquest DM gràcies al treball dels dissenyadors de diferents distribucions.

Com funcionen els gràfics a Linux: una visió general dels diferents entorns d'escriptori
Com funcionen els gràfics a Linux: una visió general dels diferents entorns d'escriptori
Com funcionen els gràfics a Linux: una visió general dels diferents entorns d'escriptori
Com funcionen els gràfics a Linux: una visió general dels diferents entorns d'escriptori
Com funcionen els gràfics a Linux: una visió general dels diferents entorns d'escriptori
El principal d'aquesta diversitat és deixar clar que hi ha una aplicació que s'encarrega de llançar els gràfics i permetre a l'usuari accedir a aquests gràfics, i hi ha diferents implementacions d'aquesta aplicació que es diferencien en l'aspecte i en alguna funcionalitat (elecció del disseny entorns, elecció d'usuaris, versió per a usuaris mal vists, possibilitat d'accés remot a través del protocol XDMCP).

Servidor de visualització

Display Server és una mena de base gràfica, la tasca principal de la qual és treballar amb una targeta de vídeo, un monitor i amb diversos dispositius d'entrada (teclat, ratolí, touchpads). És a dir, una aplicació (per exemple, un navegador o un editor de text) que es representa en un "gràfic" no necessita saber treballar directament amb dispositius, no necessita saber sobre els controladors. Tot s'encarrega de la X Window.

Quan es parla de Display Server, durant molts anys a Linux, i a Unix, va significar una aplicació X Windows o en la gent comuna X (X). 

Ara moltes distribucions estan substituint X per Wayland. 

També podeu llegir:

Primer, anem a executar-hi X i algunes aplicacions gràfiques.

Pràcticum "executa X i aplicacions en ella"

Ho faré tot des de l'usuari webinaruser acabat de crear (seria més fàcil, però no més segur, fer-ho tot des de l'arrel).

  • Com que H'am necessita accés als dispositius, dono accés: Vaig determinar la llista de dispositius mirant els errors en iniciar X al registre (/home/webinaruser/.local/share/xorg/Xorg.77.log) 

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

  • Després d'això començo les X:

% X -retro :77 vt8 & 

Opcions: * -retro - comença amb un fons clàssic "gris", no negre com a predeterminat; * :77 - He establert (qualsevol dins d'un rang raonable és possible, només :0 probablement ja estigui ocupat per gràfics ja en execució) número de pantalla, algun identificador únic real pel qual serà possible distingir entre diverses X en execució; * vt8 - especifica el terminal, aquí /dev/tty8, on es mostraran les X). 

  • Llançament de l'aplicació gràfica:

Per fer-ho, primer establim una variable mitjançant la qual l'aplicació entengui quina de les X tinc executant per enviar el que cal dibuixar: 

% export DISPLAY=":77" 

Podeu veure la llista de X en execució així: 

ps -fwwC X

Un cop establerta la variable, podem llançar aplicacions a les nostres X; per exemple, inicio el rellotge:

% xclock -update 1 & 

% xcalc & 

% xeyes -g 200x150-300+50 &

Com funcionen els gràfics a Linux: una visió general dels diferents entorns d'escriptori
Les idees i conclusions principals d'aquest fragment:

  • Els X necessiten accedir als dispositius: terminal, targeta de vídeo, dispositius d'entrada,
  • Els mateixos X no mostren cap element de la interfície: és un gris (si té l'opció "--retro") o un llenç negre de determinades mides (per exemple, 1920 × 1080 o 1024 × 768) per executar-hi aplicacions gràfiques.
  • El moviment de la "creu" mostra que les X rastregen la posició del ratolí i transmeten aquesta informació a les aplicacions que s'hi executen.
  • A més, les pulsacions de X de X capten les pulsacions del teclat i transmeten aquesta informació a les aplicacions.
  • La variable DISPLAY indica a les aplicacions de gràfics en quina pantalla (cada X comença amb un número de pantalla únic a l'inici) i, per tant, quina de les que s'executen a la meva màquina, dibuixar X. (També és possible establir aquesta variable a una màquina remota i enviar la sortida a Xs que s'executen en una altra màquina de la xarxa.) Com que les X es van iniciar sense l'opció -auth, no cal tractar amb la variable XAUTHORITY o l'xhost. comandament.
  • Les aplicacions gràfiques (o com les anomenen els clients X) es dibuixen en X, mentre que sense la possibilitat de moure-les/tancar-les/canviar-les "-g (Amplada)x(Alçada)+(Majús de la vora esquerra) + (Majús de la vora superior)". Amb un signe menys, respectivament, des de la dreta i des de la vora inferior.
  • Dos termes que val la pena esmentar són X-server (així s'anomenen els X) i X-clients (així s'anomena qualsevol aplicació gràfica que s'executi en X). Hi ha una mica de confusió a l'hora d'entendre aquesta terminologia, molts entenen exactament el contrari. En el cas que em connecto des de la "màquina client" (en terminologia d'accés remot) al "servidor" (en terminologia d'accés remot) per mostrar una aplicació gràfica del servidor al meu monitor, llavors el servidor X s'inicia al màquina on el monitor (és a dir, a la "màquina client", no al "servidor") i els clients X s'inicien i s'executen al "servidor", encara que es mostren al monitor de la "màquina client". 

Com funcionen els gràfics a Linux: una visió general dels diferents entorns d'escriptori

Components DE

A continuació, analitzarem els components que solen componer l'escriptori.

Components DE: Botó d'inici i barra de tasques

Comencem amb l'anomenat botó "Inici". Sovint, aquesta és una miniaplicació independent que s'utilitza a la "Barra de tasques". Normalment també hi ha una miniaplicació per canviar entre aplicacions en execució.

Com funcionen els gràfics a Linux: una visió general dels diferents entorns d'escriptori
Després d'observar diferents entorns d'escriptori, resumiria aquestes aplicacions amb el nom general "Gestor d'aplicacions (llançador / commutador)", és a dir, una eina per gestionar aplicacions (llançament i canvi entre les en execució), i també indicaria les utilitats que són un exemple d'una aplicació d'aquest tipus.

  • Succeeix en forma de botó "Inici" a la "barra de tasques" clàssica (durada completa d'una de les vores de la pantalla):

    ○ panell xfce4,
    ○ mate-panel/gnome-panel,
    ○ vala-panel,
    ○ tint2.

  • També podeu ressaltar "Barres de tasques en forma de MacOS" per separat (no tota la longitud de la vora de la pantalla), encara que moltes barres de tasques poden aparèixer en totes dues. Aquí, més aviat, la diferència principal és purament visual: la presència de "l'efecte d'augmentar les icones al passar el cursor".

    ○ moll,
    ○ moll amb llet,
    ○ moll del Caire,
    ○ tauló.

  • I / O un servei que llança aplicacions quan es prem les tecles d'accés ràpid (en molts entorns d'escriptori, un component similar està necessàriament present i us permet configurar les vostres pròpies tecles d'accés ràpid):

    ○ sxhkd.

  • També hi ha diversos "llançadors" en forma de menú (de l'anglès. Launch (run)):

    ○ dmenu-run,
    ○ rofi -show drun,
    ○ Albert,
    ○ grunge.

Com funcionen els gràfics a Linux: una visió general dels diferents entorns d'escriptori

Components DE: WM (Gestor de finestres)

Llegeix més en rus

Llegeix més en anglès

WM (Gestor de finestres): un tipus d'aplicació que s'encarrega de gestionar les finestres, afegeix la capacitat de:

  • moure finestres per l'escriptori (inclosa l'estàndard mantenint premuda la tecla Alt per a qualsevol part de la finestra, i no només per al títol);
  • canviar la mida de les finestres, per exemple, arrossegant el "marc de la finestra";
  • afegeix un "títol (títol)" i botons per minimitzar / maximitzar / tancar l'aplicació a la interfície de la finestra;
  • el concepte de quina aplicació està "enfocada".

Com funcionen els gràfics a Linux: una visió general dels diferents entorns d'escriptori
Enumeré els més famosos (indic entre parèntesis quin DE s'utilitza per defecte):

Com funcionen els gràfics a Linux: una visió general dels diferents entorns d'escriptori
També enumeraré "WM antic amb elements DE". Aquells. a més del gestor de finestres, tenen elements com el botó d'inici i la barra de tasques, que són més inherents a l'DE de ple dret. Tot i que "vells" tenen, si tant IceWM com WindowMaker ja han llançat les seves versions actualitzades el 2020. Resulta que és més correcte no "vells", sinó "vells":

Com funcionen els gràfics a Linux: una visió general dels diferents entorns d'escriptori
Com funcionen els gràfics a Linux: una visió general dels diferents entorns d'escriptori
Com funcionen els gràfics a Linux: una visió general dels diferents entorns d'escriptori
Com funcionen els gràfics a Linux: una visió general dels diferents entorns d'escriptori
Com funcionen els gràfics a Linux: una visió general dels diferents entorns d'escriptori
A més del "clàssic" ("gestors de finestres de pila"), val la pena assenyalar per separat enrajolat WM, que permet que les finestres es mostrin a tota la pantalla i, per a algunes aplicacions, un escriptori independent per a cada aplicació en execució a pantalla completa. Això és una mica inusual per a persones que no els han utilitzat abans, però com que jo mateix he estat utilitzant aquesta interfície durant força temps, puc dir que és bastant convenient i que us acostumeu ràpidament a aquesta interfície, després de la qual cosa els gestors de finestres "clàssics" no semblen convenients.

Com funcionen els gràfics a Linux: una visió general dels diferents entorns d'escriptori
També val la pena esmentar per separat el projecte Compiz i un concepte com el "Composite Window Manager", que utilitza les capacitats d'acceleració de maquinari per mostrar transparència, ombres i diversos efectes tridimensionals. Fa uns 10 anys hi va haver un auge dels efectes 3D als escriptoris Linux. Ara, molts dels gestors de finestres integrats al DE utilitzen algunes de les funcions de composició. Va aparèixer recentment Firefire - un producte amb una funcionalitat similar de Compiz per a Wayland.

Com funcionen els gràfics a Linux: una visió general dels diferents entorns d'escriptori
També es pot trobar una llista detallada de diversos gestors de finestres a  article de comparació.

Components DE: la resta

També val la pena assenyalar els següents components d'escriptori (aquí faig servir termes establerts en anglès per descriure el tipus d'aplicació; aquests no són els noms de les aplicacions en si):

  • Applets:
  • Programari (conjunt d'eines de widgets): sovint un determinat "conjunt mínim" de programari ve amb l'entorn:

DE (Entorn d'escriptori)

Llegeix més en anglès

Dels components enumerats anteriorment s'obté l'anomenat "Entorn d'escriptori". Sovint, tots els seus components es desenvolupen utilitzant les mateixes biblioteques gràfiques i utilitzant els mateixos principis de disseny. Així, almenys, es manté un estil comú per a l'aparició d'aplicacions.

Aquí podem destacar els següents entorns d'escriptori existents actualment:

El GNOME i el KDE es consideren els més comuns, i XFCE els segueix.

Com funcionen els gràfics a Linux: una visió general dels diferents entorns d'escriptori
La comparació per diversos paràmetres en forma de taula es pot veure al corresponent article de la Viquipèdia.  

Varietat DE

Com funcionen els gràfics a Linux: una visió general dels diferents entorns d'escriptori
Projecte_Mirador

Fins i tot hi ha exemples tan interessants de la història: el 2003-2007, es va fer un "disseny d'escriptori 3D" per a Linux amb el nom de "Project Looking Glass" de Sun. Jo mateix vaig fer servir aquest escriptori, o més aviat "he jugat", ja que era difícil d'utilitzar. Aquesta "aspecte 3D" es va escriure en Java en un moment en què no hi havia targetes gràfiques 3D. Per tant, tots els efectes van ser recalculats pel processador, i l'ordinador havia de ser molt potent, sinó tot funcionava lentament. Però va resultar bonic. Les fitxes d'aplicació 360D es podrien girar/ampliar. Va ser possible girar al cilindre de l'escriptori amb fons de pantalla des d'una panoràmica de XNUMX ​​graus. Hi havia diverses aplicacions pròpies: per exemple, escoltar música en forma de "canviador de CD", etc. Podeu mirar a youtube vídeo Sobre aquest projecte, és probable que només la qualitat d'aquests vídeos sigui deficient, ja que en aquells anys no era possible pujar vídeos d'alta qualitat.

Com funcionen els gràfics a Linux: una visió general dels diferents entorns d'escriptori
Xfce

Escriptori lleuger. Hi ha un projecte des de fa molt de temps, des del 1996. En els darrers anys, força popular, a diferència dels més pesats KDE i GNOME, en moltes distribucions que requereixen una interfície d'escriptori lleugera i "clàssica". Té moltes configuracions i un gran nombre dels seus programes: terminal (xfce4-terminal), gestor de fitxers (thunar), visualitzador d'imatges (ristretto), editor de text (mousepad).

 
Com funcionen els gràfics a Linux: una visió general dels diferents entorns d'escriptori
Panteó 

S'utilitza a la distribució "SO elemental". Aquí podem dir que hi ha "escriptoris" que es desenvolupen i s'utilitzen dins d'una sola distribució i que no s'utilitzen molt (si no "no s'utilitzen en absolut") en altres distribucions. Almenys encara no han guanyat popularitat i no han convençut una gran part de l'audiència dels avantatges del seu enfocament. Pantheon té com a objectiu crear una interfície semblant a macOS. 

Com funcionen els gràfics a Linux: una visió general dels diferents entorns d'escriptori
Opció de tauler d'acoblament:

Com funcionen els gràfics a Linux: una visió general dels diferents entorns d'escriptori
Il · lustració

Fort enfocament en efectes gràfics i ginys (des dels dies en què altres entorns d'escriptori no tenien ginys a l'escriptori, com el calendari/rellotge). Utilitza les seves pròpies biblioteques. Hi ha un gran conjunt de les seves "belles" aplicacions: terminal (Terminologia), reproductor de vídeo (Rage), visualitzador d'imatges (Ephoto).

Com funcionen els gràfics a Linux: una visió general dels diferents entorns d'escriptori
Moksha

Aquesta és una bifurcació d'Enlightenment17 que s'utilitza a la distribució BodhiLinux. 

Com funcionen els gràfics a Linux: una visió general dels diferents entorns d'escriptori
GNOME

Inicialment una interfície d'escriptori "clàssica", creada en oposició al KDE, que estava escrita a la biblioteca QT, en aquell moment es distribuïa sota una llicència poc convenient per a distribucions comercials. 

Com funcionen els gràfics a Linux: una visió general dels diferents entorns d'escriptori
GNOME_Shell

A partir de la tercera versió de GNOME, GNOME va començar a enviar-se amb el GNOME Shell, que té un "aspecte no clàssic", que no agradava a tots els usuaris (els canvis sobtats a les interfícies són difícils d'acceptar per als usuaris). Com a resultat, l'aparició de projectes de forquilla que continuen el desenvolupament d'aquest escriptori a l'estil "clàssic": MATE i Cinnamon. S'utilitza per defecte en moltes distribucions comercials. Té un gran nombre de configuracions i les seves aplicacions. 

Com funcionen els gràfics a Linux: una visió general dels diferents entorns d'escriptori
MATE 

Va aparèixer sobre la base de GNOME2 i continua desenvolupant aquest entorn. Té un gran nombre de retocs i bifurcacions d'aplicacions que es van fer servir a GNOME2 (s'utilitzen nous noms per no confondre les bifurcacions amb la seva nova versió per a GNOME3).

Com funcionen els gràfics a Linux: una visió general dels diferents entorns d'escriptori
Canela

Una bifurcació de GNOME Shell que proporciona als usuaris una interfície d'estil "clàssic" (com era a GNOME2). 

Té un gran nombre de configuracions i les mateixes aplicacions que per a GNOME Shell.

Com funcionen els gràfics a Linux: una visió general dels diferents entorns d'escriptori
Budgie

Una bifurcació d'estil "clàssic" de GNOME que es va desenvolupar com a part de la distribució Solus, però que ara també es presenta com un escriptori autònom en diverses altres distribucions.

Com funcionen els gràfics a Linux: una visió general dels diferents entorns d'escriptori
KDE_Plasma (o, com se sol dir, només KDE) 

Entorn d'escriptori desenvolupat pel projecte KDE. 

Té un gran nombre de configuracions disponibles per a un usuari senzill des de la interfície gràfica i moltes aplicacions gràfiques desenvolupades dins d'aquest escriptori.

Com funcionen els gràfics a Linux: una visió general dels diferents entorns d'escriptori
Trinitat

El 2008, KDE va ​​llançar la seva nova implementació de KDE Plasma (el motor d'escriptori es va reescriure molt). A més, com passa amb GNOME/MATE, no tots els fans de KDE els va agradar. Com a resultat, va aparèixer una bifurcació del projecte, continuant el desenvolupament de la versió anterior, anomenada TDE (Trinity Desktop Environment).

Com funcionen els gràfics a Linux: una visió general dels diferents entorns d'escriptori
Deepin_DE

Un dels entorns d'escriptori més nous escrits amb Qt (que és el que està escrit KDE). Té moltes configuracions i una interfície força bonica (tot i que aquest és un concepte subjectiu) i ben desenvolupada. Desenvolupat com a part de la distribució Deepin Linux. També hi ha paquets per a altres distribucions.

Com funcionen els gràfics a Linux: una visió general dels diferents entorns d'escriptori
Volar 

Un exemple d'entorn d'escriptori escrit amb Qt. Desenvolupat com a part de la distribució Astra Linux. 

Com funcionen els gràfics a Linux: una visió general dels diferents entorns d'escriptori
LXQt

Entorn d'escriptori lleuger. Com diversos exemples anteriors, escrits amb Qt. De fet, és una continuació del projecte LXDE i fruit d'una fusió amb el projecte Razor-qt.

Com podeu veure, l'escriptori de Linux pot semblar molt diferent i hi ha una interfície adequada per als gustos de tothom: des de molt bonic i amb efectes 3D fins a minimalistes, de "clàssic" a inusual, de sistema pesat a lleuger, de pantalles grans a tauletes/telèfons intel·ligents.

Bé, m'agradaria esperar haver aconseguit donar-me una idea de quins són els components principals dels gràfics i de l'escriptori al sistema operatiu Linux.

El material d'aquest article es va provar el juliol de 2020 en un seminari web. Es pot veure aquí.

Això és tot. Espero que hagi estat útil. Si tens alguna pregunta i comentari, escriu. Estaré encantat de respondre. Bé, vine a estudiar Network Academy LANIT!

Font: www.habr.com

Afegeix comentari