ProHoster > Blog > Uprava > Kako deluje grafika v Linuxu: pregled različnih namiznih okolij
Kako deluje grafika v Linuxu: pregled različnih namiznih okolij
Ta članek govori o tem, kako grafika deluje v Linuxu in iz katerih komponent je sestavljena. Vsebuje veliko posnetkov zaslona različnih izvedb namiznih okolij.
Če v resnici ne ločite med KDE in GNOME ali pa razlikujete, vendar bi radi vedeli, katere druge možnosti obstajajo, potem je ta članek za vas. Je pregled, in čeprav vsebuje veliko imen in malo izrazov, bo gradivo uporabno tudi za začetnike in tiste, ki se šele zanimajo za Linux.
Tema bo morda zanimiva tudi za napredne uporabnike pri nastavljanju oddaljenega dostopa in implementaciji tankega odjemalca. Pogosto srečam izkušene uporabnike Linuxa z izjavami "na strežniku je samo ukazna vrstica in ne nameravam podrobneje preučevati grafike, saj je to vse potrebno za običajne uporabnike." Toda tudi strokovnjaki za Linux so zelo presenečeni in veseli, ko odkrijejo možnost "-X" za ukaz ssh (in za to je koristno razumeti delovanje in funkcije strežnika X).
Vir
Tečaje Linuxa poučujem že skoraj 15 let na "Omrežna akademija LANIT"in prepričan sem, da mnogi od več kot pet tisoč ljudi, ki sem jih usposabljal, berejo in verjetno pišejo članke na Habru. Tečaji so vedno zelo intenzivni (povprečno trajanje tečaja je pet dni), obravnavati morate teme, ki zahtevajo vsaj deset dni za popolno razumevanje. In vedno se med tečajem, odvisno od občinstva (zbranih novincev ali izkušenih administratorjev), pa tudi od »vprašanj občinstva«, odločim, kaj bom povedal bolj podrobno in kaj bolj površno, da se bolj posvetim čas za pripomočke ukazne vrstice in njihovo praktično uporabo. Dovolj je takšnih tem, ki zahtevajo malo žrtvovanja. To so »Zgodovina Linuxa«, »Razlike v distribucijah Linuxa«, »O licencah: GPL, BSD, ...«, »O grafiki in namiznih okoljih« (tema tega članka) itd. Ne da niso pomembno, vendar je običajno veliko bolj perečih vprašanj "tukaj in zdaj" in le približno pet dni ... Vendar pa je za splošno razumevanje osnov operacijskega sistema Linux potrebno razumevanje razpoložljive raznolikosti (tako da tudi z uporabo enega posebnega Distribucija Linuxa, še vedno imate širši pogled na ves ta ogromen in prostran svet, ki se imenuje "Linux"), je preučevanje teh tem koristno in potrebno.
Ko članek napreduje, nudim povezave za vsako komponento za tiste, ki se želijo poglobiti v temo, na primer do člankov v Wikipediji (pri čemer pokažem na popolnejšo/uporabnejšo različico, če obstajajo angleški in ruski članki).
Za osnovne primere in posnetke zaslona sem uporabil distribucijo openSUSE. Lahko se uporabi katera koli druga distribucija, ki jo je razvila skupnost, če je v skladišču veliko paketov. Težko je, a ne nemogoče, prikazati raznolikost zasnove namizja v komercialni distribuciji, saj pogosto uporabljajo samo eno ali dve najbolj znani namizni okolji. Na ta način razvijalci zožijo nalogo izdaje stabilnega operacijskega sistema z odpravljenimi napakami. Na isti sistem sem namestil vse DM/DE/WM (razlaga teh izrazov spodaj), ki sem jih našel v skladišču.
Posnetki zaslona z "modrimi okvirji" so bili posneti na openSUSE.
V drugih distribucijah sem posnel posnetke zaslona z "belimi okvirji", prikazani so na posnetku zaslona.
Posnetki zaslona s "sivimi okvirji" so bili vzeti iz interneta kot primeri dizajnov namizja iz preteklih let.
Torej, začnimo.
Glavne komponente, ki sestavljajo grafiko
Izpostavil bom tri glavne komponente in jih navedel v vrstnem redu, v katerem se zaženejo ob zagonu sistema:
DM (Upravitelj zaslona);
prikazovalni strežnik;
DE (namizno okolje).
Poleg tega kot pomembni podčleni namiznega okolja:
Apps Manager/Launcher/Switcher (gumb Start);
WM (Upravitelj oken);
različne programske opreme, ki je priložena namiznemu okolju.
Več podrobnosti o vsaki točki.
DM (Upravitelj zaslona)
Prva aplikacija, ki se zažene, ko zaženete »grafiko«, je DM (Display Manager), upravitelj zaslona. Njegove glavne naloge:
vprašati, katere uporabnike dovoliti v sistem, zahtevati avtentikacijske podatke (geslo, prstni odtis);
izberite, katero namizno okolje želite izvajati.
Trenutno se pogosto uporablja v različnih distribucijah:
Treba je omeniti, da naslednji posnetki zaslona uporabljajo isti upravitelj zaslona LightDM, vendar v različnih distribucijah (imena distribucij so navedena v oklepajih). Oglejte si, kako drugačen je lahko ta DM videti zahvaljujoč delu oblikovalcev iz različnih distribucij.
Glavna stvar v tej raznolikosti je pojasniti, da obstaja aplikacija, ki je odgovorna za zagon grafike in omogoča uporabniku dostop do te grafike, in da obstajajo različne izvedbe te aplikacije, ki se razlikujejo po videzu in nekoliko po funkcionalnosti (izbor projektna okolja, izbira uporabnikov, različica za slabovidne uporabnike, razpoložljivost oddaljenega dostopa preko protokola XDMCP).
Display Server
Display Server je neke vrste grafična podlaga, katere glavna naloga je delo z video kartico, monitorjem in različnimi vhodnimi napravami (tipkovnica, miška, sledilne ploščice). To pomeni, da aplikaciji (na primer brskalniku ali urejevalniku besedil), ki je upodobljena v "grafiki", ni treba znati neposredno delati z napravami, niti ji ni treba poznati gonilnikov. Za vse to poskrbi X Window.
Ko se govori o Display Serverju, je bila dolga leta v Linuxu in celo v Unixu mišljena aplikacija X Window System ali v navadnem jeziku X (X).
Najprej zaženimo X in več grafičnih aplikacij v njih.
Delavnica “Poganjanje X in aplikacije v njem”
Vse bom naredil od novo ustvarjenega uporabnika webinaruser (lažje, a ne varneje bi bilo, če bi vse naredil kot root).
Ker X-ji potrebujejo dostop do naprav, dam dostop: Seznam naprav je bil določen z ogledom napak pri zagonu X v dnevniku (/home/webinaruser/.local/share/xorg/Xorg.77.log)
Možnosti: * -retro - zagon s "sivim" klasičnim ozadjem in ne s črno kot privzeto; * :77 - Nastavil sem (možna je katera koli v razumnem obsegu, le :0 je najverjetneje že zasedena z že delujočo grafiko) številko zaslona, pravzaprav nekakšen unikatni identifikator, po katerem bo mogoče ločiti več delujočih X-jev; * vt8 - označuje terminal, tukaj /dev/tty8, na katerem bodo prikazani X-ji).
Zaženite grafično aplikacijo:
Da bi to naredili, najprej nastavimo spremenljivko, s katero bo aplikacija razumela, kateri od X-jev, ki jih izvajam, da pošlje, kar je treba narisati:
% export DISPLAY=":77"
Seznam tekočih X-jev si lahko ogledate takole:
ps -fwwC X
Ko smo nastavili spremenljivko, lahko zaženemo aplikacije v našem X-ju - jaz na primer zaženem uro:
% xclock -update 1 &
% xcalc &
% xeyes -g 200x150-300+50 &
Glavne ideje in sklepi iz tega fragmenta:
X-ji potrebujejo dostop do naprav: terminal, video kartica, vhodne naprave,
Sami X-ji ne prikazujejo nobenih elementov vmesnika - je sivo (če je z možnostjo "--retro") ali črno platno določenih velikosti (na primer 1920x1080 ali 1024x768), da se v njem izvajajo grafične aplikacije.
Gibanje "križa" kaže, da X-ji sledijo položaju miške in te informacije posredujejo aplikacijam, ki se v njej izvajajo.
X-ji tudi ujamejo pritiske tipk na tipkovnici in te informacije posredujejo aplikacijam.
Spremenljivka DISPLAY pove grafični aplikaciji, na katerem zaslonu (vsak X se ob zagonu zažene z edinstveno številko zaslona) in torej na katerem od tistih, ki se izvajajo na mojem računalniku, bo treba X narisati. (Možno je tudi določiti oddaljeni stroj v tej spremenljivki in poslati izhod X-jem, ki se izvajajo na drugem računalniku v omrežju.) Ker so bili X-ji zagnani brez možnosti -auth, se ni treba ukvarjati s spremenljivko XAUTHORITY ali xhost. ukaz.
Grafične aplikacije (ali kot jih kličejo odjemalci X) so upodobljene v X-ih - brez možnosti premikanja/zapiranja/spreminjanja "-g (Širina)x(Višina)+(OdmikOdLevegaRoba)+(OdmikOdZgornjegaRoba)". Z znakom minus z desne oziroma s spodnjega roba.
Dva izraza, ki ju je vredno omeniti: X-strežnik (tako se imenujejo X-ji) in X-odjemalci (tako se imenuje vsaka grafična aplikacija, ki deluje v X-ih). Pri razumevanju te terminologije je malo zmede, mnogi jo razumejo ravno nasprotno. V primeru, ko se iz »odjemalskega stroja« (v terminologiji oddaljenega dostopa) povežem s »strežnikom« (v terminologiji oddaljenega dostopa), da prikažem grafično aplikacijo s strežnika na svojem monitorju, se strežnik X zažene na računalnik, kjer se monitor (to je na "odjemalskem računalniku", ne na "strežniku"), in odjemalci X zaženejo in izvajajo na "strežniku", čeprav so prikazani na monitorju "odjemalskega stroja".
DE komponente
Nato si poglejmo komponente, ki običajno sestavljajo namizje.
Komponente DE: gumb Start in opravilna vrstica
Začnimo s tako imenovanim gumbom »Start«. Pogosto je to ločen programček, ki se uporablja v "opravilni vrstici". Običajno obstaja tudi programček za preklapljanje med delujočimi aplikacijami.
Po ogledu različnih namiznih okolij bi takšne aplikacije povzel pod splošnim imenom »Apps Manager (Launcher/Switcher)«, to je orodje za upravljanje aplikacij (zagon in preklapljanje med delujočimi), in navedel tudi pripomočke, ki so primer te vrste aplikacije.
Na voljo je v obliki gumba »Start« na klasični (celotna dolžina enega od robov zaslona) »Opravilni vrstici«:
Lahko imate tudi ločeno »opravilno vrstico v obliki MacOS« (ne v celotni dolžini roba zaslona), čeprav se lahko številne opravilne vrstice prikažejo v obeh slogih. Tukaj je glavna razlika zgolj vizualna - prisotnost "učinka povečave piktograma pri lebdenju."
○ docky,
○ latte-dock,
○ cairo-dock,
○ deska.
In/ali storitev, ki zažene aplikacije, ko pritisnete bližnjične tipke (v številnih namiznih okoljih je potrebna podobna komponenta, ki vam omogoča konfiguracijo lastnih bližnjičnih tipk):
○ sxhkd.
Obstajajo tudi različni "zaganjalniki" v obliki menija (iz angleškega Launch (zagon)):
Navedel bom tudi "star WM z elementi DE". Tisti. poleg upravitelja oken imajo elemente, kot sta gumb »Start« in »Opravilna vrstica«, ki sta bolj značilna za polnopravni DE. Čeprav sta "stara", če sta IceWM in WindowMaker že izdala posodobljeni različici leta 2020. Izkazalo se je, da je pravilneje ne "stari", ampak "starodobniki":
Poleg “klasičnih” (“stack windows managers”) velja posebej omeniti s ploščicami WM, ki vam omogoča, da okna razporedite po celem zaslonu, kot tudi za nekatere aplikacije ločeno namizje za vsako zagnano aplikacijo na celotnem zaslonu. To je malo nenavadno za ljudi, ki jih še niso uporabljali, a ker tudi sam uporabljam tak vmesnik že kar dolgo, lahko rečem, da je zelo priročen in se na tak vmesnik hitro navadiš, potem pa “klasični” upravljalniki oken se ne zdijo več priročni.
Projekt je vreden tudi ločene omembe Compiz in koncept, kot je "Upravitelj sestavljenih oken", ki uporablja zmožnosti strojnega pospeševanja za prikaz prosojnosti, senc in različnih tridimenzionalnih učinkov. Pred približno 10 leti je bil razcvet 3D učinkov na namizjih Linux. Dandanes veliko upraviteljev oken, vgrajenih v DE, delno uporablja sestavljene zmožnosti. Pred kratkim pojavil Wayfire - izdelek s podobno funkcionalnostjo kot Compiz za Wayland.
Podroben seznam različnih upraviteljev oken lahko najdete tudi v primerjalni članek.
DE komponente: ostalo
Omeniti velja tudi naslednje komponente namizja (tukaj uporabljam uveljavljene angleške izraze za opis vrste aplikacije - to niso imena samih aplikacij):
Programčki:
Programska oprema (orodja Widget) - pogosto je z okoljem priložen določen "minimalni nabor" programske opreme:
Iz zgornjih komponent dobimo tako imenovano »Desktop Design Environment«. Pogosto so vse njegove komponente razvite z uporabo istih grafičnih knjižnic in z uporabo istih načel oblikovanja. Tako se ohrani vsaj splošni slog videza aplikacij.
Tukaj lahko izpostavimo naslednja trenutno obstoječa namizna okolja:
Obstajajo celo takšni zanimivi primeri iz zgodovine: v letih 2003-2007 je bila izdelana "3D zasnova namizja" za Linux z imenom "Project Looking Glass" podjetja Sun. Tudi sam sem uporabljal to namizje oziroma se z njim »igral«, saj je bilo težko uporabljati. Ta "3D dizajn" je bil napisan v Javi v času, ko še ni bilo video kartic s podporo za 3D. Zato je vse učinke preračunal procesor, računalnik pa je moral biti zelo zmogljiv, sicer je vse delovalo počasi. Izpadlo pa je čudovito. Tridimenzionalne aplikacijske ploščice je bilo mogoče zasukati/razširiti. V cilindru namizja je bilo mogoče vrteti z ozadjem iz 360-stopinjske panorame. Bilo je več lepih aplikacij: na primer poslušanje glasbe v obliki "menjave CD-jev" itd. Ogledate si ga lahko na YouTubu Video glede tega projekta bo najverjetneje slaba samo kakovost teh videov, saj v tistih letih ni bilo mogoče nalagati kakovostnih videov.
Lahko namizje. Projekt obstaja že dolgo, od leta 1996. V zadnjih letih je bil precej priljubljen, v nasprotju s težjima KDE in GNOME, v številnih distribucijah, ki zahtevajo lahek in "klasičen" namizni vmesnik. Ima veliko nastavitev in veliko število lastnih programov: terminal (xfce4-terminal), upravitelj datotek (thunar), pregledovalnik slik (ristretto), urejevalnik besedil (mousepad).
Uporablja se v osnovni distribuciji OS. Tu lahko rečemo, da obstajajo »namizja«, ki so razvita in uporabljena znotraj ene ločene distribucije in se v drugih distribucijah ne uporabljajo veliko (če ne »sploh ne uporabljajo«). Vsaj še niso pridobili popularnosti in prepričali večine občinstva o prednostih svojega pristopa. Pantheon želi zgraditi vmesnik, podoben macOS.
Močan poudarek na grafičnih učinkih in pripomočkih (iz časov, ko druga namizna okolja niso imela namiznih pripomočkov, kot sta koledar/ura). Uporablja lastne knjižnice. Obstaja velik nabor lastnih "lepih" aplikacij: terminal (Terminology), video predvajalnik (Rage), pregledovalnik slik (Ephoto).
Sprva "klasični" namizni vmesnik, ustvarjen v nasprotju s KDE, ki je bil napisan v knjižnici QT, takrat distribuiran pod licenco, ki ni bila zelo primerna za komercialne distribucije.
Od tretje različice je GNOME začel prihajati z lupino GNOME Shell, ki ima »neklasičen videz«, kar ni bilo všeč vsem uporabnikom (vse nenadne spremembe vmesnikov uporabniki težko sprejmejo). Posledica tega je nastanek fork projektov, ki nadaljujejo razvoj tega namizja v "klasičnem" slogu: MATE in Cinnamon. Privzeto se uporablja v številnih komercialnih distribucijah. Ima veliko število nastavitev in lastnih aplikacij.
Izšel je iz GNOME2 in še naprej razvija to oblikovalsko okolje. Ima veliko nastavitev in razcepov aplikacij, ki so bili uporabljeni že v GNOME2 (uporabljena so nova imena), da ne bi zamenjali razcepov z njihovo novo različico za GNOME3).
Razcep v "klasičnem" slogu GNOME, ki je bil razvit kot del distribucije Solus, zdaj pa je na voljo tudi kot samostojno namizje v različnih drugih distribucijah.
KDE_Plazma (ali kot se pogosto imenuje preprosto KDE)
Namizno okolje, razvito v okviru projekta KDE.
Preprostemu uporabniku je na voljo ogromno nastavitev iz grafičnega vmesnika in številnih grafičnih aplikacij, razvitih v okviru tega namizja.
Leta 2008 je KDE izdal svojo novo izvedbo KDE Plasma (namizni motor je bil močno prepisan). Poleg tega, tako kot pri GNOME/MATE, ni bil všeč vsem ljubiteljem KDE. Posledično se je pojavila vilica projekta, ki nadaljuje razvoj prejšnje različice, imenovane TDE (Trinity Desktop Environment).
Eno od novih namiznih okolij, napisanih s Qt (na katerem je napisan KDE). Ima veliko nastavitev in je precej lep (čeprav je to subjektiven koncept) in dobro razvit vmesnik. Razvit kot del distribucije Deepin Linux. Obstajajo tudi paketi za druge distribucije
Fly
Primer namiznega okolja, napisanega s Qt. Razvit kot del distribucije Astra Linux.
Lahko namizno okolje. Kot več prejšnjih primerov, napisanih s Qt. Pravzaprav gre za nadaljevanje projekta LXDE in rezultat združitve s projektom Razor-qt.
Kot lahko vidite, je lahko namizje v Linuxu videti zelo različno in obstaja primeren vmesnik za vsak okus: od zelo lepega in s 3D učinki do minimalističnega, od "klasičnega" do nenavadnega, od aktivno uporabljajočega sistemskega sredstva do lahkega, od velikega zaslonov na tablice/pametne telefone.
No, rad bi upal, da sem lahko dal idejo o tem, katere so glavne komponente grafike in namizja v OS Linux.
Gradivo za ta članek je bilo preizkušeno julija 2020 na spletnem seminarju. Lahko gledaš tukaj.
To je vse. Upam, da je bilo to koristno. Če imate kakršna koli vprašanja ali komentarje, pišite. Z veseljem odgovorim. No, pridi in študiraj "LANIT Network Academy"!