Hur grafik fungerar i Linux: en översikt över olika skrivbordsmiljöer

Den här artikeln handlar om hur grafik fungerar i Linux och vilka komponenter den består av. Den innehåller många skärmdumpar av olika implementeringar av skrivbordsmiljöer. 

Om du inte riktigt skiljer mellan KDE och GNOME, eller om du gör det men skulle vilja veta vilka andra alternativ som finns, då är den här artikeln för dig. Det är en översikt, och även om det innehåller många namn och få termer, kommer materialet också att vara användbart för nybörjare och de som bara tittar på Linux.

Ämnet kan också vara av intresse för avancerade användare när de konfigurerar fjärråtkomst och implementerar en tunn klient. Jag träffar ofta rutinerade Linux-användare med påståenden "det finns bara en kommandorad på servern, och jag planerar inte att studera grafik mer i detalj, eftersom allt detta behövs för vanliga användare." Men även Linux-experter är mycket förvånade och glada över att upptäcka alternativet "-X" för kommandot ssh (och för detta är det användbart att förstå driften och funktionerna hos X-servern).

Hur grafik fungerar i Linux: en översikt över olika skrivbordsmiljöerKälla

Jag har undervisat i Linux-kurser i nästan 15 år på "Network Academy LANIT”och jag är säker på att många av de mer än fem tusen människor som jag utbildade läser och förmodligen skriver artiklar om Habr. Kurserna är alltid mycket intensiva (den genomsnittliga kurslängden är fem dagar); du måste täcka ämnen som kräver minst tio dagar för att helt förstå. Och alltid under kursen, beroende på publiken (nybörjare samlade eller rutinerade administratörer), samt på "frågor från publiken", gör jag ett val av vad jag ska förmedla mer detaljerat och vad mer ytligt, för att ägna mer tid till kommandoradsverktyg och deras praktiska tillämpning. Det finns tillräckligt med sådana här ämnen som kräver lite uppoffringar. Dessa är "History of Linux", "Skillnader i Linux-distributioner", "Om licenser: GPL, BSD, ...", "Om grafik och skrivbordsmiljöer" (ämnet för den här artikeln), etc. Inte för att de inte är det viktigt, men vanligtvis finns det många fler pressande "här och nu"-frågor och bara cirka fem dagar... Men för en allmän förståelse av grunderna i Linux OS, en förståelse för den tillgängliga mångfalden (så att även använda en specifik Linux-distribution, du har fortfarande en bredare syn på hela denna enorma och stora värld som kallas "Linux"), att studera dessa ämnen är användbart och nödvändigt. 

Allt eftersom artikeln fortskrider tillhandahåller jag länkar för varje komponent för den som vill dyka djupare in i ämnet, till exempel till Wikipedia-artiklar (samtidigt som jag pekar på en mer komplett/användbar version om det finns engelska och ryska artiklar).

För grundläggande exempel och skärmdumpar använde jag openSUSE-distributionen. Vilken annan gemenskapsutvecklad distribution som helst skulle kunna användas, så länge det fanns ett stort antal paket i förvaret. Det är svårt, men inte omöjligt, att visa mångfalden av skrivbordsdesigner på en kommersiell distribution, eftersom de ofta bara använder en eller två av de mest välkända skrivbordsmiljöerna. På så sätt begränsar utvecklare uppgiften att släppa ett stabilt, felsökt OS. På samma system installerade jag alla DM/DE/WM (förklaring av dessa termer nedan) som jag hittade i förvaret. 

Skärmdumpar med "blå ramar" togs på openSUSE. 

Jag tog skärmdumpar med "vita ramar" på andra distributioner, de anges i skärmdumpen. 

Skärmdumpar med "grå ramar" togs från Internet, som exempel på skrivbordsdesign från tidigare år.

Så, låt oss börja.

Huvudkomponenterna som bildar grafik

Jag kommer att markera tre huvudkomponenter och lista dem i den ordning som de lanseras vid systemstart: 

  1. DM (Display Manager);
  2. Display Server;
  3. DE (Skrivbordsmiljö).

