GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Linux – Wie funktioniert die Anzeige von Linux?

Das Anzeigesystem von Linux verwendet mehrere Technologien , Protokolle, Erweiterungen, Anwendungen, Server (Daemon), Treiber und Konzepte um das Windowing-System zu erreichen zum Beispiel:
Xorg, Wayland, X11, OpenGL, RandR, XrandR, Bildschirmauflösung, DPI, Anzeigeserver usw.

Diese Vielzahl kann überwältigend oder verwirrend sein, wenn wir nicht das vollständige Bild haben. Es gibt mehrere Dokumentationen für jede Seite des Anzeigesystems von Linux, aber wie funktioniert es weltweit genau?

Akzeptierte Antwort:

Linux-Anzeige

Das Anzeigesystem von Linux verwendet mehrere Technologien, Protokolle, Erweiterungen, Anwendungen, Server (Daemon), Treiber und Konzepte, um beispielsweise das Fenstersystem zu erreichen:Xorg, Wayland, X11, OpenGL, RandR, XrandR, Bildschirmauflösung, DPI, Anzeigeserver , usw. Dies kann überwältigend sein, um es vollständig zu verstehen, aber jede Seite davon ist für einen bestimmten Zweck gedacht und sie werden nicht alle zusammen gleichzeitig verwendet.

X-Protokoll

Das X Window System, X11 (X Version 11) ist ein Fenstersystem für Bitmap-Anzeigen, das auf Unix-ähnlichen Betriebssystemen üblich ist. X bietet das Grundgerüst für eine GUI-Umgebung:Zeichnen und Verschieben von Fenstern auf dem Anzeigegerät und Interaktion mit Maus und Tastatur. X schreibt die Benutzeroberfläche nicht vor, dies wird von einzelnen Programmen gehandhabt. Daher variiert das visuelle Styling von X-basierten Umgebungen stark; verschiedene Programme können radikal unterschiedliche Schnittstellen darstellen. X entstand 1984 am Project Athena am Massachusetts Institute of Technology (MIT). Das X-Protokoll befindet sich seit September 1987 in Version 11 (daher „X11“). Die X.Org Foundation leitet das X-Projekt mit der aktuellen Referenzimplementierung , X.Org Server, verfügbar als kostenlose Open-Source-Software unter der MIT-Lizenz und ähnlichen freizügigen Lizenzen.

X-Implementierung

Die meisten Linux-Distributionen verwenden X.Org Server Dies ist die kostenlose Open-Source-Implementierung des Anzeigeservers für das X Window System (X11), die von der X.Org Foundation verwaltet wird. Xorg/X allein unterstützt nicht mehrere bereitgestellte Funktionen wie Skalierung oder Rendering, für dieses Xorg verwendet Erweiterungen wie XFixes, RandR (RandR wird von xrandr verwaltet Es kann zum Beispiel Schwenken, Auflösung oder Skalierung), GLX (OpenGL-Erweiterung), Rendern oder Composite einrichten, wodurch ein ganzer Unterbaum der Fensterhierarchie in einen Off-Screen-Puffer gerendert wird. Anwendungen können dann den Inhalt davon übernehmen Puffer speichern und tun, was sie wollen, der Off-Screen-Puffer kann automatisch in das übergeordnete Fenster eingefügt werden oder von externen Programmen zusammengeführt, die als Compositing Manager bezeichnet werden wie einige Fenstermanager selbst Compositing durchführen tun; Z.B. Compiz, Enlightenment, KWin, Marco, Metacity, Muffin, Mutter und Xfwm. Für andere „Nicht-Compositing ” Fenstermanager kann ein eigenständiger zusammengesetzter Manager verwendet werden, Beispiel:Picom, Xcompmgr oder Unagi. Xorg unterstützte Erweiterungen kann aufgelistet werden mit:xdpyinfo -display :0 -queryExtensions | awk '/^number of extensions:/,/^default screen number/' .

Andererseits Wayland ist als einfacherer Ersatz für Xorg/X11 gedacht, einfacher zu entwickeln und zu warten, aber ab 2020 ist die Desktop-Unterstützung für Wayland außer Gnome noch nicht vollständig bereit (z. B. KDE Kwin und Wayland-Unterstützung); Auf der Distributionsseite verwendet Fedora standardmäßig Wayland. Beachten Sie, dass Wayland und Xorg gleichzeitig arbeiten können, dies kann je nach verwendeter Konfiguration der Fall sein. XWayland ist eine Reihe von Patches über die Codebasis des X.Org-Servers, die einen X-Server implementieren, der auf dem Wayland-Protokoll läuft. Die Patches werden von den Wayland-Entwicklern für die Kompatibilität mit X11-Anwendungen während des Übergangs zu Wayland entwickelt und gepflegt und wurden 2014 in Version 1.16 des X.Org-Servers integriert. Wenn ein Benutzer eine X-Anwendung innerhalb von Weston ausführt, ruft es auf XWayland, um die Anfrage zu bedienen.

Verwandte:Nach dem Update auf MacOS Catalina funktioniert MAMP nicht mehr mit root auf einem Netzwerk-Mount?

Der ganze Umfang

Ein Display-Server oder Windows-Server ist ein Programm (wie Xorg oder Wayland), dessen Hauptaufgabe es ist, die Eingabe und Ausgabe seiner Clients zum und vom Rest des Betriebssystems, der Hardware und untereinander zu koordinieren. Der Display-Server kommuniziert mit seinen Clients über das Display-Server-Protokoll, ein Kommunikationsprotokoll, das netzwerktransparent oder einfach netzwerkfähig sein kann. Beispielsweise sind X11 und Wayland Kommunikationsprotokolle für Anzeigeserver.

