Sådan fungerer grafik i Linux: en oversigt over de forskellige skrivebordsmiljøer

Denne artikel handler om, hvordan Linux-grafik fungerer, og hvilke komponenter det består af. Den har mange skærmbilleder af forskellige implementeringer af skrivebordsmiljøer. 

Hvis du ikke har den store forskel mellem KDE og GNOME, eller hvis du har, men gerne vil vide, hvilke andre alternativer er, så er denne artikel noget for dig. Det er et overblik, og selvom det har mange navne og få termer, vil materialet også være nyttigt for begyndere og bare søger mod Linux.

Emnet kan også være interessant for avancerede brugere ved opsætning af fjernadgang og ved implementering af en tynd klient. Jeg møder ofte ret erfarne Linuxoider med udsagn "på serveren er der kun en kommandolinje, og jeg har ikke tænkt mig at studere grafikken mere detaljeret, da det hele er nødvendigt for almindelige brugere." Men selv Linux-kendere er overraskede og glade for at opdage "-X"-muligheden for ssh-kommandoen (og til dette er det nyttigt at forstå driften og funktionerne på X-serveren).

Sådan fungerer grafik i Linux: en oversigt over de forskellige skrivebordsmiljøerKilde

Jeg har undervist i Linux-kurser i næsten 15 år på "Netværksakademi LANIT”Og jeg er sikker på, at mange af de mere end fem tusinde mennesker, som jeg har trænet, læser og sandsynligvis skriver artikler om Habr. Kurserne er altid meget travle (den gennemsnitlige varighed af kurset er fem dage), du skal tale om emner, der kræver mindst ti dage for et fuldt bekendtskab. Og altid i løbet af kurset, afhængigt af publikum (nybegyndere samlet eller garvede administratorer), samt "spørgsmål fra publikum", træffer jeg et valg af, hvad der skal formidles mere detaljeret, og hvad der er mere overfladisk for at bruge mere tid til kommandolinjeværktøjer og deres praktiske anvendelse. Der er nok af den slags emner, der skal ofres lidt. Disse er "Linux historie", "Forskelle i Linux-distributioner", "Om licenser: GPL, BSD, ...", "Om grafik og skrivebordsmiljøer" (emnet for denne artikel) osv. Ikke at de ikke er vigtige, men normalt er der mange flere relevante "her og nu"-spørgsmål og kun omkring fem dage ... Men for en generel forståelse af det grundlæggende i Linux OS, en forståelse af den mangfoldighed, der er til rådighed (så selv at bruge en specifik Linux-distribution , stadig har et bredere syn på hele denne enorme og enorme verden, der kaldes "Linux"), er det nyttigt og nødvendigt at studere disse emner. 

Igennem artiklen, for hver komponent, angiver jeg links for dem, der ønsker at dykke dybere ned i emnet, for eksempel til Wikipedia-artikler (mens jeg peger på en mere komplet / nyttig version, hvis der er engelske og russiske artikler).

Til grundlæggende eksempler og skærmbilleder brugte jeg openSUSE-distributionen. Det var muligt at bruge enhver anden community-udviklet distribution med et stort antal pakker i depotet. Det er svært, men muligt, at demonstrere mangfoldigheden af ​​desktop-designs på en kommerciel distribution, da de ofte kun bruger et eller to af de mere velkendte desktop-miljøer. Så udviklere indsnævrer opgaven med at frigive et stabilt, fejlrettet OS. På det samme system installerede jeg alle DM / DE / WM (en forklaring af disse vilkår nedenfor), som jeg fandt i depotet. 

Skærmbilleder med "blå rammer" er netop taget på openSUSE. 

Skærmbilleder med "hvide rammer" blev lavet på andre distributioner, de er angivet på skærmbilledet. 

Skærmbilleder med "grå kanter" blev taget fra internettet, som eksempler på skrivebordsdesign fra tidligere.

Så lad os begynde.

De vigtigste komponenter, der udgør grafik

Jeg vil fremhæve tre hovedkomponenter og liste dem i den rækkefølge, som de lanceres ved systemstart: 

  1. DM (Display Manager);
  2. display server;
  3. DE (Desktop Environment).

