ProHoster > Blog > podávání > Jak funguje grafika v Linuxu: přehled různých desktopových prostředí
Jak funguje grafika v Linuxu: přehled různých desktopových prostředí
Tento článek je o tom, jak grafika Linuxu funguje a z jakých komponent se skládá. Obsahuje mnoho screenshotů různých implementací desktopových prostředí.
Pokud mezi KDE a GNOME nemáte velký rozdíl, nebo ano, ale rádi byste věděli, jaké jsou další alternativy, pak je tento článek určen právě vám. Je to přehled, a přestože má mnoho názvů a málo pojmů, materiál bude užitečný i pro začátečníky, kteří se teprve zaměřují na Linux.
Téma může zajímat i pokročilé uživatele při nastavování vzdáleného přístupu a při implementaci tenkého klienta. Často se setkávám s poměrně ostřílenými linuxoidy s výroky „na serveru je pouze příkazový řádek a grafiku nemám v plánu podrobněji studovat, protože to je pro běžné uživatele vše potřebné“. Ale i znalci Linuxu jsou překvapeni a rádi, když objeví volbu "-X" pro příkaz ssh (a proto je užitečné porozumět provozu a funkcím X serveru).
Zdroj
Kurzy Linuxu vyučuji téměř 15 let na "Síťová akademie LANIT„A jsem si jistý, že mnoho z těch více než pěti tisíc lidí, které jsem vyškolil, čte a pravděpodobně píše články o Habrovi. Kurzy jsou vždy velmi nabité (průměrná délka kurzu je pět dní), je potřeba mluvit o tématech, která vyžadují alespoň deset dní pro úplné seznámení. A vždy v průběhu kurzu, v závislosti na publiku (začátečníci nebo ostřílení administrátoři), i na „dotazy z publika“ vybírám, co sdělit podrobněji a co je povrchnější, abych tomu věnoval více času k utilitám příkazového řádku a jejich praktické aplikaci . Takových témat, kterým se musí trochu obětovat, je dost. Jsou to „Historie Linuxu“, „Rozdíly v distribucích Linuxu“, „O licencích: GPL, BSD, …“, „O grafických a desktopových prostředích“ (téma tohoto článku) atd. Ne že by nebyly důležité, ale většinou je tam mnohem relevantnějších otázek „tady a teď“ a jen nějakých pět dní... Nicméně pro obecné pochopení základů OS Linux je potřeba pochopení dostupné rozmanitosti (takže i při použití jedné konkrétní linuxové distribuce , stále mají širší pohled na celý tento obrovský a obrovský svět, který se nazývá „Linux“), je užitečné a nutné tato témata studovat.
V celém článku pro každou komponentu uvádím odkazy pro ty, kteří se chtějí ponořit hlouběji do tématu, například na články Wikipedie (přičemž odkazuji na úplnější / užitečnější verzi, pokud existují články v angličtině a ruštině).
Pro základní příklady a snímky obrazovky jsem použil distribuci openSUSE. Bylo možné použít jakoukoli jinou komunitně vyvinutou distribuci s velkým počtem balíčků v úložišti. Je obtížné, ale možné, demonstrovat rozmanitost desktopových designů na komerční distribuci, protože často používají pouze jedno nebo dvě ze známějších desktopových prostředí. Vývojáři tedy zúžili úkol vydat stabilní, odladěný OS. Na stejný systém jsem nainstaloval všechny DM / DE / WM (vysvětlení těchto pojmů níže), které jsem našel v úložišti.
Snímky obrazovky s „modrými rámečky“ jsou právě pořízeny na openSUSE.
Screenshoty s "bílými rámečky" byly pořízeny na jiných distribucích, jsou uvedeny na snímku obrazovky.
Screenshoty s „šedými okraji“ byly převzaty z internetu jako příklady designů stolních počítačů z minulých let.
Pojďme tedy začít.
Hlavní komponenty, které tvoří grafiku
Vyberu tři hlavní součásti a uvedu je v pořadí, v jakém se spouštějí při startu systému:
DM (Správce zobrazení);
zobrazovací server;
DE (Desktop Environment).
Kromě toho jako důležité podpoložky prostředí Desktop:
Seznam stávajících DM je průběžně aktualizován Wiki článek.
Stojí za zmínku, že následující snímky obrazovky používají stejný správce zobrazení LightDM, ale v různých distribucích (názvy distribucí jsou v závorkách). Podívejte se, jak odlišně může tento DM vypadat díky práci designérů různých distribucí.
Hlavní věc v této rozmanitosti je objasnit, že existuje aplikace, která je zodpovědná za spouštění grafiky a umožňuje uživateli přístup k této grafice, a existují různé implementace této aplikace, které se liší vzhledem a některými funkcemi (volba designu prostředí, výběr uživatelů, verze pro špatně vidící uživatele, možnost vzdáleného přístupu přes protokol XDMCP).
Display Server
Display Server je druh grafického základu, jehož hlavním úkolem je pracovat s grafickou kartou, monitorem a různými vstupními zařízeními (klávesnice, myš, touchpady). To znamená, že aplikace (například prohlížeč nebo textový editor), která je vykreslena v „grafice“, nemusí umět přímo pracovat se zařízeními, nemusí znát ovladače. O vše se postará X Window.
Když se mluví o Display Serveru, po mnoho let v Linuxu a Unixu to znamenalo aplikaci Systém X Window nebo u prostých lidí X (X).
X je pod OS Windows (vyžadováno pro vzdálené spouštění grafických aplikací, například pomocí PuTTY).
Nejprve si spustíme X a pár grafických aplikací v nich.
Cvičení „spouštění X a aplikací v něm“
Vše udělám od nově vytvořeného uživatele webinaruseru (bylo by jednodušší, ale ne bezpečnější dělat vše od roota).
Protože H'am potřebuje přístup k zařízením, dávám přístup: Seznam zařízení jsem určil tak, že jsem se podíval na chyby při spouštění X v protokolu (/home/webinaruser/.local/share/xorg/Xorg.77.log)
Možnosti: * -retro - začít s "šedým" klasickým pozadím, nikoli s černým jako výchozí; * :77 - Nastavil jsem (možné je jakékoli v rozumném rozsahu, pouze :0 je s největší pravděpodobností již obsazeno již běžící grafikou) číslo obrazovky, nějaký skutečný jedinečný identifikátor, podle kterého bude možné rozlišit několik běžících X; * vt8 - určuje terminál, zde /dev/tty8, na kterém se budou zobrazovat X).
Spuštění grafické aplikace:
Abychom to provedli, nejprve nastavíme proměnnou, podle které aplikace pochopí, které z X mám spuštěných, aby odeslalo, co je třeba nakreslit:
% export DISPLAY=":77"
Seznam běžících X můžete vidět takto:
ps -fwwC X
Po nastavení proměnné můžeme spouštět aplikace v našich X - například spouštím hodiny:
% xclock -update 1 &
% xcalc &
% xeyes -g 200x150-300+50 &
Hlavní myšlenky a závěry z tohoto fragmentu:
X potřebují přístup k zařízením: terminál, grafická karta, vstupní zařízení,
Samotné X nezobrazují žádné prvky rozhraní – je to šedé (pokud je s volbou „--retro“) nebo černé plátno určitých velikostí (například 1920 × 1080 nebo 1024 × 768), aby se v něm spouštěly grafické aplikace.
Pohyb "kříže" ukazuje, že X sledují polohu myši a předávají tyto informace aplikacím, které v ní běží.
Také X zachytí úhozy na klávesnici a předá tyto informace aplikacím.
Proměnná DISPLAY říká grafickým aplikacím, na které obrazovce (každé X se spouští s jedinečným číslem obrazovky při spuštění), a tedy které z těch, které běží na mém počítači, mají kreslit X. (Tuto proměnnou je také možné nastavit na vzdálený počítač a odeslat výstup na Xs běžící na jiném počítači v síti.) Protože Xs byly spuštěny bez volby -auth, není třeba se zabývat proměnnou XAUTHORITY nebo xhost příkaz.
Grafické aplikace (nebo jak je nazývají X-klienti) se kreslí v X - zatímco bez možnosti je posouvat / zavírat / měnit "-g (Width)x(Height)+(ShiftFromLeftEdge)+(ShiftFromTopEdge)". Se znaménkem mínus, respektive zprava a od spodního okraje.
Dva pojmy, které stojí za zmínku, jsou X server (jak se X nazývá) a X klienti (jak se nazývá jakákoli grafická aplikace běžící v X). V chápání této terminologie je trochu zmatek, mnozí ji chápou přesně naopak. V případě, že se připojím z „klientského stroje“ (v terminologii vzdáleného přístupu) k „serveru“ (v terminologii vzdáleného přístupu) za účelem zobrazení grafické aplikace ze serveru na mém monitoru, spustí se X server na stroj, kde se monitor (to znamená na "klientském stroji", nikoli na "serveru") a X klientů spouští a běží na "serveru", ačkoli jsou zobrazeni na monitoru "klientského stroje".
DE komponenty
Dále budeme analyzovat komponenty, které obvykle tvoří pracovní plochu.
Komponenty DE: Tlačítko Start a Hlavní panel
Začněme tzv. tlačítkem „Start“. Často se jedná o samostatný applet používaný na "Taskbar". Obvykle nechybí ani applet pro přepínání mezi spuštěnými aplikacemi.
Po prohlédnutí různých desktopových prostředí bych takové aplikace shrnul pod obecný název „Apps Manager (Launcher / Switcher)“, tedy nástroj pro správu aplikací (spouštění a přepínání mezi běžícími), a také označil utility, které jsou příklad aplikace tohoto typu.
Děje se tak ve formě tlačítka "Start" na klasickém (po celé délce jednoho z okrajů obrazovky) "Hlavním panelu":
Můžete také zvýraznit „hlavní panely ve tvaru MacOS“ samostatně (ne po celé délce okraje obrazovky), i když se v obou může objevit mnoho hlavních panelů. Zde je hlavní rozdíl spíše čistě vizuální - přítomnost „efektu přibývajících ikon při vznášení“.
○ dok,
○ latte dock,
○ káhirský dok,
○ prkno.
A / Nebo služba, která spouští aplikace po stisknutí klávesových zkratek (v mnoha desktopových prostředích je podobná komponenta nutně přítomna a umožňuje vám nakonfigurovat vlastní klávesové zkratky):
○ sxhkd.
Existují také různé „spouštěče“ ve tvaru menu (z angl. Launch (run)):
Dále uvedu "staré WM s DE prvky". Tito. kromě správce oken mají prvky jako tlačítko Start a Hlavní panel, které jsou více vlastní plnohodnotnému DE. I když jak jsou „staré“, pokud IceWM i WindowMaker již vydaly své aktualizované verze v roce 2020. Ukazuje se, že správnější je ne „staří“, ale „starodávní“:
Kromě „klasických“ („stack window managers“) stojí za zmínku samostatně kachlová WM, který umožňuje dlaždicové uspořádání oken přes celou obrazovku a u některých aplikací samostatnou plochu pro každou spuštěnou aplikaci na celou obrazovku. To je trochu neobvyklé pro lidi, kteří je dosud nepoužívali, ale protože já sám takové rozhraní používám poměrně dlouho, mohu říci, že je to docela pohodlné a rychle si na takové rozhraní zvyknete, po kterém „klasičtí“ správci oken se nezdají být pohodlné.
Za zmínku stojí také samostatně projekt Compiz a takový koncept jako „Composite Window Manager“, který využívá schopnosti hardwarové akcelerace k zobrazení průhlednosti, stínů a různých trojrozměrných efektů. Asi před 10 lety došlo k rozmachu 3D efektů na linuxových desktopech. Nyní mnoho správců oken zabudovaných do DE používá některé z funkcí skládání. Nedávno se objevilo Wayfire - produkt s podobnou funkčností Compiz pro Wayland.
Podrobný seznam různých správců oken lze nalézt také na srovnávací článek.
DE komponenty: zbytek
Za zmínku také stojí následující součásti desktopu (zde používám pro popis typu aplikace anglické ustálené termíny - nejedná se o názvy samotných aplikací):
Applety:
Software (Widget toolkit) – s prostředím je často dodávána určitá „minimální sada“ softwaru:
Z výše uvedených komponent se získá tzv. „Desktop Environment“. Často jsou všechny jeho součásti vyvíjeny pomocí stejných grafických knihoven a za použití stejných principů návrhu. Tím je alespoň zachován společný styl vzhledu aplikací.
Zde můžeme zdůraznit následující aktuálně existující desktopová prostředí:
Existují dokonce i takové zajímavé příklady z historie: v letech 2003-2007 byl vytvořen „3D desktop design“ pro Linux s názvem „Project Looking Glass“ od společnosti Sun. Sám jsem tuto plochu používal, nebo spíše „hrál“, protože se těžko používal. Tento „3D skin“ byl napsán v Javě v době, kdy ještě neexistovaly 3D grafické karty. Všechny efekty proto přepočítával procesor a počítač musel být hodně výkonný, jinak vše fungovalo pomalu. Ale vyšlo to krásně. Dlaždice 360D aplikace lze otáčet/roztahovat. Ve válci plochy s tapetou bylo možné otáčet z XNUMXstupňového panoramatu. Bylo tam několik krásných vlastních aplikací: například poslech hudby ve formě “CD měniče” atd. Můžete se podívat na youtube видео o tomto projektu bude s největší pravděpodobností špatná pouze kvalita těchto videí, protože v těch letech nebylo možné nahrávat videa ve vysoké kvalitě.
Lehká pracovní plocha. Projekt existuje již dlouhou dobu, od roku 1996. V posledních letech poměrně populární, na rozdíl od těžšího KDE a GNOME, na mnoha distribucích, které vyžadují lehké a „klasické“ rozhraní pro desktop. Má mnoho nastavení a velké množství svých programů: terminál (xfce4-terminal), správce souborů (thunar), prohlížeč obrázků (ristretto), textový editor (mousepad).
Používá se v distribuci Elementary OS. Zde můžeme říci, že existují „desktopy“, které jsou vyvíjeny a používány v rámci jedné samostatné distribuce a v jiných distribucích se příliš nepoužívají (pokud se „nepoužívají vůbec“). Alespoň si zatím nezískali oblibu a velkou část publika nepřesvědčili o výhodách svého přístupu. Pantheon si klade za cíl vytvořit rozhraní podobné macOS.
Silné zaměření na grafické efekty a widgety (od dob, kdy jiná desktopová prostředí neměla widgety na ploše, jako kalendář/hodiny). Používá vlastní knihovny. Existuje velká množina jeho "krásných" aplikací: terminál (Terminologie), přehrávač videa (Rage), prohlížeč obrázků (Ephoto).
Zpočátku „klasické“ desktopové rozhraní, vytvořené v opozici vůči KDE, které bylo napsáno na knihovně QT, v té době distribuované pod licencí, která nebyla příliš vhodná pro komerční distribuce.
Od třetí verze GNOME se GNOME začalo dodávat s GNOME Shell, který má „neklasický vzhled“, který se nelíbil všem uživatelům (jakékoli náhlé změny rozhraní jsou pro uživatele těžko akceptovatelné). V důsledku toho - vznik fork projektů, které pokračují ve vývoji tohoto desktopu v "klasickém" stylu: MATE a Cinnamon. Standardně se používá v mnoha komerčních distribucích. Má velké množství nastavení a svých aplikací.
Objevilo se na základě GNOME2 a pokračuje ve vývoji tohoto prostředí. Má velké množství vylepšení a forků aplikací, které byly použity v GNOME2 (nové názvy jsou použity, aby nedošlo k záměně forků s jejich novou verzí pro GNOME3).
"Klasický" styl fork GNOME, který se vyvinul jako součást distribuce Solus, ale nyní přichází také jako samostatný desktop na různých jiných distribucích.
V roce 2008 KDE vydalo svou novou implementaci KDE Plasma (desktopový engine byl silně přepsán). Stejně jako u GNOME/MATE se to nelíbilo všem fanouškům KDE. V důsledku toho se objevil fork projektu, který navazoval na vývoj předchozí verze, nazvaný TDE (Trinity Desktop Environment).
Jedno z novějších desktopových prostředí napsané pomocí Qt (na kterém je napsáno KDE). Má mnoho nastavení a poměrně krásné (ačkoli je to subjektivní koncept) a dobře propracované rozhraní. Vyvinutý jako součást distribuce Deepin Linux. Existují také balíčky pro jiné distribuce.
Létat
Příklad desktopového prostředí napsaného pomocí Qt. Vyvinutý jako součást distribuce Astra Linux.
Odlehčené desktopové prostředí. Stejně jako několik předchozích příkladů napsaných pomocí Qt. Ve skutečnosti jde o pokračování projektu LXDE a výsledek fúze s projektem Razor-qt.
Jak vidíte, linuxová plocha může vypadat velmi odlišně a existuje vhodné rozhraní pro vkus každého: od velmi krásného a s 3D efekty po minimalistické, od „klasických“ po neobvyklé, od systémově náročných po lehké, od velkých obrazovek po tablety/smartphony.
No, rád bych doufal, že se mi podařilo dát představu o tom, jaké jsou hlavní součásti grafiky a desktopu v OS Linux.
Materiál pro tento článek byl testován v červenci 2020 na webináři. Dá se to prohlížet zde.
To je vše. Doufám, že to bylo užitečné. Pokud máte nějaké dotazy a připomínky, napište. rád odpovím. Tak pojď a studuj Síťová akademie LANIT!