Cum funcționează grafica în Linux: o prezentare generală a diferitelor medii desktop

Acest articol este despre cum funcționează grafica în Linux și din ce componente constă. Conține multe capturi de ecran ale diferitelor implementări ale mediilor desktop. 

Dacă nu faceți diferența între KDE și GNOME, sau dacă faceți, dar doriți să știți ce alte alternative există, atunci acest articol este pentru dvs. Este o privire de ansamblu și, deși conține o mulțime de nume și puțini termeni, materialul va fi util și pentru începători și pentru cei care caută doar Linux.

Subiectul poate fi, de asemenea, de interes pentru utilizatorii avansați atunci când configurează accesul la distanță și implementează un client subțire. Întâlnesc adesea utilizatori Linux experimentați cu afirmațiile „există doar o linie de comandă pe server și nu intenționez să studiez grafica mai detaliat, deoarece toate acestea sunt necesare pentru utilizatorii obișnuiți”. Dar chiar și experții Linux sunt foarte surprinși și fericiți să descopere opțiunea „-X” pentru comanda ssh (și pentru aceasta este util să înțelegem funcționarea și funcțiile serverului X).

Cum funcționează grafica în Linux: o prezentare generală a diferitelor medii desktopSursă

Predau cursuri Linux de aproape 15 ani la "Academia de rețea LANIT„și sunt sigur că mulți dintre cei peste cinci mii de oameni pe care i-am instruit citesc și probabil scriu articole despre Habr. Cursurile sunt întotdeauna foarte intense (durata medie a cursului este de cinci zile); trebuie să acoperiți subiecte care necesită cel puțin zece zile pentru a înțelege pe deplin. Și întotdeauna pe parcursul cursului, în funcție de public (începători adunați sau administratori experimentați), precum și de „întrebări din partea publicului”, aleg ce să transmit mai detaliat și ce mai superficial, pentru a dedică mai mult timpul pentru utilitățile din linia de comandă și aplicarea lor practică. Sunt destule subiecte ca acesta care necesită un mic sacrificiu. Acestea sunt „Istoria Linux”, „Diferențe în distribuțiile Linux”, „Despre licențe: GPL, BSD, ...”, „Despre grafică și mediile desktop” (subiectul acestui articol), etc. Nu că nu sunt important, dar de obicei există multe mai multe întrebări presante „aici și acum” și doar aproximativ cinci zile... Cu toate acestea, pentru o înțelegere generală a elementelor de bază ale sistemului de operare Linux, o înțelegere a diversității disponibile (astfel încât chiar și folosind o anumită Distribuția Linux, aveți încă o viziune mai largă asupra întregii lumi imense și vaste care se numește „Linux”), studierea acestor subiecte este utilă și necesară. 

Pe măsură ce articolul progresează, ofer link-uri pentru fiecare componentă pentru cei care doresc să aprofundeze subiectul, de exemplu, către articole Wikipedia (în timp ce arăt spre o versiune mai completă/utilă dacă există articole în engleză și rusă).

Pentru exemple de bază și capturi de ecran am folosit distribuția openSUSE. Orice altă distribuție dezvoltată de comunitate putea fi folosită, atâta timp cât ar exista un număr mare de pachete în depozit. Este dificil, dar nu imposibil, să demonstrezi varietatea design-urilor desktop pe o distribuție comercială, deoarece acestea folosesc adesea doar unul sau două dintre cele mai cunoscute medii desktop. În acest fel, dezvoltatorii restrâng sarcina de a lansa un sistem de operare stabil, depanat. Pe același sistem am instalat toate DM/DE/WM (explicația acestor termeni mai jos) pe care le-am găsit în depozit. 

Capturile de ecran cu „cadre albastre” au fost făcute pe openSUSE. 

Am făcut capturi de ecran cu „cadre albe” pe alte distribuții, sunt indicate în captură de ecran. 

Capturile de ecran cu „cadre gri” au fost luate de pe Internet, ca exemple de design desktop din anii trecuți.

Deci, să începem.

Principalele componente care alcătuiesc grafica

Voi evidenția trei componente principale și le voi enumera în ordinea în care sunt lansate la pornirea sistemului: 

  1. DM (Manager de display);
  2. Server de afișare;
  3. DE (Desktop Environment).

