
In der Informatik ist ein Fenstersystem eine Software-Suite , die verschiedene Teile von Bildschirmen separat verwaltet . [ 1 ] Es handelt sich um eine Art grafischer Benutzeroberfläche (GUI), die das WIMP - Paradigma ( Windows , Icons , Menus , Pointer ) für eine Benutzeroberfläche implementiert .
Jeder aktuell laufenden Anwendung wird ein in der Regel skalierbarer und rechteckiger Bereich des Bildschirms zugewiesen, um ihre grafische Benutzeroberfläche (GUI) darzustellen. Diese Fenster können sich überlappen, im Gegensatz zu einer Kachelansicht, bei der dies nicht zulässig ist. Üblicherweise wird jedes Fenster mit einer Fensterdekoration versehen. Die Programmierung sowohl der Fensterdekoration als auch der im Fenster verfügbaren Widgets – grafische Elemente zur direkten Benutzerinteraktion wie Schieberegler, Schaltflächen usw. – wird durch die Verwendung von Widget-Toolkits vereinfacht .
Technische Details
Die Hauptkomponente eines jeden Fenstersystems wird üblicherweise als Display-Server bezeichnet , obwohl auch alternative Begriffe wie Fensterserver gebräuchlich sind. Jede Anwendung, die ausgeführt wird und ihre grafische Benutzeroberfläche (GUI) in einem Fenster darstellt, ist ein Client des Display-Servers. Der Display-Server und seine Clients kommunizieren über eine Programmierschnittstelle (API) oder ein Kommunikationsprotokoll , das üblicherweise als Display-Server-Protokoll bezeichnet wird. Der Display-Server fungiert dabei als Vermittler zwischen den Clients und dem Benutzer. Er empfängt alle Eingaben vom Kernel , die dieser wiederum von allen angeschlossenen Eingabegeräten wie Tastatur , Zeigegeräten oder Touchscreen empfängt , und leitet sie an den jeweiligen Client weiter. Der Display-Server ist außerdem für die Ausgabe der Clients auf dem Computermonitor verantwortlich . Die Tonausgabe wird üblicherweise nicht vom Display-Server verwaltet, die Lautstärke wird jedoch in der Regel über GUI-Applets geregelt. Der Display-Server legt fest, welche Anwendungen im Vordergrund angezeigt werden. Ein Fenstersystem ermöglicht es dem Benutzer, gleichzeitig mit mehreren Programmen zu arbeiten. Jedes Programm stellt seine GUI in einem eigenen Fenster dar, das in der Regel einen rechteckigen Bereich des Bildschirms einnimmt.
Aus Programmierersicht implementiert ein Fenstersystem grafische Grundfunktionen, beispielsweise das Rendern von Schriftarten oder das Zeichnen von Linien auf dem Bildschirm. Es abstrahiert die Grafikhardware und ermöglicht so die Nutzung durch übergeordnete Elemente der grafischen Benutzeroberfläche, wie etwa einen Fenstermanager.
Ein Display-Server-Protokoll kann netzwerkfähig oder sogar netzwerktransparent sein , was die Implementierung von Thin Clients erleichtert .
Display-Server

Ein Display-Server (auch Fensterserver genannt) ist ein Programm, dessen Hauptaufgabe darin besteht, die Ein- und Ausgabe seiner Clients an das Betriebssystem, die Hardware und untereinander zu koordinieren. Die Kommunikation zwischen dem Display-Server und seinen Clients erfolgt über das Display-Server-Protokoll, ein Kommunikationsprotokoll , das netzwerktransparent oder netzwerkfähig sein kann.
Der Display-Server ist eine Schlüsselkomponente jeder grafischen Benutzeroberfläche , insbesondere des Fenstersystems.
Die Server-Client-Beziehung eines eigenständigen Display-Servers erscheint zunächst etwas kontraintuitiv, da man sich einen „Server“ üblicherweise als großen, entfernten Rechner vorstellt, während ein eigenständiger Display-Server ein kleines, lokales System ist, auf dem die meisten Clients auf einem größeren zentralen Rechner ausgeführt werden. Der Grund dafür ist, dass ein Display-Server die Dienste eines Bildschirms und von Eingabegeräten bereitstellt.
Kommunikationsprotokolle für Display-Server
X11

Das X Window System wurde erstmals 1984 veröffentlicht und ist historisch gesehen das wichtigste Fenstersystem für Unix- und Unix-ähnliche Betriebssysteme. Das Kernprotokoll liegt seit 1987 in Version 11 vor und ist daher allgemein als „X11“ bekannt. Die aktuelle Referenzimplementierung des X11-Protokolls ist der X.Org-Server , der den Display-Server und einige Hilfskomponenten bereitstellt. Das X Window System definiert kein bestimmtes Erscheinungsbild ; stattdessen verwenden Benutzer einen Fenstermanager (entweder eigenständig oder als Teil einer umfassenderen Desktop-Umgebung ) und Anwendungen, die mit einem Widget-Toolkit entwickelt wurden . Das X.Org-Repository enthält einen Referenz-Fenstermanager, twm ; eine Referenzimplementierung eines Widget-Toolkits, X Athena Widgets ; und einige einfache Anwendungen wie einen Taschenrechner und eine Uhr. [ 2 ]
Weitere bemerkenswerte Beispiele für Display-Server, die das X11-Display-Server-Protokoll implementieren, sind XFree86 (von dem der aktuelle X.Org-Server abgeleitet wurde), XQuartz (für macOS ) und Cygwin/X (für Microsoft Windows ).
Wayland

