106.2 Lektion 1
Zertifikat: |
LPIC-1 |
---|---|
Version: |
5.0 |
Thema: |
106 Benutzerschnittstellen und Desktops |
Lernziel: |
106.2 Grafische Desktops |
Lektion: |
1 von 1 |
Einführung
Linux-basierte Betriebssysteme sind für ihre fortschrittliche Kommandozeilenschnittstelle bekannt, die auf technisch weniger versierte Benutzer jedoch einschüchternd wirken kann. In der Absicht, die Computernutzung intuitiver zu gestalten, führte die Kombination von hochauflösenden Displays mit Zeigegeräten zur Entwicklung bildgesteuerter Benutzeroberflächen. Während die Kommandozeilenschnittstelle Kenntnisse über Programmnamen und deren Konfigurationsoptionen erfordert, lösen bei einer graphischen Benutzeroberfläche (Graphical User Interface, GUI) das Zeigen auf bekannte visuelle Elemente die Programmfunktionalität aus, wodurch die Lernkurve flacher wird. Außerdem ist die grafische Oberfläche am besten für Multimedia und andere visuell orientierte Aktivitäten geeignet.
Tatsächlich ist die grafische Benutzeroberfläche beinahe ein Synonym für Computeroberfläche, und die meisten Linux-Distributionen werden standardmäßig mit der grafischen Oberfläche installiert. Es gibt jedoch nicht ein einziges monolithisches Programm, das für die voll ausgestatteten grafischen Desktops in Linux-Systemen verantwortlich ist. Vielmehr ist jeder grafische Desktop eine große Sammlung von Programmen und deren Abhängigkeiten, die je nach Distribution und persönlichem Geschmack des Benutzers variieren.
X Window System
In Linux und anderen Unix-ähnlichen Betriebssystemen, in denen es eingesetzt wird, stellt das X Window System (auch bekannt als X11 oder einfach nur X) die Low-Level-Ressourcen bereit, die mit der Darstellung der grafischen Oberfläche und der Interaktion des Benutzers mit dieser zusammenhängen, z.B.:
-
Die Behandlung der Eingabeereignisse, wie Mausbewegungen oder Tastatureingaben.
-
Die Möglichkeit, Textinhalte zwischen verschiedenen Anwendungen auszuschneiden, zu kopieren und einzufügen.
-
Die Programmierschnittstelle, auf die andere Programme zurückgreifen, um grafische Elemente zu zeichnen.
Obwohl das X Window System für die Steuerung der grafischen Anzeige zuständig ist (der Videotreiber selbst ist Teil von X), ist es nicht dazu gedacht, komplexe visuelle Elemente selbst zu zeichnen. Formen, Farben, Schattierungen und alle anderen visuellen Effekte werden von der Anwendung generiert, die auf X aufsetzt. Dieser Ansatz gibt Anwendungen viel Spielraum für die Erstellung angepasster Oberflächen, kann aber auch zu einem Entwicklungsaufwand führen, der den Rahmen der Anwendung sprengt, sowie zu Inkonsistenzen in Aussehen und Verhalten im Vergleich zu anderen Programmoberflächen.
Aus Entwicklersicht erleichtert die Einführung der Desktopumgebung die an die zugrundeliegende Anwendungsentwicklung gebundene GUI-Programmierung, während sie dem Benutzer eine konsistente Erfahrung zwischen verschiedenen Anwendungen bietet. Desktopumgebungen bringen Programmierschnittstellen, Bibliotheken und unterstützende Programme zusammen, um traditionelle, aber auch sich noch entwickelnde Designkonzepte zu liefern.
Desktopumgebung
Die traditionelle Desktopcomputer-GUI besteht aus verschiedenen Fenstern – der Begriff Fenster (Window) wird hier für jeden autonomen Bildschirmbereich verwendet –, die mit laufenden Prozessen verbunden sind. Da das X Window System allein nur grundlegende interaktive Funktionen bietet, hängt das volle Benutzererlebnis von den Komponenten ab, die die Desktopumgebung bereitstellt.
Der Windowmanager ist die wohl wichtigste Komponente einer Desktopumgebung und steuert die Fensterplatzierung und -dekoration. Es ist der Windowmanager, der dem Fenster die Titelleiste hinzufügt, die Steuerschaltflächen — in der Regel verbunden mit den Aktionen Minimieren, Maximieren und Schließen — und der das Umschalten zwischen geöffneten Fenstern verwaltet.
Note
|
Die grundlegenden Konzepte der grafischen Oberflächen von Desktopcomputern übernehmen jene realer Büroarbeitsplätze. Metaphorisch gesprochen ist der Computerbildschirm der Schreibtisch, auf dem Objekte wie Dokumente und Ordner abgelegt werden. Ein Anwendungsfenster mit dem Inhalt eines Dokuments imitiert Aktionen wie das Ausfüllen eines Formulars oder das Malen eines Bildes. Als tatsächliche Schreibtische haben Computerdesktops auch hilfreiche Ausstattung wie Notizblöcke, Uhren, Kalender etc. |
Alle Desktopumgebungen stellen einen Fenstermanager zur Verfügung, der das Aussehen und die Bedienung seines Widget Toolkits anpasst. Widgets sind informative oder interaktive visuelle Elemente, wie Schaltflächen oder Texteingabefelder, die im Anwendungsfenster verteilt sind. Die Standarddesktopkomponenten — wie der Anwendungsstarter, die Taskleiste etc. — und der Fenstermanager selbst stützen sich auf solche Widget Toolkits, um ihre Oberflächen zusammenzustellen.
Softwarebibliotheken wie GTK+ und Qt stellen Widgets zur Verfügung, mit denen Programmierer aufwendige grafische Oberflächen für ihre Anwendungen erstellen können. In der Vergangenheit sahen Anwendungen, die mit GTK+ entwickelt wurden, nicht so aus wie mit Qt erstellte Anwendungen (und umgekehrt), aber die bessere Theme-Unterstützung der heutigen Desktopumgebungen macht die Unterschiede weniger offensichtlich.
Insgesamt bieten GTK+ und Qt die gleichen Funktionen in Bezug auf Widgets. Einfache interaktive Elemente können ununterscheidbar sein, während zusammengesetzte Widgets — wie z.B. das Dialogfenster, das von Anwendungen zum Öffnen oder Speichern von Dateien verwendet wird — recht unterschiedlich aussehen können. Dennoch können Anwendungen, die mit unterschiedlichen Toolkits erstellt wurden, gleichzeitig ausgeführt werden, unabhängig davon, welches Widget Toolkit die anderen Desktopkomponenten nutzen.
Neben den grundlegenden Desktopkomponenten, die als eigenständige Programme betrachtet werden könnten, folgen Desktopumgebungen der Schreibtischmetapher, indem sie einen minimalen Satz von Hilfsanwendungen nach denselben Designrichtlinien bereitstellen. Varianten der folgenden Anwendungen werden in der Regel von allen größeren Desktopumgebungen bereitgestellt:
- Systembezogene Anwendungen
-
Terminalemulator, Dateimanager, Paketinstallationsmanager, Systemkonfigurationswerkzeuge
- Kommunikation und Internet
-
Kontaktmanager, E-Mail-Client, Webbrowser
- Office-Anwendungen
-
Kalender, Taschenrechner, Texteditor
Desktopumgebungen können viele andere Dienste und Anwendungen umfassen: den Anmeldebildschirm, den Sitzungsmanager, die Interprozesskommunikation, den Schlüsselbundagenten usw. Sie enthalten auch Funktionen, die die Systemdienste von Drittanbietern bereitstellen, wie z.B. PulseAudio für die Tonausgabe und CUPS zum Drucken. Diese Funktionen benötigen die grafische Umgebung nicht, um zu laufen, aber die Desktopumgebung bietet grafische Frontends, um die Konfiguration und den Betrieb solcher Ressourcen zu erleichtern.
Beliebte Desktopumgebungen
Viele proprietäre Betriebssysteme unterstützen nur eine einzige offizielle Desktopumgebung, die an ihre jeweilige Version gebunden ist und nicht geändert werden soll. Im Gegensatz dazu unterstützen Linux-basierte Betriebssysteme in Verbindung mit X verschiedene Desktopumgebungsoptionen. Jede Desktopumgebung hat ihre eigenen Funktionen, aber diese teilen in der Regel einige Designkonzepte:
-
Ein Anwendungsstarter, der die im System verfügbaren eingebauten und von Dritten angebotenen Anwendungen auflistet.
-
Regeln, die die mit Dateitypen und Protokollen verknüpften Standardanwendungen definieren.
-
Konfigurationswerkzeuge für Aussehen und Verhalten der Desktopumgebung.
Gnome ist eine der beliebtesten Desktopumgebungen und die erste Wahl in Distributionen wie Fedora, Debian, Ubuntu, SUSE Linux Enterprise, Red Hat Enterprise Linux, CentOS etc. In Version 3 brachte Gnome größere Änderungen in Aussehen und Struktur, entfernte sich von der Schreibtischmetapher und führte die Gnome Shell als neue Oberfläche ein.
Der allgemeine Fullscreen Launcher Gnome Shell Activities hat den traditionellen Anwendungsstarter und die Taskleiste ersetzt. Es ist jedoch weiterhin möglich, Gnome 3 mit dem alten Aussehen zu verwenden, indem Sie im Anmeldebildschirm die Option Gnome Classic auswählen.
KDE ist ein großes Ökosystem von Anwendungen und Entwicklungsplattform. Die neueste Version der Desktopumgebung, KDE Plasma, wird standardmäßig in openSUSE, Mageia, Kubuntu usw. verwendet. Der Einsatz der Qt-Bibliothek ist das hervorstechende Merkmal von KDE, das ihm sein unverwechselbares Aussehen und eine Fülle von Originalanwendungen beschert. KDE bietet sogar ein Konfigurationswerkzeug, um die visuelle Kohärenz mit GTK+-Anwendungen sicherzustellen.
Xfce ist eine Desktopumgebung, die ästhetisch ansprechend und zugleich ressourcenschonend sein soll. Die Struktur ist hochgradig modularisiert, so dass Benutzer Komponenten je nach Bedarf und Vorlieben aktivieren und deaktivieren können.
Es gibt viele andere Desktopumgebungen für Linux, die in der Regel von alternativen Distributionen zur Verfügung gestellt werden. Die Distribution Linux Mint bietet zum Beispiel zwei originale Desktopumgebungen: Cinnamon (ein Fork von Gnome 3) und MATE (ein Fork von Gnome 2). LXDE ist eine auf geringen Ressourcenverbrauch ausgerichtete Desktopumgebung, was sie zu einer guten Wahl für die Installation auf älteren Geräten oder Einplatinenrechnern macht. LXDE bietet zwar nicht alle Funktionen großer Desktopumgebungen, aber alle grundlegenden Funktionen, die man von einer modernen grafischen Benutzeroberfläche erwartet.
Tip
|
Tastenkombinationen spielen eine wichtige Rolle bei der Interaktion mit der Desktopumgebung. Einige Tastenkombinationen — wie z.B. Alt+Tab zum Umschalten zwischen Fenstern oder Strg+c zum Kopieren von Text — sind für alle Desktopumgebungen gültig, aber jede Desktopumgebung hat auch ihre eigenen Tastenkombinationen. Tastaturkürzel finden Sie in dem von der Desktopumgebung bereitgestellten Tastaturkonfigurationswerkzeug, in dem Kurzbefehle hinzugefügt oder geändert werden können. |
Desktop-Interoperabilität
Die Vielfalt der Desktopumgebungen in Linux-basierten Betriebssystemen stellt eine Herausforderung dar: Wie erfolgt die Interaktion mit grafischen Anwendungen oder Systemdiensten von Drittanbietern, ohne für jede Umgebung eine spezielle Unterstützung zu implementieren? Gemeinsame Methoden und Spezifikationen für alle Desktopumgebungen verbessern die Benutzerfreundlichkeit erheblich und lösen viele Entwicklungsprobleme, da grafische Anwendungen mit der aktuellen Desktopumgebung interagieren müssen, unabhängig davon, für welche Desktopumgebung sie ursprünglich entwickelt wurden. Darüber hinaus ist es wichtig, allgemeine Desktopeinstellungen beizubehalten, wenn der Benutzer die Desktopumgebung ändert.
Zahlreiche Spezifikationen zur Desktop-Interoperabilität pflegt die Organisation freedesktop.org. Die Übernahme der vollständigen Spezifikation ist nicht obligatorisch, aber viele sind weit verbreitet:
- Verzeichnisstandorte
-
Wo sich die persönlichen Einstellungen und andere benutzerspezifische Dateien befinden.
- Desktopeinträge
-
Kommandozeilenanwendungen können in der Desktopumgebung über einen beliebigen Terminalemulator ausgeführt werden, aber es wäre zu unübersichtlich, alle Anwendungen im Anwendungsstartprogramm verfügbar zu machen. Desktopeinträge sind Textdateien, die mit
.desktop
enden und von der Desktopumgebung verwendet werden, um Informationen über die verfügbaren Desktopanwendungen und deren Verwendung zu sammeln. - Autostart von Anwendung
-
Desktopeinträge für eine Anwendung, die nach Anmeldung des Benutzers automatisch gestartet wird.
- Ziehen und Ablegen
-
Wie Anwendungen Drag&Drop-Ereignisse behandeln sollten.
- Papierkorb
-
Der übliche Speicherort von Dateien, die vom Dateimanager gelöscht werden, sowie die Methoden zum Speichern und Entfernen von Dateien von dort.
- Icon-Themes
-
Das gemeinsame Format für austauschbare Symbolbibliotheken.
Die Benutzerfreundlichkeit von Desktopumgebungen hat im Vergleich zu Textschnittstellen wie der Shell einen Nachteil: den Fernzugriff. Während Sie eine Kommandozeilenumgebung eines entfernten Rechners einfach mit Tools wie ssh
zugreifen, erfordert der Fernzugriff auf grafische Umgebungen andere Methoden und erreicht bei langsameren Verbindungen möglicherweise keine zufriedenstellende Leistung.
Nichtlokaler Zugriff
Das X Window System nutzt ein Design, das auf autonomen Displays basiert, wobei derselbe X-Displaymanager mehrere grafische Desktopsitzungen gleichzeitig steuern kann. Im Grunde funktioniert ein Display wie ein Textterminal: Beide beziehen sich auf eine Maschine oder eine Softwareanwendung, die als Einstiegspunkt zum Aufbau einer unabhängigen Betriebssystemsitzung verwendet wird. Obwohl die häufigste Konfiguration eine einzelne grafische Sitzung auf dem lokalen Rechner umfasst, sind auch andere, weniger konventionelle Konfigurationen möglich:
-
Umschalten zwischen aktiven grafischen Desktopsitzungen auf demselben Rechner.
-
Mehr als ein Satz von Anzeigegeräten (z.B. Bildschirm, Tastatur, Maus), die an denselben Rechner angeschlossen sind und jeweils eine eigene grafische Desktopsitzung steuern.
-
Entfernte grafische Desktopsitzungen, bei denen die grafische Oberfläche über das Netzwerk an einen entfernten Bildschirm gesendet wird.
Remote-Desktopsitzungen werden nativ von X unterstützt, das dazu das X Display Manager Control Protocol (XDMCP) zur Kommunikation mit Remote-Anzeigen einsetzt. Aufgrund der hohen Bandbreitennutzung wird XDMCP nur selten über das Internet oder in LANs mit niedriger Geschwindigkeit verwendet. Auch Sicherheitsprobleme sind bei XDMCP ein Thema: Das lokale Display kommuniziert mit einem privilegierten, entfernten X Display Manager, um entfernte Prozeduren auszuführen, so dass eine eventuelle Sicherheitslücke die Ausführung beliebiger privilegierter Befehle auf dem entfernten Rechner ermöglichen könnte.
Außerdem erfordert XDMCP X-Instanzen, die auf beiden Seiten der Verbindung laufen, was es unpraktikabel macht, wenn das X Window System nicht auf allen beteiligten Rechnern verfügbar ist. In der Praxis kommen andere, effizientere und weniger invasive Methoden zum Einsatz, um grafische Remote-Desktopsitzungen aufzubauen.
Virtual Network Computing (VNC) ist ein plattformunabhängiges Werkzeug zum Anzeigen und Steuern von Remote-Desktopumgebungen unter Verwendung des Remote Frame Buffer-Protokolls (RFB). Dadurch werden Ereignisse, die von der lokalen Tastatur und Maus erzeugt werden, an den entfernten Desktop übertragen, der seinerseits alle Bildschirmaktualisierungen zurücksendet, die lokal angezeigt werden sollen. Es ist möglich, viele VNC-Server auf demselben Rechner zu betreiben, aber jeder VNC-Server benötigt einen exklusiven TCP-Port in der Netzwerkschnittstelle, der eingehende Sitzungsanfragen akzeptiert. Laut Konvention sollte der erste VNC-Server den TCP-Port 5900 verwenden, der zweite den Port 5901 und so weiter.
Der VNC-Server benötigt keine besonderen Berechtigungen, um zu laufen. Ein normaler Benutzer kann sich z.B. an seinem Remote-Account anmelden und von dort aus seinen eigenen VNC-Server starten. Auf dem lokalen Rechner kann dann eine beliebige VNC-Clientanwendung verwendet werden, um auf den entfernten Desktop zuzugreifen (vorausgesetzt, die entsprechenden Netzwerkports sind erreichbar). Die Datei ~/.vnc/xstartup
ist ein Shellskript, das der VNC-Server beim Start ausführt und über das man festlegt, welche Desktopumgebung der VNC-Server dem VNC-Client zur Verfügung stellt. Es ist wichtig zu beachten, dass VNC von Haus aus keine modernen Verschlüsselungs- und Authentifizierungsmethoden bietet, daher sollte es in Verbindung mit einer Anwendung eines Drittanbieters verwendet werden, die solche Funktionen bietet. Bei der Absicherung von VNC-Verbindungen kommen häufig Methoden mit VPN- und SSH-Tunneln zum Einsatz.
Das Remote Desktop Protocol (RDP) wird meist für den Fernzugriff auf den Desktop eines Microsoft Windows-Betriebssystems über den Netzwerkport TCP 3389 genutzt. Obwohl es das proprietäre RDP-Protokoll von Microsoft nutzt, handelt es sich bei der in Linux-Systemen verwendeten Client-Implementierung um Open-Source-Programme, die unter der GNU General Public License (GPL) lizenziert sind und keine rechtlichen Einschränkungen bei der Verwendung aufweisen.
Das Simple Protocol for Independent Computing Environments (Spice) umfasst eine Reihe von Werkzeugen für den Zugriff auf die Desktopumgebung virtualisierter Systeme, entweder auf dem lokalen Rechner oder an einem entfernten Standort. Darüber hinaus bietet das Spice-Protokoll native Funktionen zur Integration des lokalen und des entfernten Systems, wie etwa die Möglichkeit des Zugriffs auf lokale Geräte (z.B. die Lautsprecher und die angeschlossenen USB-Geräte) vom entfernten Rechner aus und die gemeinsame Nutzung von Dateien zwischen den beiden Systemen.
Es gibt spezifische Clientbefehle, um sich mit jedem dieser Remote-Desktopprotokolle zu verbinden, aber der Remmina Remote-Desktopclient bietet eine integrierte grafische Oberfläche, die den Verbindungsprozess erleichtert und optional die Verbindungseinstellungen für eine spätere Verwendung speichert. Remmina hat Plugins für jedes einzelne Protokoll, und es gibt Plugins für XDMCP, VNC, RDP und Spice. Die Wahl des richtigen Tools hängt von den beteiligten Betriebssystemen, der Qualität der Netzwerkverbindung und davon ab, welche Funktionen der Remote-Desktopumgebung verfügbar sein sollen.
Geführte Übungen
-
Welche Art von Anwendung bietet fensterbasierende Shellsitzungen in der Desktopumgebung?
-
Aufgrund der Vielfalt der Linux-Desktopumgebungen kann es für eine Anwendung mehr als eine Variante geben, die jeweils am besten für ein bestimmtes Widget Toolkit geeignet ist. Zum Beispiel gibt es von dem Bittorrent-Client Transmission sowohl transmission-gtk als auch transmission-qt. Welche der beiden sollten Sie installieren, um eine maximale Integration mit KDE zu gewährleisten?
-
Welche Linux-Desktopumgebungen empfehlen sich für kostengünstige Einplatinen-Computer mit geringer Rechenleistung?
Offene Übungen
-
Es gibt zwei Möglichkeiten, Text im X Window System zu kopieren und einzufügen: mit den traditionellen Tastenkombinationen Strg+c und Strg+v (auch im Fenstermenü verfügbar) oder durch Klicken mit der mittleren Maustaste, um den aktuell ausgewählten Text einzufügen. Wie können Sie Text aus einem Terminalemulator kopieren und einfügen?
-
Die meisten Desktopumgebungen weisen das Tastaturkürzel Alt+F2 dem Fenster Programm ausführen zu, in dem Programme wie auf der Kommandozeile ausgeführt werden. Welcher Befehl führt in KDE den Standardterminalemulator aus?
-
Welches Protokoll ist am besten geeignet, um von einer Linux-Desktopumgebung aus auf einen entfernten Windows-Desktop zuzugreifen?
Zusammenfassung
Diese Lektion bietet einen Überblick über grafische Desktops, die für Linux-Systeme verfügbar sind. Das X Window System allein bietet nur einfache Oberflächenfunktionen, daher erweitern Desktopumgebungen die Benutzererfahrung in der grafischen Fensteroberfläche. In der Lektion werden die folgenden Themen behandelt:
-
Konzepte der grafischen Oberfläche und des X Window System.
-
Für Linux verfügbare Desktopumgebungen.
-
Gemeinsamkeiten und Unterschiede zwischen Desktopumgebungen.
-
Wie man auf eine Remote-Desktopumgebung zugreift.
Die angesprochenen Konzepte und Programme sind:
-
X Window System.
-
Beliebte Desktopumgebungen: KDE, Gnome, Xfce.
-
Fernzugriffsprotokolle: XDMCP, VNC, RDP, Spice.
Lösungen zu den geführten Übungen
-
Welche Art von Anwendung bietet fensterbasierte Shellsitzungen in der Desktopumgebung?
Jeder Terminalemulator wie Konsole, Gnome-Terminal, xterm usw. ermöglicht den Zugriff auf eine lokale interaktive Shellsitzung.
-
Aufgrund der Vielfalt der Linux-Desktopumgebungen kann es für eine Anwendung mehr als eine Variante geben, die jeweils am besten für ein bestimmtes Widget Toolkit geeignet ist. Zum Beispiel gibt es von dem Bittorrent-Client Transmission sowohl transmission-gtk als auch transmission-qt. Welche der beiden sollten Sie installieren, um eine maximale Integration mit KDE zu gewährleisten?
KDE baut auf der Qt-Bibliothek auf, daher sollte die Qt-Version transmission-qt installiert werden.
-
Welche Linux-Desktopumgebungen empfehlen sich für kostengünstige Einplatinen-Computer mit geringer Rechenleistung?
Einfache Desktopumgebungen, die nicht zu viele visuelle Effekte verwenden, wie Xfce und LXDE.
Lösungen zu den offenen Übungen
-
Es gibt zwei Möglichkeiten, Text im X Window System zu kopieren und einzufügen: mit den traditionellen Tastenkombinationen Strg+c und Strg+v (auch im Fenstermenü verfügbar) oder durch Klicken mit der mittleren Maustaste, um den aktuell ausgewählten Text einzufügen. Wie können Sie Text aus einem Terminalemulator kopieren und einfügen?
Interaktive Shellsitzungen weisen die Tastenkombination Strg+c zu, um die Programmausführung anzuhalten, daher wird die Benutzung der mittleren Maustaste empfohlen.
-
Die meisten Desktopumgebungen weisen das Tastaturkürzel Alt+F2 dem Fenster Programm ausführen zu, in dem Programme wie auf der Kommandozeile ausgeführt werden. Welcher Befehl führt in KDE den Standardterminalemulator aus?
Der Befehl
konsole
führt den Terminalemulator von KDE aus, aber allgemeine Begriffe wie terminal funktionieren ebenfalls. -
Welches Protokoll ist am besten geeignet, um von einer Linux-Desktopumgebung aus auf einen entfernten Windows-Desktop zuzugreifen?
Das Remote Desktop Protocol (RDP), da es sowohl von Windows als auch von Linux nativ unterstützt wird.