Wie im Diagramm zu sehen ein Fenstermanager ist ein weiteres wichtiges Element der Desktop-Umgebung, bei der es sich um eine Systemsoftware handelt, die die Platzierung und das Erscheinungsbild von Fenstern innerhalb eines Fenstersystems in einer grafischen Benutzeroberfläche steuert. Die meisten Fenstermanager sind so konzipiert, dass sie helfen, eine Desktop-Umgebung bereitzustellen. Sie arbeiten in Verbindung mit dem zugrunde liegenden Grafiksystem, das die erforderliche Funktionsunterstützung für Grafikhardware, Zeigegeräte und eine Tastatur bereitstellt, und werden häufig unter Verwendung eines Widget-Toolkits geschrieben und erstellt. KDE verwendet KWin als Fenstermanager (es hat eine eingeschränkte Unterstützung für Wayland ab 2020), ähnlich verwendet Gnome 2 Metacity und Gnome 3 verwendet Mutter als Fenstermanager.

Ein weiterer wichtiger Aspekt eines Windows-Managers ist der Compositor oder Compositing Window Manager , ein Fenstermanager, der Anwendungen einen Off-Screen-Puffer für jedes Fenster bereitstellt. Der Fenstermanager setzt die Fensterpuffer zu einem Bild zusammen, das den Bildschirm darstellt, und schreibt das Ergebnis in den Anzeigespeicher. Zusammensetzende Fenstermanager können zusätzliche Verarbeitungen an gepufferten Fenstern durchführen, animierte 2D- und 3D-Effekte wie Mischen, Überblenden, Skalieren, Drehen, Duplizieren, Biegen und Verzerren, Mischen, Verwischen, Umleiten von Anwendungen und Übersetzen von Fenstern in eine von mehreren Anzeigen anwenden und virtuelle Desktops. Die Computergrafiktechnologie ermöglicht das Rendern visueller Effekte in Echtzeit, z. B. Schlagschatten, Live-Vorschauen und komplexe Animationen. Da der Bildschirm doppelt gepuffert ist, flimmert er bei Updates nicht. Zu den am häufigsten verwendeten Compositing-Window-Managern gehören:Linux, BSD, Hurd und OpenSolaris-Compiz, KWin, Xfwm, Enlightenment und Mutter. jeder hat seine eigene Implementierung, zum Beispiel der KWin-Compositor von KDE haben viele Funktionen/Einstellungen wie Animationsgeschwindigkeit, Tearing-Verhinderung (vsync), Fenster-Thumbnails, Skalierungsmethode und können OpenGLv2/OpenGLv3 oder XRender verwenden als Rendering-Backend zusammen mit Xorg. (XRender/Render nicht zu verwechseln mit XRandR/RandR).

OpenGL (Open Graphics Library) ist eine sprach- und plattformübergreifende Anwendungsprogrammierschnittstelle (API) zum Rendern von 2D- und 3D-Vektorgrafiken. Die API wird normalerweise verwendet, um mit einer Grafikverarbeitungseinheit (GPU) zu interagieren, um ein hardwarebeschleunigtes Rendern zu erreichen. OpenGL ist eine Rendering-Bibliothek, die mit Xorg, Wayland oder jeder Anwendung, die sie implementiert, verwendet werden kann. Die OpenGL-Installation kann mit glxinfo | grep OpenGL .

Die Anzeige Auflösung oder Anzeigemodi eines Computermonitors oder Anzeigegeräts ist die Anzahl unterschiedlicher Pixel in jeder Dimension, die angezeigt werden können. Es wird normalerweise als Breite × Höhe angegeben, mit der Einheit in Pixel:1024 × 768 bedeutet beispielsweise, dass die Breite 1024 Pixel und die Höhe 768 Pixel beträgt. xrandr kann verwendet werden, um eine neue Bildschirmauflösung hinzuzufügen oder zu rendern/simulieren.

Die DPI steht für Punkte pro Zoll und ist ein Maß für räumliches Drucken/Anzeigen , insbesondere die Anzahl der einzelnen Punkte, die innerhalb einer Spanne von 1 Zoll (2,54 cm) in einer Linie platziert werden können. Computerbildschirme haben keine Punkte, aber Pixel, das eng verwandte Konzept ist Pixel pro Zoll oder PPI und somit wird DPI mit dem PPI-Konzept implementiert. Der Standard 96 DPI-Maß bedeutet 96 × 96 vertikal und horizontal. Ist die Einstellung X DPI (dot per inch) nur für die Textskalierung gedacht? QA ist sehr informativ.

Verwandte:Warum funktioniert Klebeband nicht gut auf Kabeln?

Notizen

Einige GUI-Tools von KDE: systemsettings5> Anzeige, kcmshell5 xserver und kinfocenter .

Referenzen

Links und Quellen: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11 und 12.


Linux
  1. Was ist ein Webserver und wie funktioniert ein Webserver?

  2. So arbeiten Sie mit dem SFTP-Client unter Linux – 10 sftp-Befehle

  3. Linux – Wie funktioniert Load Average mit modernen CPUs?

  4. Wie funktioniert der Befehl „ls“ unter Linux/Unix?

  5. Wie funktioniert copy_from_user aus dem Linux-Kernel intern?

So erstellen Sie einen CS:GO-Server auf einem Linux-VPS

Was ist Source Command in Linux und wie funktioniert es?

Wie funktioniert Swap-Speicher in Linux?

So führen Sie SSH zum Server über Linux

Wie funktioniert eine Linux-GUI auf der untersten Ebene?

Wie funktioniert die Anzeige von Linux?