Sobald das System hochgefahren ist und einen
Display Manager
wie zum Beispiel gdm3(1)
gestartet hat,
begrüßt es uns mit einem Anmeldebildschirm.
Nach erfolgreicher Anmeldung durch Eingabe
eines korrekten Passworts und startet die
Desktop-Umgebung.
pam_systemd(8)
registriert eine Sitzung im Login Daemon,
und veranlasst den Service-Manager, die Units in
~/.config/systemd/user
etc. zu starten.
Der Kernel meldet Hotplug-Ereignisse, also wenn Geräte
angeschlossen oder entfernt werden, per netlink(7)
-Socket an den
udev(7)
-Daemon. Dieser legt Gerätedateien unter
/dev
an und informiert den dbus-daemon(1)
.
UPower überwacht den Batteristatus und
UDisks montiert Datenträger.
So kann zum Beispiel beim Einstecken eines
USB-Geräts
die grafische Oberfläche ein Symbol auf dem Desktop anzeigen.
Programm | Kommando | Operand | Beschreibung |
---|---|---|---|
busctl | help | Hilfe anzeigen | |
list | Registrierte Namen auflisten | ||
status | [Service] | Eigenschaften eines Dienstes anzeigen | |
monitor | [Service …] | Nachrichten eines Dienstes beobachten | |
capture | [Service …] | Nachrichten im pcap -Format aufzeichnen | |
tree | [Service …] | Baumstruktur eines Dienstes anzeigen | |
introspect | Service Object [Interface] | ||
call | Service Object Interface Method [Signature [Argument …]] | ||
set-property | Service Object Interface Property Signature Argument … | ||
get-property | Service Object Interface Property ... |
Beispiel
busctl tree org.freedesktop.UPower └─/org └─/org/freedesktop └─/org/freedesktop/UPower ├─/org/freedesktop/UPower/KbdBacklight ├─/org/freedesktop/UPower/Wakeups └─/org/freedesktop/UPower/devices ├─/org/freedesktop/UPower/devices/DisplayDevice ├─/org/freedesktop/UPower/devices/battery_BAT0 └─/org/freedesktop/UPower/devices/line_power_AC
Die graphische Oberfläche (GUI) ist modular aufgebaut. Ein Fenstermanager verwaltet die Fenster der Programme und der Compositor spricht mit der Hardware, die per EDID. automatisch erkannt wird.
Die meisten Programme verwenden eine Bibliothek für die Darstellung der Bedienelemente. Moderne Bibliothken wie GTK+ oder Qt verwenden die Vektor-Bibliothek Cairo. Diese wiederum überlässt das Zeichnen graphischer Primitiven, Gradienten und Matrix-Transformationen dem hardwarebeschleunigten XRender-Modul des X-Servers.
Dreidimensionale Darstellung erfolgt üblicherweise über die 3D-Grafik-Bibliothek Mesa. Diese implementiert nach außen die OpenGL-Schnittstelle und nutzt intern das DRI-Modul des X-Servers. Wenn keine Hardware-Beschleunigung möglich ist, rendern sowohl Cairo als auch Mesa die Pixelgrafiken selbst.
PulseAudio koordiniert PCM-Datenströme zwischen diversen Quellen (GStreamer-, Xine-, ALSA- und OSS-Clients) und Senken (Soundkarte, Netzwerk, RTP-Empfänger).
Programme, die ALSA direkt verwenden, werden zu PulseAudio umgeleitet.
/etc/asound.confpcm.default pulse ctl.default pulse
PulseAudio wiederum kann Datenströme auf einen anderen Rechner umleiten.
/etc/pulse/client.confset default-server Host
Oder temporär:
export PULSE_SERVER=Host
Der Client findet verfügbare Server per DNS-SD und sendet Daten per RTP.
/etc/pulse/default.paload-module module-zeroconf-discover load-module module-null-sink sink_name=rtp load-module module-rtp-send source=rtp.monitor set-default-sink rtp
Der Server sollte seine Dienste per ZeroConf anpreisen
/etc/pulse/default.paload-module module-zeroconf-publish load-module module-rtp-recv
CUPS unterstützt das IPP für lokal angeschlossene und netzwerkbasierte Drucker. Der Daemon lauscht auf Port 631.
Ein normaler Benutzer bekommt die nötigen Rechte für die Verwaltung von Druckern.
adduser User lpadmin
Dieser kann Drucker dann entweder auf der Kommandozeile, mit Hilfe der grafischen Oberfläche, oder webbasiert unter http://localhost:631/ verwalten. Eine Liste der verfügbaren Drucker bekommt man mit:
lpstat -a gutenberg akzeptiert anfragen seit Mi 24 Jul 2019 11:35:41 CEST
Papierformat festlegen
/etc/papersizea4