În plus, ca sub-clauze importante ale Mediului desktop: 

  • Apps Manager/Launcher/Switcher (butonul Start); 
  • WM (Manager de ferestre);
  • diverse software care vin cu mediul desktop.

Mai multe detalii despre fiecare punct.

DM (Manager de afișare)

Prima aplicație care se lansează când porniți „grafică” este DM (Display Manager), un manager de afișare. Sarcinile sale principale:

  • întrebați ce utilizatori să permită accesul în sistem, solicitați date de autentificare (parolă, amprentă);
  • alegeți ce mediu desktop să rulați.

În prezent, utilizat pe scară largă în diverse distribuții: 

Lista DM-urilor existente este ținută la zi în articol Wiki. 

Cum funcționează grafica în Linux: o prezentare generală a diferitelor medii desktop
Cum funcționează grafica în Linux: o prezentare generală a diferitelor medii desktop
Cum funcționează grafica în Linux: o prezentare generală a diferitelor medii desktop
Cum funcționează grafica în Linux: o prezentare generală a diferitelor medii desktop
Este de remarcat faptul că următoarele capturi de ecran folosesc același manager de afișare LightDM, dar în distribuții diferite (numele distribuțiilor sunt indicate în paranteze). Vedeți cât de diferit poate arăta acest DM datorită muncii designerilor din diferite distribuții.

Cum funcționează grafica în Linux: o prezentare generală a diferitelor medii desktop
Cum funcționează grafica în Linux: o prezentare generală a diferitelor medii desktop
Cum funcționează grafica în Linux: o prezentare generală a diferitelor medii desktop
Cum funcționează grafica în Linux: o prezentare generală a diferitelor medii desktop
Cum funcționează grafica în Linux: o prezentare generală a diferitelor medii desktop
Principalul lucru în această diversitate este să se clarifice că există o aplicație care este responsabilă pentru lansarea graficelor și care permite utilizatorului să acceseze aceste elemente grafice și există diferite implementări ale acestei aplicații care diferă ca aspect și ușor în funcționalitate (selectarea medii de proiectare, selecție de utilizatori, versiune pentru utilizatorii care nu văd, disponibilitatea accesului la distanță prin protocol XDMCP).

Display Server

Display Server este un fel de fundație grafică, a cărei sarcină principală este să lucreze cu o placă video, un monitor și diverse dispozitive de intrare (tastatură, mouse, touchpad-uri). Adică, o aplicație (de exemplu, un browser sau un editor de text) care este redată în „grafică” nu trebuie să știe cum să lucreze direct cu dispozitivele și nici nu trebuie să știe despre drivere. X Window se ocupă de toate acestea.

Când am vorbit despre Display Server, de mulți ani în Linux, și chiar și în Unix, s-a vrut aplicația X Window System sau în limbajul comun X (X). 

Acum multe distribuții îl înlocuiesc pe X Wayland. 

De asemenea, puteți citi:

Mai întâi, să lansăm X-uri și mai multe aplicații grafice în ele.

Workshop „Rularea X și aplicațiile în el”

Voi face totul de la utilizatorul webinaruser nou creat (ar fi mai ușor, dar nu mai sigur, să fac totul ca root).

  • Deoarece X are nevoie de acces la dispozitive, dau acces: Lista dispozitivelor a fost determinată analizând erorile la pornirea X în jurnal (/home/webinaruser/.local/share/xorg/Xorg.77.log) 

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

  • După aceea lansez X-urile:

% X -retro :77 vt8 & 

Opțiuni: * -retro - lansează cu un fundal clasic „gri”, și nu cu negru ca implicit; * :77 - Am stabilit (orice într-un interval rezonabil este posibil, doar :0 este cel mai probabil deja ocupat de grafica care rulează deja) numărul de ecran, de fapt un fel de identificator unic prin care va fi posibil să distingem mai multe X-uri care rulează; * vt8 - indică terminalul, aici /dev/tty8, pe care vor fi afișate X). 

  • Lansați aplicația grafică:

Pentru a face acest lucru, setăm mai întâi o variabilă prin care aplicația va înțelege care dintre X-urile am rulat pentru a trimite ceea ce trebuie desenat: 

% export DISPLAY=":77" 

Puteți vizualiza lista de X-uri care rulează astfel: 

ps -fwwC X

După ce am setat variabila, putem lansa aplicații în X-urile noastre - de exemplu, lansez un ceas:

% xclock -update 1 & 

% xcalc & 

% xeyes -g 200x150-300+50 &

Cum funcționează grafica în Linux: o prezentare generală a diferitelor medii desktop
Principalele idei și concluzii din acest fragment:

  • X au nevoie de acces la dispozitive: terminal, placă video, dispozitive de intrare,
  • X-urile în sine nu afișează niciun element de interfață - este o pânză gri (dacă are opțiunea „--retro”) sau neagră de anumite dimensiuni (de exemplu, 1920x1080 sau 1024x768) pentru a rula aplicații grafice în ea.
  • Mișcarea „crucii” arată că X-urile urmăresc poziția mouse-ului și transmit aceste informații aplicațiilor care rulează în el.
  • X-urile captează, de asemenea, apăsările de taste de pe tastatură și transmit aceste informații către aplicații.
  • Variabila DISPLAY spune aplicațiilor grafice în ce ecran (fiecare X-uri sunt lansate cu un număr unic de ecran la pornire) și, prin urmare, în care dintre cele care rulează pe mașina mea, X-urile vor trebui desenate. (Este, de asemenea, posibil să specificați o mașină de la distanță în această variabilă și să trimiteți rezultate către X-uri care rulează pe o altă mașină din rețea.) Deoarece X-urile au fost lansate fără opțiunea -auth, nu este nevoie să se ocupe de variabila XAUTHORITY sau de xhost comanda.
  • Aplicațiile grafice (sau așa cum le numesc clienții X) sunt redate în X - fără posibilitatea de a le muta/închide/schimba „-g (Width)x(Height)+(OffsetFromLeftEdge)+(OffsetFromTopEdge)”. Cu semnul minus, respectiv, din dreapta și din marginea de jos.
  • Doi termeni care merită menționați: X-server (așa se numesc X) și X-clients (așa se numește orice aplicație grafică care rulează în X). Există o mică confuzie în înțelegerea acestei terminologii; mulți o înțeleg exact opusul. În cazul în care mă conectez de la o „mașină client” (în terminologia de acces la distanță) la un „server” (în terminologia de acces la distanță) pentru a afișa o aplicație grafică de pe server pe monitor, atunci serverul X pornește pe mașina unde monitorul (adică pe „mașina client”, nu pe „server”) și clienții X pornesc și rulează pe „server”, deși sunt afișate pe monitorul „mașinii client”. 

Cum funcționează grafica în Linux: o prezentare generală a diferitelor medii desktop

componente DE

În continuare, să ne uităm la componentele care alcătuiesc de obicei un desktop.

Componente DE: Butonul Start și Bara de activități

Să începem cu așa-numitul buton „Start”. Adesea, acesta este un applet separat utilizat în „Bara de activități”. De asemenea, există de obicei un applet pentru comutarea între aplicațiile care rulează.

Cum funcționează grafica în Linux: o prezentare generală a diferitelor medii desktop
După ce am analizat diferite medii desktop, aș rezuma astfel de aplicații sub denumirea generală „Apps Manager (Launcher/Switcher)”, adică un instrument pentru gestionarea aplicațiilor (lansarea și comutarea între cele care rulează) și, de asemenea, aș indica utilități care sunt un exemplu de acest tip de aplicație.

  • Acesta vine sub forma butonului „Start” de pe „Bara de activități” clasică (pe toată lungimea uneia dintre marginile ecranului):

    ○ xfce4-panel,
    ○ mate-panel/gnome-panel,
    ○ vala-panel,
    ○ nuanță2.

  • De asemenea, puteți avea o „bară de activități în formă de MacOS” separată (nu pe toată lungimea marginii ecranului), deși multe bare de activități pot apărea în ambele stiluri. Aici, mai degrabă, principala diferență este pur vizuală - prezența unui „efect de mărire a pictogramei la hover”.

    ○ dock,
    ○ latte-dock,
    ○ cairo-dock,
    ○ scândură.

  • Și/Sau un serviciu care lansează aplicații atunci când apăsați taste rapide (în multe medii desktop, este necesară o componentă similară și vă permite să configurați propriile taste rapide):

    ○ sxhkd.

  • Există, de asemenea, diverse „lansatoare” în formă de meniu (din engleză Launch (lansare)):

    ○ dmenu-run,
    ○ rofi -show drun,
    ○ albert,
    ○ mormăi.

