Funktionsweise von Grafiken unter Linux: Ein Überblick über verschiedene Desktop-Umgebungen

In diesem Artikel geht es darum, wie Grafiken unter Linux funktionieren und aus welchen Komponenten sie bestehen. Es enthält viele Screenshots verschiedener Implementierungen von Desktop-Umgebungen. 



Wenn Sie nicht wirklich zwischen KDE und GNOME unterscheiden oder dies tun, aber wissen möchten, welche anderen Alternativen es gibt, dann ist dieser Artikel genau das Richtige für Sie. Es ist eine Übersicht, und obwohl es viele Namen und wenige Begriffe enthält, ist das Material auch für Anfänger nützlich und nur für Linux.



Das Thema kann auch fortgeschrittene Benutzer beim Einrichten des Remotezugriffs und beim Implementieren eines Thin Clients interessieren. Ich treffe oft recht erfahrene Linux-Benutzer mit den Aussagen "Es gibt nur die Befehlszeile auf dem Server, und ich habe nicht vor, die Grafiken genauer zu untersuchen, da dies alles für normale Benutzer erforderlich ist." Aber auch Linux-Kenner sind überrascht und erfreut, die Option "-X" des Befehls ssh zu entdecken (was hilfreich ist, um zu verstehen, wie der X-Server funktioniert und funktioniert).



Eine Quelle



Ich unterrichte seit fast 15 Jahren Linux-Kurse an der LANIT Networking AcademyUnd ich bin sicher, dass viele der mehr als fünftausend Menschen, die ich geschult habe, Artikel über Habr lesen und wahrscheinlich schreiben. Die Kurse sind immer sehr umfangreich (die durchschnittliche Dauer des Kurses beträgt fünf Tage). Sie müssen über Themen sprechen, die mindestens zehn Tage dauern, um sich vollständig mit ihnen vertraut zu machen. Und immer während des Kurses, abhängig vom Publikum (versammelte Neuankömmlinge oder erfahrene Administratoren) sowie von "Fragen des Publikums", entscheide ich, was detaillierter und oberflächlicher vermittelt werden soll, um mehr Zeit für Befehlszeilenprogramme und deren praktische Anwendung zu verwenden ... Es gibt genug von denen, die ein wenig opfern müssen. Dies sind "Geschichte von Linux", "Unterschiede in Linux-Distributionen", "Informationen zu Lizenzen: GPL, BSD, ...", "Informationen zu Grafiken und Desktop-Umgebungen" (das Thema dieses Artikels) usw. Nicht, dass sie nicht wichtig sind.Aber normalerweise gibt es viel mehr relevante "Hier und Jetzt" -Fragen und nur etwa fünf Tage ... Für ein allgemeines Verständnis der Grundlagen von Linux, das Verständnis der verfügbaren Vielfalt (so dass Sie selbst bei Verwendung einer bestimmten Linux-Distribution immer noch eine breitere Sicht auf dieses Ganze haben In einer riesigen und riesigen Welt, die "Linux" genannt wird, ist es nützlich und notwendig, diese Themen zu studieren. 



Im Verlauf des Artikels stelle ich für jede Komponente Links für diejenigen bereit, die tiefer in das Thema eintauchen möchten, z. B. zu Artikeln auf Wikipedia (wobei auf eine vollständigere / nützlichere Version verwiesen wird, wenn Artikel in englischer und russischer Sprache vorhanden sind).



Für grundlegende Beispiele und Screenshots habe ich die openSUSE-Distribution verwendet. Jede andere von der Community entwickelte Distribution kann mit einer großen Anzahl von Paketen im Repository verwendet werden. Es ist schwierig, aber möglich, die Vielfalt der Desktop-Designs in einer kommerziellen Distribution zu demonstrieren, da häufig nur eine oder zwei der bekannteren Desktop-Umgebungen verwendet werden. Daher schränken Entwickler die Aufgabe ein, ein stabiles, debuggtes Betriebssystem freizugeben. Auf demselben System habe ich alle DM / DE / WM (Erläuterung dieser Begriffe unten) installiert, die ich im Repository gefunden habe. 



Die Screenshots mit "blauen Rahmen" werden auf openSUSE aufgenommen. 



Screenshots mit "weißen Rahmen" wurden auf anderen Distributionen erstellt, sie werden im Screenshot gezeigt. 



Screenshots mit "grauen Rahmen" wurden aus dem Internet als Beispiele für Desktop-Designs aus vergangenen Zeiten aufgenommen.



Also fangen wir an.



Die Hauptkomponenten, aus denen die Grafiken bestehen



Ich werde drei Hauptkomponenten hervorheben und sie in der Reihenfolge auflisten, in der sie beim Systemstart beginnen: 



  1. DM (Display Manager);
  2. Server anzeigen;
  3. DE (Desktop-Umgebung).


Als wichtige Unterelemente in der Desktop-Umgebung: 



  • Apps Manager / Launcher / Switcher (Start-Schaltfläche); 
  • WM (Fenstermanager);
  • verschiedene Software, die mit der Desktop-Umgebung geliefert wird.


Weitere Details zu jedem Artikel.



DM (Display Manager)



Die erste Anwendung, die beim Start der "Grafik" gestartet wird, ist DM (Display Manager), ein Display Manager. Seine Hauptaufgaben:



  • Fragen Sie die Benutzer, die in das System eingelassen werden sollen, und fordern Sie Authentifizierungsdaten (Kennwort, Fingerabdruck) an.
  • Wählen Sie aus, welche Desktop-Umgebung gestartet werden soll.


Derzeit sind verschiedene Distributionen weit verbreitet: 



  • SDDM (ersetzt KDM ),
  • GDM ,
  • LightDM ,
  • XDM .
  • Fly-DM (in AstraLinux verwendet) kann ebenfalls erwähnt werden.


Die Liste der vorhandenen DMs wird im Wiki-Artikel auf dem neuesten Stand gehalten . 











Es ist anzumerken, dass die folgenden Screenshots denselben LightDM-Anzeigemanager verwenden, jedoch in unterschiedlichen Verteilungen (Verteilungen sind in Klammern angegeben). Sehen Sie sich an, wie unterschiedlich dieser DM dank der Arbeit der Designer verschiedener Distributionen aussehen kann.













Die Hauptsache bei dieser Variante ist, klar zu machen, dass es eine solche Anwendung gibt, die für das Starten von Grafiken und den Zugriff des Benutzers auf diese Grafiken verantwortlich ist, und es gibt verschiedene Implementierungen dieser Anwendung, die sich in Aussehen und ein wenig Funktionalität unterscheiden (Auswahl der Designumgebungen, Benutzerauswahl, Version für schlecht) Benutzer sehen, die Verfügbarkeit des Fernzugriffs über das XDMCP- Protokoll ).



