See artikkel räägib sellest, kuidas graafika Linuxis töötab ja millistest komponentidest see koosneb. Selles on palju ekraanipilte erinevatest töölauakeskkondade teostustest.
Kui te ei suuda KDE ja GNOME'i vahel suurt vahet teha või kui teate, kuid soovite teada, millised on veel alternatiivid, siis on see artikkel teie jaoks. See on ülevaatlik ning kuigi selles on palju nimetusi ja veidi termineid, on materjal samuti kasulik algajatele ja neile, kes alles vaatavad Linuxi suunas.
Teema võib huvi pakkuda ka edasijõudnud kasutajatele kaugjuhtimise seadistamisel ja õhukese kliendi rakendamisel. Tihti kohtan kogenud Linuxi kasutajaid, kes väidavad: „serveris on ainult käsurea liides ja ma ei kavatse graafikat süvitsi uurida, kuna see on vajalik vaid lihtsatele kasutajatele“. Kuid isegi Linuxi eksperdid avastavad suure üllatuse ja rõõmuga ssh käsu „-X“ võimaluse (ja selleks on kasulik mõista X-serveri tööpõhimõtteid ja funktsioone).

Olen peaaegu 15 aastat õpetanud Linuxi kursustel „» ja olen kindel, et paljud neist üle viie tuhande inimesest, keda olen koolitanud, loevad ja kindlasti kirjutavad artikleid Habris. Kursused on alati väga sisukad (kursuse keskmine kestus on viis päeva), peab rääkima teemadest, milleks on vaja vähemalt kümme päeva põhjalikuks tutvumiseks. Ja alati kursuse käigus, sõltuvalt publikust (kas on algajad või kogenud administraatorid) ning 'küsimustest saalist', teen valiku, mida selgitada põhjalikumalt ja mida - pinnapealselt, et pühendada rohkem aega käsurea utiliitidele ja nende praktilisele rakendamisele. Selliseid teemasid, millega tuleb natuke ohverdada, on piisavalt. Need on 'Linuxi ajalugu', 'Erinevused Linuxi distributiivides', 'Litsentsidest: GPL, BSD, ...', 'Graafika ja töölauakeskkonnad' (selle artikli teema) jne. Mitte et need poleks olulised, aga tavaliselt on palju aktuaalsemaid 'siin ja praegu' küsimusi ja vaid viis päeva... Küll aga on nende teemade uurimine kasulik ja vajalik, et mõista Linuxi operatsioonisüsteemi põhialuseid, saada arusaam kättesaadavast mitmekesisusest (et isegi kasutades vaid ühte konkreetset Linuxi distributiivi, oleks ikkagi laiem ülevaade sellest tohutust ja lõputust maailmast, mida kutsutakse 'Linuxiks').
Artikli jooksul osutan iga komponendi jaoks linke neile, kes soovivad teemasse süg deeper minna, näiteks Viwiki artiklitele (näidates samas, kui olemas, täiendavat/kasulikku versiooni ingliskeelsete ja venekeelsete artiklite seas).
Peamiste näidete ja ekraanipiltide jaoks kasutasin openSUSE jaotust. Võis kasutada ka mõnda muud kogukonna arendatud jaotust, millel on palju pakette registris. Kuigi on keeruline, kuid siiski võimalik, demonstreerida laia töölaudade kujunduse mitmekesisust kaubanduslikul jaotusel, kuna sageli kasutatakse neis ainult üht või kahte tuntud töölauda. Nii kitsendavad arendajad endale stabiilse ja tõrgeteta operatsioonisüsteemi väljalaskmise ülesannet. Selle süsteemi kohta installisin kõik DM/DE/WM (nende terminite selgitus allpool), mida leidsin registrist.
Ekranipildid "siniste raamidega" on tehtud openSUSE-l.
Ekranipildid "valgete raamidega" on tehtud teistes jaotustes, mis on märgitud ekranipildil.
Ekranipildid "hallide raamidega" on võetud internetist, näitega töölaudade kujundustest varasematest aastatest.
Nii et alustame.
Peamised koostisosad, millest graafika koosneb
Toon välja kolm peamist komponenti ja loetlen need järjekorras, kuidas need süsteemi käivitamisel käivitatakse:
- DM (Display Manager);
- Kuva server;
- DE (Töölaudade keskkond).
Lisaks on Desktop Environment puhul olulised allkomponendid:
- Rakenduste haldur/algaja/lüliti (nupp „Start“);
- WM (Aknahaldur);
- erinevad tarkvarad, mis tulevad kaasa töölaua keskkonnaga.
Rohkem teavet iga punkti kohta.
DM (Display Manager)
Esimene rakendus, mis käivitub „graafika“ aktiveerimisel, on DM (Display Manager), kuvarihaldur. Selle peamised ülesanded on:
- küsida, millised kasutajad pääsevad süsteemi, küsida autentimisandmeid (salasõna, sõrmejälg);
- valida, millist töölauda käivitada.
Praeguseks on erinevates jaotusversioonides laialdaselt kasutusel:
- (asendas ),
- ,
- ,
- .
- Samuti tasub mainida Fly-DM-i (kasutatav AstraLinuxis).
Olemasolevate DM-ide loetelu hoitakse ajakohasena




