See artikkel käsitleb, kuidas on graafika Linuxis üles ehitatud ja millistest komponentidest see koosneb. Selles on palju ekraanipilte erinevate töölauakeskkondade rakendustest.
Kui te ei saa hästi aru, mis vahe on KDE-l ja GNOME-l või tunnete huvi, millised veel alternatiivid eksisteerivad, siis on see artikkel just teile. See on ülevaatlik ja kuigi siin on palju nimesid ja veidi termineid, on materjal samuti kasulik algajatele, kes just Linuxi poole vaatavad.
Teema võib huvi pakkuda ka edasijõudnud kasutajatele, kes seadistavad eemalsiirdatud juurdepääsu ja rakendavad õhukest klienti. Tihti kohtan täiesti kogenud Linuxi kasutajaid, kes väidavad: „serveris on ainult käsurida ja ei plaani graafikat lähemalt uurida, kuna see on mõeldud lihtsalt kasutajatele“. Kuid isegi Linuxi tundjad avastavad suurima üllatuse ja rõõmuga ssh käsu valiku „-X“ (ja selleks on kasulik mõista X-serveri tööd ja funktsioone).

Olen õpetanud Linuxi kursusi peaaegu 15 aastat «» ja olen kindel, et paljusid neist enam kui viiest tuhandest inimesest, keda olen õpetanud, loevad ja ilmselt kirjutavad artikleid Habrisse. Kursused on alati väga intensiivsed (kursuse keskmine kestus on viis päeva), peate tutvustama teemasid, mille põhjalikuks tundmaõppimiseks on vähemalt kümme päeva. Ja igal kursusel, sõltuvalt auditooriumist (kas algajad või kogenud administraatorid) ja „küsimustest vahepeal“, teen ma valiku, mida selgemalt edastada ja mida - vähem pinnapealselt, et pühendada rohkem aega käsurea utiliitidele ja nende praktilisele rakendusele. Selliseid teemasid, millest tuleb natuke ohverdada, on piisavalt. Need on „Linuxi ajalugu“, „Erinevused Linuxi jaotustes“, „Litsentside kohta: GPL, BSD, ...“, „Grafika ja töölauakeskkonnad“ (selle artikli teema) ja teised. Mitte et need ei oleks olulised, kuid tavaliselt on olemas palju aktuaalsemaid „siin ja praegu“ küsimusi ning aega on vaid viis päeva ... Siiski, et saada üldist arusaamist Linuxi operatsioonisüsteemi alusest, mõista raha ja valikute mitmekesisust (et isegi kasutades ühte konkreetset Linuxi jaotust, oleks ikka laiem vaade sellele tohutule ja lõputule maailmale, mida nimetatakse „Linuxiks“), on nende teemade uurimine kasulik ja vajalik.
Artiklis mainitud igal komponendil viitan linkidele neile, kes soovivad sügavamale teemale sukelduda, näiteks Vikipeedia artiklitele (näidates eelistatult ingliskeelset ja/või venekeelset põhjalikumat/kasulikumat versiooni).
Peamiste näidete ja ekraanipiltide jaoks kasutasin openSUSE distributsiooni. Samuti oleks võinud kasutada mis tahes teist avatud lähtekoodiga distributsiooni, millel on suur hulk pakette repodes. Kaugete, kuid siiski võimalik, kohalike töölaudade kujunduste näitamine ärimudelis on keeruline, kuna need kasutavad sageli vaid üht või kahte tuntud töölauda. See piirab arendajate võimalusi stabiilse ja häälestatud operatsioonisüsteemi vabastamisel. Selle süsteemi jaoks installisin kõik DM/DE/WM (selgitan neid termineid allpool), mida leidsin repost.
Ekraanipildid 'siniste raamidega' on tehtud openSUSE-lt.
Ekraanipildid 'valgete raamidega' on tehtud teistelt distributsioonidelt, mida on märgitud ekraanipildil.
Ekraanipildid 'hallide raamidega' on võetud internetist, näidates töölaudade kujundusi eelmistest aastatest.
Nii et alustame.
Peamised komponendid, mis koosnevad graafikast
Esitan kolm põhikomponenti ja loetlen need järjekorras, kuidas need käivituvad süsteemi käivitamisel:
- DM (Display Manager);
- Display Server;
- DE (Desktop Environment).
Täiendavalt kui olulisi alateemasid Desktop Environment'i juurde:
- Apps Manager/Launcher/Switcher (Start nupp);
- WM (Window Manager);
- erinevad tarkvarapakid, mis tarnitakse koos töölaudade keskkonnaga.
Rohkem igast punktist.
DM (Display Manager)
Esimene rakendus, mis käivitub 'graafika' käivitamisel, on DM (Display Manager), ekraanihaldur. Selle põhieesmärgid on:
- küsida, milliseid kasutajaid lubada süsteemi, küsida autentimisandmeid (parool, sõrmejälg);
- valida, millist töölauda käivitada.
Praegu kasutatakse erinevates distributsioonides laialdaselt:
- (asendas ),
- ,
- ,
- .
- Samuti võib mainida Fly-DM (kasutatakse AstraLinuxis).
Olemasolevate DM-ide nimekiri hoitakse ajakohasena