Server anzeigen



Display Server ist eine Art Grafikgrundlage, deren Hauptaufgabe darin besteht, mit einer Grafikkarte, einem Monitor und verschiedenen Eingabegeräten (Tastatur, Maus, Touchpads) zu arbeiten. Das heißt, eine Anwendung (z. B. ein Browser oder ein Texteditor), die in "Grafiken" gerendert wird, muss nicht wissen, wie man direkt mit Geräten arbeitet, sie muss keine Kenntnisse über Treiber haben. Das X-Fenster kümmert sich darum.



Wenn wir über Display Server sprechen, war über viele Jahre unter Linux und Unix die X Window System- Anwendung oder allgemein X (X) gemeint



Viele Distributionen ersetzen jetzt X durch Wayland . Sie können auch lesen: 









Lassen Sie uns zunächst X und mehrere Grafikanwendungen darin starten.



Workshop "X ausführen und Anwendungen darin"



Ich werde alles vom neu erstellten Webinaruser-Benutzer aus tun (es wäre einfacher, aber nicht sicherer, alles als root zu tun).



  • Da X'am Zugriff auf Geräte benötigt, gebe ich Zugriff: Die Liste der Geräte wurde anhand von Fehlern beim Starten von X'ov im Protokoll ermittelt (/home/webinaruser/.local/share/xorg/Xorg.77.log). 


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



  • Danach starte ich X:


% X -retro :77 vt8 & 



Optionen: * -retro - wird mit einem "grauen" klassischen Hintergrund ausgeführt, standardmäßig nicht schwarz; *: 77 - Ich setze (jede in einem vernünftigen Bereich ist möglich, nur: 0 wird höchstwahrscheinlich bereits von einer bereits laufenden Grafik belegt) Bildschirmnummer, eine tatsächliche eindeutige Kennung, anhand derer zwischen mehreren laufenden X unterschieden werden kann; * vt8 - gibt das Terminal an, hier / dev / tty8, auf dem die X angezeigt werden). 



  • Wir starten die grafische Anwendung:


Dazu legen wir zunächst eine Variable fest, anhand derer die Anwendung versteht, welche der X auf mir ausgeführt werden, um zu senden, was gezeichnet werden muss:



% export DISPLAY=":77" 



Sie können die Liste der ausgeführten X wie folgt  anzeigen:



ps -fwwC X



Nach dem Festlegen der  Variablen können Sie Anwendungen in unserem X starten 's - zum Beispiel starte ich die Uhr:



% xclock -update 1 & 



% xcalc & 



% xeyes -g 200x150-300+50 &






Wichtige Ideen und Erkenntnisse aus diesem Ausschnitt:



  • X' : , , ,
  • X' — ( «--retro») (, 1920x1080 1024x768), .
  • «» , X' .
  • X' .
  • DISPLAY , ( X' ), ,  X'. ( X', .) X' -auth, XAUTHORITY xhost.
  • ( X-) X' — // «-g ()x()+()+()». «»  .
  • Zwei Begriffe, die es wert sind, ausgesprochen zu werden: X-Server (wie die X genannt werden) und X-Clients (wie jede in X gestartete grafische Anwendung genannt wird). Das Verständnis dieser Terminologie ist ein wenig verwirrend, viele verstehen es genau umgekehrt. Wenn ich vom "Client-Computer" (in der Terminologie des Remotezugriffs) eine Verbindung zum "Server" (in der Terminologie des Remotezugriffs) herstelle, um eine grafische Anwendung vom Server auf meinem Monitor anzuzeigen, wird der X-Server auf dem Computer gestartet, auf dem der Monitor ( Das heißt, auf dem "Client-Computer", nicht auf dem "Server"), und X-Clients werden auf dem "Server" gestartet und ausgeführt, obwohl sie auf dem Monitor des "Client-Computers" angezeigt werden. 




DE-Komponenten



Schauen wir uns als nächstes die Komponenten an, aus denen ein Desktop normalerweise besteht.



DE-Komponenten: Startschaltfläche und Taskleiste



Beginnen wir mit dem sogenannten "Start" -Button. Dies ist häufig ein separates Applet, das in der Taskleiste verwendet wird. Es hat normalerweise auch ein Applet zum Wechseln zwischen laufenden Anwendungen.





In verschiedenen Desktop-Umgebungen würde ich solche Anwendungen unter dem allgemeinen Namen "Apps Manager (Launcher / Switcher)" zusammenfassen, dh einem Tool zum Verwalten von Anwendungen (Starten und Wechseln zwischen gestarteten), und auch Dienstprogramme angeben, die ein Beispiel für eine Anwendung dieses Typs sind ...



  • Es erscheint als "Start" -Schaltfläche in der klassischen "Taskleiste" (in voller Länge eines der Bildschirmränder):



    ○ xfce4-Panel,

    ○ Mate-Panel / Gnome-Panel,

    ○ Vala-Panel,

    ○ Tint2.
  • «MacOS- » ( ), . — « ».



    ○ docky,

    ○ latte-dock,

    ○ cairo-dock,

    ○ plank.
  • / , « » ( ):



    ○ sxhkd.
  • - «» ( . Launch ()):



    ○ dmenu-run,

    ○ rofi -show drun,

    ○ albert,

    ○ grun.




DE: WM (Window Manager)



Mehr auf Russisch



Mehr auf Englisch



WM (Window Manager) - eine Art Anwendung, die für die Verwaltung von Fenstern verantwortlich ist, bietet folgende Möglichkeiten:



  • Verschieben von Fenstern über den Desktop (einschließlich des Standardfensters, indem Sie die Alt-Taste für einen beliebigen Teil des Fensters gedrückt halten, nicht nur für den Titel);
  • Ändern der Größe von Fenstern, z. B. durch Ziehen außerhalb des "Fensterrahmens";
  • fügt "Titel" und Schaltflächen hinzu, um die Anwendung zur Fensteroberfläche zu minimieren / maximieren / zu schließen;
  • das Konzept, welche Anwendung im Fokus steht.




Ich werde die bekanntesten auflisten (in Klammern gebe ich an, in welcher DE standardmäßig verwendet wird):







Ich werde auch "alte WM mit DE-Elementen" auflisten. Jene. Zusätzlich zum Fenstermanager verfügen sie über Elemente wie die Schaltfläche Start und die Taskleiste, die einem vollwertigen DE inhärenter sind. Wie alt sind sie jedoch, wenn sowohl IceWM als auch WindowMaker ihre aktualisierten Versionen bereits im Jahr 2020 veröffentlicht haben. Es stellt sich heraus, dass es korrekter ist, nicht "alt", sondern "Oldtimer":















Neben dem "Klassiker" (" Stapelfenstermanager ") sind gekachelte WMs zu erwähnen , mit denen Sie Fenster über den gesamten Bildschirm kacheln können , sowie für einige Anwendungen einen separaten Desktop für jede im Vollbildmodus gestartete Anwendung. Dies ist etwas ungewöhnlich für Leute, die sie noch nicht benutzt haben, aber da ich selbst eine solche Schnittstelle schon lange benutze, kann ich sagen, dass sie sehr praktisch ist und man sich schnell an eine solche Oberfläche gewöhnt, wonach "klassische" Fenstermanager nicht mehr bequem erscheinen.







Erwähnenswert sind auch das Compiz- Projekt und ein Konzept wie "Composite Window Manager", bei dem mithilfe der Hardwarebeschleunigung Transparenz, Schatten und verschiedene dreidimensionale Effekte angezeigt werden. Vor ungefähr 10 Jahren gab es einen Boom bei 3D-Effekten auf Linux-Desktops. Viele der in DE integrierten Fenstermanager nutzen jetzt teilweise die Verbundfunktionen. Wayfire ist kürzlich erschienen - ein Produkt mit ähnlichen Compiz-Funktionen für Wayland.





Eine detaillierte Liste verschiedener Fenstermanager finden Sie auch im  Vergleichsartikel .



DE-Komponenten: Ruhe



Beachten Sie auch die folgenden Komponenten des Desktops (hier verwende ich gut etablierte englische Begriffe, um den Anwendungstyp zu beschreiben - dies sind nicht die Namen der Anwendungen selbst):



  • Applets:
  • Software (Widget-Toolkit) - häufig wird ein bestimmter "minimaler Satz" von Software mit der Umgebung geliefert:


DE (Desktop-Umgebung)



Mehr in Englisch



Aus den oben aufgeführten Komponenten wird die sogenannte "Desktop-Design-Umgebung" erhalten. Oft werden alle Komponenten mit denselben Grafikbibliotheken und denselben Entwurfsprinzipien entwickelt. Dies behält zumindest einen allgemeinen Stil für das Erscheinungsbild von Anwendungen bei.



Hier können wir die folgenden derzeit vorhandenen Desktop-Umgebungen hervorheben:





GNOME und KDE gelten als am häufigsten, und XFCE ist ihnen auf den Fersen.





Ein Vergleich nach verschiedenen Parametern in Form einer Tabelle findet sich im entsprechenden Wikipedia-Artikel .  



Sorte DE





Project_Looking_Glass



Es gibt sogar so interessante Beispiele aus der Geschichte: In den Jahren 2003-2007 wurde für Linux ein "3D-Desktop-Design" namens "Project Looking Glass" von Sun erstellt. Ich selbst habe diesen Desktop verwendet oder eher "gespielt", da er schwierig zu bedienen war. Dieses "3D-Design" wurde in Java zu einer Zeit geschrieben, als es keine 3D-Grafikkarten gab. Daher wurden alle Effekte vom Prozessor gezählt, und der Computer musste sehr leistungsfähig sein, sonst funktionierte alles langsam. Aber es ist wunderschön geworden. Dreidimensionale Auftragswerkzeuge könnten gedreht / erweitert werden. Es war möglich, einen Zylinder eines Desktops mit Hintergrundbild aus einem 360-Grad-Panorama zu drehen. Es gab mehrere schöne eigene Anwendungen: zum Beispiel das Hören von Musik in Form von "CD-Wechseln" usw. Sie können auf Youtube schauenVideo über dieses Projekt, nur die Qualität dieser Videos wird höchstwahrscheinlich schlecht sein, da es in diesen Jahren nicht möglich war, qualitativ hochwertige Videos hochzuladen.





Xfce



Lightweight Desktop. Das Projekt besteht seit 1996 seit langer Zeit. In den letzten Jahren war es sehr beliebt im Gegensatz zu KDE und GNOME, die bei vielen Distributionen eine leichte und "klassische" Desktop-Oberfläche erfordern. Es hat viele Einstellungen und eine große Anzahl seiner Programme: Terminal (xfce4-terminal), Dateimanager (thunar), Bildbetrachter (ristretto), Texteditor (mousepad).



 



Pantheon 



Wird in der Distribution "Elementary OS" verwendet. Hier können wir sagen, dass es "Desktops" gibt, die innerhalb einer separaten Distribution entwickelt und verwendet werden und in anderen Distributionen nicht stark verwendet werden (wenn nicht "überhaupt nicht verwendet"). Zumindest haben sie noch nicht an Popularität gewonnen und einen großen Teil des Publikums von den Vorteilen ihres Ansatzes überzeugt. Pantheon möchte eine macOS-ähnliche Oberfläche erstellen. 





Dock Option:





Aufklärung



Starker Fokus auf Grafikeffekte und Widgets (seit den Tagen, als andere Desktop-Umgebungen keine Widgets auf dem Desktop hatten, wie z. B. Kalender / Uhr). Verwendet seine eigenen Bibliotheken. Es gibt eine große Anzahl seiner "schönen" Anwendungen: Terminal (Terminologie), Videoplayer (Rage), Anzeigen von Bildern (Ephoto).





Moksha



Dies ist eine Gabel der Erleuchtung17 und wird von der BodhiLinux-Distribution verwendet. 





GNOME



Ursprünglich eine "klassische" Desktop-Oberfläche, die im Gegensatz zu KDE erstellt wurde und in der Qt-Bibliothek geschrieben wurde und zu dieser Zeit unter einer Lizenz vertrieben wurde, die für kommerzielle Distributionen nicht sehr praktisch war. 





GNOME_Shell



Seit der dritten Version wird GNOME mit der GNOME-Shell ausgeliefert, die ein "nicht klassisches Aussehen" hat, das nicht allen Benutzern gefallen hat (drastische Änderungen an den Benutzeroberflächen sind für Benutzer schwer zu akzeptieren). Infolgedessen entstehen Gabelprojekte, die die Entwicklung dieses Desktops im "klassischen" Stil fortsetzen: MATE und Cinnamon. Wird standardmäßig in vielen kommerziellen Distributionen verwendet. Hat eine große Anzahl von Einstellungen und Anwendungen. 





MATE 



basiert auf GNOME2 und entwickelt diese Designumgebung weiter. Verfügt über eine große Anzahl von Einstellungen und Gabeln von Anwendungen, die in GNOME2 verwendet wurden (neue Namen werden verwendet), um Gabeln nicht mit ihrer neuen Version für GNOME3 zu verwechseln.





Zimt Eine



Abzweigung der GNOME-Shell, die Benutzern eine "klassische" Benutzeroberfläche bietet (wie dies bei GNOME2 der Fall war). 



Hat eine große Anzahl von Einstellungen und die gleichen Anwendungen wie für GNOME Shell.





Budgie Eine Gabel im



"klassischen" Stil von GNOME, die als Teil der Solus-Distribution entwickelt wurde, jetzt aber auch als eigenständiger Desktop auf verschiedenen anderen Distributionen ausgeliefert wird.





KDE_Plasma (oder, wie es oft genannt wird, einfach KDE) 



Eine vom KDE-Projekt entwickelte Desktop-Umgebung. 



Über die grafische Oberfläche und viele auf diesem Desktop entwickelte grafische Anwendungen stehen dem allgemeinen Benutzer eine Vielzahl von Einstellungen zur Verfügung.





Trinity



Im Jahr 2008 veröffentlichte KDE die neue Implementierung von KDE Plasma (die Desktop-Engine wurde stark überarbeitet). Ebenso wie bei GNOME / MATE gefällt es nicht allen KDE-Fans. Infolgedessen erschien eine Abzweigung des Projekts, die die Entwicklung der vorherigen Version mit dem Namen TDE (Trinity Desktop Environment) fortsetzte.





Deepin_DE



Eine der neueren Desktop-Umgebungen, die mit Qt geschrieben wurden (auf dem KDE geschrieben ist). Es hat viele Einstellungen und ist sehr schön (obwohl dies ein subjektives Konzept ist) und eine gut entwickelte Oberfläche. Entwickelt als Teil der Deepin Linux Distribution. Es gibt auch Pakete für andere Distributionen





Fly 



Ein Beispiel für eine Desktop-Umgebung, die mit Qt geschrieben wurde. Entwickelt als Teil der Astra Linux Distribution. 





LXQt



Leichte Desktop-Umgebung. Wie einige frühere Beispiele, geschrieben mit Qt. Tatsächlich ist es eine Fortsetzung des LXDE-Projekts und das Ergebnis der Fusion mit dem Razor-qt-Projekt.



Wie Sie sehen können, kann der Desktop unter Linux ganz anders aussehen und es wird eine geeignete Oberfläche für jeden Geschmack geben: von sehr schön und mit 3D-Effekten bis minimalistisch, von "klassisch" bis ungewöhnlich, von der aktiven Nutzung von Systemressourcen bis leicht, von groß Bildschirme zu Tablets / Smartphones.



Nun, ich hoffe, dass ich eine Vorstellung davon geben konnte, was die Hauptkomponenten der Grafik und des Desktops unter Linux sind.



Das Material für diesen Artikel wurde im Juli 2020 in einem Webinar vorgestellt. Sie können es hier sehen .



Das ist alles. Hoffe es war hilfreich. Wenn Sie Fragen oder Kommentare haben, schreiben Sie. Ich werde gerne antworten. Kommen Sie und studieren Sie an der LANIT Networking Academy !



All Articles