On järgmistes ekraanipiltides on kasutusel sama graafikahaldur LightDM, kuid erinevates distributsioonides (distributsioonide nimed on märgitud sulgudes). Vaadake, kui erinev välja näeb see DM erinevate distributsioonide disainerite töö tulemusel.





Peamine selle mitmekesisuse juures on mõista, et eksisteerib rakendus, mis vastutab graafika käivitamise ja kasutaja juurdepääsu lubamise eest, ning et on erinevaid versioone sellest rakendusest, mis erinevad välimuse ja pisut ka funktsionaalsuse poolest (disaini valikud, kasutajate valik, nägemispuudega kasutajatele mõeldud versioon, eemaljuhtimise võimalus protokolli kaudu ).
Display Server
Display Server on mingi graafika alus, mille peamine ülesanne on töötada koos graafikakaardi, monitori ja erinevate sisendi seadmetega (klaviatuur, hiir, puuteplaat). See tähendab, et rakendusele (näiteks brauserile või tekstiredaktorile), mis kuvatakse „graafikas”, ei ole vaja teada, kuidas otse seadmetega töötada, ega pea teadma draiveritest. Kõik selle jaoks hoolitseb X Window.
Kui räägitakse Display Serverist, siis on juba aastaid Linuxis ja Unixis mõistetud seda rakendust. või rahvakeeles X (Ikks).
Praegu paljudes jaotustes asendatakse Xiga .
Samuti võib lugeda:
- ,
- ,
- (vajalikud kaug- graafiliste rakenduste käivitamiseks, näiteks PuTTY abil).
Esmalt käivitame X’id ja mõned graafilised rakendused nendes.
Praktikum "käivitame X ja rakendused selles"
Kõike teen värskelt loodud kasutajana webinaruser (lihtsam, kuid mitte turvalisem oleks kõik teha root’ina).
- Kuna X’id vajavad ligipääsu seadmetele, annan ligipääsu: Seadmete nimekirja määrasin, vaadates X’ide käivitamise vigu 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äivitavad "hallilt" klassikalise taustaga, mitte mustalt nagu vaikimisi; * :77 — määran (võib olla ükskõik milline mõistlikus vahemikus, ainult :0 on juba tõenäoliselt reserveeritud juba käivitatud graafika jaoks) ekraani numbri, tegeliku unikaalse identifikaatori, mille kaudu saab eristada mitmeid käivitatud X’e; * vt8 — näitab terminali, siin /dev/tty8, kus X’id kuvatakse).
- Käivitame graafika rakenduse:
Selleks määrame eelnevalt muutuja, mille kaudu rakendus mõistab, millisesse minu käivitatud X’dele saata joonistamiseks vajalikku:
% export DISPLAY=":77"
Käivitatud X’de nimekirja vaatamine on võimalik nii:
ps -fwwC X
Pärast muutuja määramist on võimalik käivitada rakendusi meie X’ides — näiteks käivitan kella:
% xclock -update 1 &
% xcalc &
% xeyes -g 200x150-300+50 &

