ProHoster > Blogi > Haldamine > Kuidas graafika Linuxis töötab: ülevaade erinevatest töölauakeskkondadest
Kuidas graafika Linuxis töötab: ülevaade erinevatest töölauakeskkondadest
See artikkel räägib sellest, kuidas Linuxi graafika töötab ja millistest komponentidest see koosneb. Sellel on palju ekraanipilte töölauakeskkondade erinevatest rakendustest.
Kui teil pole KDE ja GNOME vahel suurt vahet või kui teil on erinevusi, kuid soovite teada, millised on muud alternatiivid, siis see artikkel on teie jaoks. See on ülevaade ja kuigi sellel on palju nimesid ja vähe termineid, on materjal kasulik ka algajatele ja lihtsalt Linuxi poole vaatajatele.
Teema võib huvi pakkuda ka edasijõudnutele kaugjuurdepääsu seadistamisel ja õhukese kliendi juurutamisel. Tihti kohtan üsna kogenud linuxoide väitega "serveris on ainult käsurida ja ma ei kavatse graafikat üksikasjalikumalt uurida, kuna see kõik on tavakasutajatele vajalik." Kuid isegi Linuxi asjatundjad on üllatunud ja õnnelikud, kui avastavad ssh-käsu valiku "-X" (ja selleks on kasulik mõista X-serveri toimimist ja funktsioone).
Allikas
Olen õpetanud Linuxi kursusi peaaegu 15 aastat aadressil "Võrguakadeemia LANIT"Ja ma olen kindel, et paljud neist enam kui viiest tuhandest inimesest, keda ma koolitasin, loevad ja tõenäoliselt kirjutavad Habri artikleid. Kursused on alati väga tihedad (keskmine kursuse kestus on viis päeva), rääkida tuleb teemadel, mille täielikuks tutvumiseks on vaja vähemalt kümmet päeva. Ja alati, olenevalt kuulajaskonnast (kogunenud uustulnukad või kogenud administraatorid), aga ka „vaatajate küsimustest“ teen alati kursuse ajal valiku, mida täpsemalt edasi anda ja mis pealiskaudsemalt, et pühendada rohkem aega käsurea utiliitidele ja nende praktilisele rakendamisele. Selliseid teemasid, millele tuleb veidi ohverdada, on piisavalt. Need on "Linux'i ajalugu", "Erinevused Linuxi distributsioonides", "Teave litsentside kohta: GPL, BSD, ...", "Graafika ja töölauakeskkondade kohta" (selle artikli teema) jne. Mitte, et need poleks olulised, kuid tavaliselt on palju asjakohasemaid "siin ja praegu" küsimusi ja vaid umbes viis päeva ... Kuid Linuxi distributsiooni laiaulatuslikuks mõistmiseks on saadaval veel üks Linuxi distributsiooni põhitõdesid. Vaadates kõike seda tohutut ja vajalikku maailma, mida nimetatakse "Linuxiks"), on kasulik ja vajalik neid teemasid uurida.
Kogu artiklis märgin iga komponendi kohta lingid neile, kes soovivad teemasse sügavamale sukelduda, näiteks Vikipeedia artiklitele (osates samal ajal täielikuma / kasuliku versiooni, kui on inglis- ja venekeelseid artikleid).
Põhinäidete ja ekraanipiltide jaoks kasutasin openSUSE distributsiooni. Hoidlas oli võimalik kasutada mis tahes muud kogukonna arendatud distributsiooni, millel on palju pakette. Töölauakujunduste mitmekesisust kaubanduslikul levitamisel on raske, kuid võimalik demonstreerida, kuna need kasutavad sageli ainult ühte või kahte tuntumat töölauakeskkonda. Seega piiravad arendajad stabiilse silutud OS-i väljaandmise ülesannet. Samasse süsteemi installisin kõik DM / DE / WM (nende mõistete selgitus allpool), mille leidsin hoidlast.
"Siniste raamidega" ekraanipildid on lihtsalt tehtud openSUSE-s.
"Valgete raamidega" ekraanipildid tehti teistel distributsioonidel, need on ekraanipildil näidatud.
"Hallide ääristega" ekraanipildid on võetud Internetist, näitena töölauakujundusest eelmisest aastast.
Alustame siis.
Peamised komponendid, millest graafika koosneb
Toon välja kolm põhikomponenti ja loetlen need süsteemi käivitamisel käivitamise järjekorras:
DM (kuvahaldur);
kuvaserver;
DE (töölauakeskkond).
Lisaks on töölauakeskkonna oluliste alamüksustena:
Rakenduste haldur/käivitaja/lüliti (nupp Start);
WM (aknahaldur);
töölauakeskkonnaga kaasas olev mitmesugune tarkvara.
Lisateavet iga üksuse kohta.
DM (kuvahaldur)
Esimene rakendus, mis "graafika" käivitumisel käivitub, on kuvahaldur DM (Display Manager). Selle peamised ülesanded:
küsida, milliseid kasutajaid süsteemi lubada, küsida autentimisandmeid (parool, sõrmejälg);
valida, millist töölauakeskkonda käivitada.
Praegu kasutatakse laialdaselt erinevaid distributsioone:
Mainida võib ka Fly-DM-i (kasutatakse AstraLinuxis).
Olemasolevate DM-ide loendit hoitakse ajakohasena Wiki artikkel.
Tasub tähele panna, et järgmistel ekraanipiltidel kasutatakse sama LightDM-i kuvahaldurit, kuid erinevates distributsioonides (jaotuste nimed on sulgudes). Vaadake, kui erinev võib see DM välja näha tänu erinevate distributsioonide disainerite tööle.
Peamine asi selles mitmekesisuses on selgeks teha, et on olemas rakendus, mis vastutab graafika käivitamise ja kasutajal sellele graafikale juurdepääsu võimaldamise eest ning sellel rakendusel on erinevad teostused, mis erinevad välimuse ja funktsionaalsuse poolest (kujunduskeskkondade valik, kasutajate valik, versioon vaegnägijatele, protokolli kaudu kaugjuurdepääsu võimalus XDMCP).
Kuvaserver
Display Server on omamoodi graafika vundament, mille põhiülesanne on töötada videokaardi, monitori ja erinevate sisendseadmetega (klaviatuur, hiir, puuteplaadid). See tähendab, et "graafikas" renderdatud rakendus (näiteks brauser või tekstiredaktor) ei pea teadma, kuidas seadmetega otse töötada, see ei pea teadma draivereid. Selle kõige eest hoolitseb X Window.
Display Serverist rääkides tähendas see aastaid Linuxis ja Unixis rakendust X aknasüsteem või lihtrahvas X (X).
Nüüd asendavad paljud distributsioonid X-iga Wayland.
Valikud: * -retro – alusta "halli" klassikalise taustaga, mitte vaikimisi mustaga; * :77 - Määran (ükskõik milline mõistlikus vahemikus on võimalik, ainult :0 on tõenäoliselt juba töötava graafika poolt hõivatud) ekraaninumbri, mingi tegeliku kordumatu identifikaatori, mille järgi on võimalik eristada mitut töötavat X-i; * vt8 - määrab terminali, siin /dev/tty8, millel kuvatakse X).
Graafilise rakenduse käivitamine:
Selleks määrame esmalt muutuja, mille järgi rakendus saab aru, millised X-idest ma jooksen, et saata see, mida tuleb joonistada:
% export DISPLAY=":77"
Töötavate X-ide loendit näete järgmiselt:
ps -fwwC X
Pärast muutuja seadistamist saame käivitada rakendusi oma X-ides – näiteks käivitan kella:
% xclock -update 1 &
% xcalc &
% xeyes -g 200x150-300+50 &
Selle fragmendi peamised ideed ja järeldused:
X vajab juurdepääsu seadmetele: terminal, videokaart, sisendseadmed,
X-id ise ei kuva mingeid liideseelemente – see on hall (kui on valikuga "--retro") või teatud suurusega must lõuend (näiteks 1920 × 1080 või 1024 × 768), et selles graafilisi rakendusi käivitada.
"Risti" liikumine näitab, et X'y jälgib hiire asukohta ja edastab selle teabe selles töötavatele rakendustele.
Samuti püüab X kinni klaviatuuri klahvivajutused ja edastab selle teabe rakendustele.
Muutuja DISPLAY annab graafikarakendustele teada, millisel ekraanil (iga X-d käivitatakse unikaalse ekraaninumbriga käivitamisel) ja seega millised neist, mis minu masinas töötavad, X-e joonistada. (Selle muutuja saab määrata ka kaugmasinale ja saata väljundit mõnes teises võrgus olevas masinas töötavatele X-idele.) Kuna X-id käivitati ilma võtmeta -auth, pole vaja tegeleda muutujaga XAUTHORITY ega käsuga xhost.
Graafilised rakendused (või nagu X-kliendid neid kutsuvad) joonistatakse X-i kujul, ilma et oleks võimalik neid liigutada/sulgeda/muuta "-g (Laius)x(kõrgus)+(ShiftFromLeftEdge)+(ShiftFromTopEdge)". Miinusmärgiga vastavalt paremalt ja alumisest servast.
Kaks mainimist väärivat terminit on X-server (nagu X-i nimetatakse) ja X-kliendid (nagu nimetatakse iga X-s töötavat graafilist rakendust). Selle terminoloogia mõistmisel on väike segadus, paljud mõistavad seda täpselt vastupidiselt. Juhul, kui loon ühenduse “kliendimasinast” (kaugjuurdepääsu terminoloogias) “serveriga” (kaugjuurdepääsu terminoloogias), et kuvada oma monitoril serverist graafilist rakendust, käivitub X-server masinas, kus on monitor (st “kliendimasinas”, mitte “serveris”) ning X-kliendid käivituvad ja töötavad, kuigi nad on “serveris” monitoris.
DE komponendid
Järgmisena analüüsime komponente, mis tavaliselt moodustavad töölaua.
DE komponendid: Start-nupp ja tegumiriba
Alustame nn "Start" nupuga. Sageli on see tegumiribal kasutatav eraldi aplet. Töötavate rakenduste vahel vahetamiseks on tavaliselt olemas ka aplett.
Pärast erinevate töölauakeskkondade vaatamist võtaksin sellised rakendused kokku üldnimetuse "Apps Manager (Launcher / Switcher)" alla, st tööriist rakenduste haldamiseks (käivitamine ja töötavate vahel vahetamine) ning näitaksin ära ka utiliidid, mis on seda tüüpi rakenduse näide.
See toimub nupu "Start" kujul klassikalisel (ekraani ühe serva täispikkuses) "Tegumiribal":
Eraldi saab esile tõsta ka "MacOS-i kujulised tegumiribad" (mitte kogu ekraani serva pikkuses), kuigi palju tegumiribasid võivad ilmuda mõlemas. Pigem on siin peamine erinevus puhtalt visuaalne - "ikoonide suurendamise efekti hõljumisel" olemasolu.
○ dokk,
○ latte dokk,
○ Kairo dokk,
○ plank.
Ja / või teenus, mis käivitab kiirklahvide vajutamisel rakendusi (paljudes töölauakeskkondades on sarnane komponent tingimata olemas ja võimaldab teil oma kiirklahve konfigureerida):
○ sxhkd.
Samuti on olemas erinevad menüükujulised "käivitajad" (inglise keelest. Launch (run)):
Loetlen ka "vana WM DE elementidega". Need. lisaks aknahaldurile on neil elemente nagu nupp Start ja tegumiriba, mis on täisväärtuslikule DE-le rohkem omased. Kuigi kui "vanad" need on, kui nii IceWM kui ka WindowMaker on oma uuendatud versioonid juba 2020. aastal välja andnud. Selgub, et õigem pole mitte "vanad", vaid "vanamehed":
Lisaks "klassikalisele" ("virna aknahaldurid") tasub eraldi ära märkida plaaditud WM, mis võimaldab plaadistada aknaid kogu ekraani ulatuses ja mõne rakenduse puhul täisekraanil iga töötava rakenduse jaoks eraldi töölaua. See on veidi ebatavaline nende inimeste jaoks, kes pole neid varem kasutanud, kuid kuna ma ise olen sellist liidest juba üsna pikka aega kasutanud, siis võin öelda, et see on üsna mugav ja sellise liidesega harjub kiiresti, pärast mida ei tundu "klassikalised" aknahaldurid mugavad.
Eraldi tasub mainida ka projekti Compiz ja selline kontseptsioon nagu "Composite Window Manager", mis kasutab läbipaistvuse, varjude ja erinevate kolmemõõtmeliste efektide kuvamiseks riistvaralise kiirenduse võimalusi. Umbes 10 aastat tagasi oli 3D-efektide buum Linuxi lauaarvutites. Nüüd kasutavad paljud DE-sse sisseehitatud aknahaldurid mõningaid kompositsioonifunktsioone. Hiljuti ilmus Teetuli - Waylandi jaoks sarnase Compizi funktsiooniga toode.
Erinevate aknahaldurite üksikasjaliku loendi leiate ka aadressilt võrdlusartikkel.
DE komponendid: ülejäänud
Tähelepanu väärivad ka järgmised töölauakomponendid (siinkohal kasutan rakenduse tüübi kirjeldamiseks ingliskeelseid väljakujunenud termineid – need ei ole rakenduste endi nimed):
Apletid:
Tarkvara (vidinate tööriistakomplekt) - sageli on keskkonnaga kaasas teatud "minimaalne komplekt" tarkvara:
Eespool loetletud komponentidest saadakse nn "töölauakeskkond". Sageli on kõik selle komponendid välja töötatud samade graafikateekide ja samu kujunduspõhimõtteid kasutades. Seega säilib vähemalt ühtne rakenduste välimuse stiil.
Siin saame esile tõsta järgmisi praegu olemasolevaid töölauakeskkondi:
Selliseid huvitavaid näiteid on isegi juba ajaloost: aastatel 2003-2007 tehti Linuxile “3D desktop design” Suni nimega “Project Looking Glass”. Ma ise kasutasin seda töölauda, õigemini "mängisin", kuna seda oli raske kasutada. See "3D skin" on Java keeles kirjutatud ajal, mil 3D-graafikakaarte veel polnud. Seetõttu arvutas protsessor kõik efektid ümber ja arvuti pidi olema väga võimas, muidu töötas kõik aeglaselt. Aga ilus tuli välja. 360D-rakenduste plaate saab pöörata/laiendada. Töölaua silindris sai XNUMX-kraadise panoraami taustapildiga pöörata. Ilusaid oma rakendusi oli mitu: näiteks muusika kuulamine “CD-vahetaja” näol jne. Saate vaadata youtubest video Selle projekti kohta on ainult nende videote kvaliteet tõenäoliselt halb, kuna neil aastatel ei olnud võimalik kvaliteetseid videoid üles laadida.
Kerge töölaud. Projekt on olemas juba pikka aega, alates 1996. aastast. Viimastel aastatel on see üsna populaarne, erinevalt raskematest KDE-st ja GNOME-st, paljudes distributsioonides, mis nõuavad kerget ja "klassikalist" töölaualiidest. Sellel on palju seadeid ja suur hulk selle programme: terminal (xfce4-terminal), failihaldur (thunar), pildivaatur (ristretto), tekstiredaktor (hiirepadi).
Kasutatakse Elementary OS distributsioonis. Siin võib öelda, et on "töölaudu", mida arendatakse ja kasutatakse ühes distributsioonis ning mida ei kasutata palju (kui mitte "üldse ei kasutata") teistes distributsioonides. Vähemalt pole nad veel populaarsust kogunud ega veennud suurt osa publikust oma lähenemise eelistes. Pantheoni eesmärk on luua macOS-i sarnane liides.
Tugev keskendumine graafilistele efektidele ja vidinatele (alates ajast, mil teistel töölauakeskkondadel ei olnud töölaual vidinaid, nagu kalender/kell). Kasutab oma raamatukogusid. Seal on suur hulk selle "ilusaid" rakendusi: terminal (Terminoloogia), videopleier (Rage), pildivaatur (Ephoto).
Algselt "klassikaline" töölaualiides, mis loodi vastandina KDE-le, mis oli kirjutatud QT teegis, ja mida sel ajal levitati litsentsi alusel, mis ei olnud kommertslevitamiseks eriti mugav.
Alates kolmandast GNOME-i versioonist hakkas GNOME tarnima GNOME Shelliga, millel on "mitteklassikaline välimus", mis ei meeldinud kõigile kasutajatele (liideste äkilisi muudatusi on kasutajatel raske aktsepteerida). Selle tulemusena - kahvliprojektide tekkimine, mis jätkavad selle töölaua arendamist "klassikalises" stiilis: MATE ja Cinnamon. Vaikimisi kasutatakse paljudes kaubanduslikes distributsioonides. Sellel on suur hulk seadeid ja selle rakendusi.
Ilmus GNOME2 baasil ja jätkab selle keskkonna arendamist. Sellel on suur hulk rakendusi, mida GNOME2-s kasutati (kasutatakse uusi nimesid, et mitte segi ajada kahvleid nende uue versiooniga GNOME3 jaoks).
"Klassikalises" stiilis GNOME-i kahvel, mis töötati välja Soluse distributsiooni osana, kuid on nüüd saadaval ka erinevatel muudel distributsioonidel eraldiseisva töölauana.
KDE_Plasma (või, nagu seda sageli nimetatakse, lihtsalt KDE)
KDE projekti poolt välja töötatud töölauakeskkond.
Sellel on graafilise liidese ja paljude sellel töölaual välja töötatud graafiliste rakenduste kaudu lihtsale kasutajale saadaval tohutul hulgal seadeid.
2008. aastal andis KDE välja oma uue KDE Plasma juurutuse (töölaua mootor kirjutati palju ümber). Samuti nagu GNOME/MATE puhul, ei meeldinud see kõigile KDE fännidele. Selle tulemusena ilmus projekti kahvel, mis jätkas eelmise versiooni, nimega TDE (Trinity Desktop Environment) arendamist.
Üks uuemaid töölauakeskkondi, mis on kirjutatud Qt-ga (millele on kirjutatud KDE). Sellel on palju seadeid ning üsna ilus (kuigi see on subjektiivne kontseptsioon) ja hästi arenenud liides. Arendati Deepin Linuxi distributsiooni osana. Samuti on paketid muude distributsioonide jaoks.
Lendama
Näide Qt abil kirjutatud töölauakeskkonnast. Välja töötatud Astra Linuxi distributsiooni osana.
Kerge töölauakeskkond. Nagu mitmed varasemad näited, on kirjutatud Qt abil. Tegelikult on see LXDE projekti jätk ja Razor-qt projektiga ühinemise tulemus.
Nagu näete, võib Linuxi töölaud välja näha väga erinev ja igaühe maitsele on sobiv liides: väga ilusast ja 3D-efektidega minimalistlikust, “klassikalisest” ebatavaliseni, süsteemsest raskest kergeni, suurtest ekraanidest tahvelarvutite/nutitelefonideni.
Noh, ma tahaksin loota, et mul õnnestus anda ettekujutus sellest, millised on Linux OS-i graafika ja töölaua peamised komponendid.
Selle artikli materjali testiti 2020. aasta juulis veebiseminaril. Seda saab vaadata siin.
See on kõik. Loodan, et sellest oli abi. Kui teil on küsimusi ja kommentaare, kirjutage. Vastan hea meelega. No tule ja õpi Võrguakadeemia LANIT!