Display-Server, die das Wayland-Protokoll implementieren, werden als Wayland-Compositors bezeichnet und kommunizieren über dieses Protokoll mit Clients . Wayland wurde als Nachfolger von X11 entwickelt und unterscheidet sich deutlich von dessen Design. Ein Wayland-Compositor vereint die Funktionen eines Display-Servers, eines Fenstermanagers und eines Compositing-Managers in einer einzigen Komponente, während diese in X11 separate Softwarekomponenten darstellen. [ 3 ]
Der Umfang des Wayland-Protokolls ist deutlich kleiner als der des X11-Kernprotokolls. Es definiert lediglich, wie Clients Daten in Puffer, sogenannte „Surfaces“, schreiben, und fungiert nicht als Netzwerkprotokoll. Alle anderen Funktionen werden an Erweiterungsprotokolle (entwickelt im Wayland -Protocols- Repository), den Direct Rendering Manager und die evdev- Komponenten des Linux-Kernels , die Mesa -3D-Grafikbibliothek, Widget-Toolkits (wie GTK , Qt und EFL ), das XDG Desktop Portal-System und verschiedene andere Softwarepakete wie libinput und PipeWire delegiert .
Wayland wird von mehreren Open-Source-Desktopumgebungen eingesetzt, darunter GNOME [ 4 ] und KDE Plasma [ 5 ] , die von X11 portiert wurden, sowie Umgebungen wie COSMIC , die von Grund auf als Wayland-native Umgebungen entwickelt wurden. Auch verschiedene eigenständige Compositor-Bibliotheken wie Weston , Sway , Hyprland , Wayfire , niri und labwc sind verfügbar. Wayland findet zudem in mehreren Embedded- und mobilen Systemen Verwendung, darunter Tizen [ 6 ] , Sailfish OS [ 7 ] und WebOS [ 8 ] .
Die Referenzimplementierung von Wayland ist unter der MIT-Lizenz verfügbar und besteht aus den Bibliotheken libwayland-client und libwayland-server.
Es gibt laufende Bemühungen, Wayland-Unterstützung zu ChromeOS hinzuzufügen . [ 9 ]
Mir
Der Mir-Displayserver verwendet sein eigenes Protokoll, das sich von den Protokollen von X11 und Wayland unterscheidet. Mir unterstützt zusätzlich das X11-Protokoll. Er wurde von Canonical entwickelt und war als bevorzugter Displayserver für Ubuntu vorgesehen . Seit 2017 wird er jedoch in den Desktop-Versionen von Ubuntu durch den Wayland-Displayserver ersetzt.
Es gibt Implementierungen des Mir-Display-Servers, der libmir-server- und der libmir-client-Bibliotheken, die unter der GPLv3 verfügbar sind .
Fenstersysteme mit APIs
SurfaceFlinger
Google entwickelte einen Display-Server namens SurfaceFlinger [ 10 ] für Android :
In Android wird alles auf einer „Oberfläche“ gerendert; „Oberflächen“ werden von Anwendungen erzeugt und in eine Warteschlange gestellt, die von SurfaceFlinger verwaltet wird. [ 11 ] [ 12 ]
Eine weitere Android-spezifische Lösung ist „Gralloc“. Gralloc verwaltet den Gerätespeicher, d. h. es übernimmt die Speicherallokation, die Speicherarbitrierung und die Synchronisierung über Android/Linux-Fence-Dateideskriptoren. Gralloc konkurriert mit anderen Lösungen wie beispielsweise Mesas Generic Buffer Management (GBM) oder Nvidias EGLStreams. Die Gralloc -Hardwareabstraktionsschicht (HAL) dient der Allokation der Puffer, die den „Oberflächen“ zugrunde liegen.
Für die Bildkomposition in Android werden Surfaces an SurfaceFlinger gesendet, das OpenGL ES für die Bildkomposition verwendet.
Der Hardware Composer (HWC) wurde mit Android 3.0 eingeführt und seitdem stetig weiterentwickelt. Seine Hauptaufgabe besteht darin, die effizienteste Methode zum Zusammensetzen von Puffern mit der verfügbaren Hardware zu ermitteln. Als Hardware-Assembler ist seine Implementierung gerätespezifisch und wird üblicherweise vom Display-Hardware-OEM durchgeführt.
Quarzkomposit
Für Apples macOS- Betriebssystemfamilie erfüllt Quartz Compositor die Aufgaben eines Display-Servers und eines Fenstermanagers im Fenstersystem.
Desktopfenster-Manager
Unter Microsoft Windows ermöglicht der Desktop Window Manager (DWM) ab Windows Vista die Nutzung von Hardwarebeschleunigung für die Darstellung der grafischen Benutzeroberfläche. Er wurde ursprünglich entwickelt, um Teile der neuen Benutzeroberfläche „Windows Aero“ zu ermöglichen, die Effekte wie Transparenz, 3D-Fensterwechsel und mehr bot. DWM ist auch in Windows Server 2008 enthalten, erfordert jedoch die Installation der Funktion „Desktopdarstellung“ und kompatibler Grafiktreiber. Ab Windows 8 lässt sich DWM nicht deaktivieren und wird softwareseitig gerendert , falls keine geeignete Grafikkarte installiert ist.
Liste der Fenstersysteme
Für Unix-ähnliche Betriebssysteme
- 8½ und Rio für Plan 9
- fbui (mit einem modifizierten Linux-Kernel)
- HP Windows/9000 (auf frühen Versionen von HP-UX ) [ 13 ]
- CMU Andrew Window Manager [ 14 ]
- Saphir [ 15 ] für den PERQ
- Whitechapel Oriel [ 16 ]
- Silicon Graphics MEX
- Manager (MGR)
- Metisse
- Mir
- NeWS / OpenWindows
- NeXT DPS
- Orbital ( Redox )
- Qt Extended
- Quartz Compositor ( macOS )
- SunView
- Twin (Text WINdows)
- W-Fenstersystem
- Wayland
- X-Fenstersystem
- XFast
- Xynth
- Y-Windows [ 17 ]
Für Betriebssysteme der Windows NT-Familie
- Desktopfenster-Manager (DWM) in Microsoft Windows ( Vista und höher)
- ReactOS Explorer
- Klassische Schale
- Pokki
- RetroUI
Web -Fenstersysteme
Andere
- DM
- JUWEL
- Intuition
- Mikrofenster
- MiniGUI
- OOHG
- Vision
- VWS (VAX Workstation Software)
- mpx/mux (für das Bell Labs Blit- Terminal)
- Symbolische dynamische Fenster
Einige Systeme wie Microsoft Windows ( XP , 9x und früher), das klassische Mac OS (Version 9 und früher) und Palm OS enthalten ein Fenstersystem, das in das Betriebssystem integriert ist.
Siehe auch
Referenzen
- ^ Kent, Allen; Williams, James G. (11.10.1996). Encyclopedia of Microcomputers: Volume 19 - Truth Maintenance Systems to Visual Display Quality . CRC Press. S. 227. ISBN 9780824727178Abgerufen am 8. Juni 2017 .
- ^ "app" . gitlab.freedesktop.org . Abgerufen am 26.07.2025 .
- ^ „Kapitel 1. Einleitung“ . wayland.freedesktop.org . Abgerufen am 26.07.2025 .
- ^ „Initiativen/Wayland/GnomeShell – GNOME Wiki-Archiv“ . wiki.gnome.org . Abgerufen am 26.07.2025 .
- ^ Flöser, Martin (21.09.2012). „Ein aktuelles Update zum Fortschritt von Wayland in KWin und KDE“ . Martins Blog . Abgerufen am 26.07.2025 .
- ^ „Tizen Native API: Ecore_Wl2 - Wayland integration“ . docs.tizen.org . Abgerufen am 26.07.2025 .
- ^ „Apps“ . Sailfish OS-Dokumentation . Abgerufen am 26.07.2025 .
- ^ „Grafiken und Eingabe“ . www.webosose.org . Abgerufen am 26.07.2025 .
- ^ „Ozonübersicht“ . Abgerufen am 20.08.2017 .
- ^ „Android-Systemarchitektur“ (PDF) . Archiviert vom Original (PDF) am 08.04.2016.
- ^ "Android-Entwickler: Surface" .
- ^ "Android Developer: SurfaceFlinger and Hardware Composer" .
- ^ „HP Windows/9000 Benutzerhandbuch“ (PDF) . Hewlett Packard. April 1988. Abgerufen am 26.10.2021 .
- ^ „Andrew: Eine verteilte persönliche Computerumgebung“ (PDF) . Communications of the ACM . 29 (3). März 1986.
- ^ Myers, Brad (Dez. 1984). „Die Benutzeroberfläche für Sapphire“ (PDF) . IEEE Computer Graphics and Applications . 4 (12): 13–23 . doi : 10.1109/MCG.1984.6429376 . S2CID 11138733 .
- ^ „Chilton::INF::Window Management“ . www.chilton-computing.org.uk . Abgerufen am 11.04.2023 .
- ^ „Das Y-Window-System“ . www.y-windows.org . Abgerufen am 15.12.2025 .