Oluline on märkida, et järgmistel ekraanipiltidel kasutatakse sama kuvahaldurit LightDM, kuid erinevates distributsioonides (distributsioonide nimed on märgitud sulgudesse). Hinnake, kui erinev võib see DM olla tänu erinevate distributsioonide disainerite tööle.





Peamine selle mitmekesisuse juures on see, et on olemas rakendus, mis vastutab graafika käivitamise ja kasutaja juurdepääsu lubamise eest sellele graafikale, ning on erinevad rakenduse teostused, mis erinevad välimuse ja veidi ka funktsionaalsuse poolest (kujunduskeskkondade valik, kasutajate valik, nägemispuudega kasutajate versioon, kaugjuurdepääsu võimalus protokolli kaudu ).
Kuviserver
Kuviserver on teatud tüüpi graafika alus, mille põhieesmärk on töötada koos videokaardi, monitori ja erinevate sisendevijate (klaviatuur, hiir, puuteplaadid) abil. See tähendab, et rakendusel (näiteks brauser või tekstitöötlusprogramm), mis renderdatakse "graafikas", ei ole vaja teada, kuidas seadmetega otseselt töötada, ei pea teadma draivereid. Selle kõik teeb enda peale X Window.
Rääkides kuviserverist, tähendab see palju aastaid Linuxis ja ka Unixes rakendust või lihtsalt X (iksid).
Praegu paljudes distributsioonides asendatakse X .
Samuti võite lugeda:
- ,
- ,
- (vajalikud kaugjuhtimiseks graafiliste rakenduste, näiteks PuTTY kaudu).
Alustame X-ide ja mõnede graafiliste rakenduste käivitamisega neis.
Praktikum "käivitame X-id ja rakendused neis"
Käitan kõik värskelt loodud kasutajana webinaruser (lihtsam, kuid mitte turvalisem oleks kõik käivitada root-ilt).
- Kuna X-idele on vajalik seadmetele ligipääs, annan ligipääsu: Seadmete loetelu määrasin, vaadates X-ide käivitamise eeliseid logis (/home/webinaruser/.local/share/xorg/Xorg.77.log)
% sudo setfacl -m u:webinaruser:rw /dev/tty8 /dev/dri/card0 /dev/fb0 /dev/input/*
- Pärast seda käivitan X-id:
% X -retro :77 vt8 &
Valikud: * -retro — käivitatakse "hallil" klassikalisel taustal, mitte mustal, nagu see on vaikimisi; * :77 — määrab (võib olla ükskõik milline mõistlikus vahemikus, ainult :0 on tõenäoliselt juba kasutuses käivitatud graafika jaoks) ekraani numbri, tegelik unikaalne identifikaator, mille järgi saab eristada mitmeid käivitatud X-e; * vt8 — määrab terminali, siin \/dev\/tty8, milles kuvatakse X-id).
- Käivitame graafikaprogrammi:
Selle jaoks määrame eelnevalt muutuja, mille järgi programm saab aru, kuhu minu käivitatud X-idest edastada, mida on vaja joonistada:
% export DISPLAY=":77"
Käivitatud X-ide nimekirja saab vaadata nii:
ps -fwwC X
Pärast muutujate määramist saab rakendusi meie X-ides käivitada - näiteks käivitan kella:
% xclock -update 1 &
% xcalc &
% xeyes -g 200x150-300+50 &

Peamised ideed ja järeldused sellest lõigust:
- X-id vajavad juurdepääsu seadmetele: terminalile, graafikakaardile, sisendseadmetele,
- Isegi X-id ei kuva mingeid liidese elemente - see on hall (kui on valik "--retro") või must lõuend teatud suuruses (näiteks 1920×1080 või 1024×768), et käivitada selles graafilisi rakendusi.
- Hiire "ristiku" liikumise järgi on näha, et X-id jälgivad hiire asukohti ja edastavad selle teabe seal käivitatud rakendustele.
- Samuti jälgivad X-id klaviatuuri klahvivajutusi ja edastavad selle teabe rakendustele.
- Muutuja DISPLAY määrab graafilistele rakendustele, millises ekraanil (iga X käivitatakse unikaalse ekraaninumbriga) ja seega, millised käivitatud minu masinas, on vaja joonistada X-e. (Samuti on selle muutuja kaudu võimalus määrata kaugmasin ja saata väljund X-id, mis on käivitatud teises masinas võrgus). Kuna X-id käivitati ilma valikuta -auth, pole vaja tegeleda muutuja XAUTHORITY või käsu xhost uurimisega.
- Graafilised rakendused (või nagu neid nimetatakse X-klientideks) joonistatakse X-idest — samas ilma võimaluseta neid nihutada/kinnitada/muuta "-g (Laius)x(Kõrgus)+(KaugusVasakult)+(KaugusÜlamisestÄärtest)". Miinusmärgiga vastavalt parempoolsest ja alumisest servast.
- Kaks mõistet, mida tasub mainida: X-server (nii nimetatakse X'e) ja X-klient (nii nimetatakse kõiki graafilisi rakendusi, mida käivitatakse X'ides). Terminoloogias on väike segadus, paljud mõistavad seda täpselt vastupidiselt. Kui ma 'kliendimasinast' (kaugjuurdepääsu terminoloogias) ühendun 'serveriga' (kaugjuurdepääsu terminoloogias), et kuvada oma monitoril graafilist rakendust serverist, käivitatakse X-server selle masina peal, kus monitor asub (ehk 'kliendimasinas', mitte 'serveris'), samal ajal kui X-klient käivitatakse ja töötab 'serveris', kuigi see kuvatakse 'kliendimasina' monitoril.

DE komponendid
Edasi uurime komponente, millest tavaliselt töölauad koosnevad.
DE komponendid: 'Start' nupp ja 'Ülesande riba'
Alustame nii nimetatud 'Start' nupust. Tihti on see eraldi applet, mida kasutatakse 'Ülesande ribal'. Samuti on seal tavaliselt applet, mis võimaldab vahetada avatud rakenduste vahel.

Vaadates erinevaid töölaua keskkondi, peaksin ma selliseid rakendusi üldiselt nimetama 'Rakenduste juht (Käivitaja/Vahetaja)', s.t. tööriist rakenduste haldamiseks (kõivata ja vahetada avatud rakenduste vahel), samuti nimetan utiliite, mis on näidised selle tüüpi rakendustest.
- See võib olla 'Start' nupu kujul klassikalisel (kogu ekraani selle ääre pikkuses) 'Ülesande ribal':
○ xfce4-panel,
○ mate-panel/gnome-panel,
○ vala-panel,
○ tint2. - Samuti võime eraldi välja tuua 'MacOS-i sarnased ülesande ribad' (mitte kogu ekraani ääre ulatuses), kuigi paljud ülesande ribad võivad kuvatud olla mõlemas variandis. Siin on peamine erinevus pigem visuaalne - olemasolek 'ikoonide suurendamise efekt' hiirega üle viimise ajal.
○ docky,
○ latte-dock,
○ cairo-dock,
○ plank. - Ja/Või teenused, mis käivitatakse rakendustes 'kuumade klahvide' vajutamisel (paljudes töölauakeskkondades on sarnane komponent kindlasti olemas ja võimaldab seadistada oma kuumia klahve):
○ sxhkd.
- Samuti on olemas erinevad menüü-tüüpi 'käivitajad' (ingl. Launch (käivitama)):
○ dmenu-run,
○ rofi -show drun,
○ albert,
○ grun.

DE komponendid: WM (Akenjuht)
WM (Akenjuht) - teatud rakendus, mis vastutab akende haldamise eest, lisab võimaluse:
- aken liigutamine töölaual (sealhulgas standardne klaviatuuri Alt klahvi hoidmine akna igast osast, mitte ainult pealkirjast);
- aken suuruse muutmine, näiteks akna 'äärise' haaramise ja lohistamise teel;
- lisab akna liidesele 'pealkirja (title)' ja minimiseerimise/maximise/sulgemise nupud;
- mõisted, milline rakendus on 'fokuses'.

Loetlen kõige tuntumad (ümmargustes sulgudes märgin, kus millises DE-s see vaikimisi kasutatakse):
- (GNOME3),
- (Mate),
- (GNOME2),
- (Cinnamon),
- (KDE),
- (XFCE),
- .

Tuleb ka mainida 'vanade WM-ide elemente DE-s'. St. lisaks aknahaldurile sisaldavad need ka elemente nagu 'Start' nupp ja 'Tööriistariba', mis on rohkem iseloomulik täisfunktsionaalsetele DE-dele. Kuigi, kuidas nad on 'vanad', kui nii IceWM kui WindowMaker on oma uuendatud versioonid juba 2020. aastal välja andnud. Seega, võiks täpsemalt öelda 'veteranid':
- ,
- ,
- , , , ,
- …





Lisaks 'klassikalistele' ('stacking window managers') on oluline märkida , mis võimaldab paigutada aknaid 'plaadiviisiliselt' kogu ekraanile, aga ka mõne rakenduse jaoks eraldi töölaua, millel iga käivitamine täidab kogu ekraani. See võib olla inimestele, kes pole varem neid kasutanud, veidi harjumatu, kuid kuna mina ise olen seda vahepeal piisavalt kaua kasutanud, võin öelda, et see on täiesti mugav ja harjub kiiresti sellise liidesega, pärast mida 'klassikalised' aknahaldurid enam nii mugavad ei tundu.
- ,
- ,
- ,
- ,
- ,
- qtile,
- bspwm,
- herbstluftwm,
- …
- twin,
- .

Samuti tuleks eraldi mainida projekti ja sellist mõistet nagu 'Komposiitakna haldur', mis kasutab riistvaralise kiirenduse võimalusi läbipaistvuse, varjude ja erinevate kolmemõõtmeliste efektide kuvamiseks. Umbes 10 aastat tagasi oli Linuxi töölaual 3D-efektide buum. Praegu kasutavad paljud DE integreeritud aknahaldurid osaliselt komposiitvõimalusi. Hiljuti ilmus — toode, millel on Compiz sarnane funktsionaalsus Waylandil.

Erinevaid aknahaldurite loetelusid saab ka vaadata .
DE komponendid: muud
On oluline märkida ka järgmised töölaua komponendid (kasutan siin ingliskeelseid küsimusi rakenduse tüübi kirjeldamiseks — see ei ole rakenduste nimed):
- Applets(Äppletid):
- Süsteemitarkvara (Widget toolkit) - sageli on koos keskkonnaga kaasas teatud "minimaalne komplekt" tarkvarast:
DE (Desktop Environment)
Ülaltoodud komponentidest saadakse nn "töölaua keskkond". Tihti arendatakse kõiki selle komponente kasutades samu graafikakogusid ja sarnaseid kujunduspõhimõtteid. Nii kaitstakse vähemalt üldist stiili rakenduste välimuse jaoks.
Siin võib välja tuua järgmised praegu olemasolevad töölaua keskkonnad:
Levinumad on GNOME ja KDE, ning XFCE järgneb neile tihedalt.

Erinevate parameetrite võrdlust saab näha vastavas .
DE mitmekesisus

On isegi mõned huvitavad näited ajaloo jooksul: aastatel 2003-2007 loodi Linuxile "3D-töölaua disain" nimega "Project Looking Glass" firmalt Sun. Kasutasin ise seda töölauale, täpsemalt "mängisin" sellega, kuna praktiline kasutamine oli keeruline. See "3D-disain" oli kirjutatud Java's ajal, mil 3D toetavaid graafikakaarte veel ei olnud. Seetõttu arvutati kõik efektid protsessoris, ja arvuti pidi olema väga võimas, vastasel juhul töötas kõik aeglaselt. Kuid see tundus ilus. Kolmedimensioonilisi rakenduste plaate sai keerata/avalikustada. Saadi pöörata töölaua silindrit, mille taustapilt oli 360-kraadine panorama. Seal oli mitmeid oma kauneid rakendusi: näiteks muusika kuulamine "CD-diskide vahetamise" kujul jne. Seda projekti saab YouTube'ist vaadata, kuid tõenäoliselt on nende video kvaliteet halb, kuna toona ei olnud kõrgekvaliteedilise video üleslaadimise võimalusi. Kerge töölaua keskkond. Projekt on eksisteerinud juba piisavalt kaua, alates 1996. aastast. Viimastel aastatel on see muutunud üsna populaarseks, vastukaaluks raskematele KDE ja GNOME'ile, millega paljudes distributsioonides on vaja kerget ja "klassikalist" töölaualiidest. Sel on palju seadeid ja suur hulk oma rakendusi: terminal (xfce4-terminal), failihaldur (thunar), pildivaataja (ristretto), tekstiredaktor (mousepad).

Pantheon

Kasutatakse 'Elementary OS' distributsioonis. Siin võib öelda, et on olemas 'töölauad', mis on välja töötatud ja kasutusel ühes kindlas distributsioonis ning ei ole laialdaselt kasutatud (kui mitte öelda 'üldse mitte kasutatud') teistes distributsioonides. Vähemalt praegu ei ole nad populaarsust kogunud ega veennud suurt osa publikust oma lähenemise eelistest. Pantheon seab endale ülesande luua macOS-le sarnane liides.

Dokipaneeli variant:

Tugev rõhk graafikafektidele ja vidinatele (veel ajast, mil teised töökeskkonnad ei sisaldanud vidinaid töölaual, näiteks kalendrid/kellad). Kasutab oma teeke. Olemas on suur hulk oma 'ilusalt' rakendusi: terminal (Terminology), videopleier (Rage), pildivaataja (Ephoto).

See on Enlightenment17 haru, mida kasutatakse BodhiLinux distributsioonis.

Algne 'klassikaline' töölaua liides, loodud vastukaaluks KDE-le, mis oli kirjutatud QT teegil, tol ajal levitatud litsentsi alusel, mis ei olnud väga sobiv kommertsdistrubtsioonide jaoks.

Kolmandast versioonist alates on GNOME kaasas GNOME Shell liidesega, millel on 'ebaklassikaline välimus', mis ei meeldinud kõikidele kasutajatele (iga järsk muutus liideses on kasutajate seas keeruliselt vastuvõetav). Tulemusena tekkisid haruprojektid, mis jätkavad selle töölaua arengut 'klassikalises' stiilis: MATE ja Cinnamon. Kasutatakse vaikimisi paljudes kommertsdistrubtsioonides. Omab suurt hulka seadeid ja oma rakendusi.

Ilmus GNOME2 baasil ja jätkab selle disainikeskkonna arengut. Omab suurt hulka seadeid ja rakenduste hargnemisi, mida kasutati veel GNOME2-s (kasutatakse uusi nimesid), et mitte segi ajada haru nende uue versiooniga GNOME3 jaoks).

GNOME Shell haru, mis pakub kasutajatele 'klassikalise' liidese (nagu see oli GNOME2-s).
Omab suurt hulka seadeid ja samu rakendusi nagu GNOME Shell jaoks.

GNOME haru 'klassikalises' stiilis, mis arenes Soluse distributsioonis, kuid on nüüd saadaval iseseisva töölaua raames ka paljudes teistes distributsioonides.

(või, nagu sageli nimetatakse, lihtsalt KDE)
Töölauakeskkond, mida arendatakse KDE projekti raames.
Omab palju seadeid, mis on tavalisele kasutajale saadaval graafilise liidese kaudu, ja palju graafilisi rakendusi, mis on välja töötatud selle töölaua raames.

2008. aastal väljastas KDE oma uue rakenduse KDE Plasma (töölaua mootor kirjutati tugevalt ümber). Nagu GNOME/MATE puhul, ei meeldinud see kõigile KDE fännidele. Selle tulemusena ilmus projekti fork, mis jätkab eelmine versiooni arengut, nimega TDE (Trinity Desktop Environment).

Üks uutest töölauakeskkondadest, mis on kirjutatud Qt abil (millel põhineb ka KDE). Omab palju seadeid ja on piisavalt kaunis (kuigi see on subjektiivne mõisted) ja viimistletud liides. Arendatakse Deepin Linuxi raames. Samuti on saadaval paketid teistele distributsioonidele.

Fly
Näide töölauakeskkonnast, mis on kirjutatud Qt abil. Arendatakse Astra Linuxi raames.

Kerge töölauakeskkond. Nagu mõned eelnevad näited, on kirjutatud Qt abil. Tegelikult on see LXDE projekti jätk ja tulemuseks on liitumine Razor-qt projektiga.
Nagu näete, võivad Linuxi töölauad välja näha väga erinevad ja igaühe maitsele leidub sobiv liides: alates väga ilusatest ja 3D-efektidega kuni minimalistlikeni, alates 'klassikalistest' kuni ebatavalisteni, alates süsteemi aktiivselt kasutavatest kuni kergeteni, alates suurtest ekraanidest kuni tahvelarvutite/smartfonideni.
Loodetavasti sain ma arusaama andma, millistest peamistest komponentidest koosneb graafika ja töölaua OS Linuxis.
Selle artikli materjal oli testitud juulis 2020 veebinaril. Seda saab vaadata .
Sellega on kõik. Loodan, et see oli kasulik. Kui on küsimusi või kommentaare, kirjutage. Olen rõõmus, et saan vastata. Ja tulge õppima !
Allikas: habr.com