Derudover, som vigtige underpunkter i skrivebordsmiljøet: 

  • Apps Manager/Launcher/Switcher (Start-knap); 
  • WM (Window Manager);
  • diverse software, der følger med skrivebordsmiljøet.

Flere detaljer om hver vare.

DM (Display Manager)

Den første applikation, der starter, når "grafik" starter, er DM (Display Manager), en skærmmanager. Dens hovedopgaver:

  • spørg hvilke brugere der skal lukkes ind i systemet, anmod om godkendelsesdata (adgangskode, fingeraftryk);
  • vælge hvilket skrivebordsmiljø der skal køres.

I øjeblikket er forskellige distributioner meget brugt: 

Listen over eksisterende DM'er holdes ajour i Wiki artikel. 

Sådan fungerer grafik i Linux: en oversigt over de forskellige skrivebordsmiljøer
Sådan fungerer grafik i Linux: en oversigt over de forskellige skrivebordsmiljøer
Sådan fungerer grafik i Linux: en oversigt over de forskellige skrivebordsmiljøer
Sådan fungerer grafik i Linux: en oversigt over de forskellige skrivebordsmiljøer
Det er værd at bemærke, at de følgende skærmbilleder bruger den samme LightDM display manager, men i forskellige distributioner (navnene på distributionerne er i parentes). Tjek hvor anderledes denne DM kan se ud takket være det arbejde, som designerne af forskellige distributioner har udført.

Sådan fungerer grafik i Linux: en oversigt over de forskellige skrivebordsmiljøer
Sådan fungerer grafik i Linux: en oversigt over de forskellige skrivebordsmiljøer
Sådan fungerer grafik i Linux: en oversigt over de forskellige skrivebordsmiljøer
Sådan fungerer grafik i Linux: en oversigt over de forskellige skrivebordsmiljøer
Sådan fungerer grafik i Linux: en oversigt over de forskellige skrivebordsmiljøer
Det vigtigste i denne mangfoldighed er at gøre det klart, at der er en applikation, der er ansvarlig for at lancere grafik og give brugeren adgang til denne grafik, og der er forskellige implementeringer af denne applikation, der adskiller sig i udseende og en vis funktionalitet (valg af design miljøer, valg af brugere, version for dårligt seende brugere, mulighed for fjernadgang via protokollen XDMCP).

Vis server

Display Server er en slags grafisk fundament, hvis hovedopgave er at arbejde med et videokort, en skærm og med forskellige input-enheder (tastatur, mus, touchpads). Det vil sige, at en applikation (for eksempel en browser eller en teksteditor), der gengives i en "grafik", ikke behøver at vide, hvordan man arbejder med enheder direkte, den behøver ikke at vide om drivere. Det hele ordnes af X Window.

Når man taler om Display Server, i mange år i Linux og i Unix, betød det en applikation X Window System eller i almuen X (X). 

Nu erstatter mange distributioner X med Wayland. 

Du kan også læse:

Lad os først køre X'er og et par grafiske applikationer i dem.

Praksis "kør X og applikationer i det"

Jeg vil gøre alt fra den nyoprettede webinaruser-bruger (det ville være nemmere, men ikke sikrere, at gøre alt fra root).

  • Da H'am har brug for adgang til enheder, giver jeg adgang: Jeg fandt listen over enheder ved at se på fejl, da jeg startede X'er i loggen (/home/webinaruser/.local/share/xorg/Xorg.77.log) 