Dessutom, som viktiga underklausuler i skrivbordsmiljön: 

  • Apps Manager/Launcher/Switcher (Startknapp); 
  • WM (fönsterhanterare);
  • olika programvaror som följer med skrivbordsmiljön.

Mer information om varje punkt.

DM (Display Manager)

Den första applikationen som startar när du startar "grafik" är DM (Display Manager), en bildskärmshanterare. Dess huvudsakliga uppgifter:

  • fråga vilka användare som ska tillåta in i systemet, begära autentiseringsdata (lösenord, fingeravtryck);
  • välja vilken skrivbordsmiljö som ska köras.

För närvarande används ofta i olika distributioner: 

Listan över befintliga DM hålls uppdaterad i Wiki-artikel. 

Hur grafik fungerar i Linux: en översikt över olika skrivbordsmiljöer
Hur grafik fungerar i Linux: en översikt över olika skrivbordsmiljöer
Hur grafik fungerar i Linux: en översikt över olika skrivbordsmiljöer
Hur grafik fungerar i Linux: en översikt över olika skrivbordsmiljöer
Det är värt att notera att följande skärmdumpar använder samma LightDM display manager, men i olika distributioner (distributionsnamn anges inom parentes). Se hur annorlunda denna DM kan se ut tack vare arbetet från designers från olika distributioner.

Hur grafik fungerar i Linux: en översikt över olika skrivbordsmiljöer
Hur grafik fungerar i Linux: en översikt över olika skrivbordsmiljöer
Hur grafik fungerar i Linux: en översikt över olika skrivbordsmiljöer
Hur grafik fungerar i Linux: en översikt över olika skrivbordsmiljöer
Hur grafik fungerar i Linux: en översikt över olika skrivbordsmiljöer
Huvudsaken i denna mångfald är att göra det klart att det finns en applikation som är ansvarig för att lansera grafik och låter användaren komma åt denna grafik, och det finns olika implementeringar av denna applikation som skiljer sig åt i utseende och något i funktionalitet (val av designmiljöer, val av användare, version för dåligt seende användare, tillgänglighet till fjärråtkomst via protokoll XDMCP).

Display Server

Display Server är en slags grafikbas, vars huvuduppgift är att arbeta med ett grafikkort, bildskärm och olika inmatningsenheter (tangentbord, mus, pekplattor). Det vill säga, en applikation (till exempel en webbläsare eller textredigerare) som renderas i "grafik" behöver inte veta hur man direkt arbetar med enheter, inte heller behöver den veta om drivrutiner. X Window tar hand om allt detta.

När man pratade om Display Server, under många år i Linux, och även i Unix, var applikationen menad X Window System eller i vanligt språkbruk X (X). 

Nu ersätter många distributioner X Wayland. 

Du kan också läsa:

Låt oss först starta X och flera grafiska applikationer i dem.

Workshop "kör X och applikationer i den"

