Sie sind auf Seite 1von 100

Anzeige:

08/23

RSS-Feedreader im
Direktvergleich S. 38 K8s-Quirks S. 52 Vcpkg S. 76
Akregator, Fluent Reader, Gfeeds, Liferea Wo der populäre Container- Einfach zu bedienender,
und QuiteRSS: fünf Nachrichtenzentralen Orchestrierer Kubernetes effizienter Paketmanager
für die grafische Benutzeroberfläche noch Probleme aufweist für C/C++-Bibliotheken

Wissen strukturiert, systematisch und nachvollziehbar festhalten

PERFEKTE DOKU Wie und womit Sie Software, Hardware


und ­Netzwerke optimal dokumentieren:
Grundlagen, Werkzeuge, Best Practices
und Praxistipps von Profis ab S. 14

■ WLAN-Health-Check mit Go S. 80 ■ Concepts in C++20 ausreizen S. 86

Katastrophensicheres Backup S. 48 • KI-Basics S. 62 • Automatisches Schwachstellenmanagement S. 64

Deutschland Österreich Schweiz Benelux


www.linux-magazin.de Spanien
€ 8,99 € 9,70
Italien sfr 14,90 € 10,50 € 11,00 € 11,00 4 192587 308993 08
Im Notfall lässt man
lieber die Experten ran
Wir bringen Ihren Server wieder auf die Füße - versprochen!

Serverdoks kontaktieren:
thomas-krenn.com/dok
+49 (0) 8551.9150-300
Login Editorial

Sozialversager

Jens-Christoph Brendel
Stellv. Chefredakteur

Manch einer mag vielleicht leicht pikiert nicht einmal. Computer verstehen nicht Nicht einmal die Sexindustrie glaubt üb-
den Blick senken, andere werden es nur nicht, was sie sagen, genauso wenig rigens, dass ein optisch perfekter, KI-ge-
amüsiert zur Kenntnis nehmen, wieder empfinden sie etwas dabei. nerierter Schauspieler die Kundschaft
andere glauben es einfach nicht. Und Manche Entwicklungen mögen mo- überzeugen könnte. Mark Spiegler, ein
doch ist es eine Tatsache: Viele techni- mentan den Anschein erwecken, als gäbe Agent für Pornodarsteller, den die
sche Innovationen mindestens der letz- es für immer intelligentere Computer ­Washington Post zitiert, meint, seine
ten Jahrzehnte hat die Pornoindustrie bald überhaupt keine Arbeiten mehr, die Schützlinge operierten mit Charisma,
mit vorangetrieben. Angefangen bei der sie nicht übernehmen könnten. Tatsäch- Können und Attraktivität. Und da könne
VHS-Kassette, die sich durchsetzte, weil lich aber gibt es eine Schranke, und die eben keine KI mithalten. „Ich glaube nicht,
die Konkurrenten Video 2000 und Beta- ist absolut. Ein Pflegeroboter mag helfen, dass man eine Persönlichkeit maschinell
max keine Schmuddelinhalte auf ihren einen Patienten umzulagern – Anteil an lernen kann. Man kann es ein bisschen
Medien wissen wollten, über Virtual seinem Schicksal nehmen, ihn mitfüh- nachahmen, aber es fehlt immer noch
­Reality, Online-Bezahlsysteme oder lend trösten kann er nicht. Eine Jura-KI der menschliche Funke und die Sponta-
­Social-Media-Marketing bis hin zur aktu- mag auf unzählige Gesetzestexte und neität.“ Vielleicht zeigt das Unvermögen
ellen, bilderzeugenden KI – überall zähl- Präzedenzfälle zugreifen – Empathie mit des kalten Rechners in heißen Szenen
te das Erotik-Business zu den Vorreitern. dem Opfer empfinden, Strenge und Gna- ganz gut, dass es Grenzen gibt, die Ma-
Der Grund dafür ist simpel: Es war und ist de gegenüber dem Täter austarieren, das schinen kaum überschreiten können.
ein Milliardengeschäft. kann sie nicht. Lernsoftware mag die nö-
Man mag darüber die Nase rümpfen, es tigen Wiederholungen mit ausgeklügel-
belächeln oder als gegeben hinnehmen – ten Algorithmen steuern – einen ver-
die Technik selber trifft jedenfalls keine ständnisvollen Lehrer ersetzt sie nicht.
Schuld. Sie verfügt weder über ethische ChatGPT mag reimen können – wirklich
Maßstäbe noch sittliche Werte. Dafür dichten kann es nicht.
bleiben allein Menschen verantwortlich. KI kann längst im Stil von Picasso und
Alle Fähigkeiten, die sich unter Menschen Braque malen – den Kubismus hätte sie
herausgebildet haben, um ein soziales nie aus dem Nichts erfinden können. Zu-
Miteinander zu ermöglichen, sind Rech- sammengefasst: Allerspätestens da, wo
nern wesensfremd: Empathie, Fürsorge, es um Menschlichkeit geht, wo soziale
Liebe, Gerechtigkeitssinn oder Selbstlo- Kompetenz gefragt ist oder auch wo et-
sigkeit. Computer plagen keine Sorgen, was Niedagewesenes zu erschaffen ist,
sie freuen sich nicht, sie langweilen sich muss jede Maschine passen.

08.2023 www.linux-magazin.de 3
08
###### #######

28 Mit dem richtigen Werkzeug


geht die Arbeit mühelos und fast

14 Zu den wichtigsten Grundlagen


einer guten Dokumentation zäh-
len eine strukturierte Herangehensweise
wie von selbst von der Hand. So lässt sich
die Hardware- und Netzwerkdokumenta-
tion mit Netbox und den richtigen Plugins
48 Ein katastrophensicheres Back­
up für Ihre Daten stellen Sie mit
Werkzeugen wie Rsnapshot und Restic
und eine saubere Zielgruppenanalyse. effizient und komfortabel erledigen. ohne großen Aufwand auf die Beine.

Aktuell Titelthema Software

News ................................................ 6 Einführung......................................14 Einführung..................................... 35


• Debian 12 „Bookworm“ ist fertig Ein Erfolgsfaktor für gute Dokumentation Auf der DELUG-DVD finden Sie diesmal
• Rust mit Sparse-Protokoll ist eine strukturierte und systematische ­Debian 12 „Bookworm“, 40 Vorträge von
• Unkaputtbares Fedora Onyx ­Herangehensweise. ­Dieser Beitrag vermit- den Chemnitzer Linux-Tagen 2023, vier
• C-Compiler im Boot-Sektor telt Grundlagenwissen darüber, wer was ­Dokumentationshelfer, OCIS 3, Mem-
• Gitlab setzt auf KI und wie dokumentieren sollte und wie test86+ und vieles andere mehr.
• OpenInfra Foundation plant für Europa man dabei den ­roten Faden nicht verliert.
• Infinite Scale mit „totem Briefkasten“ Tooltipps........................................ 36
Best Practices............................... 20 History-Datenbank Atuin 14.0.1, CLI-Rech-
Zahlen & Trends ............................ 10
Gestandene Praktiker von Suse und Own­ ner Calculator, Code-Differ Diffsitter 0.8.0,
• Red Hat pflegt Libre Office nicht weiter cloud berichten über ihre Einsichten in die Text-Wiki Mdwiki 0.1.0, Webtacho P0d 0.4.0,
• BSI startet Projekt für sichere Kommunen erfolgversprechendsten Dokumentations- RSS-Feedreader Trss 0.3.
• AlmaLinux erhält Verstärkung methoden und ihre Erfahrungen im Um-
• Jahresbericht Telekommunikation 2022 gang mit den entsprechenden Tools. Bitparade....................................... 38
• Warnung: KI gefährlich wie Atomkrieg
Für den simultanen Empfang themenspezi-
• Leap 15 erhält letzte weitere Version Netbox............................................ 28 fischer Nachrichten aus mehreren Quellen
• Streik bei Stack Overflow wegen KI
Netbox hat sich als Werkzeug mit einer sind RSS-Feeds nach wie vor die erste Wahl.
Zwitterfunktion für DCIM und IPAM schon Wir haben uns einige der grafischen Reader
lange etabliert. Wer jedes verbaute Teil in unter Linux näher angesehen.
seinem Rechenzentrum einfach und ­sicher
dokumentieren will, findet in Netbox dafür
die perfekte Lösung.
Service
Editorial............................................ 3
IT-Profimarkt.................................90
Usergroups..................................... 92
Inserenten/Autoren/Events....... 96
Impressum.................................... 97
38 Für Nachrichten aus mehreren
Quellen sind RSS-Feeds erste
Wahl. Die Bitparade nimmt einige grafi-
Vorschau....................................... 98 sche Reader unter Linux unter die Lupe.

4 www.linux-magazin.de 08.2023
###### #####

64 Die integrierte Schwachstellen-


verwaltung des System-Builders

52 Kubernetes gilt als mehr oder


minder alternativlos. Nur selten
werden die immanenten Schwächen des
Buildroot hilft dabei, das Vulnerability
Management für selbst gestrickte Em-
bedded-Systeme zu automatisieren und
80 Bei der schnellen Fehlerdia­
gnose im WLAN zu Hause und
unterwegs hilft ein selbst geschriebenes
Container-Orchestrierers diskutiert. Aktualisierungen zeitnah auszurollen. kleines Go-Tool von Mike Schilli.

Sysadmin Know-how Programmieren

AaaS...............................................48 KI-Serie.......................................... 62 Vcpkg.............................................. 76


Umtriebige Linux-User arbeiten quasi Im ersten Teil unserer neuen KI-Serie geht Der Paketmanager Vcpkg von Microsoft
­papierfrei und speichern ihre Daten lokal, es um die grundlegenden Techniken des zeichnet sich durch Plattformunabhängig-
bei Hostern oder in der Cloud. Da fehlt ei- maschinellen Lernens. keit und einfache Bedienung aus.
gentlich nur noch eine robuste Sicherung
für die eigenen Daten. Kern-Technik..................................64 Snapshot........................................80
Der Vulnerability-Scanner von Buildroot Ein in Go geschriebenes Tool von Michael
Kubernetes-Kritik......................... 52 hilft beim Schwachstellenmanagement für Schilli hilft dabei, das WLAN auf Herz und
Heute ist Kubernetes in der IT allgegen­ eingebettete Linux-Systeme. Nieren zu prüfen, Probleme einzukreisen
wärtig. Anbieter versuchen fast schon mit und Fehler schnell zu beseitigen.
der Brechstange, die eigene Klientel von LD_PRELOAD................................. 70
den Vorzügen des Container-Orchestrierers Viele C-Programme nutzen Bibliotheken. C++................................................. 86
zu überzeugen. Doch der hat zum Teil er- Mit ein wenig C-Code ersetzen Sie dabei Nach der in den letzten Ausgaben abgear-
hebliche Qualitätsprobleme. über die Variable LD_PRELOAD Bibliotheks- beiteten Pflicht folgt in Sachen Concepts
funktionen durch eigene und ändern auf nun die Kür: Wie definiert man eigene
diese Weise das Programmverhalten. ­Concepts? Das ist wichtig, denn sie sind ein
Forum
wichtiges Feature in modernem C++.
Recht.............................................. 58 Insecurity Bulletin........................ 75

Ginge es nach den Wünschen vieler EU- Eine böswillige Android-Spyware hat sich
Staaten, könnten die umstrittenen Pläne in zahlreichen Apps des Google Play Store
zur sogenannten Chatkontrolle noch deut- eingenistet und tarnt sich als harmloses SDK.
lich verschärft werden.

Bücher............................................60
Ein zum besseren Verständnis grafisch auf-
bereitetes Werk behandelt die Methoden
des maschinellen Lernens, ein zweites gibt

62
anhand der C++ Core Guidelines Tipps zum Grundlagen der KI: Welche
effektiven Programmieren. Spielarten gibt es, und wie
funktionieren überwachtes, nicht über-
wachtes und verstärkendes Lernen?

08.2023 www.linux-magazin.de 5
Aktuell News

News
Debian 12 „Bookworm“ ist fertig
Das Debian-Team hat nach einem Jahr, neun Monaten und
28 Tagen Entwicklungszeit mit Debian 12 alias „Bookworm“
­seine jüngste stabile Version veröffentlicht. Das Release erhält
dank des Engagements des Debian-Sicherheitsteams und des
Debian-Long-Term-Support-Teams Unterstützung für die
nächsten fünf Jahre. Mit der Veröffentlichung sind 11 089 Pake-
te neu hinzugekommen; damit enthält Debian 12 insgesamt
64 419 Pakete. 6296 veraltete Pakete entfallen, 43 254 Pakete
wurden für das Release aktualisiert.

© Juliette Taka, GPL-2.0


Das Projekt hat sich letztes Jahr entschlossen, entgegen der
bisherigen Gepflogenheiten künftig auch unfreie Firmware mit
auszuliefern. Als Ergebnis dieses „allgemeinen Beschlusses über
unfreie Firmware“ von 2022 hat man mit non-free-firmware ei-
nen neuen Archivbereich eingerichtet, der es ermöglicht, un-
freie Firmware von anderen unfreien Paketen zu trennen. Die
meisten unfreien Firmware-Pakete seien von non-free nach non- Start frei für Debian 12: Das Release erhält fünf Jahre Support.
free-firmware verschoben worden, lassen die Entwickler wissen.
Diese Trennung ermögliche es, unterschiedliche offizielle Instal-
lationsabbilder bereitzustellen. Plasma 5.27, LXDE 11, LXQt 1.2.0, Mate 1.26 und XFCE 4.18 zur
Debian 12 „Bookworm“ wird mit einer Reihe von Arbeitsum- Auswahl. Insgesamt unterstützt „Bookworm“ jetzt offiziell neun
gebungen ausgeliefert. Unter anderem stehen Gnome 43, KDE Systemarchitekturen. █

Rust mit Sparse-Protokoll Unkaputtbares Fedora Onyx


Die Programmiersprache Rust hat mit Version 1.70.0 das Sparse- Unter dem Namen Fedora Silverblue offeriert das Red-Hat-
Protokoll von Cargo nun standardmäßig für das Lesen des In- Community-Projekt seit einiger Zeit eine immutable Variante
dex der Rust Package Registry Crates.io aktiviert, berichten die der Distribution, deren Basissystem nach der Installation nicht
Entwickler. Diese Funktion sei zwar bereits mit Rust 1.68.0 stabi- mehr verändert wird. Unter dem Namen Fedora Onyx gesellt
lisiert worden, bedurfte aber noch Konfigurationsarbeiten, um sich jetzt eine Fassung mit Budgie-Desktop dazu.
sie verwenden zu können. Nutzer sollten damit von einer deut- Das Basissystem von Fedora Silverblue wird bei einem
lich verbesserten Leistung beim Abrufen von Informationen aus ­Update komplett ausgetauscht. Bei Problemen kann man so
dem Registry-Index profitieren. schnell zum vorherigen Zustand zurückkehren. Die Anwendun-
Benutzer, die sich hinter einer restriktiven Firewall befinden, gen kommen zudem als Flatpaks und stecken in Containern.
müssen dazu sicherstellen, dass der Zugriff auf https://​­index.​ Unter der Haube kommen dabei die bewährten Werkzeuge
­crates.​­io möglich ist, heißt es in der Ankündigung. Wer bei der Rpm-ostree, Podman und Toolbox zum Einsatz.
vorherigen Standardeinstellung bleiben will oder muss und Silverblue offeriert von Haus aus den Gnome-Desktop. Wer
den von Github gehosteten Git-Index weiter verwendet, kann KDE Plasma bevorzugt, kann zu Fedora Kinoite greifen, Fedora
die Konfigurationseinstellung unter registries.crates‑io. Sericea nutzt hingegen den Fenstermanager Sway. Diesen bei-
protocol verwenden, um die Standardeinstellung zu ändern. den Varianten gesellt sich künftig auch Fedora Onyx mit Bud-
Zudem gelten zwei neue Typen für die einmalige Initialisie- gie-Desktop hinzu. Der entsprechende Vorschlag wurde jetzt
rung gemeinsam genutzter Daten als stabil, OnceCell und sein offiziell angenommen. Verantwortlich zeigt sich die Budgie
Thread-sicheres Gegenstück OnceLock. Beide lassen sich überall Special Interest Group.
dort verwenden, wo eine sofortige Konstruktion entweder Anders als etwa für Fedora Silverblue steht für Onyx kein vor-
nicht erwünscht oder unmöglich ist. █ gefertigtes Image zum Herunterladen bereit. █

6 www.linux-magazin.de 08.2023
News Aktuell

Infinite Scale mit „totem Briefkasten“


Die hoch skalierbare Filesharing-Lösung und Groupware Own­ einen bei der Klassifizierung und zum anderen später bei der
cloud Infinite Scale (OCIS) liegt in einer neuen Major-Version gezielten Suche. Die Tags speichert Infinite Scale als Metadaten
vor, die zahlreiche Änderungen mitbringt. OCIS 3.0 verbessert direkt im Storage-System, was eine Datenbank überflüssig
die Suche, bindet Anti-Virenscanner über ICAP ein und erlaubt macht. Ergänzend dazu offeriert das System eine Tag-API. Per
ein sogenanntes Secret File Drop. Diese Funktion erzeugt einen File Firewall können Administratoren jetzt gezielt das Hochla-
einzigartigen Link zu einem Ordner. Nur, wer ihn kennt, kann den von Dateien untersagen. Möglich sind hierbei Ausschluss-
darauf zugreifen und dort Dateien hochladen. Das gelingt auch regeln unter anderem anhand der Dateiendung, des Mime-Typs
ohne Benutzerkonto bei der entsprechenden Infinite-Scale-­ und auch der Inhalte.
Instanz. Secret File Drop stellt zudem sicher, dass die entspre- Möglich sind auch benutzerdefinierte Rollen. Als Beispiel sind
chende Person anonym bleibt. Auf diese Weise wird der Ordner bei einer Schule die Rollen „Lehrer“ und „Schüler“ genannt. Den
zu einem „toten Briefkasten“, über den beispielsweise Whistle­ Schülern ließe sich dann beispielsweise das Erstellen von öf-
blower dem OCIS-Betreiber geheime Dokumente zuspielen fentlichen Links verbieten. OCIS 3.0 erfüllt auch die Kriterien
können. Secret File Drop ersetzt damit gleichzeitig die zuvor als des Artikels 20 der DSGVO: Benutzer können ihre gespeicherten
Uploader bekannte Funktion. persönlichen Daten im JSON-Format exportieren. █
Sogenannte Spaces vereinfachen das Teilen und die gemein-
same Arbeit an Dokumenten. Dabei handelt es sich um virtuelle
Ordner, die auch Quota haben dürfen. Auf die in einem Space
abgelegten Dokumente haben nur ausgewählte, von einem
oder mehreren Managern verwaltete Nutzer Zugriff. Um einen
Space zu erstellen, muss man lediglich einen bestehenden Ord-
ner mit der rechten Maustaste anklicken und den entsprechen-
den Menüpunkt aufrufen. Der Space übernimmt dabei die
komplette Ordnerstruktur. Jeder Space besitzt zudem einen
­gesonderten Mülleimer, was die Gefahr des versehentlichen

© Owncloud
­Löschens eines Dokuments reduziert.
OCIS 3.0 erlaubt nun die Volltextsuche in allen Dateien. Bei
der Analyse der Inhalte hilft das Tika-Toolkit der Apache Foun­
dation. An die Dateien geheftete Stichwörter (Tags) helfen zum Owncloud Infinite Scale unterstützt benutzerdefinierte Rollen.

C-Compiler im Boot-Sektor
Gerade einmal 512 Byte umfasst der C-Compiler SectorC. Damit Dereferenzieren von Zeigern sowie Kommentare. Dem Compi-
passt er komplett in den Boot-Sektor eines x86-Systems. Er un- ler liegen drei Beispielprogramme bei, die seine Leistungsfähig-
terstützt zwar nicht den kompletten C-Befehlssatz, aber den- keit demonstrieren. Auf der Github-Seite des Projekts findet
noch erstaunlich viele Funktionen. Darunter fallen laut Be- sich neben dem Quellcode des Compilers auch die zugrunde
schreibung des Projekts neben globalen Variablen, Funktionen, liegende Grammatik. SectorC ist in Assembler geschrieben und
If- und While-Statements und zahlreiche Operatoren auch das lässt sich mit Nasm übersetzen. █

NOV
0709
2023
Aktuell News

Kurznachrichten
Firefox 114: Mozillas populärer Webbrowser lokalen Angreifer unter Umständen möglich auch auf bestehende Benutzerkonten aus
wird komfortabler. Neu: Wer die Schaltfläche war, das Master-Passwort zu rekonstruieren. sowie auf sämtliche Software, die ebenfalls
für die Lesezeichen aktiviert hat, kann über Zudem speichert die Software jetzt Triggers, auf der Libxcrypt-Library basiert. Die Ent-
das dahinter liegende Menü direkt nach globale URL-Overrides, Passwortgenerator- wickler nennen als Beispiele OpenLDAP und
Bookmarks suchen. Analog erlauben die profile und einige Einstellungen mehr in der PostgreSQL. Auf bestehenden Systemen
Chronik-, Bibliotheks- und Anwendungsme- sogenannten Enforced Configuration. Pas- sollte man daher vor einem Upgrade auf
nüs, schnell eine Seite in der Chronik aufzu- send dazu gibt es den neuen Dialog Enforce ­Nix­OS 23.05 die Passwort-Hashes erneuern
spüren. Firefox unterstützt nun die Authen­ Options in den Einstellungen für Erweiterte und dabei ein sicheres Verfahren verwenden.
tifizierung über USB-Geräte, die nach dem Tools, der die Speicherung bestimmter Opti- Lizenz: LGPL, MIT
FIDO2/​Webauthn-Standard arbeiten. Des onen in der Enforced Configuration erleich- https://​­nixos.​­org
Weiteren sind die DNS-over-HTTPS-Einstel- tert. Lizenz: GPLv2
PostmarketOS 23.06: Die für Tablets und
lungen in die Gruppe Datenschutz und Sicher- https://​­keepass.​­info
Smartphones gedachte Distribution stammt
heit gerutscht. Dort lassen sich auch die Aus-
OpenSuse Leap 15.5: Die Community-Dis­ von Alpine Linux ab. Neu: Das aktuelle Re-
nahmen für DNS over HTTPS verwalten.
tribution basiert auf Suse Linux Enterprise. lease enthält zum ersten Mal die Desktop-
­Lizenz: MPL 2
Neu: Bei der Neuinstallation aktiviert Leap Umgebung Gnome Mobile. Übersetzungen
https://​­mozilla.​­org/de/​­firefox/​­new/
automatisch das OpenH264-Repository mit werden über lang jetzt standardmäßig in­
IceWM 3.4: Der schlanke Fenstermanager einem H.264-Codec zur Anzeige entspre- stalliert, als Standardgebietsschema dient
­erfreut sich immer noch großer Beliebtheit. chend kodierter Videos. KDE Plasma steht nun en_US.UTF‑8 anstelle von C.UTF‑8.
Neu: Nun spricht er auch Georgisch. Darüber in Version 5.27 bereit. Hinzu gesellt sich die Laut Release Notes ist außerdem das USB-
hinaus haben die Entwickler vor allem an der Softwaresammlung KDE Gear 22.12.3, als Tethering jetzt voll funktionsfähig. Lizenz:
Behandlung von Tastaturkürzeln geschraubt. Unterbau dient Qt 5.15 LTS aus der offiziellen überwiegend freie Lizenzen
So erlaubt die aktuelle Version jetzt auch KDE Qt 5 Patch Collection. Lizenz: GPL und https://​­postmarketos.​­org
Bindings für „Shifted Keys“, etwa auf AZER- weitere
Eclipse 2023-06: Eclipse ist eine quelloffene
TY-Tastaturen. Darüber hinaus unterstützt https://​­www.​­opensuse.​­org
und freie Desktop-IDE für C/C++, Java, Type­
IceWM nun alle UTF-8-Codepoints. Nach ei-
NixOS 23.05: Die Distribution kommt mit Script/JavaScript, PHP und weitere Spra-
nem Wechsel des Tastaturlayouts kann Ice-
dem alternativen Paketmanager Nix. Neu: chen. Neu: In dieser Version ist die aufgaben-
WM die Tastaturkürzel zudem neu einlesen.
Das aktuelle Release verschlüsselt Passwör- zentrierte Benutzeroberfläche Eclipse Mylyn
Lizenz: GPL
ter mithilfe der Libxcrypt-Bibliothek, die jetzt wieder dabei. Wie gewohnt gibt es Updates
https://​­ice‑wm.​­org
nur noch sichere Verfahren anbietet. Dazu für neue Versionen der unterstützten Pro-
Keepass 2.54: Die freie Passwortverwaltung zählen alle Passwort-Hashing-Methoden, die grammiersprachen. Ein Sicherheitsaudit
mit verschlüsselter Datenbank erhöht die Si- das zugehörige Libxcrypt-Projekt explizit als ­liefert die Basis für Fehlerbereinigungen.
cherheit. Neu: Mit dieser Version beseitigen strong markiert hat. Damit erhöht sich zwar ­Lizenz: Eclipse Public License
die Entwickler eine Lücke, über die es einem die Sicherheit, doch die Änderung wirkt sich https://www.eclipse.org

Entwicklungsschub bei Thunderbird


Der Mailclient Thunderbird entwickelt sich nach einer langen Vertretern der Mozilla Foundation,
Stagnationsphase nun weiter. Ryan Sipes, Produktmanager bei ­Inhaberin der Thunderbird-Marke.
Thunderbird, hat im Zug der Modernisierung auch ein neues Die Modernisierung von Thunder-
Logo präsentiert. Genau wie die Software selbst habe auch das bird kann laut Sipes auf eine solide
beliebte Thunderbird-Logo in den vergangenen 20 Jahren nur ­finanzielle Grundlage aufbauen. Die
kleine Verbesserungen erfahren, berichtet Sipes. Jetzt aber ent- für Thunderbird zuständige MZLA Tech-
wickle sich die Software zu etwas viel Modernerem und habe nologies Corporation, eine eigenständige
ein frisches Logo verdient, das diese Revitalisierung angemes- Tochter der Mozilla Foundation, beziffert die Spendeneinnah-
sen repräsentiere, glaubt er. men für 2022 mit 6,44 Millionen US-Dollar. Das ist deutlich
Bei aller Modernisierung wolle man aber keinesfalls die Wur- mehr als die 2,79 Millionen US-Dollar im Vorjahr 2021.
zeln des Mailclients vergessen, berichtet Sipes weiter. Deshalb Den über Jahre aufgelaufenen technischen Investitionsstau
habe man Jon Hicks, den Schöpfer des ursprünglichen Thunder- beim E-Mail-Programm wollen die Programmierer nun sukzessi-
bird-Logos, gebeten, sein Design im Hinblick auf die aufregende ve abbauen. Das werde sich allerdings größtenteils erst in der
Zukunft von Thunderbird neu zu gestalten. Bei der Wahl des Lo- Version 2024 zeigen, lässt das Projekt wissen. Spürbare Verbes-
gos habe man mit vielen Interessenvertretern zusammengear- serungen in der Version 115 alias „Supernova“ versprechen die
beitet, unter anderem mit dem Thunderbird Council sowie mit Entwickler aber schon für diesen Sommer. █

8 www.linux-magazin.de 08.2023
Gitlab setzt auf KI
Die DevSecOps-Plattform Gitlab arbeitet in Version 16 mit KI-gestützten Funktionen
wie Codevorschlägen, mit denen Anwender schneller und effizienter Programme
schreiben können sollen. Als weitere mit künstlicher Intelligenz unterfütterte Funkti-
onen nennt der Anbieter Sicherheitstests und ‑analysen, Observability und proaktive
Schwachstellenerkennung. Auch Vorschläge zu Prüfern (Suggested Reviewers), Code-
erklärungen (Explain This Code) und Schwachstellenerläuterungen (Explain This Vulne-
rability) gibt es jetzt KI-gestützt. Geplant seien zudem KI-Funktionen zur Codeumge-
staltung (Refactor This Code) und zur Schwachstellenbehebung (Resolve This Vulnera-
bility), lässt Gitlab wissen. Akademie
Die aktuellen und kommenden Updates für Gitlab spiegeln die Nachfrage der Bran-

Aha-Effekt
che nach integrierter KI wider und betonen, wie wichtig es für Unternehmen ist, siche-
re Software schneller bereitzustellen. Darauf lässt zumindest der siebte jährliche Glo-
bal DevSecOps Report von Gitlab mit dem Titel „Security Without Sacrifices“ schließen.
Die Umfrage zeigt, dass 65 Prozent der Entwickler künstliche Intelligenz und maschi-
nelles Lernen bei Tests einsetzen oder das in den nächsten drei Jahren planen.
Zu den neuen und verbesserten Sicherheitsfunktionen in Gitlab zählt der Anbieter
gesucht?
ein zentralisiertes Richtlinienmanagement, erweiterte Compliance-Funktionen (Be- Schulungen für Linux-Admins, die
richte, Kontrollen, Dashboards) sowie standardmäßige SLSA-Level-3-Bescheinigun- durchblicken wollen. Fachlich und didak-
gen. Noch im Sommer will Gitlab eine mandantenfähige Software-as-a-Service-Lö- tisch kompetente Dozenten, spannende
sung namens Gitlab Dedicated einführen. Sie soll in stark regulierten Branchen oder Schulungsthemen und eine lockere
solchen mit hohen Compliance-Anforderungen eine DevSecOps-Plattform mit dem Atmosphäre im Kurs – all das erwartet
Schwerpunkt auf Datenresidenz, Isolierung und private Netzwerke bieten. █ Sie bei uns an der Heinlein Akademie.

Die nächsten Kurse

ab 04.09.
Proxmox VE Installation & Administration

ab 04.09.
Systemmonitoring mit Checkmk - Teil 1

ab 06.09.
Proxmox VE Advanced
© Gitlab

ab 11.09.
Linux Admin Grundlagen
Setzt zunehmend auf künstliche Intelligenz: Gitlab in der Community Edition.
ab 11.09.
MySQL / MariaDB für Fortgeschrittene

OpenInfra Foundation plant für Europa ab 18.09.


Sichere Mailserver mit Postfix
Die Open Infrastructure Foundation (OpenInfra Foundation) hat beim OpenInfra Sum-
mit in Vancouver bekannt gegeben, dass sie regionale Zentren in Europa und Asien er-
öffnet hat, um Open-Source-Communities und -Technologien in diesen Regionen zu
Jetzt anmelden
fördern und zu schützen, wo die OpenInfra-Community schnell gewachsen sei. Mit
Zentren in Singapur und Brüssel werde man diesem Ansatz gerecht. In Asien und
www.heinlein-akademie.de
­Europa habe man in den letzten Jahren ein schnelles Wachstum verzeichnen können.
Es seien dort mittlerweile 32,5 Prozent (Asien) und 38,8 Prozent der Mitglieder der
OpenInfra Foundation beheimatet. (Sebastian Grüner, Tim Schürmann, uba) █

08.2023
Aktuell Zahlen & Trends

Zahlen & Trends
IBM plant Quantenrechenzentrum in Deutschland
IBM hat Pläne für ein Quantenrechenzentrum in Europa publik
gemacht. Unternehmen sowie Forschungs- und Regierungsein-
richtungen sollen damit Zugang zu modernstem Quantencom-
puting bekommen, teilt IBM mit. Die Einrichtung soll laut der
Ankündigung 2024 betriebsbereit sein und über mehrere IBM-
Quantencomputersysteme mit Quantenprozessoren von mehr
als 100 Qubits verfügen. Standort ist Ehningen (Deutschland),
wo IBM bereits seine Deutschland-Zentrale hat. Das Rechenzen-
trum sei so konzipiert, dass die Kunden mit den Anforderungen
der europäischen Datenschutzbestimmungen zurechtkommen,
einschließlich des Verarbeitens der Daten für Quantenverarbei-

© IBM
tung innerhalb der EU-Grenzen, betont die Ankündigung.
„Wir sind froh und stolz, die Entscheidung des IBM Quantum-
Teams zu unterstützen, ihr europäisches Quantenrechenzen­ Aufbau des europäischen Quantenrechenzentrums.
trum in Ehningen zu errichten“, kommentiert Raoul Klingner,
Forschungsleiter der Fraunhofer-Gesellschaft. „Die Wahl des
Standorts in Baden-Württemberg wird das Ökosystem, das Deutschland sei nach Poughkeepsie, New York, das zweite IBM-
Fraunhofer mit Kunden und Partnern aus Industrie und For- Quantenrechenzentrum und eröffne damit die zweite Quanten-
schung aufgebaut hat, weiter stärken.“ Die Einrichtung in Cloud-Region von IBM, heißt es weiter. █

Warnung vor KI: Gefährlich wie ein Atomkrieg


Mehrere Hundert Experten aus Wissenschaft, Industrie und wei- dem sich ebenfalls unter den Unterzeichnern befindenden
teren Bereichen haben in einem drastischen Statement vor den ­Yoshua Bengio den Turing Award. Das Statement steht auf der
Gefahren der künstlichen Intelligenz gewarnt. KI bedrohe wie Website des Center for AI Safety. Die gemeinnützige Einrich-
Pandemien oder ein Atomkrieg das Überleben der Menschheit, tung will die von KI ausgehenden Risiken für die Gesellschaft
meinen die Unterzeichner des Statements. durch Forschung und Feldarbeit verringern.
Darunter befinden sich die für KI zuständigen Manager von Die Erklärung soll KI-Experten, Journalisten, politische Ent-
Google, Microsoft, OpenAI und weiteren namhaften Unterneh- scheidungsträger und die Öffentlichkeit dazu anregen, sich
men, die sich mit künstlicher Intelligenz befassen. Hinzu kom- über Bedenken hinsichtlich der schwerwiegenden Risiken fort-
men viele Wissenschaftler und auch der KI-Forscher Geoffrey geschrittener KI auszutauschen. Die Unterzeichner möchten da-
Hinton, der bei Google maßgeblich an der Entwicklung von KI mit eine Diskussion in Gang bringen und die wachsende Zahl
beteiligt war, das Unternehmen aber verlassen hat. Er erhielt für von Experten und Persönlichkeiten des öffentlichen Lebens be-
seine Forschung an Deep Neuronal Networks zusammen mit kanntmachen, die die Risiken von KI ebenfalls ernst nehmen. █

Leap 15 erhält eine letzte weitere Version


Das OpenSuse-Projekt arbeitet derzeit an einer generalüberhol- Adaptable Linux Platform nutzt moderne Techniken, wie etwa
ten Fassung seiner Distribution. Um mehr Zeit für die Entwick- ein immutables Basissystem. Die Arbeiten schreiten zwar voran,
lung zu bekommen, wird es doch noch eine weitere Minor-Ver- die Entwickler benötigen jedoch mehr Zeit. Deshalb will das
sion des aktuellen OpenSuse Leap 15 geben. Eigentlich sollte Team nach Leap 15.5 noch Version 15.6 veröffentlichen. Sie soll
nach Leap 15.5 die neue Distributionsgeneration folgen. Diese im Juni 2024 erscheinen und Support bis 2025 erhalten. █

10 www.linux-magazin.de 08.2023
Zahlen & Trends Aktuell

Streik bei Stack Overflow wegen KI-Inhalten


Die Moderatoren und Nutzer der Code-Hilfeplattform Stack f­ aktisch erlaubt würden, da man sie nicht mehr effektiv mode-
Overflow sowie damit verbundener Foren von Stack Exchange rieren und löschen könne. Dazu heißt es: „Diese Änderung hat
haben einen Streik angekündigt. Die Beteiligten werfen dem unmittelbare schädliche Auswirkungen auf die Plattform. Viele
Betreiberunternehmen der Plattformen vor, „ein nahezu voll- Menschen sind der festen Überzeugung, dass die Zulassung
ständiges Verbot der Moderation von KI-generierten Inhalten“ von KI-erzeugten, als nutzergenerierte Inhalte getarnten Beiträ-
erlassen zu haben. Damit verweisen die Unterstützer des Streiks gen den Wert der Websites mit der Zeit auf null senken wird.“ █
auf eine neue Richtlinie für die Moderatoren. Dabei sind KI-­
generierte Inhalte auf den Plattformen eigentlich verboten.
Ausgelöst wurde der Streik dadurch, dass das Unternehmen
in der neuen Moderationsrichtlinie festlegt, dass die von den
Moderatoren bisher getroffenen Annahmen nicht mehr zur
­Entscheidung benutzt werden dürfen. Das umfasst etwa den
Schreibstil einer Antwort oder das generelle Verhalten eines
Beitragenden, woraus die Moderatoren bisher darauf schlossen,
ob die Inhalte von einer KI erstellt wurden. Diese Annahmen
waren die Grundlage für die meisten der bisher ausgesproche-

© Stack Overflow
nen Suspendierungen von Nutzern. Darüber hinaus sollen die
Moderatoren künftig keine Programme mehr verwenden dür-
fen, die beim Erkennen von KI-generierten Inhalten helfen.
Aus Sicht der Moderatoren führen diese beiden neuen Re-
geln in Kombination dazu, dass KI-Inhalte auf der Plattform Bei Stack Overflow wollen die Moderatoren streiken.

OpenAI startet Cybersecurity-Programm


OpenAI, das Unternehmen hinter der KI-Anwendung ChatGPT, der Cybersicherheitsfähigkeiten von KI-Modellen, um deren
hat eine mit 1 Million US-Dollar hinterlegte Cybersecurity-Initia- Wirksamkeit besser zu verstehen und zu verbessern. Darüber
tive gestartet. Das Cybersecurity Grant Program soll zur Förde- hinaus sei OpenAI bestrebt, die Diskussionen an der Schnittstel-
rung und Quantifizierung von KI-gestützten Cybersicherheitsfä- le zwischen KI und Cybersicherheit zu fördern und ein umfas-
higkeiten dienen und den Diskurs über KI und Cybersicherheit sendes und differenziertes Verständnis der Herausforderungen
ankurbeln. Ziel sei es, global mit Sicherheitsschützern zusam- und Möglichkeiten in diesem Bereich zu schaffen, heißt es.
menzuarbeiten, um das Kräfteverhältnis in der Cybersicherheit OpenAI will die Anträge auf Finanzierung oder sonstige Un-
durch die Anwendung von KI und die Koordination Gleichge- terstützung fortlaufend bewerten. Praktische Anwendungen
sinnter zu verändern, schreiben Mitarbeiter von OpenAI. von KI in der defensiven Cybersicherheit werde man bevorzu-
Das Programm solle sicherstellen, dass moderne KI-Fähigkei- gen. Zuschüsse in Höhe von bis zu 10 000 US-Dollar seien
ten in erster Linie den Verteidigern von Cybersicherheit zugute- möglich. Der Blogpost unter https://openai.com/​blog­/­­openai‑­
kommen und nicht den Angreifern. Das Unternehmen arbeite cybersecurity‑grant‑program nennt Tätigkeitsfelder für KI- und
auch an der Entwicklung von Methoden zur Quantifizierung Sicherheitsexperten, die sich beteiligen wollen. █
Aktuell Zahlen & Trends

Red Hat pflegt LibreOffice-Pakete nicht weiter


Das Red Hat Display Systems Team, das sich den Arbeiten am Die LibreOffice RPMS seien seit kurzem verwaist, schreibt Red-
Desktop bei Red Hat widmet, stellt die Pflege der LibreOffice- Hat-Mitarbeiter Matthias Clasen in der Fedora-Mailing-Liste:
Pakete in Fedora ein. Das hat auch Auswirkungen für Red Hat Man passe derzeit die technischen Prioritäten von RHEL für
Enterprise Linux (RHEL). Workstations an und konzentriere sich auf Wayland sowie den
Ausbau der HDR-Unterstützung und noch eine Reihe anderer
Verbesserungen.
Diese Arbeit soll die Workstation-Erfahrung für Fedora- und
RHEL-Benutzer verbessern, schreibt Clasen. Dass man sich damit
von der Arbeit an Desktop-Anwendungen abwende und Libre-
Office ab einer zukünftigen RHEL-Version nicht mehr als Teil von
RHEL anbieten werde, sei eine Konsequenz daraus. Das betreffe
auch die Möglichkeiten, LibreOffice in zukünftigen Versionen
von Fedora zu pflegen.
© Document Foundation

Das Projekt will LibreOffice in den derzeit unterstützten Versi-


onen von RHEL 7, 8 und 9 aber weiter mit den erforderlichen
CVEs und Ähnlichem für die Lebensdauer dieser Versionen pfle-
gen. Die Maintainer sollen Korrekturen als Upstream beisteuern,
um sicherzustellen, dass LibreOffice besser als Flatpak funktio-
niere. Red Hat erwarte, dass die meisten Anwender LibreOffice
Red Hat will LibreOffice-Pakete nicht weiter pflegen. auf lange Sicht in dieser Form nutzen, schreibt Clasen. █

BSI startet Pilotprojekt für sichere Kommunen


Das Bundesamt für Sicherheit in der Informationstechnik (BSI) meindebund aus bundesweit über 130 Bewerbungen ausge-
hat mit sechs deutschen Modellkommunen das Pilotprojekt wählt und sollen einen Querschnitt der kommunalen Land-
„Weg in die Basis-Absicherung“ (WiBA) gestartet. Die ausge- schaft abbilden. Es handelt sich um zwei Gemeinden (Balg-
wählten Gemeinden, Städte und ein Landkreis sollen dann heim, Ostseebad Graal-Müritz), zwei mittelgroße Städte (Rees,
über das Projekt einen unkomplizierten Einstieg in den IT- Markkleeberg), eine größere Stadt (Schwerin) sowie einen
Grundschutz angeboten bekommen. Die Projektteilnehmer Landkreis (Regen). Als Anlass für das WiBA-Projekt nennt das
wurden gemeinsam mit dem Deutschen Städtetag, dem Deut- BSI die in den vergangenen Monaten erfolgten IT-Angriffe auf
schen Landkreistag sowie dem Deutschen Städte- und Ge- Kommunen mit teils gravierenden Folgen. █

AlmaLinux erhält Verstärkung


Der japanische Distributor Cybertrust tritt als Platinum Sponsor
der AlmaLinux OS Foundation bei. Sein Red-Hat-Clone Miracle
Linux fusioniert mit AlmaLinux und baut darauf auf. Miracle Li-
nux wird noch bis zum Ende der Support-Perioden von Miracle
Linux 8 und 9 unter diesem Markennamen fortbestehen.
Im Nachgang der CentOS-Abkündigung wird damit AlmaLi-
nux – wie Rocky Linux und VzLinux ein kostenloser und zu
© AlmaLinux

RHEL binärkompatibler Klon – gestärkt. Der Hersteller möchte


die installierte Basis der Distribution bis 2025 auf 100 000 Syste-
me ausbauen und mit Support (einschließlich dem für AlmaLi-
nux) bis dahin 1 Milliarde Yen (ca. 6,5 Millionen Euro) umsetzen. AlmaLinux und Miracle Linux kooperieren.
Diese Partnerschaft und das Platin-Sponsoring durch Cyber-
trust Japan unterstreiche die Stärke der Community-getriebe-
nen, neutralen und kontinuierlichen Entwicklung, erklärt Benny man zwei bemerkenswerte Distributionen, nutze deren Stärken
Vasquez, Vorsitzender der AlmaLinux OS Foundation. Indem und fördere eine neue Ära der Möglichkeiten für japanische Un-
man AlmaLinux als Grundlage für Miracle Linux wähle, vereine ternehmen, heißt es von Cybertrust. █

12 www.linux-magazin.de 08.2023
Zahlen & Trends Aktuell

Jahresbericht Telekommunikation 2022
Die Bundesnetzagentur verzeichnet in ihrem „Jahresbericht Te- 2022 sei in Deutschland ein Datenvolumen von insgesamt
lekommunikation 2022“ Investitionen von 13,1 Milliarden Euro 121 Milliarden GByte in Festnetzen übertragen worden, teilt die
im Telekommunikationsmarkt. Demnach investieren Unterneh- Agentur mit. Seit dem Jahr 2019 sei beim Datenvolumen ein
men überwiegend in neue Breitbandnetzinfrastrukturen, im Anstieg von rund 20 Milliarden GByte pro Jahr zu verzeichnen.
Festnetz in den Glasfaserausbau und im Mobilfunk in 5G-Netze. Der Bericht lässt sich unter https://​­www.​­bundesnetzagentur.​­de/​
Zum Jahresende 2022 sei die Zahl aktiver Glasfaseranschlüsse ­SharedDocs/​­Mediathek/​­Berichte/​­2023/​­JB_TK_2022.​­pdf abrufen.
mit den Zugangsvarianten FttH und FttB auf 3,4 Millionen ge- (Sebastian Grüner, Tim Schürmann, uba) █
stiegen. Das übertreffe den Bestand Ende 2021 um rund
800 000 Anschlüsse. Die dennoch relativ geringe Verbreitung
führt die Bundesnetzagentur im Wesentlichen auf den hohen
Versorgungsgrad mit bestehenden leistungsfähigen Infrastruk-
turen (VDSL-Vectoring, HFC-Netze) zurück.
Das über Festnetze abgewickelte Gesprächsvolumen sei bis
zum Jahr 2019 rückläufig gewesen. Nach einem Anstieg im ers-
ten Pandemiejahr 2020 auf insgesamt rund 104 Milliarden Ge-
sprächsminuten folgte 2021 mit rund 93 Milliarden Gesprächs-
minuten erneut ein Rückgang. 2022 sanken die Gesprächsmi-

© Bundesnetzagentur
nuten weiter auf etwa 80 Milliarden.
Über Mobilfunknetze seien im Inland rund 159 Milliarden ab-
gehende Gesprächsminuten geführt worden, heißt es im Be-
richt. Das entspreche rund 126 Minuten monatlich je SIM-Karte.
Erstmals seien annähernd doppelt so viele Gesprächsminuten
über mobile Endgeräte wie über das Festnetz getätigt worden. Entwicklung der Breitbandanschlüsse in Deutschland.

GEMEINSCHAFT MACHT
STARK!

Jetzt kostenfrei anmelden für den


COMMUNITY NEWSLETTER!
www.linux-community.de/newsletter
om
17 / 123RF.c
© pixelhunter
 Grundlagen der Softwaredokumentation den Informationen umgehen müssen.
Daher stellt sich für Technische Redak-

Baustelle Doku
teure neben dem Was auch gleichzeitig
die Frage: Für wen? Schon allein dieses
Kriterium unterteilt Technische Doku-
mentation in verschiedene Kategorien.
Außerdem kommt es noch auf die
Form an: Wie wird dokumentiert? Das
Ein wesentlicher Erfolgsfaktor für gute Dokumentation ist kann Text sein, Illustrationen, Grafiken,
Mindmaps und so weiter. Je nach Art
eine strukturierte und systematische Herangehensweise. der Dokumentation kann sie entweder
in den Quellcode eingebettet sein oder
­Dieser Beitrag vermittelt Grundlagenwissen darüber, wer die Software begleiten. Wichtig ist, die
Informationen so aufzubereiten, dass
was und wie dokumentieren sollte und wie man dabei den sich nachvollziehen lässt, wie das Soft-
wareprogramm zu verwenden ist. Der
­roten Faden nicht verliert. Anna Lehmann Zweck der einzelnen Komponenten soll-
te klar werden und auch ein Überblick
über die Möglichkeiten (und Grenzen)
Wen sollte man fragen, wenn man sich zusammenfasst, dass der Leser sie leicht des Programms gegeben werden. Je
einen Überblick über Softwaredokumen- aufnehmen kann. Zu diesen nützlichen nachdem, was die Software alles kann,
tation verschaffen will? Am besten viel- Informationen gehören jegliche für die gehört auch dazu, dass die Funktions-
leicht die Berufsgruppe, die sich ganz Zielgruppe relevanten Daten, die für die weise erklärt wird. Das betrifft unter Um-
dem Thema der Dokumentation ver- Entwicklung, Nutzung, Pflege und Unter- ständen auch Resultate oder Prozesse,
schrieben hat: die Technischen Redak- haltung sowie Aktualisierung nötig sind. an denen die Software beteiligt ist. Es gilt
teure. Einen Technischen Redakteur Und schon ist da ein für die Dokumen- zu erläutern, wie das Programm zu be-
zeichnet besonders aus, dass er nicht ir- tation außerordentlich relevantes Stich- dienen ist, welche technischen Voraus-
gendeinen Text verfasst, sondern einen, wort aufgetaucht: Zielgruppe. Sobald setzungen gegeben sein müssen und
der nützliche Informationen zum Pro- es etwas zu dokumentieren gibt, rücken welche Tätigkeiten gegebenenfalls sonst
dukt – in diesem Fall zur Software – so auch diejenigen in den Fokus, die mit auch noch auszuführen sind.

14 www.linux-magazin.de 08.2023
Einführung Titelthema

Immer wieder höre ich als Technische Re-


dakteurin von Softwareentwicklern, dass
der Code doch schon ausreichend erklä-
re, was da passiert. Das kann für jeden,
der sich den Quellcode ansieht, auch
durchaus eine theoretische Möglichkeit
sein. Aufs Ganze gesehen ist das aber et-
was zu kurz gedacht. Schauen wir also
zuerst einmal genauer darauf, welche Ar-
ten von Softwaredokumentation es gibt:
Dann wird klar, dass der Code allein nicht
die komplette Doku sein kann  . 1
1 Das sind die Bausteine interner und externer Softwaredokumentation.
Interne Dokumentation
Generell unterscheidet man zunächst ten. Nur so kann man sie auch als doku- in den Tests aufgefallen sind, beseitigt
zwischen interner und externer Doku- mentiert ansehen. Das Ergebnis bezeich- wurden. So lässt sich am Ende auch
mentation. Interne Dokumentation be- net man dann häufig auch als Entwick- nachweisen, dass man alles dafür getan
zeichnet all das, was beim Softwareher- lerdokumentation. Diese Doku richtet hat, dass die Software sicher läuft.
steller verbleibt. Das ist nicht weniger sich vor allem an die Zielgruppe der Pro- Neben diesen sehr eng mit dem tat-
wichtig, häufig ist allerdings die Form grammierer, die künftig an dem Code ar- sächlichen Fortschritt bei der Software-
­etwas freier. Vor allem muss diese Art beiten sollen oder müssen. Sie umfasst entwicklung verknüpften Dokumenten
von Dokumentation nicht mit dem Mar- Informationen über Architektur, Code- ist eine Projektdokumentation dafür da,
keting abgestimmt werden. Auf diesen struktur und Verwendung der verschie- die Planung und Organisation der Ent-
Umstand kommen wir bei der externen denen Funktionen des Programms. wicklung festzuhalten. Dabei können
Dokumentation zurück. Neben der Entwicklerdokumentation beispielsweise geplante Ziele, genutzte
Ganz zu Beginn eines Projekts stehen gibt es, sofern die Software Daten benö- Tools und Herangehensweisen beschrie-
häufig die Anforderungen, was die neu tigt oder erzeugt, auch die sogenannte ben werden. Diese Art der Dokumentati-
zu entwickelnde Software denn tun soll. Datendokumentation. Hier ist es wichtig, on geschieht häufig nebenbei und in
Manche kennen das unter dem Namen dass klar wird, welche Daten das Pro- Projekt-Meetings, weil mit mehreren Be-
Lastenheft. Teilweise wird diese Doku- gramm benötigt, um zu funktionieren. teiligten mehrere Schritte zu absolvieren
mentation auch agil erweitert, weil im Was ist wie eingebettet, was wird wo ab- sind, in denen die neuen Aufgaben und
Entstehungsprozess nicht von Anfang an gelegt, und welche Daten kommen als Teilschritte zugewiesen werden.
alle Details klar sind. Bevor es dann ans Output heraus? Falls die erzeugten Daten Als letzten Punkt für die internen Do-
Coden geht, wird – mal genauer, mal an bestimmten Stellen zu speichern sind, kumente wollen wir noch die System­
grober, mal agil und schrittweise, mal als braucht es dann spezifische Formate? dokumentation anreißen. Sie beschreibt
ein großes Ganzes – festgelegt, wie diese Wenn es um umfangreichere Software ein komplexeres System mit all seinen
Anforderungen umzusetzen sind. Das ist geht, kann es sein, dass zusätzlich eine In- Komponenten, Funktionen und deren
dann entweder als einzelne Tasks notiert stallationsdokumentation erstellt werden Zusammenwirken. Die Qualität dieser
oder bildet ein ganzes Pflichtenheft. Das muss. Sie sollte nachvollziehbar beschrei- Dokumentation kann entscheidend da-
hängt immer davon ab, wie umfangreich ben, wie und in welcher Reihenfolge Sys- für sein, ob der Technische Redakteur
die Software ist, ob es spezifische ver- temkomponenten installiert und einge- für die externe Dokumentation erneute
tragliche Bedingungen gibt und ob der richtet werden müssen, damit am Ende Recherchen zu diesem Thema betreiben
Kunde eine ausführliche Antwort vor die Gesamtfunktion gewährleistet ist. muss, oder ob er das als Grundlage für
Programmierbeginn wünscht – um nur Etwas, das auch für kleinere Program- die ­Darstellung der Zusammenhänge
einige der Faktoren zu nennen, von de- me durchaus hilfreich sein kann, ist die bei der externen Dokumentation ver-
nen die Art und Weise abhängt. Testdokumentation. Jeder Entwickler wenden kann.
Meistens wird ein großer Teil der inter- kennt das nur zu gut: Das Programm
nen Dokumentation von den Software- läuft super, man ändert an einer Stelle
Externe Dokumentation
entwicklern selbst erstellt. Hier ist also eine winzige Kleinigkeit – und schon tre-
die Aussage gar nicht so weit hergeholt, ten Fehler auf. Hier hilft die Testdoku- Die externe Dokumentation richtet sich
dass der Code die Doku sei. Allerdings mentation. Sie beschreibt die erforderli- an die Verwender der Software, die häu-
kann das nur gelingen, wenn der Code chen Tests, um die korrekte Funktion der fig nicht an der Entwicklung beteiligt wa-
mehr als die reine Aneinanderreihung Software zu überprüfen. Dazu gehört ren. Deshalb geht es für den Technischen
von Funktionen ist. Das bedeutet, dass selbstverständlich auch, wie die Tests an- Redakteur nicht nur darum, den Entwick-
bestimmte Komponenten oder Abschnit- gelegt sind, worauf die Ergebnisse schlie- lern die Informationen aus der Nase zu
te mit Kommentaren versehen sein soll- ßen lassen und wie mögliche Fehler, die ziehen. Stattdessen muss er sich auch

08.2023 www.linux-magazin.de 15
Titelthema Einführung

mit den Abteilungen abstimmen, die mit druckten oder PDF-Version möglich Entlang des Lebenszyklus
dem Kunden zu tun haben. Das ist einer- 2
wäre. Als Beispiel zeigt Abbildung  die
seits das Marketing, das das Unterneh- Word-Hilfe von Microsoft. Mit einem Alles in allem kann man sich auch bei der
men oder die Produktmarke nach außen Klick auf das kleine Fragezeichen öffnet Softwaredokumentation an den Produkt-
optimal repräsentieren möchte, anderer- sich direkt die Online-Hilfe, die unter lebenszyklus halten. Von der Installation
seits aber auch der Vertrieb, der mit dem support.​­microsoft.​­com zu finden ist. Sie und Konfiguration über die Benutzung
Kunden unter Umständen spezifische enthält Screenshots, damit sich der Be- und Anpassungsmöglichkeiten bis hin
Abmachungen – auch bezüglich der nutzer schnell zurechtfindet, sowie zum Aktualisieren und Updaten und
­Dokumentation – getroffen hat. Handlungsanweisungen oder Tätigkeits- letztlich zur Deinstallation gibt es fast im-
Externe Dokumentation sollte hilfreich beschreibungen (mit fett dargestellten mer etwas, was der Nutzer wissen muss.
sein, um zu verstehen, wie ein Programm Bezeichnungen aus der Software selbst) Die Installationsanleitung sollte be­
zu verwenden und zu konfigurieren ist. und Tipps & Tricks. antworten, wie man das Programm auf
Manchmal ist sie aber auch eine Quelle Eine weitere Möglichkeit, wie Informa- einem Rechner einrichtet und welche
der Verwirrung und Frustration. Das gilt tionen zum Anwender gelangen können, ­Voraussetzungen erfüllt sein müssen.
vor allem dann, wenn sie nicht sinnvoll sind Leitfäden und Tutorials, die nicht Meist richtet sich diese Anleitung an er-
redaktionell aufbereitet, verständlich ge- alle Funktionen der Software abdecken, fahrene Administratoren, die mit klassi-
schrieben oder nachvollziehbar struktu- sondern nur spezifische Themen – die schem Softwarejargon gut klarkommen.
riert ist. Also ist gerade hier die Gilde der aber dafür sehr detailliert. Falls die Soft- Im Gegenzug dazu gehört in die De­
Technischen Redakteure gefragt, das ware über Drittanbieter auf den Markt installationsanleitung, was getan werden
Wissen einerseits zu sammeln, anderer- kommt oder mit weiteren Programmen muss, um die Software sicher vom Sys-
seits auch zu analysieren und zu struktu- oder Daten interagieren soll, ist eine API- tem zu entfernen, und ob es etwas zu
rieren – und vor allem: es verständlich für Dokumentation für die Schnittstellen un- beachten gilt, damit beispielsweise er-
die jeweilige Zielgruppe wiederzugeben. abdingbar. Sie erklärt vor allem, wie man zeugte Daten erhalten bleiben.
Zur externen Softwaredokumentation die Schnittstelle nutzt und in welchen Auch die Konfigurationsanleitung
gehört zum Beispiel die klassische Be- Formaten auf welche Art sie die Daten wendet sich häufig noch an Administra-
nutzerdokumentation oder das Benut- überträgt. Hier kann teilweise die Daten- toren. Sie beschreibt, welche Einstellun-
zerhandbuch, als PDF oder gedruckt, so dokumentation schon hilfreich sein. gen man im Programm vornehmen kann
wie es früher üblich war und es manche Je nachdem, was der User mit der Soft- und sollte, damit die User die Software
Verträge immer noch erfordern. Die ware alles tun darf und kann, dürfen dann bestmöglich nutzen können. Dazu
Handbuchinhalte sollten sich nicht we- auch weitere Informationen nicht fehlen. kann auch gehören, wie sich einer Fehl-
sentlich von denen der Online-Hilfe oder So kann auch für den Administrator, der bedienung vorbeugen lässt, sodass keine
kontextsensitiven Hilfe unterscheiden. sich beim Kunden um die Einrichtung wichtigen Informationen verloren gehen.
Häufig differiert hier hauptsächlich die der Software kümmert, eine Testdoku- Auch häufig auf der Ebene für Admins
Art der Darstellung. Der digitale Raum mentation hilfreich sein, sofern die Soft- angesiedelt sind die Informationen für
bietet auch Möglichkeiten, die Inhalte ware Schnittstellen mitbringt und in Pro- Updates und Aktualisierungen, beson-
spezifischer zu filtern, als das in einer ge- zesse eingreifen könnte. ders bei komplexeren Programmen. Teil-
weise dürfen Anwender
auch Updates direkt aus-
führen. Dann muss die
Dokumentation klar und
verständlich beschreiben,
wie das Schritt für Schritt
funktioniert. Außerdem
stünde hier, falls es feste
Zyklen für Updates gibt.
Benutzerdokumentati-
on richtet sich, wie der
Name schon sagt, an die
User, die dann mit dem
Programm arbeiten sol-
len. Sie zeigt auf, welche
Möglichkeiten die Soft-
ware bietet und wie man
sie zu verwendet. Gerade
bei Software mit einer
grafischen Benutzerober-
2 Aus diesen Elementen besteht die Online-Hilfe von MS-Word. fläche (GUI) sollten

16 www.linux-magazin.de 08.2023
Einführung Titelthema

Screenshots den Anwendern eine Orien- zum rechtlichen Rahmen der Soft- Bei der internen Dokumentation war
tierungshilfe liefern. Ohne sie findet sich waredokumentation. Es gibt aber auch ­dagegen häufiger vom Entwickler/​Pro-
der User schnell nicht mehr zurecht und Anforderungen aus Normen, die ver- grammierer die Rede. Viele Entwickler
ist frustriert. Achten Sie darauf, dass Her- suchen, die Informationen für die Be- ­erarbeiten die Softwaredokumentation
vorhebungen klar aufzeigen, worum es nutzung zu vereinheitlichen. Sie be- selbst. Wer programmiert hat, weiß ge-
geht, also etwa, welcher Button geklickt schreiben konkrete Rahmenbedingun- nauestens, wie die Software funktioniert.
werden muss. gen, auf die sich Experten aus dem Das kann aber auch dazu führen, dass
Besonders wichtig ist auch das Thema Fachgebiet geeinigt haben, damit der die Erklärung den technischen Horizont
der Fehlerbehebung: Mit welchen Feh- Standard – in diesem Fall für die Doku- der Anwender oder neu eingestiegenen
lern muss man rechnen, und wie behebt mentation – einheitlich und qualitativ Entwickler weit übersteigt. Beim Erstel-
man sie? Gegebenenfalls gehört dazu, hochwertig ist. len der externen Dokumentation durch
durch wen. Das ist etwa der Fall, wenn Es existieren verschiedene Herangehens- die Entwickler können leicht technische
der User das nicht selbst kann oder sogar weisen, um eine passende Benutzer­ Details vorkommen, die eher verwirren
der Admin passen muss, weil er be- dokumentation zu erstellen. Das bezieht als helfen. Um eine Software zu verwen-
stimmte Konfigurationen selbst doch sich auf aktuell gebräuchliche Methoden, den, muss der User die Feinheiten der in-
nicht vornehmen darf, die in der Hand an denen man sich als Dokumentieren- neren Funktionsweise meist nicht ken-
des Herstellers liegen. der orientieren kann. Wohl jeder Techni- nen, sondern nur wissen, wie Dinge zu-
Die Beschreibung der Anpassungs- sche Redakteur hat die Zahlenfolge sammenhängen und welche Reihenfolge
möglichkeiten möchte oft vor allem der 82079-1 schon einmal gehört oder gese- er im Fall der Fälle zu beachten hat.
Vertrieb gern in jede Benutzerinformati- hen. Dahinter verbirgt sich eine internati- Es kann aber auch sein, dass Fachan-
on integrieren, damit der Kunde mög- onal entwickelte Norm, die auf Deutsch wender Software dokumentieren. Da sie
lichst weitere Funktionen zukauft. Durch beim DIN herausgekommen ist. Daneben regelmäßig mit der Software arbeiten,
Addons können in diesem Fall mehr Auf- haben daran das europäische Normen- wissen sie in der Regel, was andere An-
gaben mit einem Programm erledigt gremium EN sowie internationale Orga- wender an Informationen benötigen.
werden, die dann allerdings häufig auch nisationen wie IEC und IEEE mitgewirkt. ­Allerdings sind solche Nutzer eher ein
extra zu vergüten sind. Hier liegt der Fokus auf der Informations- Glücksfall, und Softwareentwickler soll-
vermittlung durch die Dokumentation ten sich nicht darauf verlassen, dass Be-
für jegliche Produktarten. Diese Norm ist nutzerdokumentation auf diese Weise
Anforderungen
also für eine professionell erstellte Doku- entsteht. Es kommt jedoch durchaus vor,
Woher können Anforderungen an die mentation generell relevant. dass Anwender einzelne, spezifische Use
Doku kommen? Zunächst gilt: Die Anfor- Außerdem lässt sich für den Bereich Cases verbreiteter Software etwa in
derungen an Dokumentation von Soft- der Softwaredokumentation die Nor- ­Foren besprechen.
ware unterscheiden sich nicht wesentlich menreihe ISO/​IEC/​IEEE 2651x mit Bezug Im Idealfall dokumentiert also weder
von Anforderungen an andere Arten von auf Nutzerinformationen heranziehen. der Technische Redakteur noch der
Dokumentation. Grundsätzlich gilt es, Sie spricht in den einzelnen Normteilen ­Entwickler allein die Software. Eine gute
die Regeln der Technischen Dokumenta- die jeweiligen Kontaktgruppen der Be- ­Mischung und Arbeitsteilung ermöglicht
tion einzuhalten: nutzerinformation (vom Manager, Ein- dem Team maximale Effizienz bei best-
• Die Dokumentation soll die Fragen der käufer und Lieferanten, Tester und Gut- möglichem Effekt.
jeweiligen Zielgruppe beantworten. achter bis zum Designer und Entwickler)
Dazu gehört etwa die Frage der User, und die agile Vorgehensweise an.
Wie ist zu dokumentieren?
wie das Programm genutzt wird, oder
die der Entwickler, wofür welcher Teil Es gibt keine allgemeingültigen Best
Wer schreibt?
im Code steht. Practices für Softwaredokumentation, da
• Die Doku soll verständlich sein, dabei Wir haben schon viel vom Technischen diese davon abhängt, was genau für wen
aber trotzdem so kurz wie möglich. Redakteur gesprochen. Ausgebildete dokumentiert werden muss. Allerdings
• Softwaredokumentation muss sich Mitglieder einer Technischen Redaktion gibt es einige allgemeine Tipps, die bei
nach den Bedürfnissen und Aufgaben sind darauf spezialisiert, dem Anwender der Dokumentation eines Programms
der Endanwender richten. der Software eine verständliche Anlei- befolgt werden sollten:
• Die Dokumentation erfolgt meist zu- tung zu geben, die sich einfach lesen • Einfach und klar: Leicht verständlich
sammen mit der Software. lässt. In der Regel machen sich techni- formulieren und je nach Zielgruppe
• Auch die Doku muss möglichen recht- sche Autoren mit der Anwendung ver- frei von Fachausdrücken, sofern sie
lichen Anforderungen genügen. Das traut und testen die verschiedenen Funk- nicht geläufig sind.
gilt insbesondere, wenn die Software tionen. So nehmen sie automatisch den • Prägnant: Nur für die Zielgruppe rele-
Teil eines Gesamtprodukts ist. Dann Blickpunkt des unerfahrenen Benutzers vante Informationen dokumentieren
gelten hier die gleichen Regeln wie für ein und sehen, welche Art von Informati- und für das User Manual zum Beispiel
die Hardware. Mögliche vertragliche on für diejenigen relevant ist, die eine alles weglassen, was nicht direkt mit
Vereinbarungen gehören ebenfalls Dokumentation lesen. der Nutzung der Software zu tun hat.

08.2023 www.linux-magazin.de 17
Titelthema Einführung

und Form auch den Eindruck der Soft-


ware beim User beeinflussen kann. Bei
den aufgezählten Tools handelt es sich
um eine absolut zufällige Auswahl – es
gibt noch viel mehr Werkzeuge, als wir
hier aufzählen können.
3 Die Zielgruppendefinition anhand von Rollen und Zielen. Es liegt auf der Hand, Technische
­Dokumentation mit Autoren-Tools wie
Mi­crosoft Word oder Adobe Framemaker
• Bilder: Verwenden Sie möglichst Bild- grammvariablen und zur Verwendung zu erstellen. Doch gerade für Software
material wie Screenshots oder Dia- von Dateien. Diese müssen freilich nicht gibt es noch viele weitere Möglichkeiten.
gramme, um den Text zu ergänzen alle nur in der Entwicklerdokumentation Da sind beispielsweise Help Authoring
und komplexe Konzepte zu erklären. enthalten sein, die Information kann Tools (HAT) wie Madcap Flare oder
• Logische Gliederung: Wenn die Struk- durchaus auch in weiteren internen Do- ­Adobe Robohelp. Dahinter verbirgt sich
tur konsistent und leicht verständlich kumenten stehen. Software zur Erstellung von Online-Hil-
ist, lassen sich die Informationen Wenn man im Code dokumentiert, ist fen und anderen Informationsdokumen-
schneller finden und aufnehmen. es wichtig, auch die möglicherweise exis- ten, die oft auch druckbare Dokumente
• Einheitliche Formatierung: Wenn glei- tierenden Standards für die Dokumenta- (PDF-Handbücher) in unterschiedlich
che Informationseinheiten gleich aus- tion in der Programmiersprache zu be- ­guter Qualität ermöglicht.
sehen, sind sie schnell wiederzufinden. achten, wie zum Beispiel bei Java, Visual Bei DITA-basierten Tools wie etwa DITA
Anwender schätzen Links zu externen Basic oder C#. Häufig hilft bei besonders Open Toolkit handelt es sich um Werk-
Ressourcen, die zu einem bestimmten ­langem Quellcode eine zusätzliche Hilfe­ zeuge, die auf der standardisierten XML-
Thema weiterführende oder detaillierte- datei, in der relevante Schlüsselwörter Struktur DITA basieren und speziell für
re Informationen liefern. referenziert werden. die Dokumentation von Software entwi-
Bei der externen Dokumentation sollte ckelt wurden. Sie eignen sich sehr gut für
zuerst die Form der Dokumentation defi- große Dokumentationsprojekte. In der
Praktische Tipps
niert werden. Ob klassisches gedrucktes Regel ist die Arbeit mit ihnen aber kom-
Entwickler erleichtern sich die Arbeit, Handbuch, PDF oder Online-Hilfe: Es gibt plex und teuer, der Nutzen für kleinere
wenn sie von Anfang an auch an der Do- viele Varianten, die Informationen für die Projekte unter einigen Hundert Seiten ist
kumentation schreiben. So türmt sich Softwarenutzung aufzubereiten. Auch daher fraglich.
nach Ende der Programmierphase nicht hier ist die Zielgruppe maßgeblich. Sind Component-Content-Management-
ein Berg ­Arbeit auf. Dafür muss klar sein, die Nutzer selbst Softwareentwickler Systeme (CCMS) oder auch Redaktions-
welchen Anwendungszweck die Doku- oder technikaffin? Sind sie mit komple- systeme wie Author-it oder Schema ST4,
mentation hat beziehungsweise an wel- xen Programmen vertraute Spezialisten? basieren entweder auf DITA oder funktio-
chen internen Entwicklerkreis sie sich Oder handelt es sich bei den Usern der nieren auf Basis eigener Strukturen. Sie
richtet. Von dieser Zielgruppe hängt Software um Gelegenheitsanwender? sind eher für sehr große Doku-Projekte
auch der Umfang der Dokumentation Daran müssen die Detailtiefe und Kom- vorgesehen. Für Projekte mit weniger als
ab. Daher gilt es, vorab genau zu überle- plexität der Dokumentation angepasst 1000 Seiten sind CCMS sehr kostspielig.
gen, welche ­Informationen, Ressourcen, werden. Es gibt immer wieder Vorgänge, Sie können sich aber bei einer gewissen
­Datenbanken und Kommentare zum die man für unerfahrene Nutzer beson- Anzahl von Zielsprachen trotzdem schon
Quellcode benötigt werden. ders genau beschreiben muss. für weniger Seiten lohnen.
Ein paar Beispiele für Inhalte wären Klären Sie auch, welche Inhalte es Es ist auch möglich, ein mit Word oder
Programmstruktur, Funktionen und ­genau bereitzustellen gilt, und ob unter- Framemaker erstelltes Handbuch in eine
­Unterfunktionen, Auflistungen von Pro- 3
schiedliche Zielgruppen existieren  . HTML-basierte Online-Hilfe umzuwan-
Für häufig auftretende Anwendungsfälle deln. Soll auf die Schnelle eine Online-
ist überdies eine Schritt-für-Schritt-Hand- Hilfe erstellt werden, könnte ein Konver-
Die Autorin lungsanweisung hilfreich, die den Nutzer ter wie Webworks ePublisher zumindest
genau anleitet. für eine erste Version hilfreich sein.
„Technikbegeistertes Organisationstalent“ –
Unabhängig davon, welche Werkzeu-
das beschreibt Anna Lehmann. Als Ingenieu-
ge Sie konkret wählen, sollten Sie immer
rin leitet sie bei den Handbuch-Experten Aus-
Tools
daran denken, dass Softwaredokumenta-
bildung, Qualitätsmanagement sowie Syste- Auch wenn feststeht, was und für wen tion – wenn sie denn gut ist – die Effizi-
matisierungen und begutachtet beim Tekom geschrieben wird, bleibt möglicherweise enz neuer Entwickler bei der Einarbei-
Dokupreis gern fremde Doku-Werke. Kunden noch die Frage offen, mit welchem Tool tung in den Code sowie die Zufrieden-
profitieren von ihrem Überblick und dem die Dokumentation erstellt wird. Hier heit Ihrer Kunden erhöhen kann. Das
wollen wir vor allem die externe Doku- senkt vielleicht sogar die Zahl der An­
Schaffen leicht einzuhaltender Strukturen.
mentation betrachten, deren Aussehen fragen bei der Service-Hotline. (jcb) █

18 www.linux-magazin.de 08.2023
LINUX-
MAGAZIN
IHRE DIGITALE AUSGABE
ÜBERALL DABEI!

Das Linux-Magazin begleitet Sie jetzt überall –


egal, ob auf dem Tablet, dem Smartphone,
dem Kindle Fire oder im Webbrowser.
Das Linux-Magazin ist ab sofort immer dabei.

1x im Shop registrieren – überall mobil lesen.


Mit Ihren Login-Daten erhalten Sie überall Zugriff auf Ihre gekauften Digital-Ausgaben,
im Shop-Account, in der Linux-Magazin-App und auf epaper.linux-magazin.de.

shop.linuxmagazin.de
© Wuttichai Kaewklang / 123RF.com
 Gute Dokumentation effizient schreiben: Tipps von den Doku-Profis

Doku ist Teamwork


Worauf sollte man beim Dokumentieren besonders achten? Denken oder die Fähigkeit, komplizierte
Sach­verhalte in einfache Sätze zu verpa-
Wie integriert man die Dokumentation am besten in seine cken. Technische Redakteure sollten zwi-
schen zwei grundverschiedenen Sachge-
Prozesse? Welche Tools bieten sich an? Wie sehr sollte man bieten eine Brücke schlagen können und
Einfühlungsvermögen sowie Sprachge-
ins Detail gehen? Das geben Doku-Experten von Suse und fühl mitbringen. Sie müssen außerdem
ein Gefühl für das Gestalten und Struktu-
Owncloud hier zum Besten. Markus Feilner rieren von Texten haben, aber auch in
der Lage sein, selbst dem schweigsams-
ten Kernel-Nerd die wichtigen Informati-
Die Autoren von Softwaredokumentati- ihr Job eigentlich verdient. Doch das Pro- onen aus der Nase zu ziehen.
on sehen sich oft mit dem Vorurteil kon- fil des Technischen Redakteurs – ein ei-
frontiert, Doku sei ja quasi keine techni- genes Studienfach an zahlreichen Uni-
Beruf mit Zukunft
sche Arbeit, kein IT-Job. Manche IT-Grau- versitäten – sieht viele Begabungen als
bärte erklären Doku gar zur reinen Frau- erforderlich an. Jeder, der schon einmal „in der Doku“
enarbeit. Nicht immer erfahren die Ver- Darunter finden sich einige, die auch gearbeitet hat, kennt die ungläubigen
fasserinnen und Verfasser technischer für einen Job im Management nicht von Gesichter der Techniker oder Manager,
Dokumentation die Wertschätzung, die Nachteil wären; zum Beispiel vernetztes wenn diese zum ersten Mal hören, es

20 www.linux-magazin.de 08.2023
Best Practices Titelthema

gäbe Regeln für diesen oder jenen Satz- on (mit zum Beispiel allen API-Befehlen)
bau oder für diese spezielle Textsorte. bis hin zu monothematischen How-tos
Oft ist auch schwer zu vermitteln, dass oder Best Practices reichen. Meist gibt es
es einen großen Unterschied macht, ob spezielle Tools für jede Gattung. Das
man ­einen Text fürs Internet, Print, die Swagger-Toolset  beispielsweise hilft
­Online-Hilfe oder für das PDF der High- bei den einzigen Handbüchern, die sich
Value-Kunden schreibt. halbwegs automatisiert schreiben lassen:
Das Portal studieren.de  sieht – API- und Referenz-Dokumentationen.
ChatGPT zum Trotz – für Dokumentati-
onsexperten eine glorreiche Zukunft:
Klare Prioritäten
„Technischen Redakteur*innen werden
gute Zukunftsaussichten vorausgesagt: Die Prioritäten, was zu dokumentieren
Zum einen liegt das daran, dass sie viel- ist, sollte stets das Produktmanagement
fältig einsetzbar sind, zum anderen, dass vergeben: Dort laufen die Fäden zusam-
immer mehr Produkte auf den Markt ge- men, was den Bedarf der Kunden und
worfen werden, die einer Erklärung be- 1 Meike Chabowski ist Documentation die heißesten neuen Features angeht.
dürfen. Einsatzmöglichkeiten finden sie Strategist bei Suse. Auf gar keinen Fall sollten Developer
bei fast allen Industrieunternehmen – dokumentieren oder die Scrum Master
vom Konsumgüterbereich bis hin zum entscheiden, was dokumentiert werden
Maschinen- oder Fahrzeugbau, in der le Menschen Geräte und Software als sollte. Sie haben fast immer nur die In-
­Telekommunikation, der Computerbran- immer komplizierter wahr, allen Fort- nenansicht, nicht jedoch den Überblick.
che und im Bereich der Optik.“ schritten in Sachen UX/​UI-Design zum Das Was ist ohnehin meist ein Kompro-
„Kommunikation ist das A und O. Auch Trotz. Firmen erkennen den Wert guter miss aus verschiedensten Fragen: Was
auf und zusammen mit den höchsten Dokumentation, sowohl für die Produkte ist neu? Was muss man erklären? Was
Managementebenen muss der Doku- als auch für die Prozesse innerhalb der brauchen die Kunden (dem Vertrieb, den
mentationsexperte in der Lage sein, Be- Firma – Stichwort: Knowledge Manage- ­Kundenberatern und den Consultants
wusstsein (Awareness) für die Wichtigkeit ment. Gerade bei Letzterem gewinnt zufolge)? Wofür stehen Ressourcen
des Themas zu schaffen. Gerade die das Thema Nachhaltigkeit mehr und ­bereit, was hat Priorität?
Chefetagen müssen verstehen, dass Do- mehr an Bedeutung. Dass dabei zahlreiche Kollegen und
kumentation ein wesentlicher Bestand- Eine zweite Jugend erfuhr das Wis- Manager ein Wörtchen mitreden wollen
teil der Softwareprodukte und ‑lösungen sens- und Know-how-Management in und dürfen, macht die Sache nicht ein­
ist, ohne den der Anwender kaum Erfolg Unternehmen spätestens 2021, als facher. Ein Dokumentationsexperte
haben wird.“ Marktführer Atlassian, Hersteller der in muss heute zwingend auch Fähigkeiten
Das sei allerdings immer noch nicht den meisten IT-Firmen eingesetzten Sys- des Projekt- und Zeitmanagements,
überall angekommen, erklärt Meike Cha- teme Confluence, Jira und Trello, seine ­agiler Methoden und Verständnis für
bowski, Documentation Strategist beim Preise massiv erhöhte und begann, Kun- ­Unternehmensprozesse und ‑ressourcen
1
Linux-Vendor Suse . „Wer Dokumen­ den in die Cloud zu zwingen. Da zeigte mitbringen – und darüber hinaus eine
tation nur als Cost Center sieht, hat ein sich, wie teuer es werden kann, sich nur saubere Triage beherrschen.
Problem. Dokumentation ist ein grundle- auf einen Monopolisten zu verlassen. Die schönste Doku hilft niemandem,
gender Service, den der Kunde mit dem Hersteller von Open-Source-Alternativen wenn sie nicht gelesen oder nicht benö-
Produkt mitbezahlt“, stellt sie klar. Ohne zu Atlassian-Produkten haben derzeit tigt wird. Sie wirft auch keinen messba-
Zusammenarbeit mit anderen Teams Konjunktur. Auch das Linux-Magazin ren ROI (Return on Investment) ab und
geht da gar nichts. Experten aus allen be- zeigte , wie man es schafft, trotz des kostet nur Geld – so ein oft gehörter Vor-
teiligten Teams müssen zusammenarbei- Trubels im Alltagsbetrieb eben jenen All- wurf. Aber ein guter Dokumentations-
ten, auch das Feedback von externen tag zu dokumentieren und die Prozesse prozess steht im engen Austausch mit
Fachleuten ist wichtig. Dazu meint Cha- und Informationen aufzuzeichnen, die der Qualitätssicherung. Weil die Doku-
bowski: „Nicht jeder kann schreiben, aber die Mitarbeiter häufig brauchen. Diesel- mentation eines neuen Produkts ja mit
jeder kann zur Dokumentation beitragen ben Methoden greifen auch bei der Pro- dem Produkt fertig sein muss, aber meist
– sei es durch Feedback, Anregungen, duktdokumentation. länger dauert, testen die Doku-Schreiber
Fehler finden, Text korrigieren und vieles Die vielen Anleitungen im Internet  meist lange, bevor die QA-Kollegen an-
andere mehr.“ sind sich ebenfalls einig: Gute Dokumen- fangen. Auch gemeinsame Sprints sind
tation fängt mit einem sauberen Prozess denkbar – und manchmal dringendst
an, hört damit aber noch lange nicht auf. nötig –, bei denen Development, QA und
Was dokumentieren?
Meist braucht es drei bis fünf verschiede- Doku sich zum Erstellen eines Hand-
Gute Dokumentation wird immer wichti- ne Gattungen, die von Quickstart-Guides buchs zwei Wochen in Klausur begeben.
ger: Auch in Unternehmen und gerade („Getting Started“) über Installations-, 2
Das sieht auch Martin Mattel so:
im Kontakt mit Endgeräten nehmen vie- Admin-, User und Referenzdokumentati- „Dokumentation ist nicht das Schreiben

08.2023 www.linux-magazin.de 21
Titelthema Best Practices

ger schreibt. Am tiefen Verständnis der undokumentierte FOSS-Paket. Gerade


Sprache und etwas Talent für die richtige bei Open-Source-Produkten wird Doku-
Formulierung komme man aber nicht mentation immer wichtiger, weil hier po-
vorbei, betont Mattel. tenzielle Kunden vielleicht schon wieder
abspringen, wenn sie beim ersten Pro­
blem mit dem OSS-Projekt keine hilfrei-
Qualifikationen
che Beschreibung finden. Schon lange
Ein guter Tech Writer zeichne sich aber vor dem Erstkontakt mit der Hersteller­
auch durch proaktives Handeln, Interesse firma verliert diese so unter Umständen
an der Sache (gerade auch in technischer bereits Kunden. Ja, Dokumentation ge-
Tiefe) und dem Spaß am Netzwerken mit hört auch zu den Services, mit denen
anderen Abteilungen aus. Insel- und Silo- OSS-Unternehmen wie Suse Mehrwert
Denken müsse er oder sie aktiv vermei- beweisen können . 3
den. Hartnäckigkeit, Lust an der „For-
schungsarbeit“ und Spaß an der Fehler-
Doku als Visitenkarte
suche seien ebenfalls zwingend notwen-
2 Martin Mattel ist Unternehmensbera- dige Charaktereigenschaften, so Mattel. Dazu meint Martin Mattel: „Dokumentati-
ter aus Wien und schreibt seit vielen Jah- „Dokumentation ist Forschungsarbeit, on ist eine Visitenkarte. Mehr noch als die
ren an der Dokumentation für Owncloud. beschreiben, interne und externe Zu- Webseite spiegelt sie die Professionalität
sammenhänge erkennen, einbauen, ab- e ines Unternehmens wider. Sie schafft
grenzen und wieder referenzieren, wo Vertrauen und Zuversicht und ist die Ba-
von ein paar Sätzen, sondern das Ergeb- nötig. Das wird aber ganz anders wahr- sis für konkrete Fragen. Aber sie ist auch
nis einer intensiven, kollaborativen Arbeit genommen: Fürs Management sind das Teil des Brandings für das Unternehmen,
über mehrere Abteilungen.“ Der Wiener lästige Kosten und morgen soll das eh weil sie ja direkt auf die Anwender, die
zeichnet verantwortlich für weite Teile ChatGPT machen. Für die Entwickler ist Kunden hin ausgerichtet ist.“
der Dokumentation des Nürnberger Un- Dokumentation oft nur ein lästiger Zeit- Auf der anderen Seite habe sie auch
ternehmens Owncloud . „Dokumentati- dieb. Aber für den Anwender ist die großen Einfluss auf die Entwicklung, so
on kann man als einen Aspekt von QA se- Dokumentation oft der einzige Zugang Mattel: „Im Idealfall wird der Code und
hen. Man braucht Manpower und einen zu den gesuchten Infos.“ das Resultat von Anfang an aus einem
Know-how-Stack, dann muss man sich Für Sales und Vertrieb ist gute Doku anderen Blickwinkel gesehen, weil die
noch in die Schuhe von anderen Men- ein starkes Argument, warum der Kunde Dokumentation das beschreibt, was ist
schen hineinversetzen können.“ Es mache das eigene wohldokumentierte Produkt und funktioniert und nicht, was man
zwar einen großen Unterschied, ob man kaufen sollte und nicht das schlecht(er) gern hätte. Auch hier findet der hilfreiche
für Developer, User, Admins oder Mana- dokumentierte der Konkurrenz oder das Perspektivenwechsel statt – und da müs-
sen die Dokumentationsmitarbeiter viel
mit dem Support und der Service-Abtei-
lung reden, damit der Fokus auf die wirk-
lich hilfreichen, manchmal auch heraus-
fordernden Klarstellungen gelegt wer-
den kann. Dann kann die Dokumentati-
on auch die Basis für weiterführende
Dienstleistungen werden.“
An dieser Stelle kommt dann auch der ­­
eigentliche Wert der Dokumentation zu-
tage, meint Mattel. Und der werde von
Marketing, Entwicklung, Kunden und
Support sehr wohl gesehen, auch hin-
sichtlich eines ROI.

Klar definiertes Szenario


Der Teamlead Dokumentation bei Suse,
4
Frank Sundermeyer   , ist bei der welt-
größten eigenständigen Linux-Firma seit
bald zwei Jahrzehnten in der Dokumen-
tation  tätig. Er hat eine klare Vorstel-
3 Die Suse-Dokumentation ist in nach Zielgruppen gegliederte Sparten aufgeteilt. lung, worauf es bei professioneller Doku-

22 www.linux-magazin.de 08.2023
Best Practices Titelthema

mentation zu achten gilt: „Es braucht ein Ideal ist es, wenn schon die Entwickler
klar umrissenes und definiertes Szenario, eine eigene, interne Vorabdoku erstellen,
eine klare Struktur mit Zielen, Vorausset- auf der man aufbauen kann. Das muss
zungen und Umsetzung. Das meine ich aber schon in der Aufwandsplanung ein-
nicht nur theoretisch – das Dokumentier- gepreist werden. Eine Checkliste, auf der
te als Schreiber auch in der Praxis nach- „Dokumentieren und Kooperation mit
vollzogen und verstanden zu haben, hilft dem Doku-Team“ als verpflichtende Auf-
ungemein, die Qualität der Dokumenta- gabe (Mandatory Task) eingestuft ist,
tion zu steigern.“ Gefragt, was denn die hilft da sehr. Ein Produkt ist erst fertig,
wichtigste Erfahrung sei, die das Suse- wenn es Dokumentation gibt.
Dokumentationsteam in drei Jahrzehn- Zusammen mit den Entwicklern neh-
ten gemacht hat, erklärt Sundermeyer: men moderne Dokumentationsteams Teil
„’Hands-on’-Experience ist durch nichts am agilen Prozess der Softwareentwick-
zu ersetzen, und Technical Writing ist in- lung, machen Milestones mit und neh-
terdisziplinäre Teamarbeit.“ men an Sprints teil. Separate Doc Sprints
Dokumentation solle nach Möglichkeit oder Doc Days – Tage, an denen nur an
stets parallel zum Schreiben in der Praxis der Dokumentation gearbeitet wird –
getestet werden, betont Sundermeyer, 4 Frank Sundermeyer ist Teamleiter im helfen sehr, auch beim Erzeugen der
weil sich so auch Fallstricke und Irrwege Dokumentationsteam bei Suse. Awareness. Kein Wunder, dass es ein gu-
dokumentieren lassen, die ansonsten tes Zeichen für ein funktionierendes Do-
eventuell in Vergessenheit geraten. Auch kumentationsteam ist, wenn es sich naht-
die Entwicklung profitiert von dieser Vor- zielle Zielgruppe geschrieben werden“. los in die Tools und Sprachen integrieren
gehensweise, da Technical Writer so nicht Alle erforderlichen Grundkenntnisse müs- kann, die die Entwickler nutzen. Derlei
selten Fehler finden und rückmelden. sen vorab in einem Bereich „Voraussetzun- Kenntnisse beschleunigen den Doku-
Hier kommt ebenfalls potenzieller Re- gen“ abgeklärt sein. „Damit ergibt sich die mentationsprozess enorm und reduzie-
turn on Investment ins Spiel: „Wir ma- Flughöhe eigentlich automatisch.“ ren den Overhead in anderen Teams.
chen zum Beispiel die Suse Best Practi- Eine vorherige Analyse der Zielgruppe Aber auch die Techniker mit Anwen-
ces teilweise auch in Zusammenarbeit und der Leserschaft hält als Technical derkontakt müssen Zeit einplanen – und
mit unseren Consultants und beschrei- Writer auch seine Kollegin Julia Falten­ das ist oft teuer. Wenn Consultants, Sales
ben darin besondere und verbreitete bacher für enorm wichtig: „Vor dem Engineers, Support und Presales Feed-
Kundenszenarien. Bei der Umsetzung Schreiben muss eine Zielgruppenanalyse back geben sollen, müssen sie Stunden
beim Kunden muss das ja entsprechend durchgeführt werden, die die Vorkennt- dafür reservieren – Stunden, in denen sie
dokumentiert sein, sodass die Doku aus nisse und Bedürfnisse der Leser festhält, erst einmal keinen Umsatz für die Firma
der Alltagsarbeit schon fast von selbst damit diese stets auch beim Schreiben machen. Aber genau diese wertvolle
herausfällt. Das Ganze kann dann an- beachtet werden können. Erst daraus er- Zeit, in der das Feedback aus der Zusam-
schließend ein Technical Writer bearbei- gibt sich dann zum Beispiel auch das menarbeit vor Ort mit dem Kunden und
ten und publikationsfähig machen.“ Ausgabeformat.“ Ein Techniker, der in der bei der Implementierung von Lösungen
Das sagt auch Martin Mattel: „Doku- Werkstatt vor einer Maschine steht, be- in die Doku fließt, ist bares Geld wert.
mentation sollte immer eingebunden nötigt zwangsläufig ein anderes Format Derlei können kein Softwareentwickler
werden, ganz am Anfang und ohne Ein- als der, der vor dem Büro-PC sitzt. Im und kein Technischer Redakteur liefern,
schränkungen.“ Und Meike Chabowski ­Internet gelten dann noch einmal andere weil ihnen die Real-Life-Erfahrung mit
bestärkt, dass es immer darum gehe, Be- Regeln: Viele Teams behandeln für Such- den Produkten oder ​Lösungen fehlen.
wusstsein zu schaffen bei allen Verant- maschinen optimierte Texte (SEO) als Gute Doc-Teams machen es den Zu­
wortlichen, Entwicklern, Entwicklungs- ­­eigene Ausgabekategorie. lieferern so einfach wie möglich – egal,
teams und Managern: „Wir dokumentie- ob diese in Sales oder Development
ren nicht für euch oder uns, sondern für ­arbeiten, egal, welche Expertise in Sa-
Ohne Doku kein Produkt
unsere Anwender. Ohne Dokumentation chen Dokumentation vorliegt. Ein gutes
können die meisten Produkte nicht ge- Meike Chabowski mahnt: „Dokumentie- Dokumentationsteam sollte nach außen
nutzt werden. Dokumentation ist ein ren ist nicht nur ’einfach was schreiben’. werkzeug- und formatagnostisch sein.
grundlegender Service für den Kunden.“ Softwaredokumentation besteht zu- Jeder Input ist willkommen, egal in wel-
nächst überwiegend aus Recherche und cher Art von Datei.
Planung. Das Schreiben an sich ist der
Wie viele Details?
vom Aufwand her geringste Teil.“ Zwei
Tools, Tools, Tools!
Auch der Tiefgang spielt eine wichtige Wochen Recherche, Testen und Kommu-
Rolle. Frank Sundermeyer definiert Doku- nizieren für einen hilfreichen Absatz, der Thomas Schraitle, ebenfalls seit vielen
mentationen normalerweise als „Schritt- ein großes Problem vieler Kunden löst, Jahren im Dokumentationsteam von
für-Schritt-Anleitungen, die für eine spe- kann da schon einmal vorkommen. Suse tätig, legt den Fokus noch mehr auf

08.2023 www.linux-magazin.de 23
Titelthema Best Practices

dukt veröffentlichen? Je größer das Team


wird, desto mehr muss man sich diesen
Fragen stellen.“ Da kommen dann auch
Übersetzungen ins Spiel: Gibt es nur eine
Sprache? Oder soll das Dokument in di-
verse andere Sprachen übersetzt wer-
den? Ist Letzteres der Fall, benötigt man
weitere Tools, die Übersetzungen ermög-
5
lichen . OpenSuse verwendet dafür
beispielsweise Weblate . Dem stimmt
auch seine Kollegin Julia Faltenbacher
zu: „Wer bei der Lokalisierung ein paar
Grundregeln beachtet, bekommt auch
bessere Qualität in der Originalsprache.
Wir haben dazu einige Abschnitte in un-
serem Styleguide.“  Best Practices für
Owncloud finden sich auf der Github-
Seite des Projekts .
Viele Dokumentationsexperten beto-
5 OpenSuse nutzt das Übersetzungsmanagementwerkzeug Weblate, um die diversen nen, dass die Werkzeuge und Toolchains
Übersetzungen und Lokalisierungen effektiv zu koordinieren. immer nur Mittel zum Zweck sein sollten
und nicht im Vordergrund stehen sollten.
Suse nutzt DAPS , die Docbook Autho-
die technischen Aspekte: Ihm sind Kon- oder etwas anderes. Git/​Github bietet 6
ring and Publishing Suite  . In vielen
sistenz, Zielgruppenbezug sowie eine sich an, da es weit verbreitet ist und die Fällen kommt Asciidoc zum Einsatz, weil
stimmige, gute Struktur wichtig, all das Option offenlässt öffentlich oder im Pri- das Markdown-Format niedrige Ein-
in einem möglichst ansprechenden, be- vaten zu arbeiten. Wenn sich ein größe- stiegshürden stellt, oder DocbookXML,
nutzerfreundlichem Layout. „All diese res Team mit Dokumentation beschäf- weil XML vielseitiger beim automati-
Faktoren bestimmen, wie deine Doku- tigt, muss unbedingt ein CI-System wie schen maschinellen Verarbeiten ist. Das
mentation wahrgenommen wird.“ Bei Jenkins aufgesetzt werden. Das regelmä- wird umso wichtiger, je mehr automati-
der Integration in die Prozesse helfen ßige Bauen der Dokumentation sorgt sierte QA und Tests man einbindet: Style-
Style Guides, Definitionen, Vorlagen und auch dafür, dass Mitarbeiter mehr auf guide, Rechtschreibung, Corporate Iden-
Templates, aber auch klare Prozessdefini- Qualität achten und Fehler frühzeitig tity, sogar Anbindung an den Open-­
tionen und Softwarearchitekturen wie entdeckt werden. Jenkins spuckt dann Build-Service wären da denkbar. Auch
Continuous Integration. im Idealfall regelmäßig alle benötigten das Suse Documentation Team muss da
Dazu sagt Schraitle: „Alle erwarten ak- Output-Formate aus, vom PDF zu EPUB, immer wieder nachforschen und ver-
tuelle Dokumentation, jeder sollte zur HTML (Single File oder viele kleine Sei- schiedene Frameworks vergleichen .
Doku beitragen und jeder kann helfen. ten) und alle anderen Formate.“ „Man kann durchaus im Kleinen anfan-
Aber man muss sich informieren und Beim Thema Dokumentationsformat gen, mit einem Etherpad oder anderen
sich mit dem Projekt absprechen.“ Es hilft gibt es mancherorts regelrechte Flame- kollaborativen Tools.“ sagt Schraitle. Vor
ungemein, einen guten Korrektor zu ha- wars zwischen den Fans der einen oder wenigen Jahren beschäftigte sich auch
ben, der die Beiträge redigiert, auch weil anderen Lösung. Doch Schraitle weiß: im Linux-Magazin ein Artikel mit Tools
das Dokumentieren am Ende eben doch „Ob du in Markdown, ReST, Asciidoc, für kollaborative Dokumentations-Work-
nicht so einfach ist, wie es sich viele vor- Docbook oder etwas anderem schreibst, flows . „Wie man dann die vielen Bau-
stellen. Auch Schraitle ist sich sicher: „Der ist weniger wichtig. Nutze das Format, steine zusammenbaut, hängt von vielen
Satz ’Aber schreiben kann doch jeder’ das für dein Projekt am besten passt. Das Faktoren ab, nicht zuletzt vom Know-
stimmt halt so nicht. Trotzdem kann je- Format legt auch die Tools fest und nicht how, Budget und davon, was die Kolle-
der zur Doku beitragen.“ umgekehrt. Kenne die Vor- und Nachteile gen in der Entwicklung schon verwen-
Um das sicherzustellen, sollte sich ein jedes Formats, informiere dich vorher den.“ Hauptsache, bestätigt auch Martin
Dokumentationsteam in einer größeren und sieh dir an, was deine Kollegen in Mattel, ist doch, dass das Tool geeignet
Firma offen aufstellen. Ohne Versions- der Entwicklung verwenden.“ ist: „Das Framework, um die Doku zu
kontrollsystem wie Github geht da schon Wenn all das geklärt ist, müssen die schreiben, muss in der Lage sein, die An-
mal gar nichts mehr, meint Schraitle: Verantwortlichkeiten entschieden wer- forderungen zu bedienen, aber auch der
„Welches System man wählt, ist weniger den: „Wer betreut ein Kapitel? Wer darf Weiterentwicklung der Dokumentation
wichtig. Wichtig ist, dass es gemacht Änderungen einpflegen? Wer überprüft standhalten können. Es muss auch zu-
wird! Ohne das würde ich heute kein Pro- den Stil, Rechtschreibung und die techni- künftigen Anforderungen gewachsen
jekt starten, egal ob Dokumentation sche Richtigkeit? Wer darf das Endpro- sein, Darstellungen wie Tabellen oder

24 www.linux-magazin.de 08.2023
Best Practices Titelthema

Referenzierungen müssen einfach um-


­
setzbar sein. Hier auf quick & dirty zu set-
zen, rächt sich und kostet beim Aufräu-
men viel Zeit und Geld.“
Von ChatGPT in der Dokumentation ist
er nicht überzeugt: Die Kosteneinsparung
sei zu gering, auch weil die KI-Tools viel
Recherche im Nachgang erforderten. Viel
wichtiger ist da, sagt auch Frank Sunder-
meyer, dass die gewählten Tools mitein-
ander kooperieren können.
Der Umstieg von SVN auf Git vor bald
zehn Jahren hat beispielsweise bei Suse
zu einem fast exponentiellen Anstieg von
konstruktiven Rückmeldungen und Bei-
trägen aus der Entwicklung geführt. Mit
der Wahl eines Versionskontrollsystems
scheiden allerdings binäre Formate wie
die gängiger Office-Suiten definitiv aus.

Verständliche Sprache 6 Bei Suse kommt die Docbook Authoring and Publishing Suite DAPS zum Einsatz.
Und nach all der Planung, Kommunikati-
on und Bewusstseinserweiterung gibt es Gute Texte zu schreiben, ist eine Wissen- Writer schreibt keine Prosa, sondern eine
dann ja noch die sprachliche Ebene, die schaft für sich. Chabowski rät, den Fokus Anleitung. Einfache Sprache, kurze Sätze,
sich als nicht minder komplex erweist. auf Verständlichkeit zu legen. „Ein Tech Wiederholungen von (Fach-)Begriffen,
ONLINE

MAGAZIN
NEWSLETTER FÜR IT-PROFIS

Sie sind IT-Profi für Linux und Open Source? Bleiben Sie informiert mit
dem werktäglichen Newsletter für IT-Profis vom Linux-Magazin!

Newsletter
n Tagesaktuelle IT-News
n Security-Infos des

DFN-CERT
n Online-Stellenmarkt

Jetzt kostenfrei abonnieren! www.linux-magazin.de/subscribe


Titelthema Best Practices

men oder eine bestimmte Softwareum-


gebung aufzubauen“, erklärt Chabowski.
Das gelinge nur mit modularen Ansätzen
in der Dokumentation: „Wer kann, sollte
von vorneherein mit Bausteinen arbei-
ten. Softwaredokumentation wiederholt
sich oft; viele Schritte, Prozeduren, Ab-
läufe, die dort beschrieben sind, kann
man wiederverwenden. Dafür ist ein Do-
kumentenmanagement-Tool hilfreich.“
Welches, das muss jedes Unternehmen
selbst entscheiden, abhängig von der
bereits verwendeten Toolchain.

Regeln und Best Practice


Bei den Interviews mit den Experten be-
merkt man generell zwei Dinge: Erstens
steht bei der Dokumentation keineswegs
die Sprache oder die Grammatik im Vor-
dergrund. Als wichtigste Komponenten
7 Egal, ob mit DocbookXML, Asciidoc oder Markdown: Viel wichtiger als die Tools ist für den Erfolg nennen die Doku-Profis
i­ n jedem Fall das Ergebnis. Es muss klar, verständlich und ansprechend ausfallen. Die Strukturen, Kommunikation und indivi-
­Own­cloud-Dokumentation setzt zu diesem Zweck auf Antora und Asciidoctor. duelle Fähigkeiten der Dokumentations-
fachleute. Sie beschäftigt nicht die Frage,
ob und wann man einen Fachbegriff
keine Ausschmückungen oder Füllwörter Schritt für Schritt vorexerzierten How-to- übersetzt . Für sie spielen weder die im
– das macht den Unterschied. Gute Doku- Anleitungen, ergänzende Podcasts, auf- Deutschen und Englischen sehr unter-
mentation muss weder spannend noch schlussreiche Grafiken – all das muss in schiedlichen Regelungen für Koppelun-
abwechslungsreich sein, sondern auch die Dokumentation mit eingebaut wer- gen eine Rolle noch die Ratschläge für
bei komplexeren Themen nachvollzieh- den, um den Konsum für die unter- die Maximallänge eines verständlichen
bar und verständlich.“ Hier helfen Spell- schiedlichsten Nutzergruppen zu ermög- Satzes. Vieles davon betrachten die
und Stylechecker, Checklisten und auto- lichen. „Dafür braucht es wieder Planung, ­Doku-Fachleute eher als Mythen, die
matische Qualitätssicherung, die das Ein- Zeit, entsprechende Werkzeuge und Ex- Dritte über professionelle Dokumentati-
halten von Regeln erzwingen. perten. Dokumentationsfachleute dürfen onsteams im Kopf haben .
„Unter Dokumentation erwarten An- Youtube, Tiktok und Instagram nicht un- Moderne Dokumentationsteams –
wender heute aber auch viel mehr als terschätzen“, mahnt Chabowski. Die Do- ganz besonders solche im Open-Source-
nur geschriebene Texte. Ob die nächsten kumentationsteams müssen hier eng mit Bereich – sind also keineswegs nur
Generationen noch klassische Dokus le- dem Marketing zusammenarbeiten. ­detailverliebte Sprachfanatiker. Sie arbei-
sen, ist durchaus nicht ausgemacht“, ist Aber auch die klassische Online-Hilfe ten genauso agil wie die Entwickler, mit
sich Chabowski sicher. Kurze Videos mit ist eine notwendige Art der Dokumenta- denen sie kooperieren. Hier kommt ein
tion – eingebunden in die Software, ein weiterer Punkt ins Spiel: Gute Dokumen-
Paradebeispiel für das, was auf Doku- tationsteams nutzen agile Tools und
Weitere Infos und mentationsteams zukommt. Anwender ­Methoden und können sich mit (fast)
interessante Links erwarten keine dicken Wälzer, Manuals ­jedem Entwicklungsmodell von Waterfall
www.lm-online.de/qr/49146 oder Guides mehr, so wie das Suse- bis Scrum koordinieren.
Handbuch, das die Firma in den 1990ern Welche Tools dabei zum Einsatz kom-
groß gemacht hatte. Die Experten sind men – ob ein Framework, eine Sprache,
sich einig: Lösungs- und Themen-basier- ein bestimmtes Format, eine Versions-
Der Autor ter Dokumentation gehört die Zukunft; kontrolle oder gar ein einfacher Editor –
agil erstellt und für fast beliebige Ausga- das ist immer die allerletzte Frage, ab-
Markus Feilner nutzt seit 1994 Linux und
beformate strukturiert. hängig von den Umgebungsvariablen im
Open Source. Er arbeitet als Consultant, „Der Anwender will sich nicht durch Workflow der Entwickler und der Kun-
Coach und Journalist, seit 2000 auch mit ein umfangreiches Buch durcharbeiten, den. Wer seinen Workflow fest im Griff
seiner Firma Feilner-IT, die sich auf die OSI- sondern sucht gezielt nach Informatio- hat, der kann dann auch Input in jeder
nen, die ihm dabei helfen, ein ganz be- Form und in jedem Format annehmen –
Layer 8, 9 und 10 konzentriert.
stimmtes Problem in den Griff zu bekom- so wie DAPS bei Suse. (jcb) █

26 www.linux-magazin.de 08.2023
ANZEIGE

Gaming-PCs
von PCGH

Konfigurierbare
PCs von Dubaro

Jeder PC kann vor der


Bestellung individuell
angepasst werden

Vorschläge zur
Konfiguration vom
PCGH-Ratgeber-Team

Für PC-Schrauber:
Bestellung aller Hardware-
Komponenten auch als
Bausatz möglich

POWERED BY

Mehr Infos unter: www.pcgh.de/gaming-pcs


© ancoay / 123RF.com
Netbox: Mit Plugins nützliche Funktionen nachrüsten existierten, die aber meistens nicht ver­
zahnt waren. Logische Zusammenhänge

Mit Überblick
zwischen einem System im Inventar und
der IP-Adresse ließen sich so nicht dar­
stellen. Wer in einer Firma arbeitet, in
der noch die klassische Excel-Tabelle
mit sämtlichen vergebenen IPs existiert,
kennt die Mühsal, die diese Herange­
Netbox hat sich als Werkzeug mit Zwitterfunktion für DCIM hensweise verursacht.
Netbox setzte dem Treiben vor etli­
und IPAM längst etabliert. Wer jedes verbaute Teil in seinem chen Jahren ein Ende: Erstmals machte
es eine Kombination aus DCIM und IPAM
Rechenzentrum dokumentieren will, findet in Netbox dafür verfügbar, die unter einer freien Lizenz
stand und nicht fest mit einem der gro­
die perfekte Lösung. Martin Loschwitz ßen Asset-Manager von HP und Konsor­
ten verbunden war. Stattdessen wurde
Netbox von Anfang an von Admins für
Die Dokumentation des eigenen Netz­ er gegebenenfalls eine serielle Konsole Admins konzipiert. Unerreicht war sei­
werks gehört üblicherweise nicht zu den anschließen muss. nerzeit beispielsweise die Detailtiefe, mit
Lieblingsaufgaben derer, die es bauen. Netbox1 gehört zu den Werkzeugen, der sich der Inhalt von Racks erfassen
Hilft aber nix: Wird der Administrator die Netzwerkern die Dokumentations­ ließ. Früh erkannten die Netbox-Entwi­
morgens um drei aus dem Bett geklin­ arbeit zumindest ein bisschen schmack­ ckler, dass im modernen Rechenzentrum
gelt und sieht sich einem Problem im hafter machen. Das Werkzeug entstand eben nicht mehr nur IP-Adressen und
Netz gegenüber, muss er wissen, wer mit einst aus der Unzufriedenheit heraus, Netzwerke existieren: Darüber hinaus gilt
wem Daten austauscht, welcher Server dass für Datacenter Inventory Manage­ es auch, Faktoren wie BGP-Verbindungen
an welcher Stelle verbaut ist, wie er an ment (DCIM) und IP Address Manage­ oder die Adressen virtueller Instanzen
dessen BMC-Schnittstelle kommt und wo ment (IPAM) zwar diverse Werkzeuge sinnvoll zu verwalten.

28 www.linux-magazin.de 08.2023
Netbox Titelthema

Heute präsentiert sich Netbox als Netz­


werk-Tausendsassa und bildet all diese
Faktoren und etliche weitere Parameter
in seinen Daten ab. Strom- und Netz­
werkkabel lassen sich nicht nur einzeln
benennen und inventarisieren, sondern
auch exakt so beschreiben, dass man
Verbindungen zwischen den einzelnen
Servern und Switches sofort erkennt. Wo
vielerorts heute noch immer mehr oder
minder geraten wird, welches Kabel
wohl wo entlangführt und an welchem
Port es steckt, wissen Netbox-Nutzer im
Detail Bescheid.

Mehrwert durch Plugins


Was viele Administratoren laufender
Netbox-Instanzen allerdings nicht wis­
sen: Netbox verfügt über eine Plugin-

© Netbox
Schnittstelle, über die das Werkzeug sich
verhältnismäßig leicht um weitere Funk­
tionen erweitern lässt. Wie in der Open-
Source-Welt üblich lieferte die Commu­ 1 Netbox gilt im Kontext von DCIM und IPAM als Standardlösung, lässt sich mit den
nity prompt: Etliche freie Erweiterungen passenden Plugins aber um viele Funktionen erweitern.
stehen zur Verfügung, mit denen das
­lokale Netz sich noch besser dokumen­
tieren lässt. ändert. Das liegt vor allem daran, dass packen danach als dieser den herunter­
Wer beispielsweise keine Lust hat, die Netbox-Entwickler vor ein paar Jah­ geladenen Tarball in /opt/netbox/. Al­
Netzwerkpläne zu zeichnen, der kann ren offensichtlich so gute Designarbeit ternativ dazu schlägt die Dokumentation
diese Aufgabe an ein Netbox-Plugin ab­ geleistet haben, dass das Resultat bis vor, ihn nach /opt zu extrahieren und da­
treten. Sofern die Daten in Netbox stim­ heute trägt. Noch immer benötigt das von einen symbolischen Link auf /opt/
men und die Verkabelung ordentlich er­ Werkzeug weitgehend dieselben Kom­ netbox/ anzulegen.
ledigt und erfasst wurde, zaubert das Vi­ ponenten wie zu Beginn seiner Entwick­ Dann geht es an die Netbox-Konfigu­
sualisierungs-Plugin für Netbox in weni­ lung: Eine PostgreSQL-Datenbank, Redis, ration. Mittels der Kommandos aus den
gen Sekunden einen kompletten Netz­ Gunicorn als WSGI-Umgebung sowie Zeilen 2 und 3 von Listing 1 übernehmen
plan. Der lässt sich dank mannigfaltiger Apache oder Nginx, um Netbox an den Sie die Beispielkonfiguration, in der Sie
Einstellungsoptionen beim Ausgabefor­ Client auszuliefern. anschließend die Parameter ALLOWED_
mat auch an einen Plotter senden, der Um Netbox an den Start zu bringen, HOSTS, DATABASE, REDIS sowie SECRET_
dann eine Netzwerktapete für die Büro­ liefern die Entwickler zudem unverän­ KEY anpassen. Ein Schlüssel für den letzt­
wand druckt. dert ein Setup-Werkzeug aus, das einen genannten Eintrag lässt sich mittels des
Zugegeben: Im Netz kursieren etliche Teil der Installation übernimmt. Im Fol­ Aufrufs python3 ../generate_secret_
Netbox-Erweiterungen, nicht alle leben genden gehen wir davon aus, dass auf key.py generieren. Schließlich steht der
auf Github. Die Entwickler von Netbox dem Zielsystem mit Netbox eine Redis- Aufruf des Werkzeugs an, das einen an­
haben eigens für diesen Zweck eine Liste Instanz und PostgreSQL laufen; die Be­ fänglichen Benutzer in Netbox anlegt
mit von ihnen für gut befundenen Plug­ nutzerdaten beider Datenbanken müs­ (Listing 1, Zeilen 4 bis 6). Danach gilt es
ins erstellt. Der folgende Artikel listet ei­ sen bekannt sein. Zudem muss es einen noch, per Cronjob die Aufräumarbeiten
nige der besten Addons auf und zeigt, Systembenutzer netbox geben, mit des­ von Netbox zu aktivieren (Zeile 7).
wie sie die Dokumentation des eigenen sen Rechten der HTTP-Dienst läuft und Anschließend kopieren Sie die Guni­
Netzwerks verbessern und manchmal so­ dem die zu Netbox gehörenden Dateien corn-Beispielkonfigurationsdatei con‑
gar revolutionieren. Zuvor geht es aber im System gehören. In /opt/netbox/, trib/gunicorn.py im Netbox-Ordner
kurz um das Setup von Netbox selbst. dem Home-Verzeichnis dieses Nutzers, nach /opt/netbox/. Über die Komman­
landen auch die Dateien der Software. dos aus den Zeilen 9 und 10 bekommt
Sie laden die jeweils aktuellste Netbox- Systemd Units, über die es Netbox steu­
Aller Anfang
Version  nach /opt/netbox/ herunter, ert. Dann aktivieren Sie den Dienst (Zei­
Hinsichtlich des Ablaufs hat sich eine ändern die Berechtigungen der Dateien le 11 und 12). Dazu muss freilich Guni­
Netbox-Installation seit Jahren kaum ver­ auf den Systembenutzer netbox und ent­ corn bereits installiert sein; das Paket

08.2023 www.linux-magazin.de 29
Titelthema Netbox

lerdings noch nicht, schließlich fehlen


sämtliche Inventar- und Netzwerkdaten.
Für Sie beginnt an dieser Stelle viel
Fleißarbeit: Es kann einige Zeit in An­
spruch nehmen, die komplette IT des ei­
genen Unternehmens in Netbox zu er­
fassen. Sie sollten hier allerdings keine
Abkürzungen nehmen, bloß um Zeit zu
sparen. Denn je genauer die in Netbox
erfassten Daten ausfallen, desto besser
© Netbox Community

ist die Dokumentation der eigenen Infra­


struktur und umso erfolgreicher lassen
sich die Plugins nutzen, die wir im Fol­
genden vorstellen.

2 Mittels des QR-Code-Plugins lassen sich Labels produzieren, die nach einem Scan per Hardware beschriften
Smartphone auf die jeweilige Geräteseite in Netbox führen.
Während es früher üblich war, lediglich
Geräte im Rechenzentrum zu beschrif­
findet sich in den Repositories aller Apache-Beispielkonfiguration aus Net­ ten, kennzeichnet man mittlerweile auch
­aktuellen Enterprise-Distributionen. box. Darin verändern Sie dann die Pfade Kabel. Ein logischer Ansatz, da sich ein
Im Anschluss erfolgt die Installation ei­ zu den SSL-Dateien, bevor Sie Netbox Kabel, das man anhand eines entspre­
nes Webservers; im Beispiel kommt dafür endgültig in Betrieb nehmen (Zeile 16ff ). chenden Etiketts an Ursprung und Ziel
Apache zum Zug. Sie sollten an dieser Unter dem Host-Namen des Systems, eindeutig identifizieren kann, relativ
Stelle die Kombination aus SSL-Schlüssel auf dem Netbox läuft, sollte sich nun der leicht austauschen lässt. Dazu genügt es,
und SSL-Zertifikat sowie ein eventuell Port 443 von Netbox erreichen lassen. die jeweiligen Stecker auf beiden Seiten
benötigtes Intermediate-Zertifikat zur Die erste Anmeldung erfolgt mittels der zu trennen, und schon lässt sich das Ka­
Hand haben, um Netbox von Anfang an zuvor auf der Shell festgelegten Benut­ bel aus dem Rack fischen. Hat man sich
adäquat abzusichern. Das Kommando zerdaten des Netbox-Superusers. Viel zu beim Bau des Racks entsprechend Mühe
aus Zeile 14 übernimmt im Anschluss die sehen gibt es nach dem ersten Login al­ gegeben, gerät so auch ein eventuell
vorhandenes Kabelmanagement nicht
aus den Fugen.
Listing 1: Netbox-Konfiguration Die verfügbaren Tagging-Lösungen
01 
### Netbox konfigurieren
der Hersteller sind allerdings nicht son­
derlich digital. Sie können zwar ein Tag
02 
$ cd /opt/netbox/netbox/netbox/
mit einem Namen produzieren, oft ge­
03 
$ sudo cp configuration_example.py configuration.py nug war es das aber auch schon. Für den
04 
$ source /opt/netbox/venv/bin/activate Administrator vor Ort ist das nur bedingt
05 
$ cd /opt/netbox/netbox hilfreich. Jeder, der schon einmal in ei­
06 
$ python3 manage.py createsuperuser nem Rechenzentrum gearbeitet hat,
kennt das Problem wahrscheinlich: Rack-
07 $
 sudo ln ‑s /opt/netbox/contrib/netbox‑housekeeping.sh /etc/cron.
Bezeichnungen fallen noch intuitiv aus,
daily/netbox‑housekeeping
bei einem sinnvollen Namensschema
08 
### Systemd‑Dienst
möglicherweise auch die Server-Namen.
09 
$ sudo cp ‑v /opt/netbox/contrib/*.service /etc/systemd/system/ Informationen zu einem beliebigen Ka­
10 
$ sudo systemctl daemon‑reload bel im Rack lassen sich ohne Hilfe eines
11 
$ sudo systemctl start netbox netbox‑rq Computers allerdings nicht herausfin­
den. Wer vor einer Stromverteilereinheit
12 
$ sudo systemctl enable netbox netbox‑rq
(Power Distribution Unit, PDU) steht und
13 
### Apache‑Konfiguration
sich darauf einloggen möchte, kann da­
14 $
 sudo cp /opt/netbox/contrib/apache.conf /etc/apache2/ gegen mit dem Host-Namen nur wenig
sites‑available/netbox.conf anfangen, wenn er nicht zufällig die IP-
15 
### Netbox in Betrieb nehmen Adresse des Management-Interfaces des
16 
$ sudo a2enmod ssl proxy proxy_http headers rewrite Geräts im Kopf hat.
17 
$ sudo a2ensite netbox Mit dem entsprechenden Plugin bietet
Netbox hier erweiterte Möglichkeiten:
18 
$ sudo systemctl restart apache2
Beschriftungen lassen sich bis hinunter

30 www.linux-magazin.de 08.2023
Netbox Titelthema

auf einzelne Kabel oder virtuelle Instan­


zen anlegen. Doch wäre es nicht viel hilf­
reicher, könnte man vor dem Rack ste­
hend alle Details sofort sehen, die in Net­
box über die Hardware hinterlegt sind?
Genau diese Möglichkeit bietet das Net­
box-QR-Code-Plugin . 2
Möglich wird das, weil Netbox zum ei­
nen über eine grafische Oberfläche ver­
fügt und zum anderen im Hintergrund
eine API anbietet. Die ist so angelegt,
dass sich jedes Gerät in Netbox über eine
eigene URL eindeutig erreichen lässt. Das
QR-Code-Plugin  vollbringt insofern

© Netbox Community
gar kein Hexenwerk: Es generiert aus die­
ser URL einen QR-Code, den es mitsamt
grundlegenden Details zum Gerät aus­
gibt. Den größten Teil der zu druckenden
Felder bestimmen Sie, sodass das Label
neben dem QR-Code sämtliche Details 3 DNS-Einträge lassen sich mittels des DNS-Plugins verwalten, und zwar so, dass die
enthält, die Sie sich wünschen. Daten gleich auch beispielsweise in Ansible zum Einsatz kommen können.
Noch praktischer: Ist das Plugin aktiv,
blendet Netbox das Label samt QR-Code
auf jeder Geräteseite ein und aktiviert zu­ erneut, wenn es seine virtuelle Python- Umstand, dass in vielen Firmen die Ver­
sätzlich einen Print-Button. Wie es wei­ Umgebung im Rahmen eines Updates antwortung für die Wartung und die für
tergeht, hängt von der lokalen Hardware frisch erstellt. den Betrieb der physischen Infrastruktur
ab, die für das Tagging zum Einsatz bei unterschiedlichen Teams liegen.
kommt. Realisieren Sie Ihr Tagging per Auch dieses Problem lässt sich mit
Alles klar im DNS
Label-Printer, können Sie die Labels aus Netbox lösen, genauer gesagt mit des­
Netbox gleich ausdrucken und die Gerä­ Ein weiteres Plugin beseitigt – wie Net­ 3
sen DNS-Plugin . Es verwaltet zu­
te und Kabel beschriften. So sind Sie für box selbst – eine Baustelle, die sich in vie­ nächst Domänen und die DNS-Einträge
den nächsten Besuch im RZ perfekt vor­ len Firmen findet: die korrekte Dokumen­ für IP-Netzwerke inklusive A- und PTR-
bereitet. Stehen Sie vor der jeweiligen tation und Umsetzung von DNS-Einträ­ Einträgen. Diese löscht es zudem auto­
Hardware, genügt es, den QR-Code mit gen. In vielen, wenn nicht sogar den matisch oder legt die entsprechenden
dem Smartphone zu scannen – flugs öff­ meisten Unternehmen sind die Datensät­ Einträge an, falls sich an den Netbox-Da­
net sich die passende Seite in Netbox. ze für Hardwareinfos und DNS strikt von­ ten etwas ändert. Quasi im Vorüberge­
Die Installation des Plugins ist denkbar einander getrennt. Ein Admin schraubt hen wird Netbox damit zur Single Source
einfach. Haben Sie Netbox wie beschrie­ also einen Server ins Rack, legt ihn in Net­ of Truth in Sachen DNS, was Arbeit spart
ben ausgerollt, lassen sich Erweiterun­ box an und erstellt danach im DNS-Server und die Effizienz erhöht. Kommt das
gen ganz einfach mittels Pip in der Net­ den für die Maschine benötigten Eintrag. ­Plugin zum Einsatz, muss die RZ-Truppe
box-eigenen virtuellen Python-Umge­ Das ist doppelt gemoppelt und der Ad­ nach dem Einbau eines Servers künftig
bung installieren. Die beiden Befehle ministrator muss künftig die Daten zum kein Ticket mehr an Ops schreiben, um
source /opt/netbox/venv/bin/activa‑ jeweiligen Gerät an zwei Stellen pflegen. DNS-Einträge für das neue Gerät zu pro­
te sowie pip install netbox‑qrcode Verändert sich der Server durch Wegfall duzieren. Netbox erledigt das stattdes­
sowie der Eintrag PLUGINS = ['netbox_ oder Austausch, gilt es, anschließend sen ganz von allein.
qrcode'] in opt/netbox/netbox/net‑ möglicherweise die A- wie auch die PTR- Die Installation des Plugins  verläuft
box/configuration.py schließen die Einträge für das System zu bearbeiten. analog zu jener für das QR-Code-Plugin
Konfiguration ab. Die Änderungen grei­ Muss man logisch zueinander gehö­ (Listing 2, erste zwei Zeilen). Der Eintrag
fen nach einem Neustart von Netbox. Die rende Daten unabhängig voneinander aus Listing 3 aktiviert die Erweiterung
Geräte-QR-Codes tauchen nun von allei­ pflegen, kommt es bekanntlich regelmä­ und zeigt sogar die korrekte Syntax für
ne auf, das Beschriften kann losgehen. ßig zu Unstimmigkeiten. Entfernt etwa mehrere Plugins gleichzeitig, denn diese
Damit das Plugin auch nach Netbox- die Truppe, die im Rechenzentrum han­ lassen sich mit einer Zeile pro Instanz in
Updates weiterhin zur Verfügung steht, tiert, ein Gerät aus einem Schrank und der Datei angeben. Ein Echo-Befehl (Lis­
empfiehlt es sich, in der Datei ~/netbox/ vergisst danach, die DNS-Einträge zu lö­ ting 2, Zeile 3) aktiviert das Plugin dauer­
local_requirements.txt den Eintrag schen, resultiert daraus mit einiger Wahr­ haft, ein kurzes Kommando im Netbox-
netbox_qrcode zu hinterlegen. Dann in­ scheinlichkeit früher oder später Verwir­ Ordner (Zeile 4) fügt den Netbox-Tabel­
stalliert Netbox das Plugin automatisch rung. Begünstigt wird das durch den len die für DNS-Einträge benötigten

08.2023 www.linux-magazin.de 31
Titelthema Netbox

Sie im weiteren Verlauf


zumindest in der Theorie
ja die Details zu den BGP-
Verbindungen an zwei
Orten pflegen, falls Sie
Ihre Router aus der Auto­
mation heraus mit Konfi­
guration versorgen. Es
gilt, was für Dokumenta­
tion immer gilt: Doppelt
hält nicht besser, sondern
ist großer Mist.
Wegen seiner vielseiti­
gen API lässt Netbox sich
aber selbstverständlich
© Netbox Community

auch aus Automationslö­


sungen heraus als umfas­
sende Informationsquelle
nutzen. In Ansible bei­
spielsweise existiert ei­
4 Daten zu BGP-Sitzungen sind eigentlich nicht vorgesehen. Das BGP-Plugin erweitert die Lösung darum. gens für diesen Zweck ein
Lookup-Modul (nb_loo‑
kup), das spezifische Wer­
Spalten hinzu. Danach taucht in Netbox definierte BGP-Routing-Policies sowie die te aus Netbox auslesen kann. Bauen Sie
der neue Menüpunkt Zones auf, über Listen der zu empfangenden und zu sen­ Ihre Ansible-Information nun so, dass sie
den Sie bei Bedarf DNS-Zonen samt aller denden IP-Prefixes für einzelne Sitzun­ die Details über BGP-Verbindungen aus
Einträge anlegen. gen. Obendrein lassen sich all diese De­ Netbox bezieht, statt aus den eigenen
tails an den passenden Stellen konkret Variablen, ist die Brücke geschlagen: Än­
mit einzelnen Geräten verbinden. Die derungen in Netbox samt einem erneu­
BGP-Infos in Netbox
­Informationsvielfalt ist dabei enorm: Für ten Ansible-Lauf führen dann automa­
Das nächste Plugin rüstet eine Funktion einzelne Sessions können Sie in Netbox tisch dazu, dass der Automatisierer die
nach, bei der man sich fragt, wieso Net­ die meisten BGP-Eigenschaften ebenso aktualisierten Details auch auf den Ziel-
box sie nicht bereits nativ enthält: das anlegen wie die dazugehörende Verbin­ Routern übernimmt.
Speichern von Informationen zu beste­ dung mit IP-Netzwerken.
henden BGP-Sessions der eigenen Rou­ Die Installation des Plugins folgt den
Netzwerkpläne zeichnen
ter. Gut möglich, dass die Entwickler sich schon bekannten Regeln: Via Python-
seinerzeit gedacht haben, entsprechen­ venv installieren Sie das Plugin net‑ Der letzte Kandidat in der Liste der ex­
de Informationen würden ohnehin im box‑bgp, aktivieren es in der Konfigurati­ trem hilfreichen Netbox-Plugins ist net‑
zentralen Konfigurationsmanagement on und fügen der local_requirements. box‑ui‑plugin 5 . Das UI im Namen
und eben nicht in Netbox verwaltet. Sei­ txt den Eintrag netbox_bgp hinzu. Da­ stammt von NextUI, und Netzwerkgurus
ner Aufgabe als Single Source of Truth im nach erreichen Sie die BGP-Funktionen wissen damit vermutlich bereits, wo die
Netzkontext kann Netbox so aber nur sowohl über den Punkt Plugins im Net­ Reise hingeht: netbox‑ui‑plugin kann
eingeschränkt nachkommen. Aber es box-Hauptmenü als auch über entspre­ mit den in Netbox vorgefundenen Daten
gibt eine Lösung dafür: Mittels des Plug­ chende Endpunkte in der API. automatisch komplette Netzwerkpläne
ins bgp  lässt sich die entsprechende Das BGP-Plugin ist zudem ein hervor­ zeichnen. Wofür sich Netzwerk-Admins
Funktionalität nachrüsten .4 ragendes Beispiel dafür, dass Netbox sich ansonsten die Finger wund klicken, be­
Bei aktiver Erweiterung lassen sich mit anderen Diensten für den Einsatz als nötigt Netbox mit dieser Erweiterung
BGP-Communities in Netbox ebenso Single Source of Truth eignet. Würden Sie nur wenige Sekunden, um eine Hoch­
pflegen wie aufzubauende BGP-Sessions, nur das BGP-Plugin aktivieren, müssten glanztapete des Netzwerks für die Büro­

Listing 2: DNS-Plugin Listing 3: DNS-Eintrag


01 
$ source /opt/netbox/venv/bin/activate <pre>
02 
$ pip install netbox‑plugin‑dns PLUGINS = [
03 
$ echo netbox‑plugin‑dns >> ~/netbox/local_requirements.txt "netbox_dns",
04 
$ ./manage.py migrate ] </pre>

32 www.linux-magazin.de 08.2023
Netbox Titelthema

wand zu erstellen. Einen


Haken hat die Sache aller­
dings: Damit Netbox
Netzwerkpläne zeichnet,
die die Realität tatsächlich
abbildet, müssen die in
Netbox hinterlegten Da­
ten möglichst genau und
richtig sein. Das umfasst
Kabel, Netzwerke und die
Hardware selbst. Haben
Sie hier anfangs nicht
­exakt genug gearbeitet,
rächt sich das spätestens

© Netbox Community
beim Zeichnen der Netz­
werkpläne, und es fällt
Nacharbeit an.
Die Installation der Er­
weiterung unterscheidet
sich von jener der ande­ 5 Das UI-Plugin zeichnet aus den in Netbox vorgehaltenen Daten Netzpläne. Das klappt freilich nicht
ren Plugins, jedoch nur in ohne einen möglichst genauen, gut gepflegten Netbox-Datensatz.
einem kleinen Detail: Das
UI-Plugin  ist nicht per
Pip zu beziehen. Stattdessen holen die Satte Auswahl Nützlichkeit der Lösung aber nochmals
Befehle aus Listing 4 das Addon auf das erheblich. Längst hat es sich im moder­
System. Als Nächstes steht der Eintrag Die hier gezeigten Plugins stellen nur nen Rechenzentrum eingebürgert, Wis­
nextbox‑ui‑plugin in der local_requi‑ eine kleine Auswahl der sinnvollen Er­ sen möglichst zuverlässig und zentral
rements.txt an. Der passende Eintrag weiterungen dar. vorzuhalten. Über entsprechende Erwei­
zum Laden des Plugins in der Netbox- Liebäugeln Sie mit noch mehr Addons, terungen kann Netbox diese Rolle um­
Konfiguration lautet dann netbox_ui_ dann sehen Sie sich am besten auf der fassend erfüllen. Es macht dann separat
plugin. Website von Awesome Netbox  um: gepflegte BGP- und DNS-Daten ebenso
Das Plugin hat eine ganze Reihe von­ Dort findet sich eine kuratierte Liste der überflüssig wie mit Visio & Co. gezeich­
Konfigurationsmöglichkeiten, die die Git­ Netbox-Entwickler mit vielen nützlichen nete Netzwerkpläne.
hub-Seite umfassend dokumentiert. Da­ Plugins. Dazu zählen unter anderem eine Obendrein bietet Netbox eine ganze
bei spielt der Parameter layers_sort_ Telefonbuchverwaltung, eine Anbindung Reihe von Plug­ins für Statusdienste:
order eine ganz besondere Rolle: Dieser an OIDC, ein IP-Rechner für Netzwerke, Möchten Sie etwa die in Netbox hinter­
Parameter bestimmt die Reihenfolge der Schnittstellen zu RouterOS sowie ein legten Geräte automatisch überwachen,
dargestellten Geräte in der fertigen Ab­ komplettes Lifecycle-Management, in liefert der Prometheus-Exporter sämt­
bildung. Danach stehen nur noch ein dem sich Details zum Support einzelner liche Nutzdaten in einem Format, die das
paar vorbereitende Aufgaben an: In der Geräte hinterlegen lassen. Monitoring-System nativ verwenden
Python-venv-Umgebung richten die bei­ kann. Zumindest für Netzwerkhardware
den letzten Befehle aus Listing 4 das wird Netbox damit zusätzlich zur maß­
Fazit
Plug­in auf der Netbox-Seite endgültig geblichen Konfigurationsquelle für das
ein. Ein Neustart schaltet die Konfigura­ Netbox lässt sich bereits allein vielseitig Monitoring. Kurz gesagt: Wer Netbox
tion am Ende wie gewohnt scharf. einsetzen, manche Plugins erhöhen die klug einsetzt, der erschlägt damit viele
Probleme auf einen Streich. (jcb/jlu) █

Listing 4: Netzplan-Plugin
$ git clone https://github.com/iDebugAll/nextbox‑ui‑plugin Dateien zum Artikel
herunterladen unter
$ cd nextbox‑ui‑plugin
www.lm-online.de/dl/49236
$ source /opt/netbox/venv/bin/activate
$ pip3 install .
[...] Weitere Infos und
$ python3 manage.py collectstatic interessante Links
$ python3 manage.py migrate www.lm-online.de/qr/49236

08.2023 www.linux-magazin.de 33
MAGAZIN -GUT SCHEIN
5 EURO

SICHERN SIE SICH JETZT IHR GESCHENK!


EIN AMAZON-GUTSCHEIN ÜBER 5,00 €

33 %
Rabatt
TESTEN SIE
3 AUSGABEN
FÜR 21,00 €
OHNE DVD 17,00 €

ABO-VORTEILE
• Günstiger als am Kiosk
• Versandkostenfrei
bequem per Post
• Pünktlich und aktuell
Telefon: 0911 / 9939 90 98
• Keine Ausgabe verpassen
E-Mail: computec@dpv.de

Einfach bequem online bestellen: shop.linux-magazin.de


Einführung Software

 In eigener Sache: DELUG-DVD

Neues auf der Heft-DVD


Auf der DELUG-DVD finden
Sie Debian 12 „Bookworm“,
40 Vorträge von den Chem-
nitzer Linux-Tagen 2023,
vier Dokumentationshelfer,
OCIS 3, Memtest86+ und
­vieles andere mehr.
Tim Schürmann

1 Debian 12 schlägt Gnome 43 als Standard-Desktop-Umgebung vor.

Neben dem Linux-Magazin ohne DVD als symbolischer Link auf ihre Pendants bücher. Netbox erfasst komplexe Netz-
gibt es die DELUG-Ausgabe mit einem unter /usr/bin/. Sämtliche proprietäre werkinfrastrukturen und offeriert ein IP
speziell zusammengestellten Datenträ- Firmware sammelt ab sofort das Reposi- Address Management. Entwicklern von
ger. Gebündelt unter einer HTML-Oberflä- tory non-free-firmware. REST-Schnittstellen greift Swagger unter
che enthält er Programme und Tools, die die Arme: Das Toolkit erstellt aus einer In-
wir in der jeweiligen Ausgabe testen, so- terface-Beschreibung automatisch Quell-
CLT 2023
wie nicht im Heft besprochene Software, code und eine passende Dokumentation.
die die Redaktion besonders empfiehlt. Drehen Sie die DVD um und greifen mit Ebenfalls auf der DVD warten die aktu-
dem Webbrowser darauf zu, landen Sie ellen Versionen von Owncloud Infinite
in einem HTML-Menü mit zahlreichen Scale sowie Memtest86+. Letzteres
Seite A: Debian
weiteren exklusiven Inhalten. Als Erstes nimmt den Hauptspeicher unter die
Von der Seite A der DVD startet ein Ins- stechen die 40 Vorträge von den Chem- Lupe und entdeckt defekte Speicherrie-
tallationsassistent, der Debian 12 „Book- nitzer Linux-Tagen 2023 hervor, die eine gel. Die hoch skalierbare Filesharing-
1
worm“ einrichtet  . Gegenüber der Vor- breite Themenpalette abdecken. Im Fo- Plattform Infinite Scale bindet in ihrer
version gibt es vor allem frischere Soft- kus standen fortgeschrittene Netzwerk- Version 3.0.0 per ICAP Virenscanner ein
ware, darunter den Kernel 6.1 LTS, Apa- themen sowie die Programmierung in und kann mit ihrer File Firewall gezielt
che 2.4.57, MariaDB 10.11 und PHP 8.2. Rust, Go und der Java-Alternative Kotlin. den Upload von Dateien unterbinden.
Das Dateisystem folgt jetzt konsequent Darüber hinaus gab es unter anderem Bei Interesse klöppeln Sie mit Build-
dem sogenannten Usrmerge-Layout. Da- ­Sicherheitstipps für die Datenbank Post- root Ihr eigenes System für IoT-Geräte,
bei zeigen Systemverzeichnisse wie /bin greSQL und eine Troubleshooting-Hilfe ­lesen RSS-Feeds mit fünf verschiedenen
für Systemadministratoren. Readern, zünden den schlanken Webser-
ver Lighttpd, jonglieren C- und C++-Bib-
Inhalt Titelthema Dokumentieren liotheken mit den Paketmanagern Vcpkg
und Conan, lassen Software von Jenkins
36 Tooltipps
Passend zum Titelthema dieser Ausgabe bauen, erkunden die neuen Features in
Sechs CLI-Werkzeuge im Kurztest stehen auf der DVD vier hilfreiche Doku- Rust 1.70, übersetzen C-Code mit einem
38 Bitparade mentationswerkzeuge bereit. Mit DAPS 512 Byte kleinen Compiler oder vertiefen
und DITA verfassen Sie schnell umfang- sich in Software zu den weiteren Artikeln
Fünf RSS-Feed-Reader im Vergleich
reiche technische Dokumente und Hand- dieses Hefts. (jlu) █

08.2023 www.linux-magazin.de 35
Software Tooltipps

Atuin 14.0.1 Calculator Diffsitter 0.8.0

Befehlsverlauf-Datenbank für Shells Taschenrechner in der Konsole diff-Alternative


Quelle: https://​­github.​­com/​­afnanenayet/​
Quelle: https://​­github.​­com/​­ellie/​­atuin Quelle: https://​­codeberg.​­org/​­ac/​­calculator
­diffsitter
Lizenz: MIT Lizenz: MIT
Lizenz: MIT
Alternativen: Bash-History Alternativen: Bc Alternativen: diff

Atuin verwaltet den Shell-Befehlsverlauf Einfache Berechnungen lassen sich Das Rust-basierte Diffsitter will GNU Diff
in einer PostgreSQL-Datenbank. Sie kom- schnell in der Shell erledigen, für komple- vor allem beim Vergleichen von Quell-
pilieren das Rust-Programm selbst oder xere Aufgaben benötigen Sie jedoch eine code Konkurrenz machen. In den gängi-
greifen auf eines der Binärpakete bei Git- höhere Skriptsprache oder ein Tool wie gen Distributionen fehlt es noch. Sie
hub zurück. Nach der Installation füllen Calculator. In den Repos der gängigen kompilieren das Tool wahlweise selbst
Sie den noch leeren Atuin-Befehlsverlauf Distributionen suchen Sie es vergeblich, oder greifen auf eines der Binärpakete
durch einen Aufruf mit dem Unterbefehl sodass Sie es selbst kompilieren müssen. auf Github zurück. Letztere setzen eine
import. Das Tool liest den Inhalt der Shell- Bei der Dokumentation gibt sich das Tool Glibc 2.32 oder höher voraus.
History ein und schreibt ihn in die Daten- sparsam. Ohne Parameter aufgerufen, Ohne Parameter aufgerufen, gibt Diff-
bank, die Sie nun per search durchsu- zeigt Calculator immerhin eine Online- sitter eine Crash-Meldung aus. Eine einfa-
chen können. Kombinieren Sie das mit Hilfe an, die alle wichtigen Parameter und che Online-Hilfe erhalten Sie mit ‑h. Der
dem Parameter ‑h, zeigt Atuin alle Ein- unterstützten Funktionen auflistet. Unterbefehl list liefert eine Liste aller
stellungsmöglichkeiten einer Suchanfra- Neben den Grundrechenarten be- 15 unterstützten Programmier- und Satz-
ge. Mit ‑before und ‑after beschränken herrscht Calculator mehr als 20 weitere sprachen. Kann Diffsitter das Format der
Sie die Suche auf einen Zeitraum. Mit ‑i mathematische Operationen, darunter zu vergleichenden Dateien nicht erken-
starten Sie Atuin im interaktiven Modus, neben einfachen Funktionen wie min nen, wirft es eine Fehlermeldung aus.
das Format der Ausgabe passen Sie mit oder max auch komplexere Berechnun- Über ‑t geben Sie das Format explizit vor.
‑f an Ihre Wünsche an. gen wie die Fibonacci-Folge. Die Operan- Das Tool versucht, anhand des Formats
Mit dem Aufruf atuin init erzeugt den übergeben Sie als Aufrufparameter einen semantisch sinnvollen Vergleich zu
das Tool eine an die jeweilige Shell ange- oder aktivieren mit ‑d einen interaktiven erzeugen. Unterschiede in der Codefor-
passte Konfiguration, die Sie in die ent- Modus. Um Calculator in eigene Skripte matierung berücksichtigt es dabei nicht.
sprechende Konfigurationsdatei einbin- zu integrieren, leiten Sie die Berechnun- Mit ‑‑color deaktivieren Sie die stan-
den. Über den Unterbefehl stats erfah- gen via Pipe an das Tool weiter. Es rückt dardmäßige Einfärbung der Ausgabe.
ren Sie, wie oft bestimmte Kommandos die Ausgabe gut lesbar ein und setzt ein Diffsitter erwartet seine Konfiguration
im Verlauf vorkommen. Atuin erlaubt, die Gleichheitszeichen vor das Ergebnis. Um unter $HOME/.config/diffsitter/con‑
History auf einem Server zu verwalten. das Resultat automatisiert weiterzuver­ fig.json5. Mit dump‑default‑config
Der Entwickler stellt dazu einen zentra- arbeiten, deaktivieren Sie mit ‑r diese aufgerufen, schreibt es alle Einstellungen
len Atuin-Server bereit. Um Ihre Befehls- Formatierung. Beschränken Sie bei Dezi- in die Standardausgabe, sodass Sie sie als
verläufe lokal zu verwalten, starten Sie malausgaben die Nachkommastellen Vorlage für eigene Anpassungen nutzen
per server eine eigene Instanz. Im Test nicht mit dem Parameter ‑p, entscheidet können. Durch ein Vervollständigungs-
wollte sich der Atuin-Client partout nicht Calculator selbst, wie viele Stellen es an- skript in der jeweiligen Shell-Konfigurati-
mit dem eigenen Server verbinden, die zeigt. Rufen Sie das Tool mit ‑s auf, zeigt on erleichtern Sie sich die Nutzung von
sehr knappe Dokumentation half da es nicht nur das Ergebnis an, sondern die Diffsitter. Den benötigten Code erzeugen
auch nicht weiter. vollständige Gleichung. Sie durch einen Aufruf des Tools mit
■■■■■ Atuin bietet eine moderne ■■■■■ Calculator bietet eine inter- gen‑completion.
Möglichkeit, Befehlsverläufe einer Shell zu essante und vielseitige Möglichkeit für ■■■■■ Diffsitter ist eine recht inter-
verwalten, erfordert aber Handarbeit. █ Berechnungen in der Konsole. █ essante Alternative zu GNU Diff. █

36 www.linux-magazin.de 08.2023
Tooltipps Software

Mdwiki 0.1.0 P0d 0.4.0 Trss 0.3

Mini-Wiki-Alternative Web-Server Performance-Messung RSS-Reader in der Konsole


Quelle: https://​­github.​­com/​­simonmittag/​
Quelle: https://​­codeberg.​­org/​­masi/​­mdwiki Quelle: https://​­codeberg.​­org/​­trill/​­trss
­p0d
Lizenz: GPLv3 Lizenz: GPLv3
Lizenz: Apache 2.0
Alternativen: WoaS Alternativen: Httperf, Curl Alternativen: Snownews

Viele Anwender hält der damit verbun- Mit dem Go-basierten Tool P0d ermitteln Auch heute liefern noch zahlreiche Sei-
dene Aufwand vom Betrieb eines eige- Sie die Geschwindigkeit eines Webauf- ten ihre Schlagzeilen als RSS aus. Mit
nen Wikis ab. Verwalten Sie Wissen lieber tritts. Binärpakete und den Quellcode dem C-basierten Tool Trss rufen Sie die
in strukturierten Textdateien, dann ist gibt es auf Github. Im Archiv findet sich Meldungen in der Kommandozeile ab.
möglicherweise Mdwiki das Richtige für neben der ausführbaren Datei auch ein Das Programm-Repo bietet keine ferti-
Sie. Als Bash-Skript hat es außer Git und README mit Anwendungsbeispielen so- gen Releases, Sie müssen den Code
Awk keinerlei größere Abhängigkeiten; wie einer Beispielkonfiguration. selbst kompilieren. Im Quellarchiv steht
die meisten genutzten Befehle und Funk- Sie steuern P0d über Aufrufparameter, eine kurze README-Datei als Anleitung
tionen zählen zum Unix-Standard. wobei ‑h eine Übersicht aller Optionen bereit, eine ausführliche Manpage fehlt.
Sie klonen den Code als ZIP-Datei von liefert. Für einen einfachen Test überge- Der Aufrufparameter ‑h liefert eine rudi-
Codeberg.org und können Mdwiki sofort ben Sie dem Tool die URL des zu prüfen- mentäre Online-Hilfe.
nach dem Entpacken betreiben. Das Ar- den Webauftritts. P0d zeigt zunächst an, Trss erwartet beim Aufruf die Angabe
chiv enthält ein einfaches README, das wie schnell die Internet-Anbindung ist. einer URL mit RSS-Feed und listet dann
die Installation beschreibt. Die dort zi- Mit dem Parameter ‑s überspringt es auf alle enthaltenen Einträge nach Zeitstem-
tierte Online-Hilfe ist jedoch nicht mehr Wunsch den Speed-Test. Das Tool öffnet pel sortiert auf. Um nur den jüngsten
aktuell. Rufen Sie stattdessen Mdwiki mit dann genau eine HTTP/​1.1-Verbindung Post anzuzeigen, verwenden Sie den Pa-
‑h auf, um die aktuellen Optionen zu er- und sendet 10 Sekunden lang Anfragen rameter ‑l. Mit ‑u gibt Trss lediglich die
fahren. Mit ‑e legen Sie neue Wiki-Seiten an das Ziel. Die Ausgabe aktualisiert P0d URLs der einzelnen Feed-Einträge aus.
an oder bearbeiten bestehende. Als For- zur Laufzeit permanent. Im Ergebnis se- Für den regelmäßigen Einsatz tragen Sie
matierungssyntax dient die Satzsprache hen Sie die Anzahl der verarbeiteten An- am besten alle RSS-Feed-Links in die Da-
Markdown. Seine Grundkonfiguration fragen, die Latenz der Gegenstelle und tei $HOME/.config/trss/urls ein. Eine
speichert Mdwiki in $HOME/.config/ die Zahl der Übertragungsfehler. Übersicht aller dort hinterlegten Feeds
mdwiki.ini. Hier geben Sie das Verzeich- Um mehrere Verbindungen zum Ziel liefert ‑L. Im selben Verzeichnis pflegt
nis für die Wiki-Dateien und den ge- aufzubauen, geben Sie die Anzahl mit ‑c das Tool eine Cache-Datei mit allen be-
wünschten Editor vor oder legen Pager vor. Das Prüfintervall setzen Sie mit ‑d reits angezeigten Beiträgen. Darauf ba-
fest. Eine Auflistung aller Wiki-Dateien – auf einen Wert Ihrer Wahl. Zur automati- sierend ermittelt es mit ‑c, wie viele
sie entsprechen jeweils einer Seite – er- sierten Weiterverarbeitung speichern Sie neue Posts seit dem letzten Lesen hinzu-
halten Sie mit dem Parameter ‑l. Um das Resultat mit ‑O im JSON-Format. Für gekommen sind. Starten Sie Trss mit ‑O,
eine Seite zu lesen, rufen Sie sie mit ‑r regelmäßige Tests hinterlegen Sie alle öffnet es alle ungelesenen RSS-Links im
auf. Zum externen Speichern und zur Parameter samt Ziel-URL in einer YAML- Standard-Webbrowser. Um nur den letz-
Versionierung kombinieren Sie Mdwiki Datei, die Sie P0d beim Aufruf mit dem ten Beitrag zu öffnen, geben Sie Trss
mit Git. Dann geben Sie über ‑‑git‑re‑ Parameter ‑C übergeben. Dabei können stattdessen ‑o mit.
mote ein externes Git-Repo an. Der Ab- Sie auch die Anfragemethode festlegen, ■■■■■ Trss verwaltet die RSS-Feeds
gleich erfolgt über ‑‑push und ‑‑pull. was via Parameter nicht gelingt. zwar in der Konsole, greift für die Anzei-
■■■■■ Mdwiki ermöglicht, Wissen ■■■■■ P0d ist ein handliches Werk- ge der Beiträge jedoch wieder auf den
in Textdateien zu strukturieren und auch zeug, mit dem Sie die Reaktionszeiten ei- für xdg‑open hinterlegten Webbrowser
ohne Webbrowser darauf zuzugreifen. █ ner Webseite präzise ermitteln. █ zurück. (Uwe Vollbracht/​jlu) █

08.2023 www.linux-magazin.de 37
© Allan Swart / 123RF.com
Nachrichten empfangen mit RSS-Feedreadern

Schlagzeilen
Für den simultanen Empfang themenspezifischer Nachrichten aus mehreren Quellen sind
RSS-Feeds nach wie vor erste Wahl. Wir haben uns deshalb einige der grafischen Feedreader
unter Linux näher angesehen. Erik Bärwaldt

Das Internet bietet eine Fülle von Nach- das Verbreiten von Nachrichten und in die jeweiligen Arbeitsoberflächen in-
richtenseiten, die Sie mit tagesaktuellen ­Informationen etabliert. Größere Web- tegrieren, sondern auch solche, die sich
Neuheiten versorgen. Auch soziale Netz- sites und auch Blogs bieten ihre Inhalte auf der Kommandozeile nutzen lassen.
werke wie Twitter oder Facebook verbrei- oft als RSS-Feed an. Dabei werden die Einige PIM-Anwendungen wie Evolution
ten Nachrichten, teils sogar wie Face- Nachrichten in Form von Schlagzeilen oder Thunderbird implementieren eben-
book News über eigene Bereiche für und Textanrissen in eigenen RSS-Feed­ falls RSS-Feedreader; dasselbe gilt für
journalistische Inhalte. Doch viele dieser readern ­angezeigt, sodass Sie nicht um- Produktivitätssoftware wie Makagiga.
Angebote haben einen Haken: Sie sam- ständlich im Webbrowser navigieren Für die gängigen Webbrowser gibt es
meln fleißig Daten über ihre Nutzer, und müssen. Die übersichtlichere Darstellung zudem Erweiterungen, die es ermögli-
es ist nicht klar, zu welchen Zwecken der Inhalte im RSS-Reader erlaubt zudem chen, RSS-Feeds direkt im geöffneten
sie diese Daten verwenden. Obendrein eine schnellere Auswahl der für Sie rele- Browser zu empfangen.
findet sich in kostenlosen Angeboten vanten Informationen. Um die Inhalte eines RSS-Feeds anzu-
häufig penetrante Werbung, die von den Linux entpuppt sich bei der Verfüg- sehen, benötigen Sie nicht nur ein ent-
eigentlichen Inhalten ablenkt. barkeit von nativen RSS-Readern als sprechendes Programm oder – im Fall
Seit den späten 2000ern haben sich wahres Füllhorn: So finden Sie unter von Webbrowsern – eine passende Er-
die RSS-Formate (kurz für Rich Site Sum- dem freien Betriebssystem nicht nur gra- weiterung, sondern müssen auch den
mary oder Really Simple Syndication) für fische RSS-Feedreader, die sich nahtlos gewünschten Feed abonnieren. Die

38 www.linux-magazin.de 08.2023
Bitparade Software

Feed­reader listen die bezogenen Inhalte


in Gestalt einer Schlagzeile auf, wobei
eine übersichtliche Anordnung unterein-
ander eine schnelle Navigation ermög-
licht. Aufgerufene Inhalte stellen sie im
Detail samt Abbildungen und typografi-
schen Elementen dar. Oft lassen sich die
Meldungen für einen späteren Zugriff
zusätzlich archivieren.

■ Akregator
Das freie Programm Akregator gehört
zum Fundus des KDE-Plasma-Desk-
tops . Die Software befindet sich seit
über 15 Jahren in permanenter Entwick-
lung und findet sich in den Repositories
aller gängigen Linux-Derivate. Zwar ge- 1 Akregator kommt mit einer konventionellen Oberfläche.
hört Akregator zur KDE-PIM-Suite Kon-
tact, lässt sich aber problemlos auch un-
ter anderen Arbeitsoberflächen installie- in dieser Gruppe an, ob Sie dazu die im blocker bietet eigene Einstellungen, die
ren und ohne Einschränkungen nutzen. System voreingestellte Anwendung oder Sie durch einen Klick auf den Button mit
Die konventionelle Oberfläche des einen anderen Browser verwenden dem Zahnradsymbol aufrufen. Im ent-
Readers stellt am oberen Fensterrand möchten. Ergänzend geben Sie in einer sprechenden Dialog setzen Sie ein Häk-
eine Menü- und eine Werkzeugleiste be- eigenen Eingabezeile den Befehl zum chen vor Werbefilter aktivieren und Blo-
1
reit  . Links im Fenster erscheinen die Aufruf des Browsers an. ckierte Elemente ausblenden. Anschlie-
abonnierten Nachrichtenquellen unter­ Eine weitere wichtige Einstellung fin- ßend abonnieren Sie bei Bedarf durch
einander. Rechts oben finden Sie eine den Sie in der letzten Kategorie Module. ­einen Klick auf die entsprechende Schalt-
Zeile zur freien Texteingabe, mit der Sie Voreingestellt blockiert der interne Brow- fläche rechts im Dialog Listen für das Fil-
nach Begriffen innerhalb von Artikeln ser von Akregator weder Werbung noch tern von Werbeeinblendungen. Sie stam-
­suchen. Ein kleinerer Bereich darunter Tracker. Das führt auf vielen Webseiten men größtenteils aus dem Fundus des
zeigt die einzelnen Nachrichtentitel samt dazu, dass Sie aufgrund penetranter bekannten Werbeblockers Adblock Plus.
Autor und Datum an. Unter diesem wie- ­Reklame die eigentlichen Inhalte kaum Haben Sie alle Einstellungen vorge-
derum erscheint eine Verlinkung auf den noch finden. In der Gruppe Module akti- nommen, klicken Sie unten rechts im
eigentlichen Artikel mit einem Anreißer. vieren Sie daher am besten durch Setzen Fenster auf Anwenden. Die neuen Einstel-
eines Häkchens die Webengine-Module lungen greifen jedoch erst nach einem
Einstellungen 2
AdBlock und Do Not Track  . Der Werbe- Neustart des RSS-Readers.

Um die Software einzurichten, klicken Sie


in der Menüleiste auf Einstellungen und
wählen dann die Option Akregator ein-
richten. Sie gelangen in einen Konfigu­
rationsdialog im typischen KDE-Layout,
in dem Sie in der Gruppe Allgemein die
Aktualisierungszyklen für die Feeds ein-
stellen. Hier legen Sie auch fest, ob die
Software beim Start alle Quellen auf
neue Nachrichten überprüfen soll.
In der Kategorie Archiv finden Sie Ein-
stellungen zum Archivieren von Nach-
richten, die Gruppe Browser umfasst Op-
tionen zur Verwendung externer Web-
browser. Voreingestellt kommt Akregator
mit einem integrierten Browser, der die
Feed-Inhalte direkt im Programmfenster
anzeigt. Möchten Sie stattdessen einen
externen Webbrowser nutzen, geben Sie 2 Akregator bietet auch einen Werbeblocker.

08.2023 www.linux-magazin.de 39
Software Bitparade

Dialog zum Hinzufügen eines Feeds ein.


In einem sich daraufhin öffnenden Konfi-
gurationsdialog nehmen Sie für den
Feed noch weitere Einstellungen vor: So
können Sie individuelle Optionen zur
­Archivierung einstellen, aber auch das
Verhalten des Feedreaders bei neu ein-
treffenden Nachrichten dieser Quelle.
Nach einem abschließenden Klick auf
den OK-Button schließt sich das Konfigu-
rationsfenster, und die neue Quelle er-
scheint links im Hauptfenster. Mit einem
Klick darauf blenden Sie rechts die Über-
schriften der Nachrichten ein. Ein weite-
rer Klick auf einen der Anreißer oder die
Verlinkung zur Seite unten rechts im
Fenster öffnet in einem neuen Reiter den
Browser mit der eigentlichen Nachricht.
Um den Reiter nach dem Lesen des In-
3 Das News-Portal Golem.de unterstützt RSS-Feedreader optimal. halts zu entfernen, rechtsklicken Sie dar-
auf und wählen aus dem Kontextmenü
die Option Unterfenster schließen.
Nachrichtenquellen Haben Sie alle nicht benötigten Einträge Sie können stattdessen auch jeden
gelöscht, fügen Sie andere, für Sie inter- Beitrag eines Feeds im externen Browser
Voreingestellt finden Sie in Akregator essante Quellen hinzu. Dazu klicken Sie öffnen, indem Sie mit der rechten Maus-
links in der Baumansicht der Nachrich- oben links in der Werkzeugleiste auf taste auf den Anreißer klicken und im
tenquellen nur eine Reihe von Feeds Nachrichtenquelle hinzufügen. In einem sich öffnenden Menü die Option In exter-
zum KDE-Desktop und zu Kubuntu. Um neuen Dialog geben Sie anschließend nem Browser öffnen wählen. Über dieses
diese zu entfernen, klicken Sie mit der die URL der Nachrichtenquelle an. Diese Menü markieren Sie zudem einzelne
rechten Maustaste auf die zu löschende können Sie in jedem beliebigen Web- Nachrichten als wichtig oder löschen sie.
Quelle. Im anschließend g­ eöffneten Kon- browser von der fraglichen Nachrichten-
textmenü wählen Sie die Option Ordner seite beziehen. Dazu rechtsklicken Sie
Formate
löschen. Nach einer Sicherheitsabfrage auf das orangefarbene RSS-Symbol und
entfernt Akregator die Quelle mitsamt wählen aus dem Kontextmenü die Opti- Einige Webseiten bieten auch detaillierte
den im rechten Fenstersegment aufge- on Link-Adresse kopieren. Die so kopierte Optionen, um Feeds in einen RSS-Reader
führten Beiträgen. Adresse fügen Sie anschließend in den einzubinden. So können Sie bei solchen
Seiten teilweise Feeds nach Themenbe-
reichen sortiert abonnieren, teils sogar
nach verwendeten Protokollen. Akrega-
tor unterstützt alle RSS-Protokolle und
zusätzlich das ATOM-Protokoll  .3
Über die Option Nachrichtenquelle lö-
schen, die Sie nach einem Rechtsklick auf
den gewünschten Feed im Kontextmenü
finden, löschen Sie neu hinzugefügte
Nachrichtenquellen wieder. Nach einer
­Sicherheitsabfrage verschwindet der
Feed mitsamt der Inhalte aus der Anzeige.

Defizite
Zwar stellt Akregator eine durchdachte
Lösung für das Lesen von RSS-Feeds dar,
weist jedoch auch einige Defizite auf, die
vor allem die Browser-Engine betreffen.
So blenden zwar die Werbefilter uner-
4 Beim ersten Start überrascht Fluent Reader mit einer ungewöhnlichen Oberfläche. wünschte Inhalte aus, nutzen jedoch den

40 www.linux-magazin.de 08.2023
Bitparade Software

dadurch frei werdenden


Platz nicht. Die Folge sind
große weiße Flächen in
der Browser-Anzeige, die
vermehrtes Scrollen pro-
vozieren. Bei dem modu-
lar aufgebauten Pro-
gramm wäre zudem eine
Erweiterung zum automa-
tischen Ausblenden der
Cookie-Richtlinien wün-
schenswert. Aktuell muss
man beim Einblenden der
ausgewählten Nachrich-
ten stets einer solchen
Richtlinie zustimmen, be-
vor man den eigentlichen
Inhalt des Beitrags ange-
zeigt bekommt.
5 Auch die reguläre Oberfläche von Fluent Reader fällt aus dem Rahmen.
■ Fluent Reader
Der unter einer BSD-Lizenz veröffentlich- Textschnipsel. Dabei zeigt Fluent Reader Browser-Engine weder vergrößern noch
te Fluent Reader , eine noch recht jun- auch den Quell-Feed und das Alter der verkleinern, sodass Inhalte teils in einem
ge Software, basiert auf dem Electron- 5
Nachricht in Tagen an  . ungewöhnlichen Layout erscheinen  . 6
und dem React-Framework. Auf der Git- In solchen Fällen empfiehlt es sich, die
hub-Seite des Projekts steht das Pro- Website in einem externen Browser zu
Schwachstellen
gramm als Appimage-Paket mit einem öffnen. Durch einen Klick auf die drei ne-
Umfang von rund 90 MByte zum Herun- Um die jeweilige Nachricht vollständig zu beneinander liegenden Punkte oben
terladen bereit . lesen, klicken Sie sie einfach an. Sie er- rechts im Anzeigefenster und anschlie-
Die recht ungewöhnliche Oberfläche scheint daraufhin in einem überlappen- ßender Auswahl der Option Extern öffnen
4
des RSS-Readers  besteht lediglich aus den Fenster. Je nach ge-
einem großen freien Bereich und einigen wählten Feed-Einstellun-
in die Titelleiste integrierten Schaltflä- gen können dabei aber
chen. Um ein erstes Feed-Abonnement Probleme auftreten. Ha-
hinzuzufügen, klicken Sie rechts auf das ben Sie in den Settings
Zahnradsymbol und öffnen damit den die Option RSS-Volltext
Einstellungsdialog mit dem Reiter Feeds. aktiviert, zeigt Fluent
Hier geben Sie im Feld Feed hinzufügen Reader in aller Regel den
die URL des gewünschtenFeeds ein. Sie Text ohne oder nur mit
müssen die URL immer von Hand einge- verkleinerten Abbildun-
ben, sie lässt sich nicht aus der Zwischen- gen ab. Haben Sie statt-
ablage in die Eingabezeile kopieren. dessen die Option Kom-
Die Abonnements erscheinen unter- pletten Inhalt laden oder
halb der Eingabezeile. Wenn Sie auf das Internet-Seite laden ge-
Optionsfeld klicken, das beim Überfah- wählt, führt das häufig
ren des jeweiligen Abos mit dem Maus- zu fehlerhaften Darstel-
zeiger erscheint, öffnen Sie darunter lungen.
­einen kleinen Konfigurationsdialog für Beim Laden komplet-
den Feed. Haben Sie dort die gewünsch- ter Internet-Seiten müs-
ten Einstellungen vorgenommen, klicken sen Sie zunächst die
Sie erneut auf das Optionsfeld, um den ­jeweils eingeblendete
Dialog einzuklappen. Nach einem Klick Cookie-Richtlinie akzep-
auf den nach links weisenden Pfeil oben tieren, auf der Webseite
links im Konfigurationsfenster erschei- erscheint auch Wer-
nen im Hauptfenster die abgerufenen bung. Zudem lässt sich 6 Der rudimentäre interne Browser von Fluent Reader
Nachrichten in Kachelform mit einem das Fenster der internen ist allenfalls eingeschränkt zu gebrauchen.

08.2023 www.linux-magazin.de 41
Software Bitparade

im Kontextmenü öffnet nicht voneinander se- öffnenden Dialog wählen Sie zunächst
der Reader den dazu im pariert anzeigt. Hier den Feed, für den Sie die Regeln festle-
System installierten Web- sollten Sie die Mög- gen möchten. Anschließend geben Sie in
browser. lichkeit nutzen, Feeds den Feldern der Gruppe Neue Regel die
in Gruppen zusam- jeweiligen Auswahlkriterien und darunter
menzufassen. Im Ein- die auszuführende Aktion an. Da es sich
Ansichtssache
stellungsmenü finden bei den Feldern meist um Auswahlfelder
Die ungewöhnliche Ka- Sie dazu den Reiter handelt, können Sie Regeln sehr schnell
chelansicht der Nachrich- Gruppen. Darin legen und effizient definieren. Anschließend
ten können Sie modifizie- Sie wahlfrei Gruppen ­klicken Sie auf den Button Bestätigen, um
ren, indem Sie oben an und weisen ihnen die neue(n) Regel(n) in Kraft zu setzen.
rechts in der Titelleiste Feeds zu. Sie sehen
des primären Programm- dann in den einzelnen
Aufräumarbeiten
fensters auf das Augen- Ansichten nur noch
symbol klicken. Es öffnet die Nachrichten der Um ältere Nachrichten zu entfernen, öff-
sich ein Menü zur Aus- Feeds, die zur aktiven nen Sie im Einstellungsmenü den Reiter
wahl der Ansichtsmodi Gruppe gehören. Da Löschen. Hier geben Sie im Feld Aufräu-
Liste, Magazin und Kom- 7 Gnome Gfeeds verzichtet Fluent Reader die men an, in welchen Intervallen der Rea-
pakt. Die Listenansicht auf jegliche Gimmicks. Gruppen innerhalb der Beiträge löschen soll. Um Daten dau-
kommt dabei der Ober- der Baumansicht zu- erhaft zu sichern, nutzen Sie den darun-
fläche konventioneller sammen mit den je- ter befindlichen Dialog App-Daten | Si-
RSS-Reader am nächsten. Da diese An- weiligen Feeds gesondert aufführt, kön- chern und wählen im sich daraufhin öff-
sicht nicht nach einzelnen Feeds unter- nen Sie schnell zwischen den einzelnen nenden Dateimanager Pfad und Dateina-
scheidet, klicken Sie ganz links in der Nachrichtensträngen wechseln, was die men für das Backup.
­Titelleiste auf das Hamburger-Menü und Übersicht deutlich verbessert.
öffnen darüber eine dritte vertikale Spal-
■ Gfeeds
te mit einer Liste der aktiven Abonne-
Regulatorisch
ments und einer Suchfunktion. Die Gnome-Arbeitsumgebung bringt
Mit Fluent Reader können Sie Feeds mit ­einen eigenen Feedreader mit, der sich
bestimmten Regeln versehen und sich so auch unter anderen Desktop-Umgebun-
Gruppendynamik
beispielsweise nur Beiträge anzeigen las- gen nutzen lässt. Gemäß der Gnome-­
Bei vielen Newsfeed-Abos geht vor allem sen, die im Titel oder Text einen definier- Bedienphilosophie beschränkt sich die
bei eingeschalteter Kachelansicht schnell ten Begriff aufweisen. Um solche Regeln Gfeeds  ­genannte Anwendung auf die
der Überblick verloren, da Fluent Reader zu definieren, klicken Sie im Einstellungs- essenziellsten Funktionen. Nach einem
die Nachrichten verschiedener Feeds menü auf den Reiter Regeln. Im sich nun Klick auf den entsprechenden Starter öff-
net sich ein Fenster, das
Sie auffordert, einen neu-
en Feed hinzuzufügen  .7
Dazu klicken Sie auf das
Pluszeichen oben links in
der Titelleiste und geben
dann die entsprechende
URL ein. Bestätigen Sie
diese durch einen Klick
auf Hinzufügen. Gfeeds
öffnet den Feed und zeigt
die Überschriften der ein-
zelnen Beiträge unterein-
ander an. Das Programm-
fenster weist voreinge-
stellt die Dimension eines
Smartphone-Displays auf,
und Sie sehen weder An-
reißer noch Gruppen. Ein
Klick auf eine der Nach-
richten öffnet diese im in-
8 In Gfeeds stört Werbung die Lektüre der Nachrichten. ternen Browser. Sobald

42 www.linux-magazin.de 08.2023
Bitparade Software

Sie das Programmfenster maximieren,


­erhalten Sie auch eine übersichtlichere
Darstellung der Nachricht und der ge-
samten Nachrichtenliste.

Bedienung
Die Bedienelemente von Gfeeds befin-
den sich alle in der Titelleiste der Soft-
ware. Links im Fenster können Sie im
Vollbildmodus die Quellen neu laden,
Feeds wählen und eine Suche vorneh-
men. Außerdem nehmen Sie hier mithilfe
des Hamburger-Menüs Einstellungen
vor. Dabei verwalten Sie die einzelnen
Feeds in einem gesonderten Dialog, kön-
nen jedoch über die Option Einstellungen
die allgemeine Programmkonfiguration
modifizieren. Hier legen Sie beispielswei-
se das Verhalten der Software beim Start,
die Anzeigeoptionen und die Löschinter-
valle für ältere Nachrichten fest. 9 Die Oberfläche von Liferea ist recht konventionell gestaltet.
Im Anzeigesegment für die Beiträge
finden Sie rechts einen Button, mit dem
Sie die jeweils aktuelle Nachricht in waltung besteht in der Konfiguration der Repos aller gängigen Linux-Distributio-
­einem externen Browser öffnen. Links in Schlagwörter, die Sie einzelnen Feeds zu- nen, lässt sich aber auch über die Github-
der Titelleiste gibt es eine Schaltfläche ordnen können. Auch dazu markieren Sie Seite des Projekts beziehen.
zum Einstellen der Ansicht. In deren Kon- zunächst den betreffenden Feed. Dann Liferea kommt mit einer konventionel-
textmenü wählen Sie zwischen der Web- öffnen Sie mit einem Klick auf das Etiket- len dreigeteilten Oberfläche aus Menü-
ansicht, der RSS-Inhaltsansicht und einer tensymbol oben links im Fenster den Dia- zeile, links angeordneter Feed-Liste und
Leseansicht. Letztere beschränkt sich auf log zur Eingabe neuer oder zum Löschen Anzeigebereich rechts im größten Fens-
reinen Text und stellt daher die Nachrich- bestehender Schlagwörter. 9
tersegment  . Voreingestellt sind be-
ten häufig nicht vollständig dar. reits diverse RSS-Feeds abonniert, sodass
In der RSS-Inhaltsansicht können Sie beim ersten Start gleich mehrere hun-
Artikel sichern
auch Links anklicken, die sich dann in dert ungelesene Nachrichten in der Liste
­einem externen Webbrowser öffnen. Die Zum Sichern von Artikeln rechtsklicken der Beispielabonnements erscheinen.
Webansicht aktiviert dagegen die Inhalte Sie den gewünschten Beitrag in der ver- Liferea hebt sich durch die Vielzahl der
im internen Browser. Da Gfeeds jedoch tikalen Artikelliste und wählen aus dem nutzbaren Formate von anderen RSS-
über keinerlei Werbe- und Tracking-Blo- sich öffnenden Kontextmenü die Option Readern ab. Es unterstützt neben den
cker verfügt, erscheint dabei auch Wer- Artikel speichern. Gfeeds sichert den Arti- verschiedenen RSS-Versionen auch
8
bung  . Bei werbelastigen Seiten kann kel, wozu jedoch in der Liste keinerlei ATOM, CDF und OPML. Es kann daneben
es daher sinnvoll sein, sie im externen Kennzeichnung erscheint. Die gespei- auch mit Podcasts umgehen, wobei es
Browser mit Werbeblocker und Tracking- cherten Artikel rufen Sie jederzeit durch einzelne Episoden herunterlädt und ab-
Schutz zu betrachten. einen Klick auf die Schaltfläche Gespei- spielt. Der integrierte Webbrowser von
chert unten links im Programmfenster Liferea setzt auf die freie Rendering-Engi-
auf. Sie erscheinen dann anstelle der nor- ne Webkit auf. Die Anwendung startet
Verwaltung
malen Beiträge in der Leiste links im nicht nur blitzschnell, sondern ruft auch
Auch zum Verwalten von Feeds bietet Fenster. Die gespeicherten Beiträge las- die einzelnen Feeds zügig ab, sodass die
Gfeeds nur Grundfunktionen. Sie können sen sich auch dann noch abrufen, wenn Angelegenheit selbst bei vielen Abonne-
die abonnierten Feeds über den Punkt Sie den dazugehörigen Feed löschen. ments nicht zur Geduldsprobe ausartet.
Feeds verwalten des Hamburger-Menüs Nach einem Klick auf einen der Feeds
einsehen. Im entsprechenden Dialog
■ Liferea teilt sich das rechte Fenstersegment:
markieren Sie einzelne Feeds durch Set- Oben erscheinen die Schlagzeilen der
zen eines Häkchens hinter dem Eintrag, Mit fast 20 Jahren permanenter Entwick- einzelnen Nachrichten, unten die Inhalte
den Sie dann mit einem Klick auf das Pa- lung gehört Liferea  zu den Dinosauri- in Kurzform. Daher empfiehlt es sich, das
pierkorbsymbol oben rechts löschen. Die ern unter den RSS-Aggregatoren. Das Programm im Vollbildmodus einzusetzen.
einzige weitere Funktion der Feed-Ver- freie GTK+-Programm findet sich in den Ein Doppelklick auf eine der Nachrichten

08.2023 www.linux-magazin.de 43
Software Bitparade

öffnet den Standard-Web-


browser des Systems mit
dem entsprechenden Bei-
trag. Alternativ öffnen Sie
mit einem Rechtsklick auf
die gewünschte Schlag-
zeile ein Kontextmenü,
über das Sie den Beitrag
in einen neuen Liferea-Tab
einlesen. Er erscheint dort
weitgehend unformatiert.
Allerdings kann es passie-
ren, dass aufgrund der
Einbindung als iFrame le-
diglich eine Cookie-War-
nung angezeigt wird. In
solchen Fällen empfiehlt
sich das Ausweichen auf
einen externen Browser.
Im selben Kontextmenü
können Sie auch mittels
der Option Lösche Schlag-
zeile einzelne Schlagzeilen
aus dem rechten oberen q Die Oberfläche von QuiteRSS gestattet die sofortige Nutzung.
Fenstersegment löschen.
Zudem eröffnet die Opti-
on Abonnement in der Menüzeile am Podcasts schreibung des Inhalts sowie einen Ver-
oberen Fensterrand die Möglichkeit, laufsbalken samt Abspieltaste ein. Ein
ganze Abonnements zu löschen oder Liferea kann auch mit Podcasts umgehen Klick auf Letztere startet die Wiedergabe
auch alle Schlagzeilen zu entfernen. Über und erspart somit die Installation geson- der Sendung, innerhalb der Sie mithilfe
den Eintrag Aktualisieren im Menü Abon- derter Software oder das Öffnen von des Verlaufsbalkens navigieren.
nement bringen Sie zudem bei Bedarf die Podcasts auf Webseiten. In der Bauman-
gerade markierte Subskription auf den sicht der Abonnements findet sich vor-
Suchen
aktuellen Stand. Alternativ können Sie eingestellt der Podcast des Chaos Com-
dazu auch mit der rechten Maustaste puter Clubs. Nach einem Linksklick auf Selbst bei intensiver Nutzung der Soft-
links in der Baumansicht der Abonne- das Podcast-Abonnement erscheinen die ware mit zahlreichen RSS-Feeds behal-
ments auf die gewünschte Subskription Schlagzeilen der jeweiligen Sendungen ten Sie dank einer Suchfunktion stets
klicken und im Kontextmenü die Aktuali- oben rechts im Programmfenster. Ein den Überblick. Um eine Suche zu star-
sierung des RSS-Feeds anstoßen. Linksklick auf die gewünschte Sendung ten, klicken Sie unterhalb der Menüzeile
blendet unten im Fenster eine Kurzbe- auf die Schaltfläche Alle Feeds durch­
suchen. In einem nun eingeblendeten
kleinen Fenster geben Sie das ge-
wünschte Schlagwort ein und starten
die Abfrage mit einem Klick auf Suchen.
Spezielle Kriterien erreichen Sie nach
Eingabe des Suchbegriffs durch einen
Klick auf Erweitert. Im entsprechenden
Konfigurationsdialog erfassen Sie Re-
geln, mit denen Sie verschiedene Such-
0
kriterien definieren  . Dabei lassen sich
auch einzelne Regeln kombinieren.
Nach einem Klick auf die Schaltfläche
Suchen erscheinen die Treffer rechts
oben im Fenster als Schlagzeile. Möchten
Sie die Inhalte in einem eigenen Ordner
sichern, so können Sie dazu einzelne
0 Liferea verfügt über eine ausgeklügelte Suchfunktion. Ordner festlegen, die Liferea nach einem

44 www.linux-magazin.de 08.2023
Bitparade Software

Klick auf den Button + Suchordner in der nun bei Bedarf den Feed
Baumstruktur anlegt. im selben Fenster noch
einem anderen Ordner
■ QuiteRSS hinzufügen.
Haben Sie alle Anga-
QuiteRSS ist ein in C++ geschriebener ben vorgenommen, kli-
und auf den Qt-Bibliotheken basieren- cken Sie auf Abschließen.
der, plattformübergreifend erhältlicher QuiteRSS integriert den
RSS-Reader . Das Programm findet sich Feed daraufhin links in
in den Paketarchiven aller gängigen Dis- der Baumansicht. Dabei
tributionen, lässt sich jedoch auch von fokussiert die Ansicht
der Webseite des Projekts beziehen. Die automatisch auf den
Desktop-unabhängige Anwendung neuen Eintrag, während
­unterstützt die gängigen RSS-Formate der Reader im Hinter-
sowie ATOM. Als Besonderheit integriert grund die neuen Nach-
sie einen eigenen Webbrowser samt be- richten des Feeds abruft.
reits aktiviertem Adblocker. Rechts finden Sie dar-
Das Programm verfügt über eine mo- aufhin die letzten neuen
derne Reiterstruktur. Anstelle einer Schal- Nachrichten dieses
ter- und Menüleiste sehen Sie nach dem Feeds als Schlagzeilen.
Start zunächst nur einen Menüknopf links
oben im Programmfenster. Über ihn errei-
Kategorisierung
chen Sie in einer mehrstufigen Hierarchie
alle Befehle und Funktionen der Applika- Mithilfe von Tags kate- w Der Werbeblocker von QuiteRSS kennt weder deutsche
tion. Drei Schaltflächen unterhalb des gorisieren Sie einzelne Filterlisten, noch lassen sich solche hinzufügen.
ersten Reiters links gestatten den Zugriff Nachrichten. Dazu nutzt
auf die wichtigsten Funktionen der Ord- die Software verschiede-
ner- und Feed-Struktur. Eine herkömm­ ne vorkonfigurierte Kennzeichen. Die che Dreieck öffnet ein Auswahlmenü mit
liche Schalterleiste erscheint erst dann, einzelnen Kategorien finden Sie unten gut einem Dutzend sozialen Netzwerken.
wenn Sie den ersten Feed abonniert und links in der vertikalen Leiste aufgelistet. Außerdem können Sie die Nachricht
dessen Nachrichten abgerufen haben. Um eine markierte Nachricht einzusortie- über einen E-Mail-Client verschicken
Dabei teilt sich auch das rechte Fenster- ren, klicken Sie oben in der Schalterleiste oder mithilfe des Online-Diensts Print-
segment in einen Schlagzeilen- und auf das kleine offene Dreieck rechts ne- friendly druckgerecht aufbereiten.
q
­einen Anzeigebereich  . ben dem Etikettensymbol und wählen
danach im Menü die Kategorie.
Blockade
QuiteRSS kennzeichnet die Nachricht
Feeds einrichten
selbst in der Liste der Schlagzeilen nicht Der QuiteRSS-Reader verfügt über einen
Das Einrichten von Feeds und Ordner- gesondert, sondern übernimmt sie nur auf Adblock basierenden Werbeblocker.
strukturen erledigen Sie in QuiteRSS be- unten links im Fenster in
quem mit wenigen Mausklicks. Um einen die jeweilige Kategorie.
neuen Ordner hinzuzufügen, klicken Sie Möchten Sie später die
links oben auf das grüne Pluszeichen mit einem bestimmten
und wählen die Option Ordner. In einem Tag versehenen Nach-
neuen Dialog fügen Sie den Namen des richten durchsehen, kli-
Ordners ein und positionieren diesen cken Sie einfach in der
dann innerhalb der Ordnerhierarchie. Kategorienliste die ent-
Unterordner innerhalb eines Stammord- sprechende Gruppe an.
ners sind auch möglich. Die Anwendung listet
Anschließend rechtsklicken Sie links in dann alle entsprechen-
der Baumansicht den Ordner, in den Sie den Nachrichten auf.
einen Feed integrieren wollen. Im sich QuiteRSS ermöglicht
öffnenden Kontextmenü wählen Sie die es auch, Nachrichten zu
Option Hinzufügen und anschließend teilen. Dazu finden Sie in
Feed. Nun tragen Sie in einem gesonder- der horizontalen Schal-
ten Fenster die URL des gewünschten terleiste ein Handsym-
Feeds ein. Sie schließen die Eingabe mit bol. Ein Klick auf das e QuiteRSS bietet umfangreiche Optionen für das
einem Klick auf Weiter ab und können rechts daneben befindli- ­automatische Entfernen obsoleter Nachrichten.

08.2023 www.linux-magazin.de 45
Software Bitparade

Dazu finden Sie unten rechts im Pro- hen. Daher bietet Ihnen QuiteRSS die dass RSS-Nachrichten nach wie vor ihre
grammfenster das Stoppschildsymbol Möglichkeit, den Nachrichtenbestand Berechtigung haben. Möchten Sie unter
von Adblock. Ein Linksklick darauf öffnet ­regelmäßig nach festgelegten Kriterien Linux RSS-Feeds abonnieren, haben Sie
ein Konfigurationsfenster, in dem Sie den automatisiert zu bereinigen. in Sachen Reader die Qual der Wahl. Alle
Werbeblocker gegebenenfalls durch Set- Dazu klicken Sie auf den Menüschalter von uns getesteten Programme erlauben
zen eines Häkchens vor den entspre- und öffnen über den Menüpunkt Werk- ohne große Einarbeitung eine schnelle
chenden Optionen deaktivieren können. zeuge | Bereinigen den entsprechenden Navigation in den Nachrichten. Auch das
Die Sperrsoftware arbeitet im internen e
Dialog  . Hier wählen Sie durch Setzen Abonnieren und Verwalten von Feeds
Browser des RSS-Readers und hat dazu eines Häkchens die gewünschten Feeds ­sowie das Löschen von Nachrichten-
auch einige Adblock-Filterlisten abon- aus und klicken unten rechts auf Weiter. strängen und einzelnen Beiträgen klappt
niert. Allerdings befinden sich unter den QuiteRSS zeigt Ihnen anschließend eine weitgehend intuitiv.
Abos keine Listen für das Blockieren Reihe von Optionen für die Bereinigung Unterschiede finden sich lediglich
deutschsprachiger Werbung. Mit einem an, die Sie jeweils durch Setzen oder beim Funktionsumfang der fünf Kandi-
Klick auf den Menüschalter oben links im ­Entfernen eines Häkchens aktivieren be- daten: Der einfache Gnome-Feedreader
Programmfenster und Auswahl des Ein- ziehungsweise ausschalten. Bei den Gfeeds beschränkt sich auf die üblichen
trags Browser im geöffneten Menü kön- ­Optionen Maximales Alter zu behaltender Grundfunktionen, während das KDE-Pen-
nen Sie mit der Option Adblock den Wer- Nachrichten (in Tagen) und Maximale An- dant Akregator sehr viele Sonderfunktio-
beblocker konfigurieren. zahl zu behaltender Nachrichten geben nen offeriert. Der Fluent Reader fällt
Im entsprechenden Einstellungsdialog Sie jeweils absolute Zahlen ein. durch sein optisches Erscheinungsbild
klicken Sie unten links auf Optionen und Damit sich in der Datenbank nicht aus dem Rahmen, ohne dabei Probleme
anschließend auf Filterabonnement hin- über längere Zeit gelöschte Einträge an- bei der Bedienung zu verursachen.
zufügen. Sie können nun aus einer Liste sammeln, setzen Sie zudem ein Häkchen ­Liferea glänzt durch die Unterstützung
verfügbarer Abonnements wählen  . w vor der Option DB leeren. Diese Einstel- von Podcasts. QuiteRSS ist hingegen ein
Allerdings lassen sich keine zusätzlichen lungen aktivieren Sie mit einem Klick auf unauffälliger, sehr schnell arbeitender
Filterlisten hinzufügen. Sie können ledig- Abschließen. Danach bereinigt das Pro- Feedreader. Er bietet oft die beste Anzei-
lich einzelne eigene Filter in den Werbe- gramm die Datenbanken für die ausge- ge, weist jedoch Schwächen beim integ-
blocker einpflegen. wählten Feeds stets automatisch. rierten Werbeblocker auf. (jlu) █

Bereinigung Fazit
Weitere Infos und
Haben Sie viele Feeds mit überdurch- Die Vielzahl der Reader ebenso wie die interessante Links
schnittlicher Aktivität abonniert, dann zahlreichen auf Webseiten zur Verfügung www.lm-online.de/qr/48710
kann schnell die Übersicht verloren ge- gestellten Feeds belegen eindrucksvoll,

RSS-Feedreader: Features
Akregator Fluent Reader Gfeeds Liferea QuiteRSS
 
Lizenz GPLv2 BSD GPLv3 GPLv2 GPLv3
Funktionen
automatischer Feed-Abruf ■ ■ ■ ■ ■
Feed-Organisation in Ordnern ■ ■ ■ ■ ■
Nachrichten archivieren ■ ■ ■ ■ ■
Suchfunktion ■ ■ ■ ■ ■
E-Mail-Versand ■ ■ ■ ■ ■
Verlinkung in soziale Netze ■ ■ ■ ■ ■
interner Webbrowser
interner Browser ■ eingeschränkt ■ ■ ■
Reiter im Browser ■ ■ ■ ■ ■
Adblocker im Browser ■ ■ ■ ■ ■
unterstützte Formate
RSS  0.9x/​1.0/​2.0 ■ ■ ■ ■ ■
ATOM 1.0 ■ ■ ■ ■ ■
Podcasts-Plugin ■ ■ ■ ■ ■

46 www.linux-magazin.de 08.2023
ANZEIGE

Fractal Design
Define 7 PCGH Edition

Testsieger unter den Midi-Tower-Gehäusen


jetzt als PCGH-Edition

3 × 140 mm Venturi-HF-Lüfter (3-pin)


statt Dynamic-Lüfter

Lüfter in einer speziellen PCGH-Version


mit nur 800 U/min.

5,25-Zoll-Halterung vorinstalliert

Fronttür öffnet standardmäßig nach rechts

PCGH-Metallaufkleber im Lieferumfang

www.pcgh.de/define7
i / 123RF.com
hacamoncha
© Ekachai Lo
 Persönliche Backups zu Hause und in der Cloud

Für den Ernstfall


Wir schreiben das Jahr 2023. Für ganz Deutschland ist das Internet noch Neuland. Ganz
Deutschland? Nein, ein paar umtriebige Linux-User speichern ihre Daten lokal, bei Hostern
oder in der Cloud. Fehlt nur noch ein robustes Backup für die eigenen Daten. Thomas Reuß

Proprietäre Lösungen gehören in mei- ‑‑link‑dest ist, dass es den aktuellen Namen und einer Inode-Adresse. Demzu-
nen Augen stets in die Kategorie, die ich Rsync-Lauf mit einem bestehenden ver- folge gehört zu jeder Datei mindestens
häufig mit „niedrigster Priorität“ klassifi- gleicht. Neue und veränderte Dateien ein Hardlink, denn sonst ließe sich ihr
ziere. Tatsächlich fühle ich mich erst dann legt das Tool dabei im Zielverzeichnis wie ­Inhalt gar nicht finden. Gibt es nun meh-
wohl, wenn ich Prozesse über Linux- gewohnt an, für unveränderte Dateien rere Hardlinks zu ein und derselben Da-
Bordmittel abbilden kann oder sie nur erstellt es im Zielverzeichnis Hardlinks. tei, lässt sich nicht ohne Weiteres sagen,
wenig zusätzliche Software erfordern. Hardlinks sind ein Feature der gängi- hinter welchem davon sich das Original
Wegen der Option ‑‑link‑dest eignet gen Dateisysteme für Linux. Prinzipiell verbirgt (oder verborgen hat).
sich Rsync  hervorragend zum Erzeu- steckt dahinter ein Eintrag im Dateisys- Rsync macht also nichts anderes, als
gen von Backups. Der große Bonus von tem. Jeder Hardlink besteht aus einem den Inhalten, die im Dateisystem unver-

48 www.linux-magazin.de 08.2023
Admin-as-a-Service Sysadmin

ändert vorliegen, einen weiteren Namen Zwei Variablen-Definitio-


zu geben. Tatsächlich ist das Vorgehen nen möchte ich explizit
ebenso elegant und simpel wie genial. erwähnen: Mit cmd_
Wer fit im Scripting ist, kann sich auf die-preexec und cmd_post‑
se Weise ein eigenes Backup-Skript auf exec gibt es ein mächti-
Rsync-Basis anlegen. ges Werkzeug, um be-
Als ich mich vor vielen Jahren zum stimmte Vor- und Nach-
­ersten Mal ernsthaft mit dem Thema bedingungen zu ­einem
Backup beschäftigte, war ich mir meiner Backup herzustellen,
Bash-Kenntnisse nicht sicher. Ich recher- etwa eine Datenbank
chierte deswegen nach einer Art Wrap- kurz zu stoppen oder
per-Skript, das mir Themen wie vorgehal- ähnliches (Listing 1).
tene Kopien, automatisches Löschen Der wohl wichtigste
nach Ablauf der Retention etc. abneh- Parameter im Header-
men sollte. Fündig wurde ich schließlich Bereich heißt snapshot_
bei Rsnapshot: Dabei handelt es sich um root (Listing 2). Er defi-
niert, wo Rsnapshot die
ein Perl-Skript, das außer Perl selbst keine 1 In meinem Fall legt Rsnapshot alle sechs Stunden zur
weiteren Abhängigkeiten aufweist – also Backups ablegen soll. Je Minute 42 ein Backup an.
genau das, was ich suchte. nach persönlichem Da-
tenaufkommen müssen
Sie dieses Volume entsprechend groß rationsdatei an, der dann wiederum
Rsnapshot
skalieren. Hier eine allgemeine Empfeh- ­festlegt, wie viele Backups das Tool im
Die Konfiguration von Rsnapshot ging lung abzugeben, fällt mir wahrlich nicht entsprechenden Level vorhalten soll. Lis-
leicht von der Hand. Das liegt durchaus leicht: Der Bedarf an Backup-Speicher- ting 3 definiert zum Beispiel vier stündli-
auch daran, dass die Entwickler die mit- platz richtet sich nach der Volatilität der che, sieben tägliche, vier wöchentliche
gelieferte Konfigurationsdatei /etc/ zu sichernden Daten und deren Vorhalte- und ein monatliches Backup.
rsnapshot.conf ausgezeichnet kom- zeit (Retention). Als bisher probate Faust- Bei jedem Aufruf von rsnapshot hour‑
mentiert haben und dementsprechend regel halte ich mich für snapshot_root ly entsteht ein neues Backup des Datei-
kaum Fragen offen blieben. an das Drei- bis Vierfache des ursprüngli- systems, das Rsnapshot in $snapshot_
Im Kopfbereich haben die Maintainer chen Festplattenspeichers. root/hourly.0/ ablegt. Den Rest der
Definitionen zu Abhängigkeiten zu ex- Backup Retention – der Begriff ist ja vorgehaltenen Backups rotiert es durch,
ternen Programmen eingebaut, die ich bereits gefallen – bestimmt die Aufbe- indem es die Ziffer im Ordnernamen er-
kurzerhand allesamt übernommen habe. wahrungszeit von Backups. Rsnapshot höht. Sprich: Wenn ich rsnapshot hour‑
Falls Sie an dieser Stelle erweiterte Funk- bringt für die Retention vier Backup-Le- ly dreimal aufrufe, liegt das ursprüngli-
tionen wie Backups von Remote-Syste- vel oder Intervalle mit: hourly, daily, che Backup 0 nun in $snapshot_root/
men benötigen, können Sie zum Beispiel weekly und monthly. Alle Level nehmen hourly.3/. Mit einem vierten Aufruf wür-
SSH aktivieren. einen ganzzahligen Wert in der Konfigu- de dieses Backup dementsprechend aus
der Retention fallen.
Der Übertrag auf den Daily-Level funk-
Listing 1: Pre- und Post-Skripts tioniert folgendermaßen: Stoße ich ein
rsnapshot daily an, erzeugt Rsnapshot
# Specify the path to a script (and any optional arguments) to run
right
aus $snapshot_root/hourly.3 ein
$snapshot_root/daily.0/. Das älteste
# before rsnapshot syncs files
Hourly-Backup wird somit zum nächsten
# cmd_preexec> /path/to/preexec/script Daily-Backup. Bei der Rotation von Daily
# auf Weekly funktioniert das Ganze
# Specify the path to a script (and any optional arguments) to run right ­analog: Dann erzeugt Rsnapshot aus
# after rsnapshot syncs files $snap­shot_root/daily.6/ das Backup
$snap­shot_root/weekly.0 und so weiter.
# cmd_postexec> /path/to/postexec/script

Listing 3: Retention
Listing 2: snapshot_root retain> > hourly> 4$
# All snapshots will be stored under this root directory. retain> > daily> 7$
# snapshot_root> /var/cache/rsnapshot/ retain> > weekly> 4$
snapshot_root> /backup/rsnapshot/ retain> > monthly>1$

08.2023 www.linux-magazin.de 49
Sysadmin Admin-as-a-Service

Man ruft die jeweiligen Rsnapshot-Level durchaus zügig wieder in der Lage, bei- ren, die meine Ansprüche besser be-
idealerweise über eine eigene Crontab spielsweise bestimme Nachweise zu er- dienten. Meine Prämissen lauteten:
auf. In meinem Fall ist das /etc/cron.d/ bringen – vorausgesetzt, ich schaffe es, • wenige Abhängigkeiten,
rsnapshot (Listing 4). eben diese Datenträger zu retten. • keine Daten verlassen unverschlüsselt
Da ich nur vier Hourly-Backups anferti- Die Überschwemmungskatastrophe im das Haus und
ge, muss ich sie so über den Tag verteilen, Ahrtal zeigte mir jedoch, dass dies letzt- • als Protokoll dienen SSH oder Rsync.
dass nicht mehr Sicherungen starten als lich nichts mehr als ein frommer Wunsch Letztlich landete ich bei BorgBackup 
vorgehalten werden. Anderenfalls könnte ist. Unwahrscheinlich, dass es mir gelingt, und Restic . Tatsächlich war Borg­
es unter Umständen zu Datenverlusten in solch einer lebensbedrohlichen Situati- Backup meine erste Wahl. Restic probier-
kommen. Wie Sie in der Crontab erken- on kühlen Kopf zu bewahren und die te ich zunächst nur aus, um sicherzustel-
nen können, erzeugt Rsnapshot bei mir wichtigsten SSDs mitzunehmen. Hier len, dass ich bei BorgBackup richtig liege.
alle sechs Stunden zur Minute 42 ein musste also eine andere Lösung her. Beide Tools erfüllen meine Anforderun-
1
Backup. Abbildung  zeigt, wie $snap­ gen, wie Verschlüsselung vor dem Up-
shot_root/ nach einem Monat aussieht. load, beide unterstützen geeignete Pro-
Qual der Wahl
tokolle, beide deduplizieren. Am Ende
Im März dieses Jahres besuchte ich auf machte jedoch Restic das Rennen, da es
Katastrophenschutz
den Chemnitzer Linux-Tagen den Vortrag mir in Sachen Look & Feel sympathischer
Im September 2021 kam es zu einem Er- „Verschlüsseltes Cloud-Backup mit Linux- war und zudem mehrere Systeme pro
eignis, mit dem in dieser Art wohl kaum Bordmitteln“ , gehalten von Bernd ­Repository sichern kann. Letzteres würde
jemand gerechnet hatte. Das Tief Bernd Strößenreuther. Er warf einige offene Fra- voraussichtlich deutlich bessere Ergeb-
brachte massive Niederschläge und löste gen in den Raum, denen ich so bislang nisse bei der Deduplizierung liefern.
damit eine der schwersten Überschwem- nicht allzu viel Beachtung geschenkt hat- Hoster, die die entsprechenden Proto-
mungskatastrophen aus, die Deutsch- te. Etwa (sinngemäß): „Wie kommt ihr an kolle anbieten, gibt es viele. Die persönli-
land je sah. Innerhalb weniger Stunden eure Daten, wenn sämtliche Password- che Suchmaschine des Vertrauens wird
wurden Menschen obdachlos und stan- Safes und 2FA-Devices verloren sind?“ bei den Begriffen „storage as a service
den plötzlich vor dem Nichts. Das gab mir zu denken. Vor allem aber sftp rsync“ sicher mehrere ausspucken,
Das Hochwasser, vor allem im Ahrtal, motivierte es mich, mein Offsite-Backup die ich hier nicht thematisieren will.
diente retrospektiv als Anlass für mich, zu in eines der vielen WebDAV-basierten ­Worauf ich aber definitiv hinweise, ist ein
überdenken, wie ich meine Daten sichern Cloud-Drives zu hinterfragen. wichtiger Punkt von Bernd Strößenreut-
will. Ich digitalisierte daraufhin tatsäch- Die im Vortrag erwähnte Lösung Go- her: Bitte bedenkt stets, dass im Fall der
lich einen großen Teil meiner wichtigen cryptfs  mochte praktikabel sein, traf Fälle mit den eigenen Geräten obendrein
Dokumente. Sofern ich in der Lage wäre, aber nicht so richtig meinen Geschmack. kryptografische Schlüsselpaare verloren
das ein oder andere Medium zu retten, Deswegen begann ich in den darauffol- gehen. Wer seine Daten per Public Key
wäre ich mit einem gewissen Aufwand genden Tagen nach Tools zu recherchie- verschlüsselt, steht am Ende ohne USB-
Stick, FIDO2-Token, Smartphone oder
Notebook da.
Listing 4: Crontab Demzufolge beschloss ich, auf die er-
01 $$nonumber
wähnten starken Authentifizierungsme-
thoden zu verzichten. Stattdessen wählte
02 
42 */6 * * * root /usr/bin/rsnapshot hourly
ich sämtliche Passwörter maximal kom-
03 
7 1 * * * root /usr/bin/rsnapshot daily plex und druckte sie zusammen mit wei-
04 
13 3 * * 1 root /usr/bin/rsnapshot weekly teren Informationen zum Restore-Pro-
zess zweifach aus. Die beiden Kuverts
05 
35 4 1 * * root /usr/bin/rsnapshot monthly

Listing 6: Backup-Skript
Listing 5: Restic #!/bin/bash
$ sudo apt install restic source /usr/local/sbin/rstcenv.sh
$ restic ‑r sftp:user@host:/pfad/zum/repo init # Restic ausführen
enter password for new repository: ****************************** restic backup \
enter password again: ****************************** /home \
created restic repository e2f4317359 at sftp:user@host:/pfad/zum/repo /etc \
Please note that knowledge of your password is required to access the /root \
repository. /usr/local/bin \
Losing your password means that your data is irrecoverably lost. /usr/local/sbin

50 www.linux-magazin.de 08.2023
Admin-as-a-Service Sysadmin

mit den Credentials befinden sich an dieser Klippe bekannt.


­unterschiedlichen Orten fernab meiner Andere Authentifizie-
Wohnung, sodass ich – einen Atomkrieg rungsmechanismen
oder einen massiven Asteroidenein- kommen aus erwähnten
schlag ausgenommen – vermutlich Gründen nicht infrage.
­bestens aufgestellt bin. Meine Konstruktion
fiel daher folgenderma-
ßen aus: Repository-
Restic einrichten
Adresse und Passwort
Restic einzurichten fällt nicht besonders stehen als Export-An-
schwer (Listing 5, erste Zeile). Das Setup weisung in einem Shell-
geht ebenso leicht von der Hand: Zu- Skript, das ausschließ-
nächst initialisiere ich mein neues Repo- lich Root lesen kann und
sitory, also den Ort der Backups (zweite das in /usr/local/
Zeile). Restic fordert anschließend ein sbin/ liegt. Das Skript
Passwort für das Repository an. Da ich exportiert die Umge- 2 Das Kommado restic snapshot liefert Ihnen
mich ganz bewusst gegen Public Key bungsvariablen RESTIC_ ­Informationen zu allen angefertigten Backups.
Authentication entschieden habe, wähle REPOSITORY und RES‑
ich das Passwort komplex. TIC_PASSWORD. Die
Das Backup wird hoffentlich nie oder ­eigentlichen Worker-Skripts lesen beim chen. Dafür benötigt Restic nur die
nur dann zum Einsatz kommen, wenn Start das Environment-Skript rstcenv.sh Snapshot-ID (oder auch latest) und ein
alle anderen Sicherungen nicht mehr zu ein (Listing 6, zweite Zeile), führen somit Zielverzeichnis (Listing 7, zweite Zeile).
gebrauchen sind und ich das Passwort die enthaltenen Export-Kommandos aus
vom Papier abtippen muss. Daher be- und kommen auf diese Weise an die
Fazit
schränke ich mich im Passwortgenerator ­Zugangsdaten. Daraufhin erzeugt das
auf alphanumerische Zeichen und einige Backup-Skript eine neue Sicherung. Ich wollte zuallererst ein vernünftiges,
wenige Symbole. Die notwendige Kom- automatisches Backup auf einer zusätzli-
plexität erreiche ich über die Passwort- chen lokalen Platte haben. Mit Rsnap­
Daten wiederherstellen
länge von 30 Zeichen. Eingabe und Be- shot und Restic habe ich zwei überaus
stätigung des Passworts quittiert Restic, Backup ist gut, Restore ist noch besser. zuverlässige Werkzeuge aufgetan, die
wie in Listing 5 zu sehen, mit einer un- Wenn Sie Daten sichern, sollten Sie un- Backups in einer Art und Weise erzeugen,
missverständlichen Warnung. bedingt regelmäßig verifizieren, dass die ein Restore quasi zum Kinderspiel
Das Repository steht nach erfolgrei- sich die Sicherungen auch tatsächlich macht – noch dazu bei minimalen Ab-
chem Init-Prozess bereit für einen Siche- wiederherstellen lassen. Restic gibt per hängigkeiten und einer ausgesprochen
rungslauf. Ein Backup nennt sich im Res- restic snapshots über die enthaltenen unkomplizierten Konfiguration. (csi) █
tic-Jargon Snapshot. Um einen solchen Snapshots Auskunft 2 .
Schnappschuss zu erzeugen, benötige Das Restore von Dateien gestaltet sich
ich neben dem Passwort die Adresse des mit Restic ebenso intuitiv wie das Back- Danksagung
Repositorys – und zwar bei jeder Interak- up. Gesetzt den Fall, ich habe mein be-
Vielen Dank und herzliche Grüße an Bernd
tion; sei es nun ein Backup oder lediglich vorzugtes Katzenvideo versehentlich aus
ein Status-Check über den belegten sämtlichen lokalen Sicherungen ge- Strößenreuther von der LUG Altdorf. Mit
Speicherplatz beziehungsweise die vor- löscht, dann stelle ich es mithilfe eines seinem Vortrag auf den CLT 2023 „Ver-
handenen Snapshots. einzigen Befehls einfach wieder her. Im schlüsseltes Cloud-Backup mit Linux-Bord-
Da ich bei manuellen Prozessen noto- entsprechenden Kommando aus der ers-
mitteln“  hat er mich stark inspiriert.
risch nachlässig bin, muss ich das Pass- ten Zeile von Listing 7 bezeichnet la‑
wort auf der Backup-Maschine hinterle- test den aktuellen Snapshot. Restic si-
gen und beim Ausführen eines Backups chert in diesem Fall sämtliche Dateien
an Restic übergeben. Freilich birgt es ein unterhalb von target zurück, die den Dateien zum Artikel
Sicherheitsrisiko, ein Klartextpasswort Namen fav_cat_video.mp4 tragen. herunterladen unter
auf einem Server zu lagern. Allerdings ist Gelegentlich kommt es vor, dass Sie www.lm-online.de/dl/49454
mir keine Alternative zum Umschiffen eine vollständige Rücksicherung brau-

Listing 7: Restore Weitere Infos und


$ restic restore latest ‑‑target /mnt/restore ‑‑include fav_cat_video.mp4
interessante Links
$ restic restore 42ccc106 ‑‑target /mnt/restore www.lm-online.de/qr/49454

08.2023 www.linux-magazin.de 51
© serezniy / 123RF.com
Wie schlechte Kubernetes-Qualität Admins zur Verzweiflung bringt

Wir haben ein Problem


Heute ist Kubernetes in der IT allgegenwärtig. Anbieter versuchen fast schon mit der Brech-
stange, die eigene Klientel von den Vorzügen des Container-Orchestrierers zu überzeugen.
Doch der hat zum Teil erhebliche Qualitätsprobleme. Martin Loschwitz

Seit Jahren haben die großen Hersteller denkbar, weil voll- oder paravirtualisierte gründeten Stiftung steht, ist längst eine
der Linux-Welt ein absolutes Lieblings- Systeme im Gegensatz zu Docker und feste Größe im Cloud-Umfeld. Red Hat
thema: Container, Container, Container. Konsorten viel mehr Ressourcen für den wie Suse haben tief in die Tasche gegrif-
Was einst als Bastellösung galt, hat eigenen Betrieb benötigen. fen, um fertige Kubernetes-Distributio-
durch die Pionierarbeit von Docker nicht Weil es mit Containern alleine aber nen entweder zu kaufen (Rancher bei
nur einen professionellen Rahmen be- nicht getan ist, feiert auch Kubernetes 1
Suse ) oder selbst zu entwickeln
kommen, sondern auch mächtig kom- seit langer Zeit einen wahren Höhenflug: 2
(OpenShift bei Red Hat ).
merziellen Aufwind. Etliche aktuelle De- Der Orchestrierer für Container, der einst Ganz gleich, welches Thema man seit-
ployment-Szenarien wären ohne Linux- bei Google entstand und mittlerweile her anspricht: Fast immer laufen die feil-
Container schon deshalb praktisch un- unter der Ägide einer eigens dafür ge- gebotenen Lösungen der Unternehmen

52 www.linux-magazin.de 08.2023
Kubernetes-Kritik Sysadmin

auf Container und Kubernetes hinaus.


Das gegebene Versprechen eint dabei
sämtliche Anbieter: Mit Kubernetes lie-
ßen sich moderne Anwendungen auf
moderne Art und Weise ausrollen und
betreiben, heißt es da; viele klassische
Probleme aus grauer Vorzeit seien mit
dem Gespann aus Containern und Ku-
bernetes kein Problem mehr.
Dass dabei viel zu oft das Marketing
der Vater des Gedankens war, merkt
mancher Administrator erst, wenn er
kopfschüttelnd die ersten Gehversuche
in Kubernetes hinter sich hat. Wie üblich
ist auch bei Kubernetes nicht alles Gold,

© Suse
was glänzt. Allerdings wäre die Laune
manches K8s-Administrators wohl eine
bessere, stieße man in Kubernetes nicht 1 Auch Suse will ein Stück des Kubernetes-Kuchens abhaben und hat sich dafür Rancher
regelmäßig auf lausige Codequalität und einverleibt. Das gilt als solide Deployment-Methode für Kubernetes-Cluster.
kaputte Funktionen. Da entsteht das all-
gemeine Gefühl, dass Wunsch und Wirk-
lichkeit bei der Lösung stark divergieren. nisch alles andere als trivial: Nicht um- lig für Fehler verschiedener Art, ignoriert
Nicht wenige Administratoren kehren sonst gilt der Bau verteilter Systeme als diesen Umstand aber konsequent. Bei
Kubernetes nach einer anfänglichen eine Königsdisziplin innerhalb der IT. vielen Fehlern, die Kubernetes-Adminis-
­Evaluation schnell wieder den Rücken, Andere Lösungen haben kaum weni- tratoren heute plagen, handelt es sich
und das aus handfesten Gründen: Das ger holprige Wege hinter sich. Erinnert eigentlich um klassische Kinkerlitzchen,
Produkt leidet nicht nur an zum Teil haar- sei in diesem Zusammenhang etwa an die die Kubernetes-Entwickler sich aber
sträubenden Fehlern, sondern auch an das heutige Pacemaker, das sein Leben konsequent weigern zu beseitigen.
einem ausgesprochen komplexen Öko- einst als Heartbeat 2 bei Suse begann
system. Darin möchte jeder Anbieter ein und später von Red Hat mit viel Geld
Was ist Kubernetes?
kleines Stück vom großen Kuchen abbe- massiv ausgebaut wurde. In den An-
kommen und eine Nischenlösung für ei- fangstagen von Heartbeat 2 war es Zwar wird im Rahmen dieses Texts durch-
nen hochspezifischen Einsatzzweck in durchaus nicht ungewöhnlich, dass ein gehend von Kubernetes die Rede sein,
Geld verwandeln. mithilfe der Software konstruierter HA- doch fällt schon die Festlegung unerwar-
Der vorliegende Artikel wagt eine Be- Cluster durch Programmierfehler in der tet schwer, was genau Kubernetes
standsaufnahme und nennt einige der Software völlig anders agierte, als der ­eigentlich ist und was die Bezeichnung
gröberen Kubernetes-Probleme beim Administrator es erwartete. meint. Nicht wenige Kommentatoren der
Namen. Dabei geht es auch um die Ent- Red Hat wusste, dass ein zuverlässiger Szene schreiben nämlich Kubernetes,
wickler-Community hinter dem Produkt: Cluster-Manager für Linux eine schiere meinen damit aber die API sowie die zur
Die ist einerseits zwar riesig, hegt ande- Notwendigkeit ist und machte sich in Lösung gehörenden Basisdienste. Sie im-
rerseits aber auch zahlreiche Spezialinte- Person von Andrew Beekhof und mit Un- plizieren dabei, dass diese überhaupt nur
ressen. Dass das dem Code von Kuberne- terstützung der HA-Community daran, im Kontext einer kommerziellen Kuber-
tes an vielen Stellen erkennbar schadet, die Kuh vom Eis zu bringen. Dass viele netes-Distribution zum Einsatz kommen.
nimmt die K8s-Gemeinschaft dabei aller- Entwickler im Kubernetes-Dunstkreis Demnach gilt, dass Admins Kubernetes
dings billigend in Kauf. stattdessen die Nutzer ihrer Werkzeuge ausschließlich in Form von Produkten wie
als Dilettanten darstellen, die einfach mit OpenShift, Rancher, K3s oder anderen
den Gegebenheiten der Moderne nicht fertigen Lösungen konsumieren.
Klarstellung
zurechtkommen, wird dieser Text später Das ist Fluch und Segen zugleich:
Vor dem großen Rant auf den Container- noch thematisieren. ­Einerseits abstrahieren OpenShift und
Orchestrierer sei eine Einordnung der fol- Davon unabhängig kann man es Konsorten einige der hier beschriebenen
genden Vorwürfe jedoch gestattet. Ku- ­Kubernetes kaum zum Vorwurf machen, Probleme zwar tatsächlich weg, indem
bernetes ist ein verteiltes System, das die dass beim Umsetzen eines verteilten sie ab Werk mit entsprechenden Worka-
Zustände verschiedenster Ressourcen Systems derartiger Komplexität hier und rounds oder fertigen Konfigurationen
über die physischen Grenzen einzelner dort eben auch mal etwas schiefgeht. daherkommen. Andererseits erhöhen sie
Server hinweg konsistent verwalten und Kritik erlaubt ist aber durchaus an der die Komplexität einer Lösung aber durch
zugeteilte Aufgaben in diesem Rahmen Art und Weise, wie das Projekt sich orga- ihre eigene Funktionalität erheblich. Das
zuverlässig erledigen soll. Das ist tech- nisiert. Dadurch macht es sich erst anfäl- wiegt umso schwerer, als Kubernetes

08.2023 www.linux-magazin.de 53
Sysadmin Kubernetes-Kritik

vertrauen. Vor ein paar


Monaten führte dort ein
Update von Kuberne-
tes 1.23 auf 1.24 für einen
mehrstündigen Totalaus-
fall der ganzen Plattform,
weil etliche im K8s-Kon-
text problematische Fak-
toren zusammenfielen.
Im Fokus der Kritik steht
dabei zunächst das Versi-
onsschema, das Kuberne-
tes nutzt. Längst hat sich
in der Open-Source-Welt
der sogenannte SemVer-
© Red Hat

Standard etabliert, also


das Semantic Versioning.
Das sieht vor, dass sich die
2 Lösungen wie OpenShift von Red Hat helfen Administratoren dabei, die größten Klippen im Versionsnummer einer
­Kubernetes-Kontext zu umschiffen, lösen aber auch nicht alle Probleme der Umgebung. Softwareversion in drei
Bestandteile zerlegen
lässt: Vorn steht die Major-
selbst alles andere als leicht zu verstehen tes löst ein komplexes Problem und ist Versionsnummer, die sich nur bei großen
und zu benutzen ist. selbst entsprechend komplex. Änderungen erhöht, falls eine neue Ver-
Ein „echtes“ Kubernetes gibt es indes sion zu ihrem Vorgänger nicht mehr
durchaus: Auf der Projekt-Website erhal- kompatibel ist. Die Minor-Versionsnum-
Irre Fehler
ten Interessierte die Vanilla-Variante der mer an zweiter Stelle darf auch größere
Software, die sich ohne Weiteres separat Dass die Software so fehlerbehaftet ist, Änderungen verkünden, solang diese
betreiben und nutzen lässt. Im Netz fin- dass Kubernetes-Administratoren oft aus kompatibel zu vorherigen Versionen blei-
den sich zudem etliche Anleitungen, die dem Staunen gar nicht mehr herauskom- ben. Der letzte Teil der Versionsnummer
das Setup eben dieser Kubernetes-Vari- men, verschärft das Problem jedoch. ist schließlich für Minor-Updates reser-
ante im Detail für verschiedene Linux- Grundsätzlich gilt: Um in K8s auf die ersten viert, also vorrangig Fehlerkorrekturen
Distributionen erklären. Wer die pure Probleme und Fehler zu stoßen, muss man sowohl im Hinblick auf die Funktionalität
K8s-Erfahrung will, liegt hier also richtig. üblicherweise gar nicht lange suchen. als auch in Sachen Security.
Wer diesen Weg wählt, entscheidet Mehrere Fehlerarten liefern sich hier Wer sein Kubernetes wie Reddit vor
sich allerdings für einen ausgesprochen fast schon ein Duell: Manche Probleme ­einiger Zeit von der Version 1.23 auf die
steinigen Pfad. Denn ein Kubernetes-­ sorgen dafür, dass in Kubernetes eigent- Version 1.24 hebt, geht auf Grundlage
Administrator steht bereits am Anfang lich angelegte Funktionen gar nicht oder des SemVer-Standards also mit Fug und
eines Deployments vor etlichen wichti- nicht richtig funktionieren. Besonders Recht davon aus, sich damit keine In-
gen Entscheidungen, die sich später nur kritisch sind Konsistenzprobleme in den kompatibilitäten ins Haus zu holen, die
zum Teil oder gar nicht mehr korrigieren eigenen Metadaten beispielsweise beim den Betrieb unterbrechen. Diese Annah-
lassen. Dazu gehört die Wahl einer Löschen von Ressourcen. Auch darauf me war jedoch die Falle: In Kuberne-
Software-­defined-Networking-Lösung gehen wir im Folgenden noch ein. tes 1.24 hatten die Entwickler nämlich
ebenso wie jene für den passenden Spei- Wie bereits beschrieben leidet Kuber- die interne Bezeichnung von Diensten in
cher für persistente Daten. netes zudem an einer gefährlichen Mix- den URLs geändert, die externe Lösun-
Kubernetes implementiert die Spezifi- tur aus Verplantheit und Abgehobenheit. gen wie das bei Reddit genutzte Calico
kationen für Container Networking Inter- Das dürfte in jüngerer Vergangenheit be- für die Kommunikation mit K8s nutzen.
faces (CNI) und Container Storage Inter- reits zahllosen Administratoren schlaflo- Statt des vorherigen Wortes master
faces (CSI) zwar vorbildlich. Lösungen se Nächte bereitet haben. Ein paar Bei- musste in der URL ab Kubernetes 1.24
wie Flannel oder Calico 3 sind aber kei- spiele machen das schnell offensichtlich. control‑plane stehen, und die genutzte
ne Selbstläufer und auch nicht mal eben Calico-Version hatte diese Änderung
so auszurollen. Stattdessen hat der Ad- schlicht noch nicht integriert.
Negativbeispiel Reddit
ministrator hier eingangs regelmäßig viel Die K8s-Apologeten haben gleich eine
zu lernen, bevor er sich durch Versuch Beim Online-Forendienst Reddit hat man ganze Reihe von Gründen auf Lager, wie-
und Irrtum an das richtige Setup heran- auf die harte Tour gelernt, auf liebge- so nicht Kubernetes an der Malaise
tastet – erst im Labor, dann in der Pro- wonnene Annahmen bei der Systemad- schuld sei, sondern einzig das Personal
duktion. Wie bereits erwähnt: Kuberne- ministration lieber nicht allzu sehr zu von Reddit. Zunächst, so heißt es dann,

54 www.linux-magazin.de 08.2023
Kubernetes-Kritik Sysadmin

nutze Kubernetes durchaus den SemVer- derholte Versprechen der Einfachheit drei nagelneuen Servern mit genügend
Standard, und tatsächlich kommt Kuber- von Lösungen wie Calico oder Flannel Wumms unter der Haube und Ubun-
netes in Versionen wie 1.24.0 daher. Al- rächt sich hier bitter. tu 22.04. Folgt man den diversen Anlei-
lerdings macht die genutzte Versions- Wäre die Reddit-Outage ein Verkehrs- tungen im Netz, um auf einem solchen
nummer per se eben noch keine Com­ unfall, würde ein Gericht den Parteien System ein Vanilla-Kubernetes auszurol-
pliance mit SemVer aus, und aus der am Ende vermutlich jeweils eine Teil- len, beobachtet man regelmäßig allerlei
­Erfahrung heraus erwarten Administrato- schuld zusprechen. Dass Kubernetes es bemerkenswerte Effekte. So nutzt Kuber-
ren beim Sprung von v1.23 zu v1.24 ge- Administratoren so schwer macht, schon netes intern CoreDNS für die Namensauf-
rade keine Änderungen, die die Kompati- anhand der Versionsnummer fundamen- lösung. Funktioniert die nicht, lassen sich
bilität mit der Vorversion brechen. tale Änderungen zu identifizieren, müss- typische Anwendungen aus dem Kuber-
Dann, so heißt es weiter, hätte ein te aber eigentlich nicht sein. netes-Universum wie Istio gar nicht erst
Blick in das Changelog ja für Klarheit sor- nutzen, weil sie nicht starten.
gen können. Das stimmt grundsätzlich, Von zuverlässiger Funktionalität bei
Schlimmer geht immer
unterschlägt aber einen wichtigen Fak- CoreDNS war K8s in der Version 1.26, die
tor: Wer K8s im Gespann mit Lösungen Immerhin: Den Ausfall bei Reddit hätten bei der Entstehung dieses Artikels aktuell
wie Calico oder Flannel einsetzt, darf ei- die dortigen Administratoren durch sorg- war, jedenfalls weit entfernt. In vier von
gentlich erwarten, dass deren Hersteller fältige Change­log-Lektüre sowie einige zehn Fällen funktionierte nach dem Aus-
sich um solche Probleme kümmern oder vorhergehende Tests verhindern können. rollen von Kubernetes (jeweils nach der
zumindest eindeutige Aussagen bezüg- Das ist aber längst nicht bei allen Kuber- kompletten Neuinstallation der Systeme
lich der Kompatibilität mit bestimmten netes-Problemen der Fall, mit denen per Lifecycle-Management) CoreDNS in
Kubernetes-Versionen treffen. Regelmä- ­Administratoren es üblicherweise zu tun Kubernetes aus nicht nachvollziehbaren
ßig wissen Administratoren, die Calico bekommen, wie im Folgenden mehrere Gründen nicht. Dass ein Neustart der
und Co. nutzen, gar nicht im Detail, was Beispiele verdeutlichen. ­CoreDNS-Pods diese auf magische Weise
unter deren Hauben eigentlich passiert. Gegeben sei beispielsweise eine fri- zum Leben erweckte, ist da nur ein
Das fast schon gebetsmühlenartig wie- sche Laborumgebung, bestehend aus schwacher Trost, denn die Ursache für

© Vmware

3 Externe Zusatzprodukte erweitern Kubernetes zwar um Funktionen, drehen aber auch mächtig an der Kom-
plexitätsschraube und werden dadurch Teil des Problems. Unser Diagramm zeigt das beispielhaft für Calico.

08.2023 www.linux-magazin.de 55
Sysadmin Kubernetes-Kritik

das Problem war im Nachhinein nicht sieht er statt der in der Dokumentation Entwickler und ‑Fans auf Probleme re-
mehr herauszufinden. Vertrauenerwe- angepriesenen rückstandslosen Entfer- agieren, und andererseits die Erkenntnis,
ckend ist das nicht gerade. nung aller sich darin befindlichen Einträ- dass Kubernetes viele seiner aktuellen
Das gilt umso mehr, da die Kakofonie ge oft ein Potpourri aus Zombie-Ressour- Probleme gar nicht haben müsste.
zwischen Lösung und Admin sich für die cen. Die verhindern das Löschen eines Schließlich ist Kubernetes nicht die
nächsten Schritte hin zur Container- Namespaces nachhaltig und dauerhaft. erste und auch nicht die einzige Soft-
Plattform nahtlos fortsetzt. Fast schon Ebenso scheitert Kubernetes daran, sie ware, die sich mit den Tücken eines ver-
berühmt-berüchtigt sind die Inkonsis- zu entfernen. Dann helfen bloß noch kru- teilten Systems herumschlagen muss. Ein
tenzen in der Ressourcenverwaltung de Hacks auf der Kommandozeile, wie anderes, prominentes Softwareprojekt
von Kubernetes. Dazu muss man wissen, der aus Listing 1 für die K8s-Datenschutz- musste vor ein paar Jahren ganz ähnliche
dass es sich in der Kubernetes-Welt ein- lösung Kasten. Herausforderungen meistern wie die, vor
gebürgert hat, externe Software per Wem der gezeigte Kommandozeilen- denen K8s heute steht: OpenStack. Wer
­Paketmanager (Helm) oder über fertige wust noch zu intuitiv ist, der findet im nun aber annimmt, man habe bei Kuber-
State-Dateien vorzunehmen. Letztere Netz an anderer Stelle den Hinweis, dem netes viel Wert auf den Erfahrungsschatz
gibt man dem Cluster per kubectl Cluster doch gleich per Curl und JSON- der OpenStack-Entwickler gelegt, sieht
­apply mit auf den Weg. Template zu Leibe zu rücken, was dann sich spätestens nach der Lektüre ein-
Viele größere Softwareprojekte wie aber wirklich ganz sicher und verspro- schlägiger Mailing-Listen und ebenso
Rook, das Ceph durch Kubernetes hin- 4
chen funktioniere . Wer, um im vorhe- zahl- wie fruchtlosen Debatten bei Kon-
durch ausrollt, kommen mit entspre- rigen Beispiel zu bleiben, dachte, nach ferenzen wie der KubeCon eines Besse-
chend vielen State-Beschreibungen in der unbeliebten XML-Notation der Res- ren belehrt.
vielen einzelnen Dateien. Wendet der sourcen in Pacemaker könne es kaum Ein Großteil der Community rund um
Administrator diese auf den Cluster an noch schlimmer kommen, sieht sich hier Kubernetes hat in den OpenStack-Entwi-
und merkt, dass beim Deployment etwas eines Besseren belehrt. cklern stets einen Haufen von Idioten ge-
schiefgeht, hat er üblicherweise eine Admins, die selbstverständlich davon sehen, der für gegebene Probleme viel
­klare Erwartungshaltung: Dass er näm- ausgehen, es vor und nach dem Abset- zu komplexe Lösungen erfand, statt je-
lich die bereits bestehenden Ressourcen zen eines Kommandos an einen Dienst weils den einfachsten Weg einzuschla-
löschen und den Prozess von vorn begin- mit einem konsistenten Zustand zu tun gen. Dabei übersehen die Kritiker, dass
nen kann. Das leuchtet theoretisch ein, zu haben, wackeln in der Regel spätes- etliche OpenStack-Komponenten es zu
funktioniert so in der Praxis allerdings tens jetzt mit den Ohren. Beginn der Entwicklung von OpenStack
­regelmäßig nicht. durchaus mit der einfachsten Lösung
Ebenso wie das Deployment-Schema versucht und sich dabei eine blutige
Bräsige Überheblichkeit
selbst hat es sich im Kubernetes-Umfeld Nase geholt haben. Wie bei Pacemaker
eingebürgert, logisch zusammenhän- Um es zu wiederholen: Dass eine kom- hat man daraus bei OpenStack gelernt,
gende Ressourcen in Kubernetes-Name- plexe Lösung wie Kubernetes mit Fehlern die Software sukzessive verbessert, Bugs
spaces von anderen Ressourcen im sel- daherkommt, ist weder ungewöhnlich ausgeräumt und OpenStack in eine ver-
ben Cluster abzugrenzen. Greift der Ad- noch unerwartet. Den Blutdruck des Ad- lässliche Lösung für spezifische Einsatz-
ministrator nun aber zur Brechstange ministrators treibt einerseits aber die Art zwecke entwickelt. Beim Kubernetes-
und löscht den gesamten Namespace, und Weises in die Höhe, wie Kubernetes- Projekt will man von diesem Ansatz in
weiten Teilen allerdings nichts wissen.
Stattdessen sind die Reaktionen auf
Kritik und Fehlerberichte innerhalb der
Community heute fast schon vorherseh-
bar: Öffnet man den Bug-Tracker der Lö-
sung auf Github , finden sich dort
über 500 noch offene Einträge, die mit
needs-triage gekennzeichnet sind. Ein
großer Teil davon lässt sich gar nicht erst
sinnvoll reproduzieren.
Nicht selten erhalten verzweifelte Ad-
ministratoren durch die Blume die Aus-
kunft, es müsse wohl irgendetwas am lo-
kalen Setup defekt sein. Man solle das
Deployment – oder besser noch gleich
das ganze Kubernetes – noch einmal
4 Mit JSON-Snippets wie diesem sollen Administratoren ihrem neu ausrollen und sich wieder melden,
Kubernetes-Cluster zu Leibe rücken, wenn Ressourcen sich dort sollte sich das Problem dadurch nicht in
nicht mitsamt ihren Namespaces entfernen lassen. Wohlgefallen auflösen. Mit sinnvoller Re-

56 www.linux-magazin.de 08.2023
Kubernetes-Kritik Sysadmin

produzierbarkeit hat auch das freilich


absolut gar nichts zu tun.
Mehr noch: Wer mit Kubernetes-Jün-
gern über Sinn und Unsinn technischer
Entscheidungen oder über ein konkretes
Problem spricht, bekommt in der Regel
völlig ungefragt, dafür aber neunmalklug
erläutert, wieso keinesfalls Kubernetes
die Ursache des Problems sein kann. Man
habe halt einfach nicht genug Ahnung

© Wikipedia / Matt Buchanan, CC-BY 2.0


von der Lösung, heißt es dann. Oder, be-
sonders gern im Kontext des beschriebe-
nen Problems mit Ressourcen-Zombies
nach dem Löschen von Namespaces: Ja,
das sei zwar unschön, doch ließe eben
diese Inkonsistenz überhaupt erst Nut-
zungsvarianten für Kubernetes zu, die
andernfalls ja gar nicht erst zur Verfü-
gung stünden.
Inkonsistenz-as-a-Service? Unwillkür- 5 Apple-Chef Steve Jobs sorgte vor vielen Jahren für Lacher, als er Empfangsprobleme
lich fühlt man sich an Apple unter Steve beim iPhone auf das falsche Handling des Geräts zurückführte.
Jobs erinnert, der auf Kritik an der seiner-
zeit schwachen Empfangsleistung von
iPhones lapidar darauf hinwies, die Kun- Gottgegeben ist die Alternativlosigkeit Auch die Kubernetes-Distributionen der
den würden die Geräte wohl einfach von Kubernetes dennoch keineswegs. Hyperscaler (AWS, Azure, GCP) kommen
5
falsch halten . Wer der F/​LOSS-Community die Fähig- passend vorkonfiguriert daher und funk-
keit abspricht, in relativ kurzer Zeit mit tionieren deutlich besser als ein manuell
einer Alternative aufzuwarten, unter- zusammengezimmertes Upstream-­
Gekommen, um zu bleiben?
schätzt ihre Innovationsfähigkeit erheb- Kubernetes. Letzteres, so sagen Kuber­
Was gestandene Systemadministratoren lich. Es muss ja gar kein kompletter Neu- netes-Fans, sei ohnehin unüblich und
dabei erstaunt zurücklässt, ist die Selbst- bau werden: Ein Fork, der sich auf die fehleranfällig – freilich, ohne dafür kon-
verständlichkeit, mit der Kubernetes-Ver- Stabilisierung der Funktionen und das krete Gründe anzuführen.
fechter davon ausgehen, dass K8s in Sa- Beseitigen lästiger Kinderkrankheiten
chen Container-Orchestrierung der Weis- konzentriert, wäre aus Sicht genervter
Fazit
heit letzter Schluss sei. Administratoren bereits eine riesige Ver-
Tatsächlich ist auf dem Container- besserung. Hilfreich wäre es zudem, Zwar suggerieren Anbieter wie Suse oder
Markt eine Alternative zu Kubernetes im diente die Kubernetes-Community nicht Red Hat, dass Kubernetes die alternativ­
Augenblick nicht in Sicht. Der einzige länger als riesiger Feldversuch für sämtli- lose Zukunft der IT sei. Dazu müsste sich
einstige Konkurrent Docker Swarm wird che Glücksritter, die mit ihren halbgaren aber vieles verbessern. Hoffnung besteht
seitens des Herstellers zwar noch immer Produkten versuchen, schnelle Kasse zu durchaus, jedoch in einer Form, die Ku-
aktiv gepflegt. Auf dem Markt hat die Lö- machen. Auch die sind nämlich ein er- bernetes-Fans wohl kaum schmeckt:
sung aber kaum noch Traktion, sodass heblicher Teil des Problems. Auch OpenStack wurde sukzessive erst
eine Wachablösung auf dem Thron der Bis etwaige Bewegungen Oberhand ab jenem Zeitpunkt immer besser, an
Container-Orchestrierer in absehbarer gewinnen, bleibt Kubernetes-Adminis- dem die Hype-affinen Anwender in Rich-
Zeit nicht ansteht. Canonical erweist sich tratoren nur, sich mit der Situation zu tung Kubernetes weitergezogen waren.
bei Ubuntu in dieser Hinsicht obendrein ­arrangieren. Wer ein neues K8s-Projekt Das Sprichwort, wonach viele Köche
ebenfalls als Totalausfall: Dort versucht aus dem Boden stampfen will, setzt dafür den Brei verderben, hat auch in der Soft-
man noch immer, das hausinterne Snap- idealerweise auf Lösungen wie Open­ warewelt einen wahren Kern. Und in der
Format zu propagieren, für das eine Con- Shift, Rancher oder Gardener, um sich Kubernetes-Küche tummeln sich zu viele
tainer-Orchestrierung gleich gar nicht den größten Teil der Deployment-Proble- Köche. Da bleibt nur, Kubernetes-Admins
zur Verfügung steht. me von vorneherein vom Hals zu halten. starke Nerven zu wünschen. (jcb) █

Listing 1: Ressourcen löschen Weitere Infos und


# kubectl delete apiservice v1alpha1.actions.kio.kasten.io
interessante Links
v1alpha1.apps.kio.kasten.io v1alpha1.vault.kio.kasten.io www.lm-online.de/qr/49398

08.2023 www.linux-magazin.de 57
© Andriy Popov / 123RF.com
Umfrage unter EU-Mitgliedstaaten zur Chat-Kontrolle

Auf der Wunschliste


Ginge es nach den Wünschen vieler EU-Staaten, könnten die nikation verfügbar sind.“ Doch das ist
nicht so einfach, da Audiodateien mög­
umstrittenen Pläne zur sogenannten Chat-Kontrolle noch licherweise nicht dieselben visuellen In-
dikatoren enthielten, die in Bildern oder
deutlich verschärft werden. Friedhelm Greis Videos sind, wie Rumänien anmerkt.

Mehrere Vorschläge
Die Wunschliste der Mitgliedstaaten ent- det nicht zwischen verschiedenen Medi-
stand in einer Umfrage der schwedi- 1
entypen  . Allerdings ist nie von Audio- Außerdem könne die Erkennung von
schen Ratspräsidentschaft, die 20 Länder dateien die Rede, sondern meist nur von Missbrauchsmaterial in Audiodateien
beantworteten . Zehn davon befür- Bildern, Videos und Texten. So heißt es in durch Faktoren wie Hintergrundgeräu-
worten ausdrücklich die Überwachung Artikel 13, dass die Meldungen von Miss- sche, schlechte Audioqualität und Ver-
von Audiokommunikation zur Bekämp- brauchsmaterial „alle Inhaltsdaten, ein- schlüsselung behindert werden. Rumäni-
fung von sexuellem Kindesmissbrauch. schließlich Bilder, Videos und Texte“ ent- en verweist dabei auf Verfahren wie Au-
Sechs Nationen, darunter Deutschland, halten müssen. Dabei beziehen sich Tex- dio-Fingerprinting oder Spracherken-
äußern Bedenken und lehnen das eher te vor allem auf sexuelle Anbahnungs- nung, um solches Material zu identifizie-
ab. Vier Mitgliedstaaten sind in dieser versuche (Grooming), die ebenfalls auf- ren. Darüber könne man maschinelles
Frage noch unentschieden. gedeckt werden sollen. Lernen einsetzen, um bekannte Audio-
Kroatien vertritt diese Position: „Die dateien zu erkennen.
Audiokommunikation kann für Groo- Rumänien zufolge könnten geschulte
Bilder, Videos und Texte
ming eingesetzt werden. Sie sollte in den menschliche Prüfer gekennzeichnete Au-
Der bisherige Vorschlag der EU-Kommis- CSAM-Vorschlag aufgenommen werden, diodateien kontrollieren und feststellen,
sion zur sogenannten CSAM-Verordnung wenn geeignete Instrumente zur Erken- ob sie Missbrauchsmaterial enthalten.
(Child Sexual Abuse Material) unterschei- nung von Grooming über Audiokommu- „Die Erkennung von CSA in Audiodateien

58 www.linux-magazin.de 08.2023
Recht Forum

ist seltener als in anderen Medienarten,


aber da die Technik voranschreitet und
immer mehr Kommunikation über Audio
erfolgt, könnte sich das in Zukunft än-
dern“, heißt es zur Begründung.

„Eingriff in Grundrechte“
Gegner solcher Pläne wie die Niederlan-
de wenden ein, dass eine Überwachung
der Audiokommunikation „in keinem

© fizkes / 123RF.com
Verhältnis zum angestrebten Zweck ste-
hen würde“. Darüber hinaus werde sie
„im Falle von Ende-zu-Ende-verschlüssel-
ter Sprachkommunikation höchstwahr-
scheinlich auch Maßnahmen erfordern,
die mit der Rechtsprechung des Europäi- 1 In Messengern geteilte Medien sind Gegenstand der Chat-Kontrolle.
schen Gerichtshofs zur Vorratsdatenspei-
cherung unvereinbar sind“.
Nach Ansicht der Slowakei würde die Meinungen der Mitgliedstaaten weit aus- Belgien schlägt dagegen vor, das Aufbre-
Überwachung der Audiokommunikation einander. Die Ratspräsidentschaft will chen der Verschlüsselung in die Verant-
„den am schwersten wiegenden Eingriff wissen, ob in die CSAM-Verordnung ein wortung der Provider zu legen. „Das be-
in die Grundrechte der betroffenen Per- Passus aufgenommen werden soll, wie er deutet, dass ein Diensteanbieter in der
sonen und eine Ausnahme vom Grund- sich derzeit in Erwägungsgrund 25 der Lage sein sollte, seine eigene Verschlüs-
satz der Vertraulichkeit der Kommunika- Übergangsverordnung zum Kindesmiss- selung zu ’deaktivieren’, wenn eine Anfra-
tion darstellen“, wie er in der E-Privacy- brauch  findet. Dort heißt es: „Keine ge einer Justizbehörde vorliegt.“ Sicher-
Richtlinie verankert sei. Anbieter seien Bestimmung dieser Verordnung sollte heitsexperten sind der Ansicht, dass eine
auch kaum in der Lage, eine Risikoein- daher so ausgelegt werden, dass sie die solche Möglichkeit effektiv die Ende-zu-
schätzung zu erstellen, da die Kommuni- Ende-zu-Ende-Verschlüsselung verbietet Ende-Verschlüsselung zerstören würde.
kation nicht überwacht werden dürfe. oder abschwächt.“
Ohnehin scheint unklar, welche Audio- Dagegen fordert Spanien offen: „Idea-
Sieben stumme Staaten
kommunikation gemeint ist. lerweise wäre es unserer Meinung nach
wünschenswert, die in der EU ansässigen Insgesamt befürwortet eine Mehrheit
Diensteanbieter gesetzlich daran zu hin- der Staaten eine ungeschwächte Ende-
Telefonate betroffen?
dern, eine Ende-zu-Ende-Verschlüsselung zu-Ende-Verschlüsselung, sodass ein ent-
So fragt Irland, ob mit den sogenannten einzusetzen.“ Die Alternative wäre eine sprechender Passus Eingang in die Ver-
interpersonellen Kommunikationsdiens- Transportverschlüsselung analog zur ordnung finden könnte. Sieben Mitglied-
ten auch nur nummernunabhängige ­E-Mail-Kommunikation, die der Anbieter staaten, darunter Frankreich, Österreich,
Dienste wie Whatsapp oder auch num- auf seinem Server durchsuchen könne. Schweden und Portugal, reichten keine
mernabhängige Sprachdienste gemeint Das sei allerdings „sehr umstritten“. Antworten ein. Somit lässt sich nicht ab-
sind. Zudem bleibe unklar, ob im Falle sehen, ob der Ministerrat die Audiokom-
von Whatsapp nur Sprachnachrichten munikation in seine Verhandlungsposi­
Pro Verschlüsselung
oder auch Sprachanrufe gemeint seien. tion aufnehmen wird. Falls doch, dürfte
Der Kommissionsvorschlag verweist Die deutsche Regierung äußert in ihrer das den Widerstand gegen die gesamte
jedoch auf Artikel 2, Nummer 5 des Euro- Antwort „schwerwiegende Bedenken ge- Chat-Kontrolle noch verstärken. (uba) █
päischen Kodex für die elektronische gen die im Verordnungsvorschlag ent-
Kommunikation , der ausdrücklich haltenen Regelungen zu Aufdeckungs-
nicht zwischen nummernunabhängig anordnungen“. Ihr erscheint ein hohes Dateien zum Artikel
und ‑abhängig unterscheidet. Damit Maß an Datenschutz und Cybersicherheit herunterladen unter
könnten sich entsprechende Aufde- unerlässlich, einschließlich einer Ende- www.lm-online.de/dl/48722
ckungsanordnungen auch auf normale zu-Ende-Verschlüsselung in der elektro-
Telefongespräche erstrecken. nischen Kommunikation. Deutschland
halte es unter anderem für erforderlich,
Verschiedene Standpunkte im Entwurfstext festzuhalten, „dass keine Weitere Infos und
Technologien eingesetzt werden, die die interessante Links
Auch hinsichtlich des Schutzes von En- Verschlüsselung stören, schwächen, um- www.lm-online.de/qr/48722
de-zu-Ende-Verschlüsselung liegen die gehen oder verändern“, heißt es weiter.

08.2023 www.linux-magazin.de 59
Forum Bücher

Bücher über Machine Learning und C++ Das Buch behandelt einführend die
Grundideen des Machine Learning –

Tux liest
Klassifizierung und Regression – und
­einige grundlegende Begriffe wie diskre-
te und kontinuierliche Daten, abhängige
und unabhängige Variable, Test- und
Trainingsdaten etc. Weiter geht es mit
dem nötigen Fundament aus Statistik:
Ein Buch führt reich bebildert in die Methoden des Machine Histogramme, Wahrscheinlichkeitsvertei-
lungen und Modelle kommen zur Spra-
­Learning ein. Das zweite erläutert Best Practices für C++-­ che. Dann folgen konkrete Techniken, da-
runter die lineare Regression, das Gradi-
Programmierer. Jens-Christoph Brendel entenabstiegsverfahren und die logisti-
sche Regression. Daran schließt sich mit
Naive Bayes ein bekanntes Klassifikations-
verfahren an, dem noch Entscheidungs-
Bilder statt Worte bäume und Support-Vektor-Klassifika­
toren folgen. Das Buch endet schließlich
Das Besondere an der vorliegenden Ein- die Erklärungen bei einer Grundidee an mit einer Vorstellung neuronaler Netze.
führung in das maschinelle Lernen ist die und hangeln sich dann weiter zu den De- Insgesamt liegt ein Werk vor, das sich aus-
Erklärmethode. Der Autor nutzt durch- tails. Auf diese Weise kann der Leser den gezeichnet für das Selbststudium eignet
gängig Comic-artige Bildchen, oft Dia- dargebotenen Stoff in leicht verdauli- und auf didaktisch geschickte Weise in
gramme, aber auch plakative Abbildun- chen Häppchen aufnehmen. Die Beispie- das maschinelle Lernen einführt. █
gen. Zwei Fantasiefiguren, Normalsaurus le sind instruktiv und ähneln sich über
und StatSquatch, äußern sich mittels weite Strecken, sodass der Leser an Be-
Sprechblasen. Alle Themenkomplexe kanntem anknüpfen kann. Kurze Zusam- Josh Starmer
gliedern sich in überschaubare Einheiten, menfassungen und FAQs festigen das Machine Learning
meist nicht länger als eine Seite. Dabei Gelernte. Die Methode funktioniert aus- visuell lernen
umfasst jede Einheit wiederum meist drei gezeichnet, wenn man sich an „Bäm!!!“- mitp-Verlag 2023
oder vier prägnante Punkte, zu denen je- Sprechblasen und ähnlichen kindlichen 300 Seiten, 35 Euro
weils eine Illustration gehört. Oft setzen Stilelementen nicht allzu sehr stört. ISBN: 978-3-7475-0071-2

C++ für Profis


Bei den C++ Core Guidelines handelt erläutert, was sie bedeutet und wie sie geln recht umfangreiche Sektion zu Ex-
es sich um eine Sammlung von Regeln, anzuwenden ist. Sehr häufig illustrieren pressions und Statements. Die nächste
Richtlinien und Empfehlungen, erarbei- kurze Code-Snippets die Verwendung, Gruppe von Regeln widmet sich Perfor-
tet von der C++-Community und heraus- viele Screenshots von Terminalfenstern mance-Problemen, dann geht es um die
gegeben unter einer Open-Source-Li- illustrieren die Effekte auf der Komman- Konkurrenz in Umgebungen mit Multi-
zenz. Sie sollen alle C++-Programmierer dozeile. Wichtige Aussagen eines jeden threading. Weiter geht es mit Fehlerbe-
dazu befähigen, effizienteren Code zu Abschnitts fasst ein mit Distilled über- handlung, Konstanten, Templates, Pro-
schreiben. Die Regeln sind allerdings schriebener Kasten kurz zusammen. grammierung im C-Stil, Source Files und
sehr kurz und prägnant formuliert. Wer Nach einer Einführung geht es um die der Standard-Library.
sie anwenden will, profitiert daher sicher C++-Philosophie. Dabei geben 13 Regeln Das Buch bietet sich vor allem als
von dem Projekt, das der freie Consul- allgemeinere Grundsätze vor. Das nächs- übersichtliches Nachschlagewerk an, das
tant, Trainer und Linux-Magazin-Autor te Kapitel dreht sich um Interfaces als verständliche Erklärungen zu den Best-
Rainer Grimm nun in Buchform vorlegt. den „wahrscheinlich wichtigsten Einzel- Practice-Regeln liefert. █
Sein Werk versammelt Hinweise und Er- aspekt der Codeorganisation“. Es folgen
klärungen inklusive Codebeispielen zu eine ganze Anzahl Regeln zum Umgang
jeder der zahlreichen Regeln. mit Funktionen. Anschließend widmet Rainer Grimm
Das englischsprachige Buch lehnt sich sich eine umfangreiche Sektion den Klas- C++ Core Guidelines
dabei eng an die Guidelines an und sen und Klassenhierarchien. explained
übernimmt deren Einteilung in 16 Sekti- Weiter geht es mit Enumerations und Addison-Wesley 2022
onen samt deren Reihenfolge und Num- dann mit dem wichtigen Kapitel Ressour- 460 Seiten, 45 Euro
merierung. Zu jeder Regel wird konkret cenmanagement. Es folgt eine mit 65 Re- ISBN: 978-0-13-687567-3

60 www.linux-magazin.de 08.2023
LUKAS
VERONIKA
Games Group
E-Commerce
SciFi-Nerd
CosPlay-Nerd

JOHANNES
N-Zone
Nintendo-Nerd
MANUEL
PCGH
Notebook-Nerd
SASCHA
play5 | PC Games
MATTHIAS Fantasy-Nerd
PC Games
Video-Nerd

SANTI
PCGH
Video-Nerd
TANJA

Wir lieben es.


PC Games MMore
MMORPG-Nerd

Wir leben es.


_ Lieblingsthemen: Gaming. IT. Entertainment.
_ Mehr Stories. Mehr Hintergründe. Mehr Herz.
_ Gründlicher. Übersichtlicher. Unterhaltsamer.
_ Magazine. Apps. Webseiten. Streams. Podcasts. Und mehr.

shop.computec.de | Oder in eurem Store nach dem Magazin-Namen suchen:

Computec Media. Von Nerds für Nerds.


Folgt uns:
© pitinan / 123RF.com
Teil 1: Was ist maschinelles Lernen?

Gelernt ist gelernt


Das maschinelle Lernen hat sich zu einer der bedeutendsten nutzen sie vorgegebene Eingabe-Aus­
gabe-Paare, die Trainingsdaten. Kein Ent­
Technologien im IT-Sektor entwickelt und beeinflusst nahezu wickler muss sie programmieren   .1
jeden Aspekt unseres Lebens. Von personalisierten Empfeh- ML-Varianten
lungen bis zu selbstfahrenden Autos. Mark Vogelsberger Das maschinelle Lernen (ML) lässt sich
in drei Hauptkategorien unterteilen  :2
überwachtes, unüberwachtes und ver­
stärkendes Lernen.
Das maschinelle Lernen ist ein Teilge­ mit Eingabedaten flexibler umgeht. Ab­ Beim überwachten Lernen nutzt der
biet der künstlichen Intelligenz. Es be­ strakt gesprochen stellt jedes Computer­ Algorithmus beschriftete Trainingsdaten,
schäftigt sich mit der Entwicklung von programm eine Funktion oder Abbil­ um Vorhersagen für neue, unbekannte
Algorithmen und Modellen, die es Com­ dung dar, die eine Eingabe in eine Aus­ Daten zu treffen. Beschriftet bedeutet,
putern ermöglichen, aus Daten zu ler­ gabe umwandelt. Traditionelle Program­ dass zu vorgegebenen Eingaben (Fea­
nen und sich dann zu entscheiden oder me verwenden Regeln und Vorschriften, tures) auch die Ausgaben (Labels) vorlie­
Vorhersagen zu treffen, ohne für das je­ um die Eingabedaten in die Ausgabeda­ gen. Der Algorithmus versucht dann,
weilige Problem explizit programmiert ten zu überführen. Bei komplexen Auf­ ­Regeln zu finden, um die Eingaben mit
worden zu sein. Maschinelles Lernen ba­ gaben, wie Sprach- oder Bilderkennung, den Ausgaben zu verknüpfen.
siert auf statistischen Methoden und er­ geraten diese regelbasierten Ansätze Klassifikation und Regression sind
möglicht es Computern, Muster und Zu­ aber an ihre Grenzen. beim überwachten Lernen gängige Auf­
sammenhänge in großen Datenmengen Maschinelles Lernen, in diesem Fall gaben. Die Klassifikation hat das Ziel,
zu erkennen. ­sogenanntes überwachtes maschinelles Daten in bestimmte Klassen einzuteilen.
Der Hauptvorteil des maschinellen Lernen, hilft hier weiter: Statt anhand in Beim Erkennen von Spam-Mails handelt
Lernens gegenüber der traditionellen Code gegossener Algorithmen lernen es sich beispielsweise um ein Klassifika­
Programmierung besteht darin, dass es diese Systeme die Regeln selbst. Dazu tionsproblem: Liegt eine Spam-Mail vor

62 www.linux-magazin.de 08.2023
KI-Serie Know-how

Regeln Maschinelles Lernen


Traditionelle Programmierung Ausgabe
Eingabe
Überwachtes Unüberwachtes Verstärkendes
Lernen Lernen Lernen

Eingabe
Maschinelles Lernen • Klassifikation • Clusterbildung • Optimierung
Regeln
(überwachtes Lernen) • Regression • Dimensions- • Handlungs-
Ausgabe
reduktion strategien

1 Transformation von Ein- in Ausgabedaten. 2 Die hauptsächlichen Kategorien beim maschinellen Lernen.

oder nicht? Bei der Regression sollen nomen Systemen und für die Planung schen Daten und der Entwicklung per­
hingegen konkrete Werte vorhergesagt von Spielen zum Einsatz. sonalisierter Behandlungspläne. Durch
werden. Die Vorhersage von Aktienkur­ Die bisher genannten Methoden des die Analyse von medizinischen Bildern,
sen stellt beispielsweise ein Regressions­ maschinellen Lernens gehören zu den genetischen Daten und klinischen Infor­
problem dar. prädiktiven Methoden. Sie erlauben, Vor­ mationen können Algorithmen helfen,
Allgemein ist es beim überwachten hersagen oder Aussagen über Daten zu Krankheiten frühzeitig zu erkennen und
Lernen wichtig, dass der Algorithmus aus treffen. Im Gegensatz dazu zielt generati­ die Behandlung zu optimieren.
den Trainingsdaten den allgemeinen ves maschinelles Lernen darauf ab, neue • Finanzwesen: Maschinelles Lernen
­Zusammenhang zwischen den Features Daten zu erzeugen, die den Trainingsda­ wird im Finanzwesen eingesetzt, um Fi­
und den Labels erlernt. ten ähneln. Anstatt eine bestimmte Vor­ nanzmärkte zu analysieren, Betrugsfälle
Unüberwachtes Lernen verzichtet auf hersage zu treffen, kann das Modell dann zu erkennen und Risikobewertungen zu
beschriftete Daten. Es liegen also nur neue, bisher ungesehene Daten generie­ erstellen. Algorithmen können große
Features vor, aber keine Labels. In diesem ren, die ähnliche Merkmale aufweisen. Mengen von Finanzdaten analysieren
Fall versucht der Algorithmus, Einsichten Diese Modelle werden oft in der Bild- und Muster aufspüren, die menschliche
über die Features selbst zu erlangen. und Textgenerierung eingesetzt. Analysten möglicherweise über­sehen
­Methoden des unüberwachten Lernens würden.
erkennen beispielsweise eigenständig Das sind nur einige wenige Beispiele für
ML-Anwendungen
Muster und Strukturen in den Daten, Anwendungen des maschinellen Ler­
zum Beispiel durch Cluster-Bildung. Maschinelles Lernen kommt in zahlrei­ nens. Gerade das Aufkommen genera­
Bei hochdimensionalen und komple­ chen Anwendungen zum Einsatz. Die tiver Methoden wird in naher Zukunft
xen Daten können Methoden des un­ Verwendungsgebiete sind praktisch un­ dazu führen, dass maschinelles Lernen
überwachten Lernens auch die Dimen­ begrenzt. Die folgende Aufzählung gibt immer mehr kreative Aufgaben unter­
sionalität der Daten reduzieren und auf einen Überblick: stützt oder gar übernimmt.
diese Weise die weitere Verarbeitung • Bild- und Spracherkennung: Maschi­
­vereinfachen. Das unüberwachte Lernen nelles Lernen ermöglicht Computerpro­
Fazit
eignet sich also gut für die Entdeckung grammen, Bilder zu identifizieren und
von verborgenen Mustern und das Er­ Sprache zu verstehen. Das umfasst Be­ Maschinelles Lernen ist eine revolutionä­
kunden von Datensätzen. reiche wie Gesichtserkennung, automa­ re Technologie, die unser tägliches Leben
Neben dem überwachten und unüber­ tisches Übersetzen und Chatbots. Durch und verschiedene Branchen einschnei­
wachten Lernen gibt es noch das verstär­ den Einsatz von neuronalen Netzwer­ dend verändert. Es ermöglicht Compu­
kende Lernen, das sich grundsätzlich von ken und Deep Learning haben sich die tern, aus Daten zu lernen und Vorhersa­
den beiden anderen Arten des maschi­ Leistungsfähigkeit und Genauigkeit gen zu treffen, ohne dass man sie dafür
nellen Lernens unterscheidet. Beim ver­ ­dieser Systeme erheblich verbessert. explizit programmieren muss.
stärkenden Lernen interagiert ein Algo­ • Empfehlungssysteme: Unternehmen Allerdings gibt es im Umgang mit ma­
rithmus mit einer Umgebung und wird wie Netflix und Amazon nutzen maschi­ schinellem Lernen auch gewisse Heraus­
für bestimmte Aktionen belohnt oder nelles Lernen, um personalisierte Emp­ forderungen. Die Qualität und Verfügbar­
bestraft. Das Ziel besteht darin, eine opti­ fehlungen zu generieren, die auf den keit von Daten spielt eine entscheidende
male Handlungsstrategie zu entwickeln. ­individuellen Vorlieben und Verhaltens­ Rolle, da schlechte Daten zwangsläufig
Der Algorithmus lernt durch schlichtes weisen der Nutzer basieren. zu fehlerhaften Ergebnissen führen. Zu­
Ausprobieren. Er optimiert dabei seine • Medizin und Gesundheitswesen: In dem müssen Entscheidungen von Algo­
Strategie so, dass er möglichst viele Be­ der Medizin unterstützt maschinelles rithmen nachvollziehbar und erklärbar
lohnungen erhält. Verstärkendes Lernen Lernen Ärzte bei der Diagnostik, dem sein. Das gilt insbesondere bei ethisch
kommt häufig in der Robotik, bei auto­ Entdecken von Mustern in medizini­ sensiblen Anwendungen. (jcb) █

08.2023 www.linux-magazin.de 63
© liudmilachernetska / 123RF.com

Kernel- und Treiberprogrammierung mit Linux – Folge 128

Lücken stopfen
Es ist mühsam und zeitaufwendig, Sicherheitslücken im Auge zu behalten
und Systeme abzusichern. Der Vulnerability-Scanner von Buildroot hilft
beim Schwachstellenmanagement eines Eigenbau-Linux.
Eva-Katharina Kunst, Jürgen Quade
Kern-Technik Know-how

Die Bedrohung der Sicherheit durch An-


griffe auf IT-Systeme macht auch vor Li-
nux nicht halt. Das gilt speziell für Em-
bedded-Systeme, bei denen Linux Markt-
führer ist. Ein solches System umfasst
technisch ein Füllhorn unterschiedlicher
Komponenten. Als zentraler Dreh- und
Angelpunkt fungiert der Linux-Kernel
mit seinen Gerätetreibern (siehe Kasten
Linux-Kernel-Security). Darauf aufbauend
findet sich das Userland mit einem um-
fangreichen Softwaremix aus beispiels-
weise einer Shell, Bibliotheken, einem
Webserver oder einem DHCP-Client.
Tritt in einer der Komponenten eine
Schwachstelle zutage, gilt es, deren Rele-
vanz zu analysieren und abhängig vom
Ergebnis ein mit Patch aktualisiertes Sys-
tem zu generieren. Der Aufwand, es an-
schließend – idealerweise Over the Air 1 Die Ausgabe des Schwachstellenscanners von Buildroot.
(OTA) – zu verteilen, ist immens und setzt
die detaillierte Kenntnis der verbauten
Software voraus, insbesondere deren Eingebettete Systeme auf Linux-Basis heitslücken, die der NVD entstammen,
Version und Patchlevel. werden oft über System-Builder wie der National Vulnerability Database.
Getreu dem Motto „Augen zu und Build­root, Yocto oder OpenEmbedded Diese Datenbank betreibt das NIST,
durch“ ignorieren viele Hersteller die Pro- zusammengeschraubt. Während die bei- das National Institute of Standards und
blematik. Sie bauen und verkaufen frisch den letzten einen ausschweifenden Res- Technology der USA. Die NVD enthält
und fröhlich Systeme, ohne substanzielle sourcenhunger an den Tag legten, han- eine nach Schwere klassifizierte Samm-
Pflege zu betreiben. Beim Kunden ver- delt es sich bei Buildroot um einen sehr lung von Schwachstellen und Fehlkonfi-
richten die Geräte still vor sich hin wer- schlanken System-Builder, den beispiels- gurationen, die sich automatisiert und
kelnd brav ihre Arbeit, manchmal über weise auch Tesla und SpaceX einsetzen. 2
standardisiert abfragen lässt  . Die In-
Jahrzehnte, wenn man etwa an eine Hei- Mit der Version 2021.02 hat Buildroot halte werden im JSON-Format geliefert.
zungssteuerung denkt. Dabei geraten sie ein Vulnerability Management integriert
zunehmend in Vergessenheit. Gerade bei (siehe Kasten Vulnerability Manage-
Schwachstellen sammeln
vernetzten Systemen etablieren sich da- ment). Es untersucht automatisiert die
durch immer mehr Zeitbomben in den jeweilige Systemkonfiguration und er- Sicherheitslücken referenziert man über
Kellern, Häusern, Gebäuden, Produktions­ 1
stellt eine umfangreiche Tabelle  über eine CVE-Nummer (Common Vulnerabili-
anlagen und Unternehmen. Immerhin: die verwendeten Pakete, deren Lizenzen ties and Exposures). Sie besteht neben
Der Gesetzgeber fängt an, Druck auf die und den Softwarestand. Hinzu kommen dem Vorsatz CVE aus einer Jahresangabe
Hersteller aufzubauen . Informationen über bekannte Sicher- plus laufender vier- oder mehrstelliger

Linux-Kernel-Security
Eine Suche in der NVD des NIST nach „Linux hören Greg Kroah-Hartman, zweiter Mann ders kritischer Bugs können vor dem Publi-
Kernel“ förderte Ende April 2023 knapp 3500 hinter Linus Torvalds, sowie Sasha Levin als zieren über die ebenfalls private Mailing-Liste
seit 1999 aufgelaufene Einträge zutage. Die Maintainer der Long-Term-Support-Kernel- linux‑distros@vs.openwall.org disku-
Zahl erscheint angesichts des Zeitraums und Zweige (LTS). Dieses Linux Kernel Security tiert werden. Hier hören insbesondere Distri-
der Größe des Projekts nicht sonderlich dra- Team  koordiniert sich über die private Mai- butoren wie Debian, Ubuntu und Fedora mit.
matisch. Es kommt mehr auf die Zeit an, in ling-Liste security@kernel.org. Wer eine Patches stehen bei Linux also erfreulich zeit-
der bekannt gewordene Schwachstellen ge- Sicherheitslücke findet, sollte sie an diese nah zur Verfügung. Für den Administrator
stopft werden. Um eine schnelle Reaktion zu Liste schicken, was übrigens keine CVE-Anga- bleibt die Schwierigkeit, ein geeignetes Upda-
gewährleisten, hat Linux geeignete Struktu- be erfordert. Die Gruppe verifiziert die te-Fenster zu finden. Der Austausch eines
ren etabliert. Rund um den Kernel beschäftigt Schwachstelle, arbeitet an Patches und sorgt Kernels bedeutet ja normalerweise den Still-
sich eine Gruppe erfahrener Entwicklerinnen dafür, dass diese in den Kernel-Code einflie- stand des kompletten Systems. Linux wäre
und Entwickler mit dem Thema Sicherheit. Zu ßen. Dazu stimmt sie sich mit den Maintai- allerdings nicht Linux, wenn man nicht auch
den bekanntesten Personen der Gruppe ge- nern der jeweiligen Subsysteme ab. Beson- einen laufenden Kernel patchen könnte .

08.2023 www.linux-magazin.de 65
Know-how Kern-Technik

alles relativ dünn. Die NVD ergänzt daher


den CVE-Eintrag um einen CVSS Score
(Common Vulnerability Scoring System),
weitere Info-Links, eine Kategorisierung
der Schwachstelle (CWE, Common Weak-
ness Enumeration), ein Veröffentlichungs-
datum, Infos über die entdeckende Insti-
tution oder Person und potenziell existie-
rende Absicherungsmöglichkeiten  . 4
Gefahr berechnen
Der CVSS Score bewertet das Sicherheits-
risiko auf einer Skala von 0 bis 10 – je hö-
her die Zahl, desto schwerer die Lücke.
5
Wie Abbildung  zeigt, ist die Berech-
nung des Scores standardisiert und um-
fasst verschiedene Faktoren wie die An-
griffsquelle (Internet, lokales Netz, phy-
sisch vor Ort), die Angriffskomplexität
(niedrig, hoch) sowie die zur Aktivierung
notwendigen Rechte (keine, niedrig,
hoch). Außerdem erfasst der Score, ob
2 Bei der NVD handelt es sich um eine Art Google für die Schwachstellensuche. die Anwenderin oder der Anwender an
der Aktivierung beteiligt sein muss (ja,
nein), und wie sich ein Angriff auf Ver-
3
Zahl  . Diese Nummern darf nur eine das Recht bekommen, CVEs zu vergeben, traulichkeit, Integrität und Verfügbarkeit
CVE Numbering Authority (CNA) verge- ­allerdings nur für eigene Produkte. auswirkt. Zudem berücksichtigt die Be-
ben. Dazu gehört beispielsweise die Non- Neben einer Zusammenfassung der rechnung, ob ein Exploit bereits bekannt
Profit-Organisation MITRE Corporation, ­Sicherheitslücke enthält ein CVE-Eintrag oder sogar im Umlauf ist.
die unter anderem aus Mitteln der US-­ im Wesentlichen eine Liste der betroffe-
Sicherheitsbehörde CISA (Cybersecurity nen Software und deren Versionen, den
and Infrastructure Security Agency) finan- Ver­öffentlichungszeitpunkt sowie Links Vulnerability Management
ziert wird. Hersteller können ebenfalls zu weiteren Infos. Bis hierhin bleibt also
Ein Produkt oder eine IT-Infrastruktur auf
Schwachstellen zu überwachen und dieses
zu behandeln, um die Sicherheit der Syste-
me und Daten gewährleisten zu können,
bezeichnet man als Vulnerability Manage-
ment. Das Vulnerability Management redu-
ziert das Risiko, Opfer von IT-Sicherheits-
vorfällen zu werden. Neben der Überwa-
chung gehört auch die Reaktion auf er-
kannte Schwachstellen dazu. Im einfachs-
ten Fall hilft eine Konfigurationsänderung.
Daneben kommen Updates, das Einspielen
vorhandener Patches oder der Ersatz der
fehlerbehafteten Software durch eine pas-
sende Alternative infrage. Eventuell gilt es,
die Software komplett zu verbannen. Das
Vulnerability Management fällt nicht nur
bei den Herstellern von IT-Produkten an,
sondern ebenso bei den Betreibern. Letz-
tere können sich zum einen nicht darauf
verlassen, dass die Hersteller ihr Produkt
richtig pflegen, zum anderen obliegt ihnen
das Festlegen der Update-Fenster.
3 Für das Nummerieren von Schwachstellen gibt es den CVE-Standard.

66 www.linux-magazin.de 08.2023
Kern-Technik Know-how

Die CVEs enthalten die Information über 6


dukts  . Bereitgestellt werden die CPEs HTML-Datei und eines JSON-Files. Erstere
betroffene Softwareprodukte und deren wiederum durch das NIST. Die NVD sam- kann man leicht in einem Webbrowser
Version in Form sogenannter Common melt sämtliche CPEs und stellt die Quer- ansehen. Unten auf der Seite findet sich
Platform Enumerations. Diese ebenfalls verbindungen zu den CVEs her. zunächst eine generelle Statistik. Sie führt
standardisierten CPEs enthalten unter Für das Schwachstellenmanagement beispielsweise auf, wie viele Pakete up to
anderem den Namen des Herstellers so- erstellt Buildroot über den Aufruf make date oder eben in einer älteren Version
wie den Namen und die Version des Pro- pkg‑stats eine Übersicht in Form einer zum Einsatz kommen, wie viele Pakete

CVSS

DB
NVD
CVE
Beschreibung

Score
DB
CVE

Lösung Web

CWE

Software Konfiguration
CWE
CPE

DB

CPE

DB

4 Die NVD reichert CVE-Einträge zu Schwachstellen mit


vielen wertvollen Zusatzinfos an. 5 Der CVSS Score erfasst akribisch den Schweregrad einer Lücke.

AUSGABE VERPASST?
Alle Artikel
6,99 € zzgl. Versandkosten

des Jahrgangs 2022


(HTML + PDF) auf DVD
Mehr Infos unter:
shop.linux-magazin.de/jahres-dvd/2022

Bequem online Telefon: 0911 / 993 990 98 E-Mail: computec@dpv.de


bestellen: shop.linux-magazin.de/jahres-dvd/2022
Know-how Kern-Technik

wiesen auf unbekannte Lizenzen, veralte-


CPE-Version Hersteller Version Ausgabe
te Version oder dem Produkt nicht ein-
Sprache
SW-Ausgabe deutig zuzuordnende CPEs hin.
Tatsächlich sind zum einen die in Build­
root verwendeten Versionen nicht hun-
cpe:2.3:o:linux:linux_kernel:6.2:rc8:*:*:*:*:*:* dertprozentig konform zu den CPE-Ken-
nungen, zum anderen erweist sich das
CPE-Verzeichnis der NVD als unvollstän-
dig oder teilweise fehlerhaft. Buildroot
Hardware (h) Produkt Update Ziel-Software
Betriebssystem (o) Ziel-Hardware muss nämlich die CPE-Versionen selbst-
Anwendung (a) Sonstiges ständig generieren und leitet sie aus dem
Namen des Pakets respektive des Projekts
ab. Allerdings kann man durch Setzen
6 Die CPEs enthalten standardisierte Versionsinformationen. entsprechender Variablen dem Generie-
rungsalgorithmus unter die Arme greifen,
sodass die CPEs tatsächlich matchen.
von CVEs betroffen sind und wie vielen Rolle spielen, explizit aufgeführt werden. Die bis hierhin genannten Aspekte ge-
Paketen Lizenzinformationen fehlen  . 7 Als Letztes erscheint schließlich – falls nügen zur substantiellen Bewertung der
Ansonsten listet die Übersicht für jedes vorhanden – die zugehörige CPE ID. potenziellen Schwachstellen noch nicht.
einzelne Paket, ob eine Lizenzinformation Glücklicherweise tauchen in der HTML-
existiert und ob die Lizenz selbst beiliegt, Ausgabe die CVEs als anklickbarer Link
Rot bedeutet Gefahr
welche Version konfiguriert ist und ob es auf, der zum zugehörigen Datensatz
eine aktuellere Version gibt. Ein Link ver- Kritische Felder markiert Buildroot in der führt. Da aber die CVEs selbst keinen
weist auf die zur Software gehörende 1
HTML-Ausgabe rot. Abbildung  zeigt, CVSS Score enthalten, muss man sich–
Download-Quelle im Internet. Zudem fin- dass die Anzahl der roten Felder beträcht- ebenfalls per Klick auf einen Link – zur
den sich noch alle für das Produkt rele- lich ausfällt, wobei die Entwicklerin res- NVD weiterleiten lassen. Dort finden sich
vanten CVEs, wobei solche, die für die pektive der Entwickler jedes einzelne endlich die relevanten Informationen,
ausgewählte Version/​Konfiguration keine durchsehen müssen. Die roten Felder die es allerdings ab dieser Stufe mehr
oder minder händisch auszuwerten gilt:
Unter Umständen hat Buildroot die
Schwachstelle bereits gepatcht, und das
Vulnerability Management konnte dazu
keine Info finden.
Jetzt gilt es, geeignete Maßnahmen zu
ergreifen (sichere Konfiguration, Patch
einspielen, Software durch eine Alterna-
tive ersetzen oder abwählen), das System
neu zu generieren, es fürs Update freizu-
geben und es schließlich zu verteilen.

Eigenbau
Listing 1 fasst die notwendigen Arbeiten
zusammen, um sich mit überschaubarem
Aufwand selbst ein Bild von der Arbeits-

Dateien zum Artikel


herunterladen unter
www.lm-online.de/dl/48905

Weitere Infos und


interessante Links
www.lm-online.de/qr/48905
7 Statistische Informationen vermitteln einen ersten Überblick.

68 www.linux-magazin.de 08.2023
Kern-Technik Know-how

weise des Vulnerability Managements


und der Ausgabe zu machen.
Zunächst konfigurieren Sie auf einem
Ubuntu ein Buildroot-System, etwa für
eine ARM-64-Bit-Plattform (AArch64).
Dazu installieren Sie im Rahmen der
­Vorbereitung die Pakete flex, bison, build-
essentials, libncurses-dev, qemu, uml-utili-
ties, libssl-dev und python3-pip. Über den
Python-Installer Pip ziehen Sie dann die
Module aiohttp und ijson nach.
Per Git holen Sie sich zu guter Letzt
­Buildroot auf die eigene Maschine, konfi-
gurieren es für die ARM-64-Architektur
und rufen einmal die Konfigurations-
oberfläche per make menuconfig auf.
Hier können Sie noch Pakete an- oder
abwählen. Zum Verlassen drücken Sie
[Esc] und quittieren die Nachfrage Do
you wish to save your new configuration 8 Buildroot unterzieht ein selbst gebautes Linux einem Test.
mit Yes respektive durch einen Druck auf
die Eingabetaste. Das nachfolgende make
generiert ein Selbstbau-Linux. Pakete aus, erstellt die CPEs, erledigt den ten eine E-Mail versenden. Der nach­
Auf einem aktuellen Notebook müssen Abgleich über die NVD, evaluiert nützli- folgende Schritt, ein fehlerbereinigtes
Sie für diesen Vorgang eine gute Stunde che Zusatzinfos wie die Lizenzen und System zu bauen  und es als authenti-
einplanen. Buildroot lädt in dieser Zeit schreibt das Ergebnis in Form je einer fiziertes Update  an die betroffenen
die notwendigen Softwarepakete auf die HTML- und JSON-Datei ins Verzeichnis Kunden auszuliefern, ist alles andere als
Maschine, zieht eventuell notwendige output/. Das Ganze dauert typischer- trivial, wie wir bereits in früheren Folgen
Patches, generiert essenzielle Werkzeuge weise keine fünf Minuten. Die Datei dieser Kolumne thematisiert haben. Und
und erstellt schließlich die Systemkom- pkt‑stats.html sehen Sie sich im Web- dass nach einem Fehler vor einem Fehler
ponenten selbst. Diese schraubt es dann browser an, das Gegenstück pkt‑stats. ist, braucht man eigentlich nicht geson-
zum Gesamtsystem zusammen, das im json ermöglicht eine automatisierte dert zu erwähnen. (jlu) █
Verzeichnis output/images/ landet. Sie Weiterverarbeitung.
testen das System, indem Sie dort das Für ein Vulnerability Management
Skript start‑qemu.sh aufrufen  . 8 ­genügt es logischerweise nicht, diese Die Autoren
Statistik nur während der Systement-
Eva-Katharina Kunst ist seit den Anfängen
wicklung erstellen zu lassen und auszu-
Alter Verwalter von Linux Open-Source-Fan. Jürgen Quade,
werten. Vielmehr erfordert das Security
Da Sie sich für potenzielle Sicherheits­ Vulnerability Tracking eine periodische Professor an der Hochschule Niederrhein,
lücken interessieren, nehmen Sie durch Auswertung, die Sie beispielsweise per veranstaltet auch für Unternehmen Schu-
Aufruf von make pkg‑stats noch eine Cron einrichten. Ein mitgestartetes Skript lungen zu den Themen Treiberprogrammie-
Vulnerability-Analyse vor. Das gestartete könnte die JSON-Ausgabe nach relevan-
rung und Embedded Linux.
Python-Skript wertet die konfigurierten ten Änderungen scannen und bei Auftre-

Listing 1: Vulnerability Management mit Buildroot


### Benötigte Entwicklerpakete $ cd buildroot
$ sudo apt install build‑essentials python perl flex ### Selbstbau‑Linux konfigurieren
bison git libncurses‑dev qemu uml‑utilities
$ make qemu_aarch64_virt_defconfig
libssl‑dev python3‑pip
$ make menuconfig
### Schwachstellenmanagement
### System generieren
$ pip install aiohttp
$ pip install ijson $ make

### Buildroot installieren ### Selbstbau‑Linux starten


$ git clone git://git.buildroot.org/buildroot $ output/images/start‑qemu.sh

08.2023 www.linux-magazin.de 69
© Chris Up / Photocase.com
 Programmverhalten mit LD_PRELOAD ändern Der oberste Eintrag linux‑vdso.so.1
gehört zum Kernel. Der untere (ld‑li‑

Bitte abbiegen!
nux‑x86.64.so.2) ist der Programmlader
selbst, der die benötigten Dateien lädt.
Die wichtigsten Standardfunktionen,
etwa für den Dateizugriff, Prozess- und
Thread-Steuerung und auch alle Low-Le-
vel-System-Call-Wrapper finden sich in
Linux-Programme nutzen zahlreiche von Bibliotheken bereit- libc.so.6. Programme, die die grafische
Oberfläche (also meist das X-Window-
gestellte Features. Mit ein wenig C-Code ersetzen Sie über die System X11) nutzen, laden zudem die
X11-Bibliothek libX11.so.6.
Variable LD_PRELOAD Bibliotheksfunktionen durch eigene und Eine der Dateien in der Bibliotheksliste
ist libc.so.6, eine GNU-C-Bibliothek .
­ändern so das Programmverhalten. Hans-Georg Eßer Sie bringt zahlreiche häufig benötigte
Funktionen mit, darunter open(), read(),
write() für den Low-Level-Zugriff auf
Dateien, malloc() für die dynamische
Möchten Sie herausfinden, welche Da- zess und lädt die ausführbare Programm- Speicherverwaltung, printf() für die
teien ein Programm öffnet und welche datei in dessen Speicherbereich. Das ist formatierte Ausgabe von Daten und
Netzwerkverbindungen es aufbaut? Mit aber meist nicht alles: Programme nut- exit() zum Beenden des Programms.
einem Trick lassen sich Standardfunktio- zen in der Regel Bibliotheken, die dyna- Starten Sie ein grafisches Programm,
nen wie das Öffnen von Dateien oder das misch hinzugeladen werden. Welche da- kommen noch zahlreiche weitere Biblio-
Lauschen auf einem TCP-Port durch selbst von eine Applikation lädt, erfahren Sie theken hinzu. So listet der Aufruf von ldd
programmierte Versionen ersetzen, die 1
über das Kommando ldd  . „Echte“ Bib- /usr/bin/gedit auf Ubuntu 22.04 bei-
nicht nur protokollieren, was die Anwen- 1
liotheken sind in Abbildung  nur die spielsweise 80 Bibliotheken auf, die der
dung tut, sondern auf Wunsch sogar das Einträge libselinux.so.1 (Unterstüt- Gnome-Editor benötigt.
Verhalten verändern. Den Schlüssel dazu zung für die Sicherheitserweiterung SELi- Eine komplette Liste aller sogenannten
bietet die Variable LD_PRELOAD, die den nux), libc.so.6 (die Standard-C-Biblio- Symbole, die eine Bibliothek bereitstellt,
Linux-Programmlader beeinflusst. thek) und libpcre2‑8.so.0 (Funktionen, rufen Sie mit readelf ab. So zeigt der
Wenn Sie ein Programm starten, er- mit denen ein Programm reguläre Aus- Aufruf aus Listing 1 zum Beispiel die mit
zeugt der Linux-Kernel einen neuen Pro- drücke verarbeiten kann). über 3000 Einträgen sehr lange Liste der

70 www.linux-magazin.de 08.2023
LD_PRELOAD Know-how

Symbole der Standard-C-Bibliothek an.


Nicht alle Einträge stehen für Funktio-
nen: Zu den Symbolen gehören auch
globale Variablen und Konstanten.

Statisch gelinkt
Bei manchen Programmdateien listet
Ldd keine Bibliotheken auf, sondern gibt 1 Der Kommandozeilenaufruf ls nutzt nur einige wenige Bibliotheken.
die Fehlermeldung Das Programm ist
nicht dynamisch gelinkt aus. Solche Pro-
gramme startet Linux ohne das Laden bereits bekannte Standard-C-Bibliothek. Diese Flexibilität ermöglicht unter ande-
zusätzlicher Dateien. Wenn Sie ein C-Pro- Nur die dynamische Version des Pro- rem, verschiedene Versionen einer Biblio-
gramm mit Gcc übersetzen, erzeugen Sie gramms öffnet die beiden Dateien. Die thek zu installieren und dann für einzelne
über die Option ‑static eine solche sta- statische dagegen enthält schon alles an Anwendungen einzustellen, welche da-
tisch gelinkte Binärdatei. Code, was sie braucht. Unten im Bild fol- von sie verwenden. Am grundsätzlichen
2
Abbildung  zeigt einige Experimente gen noch Testaufrufe der beiden Pro- Ablauf ändert sich dadurch nichts: Der
mit einem kleinen C-Programm. Oben gramme; sie arbeiten identisch. Loader prüft, welche Bibliotheken ein
sehen Sie den Quellcode. Das Programm Programm benötigt, sucht diese in den
gibt Hello world und – falls vorhanden – vorgesehenen Ordnern und lädt sie.
Eingriff
das erste Aufruf-Argument aus. Um die Ein besonderes Ladeverhalten erzielen
Funktion printf() aus der Standard­ Der Programmstart lässt sich unter Linux Sie mit der Variablen LD_PRELOAD: Hier
bibliothek zu nutzen, bindet der Code feintunen. Insbesondere können Sie fest- tragen Sie einzelne Bibliotheken ein, die
die Header-Datei stdio.h ein. legen, wo der Programmlader ld‑li‑ der Loader zusätzlich laden soll. Sie kön-
Die beiden Gcc-Aufrufe erzeugen eine nux‑x86‑64.so.2 nach Bibliotheken nen auch Funktionen enthalten, die be-
dynamisch (test‑printf‑dynamic) und sucht. Das klappt entweder über eine reits in einer der regulären Bibliotheken
eine statisch (test‑print‑static) gelink- feste Systemeinstellung in der Konfigura- vorkommen. Über diesen Mechanismus
te Version des ausführbaren Programms. tionsdatei /etc/ld.so.conf und weitere lässt sich beispielsweise eine einzelne
Beachten Sie den Größenunterschied: Dateien im Ordner /etc/ld.so.conf.d/ ­Bibliotheksfunktion durch eine selbst
Das dynamisch gelinkte Binary belegt (in diesen Dateien stehen Verzeichnisse, entwickelte Variante ersetzen.
etwa 16 KByte, während die statische Ver- die Bibliotheken enthalten) oder über die
sion etwa 900 KByte groß ist, weil sie Umgebungsvariable LD_LIBRARY_PATH:
Logger
auch die Bibliotheksfunktionen enthält. In ihr geben Sie zusätzliche Ordner mit
Die beiden Aufrufe von Strace prüfen, Bibliotheken an, in denen der Loader Als erstes, einfaches Beispiel für den Ein-
welche Dateien während des Starts und dann mit Priorität sucht. satz von LD_PRELOAD erstellen Sie eigene
der Ausführung des Programms geöffnet
werden. Die Datei /etc/ld.so.cache
enthält eine Liste aller Bibliotheken, die Listing 1: Symbole
bei Programmstarts automatisch gela-
$ readelf ‑Ws /lib/x86_64‑linux‑gnu/libc.so.6
den werden können, libc.so.6 ist die

Listing 2: openclose.c
01 
#define _GNU_SOURCE 11  true_open = dlsym (RTLD_NEXT, "open");
02 
#include <dlfcn.h> 12  int fd = true_open (pathname, flags, mode);
03 
#include <unistd.h> 13  printf ("DEBUG: open(\"%s\") = %d\n", pathname,
fd);
04 
#include <stdio.h>
14  return fd;
05 
#include <stdarg.h>
15 }
06 
16 
07 
int (*true_close)(int fd);
17 
int close(int fd) {
08 i
nt (*true_open)(const char *pathname, int flags,
va_list mode); 18  true_close = dlsym (RTLD_NEXT, "close");

09  19  printf ("DEBUG: Closing fd = %d\n", fd);


20  return true_close(fd);
10 i
nt open (const char *pathname, int flags,
va_list mode) { 21 }

08.2023 www.linux-magazin.de 71
Know-how LD_PRELOAD

Varianten der System-Call-Wrapper Um die Funktionen dann auch aufrufen verantwortlichen Stelle zu suchen, oder
open() und close(). Listing 2 zeigt den zu können, definiert der Code in den Zei- er ist nicht verfügbar. Ersatzweise über-
kompletten Code der Datei openclose.c, len 7 und 8 zwei Variablen, die vom rich- prüfen Sie mit Strace oder Ltrace (siehe
die Sie mit dem Kommando aus Listing 3 tigen Funktionstyp sein müssen. Nach Kasten Strace und Ltrace), in welcher Rei-
in eine Bibliotheksdatei openclose.so den Zuweisungen in Zeile 11 und 18 ist henfolge das Programm zum Beispiel
übersetzen. Beide Funktionen geben mit es dann möglich, true_open() und versucht, Dateien zu öffnen oder Netz-
printf() eine Debug-Meldung auf der true_close() aufzurufen. werkverbindungen aufzubauen.
Konsole aus und erledigen ansonsten Ein beliebiges Programm lassen Sie Auf diese Weise stellt sich vielleicht he-
ihre Aufgaben, indem sie die regulären nun mit diesen veränderten Dateizu- raus, dass ein Programm in einer globa-
Versionen von open() und close() auf- griffsfunktionen laufen, indem Sie dem len Konfigurationsdatei Informationen
rufen. Das gelingt über einen Trick. Programmaufruf die Variablenzuweisung findet, mit denen es nicht zurecht-
Die Funktion dlsym() findet Biblio- LD_PRELOAD=Pfad/zur/Bibliothek vor- kommt. Sie möchten aber die globale
theksfunktionen über deren Namen. Dar- anstellen, wobei Sie den Pfad absolut an- Datei nicht verändern, weil andere An-
um lautet der zweite Aufrufparameter in geben müssen (Listing 4). wendungen auch darauf zugreifen und
Zeile 11 und Zeile 18 "open" respektive diese Informationen benötigen.
"close". Das würde eigentlich Zeiger auf Hier hilft es, exklusiv für das problema-
Verhalten anpassen
die hier implementierten Versionen zu- tische Programm den Zugriff auf eine
rückliefern, also nicht weiterhelfen. Über Typisch für den Einsatz von LD_PRELOAD ­andere Datei umzubiegen, die Sie mit
den Parameter RTLD_NEXT lässt sich aber ist das folgende Szenario: Sie beobach- passendem Inhalt füllen, sodass das Pro-
jeweils der erste Treffer überspringen. ten in einer Ihrer Anwendungen ein un- gramm korrekt arbeitet. Dazu passen Sie
Die fortgesetzte Suche nach den Funk­ erwünschtes Verhalten, das Sie ändern die Funktion open() so an, dass sie jeden
tionsnamen findet dann die Implemen- möchten. Der Quellcode ist aber zu kom- Versuch, eine bestimmte Datei zu öffnen,
tierungen in der Standardbibliothek. plex, um dort nach der für das Problem einfach mit dem Öffnen der Alternativ-
datei quittiert. Listing 6 zeigt, wie Sie alle
Versuche, die Datei /etc/fstab zu öff-
Listing 3: openclose.c übersetzen nen, auf /tmp/fstab.test umbiegen.
$ gcc openclose.c ‑o openclose.so ‑fPIC ‑shared ‑ldl
Die neue Fassung von open() erzeugt
zum angegebenen Dateinamen zu-
nächst mit realpath() eine absolute
Pfadangabe. open() lässt sich auch mit
relativen Pfaden aufrufen, die je nach
­Arbeitsverzeichnis dann sehr unter-
schiedlich aussehen können. Das Um-
wandeln stellt sicher, dass nur ein einzi-
ger Pfad zu prüfen ist. Die Funktion
strncmp() vergleicht den Pfad dann mit
einem Suchbegriff (in unserem Beispiel:
/etc/fstab) und ersetzt ihn bei einem
Treffer durch den Namen der alternati-
ven Datei (/tmp/fstab.test).
Danach geht es wie gewohnt weiter,
true_open() öffnet die Datei. Der Aufruf
von free() am Ende ist notwendig, weil
longpath() Speicher fürs Ablegen der
Pfadangabe reserviert hat. Den sollte

Listing 4: Variablenzuweisung
$ cat test.txt
Hello
$ LD_PRELOAD=$PWD/openclose.so \
cat test.txt
DEBUG: open("test.txt") = 3
Hello
2 Da sie alle notwendigen Bibliotheken selbst mitbringen, fallen sta- DEBUG: Closing fd = 3
tisch gelinkte Binaries deutlich größer aus als dynamisch gelinkte.

72 www.linux-magazin.de 08.2023
LD_PRELOAD Know-how

man wieder freigeben, bevor man die Zugriffsverbot ENOENT steht für „Datei oder Verzeichnis
Funktion verlässt. Auch hier übernimmt nicht gefunden“. Die Definitionen für
das Kompilieren wieder ein Einzeiler (Lis- Statt den Dateizugriff umzubiegen, kann Fehlercodes finden Sie in errno‑base.h
ting 7, erste Zeile). die Problemlösung auch darin liegen, und errno.h im Ordner /usr/include/
Wenn Sie jetzt mit dem Aufruf aus der den Zugriff komplett zu verbieten. Dazu asm‑generic/, sodass Sie auch andere
zweiten Zeile eine Datei erzeugen und brechen Sie in bestimmten Fällen ohne Codes auswählen können.
mit Cat und der über LD_PRELOAD akti- Aufruf der Originalfunktion ab, setzen Wenn Sie die Zugriffssperre mit ande-
vierten Bibliothek auf /etc/fstab zugrei- die globale Fehlervariable errno und ge- ren Programmen testen, dann fällt Ihnen
fen, öffnen Sie stattdessen die in /tmp er- ben den Exit-Code ‑1 zurück. vielleicht auf, dass einige Editoren wie
stellte Datei (letzte Zeile). Listing 8 zeigt den Code, über den Vim, Mcedit oder Nano ebenfalls am Zu-
open() beim Zugriff auf die Datei /etc/ griff gehindert werden, Gedit aber die
fstab mit dem Fehlercode ENOENT und Datei öffnen kann. Eine Analyse mit
Strace und Ltrace dem Exit-Code ‑1 abbricht. Der Versuch, ­Strace zeigt, dass dieser Editor Dateien
die Datei mit der Filesystem-Tabelle zu nicht mit open() öffnet, sondern mit
Mit den Kommandozeilentools Strace und
öffnen, führt dann gewünscht zum Pro- openat. Dafür gilt es, eine alternative Im-
Ltrace aus den meist vorinstallierten Pake-
grammabbruch (Listing 9). plementierung bereitzustellen.
ten strace und ltrace überwachen Sie ei-
nen Prozess bei der Ausführung und lassen
dabei bestimmte Ereignisse protokollieren.
Listing 5: Strace und Ltrace
Strace kümmert sich um System Calls,
also Aufforderungen an den Linux-Kernel, $ strace ‑o prog.log ‑e trace=open,openat,close prog
eine Kernel-Aufgabe für den Prozess zu er- $ ltrace ‑x open+openat+close prog
ledigen: Dateien öffnen, daraus lesen, Da-
teien schließen.
Um sämtliche System Calls eines Pro- Listing 6: openother.c
gramms prog zu protokollieren, starten
#define _GNU_SOURCE
Sie es mit strace ‑o prog.log prog
und eventuellen Aufrufparametern für #include <dlfcn.h>
prog. Das Protokoll landet dann in prog. #include <stdio.h>
log. Die so erstellte Liste gestaltet sich #include <limits.h>
aber sehr unübersichtlich, weil ein typi- #include <stdlib.h>
sches Programm in kurzer Zeit sehr viele
#include <string.h>
System Calls ausführt. Besser ist es, nur
#define SEARCH_PATH "/etc/fstab"
bestimmte Aufrufe zu loggen. Dafür gibt es
die Option ‑e trace=. Mit dem Aufruf aus #define REPLACE_PATH "/tmp/fstab.test"
der ersten Zeile von Listing 5 sehen Sie
beispielsweise nur die Aufrufe der System int (*true_open)(const char *pathname, int flags, va_list mode);
Calls open, openat und close.
Lassen Sie den Schalter ‑o weg, erscheint int open (const char *pathname, int flags, va_list mode) {
die Ausgabe im Terminal. Das ist jedoch true_open = dlsym (RTLD_NEXT, "open");
nur bei Programmen mit wenig eigenen
char *longpath = realpath (pathname, NULL);
Ausgaben oder bei grafischen Anwendun-
gen sinnvoll, weil sonst die Ausgaben des if (!strncmp (longpath, SEARCH_PATH, PATH_MAX))
Programms und die von Strace gemischt pathname = REPLACE_PATH;
erscheinen. Eine ausführlichere Bespre- int fd = true_open (pathname, flags, mode);
chung der Möglichkeiten von Strace finden free (longpath);
Sie in einem älteren Artikel . return fd;
Ltrace  leistet für Bibliotheksaufrufe, }
was Strace für System Calls tut: So zeigt
etwa der Aufruf aus der zweiten Zeile von
Listing 5 alle Funktionsaufrufe von
open(), openat() und close() an. Die Listing 7: Tests
Informationen ähneln jenen von Strace, $ gcc openother.c ‑o openother.so ‑fPIC ‑shared ‑ldl
aber hier geht es um Bibliotheksfunktio- $ echo "Das ist nicht /etc/fstab" > /tmp/fstab.test
nen wie open(), die gleichnamige System $ LD_PRELOAD=$PWD/openother.so cat /etc/fstab
Calls (open, ohne Klammern) aufrufen. Das ist nicht /etc/fstab

08.2023 www.linux-magazin.de 73
Know-how LD_PRELOAD

Mehr Beispiele
Einige weitere mögliche Anwendungen
finden Sie auf der Github-Seite Awesome
LD_PRELOAD . Mit Faketime gaukeln
Sie Prozessen beispielsweise eine abwei-
chende Systemzeit und damit insbeson-
3
dere ein anderes Datum vor . Das
­erweist sich etwa als nützlich, wenn Sie
ein Programm starten möchten, dessen
Nutzungslizenz abgelaufen ist.
Die Änderung gilt dabei nur für Pro­
zesse, die von Faketime gestartet wer-
den. Das Tool lädt über LD_PRELOAD eine
Bibliothek, die verschiedene Funktionen
austauscht, darunter time(), ftime()
und gettimeofday().
Die Bibliothek Stderred (der Name
setzt sich aus der Bezeichnung stderr für
3 Dank Faketime ist es auf der rechten Uhr schon 2,5 Stunden später als auf der linken. die Standardfehlerausgabe und der Far-
be „red“ zusammen) färbt im Terminal
alle Ausgaben, die ein Prozess über die
Listing 8: dontopen.c Standardfehlerausgabe erzeugt, rot ein.
#define _GNU_SOURCE
So lassen sich Fehlermeldungen leicht
von anderen Ausgaben unterscheiden.
#include <dlfcn.h>
Fsatrace beobachtet Dateizugriffe und
#include <stdio.h> erkennt dabei neben Lese- und Schreib-
#include <limits.h> zugriffen auch Verschieben, Löschen und
#include <stdlib.h> Statusabfragen. Dasselbe Verhalten lässt
#include <string.h> sich aber alternativ auch mit Strace prob-
lemlos erreichen.
#include <errno.h>

#define SEARCH_PATH "/etc/fstab"


Fazit
Ihrer Kreativität sind beim Einsatz von
int (*true_open)(const char *pathname, int flags, va_list mode); LD_PRELOAD so gut wie keine Grenzen
gesetzt: Finden Sie häufig genutzte
­Bibliotheksfunktionen heraus, schreiben
int open (const char *pathname, int flags, va_list mode) {
Sie einen Wrapper dafür und bauen Sie
true_open = dlsym (RTLD_NEXT, "open"); dort kleine Veränderungen ein. Wenn Sie
char *longpath = realpath (pathname, NULL); die Variable in einer Shell definieren und
int check = strncmp (longpath, SEARCH_PATH, PATH_MAX); exportieren, dann gilt sie in allen Prozes-
free (longpath); sen, die Sie von dort aus starten, ohne
dass Sie jedem Befehl die Definition vor-
if (!check) {
anstellen müssen. (jlu) █
errno = ENOENT; // Datei nicht gefunden
return ‑1;
} Dateien zum Artikel
return true_open (pathname, flags, mode); herunterladen unter
} www.lm-online.de/dl/49437

Listing 9: Programmabbruch Weitere Infos und


$ LD_PRELOAD=$PWD/dontopen.so cat /etc/fstab
interessante Links
cat: /etc/fstab: Datei oder Verzeichnis nicht gefunden www.lm-online.de/qr/49437

74 www.linux-magazin.de 08.2023
© Oleksandr Lutsenko / 123RF.com
Sicherheitsforscher von Doctor Web
entdeckten kürzlich eine neue Android-
Spyware , die Informationen über ge-
speicherte Dateien sammelt und an ent-
fernte Angreifer überträgt. Zudem kann
die Spyware den Inhalt des Zwischen-
speichers (Clipboard) modifizieren oder
auf einen Remote-Server hochladen. Das
ist besonders kritisch, weil dieser Spei-
cher beispielsweise Passwörter oder Kre-
ditkarteninformationen enthalten kann.
Doctor Web hat die Spyware auf den Na-
men Android.Spy.SpinOk getauft.
Die Spyware ist als harmloses Software
Development Kit (SDK) für das Marketing
getarnt. Entwickler können das SDK in
verschiedene Arten von Apps oder Spie-
len integrieren, einschließlich solcher,
die auf Google Play erhältlich sind. Im
Hintergrund führt das SDK eine Reihe
schädlicher Aktivitäten aus, von denen
weder der Benutzer noch der Entwickler
etwas mitbekommen.
Nach der Initialisierung verbindet sich
das SDK zunächst mit einem Command-  Android-Spyware als SDK getarnt
and-Control-Server (CC). Die aktuelle Ad-

Gut getarnt
resse des CC-Servers erhält das SDK über
eine Anfrage an https://​­d3hdbjtb1686tn.​
­cloudfront.​­net/​­gpsdk.​­html. Die Antwort
auf diesen Request enthält im X-Origin-
Header dann die aktuelle Adresse eines
aktiven CC-Servers wie beispielsweise
https://​­s.​­hisp.​­in. Eine neue Android-Spyware hat sich in zahlreichen Apps des
Anschließend sendet das SDK über die
Anfrage https://​­s.​­hisp.​­in/​­v1/​­spin/​­init eine Google Play Store eingenistet und lässt Angreifer Dateien des
große Menge technischer Informationen
über das infizierte Gerät an den CC-Ser- Android-Geräts auslesen. Mark Vogelsberger
ver. Das umfasst Daten von Sensoren wie
dem Gyroskop oder dem Magnetometer,
die helfen können, eine Emulatorumge- Zugriff auf die ­Methoden in den Klassen Das Aufrufen dieser Methoden ermög-
bung zu erkennen. Damit wollen die Ent- com.spin.ok.gp.web.BaseJsInterface licht es dem Angreifer, vertrauliche Infor-
wickler des Spyware-SDK offenbar aus- und com.spin.ok.gp.code. Dadurch mationen und Dateien vom Gerät des
schließen, dass Sicherheitsforscher den kann das ­Trojaner-SDK in den geladenen Nutzers zu erhalten.
Trojaner in einem geschützten Environ- Webseiten eine Reihe von sicherheitskri- Die Spezialisten von Doctor Web fan-
ment genauer analysieren können. tische Methoden ausführen, um den das Trojaner-SDK und mehrere Vari-
Des Weiteren erhält das schädliche • eine Liste der Dateien in bestimmten anten davon in einer Reihe von via Goo-
SDK vom ­CC-Server eine Liste von URLs, Verzeichnissen zu erhalten (Methode gle Play ausgelieferten Apps. Einige von
die es dann in Webview öffnet, um Wer- listFiles()), ihnen enthalten bis heute schädliche
bebanner ­an­zuzeigen. Zu diesem Web- • Dateien zu lesen (Methode getFile- SDKs, andere waren nur in bestimmten
view fügt das SDK ein Javascript-Inter- Content()), Versionen betroffen oder wurden aus
face hinzu. Diese Schnittstelle erlaubt • die Präsenz einer bestimmten Datei dem Katalog entfernt. Insgesamt wurde
oder eines Verzeichnisses zu überprü- die Spyware in 101 Apps mit mindestens
fen (Methode fileExist()), 400 Millionen Downloads entdeckt.
Weitere Infos und • den Zwischenspeicherinhalt zu kopie- Betroffen sind unter anderem die fol-
interessante Links ren (Methode readClipboard()) und genden Apps: Noizz, Zapya, VFly, MVBit,
www.lm-online.de/qr/48708 • den Zwischenspeicherinhalt zu verän- Biugo, Crazy Drop, Cashzine, FizzoNovel,
dern (Methode writeClipboard()). CashEM und Tick. (jcb) █

08.2023 www.linux-magazin.de 75
© Fisher Photostudio / 123RF.com

 Microsofts quelloffener Paketmanager Vcpkg für C- und C++-Bibliotheken

Alles bestens verpackt


Paketmanager zum Verwalten von Bibliotheken und deren Abhängigkeiten gehören zum Werk-
zeugkasten moderner Sprachen wie C/​C++. Hier zeichnet sich Microsofts Paketmanager Vcpkg
durch Plattformunabhängigkeit und einfache Bedienung aus. Paul Büchner, Carsten Zerbst

Kaum ein Entwickler schreibt den kom- die Paketbeschreibung, zweitens die
pletten Quelltext einer Anwendung. Fer- ­Bibliotheksdatei. Die Paketbeschreibung
tige Bibliotheken für Logging, Daten- enthält neben dem Namen und der Ver-
bankzugriff oder einen Geometrie-Kernel sion der bereitgestellten Bibliothek eine
beschleunigen die Lösungsentwicklung. Aufzählung der weiteren benötigten
Die Autoren Das setzt voraus, dass Compiler und Lin- ­Bibliotheken. Die Bibliotheken selbst lie-
ker auf die Header-Dateien und DLLs der gen abhängig von der genutzten Spra-
Paul Büchner ist Entwickler mit Schwer-
direkt oder indirekt verwendeten Biblio- che zum Beispiel als Java-Archiv, C#-DLL
punkt auf Web- und CAD-Software. Carsten
theken zugreifen können. Werkzeuge oder Javascript-Datei vor. Beide Datei­
Zerbst erstellt Software für Ingenieure vom
wie Maven für Java oder Nuget für C# lö- typen werden in der Regel auf zentralen
einfachen Konverter bis hin zur unterneh-
sen die Aufgabe sehr elegant: Sie laden Servern wie Maven Central  oder Nu-
menskritischen Integrationslösung. Er
beim Bauen die angegebenen Bibliothe- get.org  zum Download bereitgestellt.
sucht für sein Team noch Verstärkung für
ken aus dem Internet und lösen ihre Zur eigenen Anwendung wiederum
abwechslungsreiche Tätigkeiten mit Java,
transitiven Abhängigkeiten auf. gehört eine Paketbeschreibung, die die
C# oder C++ in Hamburg und bietet The-
Solche Paketmanager verwenden dazu benötigten Bibliotheken aufzählt. Der
men für Bachelor- und Master-Arbeiten an.
zwei verschiedene Dateitypen: erstens Paketmanager lädt dann vor dem Kompi-

76 www.linux-magazin.de 08.2023
Vcpkg Programmieren

Entwicklermaschine Registry (Github) Bibliotheksquellcode


Projekt Local Cache vcpkg Projekt Quellen
src 00 ports src
CMakeLists.txt 02 Projekt CMakeLists.txt
vcpkg.json 3d vcpkg.json
portfile.cmake

Projekt Abhängigkeit Abhängigkeit Abhängigkeit Abhängigkeit


auswerten verfügbar nein auswerten laden bauen und cachen
Vcpkg starten
ja

Projekt
bauen

1 Auf den ersten Blick aufwendig, aber letztlich hocheffizient: Die internen Schritte zum Bauen von Bibliotheken in Vcpkg.

lieren die darin angeforderten Paketbe- und der Bibliotheken bereitstellen und Start liest der Paketmanager das Manifest
schreibungen und Bibliotheksdateien gegen Spyware sichern zu müssen. des Projekts, ermittelt die vom Projekt be-
vom zentralen Server. Er kümmert sich 1
Abbildung  stellt den Ablauf hinter nötigten Abhängigkeiten und sucht sie
um das Auflösen transitiver Abhängig- den Kulissen bei Vcpkg dar. Nach dem im Cache. Steht eine Abhängigkeit noch
keiten, bevor der Übersetzungsvorgang nicht bereit, liest er deren Manifest aus
unter Verwendung der nun lokal vorlie- der Registry und lädt die Projektquellen
genden Bibliotheksdatei startet. Listing 1: Manifest-Datei für Fmt herunter. Anschließend baut er die Biblio-
{
thek und speichert sie im Cache. Nach-
dem das für alle direkten und indirekten
Eigene Wege "name": "fmt",
Abhängigkeiten erfolgt ist, kann das Pro-
Im C++-Umfeld erfolgte die Verwaltung "version": "9.1.0", jekt selbst gebaut werden.
von Bibliotheken und deren Abhängig- "port‑version": 1, Bezüglich des Caches gibt es zwei
keiten meist manuell, bis sich in den letz- "description": "Formatting ­Optionen: Der Classic-Modus verwendet
ten Jahren auch hier Lösungen etablie- library for C++. ... ", einen zentralen Ablageort für alle Projek-
ren konnten. Eine davon ist Vcpkg , "homepage": "https://GitHub.com/ te, im Manifest-Mode gibt es einen ge-
eine bei Microsoft entwickelte Open- fmtlib/fmt", sonderten Ablageort für jedes Projekt.
Source-Lösung, die unter der MIT License Um Konflikte zwischen den Abhängig-
"license": "MIT",
auf Github zur Verfügung steht . Sie keiten verschiedener Projekte zu vermei-
"dependencies": [
funktioniert als eigenständiges Werk- den, empfiehlt sich in der Regel die Ver-
zeug, lässt sich aber problemlos auch in { wendung des Manifest-Modus.
gängige Build-Systeme wie Cmake oder "name": "vcpkg‑cmake", Das Manifest einer Bibliothek besteht
Msbuild integrieren. "host": true mindestens aus einer Datei namens
Vcpkg baut die Libraries auf dem Ent- vcpkg.json. Listing 1 zeigt ein Beispiel
},
wicklungsrechner aus den Quellen. für die Fmt-Library . Diese Datei ent-
{
Grund dafür ist die Vielzahl an Plattfor- hält neben dem Namen der Bibliothek
men und Compilern. Sie macht es "name": "vcpkg‑cmake‑config", vor allem eine Aufzählung der benötig-
schwierig, fertig kompilierte Bibliotheken "host": true ten Abhängigkeiten. Sowohl die Gültig-
für alle Kombinationen zentral vorzuhal- } keit als auch die Abhängigkeiten der Bib-
ten. Zudem umgeht man so das Prob- ] liothek lassen sich bei Bedarf auf be-
lem, einen jederzeit verfügbaren Server stimmte Plattformen einschränken. Kom-
}
zum Download der Paketbeschreibung plexere Fälle, wie die Notwendigkeit an-

08.2023 www.linux-magazin.de 77
Programmieren Vcpkg

derer Repositories zum Auflösen von Ab- es die Vcpkg-Toolchain zum Laden und mandozeilenoptionen und zum elegan-
hängigkeiten, erzwingen zusätzliche In- Kompilieren der benötigten Bibliotheken ten Formatieren von Zeichenketten.
formationen in der optionalen Datei nutzt. Wie Zeile 6 demonstriert, müssen
vcpkg‑configuration.json. In Listing 2 Sie dabei die entsprechende Cmake-Op-
Paketsammlung
finden Sie ein Beispiel für ein zugehöri- tion setzen. Dasselbe gilt analog auch
ges Cmake-File. bei der Verwendung einer IDE. Abbil- Auf der Webseite von Vcpkg findet sich
2
dung  zeigt den entsprechenden Ein- unter Packages eine Suchfunktion, um
trag für Clion. Danach heißt es beim ers- die richtigen Namen für die Paketbe-
Schritt für Schritt
ten Mal warten, denn nun löst Vcpkg die schreibungseinträge zu finden. Unter
Die Verwendung des Paketmanagers für vom Beispielprogramm angeforderten den gut 2000 Bibliotheken sollte sich für
eigene Programme gestaltet sich ver- Abhängigkeiten in der Registry auf, lädt die meisten Aufgaben eine Lösung fin-
gleichsweise einfach. Auf der Github-Sei- deren Quellen herunter und kompiliert den lassen. Alternativ suchen Sie die
te von Vcpkg  findet sich ein komplet- sie. Bei umfangreichen Dependencies ­Bibliotheken über den Kommandozeilen-
tes Beispiel. Die Schritte zum Kompilieren nimmt das – abhängig von der Rechen- aufruf vcpkg search.
auf der Kommandozeile fasst Listing 3 leistung des Systems – unter Umständen Nach dem Kompilieren der benötigten
­zusammen. Die Kommandos aus den ers- einige Zeit in Anspruch. Bibliotheken können Sie im nächsten
ten beiden Zeilen laden Vcpkg und das Als Lohn der Mühe finden sich an- Schritt Ihr Programm mit Cmake kompi-
Beispielprogramm von Github. Um den schließend im Cache-Verzeichnis die lieren und gegen die eben erstellten
Paketmanager vor der ersten Verwen- Header-Dateien sowie die kompilierten ­Bibliotheken linken (Listing 3, Zeile 7).
dung zu initialisieren, wechseln Sie in Binaries der angeforderten Bibliotheken. Das erfordert in der Cmake-Datei (Lis-
dessen Verzeichnis und rufen das Skript Die benötigten Bibliotheken führt die Pa- ting 2) keinerlei Änderungen gegenüber
bootstrap‑vcpkg.sh auf (Zeile 3 und 4). ketbeschreibung des Programms auf. Im einer Version für lokal installierte Libra-
Anschließend rufen Sie im Ordner des Beispiel aus Listing 4 handelt es sich um ries – vorausgesetzt, die Bibliotheken las-
Beispielprogramms Cmake so auf, dass je eine Library zur Behandlung von Kom- sen sich mit Cmake finden.

Fazit und Ausblick


Listing 2: Cmake-Datei (Beispiel)
cmake_minimum_required(VERSION 3.25)
Insgesamt bekommen Sie mit Vcpkg eine
recht schlanke Lösung, um zusammen
set(VCPKG_EXAMPLE_VERSION 0.1.0)
mit Cmake Ihre Quelltexte auf verschie-
project(vcpkg‑example VERSION ${VCPKG_EXAMPLE_VERSION} LANGUAGES CXX) denen Plattformen zu kompilieren. Eine
# Dependencies aufwendige Installation der benötigten
find_package(fmt CONFIG REQUIRED) Bibliotheken in der passenden Version
find_package(Boost REQUIRED COMPONENTS program_options) können Sie sich somit sparen, da Vcpkg
sie jeweils lokal baut.
# Set libs to link against
Fairerweise muss man aber auch den
list(APPEND VCPKG_EXAMPLE_LIBS
initialen Aufwand erwähnen, der damit
fmt::fmt einhergeht. Das Installieren eines RPMs
Boost::boost
Boost::program_options)
# Build Listing 4: Paketbeschreibung
(Beispiel)
add_executable(${PROJECT_NAME} src/main.cc)
{
target_link_libraries(${PROJECT_NAME} PRIVATE ${VCPKG_EXAMPLE_LIBS})
"name": "vcpkg‑example",
"version": "0.1.0",
Listing 3: Beispielprogramm kompilieren "dependencies": [

01 
$ git clone https://github.com/skfcz/vcpkgBeispiel.git {

02 
$ git clone https://github.com/Microsoft/vcpkg.git "name": "boost‑program‑options"

03 
$ cd vcpkgBeispiel },

04 
$ sh vcpkg/bootstrap‑vcpkg.sh {

05 [...] "name": "fmt"

06 $
 cmake ‑B build ‑S . ‑DCMAKE_TOOLCHAIN_FILE=vcpkg/scripts/ }
buildsystems/vcpkg.cmake ]
07 
$ cmake ‑‑build build/ build/vcpkg‑example ‑‑option World }

78 www.linux-magazin.de 08.2023
Vcpkg Programmieren

oder DEBs einer sehr großen Bibliothek elle Bibliothek nutzen müssen, können ries in das Setup mit Vcpkg integrieren
wie OpenCascade ist in ein bis zwei Mi- Sie trotzdem von Vcpkg profitieren. In lassen. Von daher lohnt es sich für alle
nuten erledigt, das Kompilieren dauert den Microsoft-Developer-Blogs erzählt C- und C++-Entwickler, einen Blick auf
eher eine gute halbe Stunde. Nach dem Augustin Popa , wie sich solche Libra- dieses Werkzeug zu werfen. (jlu) █
erstmaligen Übersetzen der Abhängig-
keiten gibt es jedoch keinen Zeitunter-
schied, und als Belohnung winkt ein
plattformunabhängiges Build-System.
Das funktioniert nicht nur lokal: Pratik
Chougule hat ein Projekt-Setup  für das
Kompilieren auf Jenkins  bereitgestellt,
mit Github-Actions lässt sich Vcpkg auch
zum Bauen auf Github nutzen. Selbst
wenn Sie die eine oder andere kommerzi-

Dateien zum Artikel


herunterladen unter
www.lm-online.de/dl/49014

Weitere Infos und


interessante Links
www.lm-online.de/qr/49014
2 Zum Einbinden von Vcpkg in die IDE Clion müssen Sie deren Konfiguration anpassen.

PROBELESEN OHNE RISIKO


TESTEN SIE JETZT 3 AUSGABEN FÜR 19 €
OHNE DVD 15 €

Abo-Vorteile

33%
IN
Rabatt
TSCHE
5 EURO
-GU Günstiger als am Kiosk
Versandkostenfrei
bequem per Post
SICHERN SIE SICH JETZT IHR GESCHENK! Pünktlich und aktuell
EIN AMAZON-GUTSCHEIN ÜBER 5,00 € Keine Ausgabe verpassen

Telefon: 0911 / 993 990 98 E-Mail: computec@dpv.de


Einfach bequem online bestellen: shop.linuxuser.de
© Volodymyr Krasyuk / 123RF.com
 WLAN-Diagnose mit einem Go-Tool wieder ausführt, die Ergebnisse grafisch
anzeigt und so die Ursache einkreist?

Dr. Drahtlos
Als Terminal-UI kommt die Library
Tview zum Einsatz, die auch Projekte wie
Kubernetes für ihre Kommandozeilen­
werkzeuge verwenden. Mit einigen Zei­
len Code schaltet Tview das Terminal in
den Grafikmodus und zeigt Elemente
Wieso funktioniert das WLAN schon wieder nicht – was ist wie Tabellen oder Formulare im Retro-
1
Look Weiß auf Schwarz an  . Tastatur­
da los? Statt immer dieselben Schritte zur Diagnose einzu- eingaben nimmt Tview im Raw-Modus
entgegen, und Applikationen können Sie
tippen, schreibt Mike Schilli ein Go-Tool, das das drahtlose zum Steuern der Oberfläche nutzen.
Von der Kommandozeile aufgerufen,
Netzwerk auf Herz und Nieren prüft und hilft, die Ursache startet das vorgestellte Go-Programm
wifi vier Tests gleichzeitig und zeigt die
einzukreisen. Mike Schilli Ergebnisse in einer Tabelle an. Nach je­
weils 10 Sekunden führt es die Tests er­
neut aus und gibt so dynamisch wieder,
Kaum im von Airbnb vermittelten Ur­ was sich im Netzwerk ändert. Tickt alles
laubsresort angekommen, stellt sich he­ wie gewünscht, zeigt das Tool die Mess­
raus, dass das WLAN nicht funktioniert. 1
ergebnisse an  . Schlagen hingegen
Woran liegt es? Weist der DHCP-Server Tests fehl, liefert es die entsprechenden
Der Autor des Routers dem Laptop keine IP-Adres­ 2
Fehlermeldungen an  . Ein Druck auf
se zu? Liegt es am DNS? Ist nur der [Strg]+[C] beendet den Reigen, schaltet
Michael Schilli arbeitet als Software
Durchsatz so mies, dass alles hängt? das Terminal in den Normalmodus und
­En­gineer in der San Francisco Bay Area in
All das lässt sich durch diverse Kom­ springt zurück in die Shell.
­Kalifornien. In seiner Kolumne forscht er
mandozeilen-Tools in Erfahrung bringen,
seit 1997 jeden Monat nach praktischen
aber es ist ermüdend und nervig, das je­
­Anwendungen verschiedener Programmier- Parallel testen
des Mal zu wiederholen. Wie wäre es mit
sprachen. Unter mschilli@perlmeister.​­com
einem Tool, das die einzelnen Schritte in Der ersten beiden Tests des Tools schi­
­beantwortet er gern Ihre Fragen.
regelmäßigen Abständen wieder und cken Ping-Requests an den Google-Ser­

80 www.linux-magazin.de 08.2023
Snapshot Programmieren

ver, einmal an den Hostnamen www.­


google.com und einmal an die IP-Adresse
von Googles bekanntem DNS-Server
(8.8.8.8). Schlägt beides fehl, ist wohl
die Verbindung zum Internet vollständig
unterbrochen. Wird nur der Host nicht
gefunden, liegt das Problem eher an den
DNS-Einstellungen.
Als Test Nummer drei sucht das Tool 1 Das Diagnose-Tool zeigt ein funktionierendes Netzwerk.
unter dem Feldnamen Ifconfig nach
­allen Client-IP-Adressen, die vom DHCP-
Server zugewiesen wurden. Steht dort
nichts, hakt es wohl am Router oder der
WLAN-Verbindung. In der fünften und
letzten Zeile der Tabelle setzt das Tool
schließlich einen HTTP-Request an den
Youtube-Server ab und zeigt im Erfolgs­
fall die bis zu dessen Abarbeitung verstri­
chene Anzahl von Millisekunden an. So
lässt sich ein lahmer ISP diagnostizieren. 2 Bei einem Netzwerkproblem hilft wifi, die Ursache einzukreisen.
Tuchfühlung
Der Aufruf der Funktion clock() in Zei­ den neuen, aktuellen Wert in das Text­
Um auf den Geschmack mit der Tview-­ le 10 startet die eigentliche Stoppuhr. View-Widget hineinzuschreiben.
Library zu kommen, implementiert Lis­ Die Funktion schubst nicht nur den Timer Damit steht die grafische Anzeige.
ting 1 eine laufende Stoppuhr. Deren ak­ an und lässt ihn im Hintergrund immer Bleibt nur noch, in Zeile 22 mit app.Set­
tuelle Uhrzeit trifft im Sekundentakt als weiterlaufen, sondern erzeugt auch ei­ Root() dem Applikationsfenster das
String über einen Go-Channel ein. Sie er­ nen Channel, den sie an den Aufrufer zu­ TextView-Widget einzupflanzen und mit
scheint dann dynamisch aufgefrischt in rückreicht. Über diesen Kanal treffen an­ Run() die UI zu starten. Ab dann läuft
einem Widget vom Typ TextView im schließend im Sekundentakt die aktuel­ 3
sie  . Drückt der Benutzer [Strg]+[C],
­Interface des Programms. len Stoppuhr-Strings ein, die der Aufrufer faltet sie sich sauber zusammen und gibt
Dazu zieht der Code in Zeile 4 das aufschnappt und die grafische Anzeige das Terminal wieder für die Shell frei.
tview-Framework von Github herein. damit aktualisiert.
Zeile 7 erzeugt eine neue Terminalappli­ Ebenfalls nebenläufig fängt die Gorou­
Tickende Uhr
kation und legt eine Referenz darauf in tine ab Zeile 11 in einer Endlosschleife
der Variablen app ab. Als Fensterinhalt per Select-Anweisung aus dem Channel Die eigentliche Stoppuhr implementiert
kommt das TextView-Widget zum Ein­ eintrudelnde Strings ab. Sobald in Zei­ Listing 2 mit der Funktion clock(), die
satz, das in der Variable tv liegt und des­ le 14 ein neuer Wert ankommt, benach­ ein optionales String-Argument akzep­
sen Repräsentation im Terminal wegen richtigt das Programm mit app.QueueUp­ tiert. Die Stoppuhr nutzt es nicht, aber
SetBorder(true) einen Rand aufweist. dateDraw() die Terminal-UI und weist sie das Format der Funktion soll später auch
Außerdem bekommt es mit SetTitle() an, die Uhranzeige mit tv.Clear() zu lö­ komplexere Aktionen für die UI einleiten.
eine Überschrift spendiert. schen und anschließend via Fprintf() Deswegen implementiert der Code sie

Listing 1: clock‑main.go
01 
package main 10 ch := clock() 18  })
02 
import ( 11 go func() { 19  }
03 "fmt" 12  for { 20  }
04 "github.com/rivo/tview" 13  select { 21 }()
05 ) 14  case val := <‑ch: 22 err := app.SetRoot(tv, true).
Run()
06 
func main() { 15  app.QueueUpdateDraw(func()
{ 23 if err != nil {
07 app := tview.NewApplication()
16  tv.Clear() 24  panic(err)
08 tv := tview.NewTextView()
17  fmt.Fprintf(tv, "%s ", 25 }
09 tv.SetBorder(true).
SetTitle("Test Clock") val) 26 }

08.2023 www.linux-magazin.de 81
Programmieren Snapshot

als sogenannte variadische Funktion. Die nuten und Sekunden nutzt Listing 2 ei­ ter. Andere Programmiersprachen legen
drei Punkte zwischen dem Namen des nen Trick: Die Funktion time.Since() in so etwas mit einem Template-String wie
Parameters arg und dessen Typ (string) Zeile 11 ermittelt die seit dem Start ver­ HH:MM:SS fest. Go hingegen wählt den
bestimmen in Go, dass man die Funktion strichene Zeit als Wert vom Typ time.Du­ seltsamen Weg, den magischen Zeit­
entweder gänzlich ohne Argumente auf­ ration. Allerdings bietet Go für diesen punkt am Montag, den 2.1.2006 um
ruft oder mit einem oder mehreren Argu­ Typ keine elegante Formatierung als 15:04:05 als Referenz zu verwenden .
menten des angegebenen Typs. String an. Der Typ time.Time hingegen, Den aktuellen Stand der Stoppuhr
In Zeile 6 erzeugt clock() den Chan­ mit dem Go Werte für die Uhrzeit dar­ schiebt Zeile 11 in den Channel ch, an
nel, den die Funktion später ans Haupt­ stellt, kennt die Funktion Format(), die dessen anderem Ende das aufrufende
programm zurückreicht und dadurch das interne Zeitformat lesbar formatiert. Hauptprogramm lauscht und seine Bild­
dann nebenläufig Updates für die Uhr­ Falls Sie sich über den seltsamen String schirmanzeige mit den ankommenden
zeit hochschickt. 15:04:05 als Argument im Code wun­ Informationen auffrischt.
Für die Anzeige der seit dem Startzeit­ dern: Go erwartet das Format von Stun­ Zum Erzeugen des Binaries aus dem
punkt verstrichenen Zeit in Stunden, Mi­ den, Minuten und Sekunden als Platzhal­ Source-Code holt der Dreisprung aus
­Listing 3 den Code abhängiger Libraries
von Github herein, kompiliert das Ge­
Listing 2: clock.go samtkunstwerk und erzeugt schließlich
01 
package main 09  for {
ein Binary clock‑main. Ruft man das
Kompilat von der Kommandozeile aus
02 
import ( 10  z := time.Unix(0, 0).UTC()
auf, dann färbt es das Terminal schwarz
03 "time" 11  ch <‑ z.Add(time.Since​ und malt die dynamisch im Sekunden­
04 ) (start)).Format("15:04:05")

05 f
unc clock(arg ...string) chan 12  time.Sleep(1 * time.Second)
string { 13  } Listing 3: build‑clock.sh
06 ch := make(chan string) 14 }() go mod init clock‑main
07 start := time.Now() 15 return ch go mod tidy
08 go func() { 16 } go build clock‑main.go clock.go

Listing 4: wifi.go
01 
package main 19 }
02 
import ( 20 f
unc newPlugin(app *tview.Application, table
03 "strings" *tview.Table, field string, fu func(...string)
chan string, arg ...string) {
04 "github.com/rivo/tview"
21 if len(arg) > 0 {
05 )
22  field += " " + strings.Join(arg, " ")
06 
func main() {
23 }
07 app := tview.NewApplication()
24 row := table.GetRowCount()
08 table := tview.NewTable().SetBorders(true)
25 table.SetCell(row, 0, tview.NewTableCell(field))
09 table.SetBorder(true).SetTitle("Wifi Monitor
v1.0") 26 ch := fu(arg...)

10 newPlugin(app, table, "Time", clock) 27 go func() {

11 newPlugin(app, table, "Ping", ping, "www.google. 28  for {


com") 29  select {
12 newPlugin(app, table, "Ping", ping, "8.8.8.8") 30  case val := <‑ch:
13 newPlugin(app, table, "Ifconfig", nifs) 31  app.QueueUpdateDraw(func() {
14 newPlugin(app, table, "HTTP", httpGet, "https:// 32  table.SetCell(row, 1, tview.
youtu.be") NewTableCell(val))
15 err := app.SetRoot(table, true).SetFocus(table). 33  })
Run() 34  }
16 if err != nil { 35  }
17  panic(err) 36 }()
18 } 37 }

82 www.linux-magazin.de 08.2023
Snapshot Programmieren

takt tickende Stoppuhr in einer Zeile 5. Die Integration dieser


3
gerahmten Box hinein  . Ach­ Plugins in die Tabelle erledigt
tung: Die Tview-Library benö­ die Funktion newPlugin(). De­
tigt mindestens Go 1.18. Eine ren Aufrufe bekommen in den
vorhandene ältere Version Zeilen 10 bis 14 jeweils eine
müssen Sie vorab upgraden. Referenz auf die Applikation
und deren Tabelle mitge­
schickt. Hinzu kommen eine
Kein Spielzeug
Beschreibung des jeweiligen
Nun aber von der Spielzeuguhr Tests als String sowie eine
hin zur Applikation, die im Hin­ Funktion, die den Test ausführt.
tergrund das Netzwerk prüft Wie sich an der Signatur von
und die Ergebnisse aller Tests newPlugin() in Zeile 20 able­
periodisch in der grafischen 3 Eine Stoppuhr mit tview als Beispiel. sen lässt, erwartet die Funktion
Oberfläche auffrischt. die ihr übergebene Testfunk­
Das aus Listing 4 später kom­ tion fu in einem interessanten
pilierte Programm wird wifi heißen, wie oder nicht. Andererseits ruft Zeile 9 auch Format: Damit die Testfunktion allen An­
man auf Amerikanisch zum WLAN sagt, noch SetBorder() (Singular) auf. Das be­ wendungen gerecht wird, akzeptiert sie
obwohl sich die Applikation genauso auf zieht sich nicht auf die Tabelle, sondern eine variable Anzahl von String-Argu­
verdrahtete Netzwerke ansetzen lässt. auf die sogenannte Box (einen Contai­ menten (...string) und gibt einen
Zur Darstellung der Testergebnisse nutzt ner), in der sie liegt. Der Aufruf zeichnet Channel zurück, auf dem der Aufrufer
es in Zeile 8 das Tabellen-Widget des einen Rand um die Applikation, mitsamt später Ergebnisse vom Typ string abho­
Tview-Projekts. Insgesamt fünf Reihen einer Überschrift am oberen Ende. len kann. Ein Beispiel für eine solche Test­
mit jeweils zwei Spalten enthalten links funktion haben wir bereits in Listing 2
eine Beschreibung des Tests und rechts gesehen. Mit clock() entsteht eine
Über einen Kamm geschert
das dynamisch aufgefrischte Ergebnis. Stoppuhr, deren aktuelle Zeitstempel die
Bei der Definition der unterschied­ Jede Tabellenzeile bekommt nun ein Tabelle nun im Sekundentakt in der ers­
lichen Ränder des Fensters und der Testprogramm zugewiesen. So landet die ten Zeile anzeigt.
­Tabelle gilt es, genau hinzusehen: Das tickende Uhr in der ersten Zeile, zwei Zum Verbandeln der Testfunktion mit
­Table-Widget verfügt über eine Funktion Netzwerk-Pings in den Zeilen 2 und 3, einer Tabellenzeile hängt Zeile 25 bei je­
SetBorders(), die festlegt, ob die Tabelle die Anzeige lokaler IPs in Zeile 4 und ein dem Aufruf eine neue Zeile an die Tabelle
Zeilen- und Spaltenlinien einzeichnet HTTP-Request auf den Youtube-Server in an. Dann ruft Zeile 26 die Testfunktion

Listing 5: ping.go
01 
package main 19  if firstTime {
02 
import ( 20  ch <‑ "Pinging ..."
03 "fmt" 21  firstTime = false
04 "github.com/prometheus‑community/pro‑bing" 22  }
05 "time" 23  pinger.Count = 3
06 ) 24  err = pinger.Run()
07 
func ping(addr ...string) chan string { 25  if err != nil {
08 ch := make(chan string) 26  ch <‑ err.Error()
09 firstTime := true 27  time.Sleep(10 * time.Second)
10 go func() { 28  continue
11  for { 29  }
12  pinger, err := probing.NewPinger(addr[0]) 30  stats := pinger.Statistics()
13  pinger.Timeout, _ = time.ParseDuration("10s") 31  ch <‑ fmt.Sprintf("%v ", stats.Rtts)
14  if err != nil { 32  time.Sleep(10 * time.Second)
15  ch <‑ err.Error() 33  }
16  time.Sleep(10 * time.Second) 34 }()
17  continue 35 return ch
18  } 36 }

08.2023 www.linux-magazin.de 83
Programmieren Snapshot

auf, die ihrerseits einen Channel zurück­ Testaufgabe wieder und wieder aus und Iteration der Endlos-For-Schleife ab
gibt und im Hintergrund ihren Netzwerk­ reicht die Ergebnisse über den Channel ­Zeile 11, um es erneut zu versuchen.
test vornimmt. Um dessen Ergebnisse ab­ an den Aufrufer zurück.
zufangen, startet Zeile 27 eine neue ne­ Das Anpingen von Servern oder deren
Erste Runde
benläufige Goroutine mit einer Endlos­ IP-Adressen übernimmt Listing 5 mit der
schleife, die mittels einer select-Anwei­ Funktion ping(), die entweder einen Beim ersten Eintritt steht die Variable
sung auf dem Channel lauscht. Kommt Host-Namen oder eine IP-Adresse als firstTime auf true. Zeile 20 schickt
dort ein String an, frischt Zeile 32 mit ­Argument entgegennimmt. An den Auf­ dann über den Channel ch den String
­table.SetCell den Inhalt des zugewie­ rufer gibt sie einen Channel zurück, in Pinging ... an den Aufrufer zurück,
senen Tabellenfelds auf. dem später Nachrichten der nebenläufig ­damit der weiß, dass der Test läuft. Die
Damit das auch tatsächlich auf dem ausgeführten Tests eintreffen. Funktion Run() in Zeile 24 führt gemäß
Bildschirm erscheint, gilt es, die Anwei­ Ganz wie das Kommandozeilen-Utility Zeile 23 drei Pings auf das angegebene
sung an den GUI-Verwalter weiterzu­ ping schickt Listing 5 ICMP-Pakete an die Netzwerkziel aus und blockiert den Pro­
leiten. Das erledigt die Funktion app. angegebene Adresse und nutzt dafür das grammfluss, solange der Vorgang läuft.
QueueUpdateDraw(), über die die GUI Paket pro-bing von Github, das es in Zei­ Tritt ein Fehler auf, leitet Zeile 26 ihn per
das Tabellenfeld beim nächsten Auffri­ le 4 hereinzieht. Die neue Pinger-Instanz Channel an den Aufrufer weiter, und
schen neu zeichnet. pinger aus Zeile 12 setzt in Zeile 13 ei­ nach zehn Sekunden Pause geht conti­
nen Timeout von 10 Sekunden. Nach nue in Zeile 28 in die nächste Runde.
­deren Verstreichen nimmt der Pinger an, Trifft eine Antwort auf die versendeten
Palim-Palim
dass etwas schiefgelaufen ist und sich ICMP-Pakete ein, ist das Netzwerk offen­
Nun gilt es, neue Netzwerktests nach der Server nicht erreichen lässt. Klappt sichtlich intakt. Der Aufruf von Statis­
Schema F in die Tabelle einzuhängen. etwa die Namensauflösung für den Ser­ tics() in Zeile 30 holt dann die statisti­
­Jeder Test besteht aus einer Funktion, die ver nicht, posaunt Zeile 15 die Meldung schen Daten der absolvierten Tests ein.
ein optionales String-Argument akzep­ in den Channel. Zeile 16 wartet anschlie­ Die Antwortzeiten der einzelnen Ping-
tiert und einen Channel zurückreicht. Sie ßend 10 Sekunden. Dann springt conti­ Requests liegen als Array-Slice von Se­
führt nebenläufig die ihr übertragene nue in der folgenden Zeile in die nächste kundenwerten im Fließkommaformat in

Listing 6: eth.go
01 
package main 25 var list []string
02 
import ( 26 ifaces, err := net.Interfaces()
03 "net" 27 if err != nil {
04 "sort" 28  return list, err
05 "strings" 29 }
06 "time" 30 for _, iface := range ifaces {
07 )
31  addrs, err := iface.Addrs()
08 
func nifs(arg ...string) chan string {
32  if err != nil {
09 ch := make(chan string)
33  return list, err
10 go func() {
34  }
11  for {
35  if len(addrs) == 0 {
12  eths, err := ifconfig()
36  continue
13  if err != nil {
37  }
14  ch <‑ err.Error()
38  for _, addr := range addrs {
15  time.Sleep(10 * time.Second)
16  continue 39  ip := strings.Split(addr.String(), "/")[0]

17  } 40  if net.ParseIP(ip).To4() != nil {

18  ch <‑ strings.Join(eths, ", ") 41  list = append(list, iface.Name+" "+ip)

19  time.Sleep(10 * time.Second) 42  }
20  } 43  }
21 }() 44 }
22 return ch 45 sort.Strings(list)
23 } 46 return list, nil
24 
func ifconfig() ([]string, error) { 47 }

84 www.linux-magazin.de 08.2023
Snapshot Programmieren

stats.Rtts. Zeile 31 verpackt alle drei vor es den Namen der Schnittstelle (name, Laden der Seite im Test nach 0,142 Se­
Werte mit dem Platzhalter %v im Format- zum Beispiel en0) und die IP-Adresse kunden erledigt war – vorbildlich.
String in eine Zeichenkette, die Zeile 31 (ohne den Subnetz-Zusatz) an den Array- Zur Ermittlung dieser Zahl setzt Lis­
in den Channel schiebt. Von dort Slice list anhängt. Den sortiert Zeile 45 ting 7 in Zeile 17 mit der Funktion Get()
schnappt sie der Aufrufer und zeigt sie in alphabetisch, und Zeile 46 gibt ihn an einen HTTP-Request ab, der so lang
der grafischen Oberfläche an. den Aufrufer der Funktion ifconfig() in blockt, bis die Daten eintrudeln oder der
Zeile 12 zurück. Server einen Fehler liefert. Hängt die An­
Dort passiert dasselbe wie schon zu­ zeige in der Tabellenspalte später also
Verbindung steht?
vor: Ergebnisse wie etwa Fehlermeldun­ bei Fetching ..., dann stimmt etwas
Verbindet sich ein WLAN-Client mit dem gen oder erfolgreich eingeholte IP-Ad­ mit der Verbindung nicht. In dem Fall
Router, bekommt er eine IP-Adresse zu­ resslisten werden als kommaseparierte sollten die anderen Tests Hinweise auf
gewiesen, die er im Erfolgsfall mit Kom­ Strings in den Channel eingespeist, auf die Ursache geben. Klappt hingegen die
mandos wie ifconfig anzeigen kann. Es dem das Hauptprogramm lauscht und Auflösung des Host-Namens wegen
hilft bei der Fehlersuche, zu wissen, ob eintrudelnde Nachrichten in der zuge­ ­fehlerhafter DNS-Konfiguration nicht,
das geklappt hat. Daher forscht das wiesenen Tabellenspalte anzeigt. Steht schiebt Zeile 19 die Fehlermeldung in
­Plugin aus Listing 6 auf den Netzwerk­ also in der Ifconfig-Zeile der Terminal- den bereitgestellten Channel, von wo
schnittstellen des Rechners nach lokalen UI ein Eintrag im häuslich verwendeten das Hauptprogramm den Fehler auf­
IP-Adressen. IP-Bereich um 192.168.0.x, dann steht of­ schnappt und ihn anzeigt.
Das Paket net aus dem Go-Standard­ fensichtlich die Verbindung zum Router. Funktioniert alles, misst Zeile 23, wie
fundus offeriert dazu die Funktion Taucht in der Spalte hingegen nur das lange der Vorgang gedauert hat. Dazu
­Interfaces(), die in Zeile 26 alle Netz­ Loopback-Interface auf, stimmt etwas subtrahiert sie von der aktuellen Zeit die
werkschnittstellen des Rechners zurück­ mit der Vergabe der IP-Adressen nicht. in Zeile 16 gesetzte Startzeit des Re­
gibt. Bei einem Laptop im WLAN sind das quests und schiebt den so erhaltenen
normalerweise zwei: die WLAN-Karte ­Sekundenwert als Fließkommazahl in
Ganze Seiten holen
und das Loopback-Interface. Bei einem den Channel. Er erscheint dann mit der
zusätzlich verdrahteten Rechner können Schließlich bietet Listing 7 noch einen Meldung OK in der Tabellenspalte.
es auch mehr sein. Jedes dieser Inter­ End-to-End-Test, indem es via Internet Der Dreisprung aus Listing 8 erstellt
faces besitzt nun, sofern verbunden, eine die Youtube-Titelseite lädt. Läuft dieser aus den Quellen des Hauptprogramms
oder mehrere IP-Adressen. Addrs() in Test erfolgreich, ist alles in Butter. Da er (Listing 4), den Test-Plugins (Listings 5
Zeile 31 holt sie ein, die For-Schleife ab in der letzten Zeile der UI auch noch die bis 7), der Uhr (Listing 1) sowie den Git­
Zeile 38 klappert sie ab. zum Einholen der Seite verstrichene Zeit hub-Paketen und deren Abhängigkeiten
In den USA hat kaum jemand daheim in Sekunden angibt, lässt sich zudem die das Binary wifi. Dessen Aufruf startet
IPv6-Adressen. Daher filtert Zeile 40 alles Geschwindigkeit der ISP-Verbindung ab­ die Terminal-UI und der User erfährt, wie
heraus, was nicht nach IPv4 aussieht, be­ 1
schätzen. Abbildung  zeigt, dass das es um das Netzwerk steht. Bei Bedarf las­
sen sich selbst geschriebene Plugins
nach diesem Schema einhängen und in
Listing 7: www.go Tabellenzeilen anzeigen. (uba/jlu) █
01 
package main 16  now := time.Now()
02 
import ( 17  _, err := http.Get(arg[0])
Listing 8: build‑wifi.sh
03 "fmt" 18  if err != nil {
01 
$ go mod init wifi
04 "net/http" 19  ch <‑ err.Error()
02 
$ go mod tidy
05 "time" 20  time.Sleep(10 * time.
03 $
 go build wifi.go clock.go
Second)
06 ) eth.go ping.go www.go
21  continue
07 f
unc httpGet(arg ...string)
chan string { 22  }
23  dur := time.Since(now)
08 ch := make(chan string) Dateien zum Artikel
09 firstTime := true
24  ch <‑ fmt.Sprintf("%.3f OK herunterladen unter
", dur.Seconds())
10 go func() { www.lm-online.de/dl/48709
25  time.Sleep(10 * time.
11  for { Second)
12  if firstTime { 26  }
13  ch <‑ "Fetching ..." 27 }() Weitere Infos und
14  firstTime = false
interessante Links
28 return ch
15  } www.lm-online.de/qr/48709
29 }

08.2023 www.linux-magazin.de 85
© Svetlana Sukhorukova / 123RF.com
Modernes C++ in der Praxis – Folge 70

Vielseitige Konzepte
Die letzten zwei Artikel dieser Serie stellten die diversen ­ araus ergibt sich unmittelbar die Frage:
D
Welche vordefinierten Concepts umfasst
­Anwendungsbereiche von Concepts vor. Auf die Pflicht folgt C++20 eigentlich?

in diesem Artikel die Kür: die Definition eigener Concepts. Vordefinierte Concepts
­ ainer Grimm
R C++20 bringt einen reichen Satz von
mehr als 100 Concepts mit. Die folgen-
den Zeilen sollen lediglich als kleiner
Concepts lassen sich prinzipiell auf zwei ­Appetithappen dienen. Genaueres lässt
Arten definieren: zum einen durch eine sich im aktuellen Entwurf zum C++23-
Kombination von anderen Concepts und Standard  nachlesen. Die aufgeführten
Compile-Zeit-Prädikaten, zum anderen Concepts befassen sich mit elementaren
Der Autor durch Requires-Expressions.
Die goldene Regel, das Rad
Rainer Grimm ist seit über 20 Jahren als
nicht neu zu erfinden, lässt
Softwarearchitekt, Team- und Schulungslei-
sich auch auf Concepts an-
ter tätig. Er ist Autor zahlreicher Bücher und
wenden. Das bringen auch
Artikel zu den Programmiersprachen C++,
die C++ Core Guidelines
Python und Haskell. Auf seinem Blog
in T.11  deutlich auf den
https://www.modernescpp.de beschäftigt er
sich intensiv mit den Aspekten von C++.
Punkt: „Whenever possible 1 Die Concepts Integral, SignedIntegral und
use standard concepts.“ U
­ nsignedIntegral im Einsatz.

86 www.linux-magazin.de 08.2023
C++ Programmieren

Eigenschaften von Daten-


typen, arithmetischen
­Typen, Instanzen eines
Datentyps und mit
­Objekten (siehe Tabelle
Concepts: Eigenschaften
von Datentypen). Wie las-
sen sich solche Concepts
mithilfe einer Kombinati-
on anderer Concepts und
Compile-Zeit-Prädikaten 2 Die Fehlermeldung des Compilers beim Einsatz des Concepts std::regular.
oder Requires-Expressions
­definieren?
schlussauswertung. Das wiederum be- gibt zur Compile-Zeit zurück, ob das
deutet, dass die Auswertung eines logi- Template-Argument T integral ist. Dank
Concepts festlegen
schen Ausdrucks automatisch abbricht, std::is_signed, einer weiteren Type-
Die Syntax zur Festlegung eines Concepts sobald sein Gesamtergebnis feststeht. Traits-Funktion, lässt sich das Concept
ist denkbar einfach. Die Definition be- Dank der zahlreichen Compile-Zeit- Integral direkt zum Concept SignedIn­
ginnt wie in der ersten Zeile von Listing 1 Prädikate der Type-Traits-Bibliothek ste- tegral (Zeile 5) erweitern. Aus der Nega-
mit dem Schlüsselwort template, gefolgt hen alle Werkzeuge zur Verfügung, um tion des Concepts SignedIntegral wie-
von einer Liste von Template-Parametern. mächtige Concepts zu implementieren. derum resultiert das Concept Unsigned­
Die zweite Zeile im Listing ist interessan- Listing 2 definiert und verwendet die Integral (Zeile 7).
ter: Sie verwendet das Schlüsselwort Concepts Integral, SignedIntegral Die func-Definitionen in Listing 2
­concept, gefolgt von dem Namen des und UnsignedIntegral. ­(Zeile 8 und 11) wenden die Concepts in
Concepts und einer Constraint-Expressi- Das Concept Integral (Zeile 3) lässt der sogenannten Abbreviated-Function-
on, also einem Compile-Zeit-Prädikat. sich direkt mit der Type-Traits-Funktion Templates-Syntax an. Dabei handelt es
Bei einem Compile-Zeit-Prädikat han- std::is_integral implementieren. Der sich um eine vereinfachte Form, Tem­
delt es sich um einen Ausdruck, der noch Ausdruck std::is_integral<T>::value plates zu definieren, die Einschränkungen
während des Übersetzens true oder
false zurückgibt. Er kann eine logische
Kombination von anderen Concepts Concepts: Eigenschaften von Datentypen
oder Compile-Zeit-Prädikaten sein, die
Concept Bedeutung
man mit Konjunktionen (&&), Disjunktio-
Datentypen
nen (||) oder Negationen (!) bildet.
Die Constraint-Expression darf alterna- std::same_as Datentyp identisch
tiv auch eine Requires-Expression sein. std::derived_from abgeleiteter Datentyp
Diese lässt sich wiederum auf verschie- std::convertible_to Datentypen konvertierbar
dene Weise definieren. So ist es möglich,
arithmetische Typen
sowohl einfache Typanforderungen als
std::integral Ganzzahl
auch zusammengesetzte oder ver-
schachtelte Anforderungen in Requires- std::signed_integral Ganzzahl mit Vorzeichen
Expressions zu verwenden. std::unsigned_integral Ganzzahl ohne Vorzeichen
Doch damit genug der Theorie, gehen std::floating_point Gleitkommazahl
wir zur Praxis über. Im Folgenden defi­
Instanzen
nieren wir beide Arten von Concepts. Wie
sind die C++20-Concepts std::integral, std::constructible_from aus anderer Instanz konstruierbar
std::signed_integral und std::un­ std::default_constructible regulär konstruierbar
signed_integral implementiert? std::move_constructible durch Verschieben konstruierbar
std::copy_constructible durch Kopieren konstruierbar
Kombinationen std::destructible zerstörbar
Concepts und Compile-Zeit-Prädikate Objekte
lassen sich mit Konjunktionen (&&) und std::movable Objekt verschiebbar
Disjunktionen (||) kombinieren. Da­rüber std::copyable Objekt kopierbar
hinaus kann man sie negieren (!). In be-
std::semregular Objekt semiregulär
kannter Manier folgt die Evaluation die-
std::regular Objekt regulär
ser logischen Kombinationen der Kurz-

08.2023 www.linux-magazin.de 87
Programmieren C++

auf ihren Template-Parametern besitzen. func(5u) (Zeile 17) die Überladung auf sollte der konkrete Datentyp zumindest
Unser letzter Artikel zu Concepts  ist UnsignedIntegral verwendet. ein semiregulärer Typ sein. Die C++ Core
genauer auf diese syntaktische Variante Guidelines bringen das in T.46  auf den
eingegangen. Punkt: „Require template arguments to be
Requires-Expressions
Die Ausgabe des Programms in Abbil- at least semiregular“. Daher bietet der
1
dung  zeigt sehr schön, dass der Auf- Ein konkreter Datentyp, der sich im C++- C++20-Standard bereits die Concepts
ruf func(‑5) (Zeile 16) die Überladung Ökosystem intuitiv nutzen lässt, sollte sich std::semiregular und std::regular an.
auf SignedIntegral und der Aufruf wie ein int verhalten. Formal betrachtet, Diese Concepts lassen sich zu Übungs-
zwecken auch selbst definieren und mit
den C++20-Pendants vergleichen.
Listing 1: Concept-Definition Jetzt bleibt nur noch eine wichtige Fra-
template Template‑Parameter‑Liste
ge zu beantworten: Welche Eigenschaf-
ten müssen reguläre beziehungsweise
concept Concept‑Name = Constraint‑Expression;
semireguläre Datentypen besitzen? Ein
semiregulärer Datentyp X muss die Gro-
ßen Sechs (siehe Tabelle Die Großen
Listing 2: Integral-Concepts Sechs) sowie swap(X&,X&) unterstützen.
01 
#include <iostream>
Außerdem muss X ebenfalls swap(X&,X&)
unterstützen.
02 
template <typename T>
Die Type-Traits-Bibliothek  macht die
03 
concept Integral = std::is_integral<T>::value; Definition des entsprechenden Concepts
04 
template <typename T> zum Kinderspiel. Das Type-Trait isSemi­
05 
concept SignedIntegral = Integral<T> && std::is_signed<T>::value; Regular lässt sich direkt implementieren
06 
template <typename T> und dann zur Definition des Concepts in
Listing 3 verwenden.
07 
concept UnsignedIntegral = Integral<T> && !SignedIntegral<T>;
Ein Datentyp unterstützt die Typeigen-
08 
void func(SignedIntegral auto integ) {
schaft isSemiRegular (Zeile 2), wenn alle
09  std::cout << "SignedIntegral: " << integ << '\n'; Typeigenschaften der Großen Sechs (Zei-
10 } len 3 bis 8) und die Bedingung std::is_
11 
void func(UnsignedIntegral auto integ) { swappable (Zeile 9) erfüllt sind. Der ver-
bleibende Schritt zur Definition des Con-
12  std::cout << "UnsignedIntegral: " << integ << '\n';
cepts SemiRegular ist die Verwendung
13 }
des Typ-Traits isSemiRegular (Zeile 11).
14 
int main() { Nun fehlt nur noch eine Kleinigkeit,
15  std::cout << '\n'; um das Concept Regular zu definieren.
16  func(‑5); Ein Datentyp T unterstützt das Concept
17  func(5u); Regular, wenn er semiregulär ist und
sich auf Gleichheit überprüfen lässt. Lis-
18  std::cout << '\n';
ting 4 definiert dazu das Concept Equal
19 } und verwendet es direkt zur Definition
des Concepts Regular.

Listing 3: SemiRegular-Concept Zusammengesetzt


01 
template<typename T>
Bei der Definition des Concepts Equal
02 
struct isSemiRegular: std::integral_constant<bool,
kommt eine zusammengesetzte Requi-
03  std::is_default_constructible<T>::value && res-Expression zum Einsatz. Equal fordert
04  std::is_copy_constructible<T>::value && von zwei Werten a und b des identischen
05  std::is_copy_assignable<T>::value && Typs T, dass sie sich auf Gleichheit == und
Ungleichheit != vergleichen lassen. Zu-
06  std::is_move_constructible<T>::value &&
dem müssen beide Operationen einen
07  std::is_move_assignable<T>::value && Wert zurückgeben, den man zu einem
08  std::is_destructible<T>::value && Wahrheitswert konvertieren kann. Ich
09  std::is_swappable<T>::value >{}; denke, Sie ahnen es bereits: std::con­
vertible_to<bool> ist ein Concept. Re-
10 
template<typename T>
quires-Expressions lassen sich in vielen
11 
concept SemiRegular = isSemiRegular<T>::value;
anderen Formen anwenden .

88 www.linux-magazin.de 08.2023
C++ Programmieren

Haben Sie erst einmal das Concept Equal std::moveable. Daraus folgt, dass ein wendet werden. Die Funktion behaves­
implementiert, ist die Definition des Con- k­ opierbarer Datentyp automatisch auch LikeAnInt in Zeile 4 fordert, dass T das
cepts Regular nur noch eine Pflichtauf- die Move-Semantik unterstützt. Concept std::regular umsetzt. Dieses
gabe, bei der Sie das Concept Equal mit Das Concept std::movable basiert auf Concept unterstützt int (Zeile 9) und
dem Concept SemiRegular konjugieren. der Type-Traits-Funktion std::is_ob­ std::vector (Zeile 11). Der minimale Da-
Der C++20-Standard setzt die Concepts ject . Bei den verbleibenden Kompo- tentyp NotEqualityComparable lässt sich
std::semiregular und std::regular nenten der Concepts std::moveable und hingegen nicht auf Gleichheit verglei-
aus elementareren Concepts zusammen std::copyable handelt es sich um weite- chen – genau das moniert der Compiler.
(Listing 5). re Concepts des C++20-Standards . 2
Abbildung  zeigt die entscheidenden
Das Concept std::regular ist in Was passiert nun, wenn man das Zeilen der GCC-Fehlermeldung.
C++20 ähnlich definiert wie das benut- ­Concept std::regular anwendet? Das
zerdefinierte Concept Regular. Das Con- Funktions-Template behavesLikeAnInt
Fazit und Ausblick
cept std::semiregular dagegen be- in Listing 6 zeigt das Concept im Einsatz.
steht aus einer Kombination grundlegen- Um das Concept std::regular zu be- Concepts sind eine Revolution in moder-
derer Concepts aus std::copyable und nutzen, muss der Header <concepts ver- nem C++. Sie sind ähnlich fundamental
für Templates wie Interfaces für das ob-
jektorientierte Design.
Die Großen Sechs Die Ranges-Bibliothek stellt eine zweite
Variante der Standard Template Library
Funktion Signatur
dar. Ranges verändern C++ ähnlich fun-
X()
damental wie Concepts. (jcb/jlu) █
Standardkonstruktor
Copy-Konstruktor X(const X&)
Copy-Zuweisungsoperator X& operator = (const X&)
Move-Konstruktor X(X&&) Dateien zum Artikel
herunterladen unter
Move-Konstruktor X& operator = (X&&)
www.lm-online.de/dl/49301
Destruktor ~X()

Listing 4: Equal und Regular Weitere Infos und


template<typename T>
interessante Links
concept Equal = requires(T a, T b) { www.lm-online.de/qr/49301

{ a == b } ‑> std::convertible_to<bool>;
{ a != b } ‑> std::convertible_to<bool>;
}; Listing 6: std::equal und
template<typename T> ­ td::unequal
s

concept Regular = Equal<T> && 01 


#include <concepts>
SemiRegular<T>; 02 
#include <vector>
03 
template <std::regular T>
04 
void behavesLikeAnInt(T) {
Listing 5: std::equal und std::semiregular 05  [...]
template<class T> 06 }
concept movable = is_object_v<T> && move_constructible<T> && struct NotEqualityComparable { };
07 
assignable_from<T&, T> && swappable<T>; 08 
int main() {
template<class T> 09  int myInt{};
concept copyable = copy_constructible<T> && movable<T> && 10  behavesLikeAnInt(myInt);
assignable_from<T&, T&> && 11  std::vector<int> myVec{};
assignable_from<T&, const T&> && assignable_from<T&, const T>; 12  behavesLikeAnInt(myVec);
template<class T> 13  NotEqualityComparable
concept semiregular = copyable<T> && default_initializable<T>; notEquComp;
template<class T> 14  behavesLikeAnInt(notEquComp);
concept regular = semiregular<T> && equality_comparable<T>; 15 }

08.2023 www.linux-magazin.de 89
Service IT-Profimarkt

IT PROFI
hochwertige Produkte und Leistungen
Weitere Informationen:
an. Die exakten Angebote jeder Firma

MARKT
entnehmen Sie deren Homepage. Der Computec Media GmbH
ersten Orientierung dienen die sechs
Anzeigenabteilung
­Kategorien Hardware, Software, Seminar­
anbieter, Systemhaus, Netzwerk/TK sowie Dr.-Mack-Straße 83
Schulung/Beratung. Der IT-Profimarkt- D-90762 Fürth
Sie fragen sich, wo Sie maßgeschneiderte
Eintrag ist ein Service von Linux-­Magazin
Linux-Systeme sowie kompetente An-
und ­LinuxUser.
sprechpartner zu Open-Source-Themen Tel.: +49 (0) 911 / 2872-252
finden? Der IT-Profimarkt weist Ihnen Besonders komfortabel finden Sie einen
hier als zuverlässiges Nachschlagewerk Linux-Anbieter in Ihrer Nähe online über Fax: +49 (0) 911 / 2872-21
den richtigen Weg. Die im Folgenden die Umkreissuche. Schauen Sie einfach
­gelisteten Unternehmen beschäftigen einmal rein unter:
E-Mail: anzeigen@linux-magazin.de
­Experten auf ihrem Gebiet und bieten http://www.it-profimarkt.de.

IT-Profimarkt
1 = Hardware 2 = Netzwerk 3 =Systemhaus 4 = Seminaranbieter 5 = Software 6 = Schulung/Beratung
Firma Anschrift Telefon Web 1 2 3 4 5 6

Schlittermann internet & unix support 01099 Dresden, Tannenstraße 2 0351-802998-1 www.schlittermann.de ✔ ✔ ✔ ✔

imunixx GmbH UNIX consultants 01468 Moritzburg, Heinrich-Heine-Straße 4 0351-83975-0 www.imunixx.de ✔ ✔ ✔ ✔ ✔

Heinlein Support GmbH 10119 Berlin, Schwedter Straße 8/​9b 030-405051-0 www.heinlein-support.de ✔ ✔ ✔ ✔ ✔

TUXMAN Computer 10369 Berlin, Anton-Saefkow-Platz 8 030-97609773 www.tuxman.de ✔ ✔ ✔ ✔ ✔

PC-COLLEGE Training GmbH 10963 Berlin, Stresemannstraße 78 0800-5777333 linux.pc-college.de ✔ ✔

Compaso GmbH 13125 Berlin, Achillesstraße 61 030-326933-0 www.compaso.de ✔ ✔ ✔ ✔ ✔

Sybuca GmbH 20459 Hamburg, Herrengraben 26 040-27863190 www.sybuca.de ✔ ✔ ✔ ✔ ✔

talicom GmbH 30169 Hannover, Calenberger Esplanade 3 0511-123599-0 www.talicom.de ✔ ✔ ✔ ✔

HECKER CONSULTING 40231 Düsseldorf, Erkrather Str. 401 0211-54248040 www.hco.de ✔ ✔

Linux-Systeme GmbH 45277 Essen, Langenberger Straße 179 0201-298830 www.linux-systeme.de ✔ ✔ ✔ ✔ ✔

Linuxhotel GmbH 45279 Essen, Antonienallee 1 0201-8536-600 www.linuxhotel.de ✔

Anzeigen

NEWS,
Basics. Projekte.
Ideen. Know-how.

Jetzt
testen! BLOGS
& JOBS
30% sparen
nur 8,00 €

X25
EN SOURCE
Jetzt bestellen! LINUX UND OP
serem Newsletter
topaktuell mit un
• Tel.: 0911 / 993 990 98 • E-Mail: computec@dpv.de
Einfach online bestellen: shop.raspberry-pi-geek.de www.linux-magazin.de/subscribe

90
nschule-Weber_1-9_Administrator.indd 1 29.05.15 10:07 www.linux-magazin.de 08.2023
IT-Profimarkt Service

IT-Profimarkt
dass IT GmbH 50674 Köln, Händelstraße 25-29 0221-3565666-0 www.dass-it.de ✔ ✔ ✔ ✔ ✔

os-cillation GmbH 57072 Siegen, Hohler Weg 75 0271-313680 www.os-cillation.de ✔ ✔ ✔

GONICUS GmbH 59755 Arnsberg, Möhnestraße 55 02932-916 0 www.gonicus.de ✔ ✔

LinuxHaus Stuttgart 70565 Stuttgart, Hessenwiesenstraße 10 0711-2851905 www.linuxhaus.de ✔ ✔ ✔ ✔ ✔

Manfred Heubach EDV und Kommunikation 73730 Esslingen, Hindenburgstraße 171 0711-4904930 www.heubach-edv.de ✔ ✔ ✔ ✔

in-put – Das Linux-Systemhaus GmbH 75179 Pforzheim, Kurze Steig 31 07231- 440785 ‑0 www.in-put.de ✔ ✔ ✔ ✔ ✔ ✔

Tralios IT GmbH 76133 Karlsruhe, Douglasstraße 24-26 0721-94269664 www.tralios.de ✔ ✔ ✔ ✔ ✔

Bodenseo 78224 Singen, Pomeziastraße 9 07731-1476120 www.bodenseo.de ✔ ✔

Concat AG 81829 München, Konrad-Zuse-Platz 8 089-89080500 www.synergysystems.de ✔ ✔ ✔ ✔ ✔

B1 Systems GmbH 85088 Vohburg, Osterfeldstraße 7 08457-931096 www.b1-systems.de ✔ ✔ ✔ ✔ ✔

Tuxedo Computers GmbH 86159 Augsburg, Alter Postweg 101 0821-89982992 www.tuxedocomputers.com ✔ ✔ ✔ ✔

OSTC Open Source Training and Consulting GmbH 90425 Nürnberg, Waldemar-Klink-Straße 10 0911-3474544 www.ostc.de ✔ ✔ ✔ ✔ ✔ ✔

Thomas-Krenn.AG 94078 Freyung, Speltenbach-Steinäcker 1 08551-9150-400 www.thomas-krenn.com ✔

LinuxCampus.net A-2700 Wiener Neustadt, Brodtischgasse 4 +43 (0)2622-42255-20 www.LinuxCampus.net ✔ ✔

Siedl Networks GmbH A-3500 Krems a. d. Donau, Dr.-Franz-Wilhelm-Str. 2 +43 (0)2732-71545-0 www.siedl.net ✔ ✔ ✔ ✔ ✔

CATATEC CH-3013 Bern, Dammweg 43 +41 (0)31-3302630 www.catatec.ch ✔ ✔ ✔

Anzeigen

COMMUNITY- ● Linux-Erfahrung seit 1992


● Ihr Dienstleister seit 1998

EDITION
・GNU / Linux
・Netzwerke
CC-Lizenz: ・Systeme
Frei kopieren und
weiter verteilen!

Jeden Monat 32 Seiten als kostenloses PDF! ● Mailsysteme


・sicher: DANE, DNSSEC, TLS/SSL
・flexibel: Exim (SMTP),
Dovecot (POP3/IMAP)

Jetzt bestellen unter:


● Exim - MTA
http://www.linux-user.de/ce
・Consulting
・Schulung
・Entwicklung

internet & unix support


Tannenstr. 2, 01099 Dresden

Tel./Fax: +49 351 8029981/83


Service Usergroups

Linux.Usergroups
Aachen Aachener Linux-Usergroup (ALUG) Berlin / Fried- LinuxWorks! Delitzsch Linux-Usergroup Delitzsch Fürth Fürther Linux-Usergroup (FLUG)
http://www.alug.de richshain-Kreuz- http://www.linux-works.de (Sachsen) http://www.lug-delitzsch.de http://www.fen-net.de/flug
berg

Aachen C omputer-Club an der RWTH Aachen Detmold Linux-Usergroup Ostwestfalen-Lippe Gießen L inux-Usergroup Gießen (LUGG)
e.V. (CCAC) Berlin / Marzahn- Open-Source-Fan-Group Marzahn-­ (LUGOWL) http://www.lugg.de
http://www.ccac.rwth-aachen.de Hellersdorf Hellersdorf (OSFanG) http://lug-owl.de/Lokales/Detmold/
http://www.osfang.de
Grafing L inux-Usergroup Grafing (LUGG)
Aalen Linux-Usergroup Aalen Dortmund Linux-Usergroup Dortmund http://www.lug-grafing.org
http://www.lug-aalen.de Bern (CH) L inux-Usergroup Bern (LUGBE) ­(LUGRUDO)
http://www.lugbe.ch http://www.outerspace.de/lugrudo/
Greifswald Linux-Usergroup Greifswald
Ahaus L inux-Usergroup Ahaus (LUGAH) http://www.lug-hgw.de/
Biel / Bienne / Linux-Usergroup Seeland Dresden Linux-Usergroup Dresden
http://www.lugah.de
Seeland (CH) (LugSeeland) http://lug-dd.schlittermann.de/
http://www.lugseeland.ch Groß-Gerau L inux-Usergroup Groß-Gerau (LUGGG)
Ahlen/Westfalen LUG Ahlen http://www.luggg.de
Duisburg D uisburger Linux-Usergroup (DULUG)
http://linuxahlen.li.funpic.de/ http://www.dulug.de
Bielefeld Linux-Usergroup Ostwestfalen-Lippe
http://lug-owl.de/Lokales/Bielefeld/ Gummersbach Gummersbacher Linux-Usergroup
(GULUG)
Ahrtal L inux-Usergroup Ahrtal (Ahrlug) Düsseldorf L inux-Usergroup Düsseldorf (DLUG) http://www.gulug.de
http://www.ahrlug.de http://www.dlug.de
Bitburg-Prüm Linux-Usergruppe Schneifeltux
http://www.schneifeltux.de Gunzenhausen Gunzenhauser Linux-Usergroup
Aichach Linux-Usergroup Aichach Ebstorf E bstorfer Linux-Stammtisch (ELST) (LUGGUU)
http://www.lug-aichach.de support@konqi-werkstatt.de http://www.gunnet.de/linux
Bocholt L inux-Usergroup Bocholt (BLUG)
http://www.blug.de
Altdorf / G NU/Linux User Group Altdorf Eichsfeld E ichsfelder Linux User Group (EICLUG) Gütersloh Linux-Usergroup Ostwestfalen-Lippe
Nürnberg (GLUGA) http://linux.eichsfeld.net (LUGOWL)
Bochum L inux-Usergroup Bochum (BGLUG)
http://www.gluga.de http://lug-owl.de/Lokales/Guetersloh/
http://www.bglug.de
Elmshorn C omputerclub Elmshorn e.V.
Amberg Open-Source-Stammtisch Amberg Göttingen G öttinger Linux User Group (GOELUG)
Bonn L inux/Unix Usergroup Sankt Augustin http://www.computerclub-elms-
(amTuxTisch) http://www.goelug.de/
(LUUSA) horn.de
http://www.amtuxtisch.de/
http://www.luusa.org
Erding Linux-Usergroup Erding Göttingen Göttinger Unix/Linux-Anwender­
Ansbach L inux-Usergroup Ansbach (LUGAN) http://www.lug-erding.de gruppe (GULAG)
Bozen (Südtirol) L inux-Usergroup Bozen (LUGBZ) http://gulag.de
http://www.lug-an.de http://www.lugbz.org
Erlangen E rlanger Linux-Usergroup (ERLUG) Hagenberg (A) L inux User Group der FH Hagenberg
Aschaffenburg Linux-Usergroup Aschaffenburg Brandenburg B randenburger Linux User Group http://www.erlug.de (fhLUG)
(LUGAB) e.V. (BraLUG) http://fhLUG.at
http://www.lug-ab.de http://www.bralug.de Essen E ssener Linux-Freunde (ELiF)
http://www.linuxstammtisch.de Halberstadt Linux-Usergroup Halberstadt
Augsburg L inux-Usergroup Augsburg (LUGA) Braunschweig Braunschweiger Linux-User-Group http://www.lug-hbs.de
http://www.luga.de (BSLUG) Essen E ssener Linux-Usergroup (ELUG)
http://www.bs-lug.de http://www.elug.de Hamburg L UG-Balista Hamburg e.V. (LUG-
Backnang Linux-Usergroup Backnang Balista )
http://www.lug-bk.de Bremen Linux-Stammtisch Bremen http://www.lug-balista.de
Essen P erl Mongers im Ruhrgebiet (Ruhr.pm)
http://www.lug-bremen.de http://ruhr.pm.org/
Bad Brückenau L inux-Usergroup Bad Brückenau Hamburg U nix-Gruppe der Hamburger MH e.V.
rol42@web.de Bremerhaven Linux-Stammtisch Bremerhaven http://www.hmh-ev.de
Esslingen Linux-Usergroup Esslingen
http://www.lug-bremerhaven.de http://rhlx01.rz.fht-esslingen.de/lug/
Bad Driburg L inux-Usergroup Bad Driburg Hameln L inux-Usergroup Weserbergland (LBW)
http://www.bdpeng.de.vu Bretten B rettener Linux-Usergroup (BRELUG) http://tux.hm
Ettlingen / Albtal LUG Albtal
http://www.brelug.de http://www.lug-albtal.de
Hanau H anauer Linux-Usergroup (HULUG)
Bad Hersfeld Linux-Usergroup Hersfeld
Bruchsal Linux-Usergroup Bruchsal http://www.hulug.de
http://www.lugh.de
Fischbachtal F ischbachtaler Linux User Group
http://www.lug-bruchsal.de (FIBALUG)
http://takealug.de Hannover L inux-Usergroup Hannover (LUGH)
Bad Wildungen L inux-Usergroup Bad Wildungen
Buchholz Nord- L inux-Usergroup Buchholz Nordheide http://lug-hannover.de
http://linuxheaven.cjb.net
heide http://www.linux21244.de/ Flensburg L inux-Usergroup Flensburg (LUGFL)
http://www.lugfl.de Hattingen H attinger Linux-Usergroup (HatLug)
Bamberg L inux-Usergroup Bamberg (GLUGBA) http://www.hatlug.de
http://www.lug-bamberg.de Böblingen / Linux-Usergroup Böblingen/Sindel-
Sindelfingen fingen (LUGBB) Frammersbach Frammersbacher LUG
http://www.lugbb.org kke@gmx.net Hegau H egau Linux User Gruppe (Hegau
Basel (CH) L inux-Usergroup Basel (BLUG) LUG)
http://www.blug.ch http://www.linuxag.hegau.org
Celle Linux-Usergroup Celle Frankfurt Linux-Usergroup Frankfurt
http://www.lug-celle.de http://www.lugfrankfurt.de
Bautzen Linux-Usergroup Bautzen Heidenheim L inux User Group Heidenheim
http://www.lug-bz.de http://www.lug-hdh.de
Chemnitz L inux-Usergroup Chemnitz (CLUG) Freiburg F reiburger Linux-Usergroup (FLUG)
http://www.clug.de http://www.freiburg.linux.de
Bayreuth Linux-Usergroup Bayreuth Heilbad Heiligen- Linux-Stammtisch LinuxNode
http://www.linux-bayreuth.de stadt Eichsfeld
Cottbus C ottbuser Linux-Usergroup (COLUG) Freising L inux-Usergroup Freising (LUGFS) http://linuxnode.eichsfeld.net
http://www.colug.de/ http://www.lug-fs.de
Bergisch Glad- Bergische Linux- und Unix-Enthusias-
bach ten u. -Freunde (BLUEFROGS) Herford G NU/Linux Usergroup Herford
http://www.bluefrogs.de Damme U sers of Linux Damme (ULD) Friedberg F riedberger Linux User Group (FriLUG) (GLUGHF)
http://www.damme.de (Hessen) http://www.frilug.de http://lug-owl.de/LugWiki/GLUGHF

Berlin L inux-Usergroup Berlin (BeLUG) Hesel C C Ostfriesland - Linux-Gruppe


Darmstadt L inux User Group Darmstadt (DaLUG) Friedrichshafen Y et another Linux User Group (YALUG)
http://www.belug.de http://www.cco-online.de/linux
http://www.dalug.org http://yalug.de

Berlin Ubuntu Berlin Holzminden C omputerclub Hochsolling e.V.


Datteln L inux-Usergroup Datteln (LUGD) Fulda Linux-Usergroup Fulda
http://www.ubuntu-berlin.de http://www.cch-holzminden.de/
http://www.lug-datteln.de http://lug.rhoen.de

92 www.linux-magazin.de 08.2023
Linux.Usergroups
Horrheim Linux-Usergroup Vaihingen/Enz Köln Linux-Workshop Köln (LiWoK)
(VLUG) http://www.uni-koeln.de/themen/
http://www.vlug.de linux/

Hoyerswerda Linux-Usergroup Hoyerswerda Lahr / Schwarz- Blackforest Linux

WISSEN, WIE DER


(HOYLUG) wald http://www.blackforest-linux.de/
http://linux.griebel-web.eu/

Landau L inux-Usergroup Landau (LUG-


Idstein (Taunus) L inux-Usergroup Taunus (LUG-Taunus)
Landau)

HASE LÄUFT!
http://www.lug-taunus.org
http://www.lug-ld.de

Ingolstadt L inux-Usergroup Ingolstadt e.V. Landshut Linux-Usergroup Landshut


http://www.lug-in.de http://www.lalug.de

Iserlohn Linux-Usergroup Iserlohn Langen (Hessen) L angener Linux-Usergroup (LaLUG)


http://area51.fh-swf.de/ / Dreieich / http://www.lalug.net

n Top-News auf einen Blick


Egelsbach

Itzehoe C omputer Club Itzehoe e.V. (CCIZ) Langenfeld Langenfelder Linux-Usergroup


http://www.cc-itzehoe.de
n Job-Angebote für Linux-Profis
(LANLUG)
http://www.lanlug.org

Jena L inux-Usergroup Jena (LUG Jena)

n Tipps für die Praxis


http://www.lug-jena.de Lauf an der L inux-Usergroup Lauf a. d. Pegnitz
Pegnitz (LUGLAUF)
http://www.lug-lauf.de
Kaarst K aarster Linux-Usergroup (KAALUG)
http://www.kaalug.de Leipzig Leipziger Linux-Stammtisch
http://www.gaos.org/lug-l/

Kaiserslautern Linux-Usergroup Kaiserslautern


(LUG-KL) Lenningen L inux User Group Lenningen
http://www.lug-kl.de http://linuxusergrouplenningen.de.vu

Kaiserslautern U niversität Kaiserslautern (UNIX-AG)


http://www.unix-ag.uni-kl.de/~linux/ Linz (A) L inux-Usergroup Linz (LUGL)
http://www.lugl.at

Karlsruhe K arlsruher Linux-Usergroup (KaLUG)


http://www.karlsruhe.linux.de Lohr L inux-Usergroup Lohr (LUG Lohr)
http://lug.lohr-am-main.de

Kassel L inux-Usergroup Kassel (LUGK)


http://www.lug-kassel.de Ludwigsburg L inux-Usergroup Raum Ludwigsburg
(LuLUG)
http://www.lulug.de
Kempten L inux-Usergroup Allgäu (LUGAL)
http://www.lugal.org Luxembourg L inux Luxembourg (LiLux)
http://www.linux.lu

Kiel LUG Kiel


http://www.lug-kiel.de Lüneburg Linux-Usergroup Lüneburg
­(LueneLUG)
http://luene-lug.org
Kierspe-Meinerz- L inux-Usergroup Märkischer Kreis
hagen (LUGMK)
Lünen LUG Lünen
linuxusergroupmk@netscape.net
http://www.lug-luenen.de

Koblenz L inux User Group Mayen-Koblenz


(LUG-MYK) Lörrach L inux-Usergroup Lörrach (LUGLOE)
http://www.lug-myk.de/ http://www.lug-loerrach.de

Konstanz L inux-Usergroup Bodensee (LLUGB)


Lörrach Lörrach Linux-Café
http://llugb.amsee.de/
http://technik.cafe

Konz L inux-Usergroup Konz (TRILUG)


Magdeburg Magdeburger Linux-Stammtisch
http://www.trilug.fh-trier.de
http://www.netz39.de/events/event/
linux-stammtisch

Krefeld L inux-Usergroup Krefeld (LUG-KR)


http://www.lug-kr.de Marburg  arburger Linux-Usergroup (MRLUG)
M
http://www.mr-lug.de

Kreuzlingen (CH) Linux-Usergroup Kreuzlingen


http://linuxtreff.ch/ Marktredwitz Linux-Gruppe Marktredwitz
ststroes@tirnet.de

Kronach Linux-Usergroup Kronach


http://www.lug-kronach.de Marl Linux-Usergroup Marl
http://www.lug-marl.de

Köln K ölner Gentoo Linux User Group


(KGLUG) Meppen Linux-Usergroup Meppen
http://www.kglug.de http://www.lug-meppen.de

Jetzt kostenfrei anmelden für den


COMMUNITY NEWSLETTER!
08.2023
www.linux-community.de/newsletter
Service Usergroups

Linux.Usergroups
Metelen Linux-Stammtisch Metelen Ortenaukreis/ Kinzigtäler Linux User Group (KiLUG) Sauerland Linux-Usergroup Sauerland Waiblingen Computerclub Waiblingen e.V.
http://www.linuxdu.de Baden http://www.kilug.de http://www.lug-sauerland.de http://www.ccwn.org

Osnabrück Linux-Usergroup Osnabrück Schaumburg Linux-Usergroup Schaumburg


Mitterteich Linux-Usergroup Mitterteich Waldkraiburg Linux-Usergroup Waldkraiburg
http://www.linux-mitterteich.de http://www.lugo.de http://www.lug-schaumburg.de http://www.lug-waldkraiburg.org

Moers L inux-Usertreffen in Moers Ostholstein L UG Ostholstein (LUGOH)


Schwabach L inux User Schwabach e.V. (LUSC) Waldmünchen gnu/linux/bsd session
opers@syrinx1.du.gtn.com http://www.lugoh.de
http://www.lusc.de http://session.pestilenz.org

Moers LUG Moers Ostwestfalen- Linux-Usergroup Ostwestfalen-Lippe


http://lugmoers.de Lippe (LUG-OWL) Schweinfurt Linux-Usergroup Schweinfurt Walsrode Linux-Usergroup Walsrode
http://www.lug-owl.de http://www.lug-sw.de http://www.lug-walsrode.de/
Mosbach L inux-Usergroup Mosbach (LUGMOS)
http://linuxwiki.de/LugMosbach Paderborn Linux-Usergroup Ostwestfalen-Lippe Schweiz (CH) Linux-Usergroup Switzerland
(LUG-OWL) Weinheim C omputer-Club Weinheim e.V. (CCW)
http://www.lugs.ch http://ccw.iscool.net
http://lug-owl.de/Lokales/Paderborn/
München B SD Social Event München (BSE)
http://bse.42.org
Peine L inux-Usergroup Peine (LUGP) Schwerin West-Mecklenburger Linux-Usergroup Weißenbrunn L inux-Usergroup Kronach (LUGKR)
http://www.lug-peine.org (WEMELUG) http://www.kronachonline.de
München B SD-Usergroup in München (BIM) http://www.wemelug.de
http://berklix.org/bim/
Pfaffenhofen Hallertux e.V.
(Ilm) http://www.hallertux.de Wernigerode Linux-Usergroup Wernigerode
Senftenberg L inux-Usergroup Senftenberg (LUGSE) (LUGWR)
München  ünchner Gentoo Linux User Group
M
http://www.lugse.de http://www.lug-wr.de
(MGLUG)
http://www.mglug.de Pforzheim L inux-Usergroup Pforzheim (LUGP)
http://www.pf-lug.de
Siegen U NIX-AG Siegen (Uni-GH Sie) Westerwald Linux-Usergroup Westerwald
München  ünchner Linux-Usergroup (MUC-LUG)
M http://www.si.unix-ag.org http://www.lug-westerwald.de
http://www.muc-lug.de Potsdam P otsdamer Linux-Usergroup (UPLUG)
http://www.uplug.de
München Süd-Ost L inux-Usergroup Ottobrunn (LUGOTT) Sinsheim L inux-Usergroup Sinsheim (SiLUG) Wien (A) L inux-Usergroup Austria (LUGA)
http://www.linuxwiki.de/LugSinsheim http://www.luga.or.at
/ Ottobrunn http://www.lug-ottobrunn.de Preetz (Schles- L inux Usergroup Preetz (PreetzLUG)
wig-Holstein) http://preetzlug.de
Münster L inux-Stammtisch Münster (MueSLI) Speyer Linux-Usergroup Ketsch Wien (A) L inux-Usergroup TU Wien (LLL)
http://www.mueslihq.de http://www.lug-ketsch.de lll@radawana.cg.tuwien.ac.at
Prerow Linux-Usergroup Prerow
c.dittmann@geeks2rent.co.uk
Mönchen- Linux-Usergroup Mönchengladbach
St. Pölten (A) L inux-Usergroup St. Pölten (LUGSP) Wiesbaden L inux-Usergroup Wiesbaden Penguin
gladbach (LUGMOE)
Quickborn Q uickborner Linux-Usergroup (QLUG) http://www.lugsp.at Usergroup
http://www.lugmoe.de
http://www.qlug.net http://www.pug.org
Naumburg L inux User Group Naumburg Stormarn Linux-Usergroup Stormarn
(LUGNMB) Ravensburg / Linux-Users-Group Oberschwaben http://www.lug-stormarn.de Wilhelmshaven Linux-Usergroup Wilhelmshaven
http://lugnmb.dyndns.org Weingarten (LUGO) (LUG-WHV)
http://www.lug-ravensburg.de http://www.linux-whv.de
Neumarkt (Ober- Linux-Usergroup Neumarkt (LUGNM) Stuttgart L inux-Usergroup Stuttgart (LUGS)
pfalz) http://lugnm.de http://www.lug-s.org/
Regensburg Linux-Usergroup Regensburg Witten  ittener Linux-Usergroup (WitLUG)
W
http://www.lugr.de
http://www.witlug.de
Nieder-Olm Rheinhessener Linux-Gemeinschaft Taubertal T aubertäler Linux-Usergroup (TaLUG)
info@kkcs.de Reutlingen Linux-Usergroup Reutlingen http://www.talug.de/
http://www.lug-reutlingen.de Wolfsburg Wolfsburger Linux-Usergroup
Niederrhein N iederrheinische Linux Unix User (WOBLUG)
Group (NLUUG) Thüringen T hüringer Linux-Usergroup (TLUG) http://www.lug.wolfsburg.de
Rheda-Wieden- Linux-Usergroup Rheda-Wiedenbrück http://www.tlug.de/
http://www.nluug.de
brück (LUG-RHWD)
http://www.lug-rhwd.de Worpswede Linux-Werkstatt
Nußdorf / Aiging L inux-Usergroup Traunstein (LUGTra) Tirol (A) T iroler Linux Usergroup (LUGT) (Hüttenbusch) http://linux-werkstatt.
http://www.lug-ts.de http://www.lugt.at huettenbusch.de
Rhein-Neckar U nix Usergroup Rhein-Neckar e.V.
(UUGRN)
Nürnberg Linux-Usergroup Nürnberg http://www.uugrn.org Wuppertal Wuppertaler Linux-Usergroup
­(LUG-Noris) Traunstein L inux-Usergroup Traunstein (LUGTS)
http://www.lug-ts.de (WupLUG)
http://www.lug-noris.de Rosenheim Linux-Usergroup Rosenheim http://www.wuplug.org
http://www.lug-ro.org
Nürnberg L inux-Usergroup Nürnberg (LUGNü) Troisdorf / Sieg- Troisdorfer Linux-Usergroup (TroLUG)
http://www.align.de/ Würmtal  ürmtaler Linux-Usergroup (WLUG)
W
burg / Spich http://www.trolug.de
Rostock Rostocker Linux-Usergroup http://www.wlug.de
http://linux.baltic.net
Oberhausen L inux-Usergroup Oberhausen (LUGOR)
http://www.linuxob.de Ulm L inux-Usergroup Ulm (LUGU)
Würzburg L inux-Usergroup Würzburg (WÜLUG)
Römerberg / L UG Römerberg / Speyer http://www.lugulm.de
http://www.wuelug.de
Speyer http://linuxwiki.de/
Oberwallis (CH) L inux-Usergroup Oberwallis (LUGO)
LugRoemerbergSpeyer
http://www.lugo.ch Viersen L inux-Usergroup Viersen (LUGV)
http://www.lug-viersen.de Würzburg L inux-Usergroup Würzburg (LUGWUE)
Saalfeld LUG Slf/Ru http://www.lugwue.de
Offenburg FreieSoftwareOG http://lug-slf.de
http://www.freiesoftwareog.org/
Villingen-Schwen- Linux User Group Villingen-Schwen-
ningen ningen e.V. (LUG-VS e.V.) Zittau Linux-User-Group Zittau
Saarland L inux User Group Saar e.V. (LUG Saar) http://werkraum.freiraumzittau.de
Offenburg L inux-Usergroup Offenburg (LUGOG) http://www.lug-vs.org
http://www.lug-saar.de
http://www.lugog.de

Voralpen (A) L inux-Usergroup Voralpen (VALUG) Zweibrücken Linux-Usergroup Zweibrücken


Oldenburg L inux-Usergroup Oldenburg (LUGO) Salem Linux-Usergroup Salem
http://www.lug-salem.de http://www.valug.at http://www.lug-zw.de
http://oldenburg.linux.de

Olpe Linux-Usergroup Olpe Salzburg (A) Linux-Usergroup Salzburg Vorarlberg (A) L inux-Usergroup Vorarlberg (LUGV) Zwickau L inux-Usergroup Zwickau (ZLUG)
http://www.lug-raum-olpe.de.vu http://www.salzburg.luga.or.at http://www.lugv.at http://www.zlug.org

94 www.linux-magazin.de 08.2023
© tostphoto,123RF
README
In jedem Artikel in diesem Magazin liefert eine Reihe spezieller Textauszeichnungen und
­hilfreicher grafischer Elemente wichtige Zusatzinformationen zum Text. Jörg Luther

Der Mensch lebt nicht vom Text allein: Der „Umbruchhaken“ am Ende der ersten dem ein blauer Pfeil nach rechts weist: .
Zu so gut wie jedem Artikel im Linux-­ Zeile des Codes verweist hier darauf, dass Wenn Sie häufig im WWW unterwegs
Magazin gehört eine Reihe von Zusatz­ es sich eigentlich bei dem Codesegment sind, ist Ihnen ein solches oder ähnliches
informationen, die das bloße Narrativ um eine einzige Eingabezeile handelt, die Element dort mit Sicherheit schon be-
um weiterführende Inhalte ergänzen. lediglich aus Platzgründen im Druck um- gegnet: Im Heft wie im Netz bezeichnet
Manche davon integrieren sich direkt brochen werden musste. In Listing-Kästen es den Verweis auf eine weiterführende
in den Textfluss, andere stehen als ge- gibt es diesen Umbruchhaken nicht, hier Information.
sonderte grafische Elemente in einer der ist jede Zeile farbig hinterlegt. Im Netz kann man sich durchklicken,
Textspalten. Alle diese Elemente folgen Doch zurück zur Kursivierung: Sie kann auf dem Papier funktioniert das leider
gewissen Konventionen, die denen, die außer Platzhaltern auch andere Elemente nicht. Um an die Links zum Artikel zu
sie kennen, das Verständnis des Texts bezeichnen, zum Beispiel Paketnamen ­gelangen, blättern Sie ans Ende des Bei-
­erleichtern oder aufzeigen, auf welchem und Benutzerkonten, etwa build-essential trags, wo Sie einen Kasten Weitere Infos
Weg sie an zusätzliches Material gelan- und root. Aber auch Menüpunkte dru- und interessante Links finden. Entweder
gen können. Da diese Konventionen nicht cken wir kursiv ab, wobei in Menüfolgen tippen Sie die dort angegebene URL
immer ganz intuitiv ausfallen, wollen wir eine Pipe die einzelnen Elemente trennt: www.lm‑online.de/qr/Nummer in einen
sie im Folgenden kurz erläutern. Sonstiges | Textkodierung | Unicode. Webbrowser ein – das führt Sie auf eine
Webseite mit allen Links zum Artikel –,
oder Sie scannen mit dem Smartphone
Typografische Konventionen Tasten und Tastenfolgen
oder dem Tablet den im Kasten ebenfalls
Der Fließtext jedes Artikels im Linux-­ Begegnet Ihnen im Text ein Buchstabe abgedruckten QR-Code ein und surfen
Magazin folgt typografischen Konven­ oder eine Buchstabenfolge in eckigen auf diesem Weg zur Seite mit den Links.
tionen, die die Orientierung erleichtern Klammern, wie [Esc], handelt es sich da- Apropos QR-Code: In manchen Artikeln
und Elemente leichter identifizierbar bei um eine symbolische Taste, die für finden Sie auch einen Kasten Dateien
­machen sollen. So hebt eine blaue ­einen Tastendruck steht. Als Schreibweise zum Artikel herunterladen unter mit der
­Einfärbung Verweise auf Tabellen und dient dabei grundsätzlich die Beschrif- URL www.lm‑online.de/dl/Nummer. Er
Kästen hervor: siehe Kasten Kastentitel. tung der Tasten einer deutschen Tastatur. funktioniert analog zum Kasten mit den
Die Kursivierung signalisiert hier, wie in Ein Druck auf [T] erzeugt also ein kleines Links und bringt Sie auf eine Web­seite,
vielen anderen Fällen, eine symbolische „t“, die Kombination [Umschalt]+[T] ein die auf herunterladbare Dateien zum
Bezeichnung; in einem Codebrocken großes „T“. Das Pluszeichen zwischen den ­Artikel verweist. In vielen Fällen handelt
könnte das etwa so aussehen: Tasten signalisiert, dass man sie gleich- es sich dabei um die zugehörigen Listings.
zeitig ­drücken muss, ein Komma dagegen, Das auf dieser Seite abgedruckte Ex­
$ cat "EinTextbrocken" >>  dass es sie nacheinander zu betätigen gilt. emplar dient allerdings lediglich als Bei-
Ausgabe.txt Das allseits beliebte Copy & Paste gelingt spiel und führt ins Nirgendwo. n
also mit [Strg]+[C], [Strg]+[V].

Dateien zum Artikel Infos und Downloads Weitere Infos und


herunterladen unter interessante Links
www.lm-online.de/dl/47673 An zahlreichen Stellen im Text finden www.lm-online.de/qr/47673
Sie ein blau umrandetes Quadrat, aus

08.2023 www.linux-magazin.de 95
Service Inserenten

Inserenten
B1 Systems GmbH www.b1-systems.de 1, 100 Netways GmbH www.netways.de 7, 11
Computec Media GmbH www.computec.de 61, 99 PC Games Hardware www.pcgameshardware.de 27, 47
Fernschule Weber GmbH www.fernschule-weber.de 90 Raspberry Pi Geek www.raspberry-pi-geek.de 90
Heinlein Consulting GmbH www.heinlein-support.de 9 Schlittermann
www.schlittermann.de 91
Linux-Community www.linux-community.de 13, 93 internet & unix support

Linux-Magazin www.linux-magazin.de 19, 34, 67, 98 Thomas Krenn AG www.thomas-krenn.com 2

Linux-Magazin Online www.linux-magazin.de 25, 90, 96 Einem Teil dieser Ausgabe liegt eine Beilage der Firma Strato AG (www.strato.de) bei.
Linux User www.linux-user.de 79, 91 Wir bitten unsere Leser um freundliche Beachtung.

Autoren
Autor/-in Artikel Seite Martin Gerhard Loschwitz Mit Überblick 28
Jens-Christoph Brendel Tux liest 60 Martin Gerhard Loschwitz Wir haben ein Problem 52
Erik Bärwaldt Schlagzeilen 38
Jürgen Quade Lücken stopfen 64
Paul Büchner Alles bestens verpackt 76
Thomas Reuß Für den Ernstfall 48
Hans-Georg Eßer Bitte abbiegen! 70
Mike Schilli Dr. Drahtlos 80
Markus Feilner Doku ist Teamwork 20
Mark Vogelsberger Gelernt ist gelernt 62
Friedhelm Greis Auf der Wunschliste 58
Mark Vogelsberger Gut getarnt 75
Rainer Grimm Vielseitige Konzepte 86
Anna Lehmann Baustelle Doku 14 Uwe Vollbracht Tooltipps 36

Eva-Katharina Kunst Lücken stopfen 64 Carsten Zerbst Alles bestens verpackt 76

Events
14.-16.07.2023 15.-19.08.2023 10.-12.10.2023
Hackover 2023 Chaos Communications Camp 2023 it-sa Expo&Congress 2023
Hannover Zehdenick Nürnberg
https://hackover.de https://events.ccc.de https://www.itsa365.de/de-de

15.-21.07.2023 10.-17.09.2023 19.-21.10.2023


Akademy 2023 DebConf 23 Open Source Summit Europe
Thessaloniki, Griechenland / online Kochi, Kerala, Indien Bilbao, Spanien
https://events.linuxfoundation.org/open-source-sum-
https://akademy.kde.org https://wiki.debian.org/DebConf/23
mit-europe/
26.-31.07.2023 13.-14.09.2023
07.-09.11.2023
GUADEC 2023 stackconf 2023 OSMC 2023
Riga, Lettland Berlin Nürnberg
https://events.gnome.org/event/101/ https://stackconf.eu https://osmc.de

05.-06.08.2023 14.-16.09.2023 18.11.2023


FrOSCon 2023 21. Kieler Open-Source- und Linux-Tage Linux Presentation Day 2023.2
Sankt Augustin Kiel An vielen Orten in Deutschland
https://www.froscon.org https://kielux.de https://l-p-d.org

INODES, INIT & IDEEN


N SOURCE
LINUX UND OPEre m Newsletter
topaktuell mit unse

www.linux-magazin.de/subscribe
Impressum Service

ABONNEMENT
Preise Print Deutschland Österreich Schweiz
Probeabo (3 Ausgaben)
No Media-Ausgabe € 17,00 € 17,00 € 17,00
DVD-Ausgabe € 21,00 € 21,00 € 21,00 Ein Unternehmen der MARQUARD MEDIA GROUP AG
Verleger: Jürg Marquard
Jahresabo (12 Ausgaben)
No-Media-Ausgabe € 92,00 € 100,00 € 107,00 Redaktion Computec Media GmbH
Redaktion Linux-Magazin
DVD-Ausgabe € 112,00 € 120,00 € 127,00 Dr. -Mack-Straße 83
Jahres-DVD zum Abo 1 € 6,70 € 6,70 € 6,70 90762 Fürth
Telefon: (0911) 2872-110
Preise Digital Deutschland Österreich Schweiz
E-Mail: redaktion@linux-magazin.de
Heft-PDF Einzelausgabe € 8,50 € 8,50 € 8,50 Web: http://www.linux-magazin.de
Digtal-Abo (12 Ausgaben) € 84,99 € 84,99 € 84,99 Geschäftsführer Christian Müller, Rainer Rosenbusch
Kombi Digital + Print € 104,00 € 112,00 € 119,00 Chefredakteur,
(No-Media-Ausgabe) (12 Aus- Brand/Editorial Director Jörg Luther (V.i.S.d.P.), joerg.luther@computec.de (jlu)
gaben)
Stv. Chefredakteur Jens-Christoph Brendel, jens-christoph.brendel@computec.de (jcb)
Kombi Digital + Print € 124,00 € 132,00 € 139,00 Redaktionsltg. Online Ulrich Bantle, ulrich.bantle@computec.de (uba)
(DVD-Ausgabe) (12 Ausgaben) Redaktion Carina Schipper, carina.schipper@computec.de (csi)
Ständige Mitarbeiter Kristian Kißling, Rainer Grimm, Martin Loschwitz, Jürgen Quade, Thomas Reuß,
1
nur erhältlich in Verbindung mit einem Jahresabo Print
Mike Schilli, Tim Schürmann, Mark Vogelsberger, Uwe Vollbracht, Carsten Zerbst
Schüler- und Studentenermäßigung: 20 Prozent gegen Vorlage eines Schülerausweises
Schlussredaktion Sabine Schmitt
oder einer aktuellen Immatrikulationsbescheinigung. Der aktuelle Nachweis ist bei Verlängerung neu zu
DELUG-DVD Tim Schürmann, info@tim-schuermann.de
erbringen. Andere Abo-Formen, Ermäßigungen im Ausland etc. auf Anfrage. Adressänderungen bitte um-
Grafik Judith Erb (Rohmaterial Titelseite: qvist, 123RF.com /
gehend beim Kundenservice mitteilen, da Nachsendeaufträge bei der Post nicht für Zeitschriften gelten.
Drew, https://drew.beer, CC BY 4.0)
Bildnachweis 123RF.com, Fotolia.de, Photocase.com, Pixelio.de, freeimages.com und andere

Krypto-Info Marketing Jeanette Haag (Ltg.), Simon Schmid, marketing@computec.de

Produktion Martin Closmann (Ltg.), martin.closmann@computec.de


GnuPG-Schlüssel der Linux-Magazin-Redaktion:
Uwe Hönig, uwe.hoenig@computec.de
pub 1024D/44F0F2B3 2000-05-08 Redaktion Linux-Magazin
Anzeigen Print/Digital Es gilt die Anzeigenpreisliste Nummer 32.
<redaktion@linux-magazin.de>
Sales Director Jens-Ole Quiel, jens-ole.quiel@computec.de, Telefon: +49 911 - 2872-253
Key fingerprint = C60B 1C94 316B 7F38 E8CC E1C1 8EA6 1F22 44F0 F2B3 Mediaberatung D, A, CH Bernhard Nusser, anzeigen@linux-magazin.de, Telefon: +49 911 - 2872-254
Public-Key der DFN-PCA: Mediaberatung USA Brian Osborn, bosborn@linuxnewmedia.com
und weitere Länder
pub 2048R/7282B245 2007-12-12,
DFN-PGP-PCA, CERTIFICATION ONLY KEY (DFN-PGP-Policy: 2008-2009) Internet http://www.linux-magazin.de
<https://www.pki.dfn.de/pgp> Täglicher Newsletter http://www.linux-magazin.de/mc/subscribe
Heftarchiv http://www.linux-magazin.de/Ausgaben
Key fingerprint = 39 D9 D7 7F 98 A8 F1 1B 26 6B D8 F2 EE 8F BB 5A
Leserbriefe redaktion@linux-magazin.de
PGP-Zertifikat der DFN-User-CA: Fragen zu Heft-DVDs cdredaktion@linux-magazin.de
Allgemeine Anfragen info@linux-magazin.de
pub 2048R/6362BE8B (2007-12-12),
DFN-PGP-User-CA, CERTIFICATION ONLY KEY (DFN-PGP-Policy: 2008-2009) ISSN 1432 – 640 X
<https://www.pki.dfn.de/pgp> Abo Die Abwicklung (Rechnungsstellung, Zahlungsabwicklung und Versand)
Key fingerprint = 30 96 47 77 58 48 22 C5 89 2A 85 19 9A D1 D4 06 erfolgt über unser Partnerunternehmen:
DPV Deutscher Pressevertrieb GmbH
Root-Zertifikat der CAcert: Leserservice Computec
Subject: O=Root CA, OU=http://www.cacert.org, CN=CA Cert Signing Authority/Email=sup- 20080 Hamburg
port@cacert.org Deutschland
SHA1 Fingerprint=13:5C:EC:36:F4:9C:B8:E9:3B:1A:B2:70:CD:80:88:46:76:CE:8F:33 Ansprechpartner für Reklamationen und Ersatzbestellungen ist Ihr Computec-Team in Deutschland
MD5 Fingerprint=A6:1B:37:5E:39:0D:9C:36:54:EE:BD:20:31:46:1F:6B E-Mail: computec@dpv.de
Tel: 0911 – 993 990 98
GPG-Schlüssel der CAcert: Fax: 01805 – 861 8002*
pub 1024D/​65D0FD58 2003-07-11 [expires: 2033-07-03] Support: Montag 07:00 – 20:00 Uhr, Dienstag-Freitag: 07:30 – 20:00 Uhr,
Key fingerprint = A31D 4F81 EF4E BD07 B456 FA04 D2BB 0D01 65D0 FD58 Samstag 09:00 – 14:00 Uhr
(* 14 Cent/Min. aus dem dt. Festnetz, max. 42 Cent/Min. aus dem dt. Mobilfunk)
uid CA Cert Signing Authority (Root CA) <gpg@cacert.org>
in Österreich, der Schweiz und weiteren Ländern
E-Mail: computec@dpv.de
Tel: +49 911 – 993 990 98
Rechtliches Fax: +49 1805 – 861 8002
Support: Montag 07:00 – 20:00 Uhr, Dienstag-Freitag: 07:30 – 20:00 Uhr,
COMPUTEC MEDIA ist nicht verantwortlich für die inhaltliche Richtigkeit der Anzeigen und Samstag 09:00 – 14:00 Uhr
übernimmt keinerlei Verantwortung für in Anzeigen dargestellte Produkte und Dienst- Abo-Infoseite http://shop.computec.de
leistungen. Die Veröffentlichung von Anzeigen setzt nicht die Billigung der angebotenen Abo-Bestellung http://shop.linux-magazin.de
Produkte und Service-Leistungen durch COMPUTEC MEDIA voraus. Sollten Sie Beschwerden
zu einem unserer Anzeigenkunden, seinen Produkten oder Dienstleistungen haben, möch- Pressevertrieb DMV Der Medienvertrieb GmbH & Co. KG • Meßberg 1 • 20086 Hamburg
ten wir Sie bitten, uns dies schriftlich mitzuteilen. Schrei­ben Sie unter Angabe des Magazins, https://dermedienvertrieb.de
in dem die Anzeige erschienen ist, inklusive der Ausgabe und der Seitennummer an: CMS Druck EDS Zrínyi Zrt., Nádas utca 8, 2600 Vác, Ungarn
Media Services, Franziska Behme, Anschrift siehe oben rechts.
Der Begriff Unix wird in dieser Schreibweise als generelle Bezeichnung für die Unix-ähnli-
chen Betriebssysteme verschiedener Hersteller benutzt. Linux ist eingetragenes Marken­
zeichen von Linus Torvalds und wird in unserem Markennamen mit seiner Erlaubnis ver-
wendet.
Eine Haftung für die Richtigkeit von Veröffentlichungen kann trotz sorgfältiger Prüf­ung
durch die Redaktion vom Verlag nicht übernommen werden. Mit der Einsendung von Deutschland:
Manus­kripten gibt der Verfasser seine Zu­stimmung zum Abdruck. Für unverlangt ein- 4PLAYERS, AREAMOBILE, BUFFED, GAMESWORLD, GAMESZONE, GOLEM, LINUX-COMMUNITY,
gesandte Manuskripte kann keine Haftung übernommen werden. Das Exklusiv- und LINUX-MAGAZIN, LINUXUSER, N-ZONE, GAMES AKTUELL, PC GAMES, PC GAMES HARDWARE,
­Verfügungsrecht für angenommene Manuskripte liegt beim Verlag. Es darf kein Teil des PC GAMES MMORE, PLAY 4, RASPBERRY PI GEEK, VIDEOGAMESZONE
Inhalts ohne ausdrückliche schriftliche Genehmigung des Verlags in irgendeiner Form Marquard Media Hungary:
­vervielfältigt oder verbreitet werden. JOY, JOY-NAPOK, INSTYLE, SHOPPIEGO, APA, ÉVA, GYEREKLÉLEK, FAMIILY.HU, RUNNER`S WORLD

08.2023 www.linux-magazin.de 97
Vorschau
auf 09/2023

© rawpixel / 123RF.com
Die nächste Ausgabe
erscheint am 03.08.2023

Offene Verwaltung
Open Source scheint für die viel disku-
tierte Digitalisierung der Verwaltung
eine geradezu maßgeschneiderte Opti-
on zu sein: Keine Lizenzkosten belasten
die klammen öffentlichen Kassen, die
Verwaltung ist nicht länger bestimmten Selbst ist der Mann DIY-Container
Anbietern ausgeliefert, und Transparenz
ist bereits eingebaut. Dennoch ist Open Bei dem Eigenbau-NAS, das Martin Inzwischen sollte sich herumgesprochen
Source noch immer kein Standard im Loschwitz in der nächsten Ausgabe vor- haben, dass es gefährlich sein kann, Do-
Rathaus. Weshalb freie Software dort stellt, handelt es sich nicht um ein teures cker-Container aus unbekannter Quelle
nur langsam Fuß fasst und was man Funktionsmonster, dessen vielfältige einzusetzen. Sie selbst zu erstellen, ist
­andererseits aus den Erfolgen vieler Dienste man doch nur zum kleineren Teil auf jeden Fall weniger riskant – nur: Wie
­einschlägiger kommunaler Initiativen benötigt. Es ist deutlich kostengünstiger macht man das? Welche Methode ist si-
lernen kann, das untersucht das Linux- und lässt sich zudem zielgenauer an die cher und effektiv? Und wie können Dritte
Magazin in der nächsten Ausgabe. eigenen Bedürfnisse anpassen. das Resultat ohne Vorbehalte nutzen?

LinuxUser 08/2023 erscheint am 20.07.2023

Daten effizient sichern Wandschmuck


Backup-Tools kommen in vielen Ge- Fotocollagen bieten durch die Vielzahl
schmacksrichtungen, um den Ansprü- der abgebildeten Schnappschüsse eine
chen der Anwender gerecht zu werden. interessante Möglichkeit, die heimischen
In der nächsten Ausgabe stellen wir vier Wände oder den Online-Auftritt zu
­Ihnen passende Werkzeuge für jede verschönern. Software zum Gestalten von
Backup-­Situation vor, von der einfachen Fotocollagen ist unter Linux rar. Doch wir
Gnome-App Pika Backup bis zum leis- haben zwei entsprechende Programme
tungsfähigen Allrounder Duplicati. gefunden und stellen sie Ihnen vor.
© scyther5 / 123RF.com

JETZT REGELMÄSSIG PER POST


IM ABO OHNE VERPFLICHTUNG
Jahres-Abo
12 Ausgaben
nur 112,00 €
15 % Rabatt (auch als Magazin-Variante ohne DVD bzw. mit Jahres-DVD
erhältlich – mehr unter shop.linux-magazin.de)

Telefon: 0911 / 993 990 98 Fax: 01805 / 86 180 02 E-Mail: computec@dpv.de


Bequem online bestellen: shop.linux-magazin.de
WIEDER AM FALSCHEN
ENDE GESPART?

... nicht mit

DIE PREMIUM-
WÄRMELEITPASTE
FÜR GAMER!

www.pcgh-gear.de
EARLY-BIRD
TICKET BIS
30.06.

DEUTSCHE OPEN SOURCE TAGE

Cloud, Container,
Automatisierung & Storage
27. – 29. NOVEMBER 2023
IN BERLIN

Call for Papers bis zum 31.07.


Teilen Sie Ihr Wissen und Ihre Erfahrungen zu Open Source Infrastruktur-
und Storagelösungen oder Automatisierung. Reichen Sie Ihren Vorschlag
auf deutsche-opensource-tage.de/call-for-papers ein und werden Sie Teil
der diesjährigen DOST!

Veranstalter:
B1 Systems GmbH
Osterfeldstr. 7
85088 Vohburg
info@b1-systems.de
Tel.: +49 (0) 84 57 - 93 10 96

Das könnte Ihnen auch gefallen