Cum funcționează grafica în Linux: o prezentare generală a diferitelor medii desktop

Componente DE: WM (Window Manager)

Mai multe detalii în rusă

Mai multe detalii in engleza

WM (Window Manager) - o aplicație care este responsabilă cu gestionarea ferestrelor, adaugă capacitatea de a:

  • mutarea ferestrelor în jurul desktopului (inclusiv pe cea standard, ținând apăsată tasta Alt în orice parte a ferestrei, nu doar bara de titlu);
  • redimensionarea ferestrelor, de exemplu, trăgând „cadru de fereastră”;
  • adaugă un „titlu” și butoane pentru minimizarea/maximizarea/închiderea aplicației la interfața ferestrei;
  • conceptul a cărui aplicație este în „focalizare”.

Cum funcționează grafica în Linux: o prezentare generală a diferitelor medii desktop
Voi enumera cele mai cunoscute (în paranteze indic care DE este folosit în mod implicit):

Cum funcționează grafica în Linux: o prezentare generală a diferitelor medii desktop
Voi enumera și „vechiul WM cu elemente DE”. Acestea. pe lângă managerul de ferestre, au elemente precum butonul „Start” și „Bara de activități”, care sunt mai tipice pentru DE cu drepturi depline. Deși, cât de „vechi” au dacă atât IceWM, cât și WindowMaker și-au lansat deja versiunile actualizate în 2020. Se pare că este mai corect nu „vechi”, ci „vechi”:

Cum funcționează grafica în Linux: o prezentare generală a diferitelor medii desktop
Cum funcționează grafica în Linux: o prezentare generală a diferitelor medii desktop
Cum funcționează grafica în Linux: o prezentare generală a diferitelor medii desktop
Cum funcționează grafica în Linux: o prezentare generală a diferitelor medii desktop
Cum funcționează grafica în Linux: o prezentare generală a diferitelor medii desktop
Pe lângă „clasic” („stiva manageri de ferestre”), merită menționat în mod special gresie WM, care vă permite să plasați ferestre „în terasa” pe întregul ecran, precum și pentru unele aplicații un desktop separat pentru fiecare aplicație lansată pe întreg ecranul. Acest lucru este puțin neobișnuit pentru oamenii care nu le-au folosit înainte, dar din moment ce eu însumi folosesc o astfel de interfață de destul de mult timp, pot spune că este destul de convenabil și te obișnuiești rapid cu o astfel de interfață, după care Managerii de ferestre „clasici” nu mai par convenabile.

Cum funcționează grafica în Linux: o prezentare generală a diferitelor medii desktop
Proiectul merită menționat și separat Compiz și un astfel de concept precum „Composite Window Manager”, care utilizează capabilitățile de accelerare hardware pentru a afișa transparența, umbrele și diverse efecte tridimensionale. Cu aproximativ 10 ani în urmă, a existat un boom în efectele 3D pe desktop-urile Linux. În zilele noastre, mulți dintre managerii de ferestre încorporați în DE folosesc parțial capabilitățile compozite. A apărut recent Firefire - un produs cu funcționalitate similară cu Compiz pentru Wayland.

Cum funcționează grafica în Linux: o prezentare generală a diferitelor medii desktop
O listă detaliată a diferitelor manageri de ferestre poate fi găsită și în  articol de comparație.

DE componente: rest

De asemenea, merită remarcat următoarele componente desktop (aici folosesc termeni englezi consacrați pentru a descrie un tip de aplicație - acestea nu sunt numele aplicațiilor în sine):

  • Applet-uri:
  • Software (kit de instrumente widget) - adesea un anumit „set minim” de software este furnizat împreună cu mediul:

DE (Desktop Environment)

Mai multe detalii in engleza

Din componentele de mai sus se obține așa-numitul „Desktop Design Environment”. Adesea, toate componentele sale sunt dezvoltate folosind aceleași biblioteci grafice și folosind aceleași principii de proiectare. Astfel, se menține cel puțin stilul general pentru apariția aplicațiilor.

Aici putem evidenția următoarele medii desktop existente în prezent:

GNOME și KDE sunt considerate cele mai comune, iar XFCE este aproape pe urmele lor.

Cum funcționează grafica în Linux: o prezentare generală a diferitelor medii desktop
O comparație a diferiților parametri sub forma unui tabel poate fi găsită în documentul corespunzător articol Wikipedia.  

soi DE

Cum funcționează grafica în Linux: o prezentare generală a diferitelor medii desktop
Project_Looking_Glass

Există chiar și exemple atât de interesante din istorie: în 2003-2007, un „design desktop 3D” a fost realizat pentru Linux cu numele „Project Looking Glass” de la Sun. Eu însumi am folosit acest desktop, sau mai degrabă m-am „jucat” cu el, deoarece era greu de folosit. Acest „design 3D” a fost scris în Java într-un moment în care nu existau plăci video cu suport 3D. Prin urmare, toate efectele au fost recalculate de procesor, iar computerul trebuia să fie foarte puternic, altfel totul funcționa lent. Dar a ieșit frumos. Plăcile de aplicare tridimensionale pot fi rotite/extinse. A fost posibil să se rotească în cilindrul desktopului cu tapet dintr-o panoramă de 360 ​​de grade. Au existat mai multe aplicații frumoase: de exemplu, ascultarea muzicii sub formă de „schimbarea CD-urilor”, etc. O puteți viziona pe YouTube video despre acest proiect, doar calitatea acestor videoclipuri va fi cel mai probabil slabă, deoarece în acei ani nu era posibil să se încarce videoclipuri de înaltă calitate.

Cum funcționează grafica în Linux: o prezentare generală a diferitelor medii desktop
Xfce

Desktop ușor. Proiectul există de destul de mult timp, din 1996. În ultimii ani, a fost destul de popular, spre deosebire de KDE și GNOME mai grele, pe multe distribuții care necesită o interfață desktop ușoară și „clasică”. Are multe setări și un număr mare de programe proprii: terminal (xfce4-terminal), manager de fișiere (thunar), vizualizator de imagini (ristretto), editor de text (mousepad).

 
Cum funcționează grafica în Linux: o prezentare generală a diferitelor medii desktop
Panteon 

Folosit în distribuția Elementary OS. Aici putem spune că există „desktop-uri” care sunt dezvoltate și utilizate în cadrul unei distribuții separate și nu sunt foarte folosite (dacă nu „nu sunt folosite deloc”) în alte distribuții. Cel puțin nu au câștigat încă popularitate și au convins majoritatea publicului de avantajele abordării lor. Pantheon își propune să construiască o interfață similară cu macOS. 

Cum funcționează grafica în Linux: o prezentare generală a diferitelor medii desktop
Opțiune cu panou de andocare:

Cum funcționează grafica în Linux: o prezentare generală a diferitelor medii desktop
Iluminism

Concentrare puternică asupra efectelor grafice și widget-urilor (din zilele în care alte medii desktop nu aveau widget-uri desktop precum calendarul/ceasul). Folosește propriile biblioteci. Există un set mare de aplicații proprii „frumoase”: terminal (Terminologie), player video (Rage), vizualizator de imagini (Ephoto).

Cum funcționează grafica în Linux: o prezentare generală a diferitelor medii desktop
Moksha

Acesta este un furk al Enlightenment17, care este folosit în distribuția BodhiLinux. 

Cum funcționează grafica în Linux: o prezentare generală a diferitelor medii desktop
GNOME

Inițial, o interfață desktop „clasică”, creată spre deosebire de KDE, care a fost scrisă în biblioteca QT, la acea vreme distribuită sub o licență care nu era foarte convenabilă pentru distribuțiile comerciale. 

