Ovaj članak govori o tome kako su grafike strukturirane u Linux i od kojih komponenti se sastoji. Sadrži mnogo snimaka ekrana različitih implementacija desktop okruženja.
Ako ne pravite veliku razliku između KDE-a i GNOME-a, ili ako pravite, ali biste željeli znati koje druge alternative postoje, onda je ovaj članak za vas. To je pregled i, iako sadrži mnogo naziva i nekoliko termina, materijal će biti koristan i početnicima i onima koji tek istražuju ovo područje. Linux.
Ova tema bi mogla biti zanimljiva naprednim korisnicima, bez obzira da li postavljaju udaljeni pristup ili implementiraju tankog klijenta. Često susrećem iskusne Linux korisnike koji tvrde: "Server ima samo komandnu liniju, a ne planiram detaljno proučavati grafiku, jer je to sve za osnovne korisnike." Ali čak i stručnjaci... Linux Sa velikim iznenađenjem i radošću otkrivaju opciju "-X" ssh naredbe (a za to je korisno razumjeti rad i funkcije X servera).

Predajem kurseve već skoro 15 godina. Linux u ""i siguran sam da mnogi od više od pet hiljada ljudi koje sam obučio čitaju i vjerovatno pišu članke na Habr-u. Kursevi su uvijek vrlo intenzivni (prosječno trajanje kursa je pet dana), pokrivajući teme za čije bi potpuno razumijevanje bilo potrebno najmanje deset dana. A tokom kursa, u zavisnosti od publike (početnici ili iskusni administratori) i "pitanja iz publike", uvijek biram šta ću detaljnije prenijeti, a šta površnije obraditi, posvećujući više vremena uslužnim programima komandne linije i njihovoj praktičnoj primjeni. Ima mnogo takvih tema koje se moraju malo žrtvovati. Ovo je "Historija" Linux", "Razlike u distribucijama Linux"," "O licencama: GPL, BSD, ...", "O grafici i desktop okruženjima" (tema ovog članka), itd. Nije da su nevažna, ali obično postoji mnogo hitnijih pitanja "ovdje i sada" i samo nekih pet dana... Međutim, za opće razumijevanje osnova OS-a Linux, razumijevanje dostupne raznolikosti (tako da čak i korištenje jedne specifične distribucije Linux, ipak imaju širi pogled na cijeli ovaj ogroman i beskrajan svijet koji se zove "Linux„“) Korisno je i potrebno proučavati ove teme.
U cijelom članku, za svaku komponentu, dajem veze za one koji žele dublje zaroniti u temu, na primjer, na članke na Wikipediji (dok ukazujem na potpuniju / korisniju verziju ako postoje članci na engleskom i ruskom).
Za osnovne primjere i snimke ekrana koristio sam openSUSE distribuciju. Bilo je moguće koristiti bilo koju drugu distribuciju razvijenu u zajednici sa velikim brojem paketa u spremištu. Teško je, ali moguće, demonstrirati raznolikost dizajna desktopa na komercijalnoj distribuciji, jer često koriste samo jedno ili dva od poznatijih desktop okruženja. Dakle, programeri sužavaju zadatak izdavanja stabilnog OS sa otklonjenim greškama. Na istom sistemu sam instalirao sve DM/DE/WM (objašnjenje ovih pojmova ispod), koje sam našao u spremištu.
Snimci ekrana sa "plavim okvirima" su upravo napravljeni na openSUSE.
Snimci ekrana sa "belim okvirima" napravljeni su na drugim distribucijama, oni su naznačeni na snimku ekrana.
Snimke ekrana sa "sivim obrubama" preuzete su sa interneta, kao primjeri desktop dizajna iz prošlosti.
Dakle, počnimo.
Glavne komponente koje čine grafiku
Izdvojiću tri glavne komponente i navesti ih redosledom kojim se pokreću pri pokretanju sistema:
- DM (Display Manager);
- server za prikaz;
- DE (Desktop okruženje).
Pored toga, kao važne podstavke desktop okruženja:
- Upravitelj/Pokretač/Prekidač aplikacija (dugme Start);
- WM (Window Manager);
- razni softver koji dolazi sa desktop okruženjem.
Više detalja o svakoj stavci.
DM (Display Manager)
Prva aplikacija koja se pokreće kada se pokrene "grafika" je DM (Display Manager), upravitelj zaslona. Njegovi glavni zadaci:
- pitati koje korisnike pustiti u sistem, tražiti podatke za autentifikaciju (lozinka, otisak prsta);
- odaberite koje okruženje radne površine želite pokrenuti.
Trenutno se široko koriste različite distribucije:
- (promijenjeno ),
- ,
- ,
- .
- Također vrijedi spomenuti Fly-DM (koristi se u AstriLinux).
Lista postojećih DM-a se ažurira




Vrijedi napomenuti da sljedeći snimci ekrana koriste isti LightDM display manager, ali u različitim distribucijama (nazivi distribucija su u zagradama). Provjerite koliko drugačije ovaj DM može izgledati zahvaljujući radu dizajnera različitih distribucija.





Glavna stvar u ovoj raznolikosti je da se jasno stavi do znanja da postoji aplikacija koja je odgovorna za pokretanje grafike i omogućavanje korisniku pristup toj grafici, a postoje različite implementacije ove aplikacije koje se razlikuju po izgledu i određenoj funkcionalnosti (izbor dizajna okruženja, izbor korisnika, verzija za loše vidljive korisnike, mogućnost daljinskog pristupa putem protokola ).
Display Server
Display Server je svojevrsna grafička osnova, čiji je glavni zadatak rad sa video karticom, monitorom i raznim ulaznim uređajima (tastatura, miš, touchpad). Odnosno, aplikacija (na primjer, pretraživač ili uređivač teksta) koja je prikazana u "grafici" ne mora znati kako raditi direktno s uređajima, ne mora znati o drajverima. Za sve to brine X Window.
Kada je u pitanju Display Server, on postoji već dugi niz godina. Linux, a u Unixu je to bilo zamišljeno kao aplikacija ili kod običnih ljudi X (X).
Sada mnoge distribucije zamjenjuju X sa .
Također možete pročitati:
- ,
- ,
- (potrebno za daljinsko pokretanje grafičkih aplikacija, na primjer koristeći PuTTY).
Prvo, pokrenimo X-ove i nekoliko grafičkih aplikacija u njima.
Praktikum "pokreni X i aplikacije u njemu"
Sve ću raditi od novokreiranog webinaruser korisnika (bilo bi lakše, ali ne i sigurnije, sve raditi iz root-a).
- Pošto je H'amu potreban pristup uređajima, dajem pristup: Odredio sam listu uređaja gledajući greške prilikom pokretanja X-a u dnevniku (/home/webinaruser/.local/share/xorg/Xorg.77.log)
% sudo setfacl -m u:webinaruser:rw /dev/tty8 /dev/dri/card0 /dev/fb0 /dev/input/*
- Nakon toga pokrećem X-ove:
% X -retro :77 vt8 &
Opcije: * -retro - počnite sa "sivom" klasičnom pozadinom, a ne crnom kao zadanom; * :77 - Postavio sam (moguće je bilo koji u razumnom opsegu, samo :0 je najvjerovatnije već zauzeto već pokrenutom grafikom) broj ekrana, neki stvarni jedinstveni identifikator pomoću kojeg će biti moguće razlikovati nekoliko aktivnih X-ova; * vt8 - specificira terminal, ovdje /dev/tty8, na kojem će biti prikazani X).
- Pokretanje grafičke aplikacije:
Da bismo to učinili, prvo postavljamo varijablu pomoću koje će aplikacija razumjeti koji od X-ova pokrećem da pošalje ono što treba nacrtati:
% export DISPLAY=":77"
Listu pokrenutih X-ova možete vidjeti ovako:
ps -fwwC X
Nakon što je varijabla postavljena, možemo pokrenuti aplikacije u našim X-ovima - na primjer, pokrećem sat:
% xclock -update 1 &
% xcalc &
% xeyes -g 200x150-300+50 &

Glavne ideje i zaključci iz ovog fragmenta:
- X treba pristup uređajima: terminalu, video kartici, ulaznim uređajima,
- Sami X ne prikazuju nikakve elemente interfejsa - to je sivo (ako je sa opcijom "--retro") ili crno platno određenih veličina (na primjer, 1920 × 1080 ili 1024 × 768) za pokretanje grafičkih aplikacija u njemu.
- Kretanje "križa" pokazuje da X prati poziciju miša i prenosi ove informacije aplikacijama koje se u njemu pokreću.
- Također, X-ovi hvataju tipke na tastaturi i prosljeđuju ove informacije aplikacijama.
- Varijabla DISPLAY govori grafičkim aplikacijama na kojem ekranu (svaki X-ovi se pokreću s jedinstvenim brojem ekrana pri pokretanju), a time i koji od onih koji rade na mojoj mašini da nacrtaju X-ove. (Takođe je moguće postaviti ovu varijablu na udaljenu mašinu i poslati izlaz na X-ove koji rade na drugoj mašini na mreži.) Pošto su X-ovi pokrenuti bez opcije -auth, nema potrebe da se bavite promenljivom XAUTHORITY ili xhostom komanda.
- Grafičke aplikacije (ili kako ih zovu X-klijenti) crtaju se u X-ovima - dok bez mogućnosti pomicanja/zatvaranja/promjene "-g (Širina)x(Visina)+(ShiftFromLeftEdge)+(ShiftFromTopEdge)". Sa znakom minus, s desne i donje ivice.
- Dva termina vrijedna spomena su X server (kako se X zove) i X klijenti (kako se zove svaka grafička aplikacija koja radi u X). Postoji mala zbrka u razumijevanju ove terminologije, mnogi je razumiju upravo suprotno. U slučaju kada se povežem sa „klijent mašine“ (u terminologiji udaljenog pristupa) na „server“ (u terminologiji udaljenog pristupa) da bih prikazao grafičku aplikaciju sa servera na svom monitoru, tada se X server pokreće na mašina na kojoj se monitor (odnosno na "klijentskoj mašini", a ne na "serveru") i X klijenti pokreću i pokreću na "serveru", iako su prikazani na monitoru "klijentske mašine".

DE komponente
Zatim ćemo analizirati komponente koje obično čine radnu površinu.
DE komponente: dugme Start i traka zadataka
Počnimo sa takozvanim dugmetom "Start". Često je ovo poseban aplet koji se koristi na "traci zadataka". Obično postoji i aplet za prebacivanje između pokrenutih aplikacija.

Nakon što bih pogledao različita desktop okruženja, takve aplikacije bih sažeo pod opštim nazivom "Upravitelj aplikacijama (Launcher / Switcher)", odnosno alat za upravljanje aplikacijama (pokretanje i prebacivanje između pokrenutih), a također bih naveo uslužne programe koji su primjer aplikacije ovog tipa.
- To se događa u obliku dugmeta "Start" na klasičnoj (cijela dužina jedne od ivica ekrana) "traci zadataka":
○ xfce4-panel,
○ mate-panel/gnome-panel,
○ vala panel,
○ nijansa2. - Također možete posebno istaknuti "trake zadataka u obliku MacOS-a" (ne cijelom dužinom ivice ekrana), iako se mnoge trake zadataka mogu pojaviti u oba. Ovdje je, prije, glavna razlika čisto vizualna - prisutnost "efekta povećanja ikona pri lebdenju".
○ priključna stanica,
○ latte dock,
○ pristanište u Kairu,
○ daska. - I / Ili servis koji pokreće aplikacije kada se pritisnu prečice (u mnogim desktop okruženjima slična komponenta je nužno prisutna i omogućava vam da konfigurišete sopstvene prečice):
○ sxhkd.
- Tu su i razni "lanseri" u obliku menija (od engleskog. Launch (pokreni)):
○ dmenu-run,
○ rofi -show drun,
○ Albert,
○ grunge.

DE komponente: WM (Window Manager)
WM (Window Manager) - vrsta aplikacije koja je odgovorna za upravljanje prozorima, dodaje mogućnost:
- pomeranje prozora po radnoj površini (uključujući i standardni sa držanjem tastera Alt za bilo koji deo prozora, a ne samo za naslov);
- promjena veličine prozora, na primjer, povlačenjem "prozorskog okvira";
- dodaje “naslov (naslov)” i dugmad za minimiziranje/maksimiziranje/zatvaranje aplikacije u prozorski interfejs;
- koncept čija je aplikacija u "fokusu".

Navešću one najpoznatije (u zagradama označavam koji se DE koristi podrazumevano):
- (GNOME3)
- (drugar)
- (GNOME2)
- (cimet)
- (KDE)
- (XFCE),
- .

Navešću i "stari WM sa DE elementima". One. pored menadžera prozora, imaju elemente kao što su dugme Start i traka zadataka, koji su više svojstveni punopravnom DE. Iako su "stari" ako su i IceWM i WindowMaker već objavili svoje ažurirane verzije 2020. Ispostavilo se da je ispravnije ne "stari", već "oldtajmeri":
- ,
- ,
- , , , ,
- ...





Osim "klasičnih" ("upravljači prozorima steka"), vrijedi posebno napomenuti , koji omogućava postavljanje prozora na cijeli ekran, a za neke aplikacije i zasebnu radnu površinu za svaku pokrenutu aplikaciju na cijelom ekranu. Ovo je malo neuobičajeno za ljude koji ih ranije nisu koristili, ali s obzirom da i sam koristim takav interfejs dosta dugo, mogu reći da je prilično zgodan i da se brzo naviknete na takav interfejs, nakon čega „klasični“ menadžeri prozora ne izgledaju zgodni.
- ,
- ,
- ,
- ,
- ,
- qtile,
- bspwm,
- herbstluftwm,
- ...
- blizanac,
- .

Također je vrijedno posebno spomenuti projekat i koncept "kompozitnog upravitelja prozora", koji koristi hardversko ubrzanje za prikaz transparentnosti, sjena i raznih 3D efekata. Prije otprilike 10 godina, došlo je do procvata 3D efekata na Linux-desktopovi. Danas mnogi upravitelji prozora ugrađeni u DE djelimično koriste mogućnosti kompozitinga. Nedavno, - proizvod sa sličnom Compiz funkcionalnosti za Wayland.

Detaljnu listu raznih menadžera prozora možete pronaći i na .
DE komponente: ostalo
Također je vrijedno napomenuti sljedeće komponente desktopa (ovdje koristim ustaljene termine na engleskom da opišem vrstu aplikacije - ovo nisu nazivi samih aplikacija):
- Apleti:
- Softver (Widget toolkit) - često određeni "minimalni set" softvera dolazi sa okruženjem:
DE (Desktop okruženje)
Od gore navedenih komponenti dobija se takozvano "Desktop okruženje". Često se sve njegove komponente razvijaju koristeći iste grafičke biblioteke i koristeći iste principe dizajna. Tako se, barem, održava opći stil izgleda aplikacija.
Ovdje možemo istaknuti sljedeća trenutno postojeća desktop okruženja:
GNOME i KDE se smatraju najčešćim, a XFCE im je za petama.

Poređenje po različitim parametrima u obliku tabele može se pogledati u odgovarajućem .
Variety DE

Postoje čak i takvi zanimljivi primjeri iz historije: u periodu 2003-2007. Linux Sun je kreirao "3D temu za radnu površinu" pod nazivom "Project Looking Glass". I sam sam koristio ovu radnu površinu, ili bolje rečeno "igrao se s njom", jer je bila teška za korištenje. Ova "3D tema" je napisana u Javi u vrijeme kada još nisu postojale 3D grafičke kartice. Stoga je procesor preračunavao sve efekte, a računar je morao biti vrlo moćan, inače bi sve radilo sporo. Ali ispalo je prekrasno. Paneli 3D aplikacije mogli su se rotirati i rasklapati. Mogli ste se rotirati u cilindru radne površine s panoramskom pozadinom od 360 stepeni. Bilo je nekoliko lijepih aplikacija: na primjer, slušanje muzike u obliku "CD changera" itd. Možete je pogledati na YouTubeu. u vezi sa ovim projektom, samo će kvalitet ovih videa najvjerovatnije biti loš, jer tih godina nije bilo moguće uploadati video zapise visokog kvaliteta.

Lagana radna površina. Projekat postoji dugo, od 1996. godine. Posljednjih godina prilično popularan, za razliku od težih KDE-a i GNOME-a, na mnogim distribucijama koje zahtijevaju lagan i "klasičan" desktop interfejs. Ima mnogo postavki i veliki broj svojih programa: terminal (xfce4-terminal), upravitelj datoteka (thunar), preglednik slika (ristretto), uređivač teksta (podloga za miš).

Koristi se u Elementary OS distribuciji. Može se reći da postoje desktop računari razvijeni i korišteni unutar jedne distribucije, a ne široko korišteni (ako ne i potpuno nekorišteni) u drugim distribucijama. Barem još nisu stekli popularnost niti uvjerili veliku publiku u prednosti svog pristupa. Pantheon ima za cilj izgraditi interfejs sličan macOS.

Opcija priključne ploče:

Snažan fokus na grafičke efekte i widgete (još od vremena kada druga desktop okruženja nisu imala vidžete na radnoj površini, kao što je kalendar/sat). Koristi vlastite biblioteke. Postoji veliki skup njegovih "lijepih" aplikacija: terminal (Terminologija), video plejer (Rage), preglednik slika (Ephoto).

Ovo je fork Enlightenment17, koji se koristi u Bodhi distribuciji.Linux.

Prvobitno "klasično" desktop interfejs, kreiran u suprotnosti sa KDE, koji je napisan na QT biblioteci, u to vreme distribuiran pod licencom koja nije bila baš zgodna za komercijalne distribucije.

Od treće verzije GNOME-a, GNOME je počeo da se isporučuje sa GNOME Shell-om, koji ima "neklasičan izgled", što se nije svidjelo svim korisnicima (sve iznenadne promjene u interfejsima korisnici teško mogu prihvatiti). Kao rezultat - pojava fork projekata koji nastavljaju razvoj ove radne površine u "klasičnom" stilu: MATE i Cinnamon. Standardno se koristi u mnogim komercijalnim distribucijama. Ima veliki broj postavki i njegovih aplikacija.

Pojavio se na bazi GNOME2 i nastavlja da razvija ovo okruženje. Ima veliki broj podešavanja i forks aplikacija koje su korišćene još u GNOME2 (novi nazivi se koriste kako se viljuške ne bi pobrkale sa njihovom novom verzijom za GNOME3).

Fork GNOME Shell-a koji korisnicima pruža "klasični" stil interfejsa (kao što je bio u GNOME2).
Ima veliki broj postavki i iste aplikacije kao za GNOME Shell.

Fork GNOME-a u "klasičnom" stilu koji se razvio kao dio Solus distribucije, ali sada dolazi i kao samostalna radna površina na raznim drugim distribucijama.

(ili, kako se to često naziva, samo KDE)
Desktop okruženje razvijeno od strane KDE projekta.
Ima ogroman broj postavki dostupnih jednostavnom korisniku iz grafičkog interfejsa i mnoge grafičke aplikacije razvijene u okviru ove radne površine.

U 2008, KDE je objavio svoju novu implementaciju KDE Plasma (desktop engine je uvelike prepisan). Takođe, kao i sa GNOME/MATE, nije se svideo svim KDE fanovima. Kao rezultat toga, pojavio se fork projekta, koji nastavlja razvoj prethodne verzije, nazvan TDE (Trinity Desktop Environment).

Jedno od novih desktop okruženja, napisano korištenjem Qt-a (istog jezika koji koristi KDE). Nudi širok raspon opcija prilagođavanja i prilično lijep (iako subjektivan) i sofisticiran interfejs. Razvija se kao dio Deepin distribucije. LinuxPostoje i paketi za druge distribucije.

letjeti
Primjer desktop okruženja napisanog korištenjem Qt-a. Razvijeno kao dio distribucije Astra Linux.

Lagano desktop okruženje. Kao i nekoliko prethodnih primjera, napisanih pomoću Qt. Zapravo, to je nastavak LXDE projekta i rezultat spajanja s projektom Razor-qt.
Kao što vidite, radna površina je u Linux Interfejs može izgledati vrlo različito, i postoji nešto za svačiji ukus: od vrlo lijepih sa 3D efektima do minimalističkih, od "klasičnih" do neobičnih, od onih koji aktivno koriste sistemske resurse do laganih, od velikih ekrana do tableta/pametnih telefona.
Pa, nadam se da sam uspio dati ideju o glavnim komponentama koje čine grafiku i radnu površinu u operativnom sistemu. Linux.
Materijal za ovaj članak testiran je u julu 2020. na webinaru. Može se pogledati .
To je sve. Nadam se da je bilo od pomoći. Ako imate bilo kakvih pitanja i komentara, pišite. Biće mi drago da odgovorim. Pa, dođi i uči !
izvor: www.habr.com