Peamised ideed ja järeldused sellest fragmendist:
- X’id vajavad juurdepääsu seadmetele: terminal, videokaart, sisendi seadmed,
- X'id ei näita mingit kasutajaliidese elementi — see on hall (kui on valik «—retro») või must kangas kindlates mõõtmetes (näiteks 1920×1080 või 1024×768), et käivitada seal graafilisi rakendusi.
- Kursor liikumise järgi on nähtav, et X'id jälgivad hiire asukohti ja edastavad seda teavet käivitatud rakendustele.
- Samuti jälgivad X'id klahvivajutusi klaviatuuril ja edastavad seda teavet rakendustele.
- Muuttuja DISPLAY näitab graafilistele rakendustele, millises ekraanil (iga X käivitatakse ainulaadse ekraaninumbriga) tuleb X'e joonistada. (Samuti on võimalik määrata selle muutujaga eemalolev arvuti ja edastada väljund X'idele, mis töötavad teises arvutis võrgus.) Kuna X'id käivati ilma -auth valikuta, pole vajadust tegeleda muutuja XAUTHORITY või käsuga xhost.
- Graafilised rakendused (või nagu neid nimetatakse X-klientideks) renderdavad X-des — samas ilma võimaluseta neid liigutada/sulgeda/muuta „-g (Laius)x(Kõrgus)+(KaldusVasakult)+(KaldusÜltse)”. Miinusmärgiga vastavalt parema ja alumise serva suhtes.
- Kaks mõistet, mida tasub mainida: X-server (nagu nimetatakse X-e) ja X-klient (nagu nimetatakse igat graafilist rakendust, mis töötab X-des). Selle terminoloogia mõistmisel on väike segadus, paljud mõistavad seda täpselt vastupidi. Kui ma „klientmasinalt” (kaugjuhtimise terminoloogias) ühendun „serveriga” (kaugjuhtimise terminoloogias), et kuvada oma ekraanil graafiline rakendus serverist, siis X-server käivitatakse seal, kus on ekraan (st „klientmasinas”, mitte „serveris”), samas kui X-klient töötab ja käivitatakse „serveris”, kuigi see kuvatakse „klientmasina” ekraanil.

DE komponendid
Järgnevalt vaatleme komponente, millest tavaliselt koosneb töölaua keskkond.
DE komponendid: nupp „Start” ja „Töölauapaneel”
Alustame nnimelise «Käivita» nupuga. See on sageli eraldi rakendus, mida kasutatakse «Ülesannete ribal». Seal on tavaliselt ka rakendus, millega saab vahetada avatud rakenduste vahel.

Vaadates erinevaid töölauakeskkondi, saaksin selliseid rakendusi kokku võtta üldise nime all «Apps Manager (Launcher/Switcher)», st rakendus nende haldamiseks (käivitamiseks ja rakenduste vahel vahetamiseks), ning mainin ka utiliite, mis on selle tüübi rakenduste näidised.
- See esindab «Käivita» nupp traditsioonilisel (ühe ekraani serva pikkuse ulatuses) «Ülesannete ribal»:
○ xfce4-panel,
○ mate-panel/gnome-panel,
○ vala-panel,
○ tint2. - Samuti võib eraldi välja tuua «MacOS-ilaadsed ülesannete ribad» (mitte ekraani serva pikkuses), kuigi paljud ülesannete ribad võivad kuvada mõlemas variandis. Siin on peamine erinevus pigem visuaalne — olemasolev «ikoonide suurendamise efekt hiire kohal olemise korral».
○ docky,
○ latte-dock,
○ cairo-dock,
○ plank. - Ja/või teenused, mis käivitavad rakendusi, kui vajutate «kiirklahve» (paljudes töölauakeskkondades on sarnane komponent kindlasti olemas ja võimaldab seadistada oma kiirkühendeid):
○ sxhkd.
- Samuti on saadaval erinevaid menüülaadseid „lancereid“ (ingl. Launch (käivitama)):
○ dmenu-run,
○ rofi -show drun,
○ albert,
○ grun.

DE komponendid: WM (Akna haldaja)
WM (Akna haldaja) – rakendus, mis vastutab akende haldamise eest ning lisab võimalused:
- akende liigutamine töölaual (sealhulgas standardne, kui hoida all klahvi Alt akna igast osast, mitte ainult pealkirjast);
- akende suuruse muutmine, näiteks tõmmates akna „raamist“;
- lisab akna liidesele „pealkirja (title)“ ja minimeerimise/äärestamise/suletud rakenduse nupud;
- arusaam, millisest rakendusest on „fookuses“.

Kuid kõige tuntumad (ümberringi sulguvad, millises DE vaikimisi kasutatakse):
- (GNOME3),
- (Mate),
- (GNOME2),
- (Cinnamon),
- (KDE),
- (XFCE),
- .

Samuti mainin „vanu WM elementidega DE“. Teisisõnu, lisaks akna haldaja funktsioonile sisaldavad need elemente nagu „Algus“-nupp ja „Tööriistariba“, mis on rohkem iseloomulik täiustatud DE-dele. Kuigi kuidas nad on „vanad“, kui nii IceWM kui ka WindowMaker on juba välja andnud oma uuendatud versioonid 2020. aastal. Tundub, et oleks õiglasem mitte öelda „vanad“, vaid „vanad tuttavad“:
- ,
- ,
- , , , ,
- …





