Ako funguje grafika v Linuxe: prehľad rôznych desktopových prostredí
Tento článok je o tom, ako funguje grafika v Linuxe a z akých komponentov sa skladá. Obsahuje veľa snímok obrazovky rôznych implementácií desktopových prostredí.
Ak skutočne nerozlišujete medzi KDE a GNOME, alebo áno, ale chceli by ste vedieť, aké iné alternatívy existujú, potom je tento článok určený práve vám. Je to prehľad, a hoci obsahuje veľa mien a málo pojmov, materiál bude užitočný aj pre začiatočníkov a tých, ktorí len hľadajú Linux.
Téma môže byť zaujímavá aj pre pokročilých používateľov pri nastavovaní vzdialeného prístupu a implementácii tenkého klienta. Často sa stretávam s ostrieľanými užívateľmi Linuxu s tvrdeniami „na serveri je len príkazový riadok a neplánujem podrobnejšie študovať grafiku, pretože to všetko potrebuje bežní používatelia“. Ale aj odborníci na Linux sú veľmi prekvapení a šťastní, keď objavia možnosť „-X“ pre príkaz ssh (a preto je užitočné pochopiť fungovanie a funkcie X servera).
Zdroj
Už takmer 15 rokov učím kurzy Linuxu na "Sieťová akadémia LANIT„a som si istý, že mnohí z viac ako päťtisíc ľudí, ktorých som vyškolil, čítajú a pravdepodobne píšu články o Habrovi. Kurzy sú vždy veľmi intenzívne (priemerné trvanie kurzu je päť dní), musíte pokryť témy, ktoré si vyžadujú aspoň desať dní na úplné pochopenie. A vždy v priebehu kurzu, v závislosti od publika (začiatočníci alebo ostrieľaní administrátori), ako aj podľa „otázok z publika“ si vyberám, čo povedať podrobnejšie a čo povrchnejšie, aby som sa tomu venoval viac. čas na pomocné programy príkazového riadku a ich praktické využitie. Takýchto tém, ktoré si vyžadujú trochu obety, je dosť. Sú to „História Linuxu“, „Rozdiely v distribúciách Linuxu“, „O licenciách: GPL, BSD, ...“, „O grafických a desktopových prostrediach“ (téma tohto článku) atď. Nie že by neboli dôležité, ale zvyčajne je oveľa viac naliehavých otázok „tu a teraz“ a len asi päť dní... Pre všeobecné pochopenie základov OS Linux však pochopenie dostupnej rozmanitosti (takže aj pri použití jedného konkrétneho Linuxová distribúcia, stále máte širší pohľad na celý tento obrovský a obrovský svet, ktorý sa nazýva „Linux“), štúdium týchto tém je užitočné a potrebné.
Ako článok postupuje, poskytujem odkazy pre každý komponent pre tých, ktorí sa chcú ponoriť hlbšie do témy, napríklad na články Wikipédie (pričom poukazujem na úplnejšiu/užitočnejšiu verziu, ak existujú články v angličtine a ruštine).
Pre základné príklady a screenshoty som použil distribúciu openSUSE. Dalo by sa použiť akúkoľvek inú distribúciu vyvinutú komunitou, pokiaľ bolo v úložisku veľké množstvo balíkov. Je ťažké, ale nie nemožné, demonštrovať rôznorodosť dizajnov desktopov na komerčnej distribúcii, pretože často používajú len jedno alebo dve z najznámejších desktopových prostredí. Týmto spôsobom vývojári zúžia úlohu vydania stabilného, odladeného OS. Na ten istý systém som nainštaloval všetky DM/DE/WM (vysvetlenie týchto pojmov nižšie), ktoré som našiel v úložisku.
Snímky obrazovky s „modrými rámami“ boli urobené na openSUSE.
Urobil som snímky obrazovky s „bielymi rámami“ na iných distribúciách, sú uvedené na snímke obrazovky.
Snímky obrazovky so „sivými rámami“ boli prevzaté z internetu ako príklady návrhov pracovnej plochy z minulých rokov.
Takže, začnime.
Hlavné komponenty, ktoré tvoria grafiku
Vyzdvihnem tri hlavné komponenty a uvediem ich v poradí, v akom sa spúšťajú pri štarte systému:
DM (Správca zobrazenia);
Display Server;
DE (Desktop Environment).
Okrem toho, dôležité podčlánky prostredia pracovnej plochy:
Môžete tiež spomenúť Fly-DM (používaný v AstraLinux).
Zoznam existujúcich DM je aktualizovaný v Wiki článok.
Stojí za zmienku, že nasledujúce snímky obrazovky používajú rovnaký správca zobrazenia LightDM, ale v rôznych distribúciách (názvy distribúcií sú uvedené v zátvorkách). Pozrite sa, ako odlišne môže tento DM vyzerať vďaka práci dizajnérov z rôznych distribúcií.
Hlavná vec v tejto rozmanitosti je objasniť, že existuje aplikácia, ktorá je zodpovedná za spustenie grafiky a umožňuje používateľovi prístup k tejto grafike, a existujú rôzne implementácie tejto aplikácie, ktoré sa líšia vzhľadom a mierne funkčnosťou (výber návrhové prostredia, výber používateľov, verzia pre zle vidiacich používateľov, dostupnosť vzdialeného prístupu cez protokol XDMCP).
Display Server
Display Server je druh grafického základu, ktorého hlavnou úlohou je pracovať s grafickou kartou, monitorom a rôznymi vstupnými zariadeniami (klávesnica, myš, touchpady). To znamená, že aplikácia (napríklad prehliadač alebo textový editor), ktorá je vykreslená v „grafike“, nemusí vedieť priamo pracovať so zariadeniami, ani nemusí vedieť o ovládačoch. O toto všetko sa postará X Window.
Keď sa hovorí o Display Server, mnoho rokov v Linuxe, a dokonca aj v Unixe, bola myslená aplikácia Systém X Window alebo v bežnej reči X (X).
X je pod OS Windows (potrebné na spustenie grafických aplikácií na diaľku, napríklad pomocou PuTTY).
Najprv si spustíme X a niekoľko grafických aplikácií v nich.
Workshop „spustenie X a aplikácií v ňom“
Urobím všetko od novo vytvoreného používateľa webinaruser (bolo by jednoduchšie, ale nie bezpečnejšie, robiť všetko ako root).
Keďže X potrebuje prístup k zariadeniam, dávam prístup: Zoznam zariadení bol určený na základe chýb pri spustení X v protokole (/home/webinaruser/.local/share/xorg/Xorg.77.log)
Možnosti: * -retro - spustí sa so „šedým“ klasickým pozadím a nie s čiernym ako predvoleným; * :77 - nastavil som (možné je akékoľvek v rozumnom rozsahu, len :0 je s najväčšou pravdepodobnosťou už obsadené už spustenou grafikou) číslo obrazovky, vlastne nejaký jedinečný identifikátor, podľa ktorého bude možné rozlíšiť niekoľko bežiacich X; * vt8 - označuje terminál, tu /dev/tty8, na ktorom sa budú zobrazovať X).
Spustite grafickú aplikáciu:
Aby sme to urobili, najprv nastavíme premennú, podľa ktorej aplikácia pochopí, ktoré z X mám spustených na odoslanie toho, čo treba nakresliť:
% export DISPLAY=":77"
Zoznam spustených X si môžete pozrieť takto:
ps -fwwC X
Po nastavení premennej môžeme v našich X spúšťať aplikácie - napríklad spustím hodiny:
% xclock -update 1 &
% xcalc &
% xeyes -g 200x150-300+50 &
Hlavné myšlienky a závery z tohto fragmentu:
X potrebujú prístup k zariadeniam: terminál, grafická karta, vstupné zariadenia,
Samotné X nezobrazujú žiadne prvky rozhrania - je to sivé (ak je s možnosťou „--retro“) alebo čierne plátno určitých veľkostí (napríklad 1920 x 1080 alebo 1024 x 768), aby sa v ňom spúšťali grafické aplikácie.
Pohyb „kríža“ ukazuje, že X sledujú polohu myši a prenášajú tieto informácie do aplikácií, ktoré sú v nej spustené.
X tiež zachytávajú stlačenie klávesov na klávesnici a prenášajú tieto informácie do aplikácií.
Premenná DISPLAY hovorí grafickým aplikáciám, na ktorej obrazovke (každé X sa pri spustení spúšťa s jedinečným číslom obrazovky), a teda v ktorej z tých, ktoré bežia na mojom počítači, bude potrebné vykresliť X. (V tejto premennej je tiež možné špecifikovať vzdialený počítač a odoslať výstup na Xs bežiace na inom počítači v sieti.) Keďže X boli spustené bez voľby -auth, nie je potrebné zaoberať sa premennou XAUTHORITY alebo xhost príkaz.
Grafické aplikácie (alebo ako ich X klienti nazývajú) sú vykresľované v X - bez možnosti ich posúvania/zatvárania/zmeny „-g (Width)x(Height)+(OffsetFromLeftEdge)+(OffsetFromTopEdge)“. So znamienkom mínus sprava a od spodného okraja.
Dva pojmy, ktoré stoja za zmienku: X-server (tak sa nazývajú X) a X-klienti (tak sa nazýva každá grafická aplikácia, ktorá beží v X). V chápaní tejto terminológie je trochu zmätok, mnohí ju chápu presne naopak. V prípade, že sa pripojím z „klientskeho stroja“ (v terminológii vzdialeného prístupu) k „serveru“ (v terminológii vzdialeného prístupu), aby som na svojom monitore zobrazil grafickú aplikáciu zo servera, potom sa X server spustí na stroj, na ktorom sa monitor (to znamená na „klientskom stroji“, nie na „serveri“) a X klientov spúšťajú a bežia na „serveri“, hoci sú zobrazené na monitore „klientského stroja“.
DE komponenty
Ďalej sa pozrime na komponenty, ktoré zvyčajne tvoria pracovnú plochu.
DE komponenty: tlačidlo Štart a panel úloh
Začnime s takzvaným tlačidlom „Štart“. Často ide o samostatný applet používaný v „Paneli úloh“. Väčšinou je tam aj applet na prepínanie medzi spustenými aplikáciami.
Po pohľade na rôzne desktopové prostredia by som takéto aplikácie zhrnul pod všeobecným názvom „Apps Manager (Launcher/Switcher)“, teda nástroj na správu aplikácií (spúšťanie a prepínanie medzi spustenými), a tiež označil pomocné programy, ktoré sú príklad tohto typu aplikácie.
Dodáva sa vo forme tlačidla „Štart“ na klasickom (celá dĺžka jedného z okrajov obrazovky) „Panel úloh“:
Môžete mať aj samostatný „panel úloh v tvare MacOS“ (nie po celej dĺžke okraja obrazovky), hoci mnohé panely úloh sa môžu zobraziť v oboch štýloch. Tu je hlavný rozdiel skôr čisto vizuálny - prítomnosť „efektu zväčšenia piktogramov pri vznášaní sa“.
○ docky,
○ latte-dock,
○ káhirský dok,
○ doska.
A/alebo služba, ktorá spúšťa aplikácie, keď stlačíte klávesové skratky (v mnohých desktopových prostrediach je potrebný podobný komponent a umožňuje vám nakonfigurovať si vlastné klávesové skratky):
○ sxhkd.
Existujú aj rôzne „spúšťače“ podobné menu (z anglického Launch (spustenie)):
Uvediem aj “staré WM s DE prvkami”. Tie. okrem správcu okien majú prvky ako tlačidlo “Štart” a “Taskbar”, ktoré sú typické skôr pre plnohodnotné DE. Aj keď, aké sú „staré“, ak IceWM aj WindowMaker už vydali svoje aktualizované verzie v roku 2020. Ukazuje sa, že správnejšie nie je „starý“, ale „starobylý“:
Okrem „klasických“ („správcov stohových okien“) stojí za osobitnú zmienku dlaždice WM, ktorý umožňuje umiestniť okná „dlaždicovo“ na celú obrazovku, ako aj pre niektoré aplikácie samostatnú plochu pre každú spustenú aplikáciu na celú obrazovku. Je to trochu nezvyčajné pre ľudí, ktorí ich predtým nepoužívali, ale keďže ja sám používam takéto rozhranie už pomerne dlho, môžem povedať, že je to celkom pohodlné a rýchlo si na takéto rozhranie zvyknete, „klasické“ správcovia okien sa už nezdajú byť pohodlné.
Projekt stojí za zmienku aj samostatne Compiz a taký koncept ako „Composite Window Manager“, ktorý využíva možnosti hardvérovej akcelerácie na zobrazenie priehľadnosti, tieňov a rôznych trojrozmerných efektov. Asi pred 10 rokmi nastal rozmach 3D efektov na desktopoch Linuxu. V súčasnosti mnoho správcov okien zabudovaných do DE čiastočne využíva kompozitné schopnosti. Nedávno sa objavil Wayfire - produkt s podobnou funkcionalitou ako Compiz for Wayland.
Za zmienku stoja aj nasledujúce komponenty pracovnej plochy (tu používam zavedené anglické výrazy na opis typu aplikácie – nejde o názvy samotných aplikácií):
Applety:
Softvér (Widget toolkit) – s prostredím sa často dodáva určitá „minimálna sada“ softvéru:
Z vyššie uvedených komponentov sa získa takzvané „Desktop Design Environment“. Často sú všetky jeho komponenty vyvinuté pomocou rovnakých grafických knižníc a s použitím rovnakých princípov dizajnu. Minimálne sa tak zachová všeobecný štýl vzhľadu aplikácií.
Tu môžeme zdôrazniť nasledujúce aktuálne existujúce desktopové prostredia:
Existujú dokonca aj také zaujímavé príklady z histórie: v rokoch 2003-2007 bol vytvorený „3D desktop design“ pre Linux s názvom „Project Looking Glass“ od Sun. Sám som túto pracovnú plochu používal, respektíve som sa s ňou „hral“, keďže bola náročná na používanie. Tento „3D dizajn“ bol napísaný v jazyku Java v čase, keď neexistovali žiadne grafické karty s podporou 3D. Všetky efekty teda prepočítaval procesor a počítač musel byť veľmi výkonný, inak všetko fungovalo pomaly. Ale vyšlo to krásne. Trojrozmerné aplikačné dlaždice je možné otáčať/rozťahovať. Otáčať sa dalo vo valci pracovnej plochy s tapetou z 360-stupňovej panorámy. Bolo tam niekoľko krásnych aplikácií: napríklad počúvanie hudby vo forme „výmena CD“ atď. Môžete si to pozrieť na YouTube video o tomto projekte bude s najväčšou pravdepodobnosťou slabá len kvalita týchto videí, keďže v tých rokoch nebolo možné nahrávať videá vo vysokej kvalite.
Ľahká pracovná plocha. Projekt existuje pomerne dlho, od roku 1996. V posledných rokoch je pomerne populárny, na rozdiel od ťažšieho KDE a GNOME, v mnohých distribúciách, ktoré vyžadujú ľahké a „klasické“ rozhranie pracovnej plochy. Má veľa nastavení a veľké množstvo vlastných programov: terminál (xfce4-terminal), správca súborov (thunar), prehliadač obrázkov (ristretto), textový editor (mousepad).
Používa sa v distribúcii Elementary OS. Tu môžeme povedať, že existujú „desktopy“, ktoré sa vyvíjajú a používajú v rámci jednej samostatnej distribúcie a v iných distribúciách sa príliš nepoužívajú (ak sa „nepoužívajú vôbec“). Aspoň si zatiaľ nezískali obľubu a presvedčili väčšinu publika o výhodách svojho prístupu. Cieľom Pantheonu je vytvoriť rozhranie podobné macOS.
Silné zameranie na grafické efekty a widgety (z čias, keď iné desktopové prostredia nemali desktopové widgety ako kalendár/hodiny). Používa svoje vlastné knižnice. Existuje veľká sada vlastných „krásnych“ aplikácií: terminál (Terminológia), prehrávač videa (Rage), prehliadač obrázkov (Ephoto).
Spočiatku „klasické“ desktopové rozhranie, vytvorené na rozdiel od KDE, ktoré bolo napísané v knižnici QT, v tom čase distribuované pod licenciou, ktorá nebola príliš vhodná pre komerčné distribúcie.
Od tretej verzie začalo GNOME prichádzať s GNOME Shell, ktorý má „neklasický vzhľad“, ktorý sa nepáčil všetkým používateľom (akékoľvek náhle zmeny v rozhraniach sú pre používateľov ťažké akceptovať). V dôsledku toho sa objavili projekty vidlice, ktoré pokračujú vo vývoji tohto desktopu v „klasickom“ štýle: MATE a Cinnamon. Štandardne sa používa v mnohých komerčných distribúciách. Má veľké množstvo nastavení a vlastných aplikácií.
Vznikol z GNOME2 a pokračuje vo vývoji tohto dizajnového prostredia. Má veľké množstvo nastavení a aplikačných vidlíc, ktoré boli použité v GNOME2 (používajú sa nové názvy), aby nedošlo k zámene vidlíc s ich novou verziou pre GNOME3).
Rozhranie „klasického“ štýlu GNOME, ktoré bolo vyvinuté ako súčasť distribúcie Solus, ale teraz prichádza aj ako samostatná pracovná plocha na rôznych iných distribúciách.
KDE_Plasma (alebo ako sa to často nazýva, jednoducho KDE)
Desktopové prostredie vyvinuté projektom KDE.
Jednoduchému používateľovi má k dispozícii obrovské množstvo nastavení z grafického rozhrania a množstvo grafických aplikácií vyvinutých v rámci tohto desktopu.
V roku 2008 KDE vydalo svoju novú implementáciu KDE Plasma (počítačový engine bol značne prepísaný). Rovnako ako v prípade GNOME/MATE sa to nepáčilo všetkým fanúšikom KDE. V dôsledku toho sa objavila vetva projektu, ktorá pokračovala vo vývoji predchádzajúcej verzie s názvom TDE (Trinity Desktop Environment).
Jedno z nových desktopových prostredí napísané pomocou Qt (na ktorom je napísané KDE). Má veľa nastavení a je celkom krásny (aj keď ide o subjektívny koncept) a dobre vyvinuté rozhranie. Vyvinutý ako súčasť distribúcie Deepin Linux. Existujú aj balíčky pre iné distribúcie
lietať
Príklad desktopového prostredia napísaného pomocou Qt. Vyvinutý ako súčasť distribúcie Astra Linux.
Odľahčené desktopové prostredie. Rovnako ako niekoľko predchádzajúcich príkladov, napísaných pomocou Qt. V skutočnosti ide o pokračovanie projektu LXDE a výsledok fúzie s projektom Razor-qt.
Ako vidíte, pracovná plocha v systéme Linux môže vyzerať veľmi odlišne a existuje vhodné rozhranie pre vkus každého: od veľmi krásneho a s 3D efektmi po minimalistické, od „klasických“ po nezvyčajné, od aktívneho využívania systémových prostriedkov po ľahké, od veľkých obrazoviek na tablety/smartfóny.
No, rád by som dúfal, že som mohol poskytnúť predstavu o tom, aké sú hlavné komponenty grafiky a pracovnej plochy v OS Linux.
Materiál pre tento článok bol testovaný v júli 2020 na webinári. Môžete to sledovať tu.
To je všetko. Dúfam, že to bolo užitočné. Ak máte nejaké otázky alebo pripomienky, napíšte. rád odpoviem. No príďte a študujte "LANIT Network Academy"!