% sudo setfacl -m u:webinaruser:rw /dev/tty8 /dev/dri/card0 /dev/fb0 /dev/input/*

  • Derefter starter jeg X'er:

% X -retro :77 vt8 & 

Indstillinger: * -retro - start med en "grå" klassisk baggrund, ikke sort som standard; * :77 - Jeg indstiller (enhver inden for et rimeligt område er muligt, kun :0 er højst sandsynligt allerede optaget af den allerede kørende grafik) skærmnummer, en faktisk unik identifikator, som det vil være muligt at skelne mellem flere kørende X'er; * vt8 - angiver terminalen, her /dev/tty8, hvor X'er vil blive vist). 

  • Start af den grafiske applikation:

For at gøre dette sætter vi først en variabel, som applikationen vil forstå, hvilke af X'erne jeg har kørende for at sende, hvad der skal tegnes: 

% export DISPLAY=":77" 

Du kan se listen over kørende X'er sådan her: 

ps -fwwC X

Efter at variablen er blevet indstillet, kan vi starte applikationer i vores X'er - for eksempel starter jeg uret:

% xclock -update 1 & 

% xcalc & 

% xeyes -g 200x150-300+50 &

Sådan fungerer grafik i Linux: en oversigt over de forskellige skrivebordsmiljøer
De vigtigste ideer og konklusioner fra dette fragment:

  • X'er har brug for adgang til enheder: terminal, videokort, inputenheder,
  • X'er selv viser ingen grænsefladeelementer - det er en grå (hvis med "--retro"-indstillingen) eller et sort lærred af visse størrelser (for eksempel 1920 × 1080 eller 1024 × 768) til at køre grafiske applikationer i det.
  • Bevægelsen af ​​"korset" viser, at X'y sporer musens position og sender denne information til applikationer, der kører i den.
  • X's fanger også tastetryk på tastaturet og videregiver disse oplysninger til applikationer.
  • DISPLAY-variablen fortæller grafikapplikationer på hvilken skærm (hvert X'er starter med et unikt skærmnummer ved opstart), og dermed hvilke af dem, der kører på min maskine, der skal tegne X'er. (Det er også muligt at indstille denne variabel til en ekstern maskine og sende output til Xs, der kører på en anden maskine på netværket.) Da Xs blev startet uden -auth-indstillingen, er der ingen grund til at håndtere XAUTHORITY-variablen eller xhost kommando.
  • Grafiske applikationer (eller som de kaldes af X-klienter) tegnes i X'er - uden mulighed for at flytte / lukke / ændre dem "-g (Width)x(Height)+(ShiftFromLeftEdge)+(ShiftFromTopEdge)". Med et minustegn henholdsvis fra højre og fra underkant.
  • To udtryk, der er værd at nævne, er X-server (det er det, X'er kaldes) og X-klienter (det er, hvad enhver grafisk applikation, der kører i X'er, kaldes). Der er lidt forvirring i at forstå denne terminologi, mange forstår det præcis det modsatte. I det tilfælde, hvor jeg forbinder fra "klientmaskinen" (i fjernadgangsterminologi) til "serveren" (i fjernadgangsterminologi) for at vise en grafisk applikation fra serveren på min skærm, så starter X-serveren på maskine, hvor monitoren (det vil sige på "klientmaskinen", ikke på "serveren"), og X-klienter starter og kører på "serveren", selvom de vises på monitoren af ​​"klientmaskinen". 

Sådan fungerer grafik i Linux: en oversigt over de forskellige skrivebordsmiljøer

DE komponenter

Dernæst vil vi analysere de komponenter, der normalt udgør skrivebordet.

DE-komponenter: Start-knap og proceslinje

Lad os starte med den såkaldte "Start"-knap. Ofte er dette en separat applet, der bruges på "Proceslinjen". Der er også normalt en applet til at skifte mellem kørende applikationer.

Sådan fungerer grafik i Linux: en oversigt over de forskellige skrivebordsmiljøer
Efter at have set på forskellige skrivebordsmiljøer, vil jeg opsummere sådanne applikationer under det generelle navn "Apps Manager (Launcher / Switcher)", det vil sige et værktøj til at administrere applikationer (starte og skifte mellem kørende), og også angive hjælpeprogrammer, der er en eksempel på en applikation af denne type.

  • Det sker i form af en "Start"-knap på den klassiske (fuld længde af en af ​​skærmens kanter) "Taskbar":

    ○ xfce4-panel,
    ○ makker-panel/nisse-panel,
    ○ vala-panel,
    ○ farvetone2.

  • Du kan også fremhæve "MacOS-formede proceslinjer" separat (ikke i hele længden af ​​skærmens kant), selvom mange proceslinjer kan vises i begge. Her er hovedforskellen snarere rent visuelt - tilstedeværelsen af ​​"effekten af ​​at øge ikoner ved svævning."

    ○ dock,
    ○ latte dock,
    ○ kairo dock,
    ○ planke.

  • Og/eller en tjeneste, der starter applikationer, når der trykkes på genvejstaster (i mange skrivebordsmiljøer er en lignende komponent nødvendigvis til stede og giver dig mulighed for at konfigurere dine egne genvejstaster):

    ○ sxhkd.

  • Der er også forskellige menuformede "launchers" (fra engelsk. Launch (run)):

    ○ dmenu-run,
    ○ rofi -show drun,
    ○ Albert,
    ○ grunge.

Sådan fungerer grafik i Linux: en oversigt over de forskellige skrivebordsmiljøer

DE komponenter: WM (Window Manager)

Læs mere på russisk

Læs mere på engelsk

WM (Window Manager) - en slags applikation, der er ansvarlig for at administrere vinduer, tilføjer muligheden for at:

  • flytte vinduer rundt på skrivebordet (inklusive standarden med at holde Alt-tasten nede for enhver del af vinduet, og ikke kun for titlen);
  • ændre størrelse på vinduer, for eksempel ved at trække "vinduesrammen";
  • tilføjer en "titel (titel)" og knapper til at minimere / maksimere / lukke programmet til vinduesgrænsefladen;
  • konceptet om hvilken applikation der er i "fokus".

Sådan fungerer grafik i Linux: en oversigt over de forskellige skrivebordsmiljøer
Jeg vil liste de mest berømte (jeg angiver i parentes, hvilken DE der bruges som standard):

Sådan fungerer grafik i Linux: en oversigt over de forskellige skrivebordsmiljøer
Jeg vil også liste "gamle WM med DE-elementer". De der. udover vindueshåndteringen har de elementer som Start-knappen og Taskbar, som er mere iboende i fuldgyldigt DE. Selvom de er "gamle", hvis både IceWM og WindowMaker allerede har udgivet deres opdaterede versioner i 2020. Det viser sig, at det er mere korrekt ikke "gamle", men "gamle-timere":

Sådan fungerer grafik i Linux: en oversigt over de forskellige skrivebordsmiljøer
Sådan fungerer grafik i Linux: en oversigt over de forskellige skrivebordsmiljøer
Sådan fungerer grafik i Linux: en oversigt over de forskellige skrivebordsmiljøer
Sådan fungerer grafik i Linux: en oversigt over de forskellige skrivebordsmiljøer
Sådan fungerer grafik i Linux: en oversigt over de forskellige skrivebordsmiljøer
Ud over "klassikeren" ("stack window managers") er det værd at bemærke separat flisebelagt WM, som tillader vinduer at blive flisebelagt på tværs af hele skærmen, og for nogle applikationer et separat skrivebord for hver kørende applikation i fuld skærm. Dette er lidt usædvanligt for folk, der ikke har brugt dem før, men da jeg selv har brugt sådan en grænseflade i ret lang tid, kan jeg sige, at den er ret praktisk og man vænner sig hurtigt til sådan en grænseflade, hvorefter de "klassiske" vinduesadministratorer virker ikke praktiske.

Sådan fungerer grafik i Linux: en oversigt over de forskellige skrivebordsmiljøer
Det er også værd at nævne projektet separat Compiz og sådan et koncept som "Composite Window Manager", der bruger hardwareaccelerationsmulighederne til at vise gennemsigtighed, skygger og forskellige tredimensionelle effekter. For omkring 10 år siden var der et boom i 3D-effekter på Linux-desktops. Nu bruger mange af vinduesadministratorerne indbygget i DE nogle af sammensætningsfunktionerne. For nylig dukkede op Wayfire - et produkt med lignende Compiz-funktionalitet til Wayland.

Sådan fungerer grafik i Linux: en oversigt over de forskellige skrivebordsmiljøer
En detaljeret liste over forskellige vinduesadministratorer kan også findes på  sammenligningsartikel.

DE komponenter: resten

Det er også værd at bemærke følgende desktop-komponenter (her bruger jeg engelske etablerede termer til at beskrive applikationstypen - disse er ikke navnene på selve applikationerne):

  • Applets:
  • Software (Widget-værktøjssæt) - ofte følger et vist "minimalt sæt" software med miljøet:

DE (Desktop-miljø)

Læs mere på engelsk

Fra ovenstående komponenter opnås det såkaldte "Desktop Environment". Ofte er alle dets komponenter udviklet ved hjælp af de samme grafikbiblioteker og ved hjælp af de samme designprincipper. Således opretholdes i det mindste den generelle stil for udseendet af applikationer.

Her kan vi fremhæve følgende eksisterende skrivebordsmiljøer:

GNOME og KDE betragtes som de mest almindelige, og XFCE er i hælene på dem.

Sådan fungerer grafik i Linux: en oversigt over de forskellige skrivebordsmiljøer
Sammenligning af forskellige parametre i form af en tabel kan ses i den tilsvarende Wikipedia artikel.  

Sort DE

Sådan fungerer grafik i Linux: en oversigt over de forskellige skrivebordsmiljøer
Project_Looking_Glass

Der er endda sådanne interessante eksempler allerede fra historien: I 2003-2007 blev der lavet et "3D desktop design" til Linux med navnet "Project Looking Glass" fra Sun. Jeg brugte selv dette skrivebord, eller rettere "spillet", da det var svært at bruge. Denne "3D-skin" blev skrevet i Java på et tidspunkt, hvor der ikke var nogen 3D-grafikkort. Derfor blev alle effekter genberegnet af processoren, og computeren skulle være meget kraftig, ellers fungerede alt langsomt. Men det blev smukt. 360D-applikationsfliser kan roteres/udvides. Det var muligt at rotere i skrivebordscylinderen med tapet fra et XNUMX-graders panorama. Der var flere smukke applikationer af deres egne: for eksempel at lytte til musik i form af en "cd-skifter" osv. Du kan se på youtube видео om dette projekt vil kun kvaliteten af ​​disse videoer højst sandsynligt være dårlig, da det i disse år ikke var muligt at uploade videoer af høj kvalitet.

Sådan fungerer grafik i Linux: en oversigt over de forskellige skrivebordsmiljøer
Xfce

Letvægts skrivebord. Der har været et projekt i lang tid, siden 1996. I de senere år, ret populær, i modsætning til den tungere KDE og GNOME, på mange distributioner, der kræver en let og "klassisk" desktop-grænseflade. Det har mange indstillinger og et stort antal af dets programmer: terminal (xfce4-terminal), filhåndtering (thunar), billedfremviser (ristretto), teksteditor (musemåtte).

 
Sådan fungerer grafik i Linux: en oversigt over de forskellige skrivebordsmiljøer
Pantheon 

Anvendes i den elementære OS-distribution. Her kan vi sige, at der er "desktops", der er udviklet og brugt inden for en enkelt distribution og ikke er meget brugt (hvis ikke "slet ikke brugt") i andre distributioner. I det mindste har de endnu ikke vundet popularitet og har ikke overbevist en stor del af publikum om fordelene ved deres tilgang. Pantheon sigter mod at bygge en macOS-lignende grænseflade. 

Sådan fungerer grafik i Linux: en oversigt over de forskellige skrivebordsmiljøer
Mulighed for dockpanel:

Sådan fungerer grafik i Linux: en oversigt over de forskellige skrivebordsmiljøer
Oplysningstiden

Stærkt fokus på grafiske effekter og widgets (siden de dage, hvor andre skrivebordsmiljøer ikke havde widgets på skrivebordet, som f.eks. kalenderen/uret). Bruger sine egne biblioteker. Der er et stort sæt af dens "smukke" applikationer: terminal (Terminologi), videoafspiller (Rage), billedfremviser (Ephoto).

Sådan fungerer grafik i Linux: en oversigt over de forskellige skrivebordsmiljøer
moksha

Dette er en gaffel af Enlightenment17, der bruges i BodhiLinux-distributionen. 

Sådan fungerer grafik i Linux: en oversigt over de forskellige skrivebordsmiljøer
GNOME

Oprindeligt en "klassisk" desktop-grænseflade, skabt i opposition til KDE, som blev skrevet på QT-biblioteket, på det tidspunkt distribueret under en licens, der ikke var særlig praktisk til kommercielle distributioner. 

Sådan fungerer grafik i Linux: en oversigt over de forskellige skrivebordsmiljøer
GNOME_Shell

Fra den tredje version af GNOME begyndte GNOME at blive leveret med GNOME Shell, som har et "ikke-klassisk udseende", som ikke alle brugere kunne lide (enhver pludselige ændringer i grænseflader er svære for brugere at acceptere). Som et resultat - fremkomsten af ​​gaffelprojekter, der fortsætter udviklingen af ​​dette skrivebord i den "klassiske" stil: MATE og Cinnamon. Anvendes som standard i mange kommercielle distributioner. Den har et stort antal indstillinger og dens applikationer. 

Sådan fungerer grafik i Linux: en oversigt over de forskellige skrivebordsmiljøer
PARRER SIG 

Opstod på basis af GNOME2 og fortsætter med at udvikle dette miljø. Det har et stort antal tweaks og gafler af applikationer, der blev brugt tilbage i GNOME2 (nye navne bruges for ikke at forveksle gaflerne med deres nye version til GNOME3).

Sådan fungerer grafik i Linux: en oversigt over de forskellige skrivebordsmiljøer
Kanel

En forgrening af GNOME Shell, der giver brugerne en "klassisk" interface (som det var i GNOME2). 

Den har et stort antal indstillinger og de samme programmer som til GNOME Shell.

Sådan fungerer grafik i Linux: en oversigt over de forskellige skrivebordsmiljøer
budgie

En "klassisk" stil-gaffel af GNOME, der udviklede sig som en del af Solus-distributionen, men som nu også kommer som et selvstændigt skrivebord på forskellige andre distributioner.

Sådan fungerer grafik i Linux: en oversigt over de forskellige skrivebordsmiljøer
KDE_Plasma (eller, som det ofte kaldes, bare KDE) 

Skrivebordsmiljø udviklet af KDE-projektet. 

Det har et stort antal indstillinger tilgængelige for en simpel bruger fra den grafiske grænseflade og mange grafiske applikationer udviklet på dette skrivebord.

Sådan fungerer grafik i Linux: en oversigt over de forskellige skrivebordsmiljøer
Trinity

I 2008 udgav KDE deres nye implementering af KDE Plasma (skrivebordsmotoren blev kraftigt omskrevet). Også, som med GNOME/MATE, kunne ikke alle KDE-fans lide det. Som et resultat dukkede en forgrening af projektet op, som fortsatte udviklingen af ​​den tidligere version, kaldet TDE (Trinity Desktop Environment).

Sådan fungerer grafik i Linux: en oversigt over de forskellige skrivebordsmiljøer
Deepin_DE

Et af de nyere skrivebordsmiljøer skrevet med Qt (som er det, KDE er skrevet på). Den har mange indstillinger og en ret smuk (selvom dette er et subjektivt koncept) og veludviklet grænseflade. Udviklet som en del af Deepin Linux-distributionen. Der er også pakker til andre distributioner.

Sådan fungerer grafik i Linux: en oversigt over de forskellige skrivebordsmiljøer
Fly 

Et eksempel på et skrivebordsmiljø skrevet med Qt. Udviklet som en del af Astra Linux-distributionen. 

Sådan fungerer grafik i Linux: en oversigt over de forskellige skrivebordsmiljøer
LXQt

Letvægts skrivebordsmiljø. Ligesom flere tidligere eksempler, skrevet med Qt. Faktisk er det en fortsættelse af LXDE-projektet og resultatet af en fusion med Razor-qt-projektet.

Som du kan se, kan Linux-skrivebordet se meget anderledes ud, og der er en passende grænseflade for alles smag: fra meget smuk og med 3D-effekter til minimalistisk, fra "klassisk" til usædvanlig, fra systemtung til let, fra store skærme til tablets/smartphones.

Nå, jeg vil gerne håbe, at det lykkedes mig at give en idé om, hvad der er hovedkomponenterne i grafikken og skrivebordet i Linux OS.

Materialet til denne artikel blev testet i juli 2020 på et webinar. Det kan ses her.

Det er alt. Jeg håber, det var nyttigt. Hvis du har spørgsmål og kommentarer, så skriv. Jeg vil med glæde svare. Så kom og studér Netværksakademi LANIT!

Kilde: www.habr.com

Tilføj en kommentar