Lisaks «klassikalistele» («virnastamisakende haldajatele») tasub eraldi märkida , mis võimaldab aknaid „kildudena” kogu ekraanil paigutada, samuti luua mõne rakenduse jaoks eraldi töölaud iga käivitatava rakenduse jaoks, mis katab kogu ekraani. See võib olla natuke harjumatu inimestele, kes ei ole neid varem kasutanud, kuid kuna ma ise olen juba üsna ammu sellist liidest kasutanud, võin öelda, et see on väga mugav ja kiiresti harjub sellise liidesega, pärast mida ei tundu enam „klassikalised” aknahaldurid mugavad.
- ,
- ,
- ,
- ,
- ,
- qtile,
- bspwm,
- herbstluftwm,
- …
- twin,
- .

Samuti tasub eraldi mainida projekti ja sellist mõistet nagu „Komposiitakende halduri”, mis kasutab riistvarakiirenduse võimalusi läbipaistvuse, varjude ja erinevate kolmemõõtmeliste efektide kuvamiseks. Umbes 10 aastat tagasi oli Linuxi töötasapindadel 3D-efektide buum. Nüüd paljudest aknahalduritest, mis on DE-sse integreeritud, kasutavad osaliselt komposiitvõimalusi. Hiljuti ilmus — toode, mis pakub sarnast funktsionaalsust Compizile Waylandil.

Detailne nimekirja erinevatest aknahalduritest saab vaadata .
DE komponentid: teised
Samuti tasub mainida järgmisi töölaua komponente (siin kasutan ingliskeelseid väljakujunenud termineid rakenduse tüüpide kirjeldamiseks — need ei ole rakenduste nimed):
- Appletid:
- Tarkvara (Widget toolkit) — sageli kaasneb keskkonnaga mingi „minimaalne komplekt“ tarkvarast:
DE (Töölauakeskkond)
Ülaltoodud komponentidest moodustub nn „töölaua kujunduskeskkond“. Tihti arendatakse kõik selle komponendid kasutades samu graafikabiblioteke ja samade disainiprintsiipide alusel. Nii tagatakse vähemalt ühtne stiil rakenduste välimusele.
Siinkohal on võimalik välja tuua järgmised praegu eksisteerivad töölaua keskkonnad:
Levinumad on GNOME ja KDE, ning neile järgnevad kiirelt XFCE.

Erinevate parameetrite võrdlemist tabelivormis saab vaadata vastavas .
DE mitmekesisus

Ajaloo on isegi huvitavaid näiteid: aastatel 2003-2007 loodi Linuxile "3D töölaua kujundus", mille nimi oli "Project Looking Glass", ettevõttelt Sun. Olen seda töölaua kujundust ise kasutanud, või pigem "katsetanud", kuna selle kasutamine oli keeruline. See "3D kujundus" oli kirjutatud Java keeles ajal, mil 3D toetavaid graafikakaarte polnud veel olemas. Seetõttu arvutati kõik efektid protsessoril ja arvuti pidi olema väga võimas, muidu töötas kõik aeglaselt. Kuid see oli ilus. Kolmemõõtmelisi rakenduste plaatide keeramist ja avardamist oli võimalik teha. Töölaua silindris võis ringi pöörduda koos 360-kraadiste panorama taustapiltidega. Oli mitmeid ilusaid rakendusi: näiteks muusika kuulamine "CD-de vahetuse" kujul jne. Seda projekti on võimalik youtube'ist vaadata aga nende videote kvaliteet on tõenäoliselt kehv, kuna sel ajal polnud kõrge kvaliteediga videoid üles laadida võimalik.

Kerge töölaua keskkond. See projekt on eksisteerinud juba üsna kaua, alates 1996. aastast. Viimastel aastatel on see saanud populaarseks, vastandina raskematele KDE ja GNOME'ile, paljudele jaotustele, millel on vaja kerget ja 'klassikalist' töölaua liidest. Sellel on palju seadeid ja suur hulk oma programme: terminal (xfce4-terminal), failihaldur (thunar), pildivaataja (ristretto), tekstiredaktor (mousepad).

Kasutatav jaotuses 'Elementary OS'. Siin võib öelda, et on olemas 'töölauad', mis arendatakse ja mida kasutatakse ühe konkreetse jaotuse raames ning mida ei kasutata palju (kui mitte öelda, et üldse ei kasutata) teistes jaotustes. vähemalt seni pole nad populaarsust kogunud ega veennud suurt osa publikust oma lähenemise eelistest. Pantheon seab eesmärgiks luua macOS'i sarnane liides.