Cum funcționează grafica în Linux: o prezentare generală a diferitelor medii desktop
GNOME_Shell

Din a treia versiune, GNOME a început să vină cu GNOME Shell, care are un „aspect non-clasic”, care nu le-a plăcut tuturor utilizatorilor (orice schimbare bruscă a interfețelor este greu de acceptat de către utilizatori). În consecință, apariția proiectelor furk care continuă dezvoltarea acestui desktop în stilul „clasic”: MATE și Cinnamon. Folosit implicit în multe distribuții comerciale. Are un număr mare de setări și aplicații proprii. 

Cum funcționează grafica în Linux: o prezentare generală a diferitelor medii desktop
MATE 

A apărut din GNOME2 și continuă să dezvolte acest mediu de design. Are un număr mare de setări și aplicații care au fost folosite în GNOME2 (se folosesc nume noi) pentru a nu confunda fork-urile cu noua lor versiune pentru GNOME3).

Cum funcționează grafica în Linux: o prezentare generală a diferitelor medii desktop
Scorţişoară

Un furk al GNOME Shell care oferă utilizatorilor o interfață în stil „clasic” (cum era cazul în GNOME2). 

Are un număr mare de setări și aceleași aplicații ca și pentru GNOME Shell.

Cum funcționează grafica în Linux: o prezentare generală a diferitelor medii desktop
Budgie

Un furk în stil „clasic” al GNOME care a fost dezvoltat ca parte a distribuției Solus, dar acum vine și ca desktop de sine stătător pe diverse alte distribuții.

Cum funcționează grafica în Linux: o prezentare generală a diferitelor medii desktop
KDE_Plasma (sau cum se numește adesea, pur și simplu KDE) 

Un mediu desktop dezvoltat de proiectul KDE. 

Are un număr mare de setări disponibile utilizatorului simplu din interfața grafică și multe aplicații grafice dezvoltate în cadrul acestui desktop.

Cum funcționează grafica în Linux: o prezentare generală a diferitelor medii desktop
Treime

În 2008, KDE a lansat noua sa implementare a KDE Plasma (motorul desktop a fost puternic rescris). De asemenea, ca și în cazul GNOME/MATE, nu tuturor fanilor KDE le-a plăcut. Drept urmare, a apărut o furcă a proiectului, continuând dezvoltarea versiunii anterioare, numită TDE (Trinity Desktop Environment).

Cum funcționează grafica în Linux: o prezentare generală a diferitelor medii desktop
Deepin_DE

Unul dintre noile medii desktop scrise folosind Qt (pe care este scris KDE). Are multe setări și este destul de frumos (deși acesta este un concept subiectiv) și interfață bine dezvoltată. Dezvoltat ca parte a distribuției Deepin Linux. Există și pachete pentru alte distribuții

Cum funcționează grafica în Linux: o prezentare generală a diferitelor medii desktop
Zbura 

Un exemplu de mediu desktop scris folosind Qt. Dezvoltat ca parte a distribuției Astra Linux. 

Cum funcționează grafica în Linux: o prezentare generală a diferitelor medii desktop
LXQt

Mediu desktop ușor. Ca și câteva exemple anterioare, scrise folosind Qt. De fapt, este o continuare a proiectului LXDE și rezultatul unei fuziuni cu proiectul Razor-qt.

După cum puteți vedea, desktop-ul în Linux poate arăta foarte diferit și există o interfață potrivită pentru gustul fiecăruia: de la foarte frumos și cu efecte 3D la minimalist, de la „clasic” la neobișnuit, de la utilizarea activă a resurselor de sistem la ușoară, de la mare. ecrane către tablete/smartphone-uri.

Ei bine, aș dori să sper că am putut să-mi dau o idee despre care sunt principalele componente ale graficii și desktopului în sistemul de operare Linux.

Materialul pentru acest articol a fost testat în iulie 2020 la un webinar. Îl poți urmări aici.

Asta e tot. Sper că acest lucru a fost de ajutor. Dacă aveți întrebări sau comentarii, vă rugăm să scrieți. Voi fi bucuros să răspund. Ei bine, vino să studiezi la „Academia de rețea LANIT”!

Sursa: www.habr.com

Adauga un comentariu