Jag kommer att göra allt från den nyskapade webinaruser-användaren (det skulle vara enklare, men inte säkrare, att göra allt som root).

  • Eftersom X behöver åtkomst till enheter ger jag åtkomst: Listan över enheter fastställdes genom att titta på felen vid start av X 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/*

  • Efter det startar jag X:s:

% X -retro :77 vt8 & 

Alternativ: * -retro - starta med en "grå" klassisk bakgrund, och inte med svart som standard; * :77 - Jag ställer in (vilket som helst inom ett rimligt intervall är möjligt, bara :0 är troligen redan upptaget av den redan körande grafiken) skärmnummer, faktiskt någon sorts unik identifierare med vilken det kommer att vara möjligt att särskilja flera körande X; * vt8 - indikerar terminalen, här /dev/tty8, på vilken X kommer att visas). 

  • Starta den grafiska applikationen:

För att göra detta ställer vi först in en variabel genom vilken applikationen kommer att förstå vilka av X:en jag kör för att skicka det som behöver ritas: 

% export DISPLAY=":77" 

Du kan se listan över löpande Xs så här: 

ps -fwwC X

Efter att vi har ställt in variabeln kan vi starta applikationer i våra Xs - till exempel startar jag en klocka:

% xclock -update 1 & 

% xcalc & 

% xeyes -g 200x150-300+50 &

Hur grafik fungerar i Linux: en översikt över olika skrivbordsmiljöer
Huvudidéer och slutsatser från detta fragment:

  • X behöver tillgång till enheter: terminal, grafikkort, inmatningsenheter,
  • Xs själva visar inga gränssnittselement - det är en grå (om med alternativet "--retro") eller svart duk av vissa storlekar (till exempel 1920x1080 eller 1024x768) för att köra grafiska applikationer i den.
  • Rörelsen av "korset" visar att X:en spårar musens position och överför denna information till applikationerna som körs i den.
  • X:s fångar också tangenttryckningar på tangentbordet och överför denna information till applikationer.
  • DISPLAY-variabeln talar om för grafiska applikationer i vilken skärm (varje X startas med ett unikt skärmnummer vid uppstart), och därför i vilken av de som körs på min maskin, X:en kommer att behöva ritas. (Det är också möjligt att specificera en fjärrdator i denna variabel och skicka utdata till Xs som körs på en annan dator i nätverket.) Eftersom Xs lanserades utan -auth-alternativet, finns det inget behov av att hantera XAUTHORITY-variabeln eller xhost kommando.
  • Grafiska applikationer (eller som X-klienter kallar dem) renderas i X:s - utan möjlighet att flytta/stänga/ändra dem "-g (Width)x(Height)+(OffsetFromLeftEdge)+(OffsetFromTopEdge)". Med ett minustecken från höger respektive från nederkant.
  • Två termer som är värda att nämna: X-server (det är vad X:s kallas) och X-clients (det är vad alla grafiska applikationer som körs i X:s kallas). Det finns en liten förvirring i att förstå denna terminologi, många förstår det precis tvärtom. I fallet när jag ansluter från en "klientmaskin" (i fjärråtkomstterminologi) till en "server" (i fjärråtkomstterminologi) för att visa en grafisk applikation från servern på min bildskärm, så startas X-servern på maskinen där monitorn (det vill säga på "klientmaskinen", inte på "servern") och X-klienter startar och körs på "servern", även om de visas på monitorn för "klientmaskinen". 

Hur grafik fungerar i Linux: en översikt över olika skrivbordsmiljöer

DE komponenter

Låt oss sedan titta på komponenterna som vanligtvis utgör ett skrivbord.

DE-komponenter: Start-knapp och aktivitetsfält

Låt oss börja med den så kallade "Start"-knappen. Ofta är detta en separat applet som används i "Taskbar". Det finns också vanligtvis en applet för att växla mellan körande applikationer.

Hur grafik fungerar i Linux: en översikt över olika skrivbordsmiljöer
Efter att ha tittat på olika skrivbordsmiljöer skulle jag sammanfatta sådana applikationer under det allmänna namnet "Apps Manager (Launcher/Switcher)", det vill säga ett verktyg för att hantera applikationer (starta och växla mellan körande), och även ange verktyg som är en exempel på denna typ av applikation.

  • Den kommer i form av "Start"-knappen på den klassiska (hela längden av en av kanterna på skärmen) "Taskbar":

    ○ xfce4-panel,
    ○ kompis-panel/gnome-panel,
    ○ vala-panel,
    ○ nyans2.

  • Du kan också ha en separat "MacOS-formad aktivitetsfält" (inte hela längden på skärmens kant), även om många aktivitetsfält kan visas i båda stilarna. Här är snarare den största skillnaden rent visuell - närvaron av "effekten av att förstora ikoner när du svävar."

    ○ docky,
    ○ latte-docka,
    ○ kairo-docka,
    ○ planka.

  • Och/eller en tjänst som startar applikationer när du trycker på snabbtangenter (i många skrivbordsmiljöer krävs en liknande komponent och låter dig konfigurera dina egna snabbtangenter):

    ○ sxhkd.

  • Det finns också olika menyformade "launchers" (från engelska Launch (launch)):

    ○ dmenu-run,
    ○ rofi -show drun,
    ○ albert,
    ○ grunt.

Hur grafik fungerar i Linux: en översikt över olika skrivbordsmiljöer

DE-komponenter: WM (Window Manager)

Mer information på ryska

Mer information på engelska

WM (Window Manager) - en applikation som är ansvarig för att hantera fönster, lägger till möjligheten att:

  • flytta fönster runt skrivbordet (inklusive standarden genom att hålla ner Alt-tangenten på valfri del av fönstret, inte bara namnlisten);
  • ändra storlek på fönster, till exempel genom att dra "fönsterramen";
  • lägger till en "titel" och knappar för att minimera/maximera/stänga programmet till fönstergränssnittet;
  • konceptet för vilken applikation som är i "fokus".

Hur grafik fungerar i Linux: en översikt över olika skrivbordsmiljöer
Jag kommer att lista de mest kända (inom parentes anger jag vilken DE som används som standard):

Hur grafik fungerar i Linux: en översikt över olika skrivbordsmiljöer
Jag kommer också att lista "gamla WM med DE-element". De där. förutom fönsterhanteraren har de element som "Start"-knappen och "Taskbar", som är mer typiska för fullfjädrad DE. Fast hur "gamla" är de om både IceWM och WindowMaker redan har släppt sina uppdaterade versioner 2020. Det visar sig att det är mer korrekt inte "gammalt", utan "gammalt":

Hur grafik fungerar i Linux: en översikt över olika skrivbordsmiljöer
Hur grafik fungerar i Linux: en översikt över olika skrivbordsmiljöer
Hur grafik fungerar i Linux: en översikt över olika skrivbordsmiljöer
Hur grafik fungerar i Linux: en översikt över olika skrivbordsmiljöer
Hur grafik fungerar i Linux: en översikt över olika skrivbordsmiljöer
Förutom "klassikern" ("stackfönsterhanterare") är det värt att särskilt nämna kaklade WM, som låter dig placera fönster "kaklade" över hela skärmen, samt för vissa applikationer ett separat skrivbord för varje startad applikation på hela skärmen. Detta är lite ovanligt för folk som inte har använt dem tidigare, men eftersom jag själv har använt ett sådant gränssnitt ganska länge kan jag säga att det är ganska bekvämt och man vänjer sig snabbt vid ett sådant gränssnitt, varefter "klassiska" fönsterhanterare verkar inte längre bekväma.

Hur grafik fungerar i Linux: en översikt över olika skrivbordsmiljöer
Projektet är också värt att nämna separat Compiz och ett sådant koncept som "Composite Window Manager", som använder hårdvaruacceleration för att visa transparens, skuggor och olika tredimensionella effekter. För ungefär 10 år sedan var det en boom i 3D-effekter på Linux-datorer. Nuförtiden använder många av de fönsterhanterare som är inbyggda i DE delvis sammansatta funktioner. Dök nyligen upp Wayfire - en produkt med liknande funktionalitet som Compiz för Wayland.

Hur grafik fungerar i Linux: en översikt över olika skrivbordsmiljöer
En detaljerad lista över olika fönsterhanterare finns också i  jämförelseartikel.

DE komponenter: vila

Det är också värt att notera följande skrivbordskomponenter (här använder jag etablerade engelska termer för att beskriva en typ av applikation - det här är inte namnen på själva applikationerna):

  • Applets:
  • Programvara (Widget toolkit) - ofta levereras en viss "minimum uppsättning" av programvara med miljön:

DE (skrivbordsmiljö)

Mer information på engelska

Från ovanstående komponenter erhålls den så kallade "Desktop Design Environment". Ofta är alla dess komponenter utvecklade med samma grafikbibliotek och med samma designprinciper. Således bibehålls åtminstone den allmänna stilen för utseendet på applikationer.

Här kan vi lyfta fram följande för närvarande befintliga skrivbordsmiljöer:

GNOME och KDE anses vara de vanligaste, och XFCE ligger nära i hälarna.

Hur grafik fungerar i Linux: en översikt över olika skrivbordsmiljöer
En jämförelse av olika parametrar i form av en tabell kan hittas i motsvarande Wikipedia-artikel.  

DE sort

Hur grafik fungerar i Linux: en översikt över olika skrivbordsmiljöer
Project_Looking_Glass

Det finns till och med sådana intressanta exempel från historien: 2003-2007 gjordes en "3D-skrivbordsdesign" för Linux med namnet "Project Looking Glass" från Sun. Jag använde själv det här skrivbordet, eller snarare "lekt" med det, eftersom det var svårt att använda. Denna "3D-design" skrevs i Java vid en tidpunkt då det inte fanns några grafikkort med 3D-stöd. Därför räknades alla effekter om av processorn, och datorn måste vara väldigt kraftfull, annars fungerade allt långsamt. Men det blev vackert. Tredimensionella appliceringsplattor kan roteras/expanderas. Det var möjligt att rotera i cylindern på skrivbordet med tapeter från ett 360-graders panorama. Det fanns flera vackra applikationer: till exempel att lyssna på musik i form av att "byta CD-skivor", etc. Du kan titta på det på YouTube video om det här projektet kommer bara kvaliteten på dessa videor troligen att vara dålig, eftersom det under dessa år inte var möjligt att ladda upp videor av hög kvalitet.

Hur grafik fungerar i Linux: en översikt över olika skrivbordsmiljöer
Xfce

Lätt skrivbord. Projektet har funnits ganska länge, sedan 1996. Under de senaste åren har det varit ganska populärt, till skillnad från de tyngre KDE och GNOME, på många distributioner som kräver ett lättviktigt och "klassiskt" skrivbordsgränssnitt. Den har många inställningar och ett stort antal egna program: terminal (xfce4-terminal), filhanterare (thunar), bildvisare (ristretto), textredigerare (musmatta).

 
Hur grafik fungerar i Linux: en översikt över olika skrivbordsmiljöer
Pantheon 

Används i den elementära OS-distributionen. Här kan vi säga att det finns "desktops" som utvecklas och används inom en separat distribution och som inte används så mycket (om de inte "inte används alls") i andra distributioner. Åtminstone har de ännu inte vunnit popularitet och övertygat de flesta av publiken om fördelarna med deras tillvägagångssätt. Pantheon siktar på att bygga ett gränssnitt som liknar macOS. 

Hur grafik fungerar i Linux: en översikt över olika skrivbordsmiljöer
Tillval med dockningspanel:

Hur grafik fungerar i Linux: en översikt över olika skrivbordsmiljöer
Upplysning

Starkt fokus på grafiska effekter och widgets (från de dagar då andra skrivbordsmiljöer inte hade skrivbordswidgets som kalender/klocka). Använder sina egna bibliotek. Det finns en stor uppsättning egna "vackra" applikationer: terminal (Terminologi), videospelare (Rage), bildvisare (Ephoto).

Hur grafik fungerar i Linux: en översikt över olika skrivbordsmiljöer
moksha

Detta är en gaffel av Enlightenment17, som används i BodhiLinux-distributionen. 

Hur grafik fungerar i Linux: en översikt över olika skrivbordsmiljöer
GNOME

Ursprungligen ett "klassiskt" skrivbordsgränssnitt, skapat i motsats till KDE, som skrevs i QT-biblioteket, vid den tiden distribuerat under en licens som inte var särskilt bekväm för kommersiella distributioner. 

Hur grafik fungerar i Linux: en översikt över olika skrivbordsmiljöer
GNOME_Shell

Från den tredje versionen började GNOME komma med GNOME-skalet, som har ett "icke-klassiskt utseende", vilket inte alla användare gillade (alla plötsliga förändringar i gränssnitt är svåra för användare att acceptera). Som en konsekvens uppkomsten av gaffelprojekt som fortsätter utvecklingen av detta skrivbord i den "klassiska" stilen: MATE och Cinnamon. Används som standard i många kommersiella distributioner. Den har ett stort antal inställningar och egna applikationer. 

Hur grafik fungerar i Linux: en översikt över olika skrivbordsmiljöer
PARA 

Det kom från GNOME2 och fortsätter att utveckla denna designmiljö. Den har ett stort antal inställningar och applikationsgafflar som användes tillbaka i GNOME2 (nya namn används) för att inte blanda ihop gafflarna med deras nya version för GNOME3).

Hur grafik fungerar i Linux: en översikt över olika skrivbordsmiljöer
Kanel

En gaffel av GNOME Shell som ger användarna ett "klassiskt" gränssnitt (som var fallet i GNOME2). 

Den har ett stort antal inställningar och samma applikationer som för GNOME Shell.

Hur grafik fungerar i Linux: en översikt över olika skrivbordsmiljöer
Undulat

En "klassisk" stil gaffel av GNOME som utvecklades som en del av Solus-distributionen, men som nu också kommer som ett fristående skrivbord på olika andra distributioner.

Hur grafik fungerar i Linux: en översikt över olika skrivbordsmiljöer
KDE_Plasma (eller som det ofta kallas, helt enkelt KDE) 

En skrivbordsmiljö utvecklad av KDE-projektet. 

Den har ett stort antal inställningar tillgängliga för den enkla användaren från det grafiska gränssnittet och många grafiska applikationer utvecklade inom ramen för detta skrivbord.

Hur grafik fungerar i Linux: en översikt över olika skrivbordsmiljöer
Trinity

2008 släppte KDE sin nya implementering av KDE Plasma (skrivbordsmotorn var kraftigt omskriven). Dessutom, som med GNOME/MATE, gillade inte alla KDE-fans det. Som ett resultat dök en gaffel av projektet upp, som fortsatte utvecklingen av den tidigare versionen, kallad TDE (Trinity Desktop Environment).

Hur grafik fungerar i Linux: en översikt över olika skrivbordsmiljöer
Deepin_DE

En av de nya skrivbordsmiljöerna skriven med Qt (som KDE är skriven på). Den har många inställningar och är ganska vacker (även om detta är ett subjektivt koncept) och välutvecklat gränssnitt. Utvecklad som en del av Deepin Linux-distributionen. Det finns även paket för andra distributioner

Hur grafik fungerar i Linux: en översikt över olika skrivbordsmiljöer
Fly 

Ett exempel på en skrivbordsmiljö skriven med Qt. Utvecklad som en del av Astra Linux-distributionen. 

Hur grafik fungerar i Linux: en översikt över olika skrivbordsmiljöer
LXQt

Lätt skrivbordsmiljö. Liksom flera tidigare exempel, skrivna med Qt. Faktum är att det är en fortsättning på LXDE-projektet och resultatet av en sammanslagning med Razor-qt-projektet.

Som du kan se kan skrivbordet i Linux se väldigt olika ut och det finns ett lämpligt gränssnitt för allas smak: från mycket vackert och med 3D-effekter till minimalistiskt, från "klassiskt" till ovanligt, från att aktivt använda systemresurser till lätta, från stora skärmar till surfplattor/smartphones.

Tja, jag skulle vilja hoppas att jag kunde ge en uppfattning om vilka huvudkomponenterna i grafiken och skrivbordet i Linux OS är.

Materialet för den här artikeln testades i juli 2020 på ett webinar. Du kan titta på den här.

Det är allt. Jag hoppas att detta var till hjälp. Om du har några frågor eller kommentarer, skriv gärna. Jag svarar gärna. Nåväl, kom och studera kl "LANIT Network Academy"!

Källa: will.com

Lägg en kommentar