Valik dock-paneeliga:

Tuge rõhku graafilistele efektidele ja vidinatele (veel ajast, mil teised töölauakeskkonnad ei pakkunud töölauavidinaid, nagu näiteks kalendrid/kellad). Kasutatakse oma raamatukogusid. Saadaval on suur komplekt oma "ilusatest" rakendustest: terminal (Terminology), videopleier (Rage), pildigalerii (Ephoto).

See on fork Enlightenment17, mida kasutatakse BodhiLinuxi jaotises.

Algne "klassikaline" töölaualiides, mis loodi KDE-le vastukaaluks, mis oli kirjutatud QT raamatukogul, mis tol ajal jagati litsentsiga, mis ei olnud väga mugav kommertsdistrodele.

Kolmanda GNOME versiooniga kaasnes GNOME Shell, millel oli "eebiklassikaline välimus", mis ei meeldinud kõigile kasutajatele (kasutajad aktsepteerivad liideseid puhul järske muudatusi raskelt). Selle tulemuseks on forkpetsiifilised projektid, mis jätkavad selle töölaua arendamist "klassikaliseks" stiilis: MATE ja Cinnamon. Kasutatakse vaikimisi paljudes kommertsdistrodes. Omab palju seadistusi ja oma rakendusi.

Ilmus GNOME2 põhjal ja jätkab selle väliskeskkonna arendamist. Sellel on suur hulk seadistusi ja rakenduste hargnevusi, mida kasutati veel GNOME2-s (uued nimed kasutatakse, et mitte segi ajada hargnevusi nende uue versiooniga GNOME3 jaoks).

GNOME Shell'i hargnevus, mis pakub kasutajatele klassikalises stiilis liidest (nagu see oli GNOME2-s).
Omab suurt hulka seadistusi ja samu rakendusi, mis GNOME Shell'il.

GNOME'i klassikalise stiili hargnevus, mis arenes Soluse jaotises, kuid on nüüd saadaval ka eraldiseisva töölaua vormis mitmetes teistes jaotustes.

(või nagu sageli nimetatakse, lihtsalt KDE)
Töölauakeskkond, mida arendatakse KDE projekti raames.
Omab tohutut hulka seadistusi, mis on tavalisele kasutajale kergesti kättesaadavad graafilise liidese kaudu ning palju graafilisi rakendusi, mida selle töölaua raames arendatakse.

2008. aastal tõi KDE turule oma uue versiooni KDE Plasma, mille töölauamootor oli tugevalt ümber kirjutatud. Nii nagu GNOME/MATE puhul, ei meeldinud see kõikidele KDE fännidele. Tulemusena ilmnes projekti fork, mis jätkab eelmise versiooni arendust, nimega TDE (Trinity Desktop Environment).

Üks uutest töölauakeskkondadest, mis on kirjutatud Qt keeles (millel põhineb ka KDE). Omab palju seadistusi ja on piisavalt kaunis (kuigi see on subjektiivne mõisted) ning hästi läbi mõeldud liidesega. Areneb Deepin Linux'i jaotuse raames. Olemas ka paketid teiste jaotuste jaoks.

Fly
Näide töölauakeskkonnast, mis on kirjutatud Qt keeles. Areneb Astra Linux'i jaotuse raames.

Kerge töölauakeskkond. Nagu mitmed eelmised näited, on see kirjutatud Qt keeles. Tegelikult on see LXDE projekti jätk ja tulemuseks projektide ühinemine Razor-qt-ga.
Nagu juba märgitud, võib Linuxi töölaual olla väga erinev välimus ja igaühe jaoks leidub sobiv liides: alates väga ilusatest ja 3D-efektidega kuni minimalistlike, alates "klassikalistest" kuni ebatavaliste, alates aktiivselt süsteemi ressursse kasutavatest kuni kergeteni, alates suurtest ekraanidest kuni tahvelarvutite/smartfonideni.
Loodan, et olen suutnud anda ülevaate peamistest komponentidest, millest koosneb graafika ja töölaua keskkond Linuxi operatsioonisüsteemis.
Selle artikli materjal põhines juulis 2020 läbi viidud veebinaril. Seda saab vaadata .
Sellega on kõik. Loodan, et see oli kasulik. Kui teil on küsimusi või kommentaare, kirjutage. Olen hea meelega valmis vastama. Ja tulge õppima !
Allikas: habr.com
