You are on page 1of 124

02/15

DIE ZEITSCHRIFT FÜR LINUX-PROFESSIONALS

Projekt-Tools für
verteilte Teams

Linux-intern

Im Vergleichstest: Redmine, Open Project,
Basecamp und Zoho Projects S. 54

Binder und Kdbus: Neue
Einfacher zu installieren und
Methoden der Interprozess- erstmals in drei Varianten
Kommunikation S. 100
erhältlich S. 50

Fedora 21

E-Mail, aber sicher

Wie man Nachrichten heute vor Nachrichtendiensten verbirgt
Q Weil PGP und Gnu PG unpraktisch

zu handhaben sind, schlägt bald
die Stunde der Erben S. 32
Q Alles neu: Phil Zimmermanns Dime

soll Tor-ähnlich agieren S. 38
Q Statt STARTTLS: Transportver-

schlüsselung per DANE S. 42
Q Dmarc prüft die Absender S. 46

Q Schlanke

Spezial-Distributionen für die Cloud S. 70
Q Blickkontakt mit Touch:
Raspi-TFT-Display
S. 86

Knatsch im Hause Debian: Warum sich die Austritte in letzter Zeit häufen S. 26
www.linux-magazin.de

Deutschland

€ 6,40

Österreich

€ 7,05

Schweiz

sfr 12,80

Benelux

€ 7,50

Spanien

€ 8,30

Italien

€ 8,30

4 192587 306401

02

02/2015

Editorial
www.linux-magazin.de

Login

Vollspeed
Wenn ein Auto aus Karbonfasern und Leichtbauteilen gebaut ist und aus seinem röhrenden Zwölfzylinder-Motor 751 Pferdestärken galoppieren, dann ahnt
selbst der notorische U-Bahn-Fahrer: Dieses Gefährt ist nicht zum Transport der
Zwillinge zum Flötenunterricht gedacht. Dass es von 0 auf 100 in 2,8 Sekunden
beschleunigt und die Tachonadel erst bei 355 km/h hängen bleibt, unterstreicht
den Eindruck. Auf die Bühne rollt gerade der Lamborghini Venenodas, das mit
rund 3,5 Millionen Euro derzeit teuerste straßentaugliche Serienauto der Welt.
Die Karbon gewordene Unvernunft versetzt einen Teil der Zuschauer emotional
in einen Zustand, den er zuletzt als Fünfjähriger beim Anblick der Eisenbahn unter dem hell erleuchteten Christbaum hatte. Einen anderen Teil empören solche
Autos als ökologische Dinosauriere, denen das Weltklima am Auspuff vorbeigeht.
Jan Kleinert, Chefredakteur

Dass der Hersteller den Venenodas auf drei Stück limitiert, mildert das globale
Problem vielleicht genug, um den Blick frei zu machen auf eine andere bemerkenswerte Eigenschaft der Marke: Da niemand einen Lamborghini verschrottet, sind die Vertragswerkstätten
extra für die Arbeit auch mit alten Modellen geschult. Über ein Webportal können sie viele Original-Ersatzteile
aus der 51-jährigen Firmengeschichte bestellen. Ist einmal ein Spezialteil nicht vorrätig, fertigen Spezialisten
es nach den alten Plänen neu an. Arrivederci Wegwerfgesellschaft, willkommen in der Service-Oase!
Jetzt muss dieser Text eine gefährliche Spitzkehre nehmen. Also Fuß vom Gas, bremsen, Ideallinie nicht verlassen und beim Rausbeschleunigen auf die Traktion der Räder achten. Geschafft, es könnte aber noch etwas
quietschen, wenn der Wagen auf die Zielgerade Joomla 2.5 eingeschwenkt ist. Schon die Benutzer der Version
1.7 des Content Management System kamen 2012 alle beim nötigen Umstieg auf die 2.5 heftigst in Schlingern, da
die Community keinen Pfad vorgesehen hatte, um die eigenen Inhalte in die damals neue Version zu bekommen.
Jetzt wiederholt sich das Ganze in abgemilderter Form wieder: Noch vor wenigen Monaten rieten die JoomlaLeute 2.5-Benutzern, bei der Version zu bleiben, solange sie keine Features der 3er-Version vermissten. Mit
dem Wartungsrelease 2.5.28 nun endet überraschend die Unterstützung des Zweiges.
Die Macher schreiben verharmlosend: „Anwender sollten nicht in Panik verfallen, vorhandene Seiten werden
nicht von heute auf morgen am 31. Dezember aufhören zu funktionieren. Dennoch muss jeder Anwender der
Tatsache ins Auge sehen, dass er nun auf nicht länger aktiv unterstützte Software zurückgreift. Verantwortungsbewusste Anwender können also nur kurzfristig die fällige Aktualisierung ihrer Seiten auf Joomla 3
aufschieben, mittel- und langfristig stellt dies jedoch keine ernsthafte Option dar.“
Eine Webanwendung, die sonst alle ein, zwei Monate ein Sicherheitsupdate verpasst bekam, kann man in der Tat
nicht mehr lange laufen lassen. Zwar ist diesmal der Upgradeprozess geklärt. Aber praktisch jeder Anwender
hat diverse Module oder andere Erweiterungen von Drittanbietern installiert, und ob es dafür 3.0-kompatible
Varianten gibt und ob die im Positivfall zum vorhanden Content und Setup passen, steht in den Sternen.
Niemand stemmt sich gegen den technischen Fortschritt, nicht bei Automobilen und erst recht nicht beim
Webapplikationen. Aber der Anwender sollte eine realistische Chance haben, in vernünftigen Zeiträumen die
Modellwechsel mitzumachen – auch auch mal einen auszulassen. Denn Joungtimer haben auch ihren Reiz,
selbst außerhalb italienischer Rennställe.

3

02/2015

Inhalt
02/2015
www.linux-magazin.de

4

Ob private oder betriebliche Kommunikation – das Unbehagen wächst. Denn Geheimdienste
und Mitbewerber trachten danach, das technologische Urgestein E-Mail als sprudelnde Quelle
abzuschöpfen. Der Schwerpunkt dieser Ausgabe informiert über Gegenmaßnahmen: Verschlüsselnde Clients, Dime – das ehemalige Darkmail –, DANE und Absenderauthentifikation.

Aktuell
6

12

News
Q EU-Parlament will Google spalten
Q Devuan bringt Debian Systemd-frei
Q Limux: Reaktion der Opposition
Q Markenstreit: Gnome vs. Groupon

Titelthema: E-Mail, aber sicher
32
Titel

Zahlen & Trends
Microsoft gibt Dotnet Core frei
Q Niedersachsen: Polizei will Windows
Q Ubuntu diskutiert Flash-Zukunft
Q Eco-Verband fordert offene WLANs

Client-Sicherheit
PGP oder Gnu PG bieten zwar viel Sicherheit, handhaben sich aber so umständlich, dass kaum jemand sie benutzt.

42

Mehr Transportsicherheit
Wer glaubt, TLS alleine mache seinen
Mailverkehr sicherer, der irrt. Erst DANE
sorgt dafür, dass niemand unterwegs die
Verschlüsselung ausknipsen kann.

Q

PEP verifiziert die Schlüssel initial mit englischen oder deutschen Wortgruppen, die sich
gut am Telefon diktieren lassen.

38

Die Dime-Revolution
Alles neu bei digitaler Post will das frühere Darkmail machen.
46

Die Webseite der Open Cloud Alliance malt der
offenen Cloud eine rosige Zukunft.

18

OSMC 2014
Notizen von der Open Source Monitoring
Conference 2014.

20

Susecon in Orlando
In Florida stellte Suse erstmals alle
Features des neuen SLES 12 vor.

26

Knatsch bei Debian
Zerfällt das Debian-Projekt?

Service
3 Editorial
114 IT-Profimarkt
120 Veranstaltungen
120 Inserenten
121 Impressum
122 Vorschau

Für den sicheren Transport braucht es auch
eine zuverlässige Verschlüsselung.

Ladar Levison machte seinen Mailhoster Lavabit lieber zu, als mit der NSA zu kooperieren.

DELUG-DVD
Fedora 21

(64 Bit)
Eben erst erschienen, und hier
schon als ISO auf DVD:
Fedora Workstation für PCs

SLES 12
Bootet von der DVD: 60 Tage lang
laufende Vollversion (64 Bit)

Mail-Adressen verifizieren
Wem DKIM oder SPF nicht reichen, der
setzt auf Dmarc, um Mails zu filtern.

In Sachen Spam versteht Yahoo keinen Spaß,
macht es so aber gerade Mailinglisten schwer.

Details zu DVDInhalten auf S. 49

Verteidigen lernen
600-Seiten-Klassiker „Kenne deinen
Feind“ komplett als PDF

Susecon 2014
Keynotes-Videos aus Orlando.
Außerdem: Videomaterial vom
ersten Offenen IT-Gipfel in Hamburg

02/2015

Inhalt
02/2015

70

Software
49

Einführung
Auf der DELUG-DVD: SLES 12, Videos von
der Susecon, die Groupware Tine 2.0 in
einer virtuellen Maschine und Fedora 21.

50

Fedora 21
Die neue Red-Hat-Desktop-Distribution
will Macbooks das Fürchten lehren.

Titel

Lift in die Wolken
Abgespeckt, maßgeschneidert und
managebar: Open-Source-Cloud-Systeme wollen es dem Administrator so
einfach wie möglich machen.

110

Know-how

Sysadmin
69

Einführung
Aus dem Alltag eines Sysadmin: Charly
empfiehlt Metasploitable.

70

Cloud-Spezialisten
Betriebssysteme für die Cloud: OSv,
Cirros, Atomic und Snappy.

Titel

80

Schirmherr
Bereits im Morgengrauen lässt Perlmeister Mike Schilli die aktuelle Wettervorhersage einholen. Wird er heute
einen Regenschirm brauchen?

96

Raspi mit Nagios
Kleiner Überwachungsserver mit und für
den Raspberry Pi.

100 Android IPC
Titel
Zeitgemäße Interprozesskommunikation
erlauben Androids Binder oder Kdbus.

Skalierbarer Mail-Storage
Der beliebteste IMAP-Server im Tandem
mit Amazon: Fast beliebig skalierbarer
Mailspeicher mit Dovecot, Ceph und S3.

Deutlich verbessert und klarer präsentiert
sich Fedoras Installer Anaconda.

54
Titel

Auf der Ebene der Dienste und Prozesse eines
Linux-Systems flitzen Nachrichten hin und her.

Bitparade
Projektmanagement in der Cloud.
Freier Speicher ist das A und O jedes IMAP-Servers. Amazon hat davon genug im Angebot.

Programmieren
106

C++11 - Folge 20
Modernes C++ in der Praxis : Static
Asserts und die Traits-Bibliothek.

110

Perl-Snapshot
Mike Schillis Perl-Skript erkundigt sich
nach dem Wetter.

Hardware
86
Titel

Viermal kollaboratives Projektmanagement:
Basemap, Open Project, Redmine und Zoho.

64

Tooltipps
Im Kurztest: Pkgdiff 1.6.3, Load Avg 2.0,
Mlock 0.2, LXCF 0.11, Mlterm 3.4.0, Pimp
my Log 1.7.4.

Das Framework für Linux Containers LXCF erzeugt im Handumdrehen neue Instanzen.

Raspi-Monitor
Nicht nur für Bastler ein spannendes
Projekt ist der schicke Mini-Touchscreen
für den Raspberry Pi.

Forum
90

Recht
Nicht-kommerziell? Die CreativeCommons-Lizenz ist nicht klar genug.

94

Tux liest
Bücher über Git und
C++-Entwicklung

Den Weather-Underground-API-Key rückt der
Server gegen eine E-Mail-Adresse heraus.

www.linux-magazin.de

50 Apfelschwemme
Cloud, Server, Workstation: Drei Flavors zeichnen die neue Fedora aus,
aber auch jede Menge neuer Features
und Projekte, alles für den Power User.

5

02/2015

Aktuell
News
www.linux-magazin.de

6

News
Zertifizierungsbehörde für HTTPS
Die Electronic Frontier Foundation hat für 2015 mit Let’s
Encrypt eine neue Zertifizierungsbehörde angekündigt,
die weltweit den Weg für
den Übergang von HTTP zu
HTTPS ebnen soll. Zu den Unterstützern gehören Mozilla,
Cisco, Akamai, Identrust und
Forscher der Universität Michigan.
Zu den Herausforderungen eines HTTPS-Deployment zählt
die EFF die bürokratischen
Strukturen, die Komplexität
und die Kosten der Zertifikate. Wechselt ein Anbieter von
HTTP auf HTTPS, will Let’s
Encrypt künftig automatisch
freie Zertifikate für seine Webseiten ausstellen und verwalten. Die Setup-Dauer soll 20
bis 30 Sekunden betragen,

statt der bislang ein bis drei
Stunden.
Wer will, kann an Let’s Encrypt mitarbeiten, der Quellcode wartet unter [https://
github.com/letsencrypt/].
Zwischen den Webservern
und der CA soll laut Plan ein
von der EFF mitentwickeltes
Protokoll namens Acme zum
Einsatz kommen, das die Domain-Validierung verbessert.
Verwalten soll die neue CA
eine Non-Profit-Organisation
namens Internet Security ReQ
search Group (ISRG).

Sandisk plant 16-TByte-SSD
Nachdem Intel angekündigt
hat, in den nächsten zwei
Jahren 10-TByte-SSDs entwickeln zu wollen, übertrumpft
Sandisk dies nun und verspricht, bis 2016 SSDs mit einer Kapazität von 16 TByte zu
liefern, meldet die Onlineseite
„The Register“.
Wie Marketing-Mann Brian
Cox erklärte, werde die Firma
ihre 4-TByte-SSDs so weiterentwickeln, dass sie die Kapazität jährlich verdoppeln, im
nächsten Jahr auf 8 TByte, im
übernächsten auf 16 TByte.

Daneben sieht Brian Cox Bedarf für so genannte WormLaufwerke (Write once/Read
many), auf denen sich zum
Beispiel Bilder und Videos
von Facebook, Flickr oder
Netflix archivieren lassen.
Dafür könnte sich TLC-Flash
(Triple Level Cell) eignen, bei
dem jede Speicherzelle drei
Bits ablegen kann. Dessen geringere Widerstandsfähigkeit
gegen Schreiboperationen
würde in diesem speziellen
Anwendungsfall keine Rolle
spielen.
Q

EU-Parlament will Google spalten
Das EU-Parlament hat eine
Petition akzeptiert, die sich
dafür ausspricht, große Internetkonzerne aufzuspalten.
Obwohl Googles Name nicht
explizit fiel, ist Beobachtern
klar, dass Google im Fokus der
Initiative steht. Die vom spanischen Abgeordneten Ramon
Tremosa zusammen mit dem
deutschen CDU-Abgeordneten Andreas Schwab initiierte, allerdings nicht bindende
Resolution will den Suchmaschinenbetrieb von anderen
Aktivitäten trennen.
Der Entschluss, den die Abgeordneten Ende November mit
384 gegen 174 Stimmen bei 56
Enthaltungen angenommen
haben, fordert Suchergebnisse, die „frei von Verzerrungen
und transparent“ sind.

Die eigentlich zuständige EUKommission muss sich nicht
an das Votum halten, doch
die Entscheidung erzeugt politischen Druck auf die Kommission. Nach europäischem
Wettbewerbsrecht ist es ohnehin nicht unüblich, Unternehmen zu entflechten.
In den USA stößt die Entscheidung des EU-Parlaments auf
Unverständnis und Unwillen.
„Wir sind zunehmend besorgt
über einen offensichtlichen
Trend in der Europäischen
Union, ausländische Firmen
in Bezug auf die Digitalwirtschaft zu diskriminieren“,
schrieben die Vorsitzenden
der Finanzausschüsse beider
US-Kongress-Kammern in einem Brief an EU-ParlamentsQ
präsident Martin Schulz.

Fujitsu bringt NAS für den Mittelstand
Mit dem Primergy SX 1310 M1
hat Fujitsu ein neues Network-Attached-Storage-System
(NAS) für mittelständische
Anwender vorgestellt.
Das Gerät könne als zentraler
SAN- oder NAS-Speicher für
bis zu 12 TByte unstrukturierter Daten dienen. Es verfüge
über eine Reihe fortgeschrittener Features wie asynchrone,
wahlweise synchrone Volume-Replikation, Snapshots,
automatisches und Applikations-transparentes Failover,
Agenten-basiertes Backup,

Load Balancing sowie Continuous Data Protection.
Die Raid-Level 5 und 6 realisiert ein dedizierter Hardware-Raidcontroller. Das Betriebssystem läuft auf Intels
Xeon-E3-1226-v3-CPU. Unter anderem für Buffer und
Caches stehen 8 GByte RAM
bereit. Für eine angemessene
Netzwerkanbindung sorgen
zwei Gigabit-Ethernet-Schnittstellen. Das Primergy SX 1310
M1 vertreibt in Deutschland
etwa Bytec, es soll rund 1200
Q
Euro kosten.

02/2015

Aktuell
Während Debian in Zukunft
wohl auf Systemd setzt, machen dessen Kritiker, die
selbsternannten „Unix-Veteranen“, nun ernst und starten mit Devuan [https://devuan.
org] einen Debian-Fork, der
sich „Dev One“ ausspreche.
Bislang arbeite man an der
Kerninfrastruktur, zu der eine
Webseite, Mailingliste und ein
Paket-Repository gehören.
Das erste Paket sei Devuanbaseconf, ein Installer mit
Preseed von Sysvinit-core
und einigen Devuan-Paketen.
Es verzichte auf Systemd und
setze Systemd-shim ein, wo
Systemd als Abhängigkeit gefordert werde.

Das Bugtracking-System soll
für viele der Entwicklungstools von Debian funktionieren, über Github Issues will
man Aufgaben koordinieren.
Das Continuous Integration

Ankündigung von Devuan auf der Webseite.

Bosun: Monitoring von Stack Exchange
Unter einer Open-Source-Lizenz haben die Betreiber von
[http://stackexchange.com] das
hauseigene Monitoring- und
Alerting-System Bosun veröffentlicht. Bosun sei entstanden, so schreibt David Fullerton, Vice President für Engineering bei Stack Exchange,
nachdem man gemerkt habe,
dass der Alarm meist erst
dann losgehe, wenn das Kind
bereits in den Brunnen gefallen sei. Im Idealfall wollen
Admins aber im Vorfeld über
potenzielle Ausfälle Bescheid
wissen. Hinzu käme, dass
sich aus den Alarmmeldungen häufig nicht ablesen lasse, was auf dem System schief
gelaufen ist.
Bosun sei die Antwort von
Stack Exchange auf diese
Probleme und wird von Kyle Brandt und Matt Jibson
entwickelt. Die WebseitenMacher benutzen es seit ein

System soll Code aus Github
holen, ihn in einen JenkinsBuilder schieben und dann in
die Repositories verfrachten.
Viele traditionelle DebianEntwicklertools wolle man

paar Monaten intern und seien „wirklich glücklich“ mit
den Resultaten. Man könne
damit intelligenter messen
und komplexe Alarmsysteme
aufbauen. Die Komponenten
schickten über ein Json-API
Daten an Bosun, S-Collector
sammle Statistiken ein.
Alarme ließen sich zudem gegen vorherige Versionen einer
Software testen. Verstummen
sie nach der Rücknahme einer
Änderung, werde klar, welcher Commit den Alarm ausgelöst hat. Funktioniere Redis
nicht, bekomme der Admin
nicht für jede Instanz eine EMail. Zudem gebe es Vorhersagen, die warnen, dass Festplatten demnächst volllaufen.
Auf der LISA-Konferenz Anfang Dezember in Washington
hat Kyle Brandt das Tool vorgestellt, der Quellcode steht
unter MIT-Lizenz und wartet
Q
auf Github.

aktualisieren, aber letztlich
beibehalten.
Generell möchten die Abtrünnigen eine Debian-artige Infrastruktur aufbauen, aber in
Sachen Bürokratie nicht die
Fehler des Projekts wiederholen. Zudem gehe es darum,
die Beziehungen zu Upstream
und Downstream zu verbessern. Das erste Ziel sei, dass
2015 Nutzer von Debian 7
ohne Probleme auf Devuan
1 migrieren können. Devuan
soll minimal bleiben und der
Unix-Philosophie folgen, die
laute „Tu eine Sache und erledige sie gut“. Die Entwickler
rufen dazu auf, sich zu beteiligen und Geld zu spenden. Q

www.linux-magazin.de

News

Devuan startet als Debian-Fork ohne Systemd

7

02/2015

Aktuell
8

www.linux-magazin.de

News

Limux und die Münchner Politik: Reaktionen der Opposition
Nach Anfragen von Die Grünen/Rosa Liste und der FDPHUT-Piraten haben die AfD
und erneut die Grünen Nachfragen bei den Münchner Bürgermeistern gestellt. „Gibt es
einen Zusammenhang zwischen den Überlegungen,
wieder zu Microsoft-basierten
Produkten zurückzukehren,
und der Entscheidung von
Microsoft selbst, seine neue
Deutschland-Zentrale
im
Münchner Stadtgebiet und

nicht mehr in Unterschleißheim zu bauen? Gab es einen Kontakt zwischen der
Stadtspitze und Microsoft im
Zusammenhang mit einem
möglichen Umstieg?“, lautete eine Anfrage „Zurück zu
Microsoft – Warum?“ der AfDGruppierung im Stadtrat im
Wortlaut.
Die oppositionellen Grünen
stellten erneut einen Antrag,
der verlangt, die Stadt möge
der von Oberbürgermeister

Reiter angekündigten Effizienz- erst mal eine Zufriedenheitsanalyse voranstellen.
Erst eine solche könne Defizite, Anregungen und Verbesserungsvorschläge aufgreifen,
die dann als Grundlage für
eine externe Untersuchung
geeignet seien. Die geplante
Konzentration der Befragung
auf die Auswahl des Betriebssystems sei jedoch eine nicht
sinnvolle Verkürzung und
„falsche Engführung“.

Neuer HPC-Server von Dell
Der neue Poweredge C4130
eigne sich laut Hersteller
Dell angesichts seiner hohen
GPU-Dichte besonders für anspruchsvolle Rechenlasten. Er
biete eine höhere GPU-Dichte
als vergleichbare Wettbewerber. Als 1-HE-Server erreiche
der Poweredge C4130 eine
Leistung von mehr als 7,2
Teraflops bei 20 000 GPU-

Kernen und bringe es auf Performance-pro-Watt-Werte von
4,17 Gigaflops.
Der Poweredge C4130 biete
Raum für bis zu zwei IntelXeon-E5-2600-v3-Prozessoren,
16 DDR4-Dimm-Steckplätze
und bis zu zwei SATA-SolidState-Laufwerke in 1,8 Zoll.
Anspruchsvolle Berechnungen und Analysen im HPC-

ATP mit neuartiger
Flash-Firmware
Umfeld erledige der Poweredge dank seiner bis zu vier
300-Watt-GPU-Beschleuniger.
Die arbeiten mit Intels XeonPhi-Coprozessoren oder Nvidias Tesla-GPU-Beschleunigern (K40/K80) zusammen,
mit den zweiten verwenden
Kunden auch die Tools GPU
Direct und GPU Boost. Preise
gibt es auf Anfrage bei Dell. Q

Neues Raspberry-Pi-Modell im Handel
Der neue Raspberry Pi A+
ist ab Dezember auch in
Deutschland ab rund 18 Euro
plus Versand erhältlich. Wie
das Modell A benutzt auch

der A+ einen BCM-2835-Prozessor und 256 MByte RAM.
Er ist aber mit 65 mm Länge im Vergleich zum Modell
A (86 mm) deutlich kleiner,

Das Model A+ auf der Raspberry-Pi-Webseite.

Ob und bis wann das Rathaus
die neuen Anfragen beantwortet, ist noch nicht klar. Die
Anfrage der FDP-HUT-Piraten
nach konkreten Schwachstellen von Limux wartet bereits
seit Juli 2014 auf eine Antwort. Mit der Münchner IT
Befasste und Lokalpolitiker
berichten, dass bislang niemand der Stadtoberen mit
IT-Mitarbeitern Kontakt aufgenommen habe, der Grund
Q
bleibt unklar.

verbraucht weniger Strom
und enthält eine Reihe von
Verbesserungen. Dazu zählen
mehr GPIO-Pins (40 Stück),
ein Steckplatz für eine MicroSD-Karte und eine bessere
Audio-Unterstützung.
Die Entwickler haben den
Raspberry im Jahr 2011 mit
dem Ziel eingeführt, eine
Linux-Box für 25 Dollar anzubieten. Diesen Preis unterbietet das neue Modell A+
noch einmal, unter anderem
verkaufen Element 14 und
Pollin das Gerät.
Q

Um die Nachfrage nach sowohl kostengünstigem wie
hochwertigem Flashspeicher
zu befriedigen, hat SSD-Spezialist ATP nach Enterprise Multi Level Cell Flash (EMLC) eine Advanced-MLC-Firmware
(AMLC) entwickelt, die besonders zuverlässig sein soll.
Die neue Technologie kodiere
die Bits, vergleichbar mit der
Single Level Cell (SLC), nur
mit zwei Zuständen anstelle
der üblicherweise vier Zustände, die Multi Level Cell (MLC)
verwendet.
Mit diesem Trick erziele AMLC
nach Aussage von ATP einen
dreifach höheren Datendurchsatz als MLC, einen fünffach
verlängerten Datenerhalt sowie eine 13-mal höhere Lebensdauer (Endurance).
Zunächst möchte der Hersteller drei AMLC-Varianten
anbieten: 2,5-Zoll-SSD, SATA
Slim und M-SATA. Es gibt die
Flashspeicher in Kapazitäten
von 8 bis 64 GByte, weitere
Formate und Kapazitäten sind
geplant, Preise nennt die FirQ
ma auf Anfrage.

02/2015

Aktuell

Userspace-Stack für AMDs HSA ist da

Einem Tablet-Betriebssystem
für Point-of-Sale-Geräte hatte
der Betreiber der Rabatt-Webseite Groupon Anfang November den Namen Gnome verpasst und 28 Trademark-Anträge gestellt. Auf ihrer Webseite reagierten die GnomeEntwickler postwendend auf
den Namensdreh.
Die Gnome-Community sei
entsetzt darüber, dass Groupon einen Namen für sein
Produkt wähle, das so starke Ähnlichkeit mit dem des
Linux-Desktops aufweise. Sie
wundere sich zudem darüber,
dass eine Riesenfirma wie
Groupon den Linux-Desktop
nicht kennen soll, schließlich

gebe es das Gnome-Projekt
seit 17 Jahren, seit 2006 auch
als eingetragenes Markenzeichen.
Auf der Webseite der Foundation bat man um Spenden,
um einen potenziellen Rechtsstreit mit Groupon zu finanzieren, was schnell knapp
100000 US-Dollar einbrachte.
Doch der Aufschrei in der
OSS-Community blieb wohl
auch Groupon nicht verborgen. Am 12. November 2014
gab die Gnome Foundation
bekannt, dass die Firma ihr
Produkt umbenennen werde.
Die gesammelten Spenden
sollen nun dem Desktop-ProQ
jekt zugute kommen.

Oded Gabbay betreut den Kerneltreiber für AMDs Heterogeneous System Architecture
(HSA). Nun hat er auf der
Kernel-Mailingliste mitgeteilt,
dass der HSA-Runtime-Code
unter [https://github.com/HSAFoundation] bereitsteht.
Es handelt sich laut Gabbay
um den kompletten Userspace-Stack, mit dem sich
HSA-Anwendungen mit Kerneln betreiben lassen, die in
Open CL (ISO C99) geschrieben sind und auf den Kerneltreiber »amdkfd« aufsetzen.
Pläne, den Code für einen
Open-Source-Unterbau zu
veröffentlichen, hatte AMD
auf der GDC 14 verlautbart.

Das Repository halte auch einen HSA-Port der Matrix-Multiplikation-Anwendung von
Open CL vor. Dieser könne
zeigen, wie Compiler, Stack,
die Bibliothek »libhsakmt«
und das »amdkfd«-Modul zusammenspielen. Neben der
C-Datei der Anwendung liefere man die Quelle des OpenCL-Kernels sowie seine binäre
Version aus.
Auch eine Anleitung dazu,
wie Entwickler die HSA-Runtime und die HSA-Anwendung
sowie, mit Hilfe eines modifizierten R600-LLVM-Backend,
den Open-CL-Kernel aus den
Quellen kompilieren, findet
sich auf Github.
Q

www.linux-magazin.de

News

Markenstreit: Gnome gegen Groupon

9

02/2015

Aktuell
10

www.linux-magazin.de

News

Kurznachrichten
Handbrake 0.10.0: Tool aus Frankreich, mit dem sich Filme transkodieren
lassen. Neu: Handbrake plant Linux-Support für Intels Quicksync Video,
einen Hardware-basierten H.264-Encoder für Intel-CPUs und unterstützt
nun dank des x265-Projekts H.265, das Format High Efficiency Video
Coding (HEVC). Die »libvpx« tritt an die Stelle von Theora (VP3), sie enkodiert VP8 und erzielt wohl eine bessere Qualität bei geringen Dateigrößen.
Nicht zuletzt erreicht das Handbrake-GUI fast Feature-Parität mit der
Kommandozeilenversion. Lizenz: GPL [http://handbrake.fr]
Couch DB 2.0 (Developer Preview): Eine in Erlang geschriebene NoSQLDatenbank unter dem Dach der Apache-Foundation. Neu: Die Developer
Preview bringt eine neue Clustertechnologie mit, die horizontale Skalierbarkeit bietet, und schließt damit zum Konkurrenten Mongo DB auf.
Mango, ein vereinfachtes Abfragesystem für Couch DB über Json- und
HTTP-Endpunkte, hat der Hersteller unter die Apache-Lizenz 2.0 gestellt:
Das Feature blieb bislang dem Konkurrenten Mongo DB vorbehalten.
Lizenz: Apache 2.0 [http://couchdb.apache.org]
Icinga 2.2.0: Ein Nachfolger der Monitoring-Software Icinga mit Multithreading-Fähigkeiten. Neu: Icinga-2-HA-Cluster lassen sich dank der neuen
Version einfacher installieren. Ein Setup-Wizard für die Kommandozeile
hilft beim Einrichten eines Clusters und kümmert sich insbesondere um die
SSH-Zertifikate. Das Clusterprotokoll unterstützt neuerdings CSR-AutoSigning, was es erlaubt, Nodes mit einer einmalig generierten Ticketnummer zu installieren und auf lokal generierte SSL-Zertifikate zu verzichten.
Lizenz: GPLv2 [https://www.icinga.org]

Mozilla ändert Suchmaschinen-Strategie
Mozilla lebt seit 2004 von den
üppigen Einnahmen, die der
bezahlte Einsatz von Google
als Standardbrowser für
Firefox generiert. Nun streben die Macher des Browsers
einen Strategiewechsel an.
Der besteht darin, nicht mehr
einen einzelnen Suchdienst
als globale Standardsuche
anzubieten, sondern diesen

abhängig von der Region auszuwählen.
Konkret heißt das: In den USA
soll Yahoo die Standardsuchmaschine für Firefox werden,
in Russland kommt Yandex
zum Zug, in China Baidu. In
allen anderen Ländern erledigt weiter Google die Suche.
Per Mausklick lasse sich der
Dienst zudem stets ändern. Q

Mozilla hat die Suchmaschinen-Strategie für Firefox geändert.

Math-Fu 1.0: Plattformübergreifende, in C++ geschriebene Geometriebibliothek für Spiele-Entwickler. Neu: Die Bibliothek bringt Vektor-, Matrixund Quaternion-Klassen, mit denen Spiele-Entwickler die grundlegende
Geometrie umsetzen, unter anderem für Grafikbibliotheken wie Open
GL. Auch Kalkulationen für Animationen und realistische physikalische
Bewegungsabläufe lassen damit verwirklichen. Entwickler optimieren die
Software mit SIMD-Instruktionen für ARMs Neon und SSE für x86. Lizenz:
Apache 2.0 [http://github.com/google/mathfu]
Moodle 2.8: Freie Lernplattform mit Notenmodul, das an Schulen und Universitäten zum Einsatz kommt. Neu: Von diversen Usability-Tests profitiert
unter anderem die Leistungsübersicht, deren Interface die Entwickler
verbessert haben. Eine neue einspaltige Ansicht erhöht die Lesbarkeit auf
Mobilgeräten, das Scrollen funktioniert auf allen Geräten, auch solchen
mit Touchscreens. Eine detaillierte Notenhistorie gibt Aufschluss über
die Entwicklung des Lernenden, eingegebenen Text speichert Moodle per
Autosave-Funktion. Lizenz: GPLv2 [http://moodle.de]
Tine 2.0: Plattformunabhängige Groupware und CRM-Software. Neu: Die
Caldav-Anbindung hat sich deutlich verbessert, was besonders die OS-XVersion betrifft. Anwender des Caldav-Clients Thunderbird mit dem Add-on
Lightning können jetzt doppelte Termine ausblenden, wenn sie gemeinsame Ordner nutzen. Auch neu: Dateien lassen sich aus dem Dateimanager
heraus veröffentlichen. Tine 2.0 erzeugt dabei Download-URLs, auf deren
zugehörige Dateien andere Nutzer ohne Authentifizierung und auf Wunsch
zeitlich begrenzt zugreifen. Lizenz: AGPLv3 [http://www.tine20.org]

Rätseln über enttarnte Hidden Services
Im Rahmen der Operation
Onymous haben das FBI
und Europol im November
gemeinsam 414 versteckte
Sites aus dem Tor-Netzwerk
entfernt, die Geldwäsche und
Schmuggel betrieben haben
sollen, und einige Betreiber
verhaftet.
Sie seien von der Operation
Onymous ebenso überrascht
wie die meisten Nutzer, gestehen die Tor-Macher in ihrem
Blog. Regierungsangehörige
hätten zahlreiche Tor-Relays
beschlagnahmt, darunter drei
Systeme von Torservers.net,
mehr wisse man nicht und
bitte daher um Hinweise.
Man sei besonders daran interessiert zu verstehen, wie die
Dienste lokalisiert wurden.
Kriminelle und Geheimpolizei
könnten diese Informationen
ausnutzen, um Dissidenten
zu schnappen.

Natürlich hat das Projekt einige Theorien parat, die von
Betreiberfehlern, über SQL-Injections bis hin zu Bitcoin-DeAnonymisierungen reichen.
Auch stelle man sich die Frage, warum die Operation TorRelays betroffen habe, wenn
es doch eigentlich um Hidden
Services gegangen sei.
Um detailliertere Informationen zu erhalten, warte man
nun auf eine Anklageerhebung, bei der es in demokratischen Ländern üblich sei,
dem Richter die Beweise vorzulegen. Bis dahin könne man
nur spekulieren.
Alles in allem sei man ohnehin überrascht, dass die Hidden Services noch am Leben
seien. Man habe wenig Zeit
auf sie verwendet, während
die andere Seite viel Entschlossenheit und Ressourcen
mitbringe. (jcb/kki/mfe)
Q

02/2015

Aktuell

Microsoft stellt Dotnet Core unter MIT-Lizenz
Microsoft hat Dotnet Core,
den Kern seiner SoftwareEntwicklungsplattform, unter
die freie MIT-Lizenz gestellt.
Das Dotnet-Core-Repository
unter [https://github.com/dotnet/
corefx] bildet die Basis für das
künftige Dotnet-Framework 5
und wird von ASP Net Core
und Net Native verwendet.
Zugleich hat Microsoft Dotnet Core an die Dotnet Foundation übergeben. An der ist
auch Xamarin beteiligt, die
Firma der Mono-Entwickler
rund um Miguel de Icaza und
Nat Friedman.
Immo Landwerth, Microsofts
Programm-Manager für Dotnet, nennt zwei ausschlaggebende Gründe für den Schritt:
Man wolle die Grundlage für
ein plattformübergreifendes
Dotnet schaffen und ein stärkeres Ökosystem rund um
Dotnet aufbauen.
Mono spielt in den Plänen
von Microsoft eine wesentli-

che Rolle. Zwar könne man
schon länger Dotnet-Apps für
Linux, OS X, Android und
I-OS entwickeln, doch ohne
die Open-Source-Implementierung sei Mono gezwungen,
eine eigene Codebasis aufzubauen. Zwar sei der Quellcode
von Dotnet bereits seit einer
Weile verfügbar, die Lizenz
aber keine wirkliche Open-

Source-Lizenz und nicht von
der Open Source Initiative
anerkannt.
Der Schritt ist Teil von Microsofts jüngster Open-SourceStrategie, die seit Amtsantritt
des neuen Firmenchefs Satya
Nadella an Fahrt aufnimmt.
Kritiker halten diese eher für
erzwungen: Software werde
heute einfach völlig anders

© MSDN-Blog

Zahlen & Trends
www.linux-magazin.de

12

Zahlen & Trends

Microsofts Dotnet Core wird Open Source, um die plattformübergreifende Verfügbarkeit zu verbessern.

entwickelt, schreibt Jim Zemlin, Chef der Linux Foundation. Er glaubt, dass Microsoft
schlicht die Konsequenz aus
dieser veränderten Situation
ziehe.
Dazu gehört auch, dass das
Projekt von Codeplex, Microsofts hauseigener Softwareverwaltung, auf Github
wechselt, weil man laut Landwerth dorthin gehen möchte,
wo die Community ist. Man
akzeptiere auch Codebeiträge
externer Entwickler, wenn
diese sich an der Roadmap
orientieren und den internen
Qualitätsansprüchen genügen. Potenzielle Dotnet-Programmierer müssen zudem
ein CLA unterzeichnen.
Open-Source-Pläne für Team
Build, MS-Build, Windows
Forms, Windows Presentation
Foundation (WPF) und Silverlight gebe es seines Wissens
nicht, schreibt Landwerth in
Q
den Kommentaren.

Go und Emacs wechseln auf Git
Zwei Projekte wechseln ihre
Versionsverwaltungssysteme:
Emacs und Go wollen unabhängig voneinander künftig
das ursprünglich von Linus
Torvalds entwickelte Git verwenden, aber setzen auf abweichende Plattformen.
Für die Programmiersprache
Go sei es bereits der dritte
Wechsel des Version Con-

trol Systems (VCS), erklärt
Rob Pile auf der EntwicklerMailingliste. Man habe zunächst intern mit Subversion
gearbeitet, dann mit Perforce
und später mit Mercurial. Der
neue Umzug auf Git und Git-

hub [https://github.com/google/
go-github] sollte kurz nach
der Veröffentlichung der GoVersion 1.4 Anfang Dezember
stattfinden, deren Release sich
aber verschoben hat.
Die Version 1.5 will man dann
komplett über Github entwickeln. Auch der Issue-Tracker
und das Go-Wiki ziehen um,
für Codereviews verwende

man eine gehostete Instanz
von Gerrit.
Auch das Emacs-Projekt lässt
seinen Code nun von Git
verwalten. Es verwendet als
Plattform allerdings [savannah.
gnu.org] und begibt sich so in
beste Gesellschaft mit zahlreichen anderen GNU-Tools. Zuletzt hat das Projekt als VCS
Q
Bazaar verwendet.

02/2015

Aktuell
„Du, wir können jetzt wieder Videos schauen …“

technisch vertrauliche Informationen“ enthalte. Das bestätigte das Innenministerium
auch dem Linux-Magazin gegenüber, die Betrachtung sei
als „Nur für den Dienstgebrauch“ eingestuft.
Laut der Netzpolitik-Webseite
habe es bei der Polizei von
Niedersachsen ohnehin eine
schleichende
Umstellung
auf Windows gegeben. Im
Mai habe die Polizei bereits
1000 Windows-, Office- und
Server-Lizenzen erworben.
Zudem werde Nivadis – das
„Niedersächsisches Vorgangsbearbeitungs-, Analyse-, Dokumentations- und Informationssystem“ – primär auf

Anzeige

Projekt bringt Kindern Roboter näher
Mussten früher Kinder noch
ihre Eltern um einen C64 anbetteln, werden sie heute mit
außerschulischen Initiativen
rund um IT-Projekte förmlich
zugeschüttet. So vom Projekt
Open Roberta, Google, Fraunhofer und Lego gehören dazu.
Technisch ist das Projekt
spannend: Über eine offene
Cloudsoftware lernen Kinder,
die Mindstorm-Roboter des
Roberta-Projekts von Fraunhofer zu steuern.
Der Gedanke hinter dem
Projekt ist weniger verspielt,
denn die großen IT-Firmen
suchen nach eigener Aussage
händeringend Nachwuchs,
so auch die Initiatoren des
Open-Roberta-Projekts: „Der
Grundgedanke des Projekts:
Der Nachwuchs von heute
programmiert für den Nachwuchs von morgen. Denn laut
Branchenverband Bitkom fehlen den deutschen Unterneh-

men pro Jahr 39 000 ausgebildete IT-Experten“, heißt es in
der Ankündigung. Google hat
das Projekt mit einer Million
Euro finanziert, Lego steuert
– wohl auf Käufernachwuchs
hoffend – seine MindstormRoboter bei.
Dank des Cloudansatzes können die Kinder auch außerschulisch an Robotern des
Roberta-Projekts basteln, das
EU-weit läuft und Schülern
Roboter näherbringt. „Dies sei
besonders für Schulen günstig, da es dort häufig an leistungsstarken Rechnern mangele“, zitiert die Ankündigung
Stefan Wrobel, den Leiter des
Fraunhofer-Instituts für Intelligente Analyse- und Informationssysteme. Die günstige
Form der Ausbildung gefällt
auch dem Bundesministerium
für Bildung und Forschung,
das die Schirmherrschaft
übernimmt.
Q

Windows entwickelt, obwohl
es eigentlich auf Linux laufen soll. Offenbar tun sich die
Entwickler schwer mit Linux,
was dazu führe, dass Nivadis
beide Systeme unterstützen
müsse.
Aus Sicherheitsgründen würden sich außerdem auf den
vorhandenen Linux-Rechnern
keine CD-Laufwerke und
USB-Sticks mounten lassen,
was das Betrachten von Überwachungsvideos verhindert
habe. Statt nun die Rechte
entsprechend anzupassen,
hätten die Admins laut Netzpolitik.org einfach WindowsPCs aufgestellt, bei denen
diese Restriktionen fehlen. Q

Zahlen & Trends

betrachtung sehr wahrscheinlich, heißt es in einem internen Schreiben des Landespolizeipräsidenten, aus dem
Netzpolitik.org zitiert.
Diese Analyse ist aber nicht
verfügbar, da sie „taktisch und

© haitaucher39, Fotolia

Niedersachsens Polizei will
laut Netzpolitik.org 12 000
Rechner zurück auf Microsoft
migrieren und nennt wirtschaftliche Gründe. Die Abkehr von Linux sei auf Basis der Wirtschaftlichkeits-

www.linux-magazin.de

Niedersachsens Polizei will Windows zurück

13

02/2015

Aktuell
Zahlen & Trends
www.linux-magazin.de

14

Ubuntu-Projekt diskutiert künftigen Flash-Support
Auf dem Ubuntu Online Summit 1411 Mitte November haben einige Ubuntu-Entwickler
überlegt, wie sie in Zukunft
mit Adobes Flash-Plugin umgehen. Das Problem: Adobe
will den Support für sein NPAPI für Flash 2017 einstellen,
erklärte Entwickler Bryan
Quigley die Situation in seinem Blog.
Während Google mit PP-API
bereits eine eigene FlashSchnittstelle mit integrierter
Sandbox für Chrome und
Chromium anbiete, setze
Ubuntus Standardbrowser
Firefox noch auf NP-API. Man
wolle Flash langfristig loswerden, Firefox aber weiterhin als
Standardbrowser verwenden.
Darauf konnten sich die Entwickler im Rahmen der UOS-

Session einigen. Wegen Flash
auf Chromium als Standardbrowser zu wechseln sende
das falsche Signal.
Dass 2017 niemand mehr
Adobes Flashplayer über NPAPI verwendet, ist allerdings

fraglich. Die Entwickler wollen nachhelfen und Webseitenbetreiber noch deutlicher
auf das Flash-Problem hinweisen. Zugleich diskutierten
sie alternative Ansätze. FlashAlternativen wie Shumway,

Mozillas Shumway gehört zu den Versuchen, Adobes Flash-Format durch eine
freie Alternative zu ersetzen.

Gnash und Lightspark lehnen
sie ab. Diese füllen lediglich
vorhandene Lücken, zudem
würde man Adobe permanent
hinterherlaufen.
PP-API in Firefox zu integrieren sei auch keine Lösung,
weil man die Software nicht
maintainen könne. Bleibt also
die Hoffnung, dass sich genügend Webentwickler im Laufe
der nächsten drei Jahre von
Flash verabschieden.
Immerhin habe Canonical
mit Adobe aktuell eine Vereinbarung getroffen, nach der
Canonical Flash sowohl für
PP-API (Chrome/Chromium)
als auch für NP-API (Firefox)
über das Partner-Repository
bereitstelle. Das erleichtere
Entwicklern und Anwendern
Q
das Leben.

Free BSD Foundation erhält Millionenspende
Die Free BSD Foundation,
die sich ausschließlich über
Spenden finanziert, hat im
November von Whats-AppMitbegründer und -CEO Jan
Koum eine Zuwendung in
Höhe von 1 Million US-Dollar
erhalten. Es sei die höchste

Einzelspende in der 15-jährigen Geschichte der Foundation.
Sie sei ein Beispiel dafür, wie
erfolgreiche Free-BSD-Nutzer
etwas an die Community zurückgeben könnten. Man berate nun, wie man das Geld

am besten verwende. Konkrete Pläne sollten finanzielle
Investments ebenso einschließen wie Ausgaben, um die
Fähigkeiten und Dienste der
Foundation auszubauen.
Spender Jan Koum begründete seine Entscheidung da-

mit, dass Free BSD ihm geholfen habe, sich aus der Armut
zu befreien. Seine Free-BSDKenntnisse hätten ihm einst
einen Job bei Yahoo eingebracht. Auch die zahlreichen
Whats-App-Server liefen und
Q
laufen unter Free BSD.

Konfigurationsbereich
die
Option »network.http.spdy.
enabled.http2draft«
aktivieren, im zweiten Fall
SPDY/4 über »chrome://
flags/#enable-spdy4«
einschalten. Die Chrome-Entwickler bezeichnen HTTP/2
als SPDY/4, weil HTTP 2.0 ursprünglich auf Googles TCP-

basiertem Netzwerkprotokoll
SPDY basierte.
HTTP/2 befindet sich in Entwicklung. Es soll schneller
arbeiten, indem es Anfragen
bündelt, die Datenkompression verstärkt und vom Server
ausgehende Datenübertragungen erlaubt. Zugleich bleibt es
kompatibel zu HTTP/1.1. Q

Go-Support für HTTP/2
Die von Google initiierte
Programmiersprache Go soll
künftig den HTTP/2-Standard
(ehemals HTTP 2.0) unterstützen. Noch ist das Feature
nicht offiziell in der Standardbibliothek von Go gelandet,
doch unter [https://http2.golang.
org] lässt es sich bereits auf
einem Server testen. Den

Code und die Instruktionen,
um den HTTP/2-Support
auszuprobieren, gibt es unter [https://github.com/bradfitz/
http2].
Die Tests setzen voraus, dass
der Nutzer Firefox Nightly
oder Google Chrome Canary
verwendet. Im ersten Fall
muss er im »about:config«-

Eco-Verband fordert offene WLANs
Rechtssicherheit für WLANBetreiber? Zu diesem Thema
stellte Klaus Landefeld, Vorstand für Infrastruktur und
Netze vom Verband der deutschen Internetwirtschaft Eco,
in Berlin eine Studie vor, die
sich auf der Webseite [https://
www.eco.de] nachlesen lässt.
Danach hinke Deutschland
in Sachen offenes WLAN vielen anderen Ländern hinterher. Gerade mal rund 15 000
WLAN-Zugänge seien wirklich offen, schätzt Eco.
Der Rest der rund 1 Million
öffentlichen Hotspots nutze
eine Form von Zugangsschutz, meist ein sichtbar angebrachtes Passwort. Illegale
Downloads würden solche
Schutzmaßnahmen
kaum
verhindern. Es sei leicht,
über derart geschützte Router
Filme und Musik herunterzuladen und anzubieten.
Dennoch sei der Schutz aufgrund der Störerhaftung in
Deutschland vorgeschrieben:
Sichert ein Benutzer sein
WLAN nicht per Passwort ab,
haftet er für den Missbrauch
durch seine Nutzer. Mit sei-

nen restriktiven Zugängen,
die aber auch nicht vor Missbrauch schützten, schneide
Deutschland im Ländervergleich mit den USA, UK oder
Südkorea schlecht ab.
Die Rechtslage entspräche
laut Eco nicht internationalen Standards und irritiere
Besucher aus aller Welt. Sie
verhindere neue Geschäftsmodelle und bremse lokale
Firmen aus. So sei in anderen Ländern offenes WLAN
in Supermärkten und Hotels
üblich. Auch automatisierte
WLAN-Abfragen im Car2CarBereich oder in der Kommunikation Maschine zu Maschine
erschwere die Gesetzeslage in
Deutschland.
Laut Eco gebe es nur zwei
Lösungswege: einen sehr restriktiven und einen offenen.
Eco setzt sich für den zweiten
ein und fordert die Bundesregierung auf, die gesetzlichen
Grundlagen dafür zu schaffen. Denn trotz mehrfacher
Ankündigungen, die offene
Frage der Störerhaftung zu
klären, fehlten bislang konkrete Resultate.
Q

GUUG will Frühjahrsfachgespräche 2015
Nachdem sie 2014 ausgefallen sind, kündigte die German
Unix User Group (GUUG) in
ihrem Blog [http://blog.guug.
de/2014/11/] Anfang November
für 2015 an, wieder Frühjahrsfachgespräche zu organisieren. Diese sollen am 26. und
27. März 2015 in der Universität Stuttgart stattfinden, die
GUUG richtet sie zusammen
mit dem Informatikforum
Stuttgart und der Universität
aus. Vorgeschaltet sind zwei

Tage mit Tutorien am 24. und
25. März 2015.
Die Veranstalter kündigen ein
hochwertiges Programm an.
Die Sprecher der in diesem
Jahr abgesagten Fachgespräche sollen ihre geplanten Vorträge in aktualisierter Form
halten. Ein angekündigtes
Mini-Call-for-Papers soll zudem Updates und Ergänzungen erlauben. Zu Redaktionsschluss stand es jedoch noch
Q
nicht online.

02/2015

Aktuell
Zahlen & Trends
www.linux-magazin.de

16

Open Cloud Alliance: Bündnis für offene Cloud
IBM und der Bremer LinuxDistributor Univention haben
Mitte November ein Bündnis für eine offene Cloud ins
Leben gerufen. Unter dem
Namen Open Cloud Alliance
(OCA) wolle man freie, unabhängige und auch für den
Mittelstand geeignete Cloudangebote einführen.
Die Open Cloud Alliance
[http://www.open-cloud-alliance.de]
trete an, um „zusammen mit
einem breiten Netzwerk von
Providern, Software-Anbietern und Systemintegratoren
einen offenen Cloudstandard
zu etablieren. Damit wird ein

umfassendes, einheitliches
und modulares Cloudportfolio für alle Anbieter möglich,
das die Bedürfnisse der Kunden nach Sicherheit, Integration und Compliance erfüllt“,
schreiben die Hersteller in ihrer Pressemitteilung.
Ziel sei es, die Nutzer unabhängiger von den großen
Anbietern zu machen, ihnen
mehr Auswahl bei Anwendungen zu geben, es aber
auch kleineren Cloud-Serviceprovidern zu ermöglichen,
„ohne viel Aufwand eine
große Anzahl von Anwendungen bereitzustellen“.

Die Webseite der Open Cloud Alliance malt der offenen Cloud eine rosige Zukunft.

Hinter dem Angebot der Open
Cloud Alliance steckt eine
Plattform, die dem Univention
Corporate Server eine prominente Rolle einräumt. Dieser
authentifiziere zentral, auch
gegen Active Directory, und
biete zusammen mit Open
Stack umfassende Managementfunktionen, schreiben
die Initiatoren. IBM steuert
Referenzhardware und den
IBM Cloud Manager bei, die
Open-Stack-Implementierung
von Big Blue.
Die Allianz sucht nun weitere
Partner. Bereits im Boot seien
Owncloud,
Openxchange,
Zarafa,
diverse
Certified Solution
Provider (CSP) wie
Teuto.net, Plutex
und Netzlink. Weitere Firmen hätten
laut Pressemitteilung bereits zugesagt, bis zum Start
im ersten Quartal
2015 mit Anwendungen, Produkten
und Hosting-Angeboten dabei zu
sein.
Q

Mehr Performance
dank Lustre
Auf dem SupercomputingKongress SC14 in New Orleans hat Seagate unter anderem eine neue Version seiner
Clusterstor Engineered Solution for Lustre angekündigt,
welche die Metadatenperformance deutlich steigern soll.
Das will sie erreichen, indem
sie die Distributed Namespaces aus Lustre 2.5 implementiere und mit deren Hilfe
bis zu 16 Metadatenserver pro
Filesystem einrichte.
Ein einzelnes Filesystem
könne dabei bis zu 16 Milliarden Files enthalten. Seagates Implementierung sei die
einzige, die alle Aspekte von
Hard- und Software auf Lustre
2.5 abstimme.
Weiter kündigte die Firma einen Clusterstor Hadoop Workflow Accelerator an, der aus
Hadoop-Optimierungs-Tools,
Diensten und Support bestehe
und sich an Kunden im BigData-Umfeld richte, die nach
schnellem Speicher suchen.
Sie sollen laut Seagate von
einer stark verkürzten DatenQ
transferzeit profitieren.

Markt für Cloud Computing wächst ungebrochen
Der Markt für Cloud Computing mit Geschäftskunden soll
in Deutschland 2014 um 46
Prozent auf rund 6,4 Milliarden Euro wachsen, berichtet
der Hightech-Verband Bitkom
auf Basis von Prognosen der
Experton Group.
Damit bleibe das Wachstum
etwas unter den Erwartungen.
Ursprünglich war Bitkom von
einem Umsatzanstieg von 50
Prozent auf 6,9 Milliarden
Euro ausgegangen. Dennoch

soll das Umsatzvolumen des
Cloudmarkts im Businessbereich bis zum Jahr 2018
in Deutschland jährlich um
durchschnittlich 35 Prozent
zulegen, insgesamt um rund
19,8 Milliarden Euro.
Cloud Computing erlaube es
Nutzern, IT-Dienstleistungen
über das öffentliche Internet (Public Cloud) oder ein
internes Netzwerk (Private
Cloud) zu beziehen. Im Zusammenspiel mit dem mobi-

len Internet und innovativen
Methoden der Datenanalyse
entstünden so zahlreiche
neue Anwendungen und Geschäftsmodelle.
Den Großteil der Cloudumsätze machten im Jahr 2014
mit rund 3,0 Milliarden Euro
Dienstleistungen aus. Das
Wachstum gegenüber dem
Vorjahr liege bei 48 Prozent.
Zu den per Cloud bereitgestellten Dienstleistungen gehörten laut Bitkom-Mitteilung

zum Beispiel Anwendungsprogramme (Software as a
Service), Speicher- oder Rechnerkapazitäten (Infrastructure
as a Service) sowie Entwicklungsumgebungen (Platform
as a Service).
Die Wirtschaft habe dabei
rund 2,2 Milliarden (plus 39
Prozent) in Cloudhardware
investiert und 1,2 Milliarden
Euro (plus 39 Prozent) in
Integration und Beratung geQ
steckt. (jcb/kki/mfe)

02/2015

Aktuell
18

www.linux-magazin.de

OSMC 14

Notizen von der Open Source Monitoring Conference 2014

Beobachter-Treff
In netter Atmosphäre trafen sich Mitte November rund 250 Admins in Nürnberg, um sich über die neuesten
Entwicklungen beim Monitoring auszutauschen. Jens-Christoph Brendel

und es auch erlaubt, sie schrittweise zu
vollziehen. Dabei bleibt die Architektur
einfach und flexibel.

Noch mehr Neuigkeiten

Abbildung 1: Jan-Piet Mens (links) und Jochen Lillich (rechts) bei ihren Vorträgen.

Die Diskussion, die der Vortrag von JanPiet Mens (Abbildung 1) auslöste, spielte
sich zunächst noch im Konjunktiv ab.
Etliche Zuhörer fragten: Wäre das Messaging-Protokoll MQTT, das Mens vorstellte, nicht auch fürs Monitoring ideal?
Nach dem Publish-Subscribe-Modell
liefert dabei eine Partei Nachrichten an
eine Message-Broker-Instanz, die andere
Parteien asynchron dort abholen können.
Der Prozess braucht sehr wenig Code und
ist ungeheuer schnell, dabei ist die Architektur einfach und es gibt Anbindungen
an fast alle Programmiersprachen.
Nebenbei erweitern sinnvolle Funktionen
das Modell: So kann zum Beispiel der Publisher bei seinem Broker eine Nachricht
hinterlegen (das so genannte Testament),
die der veröffentlicht, wenn er bemerkt,
dass sein regelmäßiger Einlieferer nicht
mehr am Leben ist. Ein MonitoringServer könnte sich auf diese Weise zum
Beispiel Ping-Tests sparen und würde
stattdessen selber gegebenenfalls vom
Ableben eines der überwachten Schützlinge aktiv informiert.

Bei dem Gedankenaustausch im Anschluss an den Vortrag bildete sich bald
die einhellige Meinung, dass ein Einsatz
von MQTT beim Monitoring vielversprechend sein müsste.

Schon realisiert
Wer aber am nächsten Tag auch Jochen
Lillichs Vortrag verfolgte, der erfuhr: Das
gibt es längst. Das Monitoring-Framework
Sensu, das Lillich vorstellte, arbeitet zwar
nicht mit MQTT, sondern mit dem alternativen Protokoll AMPQ und dem zugehörigen Message-Broker Rabbit MQ – die
Konzepte sind aber vergleichbar.
Alle Performanceprobleme, die Lillich
als Hoster für Drupal- und WordpressInstanzen zuvor mit Nagios hatte, nachdem seine Serveranzahl 200 oder 250
überstiegen hatte, waren mit Sensu wie
weggeblasen. Zusätzlicher Vorteil: Sensu
versteht das Format der Rückmeldungen
von Nagios-Clients und kann daher die
originalen Nagios-Plugins verwenden,
was eine Migration extrem einfach macht

Wie in den Jahren zuvor war die Konferenz auch 2014 wieder ein Marktplatz
für Neuigkeiten rund um die zahlreichen
Nagios-Forks und die Nagios-fremden
Monitoringsysteme.
So sprach der frühere Nagios-Chefentwickler Andreas Ericsson über Stand
und Ausblick bei seinem Fork Naemon.
Außerdem präsentierten sich Open NMS
und Zabbix in Vorträgen, und in dem gewohnten, überlangen Parforceritt brachte
Bernd Erk alle Neuigkeiten aus dem
Icinga-Lager humorvoll an den Mann.
Dem neuen Icinga-Webinterface widmete
sich schließlich noch Thomas Gelf mit
einem gesonderten Vortrag.
Daneben nahm auch die Vorstellung von
neuen Plugins und Tools breiten Raum
ein. So wurde unter anderem das mittlerweile etablierte Graphite vorgestellt,
als konkurrierende Option für die Visualisierung von Daten auch der Stack aus
Elasticsearch, Logstash und Kibana.
Gerhard Laußer präsentierte sein Universal-Plugin für Netzwerktechnik »check_
nwc_health«, das mit dem Wirrwarr
einzelner Plugins für spezielle Komponenten der Netzwerktechnik aufräumen
will. Werner Fischer brachte seinem Publikum das IPMI-Plugin für das HardwareMonitoring nahe. Rene Koch referierte
über Business-Prozess-Monitoring mittels
BP View.
Das Team der Veranstalter setze der Konferenz wie immer durch eine perfekte
Organisation, nettes Ambiente und mit
einem gelungenen Social Event das iTüpfelchen auf.
Q

02/2015

Aktuell

Susecon 2014

Im subtropischen Orlando hat Suse „nahezu perfekte“ Zahlen vorgestellt. Attachmate und Microfocus schließen derweil die Übernahme des Mutterkonzerns ab, dazu stellt Suse neue Produkte wie Kgraft in SLES oder
den Storage Server vor. Drum herum: Rockmusik, grüne Gitarren und Lego-Stop-Motion-Videos. Markus Feilner

© Markus Feilner, BY-CC-SA 4.0

20

www.linux-magazin.de

Susecon

Suse? Lego!

Auch wenn Konkurrenten hinter vorgehaltener Hand gerne Gegenteiliges
behaupten: Bei Suse ist man stolz und
zufrieden mit dem laufenden Geschäft.
Zwar konnte CEO Nils Brauckmann in
seinem Ausblick auf die aktuellen Zahlen
wegen der anstehenden Übernahme Attachmates durch Microfocus noch nicht
so in die Details gehen wie gewohnt,
doch zeigt sich der Suse-Chef derzeit im
persönlichen Gespräch wie viele seiner
Mitarbeiter auch äußerst zufrieden. (Eine
Linksammlung zu den News und weiterführenden Artikeln rund um Suse und die
Susecon gibt es unter [1].)
Die allgemeine Zufriedenheit durchdrang
auch den Partner-Summit namens Susecon im November. Die Veranstaltung
werde immer größer, und mehr und mehr
Analysten wie Garnter und Forrester interessierten sich bereits für das Event.
Suses Strategie mit „True Open Source“
zahle sich aus, erklärt Brauckmann. Alle
Key-Indikatoren seien überaus positiv,

die Firma wachse, die Neubuchungen
machten bereits 65 Prozent aller Buchungen aus. Der CEO sieht eine hervorragende Zukunft.

Im Microfocus
Auch der jüngste Merger Attachmate-Microfocus, der just in der Susecon-Woche
Ende November über die Bühne ging,
weise in diese Richtung, so Brauckmann.
Attachmate wird Teil der MicrofocusGruppe, die an der Londoner Börse gelistet ist. Microfocus’ Kerngeschäft sei es,
großen Unternehmen dabei zu helfen, Legacy- und alte Soft- und Hardware-Stacks
loszuwerden – mit Produkten wie Visual
Cobol oder „Solutions“ für Mainframes,
Borland und Corba.
Gerade die Migrationen seien schließlich
Suses Stärke, meint Brauckmann: Microfocus und Suse passen also richtig gut
zusammen, da ist er sich sicher. „Microfocus ist auf Märkten aktiv, die wir noch

nicht bedienen – auch das passt perfekt.“
Auch auf der menschlichen Ebene funktioniere die Kooperation bereits hervorragend.
Neben der erneuten Übernahme standen
auf der Susecon auch neue Produkte im
Fokus, zum Beispiel das SLES-Add-on
fürs Live-Kernelpatchen mit Kgraft, der
Suse Storage Server mit Ceph, ein größeres Ökosystem für die Suse Cloud einschließlich der Möglichkeit, SLES-Lizenzen in die Cloud zu transferieren, oder
der Suse-Support für SAP-Startups. Nicht
zuletzt die Entscheidung von SAP – nach
der 2012 erfolgten Zertifizierung von
Suse als einziges Enterprise-Linux für
SAP Hana –, die grüne Linux-Distribution
auch intern zu verwenden, hinterlässt
in Orlando einige stolze Suse-Manager
(Abbildung 1).
Angefeuert von Lego-Videos und Rockmusik mit harten Gitarrenriffs startete
die Susecon 2014 in ihren ersten Tag. Die
Keynote präsentierte wie immer Suses
Marketing-Chef Michael Miller, dieses
Jahr allerdings als lockere Talkshow. Da
liefert dann CEO Brauckmann Zahlen,
Kunden konnten Best-Practice-Ansätze
vorstellen, Suse-Partner und der neue Eigentümer zeigten die großartigen Erfolge,
Produkte und Visionen.
Suse scheint auf dem aufsteigenden Ast,
glaubt man Brauckmann: Die Buchungen nahmen um 27 Prozent zu, überall
auf der Welt, die Einnahmen seien um
17 Prozent gestiegen, die Neubuchungen sogar um 47 Prozent. Damit mache
das Neukundengeschäft fast zwei Dr
Drittel
rit
itte
tel
te
DELUG-DVD
DELUG-DVD
Auf der DELUG-DVD finden Sie
die Videos von den Keynotes der Susecon.

02/2015

Aktuell
Susecon
www.linux-magazin.de

© Markus Feilner, BY-CC-SA 4.0

Abbildung 1: Suse-CEO Nils Brauckmann und Kevin Loosemore, CEO des neuen Attachmate-Eigentümers
Microfocus im Gespräch mit Michael Miller (von links nach rechts).

Senior Product Manager for Systems Management, in seinem Workshop.

Suse Manager goes Cloud
Was dabei den meisten Anwendern auffallen dürfte, sind die Änderungen im
GUI, das Zug um Zug neue Tabs spendiert bekommt. Admins freuen sich über
die Automatisierungen und das Patchmanagement, IT-Leiter über neue Compliance-Funktionen, die beispielsweise
Checks auf CVE-Basis oder auch Open
SCAP integrieren. Das GUI von Suse Manager wird in Zukunft noch mehr Tabs
erhalten.
Vieles davon habe man bereits in der
aktuellen Version 2.1 eingebaut. Die

© Markus Feilner, BY-CC-SA 4.0

des gesamten Suse-Business aus, so berichtete Nils Brauckmann im lockeren
Talkshow-Stil. Auch der Microfocus-Chef
Kevin Loosemore kam zu Wort: Zur Übernahme von Suses Muttergesellschaft Attachmate sagte er: „Unsere Aktien stiegen
sofort um 20 Prozent – und Suse passt
perfekt zu uns.“
Im weiteren Verlauf der Keynote vor etwa
600 Besuchern (Abbildung 2) ergriffen
ein Forrester-Analyst (James Staten: „Ihre
Daten werden 2015 in der Cloud sein und
in Ihre Cloud wird eingebrochen werden,
und Sie werden die Schuld dafür tragen“)
sowie diverse Kunden und Partner von
Suse das Wort. Dazu gehören HP, SAP
und die Swiss Re.
Die zweitgrößte Rückversicherung der
Welt, hat eben erst alle Systeme auf
Linux migriert, weil sie auf nachhaltige
Strategien setze, natürlich auf Suse mit
SAP. Auch der größte Steuerzahler Hongkongs setzt Suse ein: Der Hong Kong
Jockey Club, ein wichtiger Arbeitgeber
der Millionenstadt, verdient sein Geld mit
Pferderennen, Casinos und „GamblingAngeboten“ und verwendet seit 2014 nur
mehr Suse Linux Enterprise.
Auch neue Produkte und zahlreiche Verbesserungen an den bestehenden hat
das grüne Team zu melden. Der Suse
Manager 2.1 etwa erhielt einen Setup
Wizard, ein überarbeitetes GUI und viele
Verbesserungen. Strategisch wird das Management-Tool in Zukunft noch näher an
die Suse Cloud rücken, aber bereits heute
habe man sowohl Usability als auch die
Funktionalität und Compliance deutlich
verbessert, berichtet Joachim Werner,

Abbildung 2: Mit zwischen 500 und 600 Besuchern ist die Susecon im fernen Amerika auf Wachstumskurs.

nächste Major Release soll Anfang nächsten Jahres erscheinen (als Version 3) und
vor allem in Sachen Subskriptions- und
Konfigurationsmanagement weitere Verbesserungen erhalten, mehr Monitoring
und Topology-Visualisierung bringen
und die Hochverfügbarkeitsfunktionen
verbessern. Version 4 soll dann den Manager mit der Suse Cloud zusammenführen, denn die beiden Produkte seien, so
Werner, ja irgendwie nur „zwei Seiten
einer Medaille“.
Analysten sehen großes Potenzial im Bereich des Software-basierten Storage, vor
allem Open Source soll da ihrer Meinung
nach stark profitieren. Bis zu 8 Milliarden
US-Dollar locken – und Suse zieht nach:
Nach Red Hat mit dem Storage Server

21

02/2015

Aktuell

© Markus Feilner, BY-CC-SA 4.0

© Markus Feilner, BY-CC-SA 4.0

Susecon

Abbildung 3: SLES 12 kam selbst zu Wort: Ralf Flaxa (der „Pate des SLES“)

Abbildung 4: Einen Cluster live und mit roher Gewalt zerlegen? Gar nicht so einfach,

sekundiert dem Serverpaket mit einem Mikrophon.

wie die Demo auf der Susecon via Beamer und Licht-Installation zeigte.

bietet nun auch der grüne Distributor ein
eigenes, ebenfalls Storage Server genanntes Produkt an.

Suse Storage Server
Diverse Workshops auf der Susecon 14
stellten das auf SLES (11 und 12) aufsetzende Storage-Werkzeug vor, das nach
Meinung von Projektleiter Larry Morris
genau zum rechten Zeitpunkt kommt.
„Ceph ist ausgereift, das ist ja schon zehn
Jahre alt“, erklärt er im Gespräch mit
dem Linux-Magazin. Und dass Red Hat
– wie bei manch anderem Projekt auch
– die Hand im Spiel hat beziehungsweise
auf den Markenrechten, sieht er nicht kritisch: „Da sind jetzt schon zu viele große
Firmen auf dem Zug, einen Rückzieher
kann man sich da nicht mehr leisten, und
das will sicher auch niemand.“ Damit
könnte er richtig liegen: Red Hat könnte
sicher nur mehr mit großem Gesichtsverlust in der Community verhindern, dass
auch Konkurrenten den Speicherkraken
verwenden.
Suses Ceph-Produkt kommt als Object
Store ohne Hardware, als reine Software.
Hardware-Partner sollen folgen, vorweisen können die Nürnberger aber noch
keine. Preis und Leistung dagegen sind
konkurrenzfähig: Die Installation ist simpel, die Datenspeicher hot-swappable,
das Produkt kann einfach Clouddienste
wie Open Stack Swift oder Amazons AWS
per RESTful-API einbinden, verwalten
und monitoren.
Das Web-GUI Calamari verwaltet die Object Stores, Monitoring ist eingebaut. Ein
vorkonfiguriertes Ceph organisiert die

Datenspeicher und kümmert sich um alles, wenn einer davon ausfällt. Das funktioniert vollautomatisch, wie die SuseMitarbeiter am Stand im Showcase-Room
fast rund um die Uhr zeigten.
Vor allem preislich will Suse der Konkurrenz Dampf machen: Ab 5000 Dollar gibt
es 36 TByte Speichervolumen, plus 1500
Dollar pro Server-Socket-Paar. Das bedeutet: Ab 6500 Dollar geht’s quasi los, ein
größeres Setup mit 250 TByte und zehn
Servern liegt bei etwa 50 000 Dollar. Weil
das dann weniger als 1,7 US-Cent pro
GByte und Monat sind, sei man ungefähr
40 Prozent billiger als Konkurrenten, die
nicht auf Software-basierten Storage setzen, erklärt Morris.
Auf der Roadmap für den Suse Storage
Server finden sich integrierte Deduplikation, Backup und
Tools fürs Compliance-Archiv. Er steht
ab sofort mit Ceph
Firefly als Beta zur
Verfügung, ab Februar 2015 soll dann
auch die stabile Version erhältlich sein.
Die für das dritte
Quartal 2015 vorgesehene Version 2.0 soll
auf Ceph Hammer
setzen.

SLES spricht
Bei der Abschlusskeynote standen erneut
Demos der neuen
Produkte, Preisver-

leihungen (aus Verlosungen) und die
Neuerungen der zwölften Ausgabe des
ehrwürdigen SLES im Vordergrund.
Ebenfalls von Miller im Stil eines Talkmasters präsentiert, stand zunächst – wie
zu erwarten – der Suse Linux Enterprise
Server 12 mit all seinen neuen Features
von Kgraft bis zum GEO-HA-Add-on im
Vordergrund.
Der Server kam sogar selbst zu Wort –
als joviale Stimme aus dem Off – und
durfte zusammen mit den Leitern des
SLES-Teams Ralf Flaxa, Olaf Kirch und
Mathias Eckermann ein Interview geben.
Volles Rollback mit Snapper & Co., LiveKernelpatching mit Kgraft, das seien die
Highlights der neuen Version, erklärten
die Manager des SLES-Teams, und die liebevoll von „Großvater Flaxa“ getätschelte

© Markus Feilner, BY-CC-SA 4.0

www.linux-magazin.de

22

Abbildung 5: Eine grüne Yamaha-Pacifica-Gitarre wechselt den Besitzer,
übergeben von Heavy-Metal-Fan und Suse-Entwickler Jeff Price.

02/2015

Demos
Anschließend folgten über eine Stunde
lang Live-Demos des neuen Servers, über

SMS ließen die Techniker das Publikum
Last erzeugen, um HA, das Cloudmanagement, den neuen Storage Server, das
Full Rollback mit Snapper und Geo-HA
vorzuführen und per IP-Licht-Installation
im Saal zu verdeutlichen. Dass dabei weder ein Punk mit physischen Angriffen

Infos
[1] Linux-Magazin-News zur Susecon 2014:
[http://www.linux-magazin.de/
susecon2014]

Susecon

Aktuell
Pappschachtel zeigte sich mächtig stolz
(Abbildung 3).

www.linux-magazin.de

© Markus Feilner, BY-CC-SA 4.0

Abbildung 6: Suse Master Builder wird nur, wer sich beim Erstellen neuer Suse-Versionen ausgezeichnet hat.

noch ein Heavy-Metal-Freak mit unkoordinierten Kernelupdates die HP-Server
aus der Ruhe bringen konnte (Abbildung
4), versteht sich. Zwar fiel als Showeinlage das Saallicht aus, doch die Server
liefen brav weiter.
Zum Abschluss der Susecon gab es weitere Lego-Videos mit Star-Wars-, Batmanund „Dr. Who“-Anklängen sowie eine
Preisverleihung, bei der grüne E-Gitarren
(Abbildung 5), Kampfflugzeuge (als Modell!) und diverse Hardware den Besitzer
wechselten und die ersten Suse Master
Builder ausgezeichnet wurden (Abbildung 6). Die nächste Susecon wird nach
drei Jahren erstmals nicht mehr in Orlando stattfinden, sondern auf der euroQ
päischen Seite des Atlantiks.

23

02/2015

Aktuell
Knatsch bei Debian

Austrittswelle: Zerfällt das Debian-Projekt?

www.linux-magazin.de

Reisende soll man nicht aufhalten, doch aus dem Hause Debian verabschieden sich gerade auffällig viele Entwickler. Zehn Fragen und Antworten, die Aufschluss geben über den Status des Debian-Projekts in Zeiten des
Streits um Systemd. Martin Loschwitz

© Karel Miragaya, 123RF

26

Verlorene Liebe

Noch vor ein paar Wochen hob das
Linux-Magazin Debian als Beispiel für die
effiziente Verwaltung einer Community
heraus [1]. Debians Release-Manager
Andreas Barth betonte damals beispielsweise, dass das Release-Management
in den letzten Jahren sehr effizient geworden sei. Auch andere Bereiche von
Debian blühen und gedeihen; der Debian-„Flavor“ Skole Linux (alias Debian
Edu) hat in vielen Schulen mittlerweile
einen festen Platz gefunden.
Da passt so gar nicht ins Bild, was in
den letzten Wochen über Debian zu lesen war: Austritt hier und Austritt dort.
Tatsächlich haben sich einige Entwickler ganz aus Debian verabschiedet. Oder
zumindest angekündigt, sich wieder
mehr technischer Arbeit und weniger
der Projekt-Governance zuzuwenden.
Für ihre bisherige Arbeit stehen sie damit jedenfalls nicht mehr zur Verfügung.
Was verursacht den öffentlichkeitswirk-

samen Exodus bei Debian? Stellen die
Austritte möglicherweise sogar eine existenzielle Gefahr für das Projekt dar? Das
Linux-Magazin beantwortet im Folgenden die wichtigen Fragen rund um die
Diskussionen bei Debian.

Was ist der Grund für den
Streit?
Die aktuellen Rücktritte sind der vorläufigen Höhepunkt in einem Streit, der
seit mehreren Jahren schwelt. Dreh- und
Angelpunkt ist Systemd, das in der OSSSzene bekanntlich nicht nur bei Debian
für heftige Kontroversen sorgt. Bei der
Diskussion rund um Systemd treffen
zwei grundsätzliche Philosophien aufeinander: Auf der einen Seite die typische
„Unix-Attitüde“, die fest davon ausgeht,
dass es für jeden Job ein eigenes Tool
geben sollte. Die punktuelle Spezialisierung einzelner Werkzeuge ist in den

Augen der Verfechter dieser Theorie die
große Stärke im Vergleich mit den All-inone-Lösungen: Ein absolut spezifisches,
kleines Tool wird eine Aufgabe besser
erledigen können als eine eierlegende
Wollmilchsau, die alles ein bisschen
kann, aber nichts davon wirklich zufriedenstellend.
Die Systemd-Verfechter stehen dazu in
krassem Widerspruch. Sie stellen die
These auf, dass Systemd sich um alle
Aspekte des Systems gut kümmern kann
und gerade durch die Kombination mehrerer Faktoren Zusatzfunktionen bietet,
die ohne Systemd nicht zu haben wären.
Laut Meinung jener Gruppe ist es absolut wünschenswert, so viele Aufgaben
wie möglich an Systemd zu geben, weil
Systemd so die „Draufsicht“ bekommt
und dem Anwender das bestmögliche
Nutzungserlebnis verschaffen kann.

Ein neues Initsystem?
Debian hat die Diskussion um ein neues
Initsystem viele Jahre vor sich hergeschoben; darüber ist das praktizierte Sys-VInit allerdings so in die Jahre gekommen,
dass Debian-Nutzer gegenüber anderen
Distributoren deutlich benachteiligt sind.
Sowohl Systemd als auch eventuelle Alternativen, also zum Beispiel Upstart,
bieten einen deutlich umfangreicheren
Schatz an Funktion.
Der Umstieg auf ein anderes Initsystem
war außerdem auch in den Jahren zuvor
bereits Thema bei der Release-Planung
gewesen, rückte gegenüber anderen Themen aber immer wieder ins Hintertreffen,
weil das alte System wenigstens noch
die grundlegende Funktionalität bietet.
Mittlerweile ist der Feature-Abstand von
Sys-V-Init zu anderen Initsystemen aber

02/2015
© CC-BY-ND, Ian Jackson, Irill.org

Wer sitzt im CTTE?

Knatsch bei Debian

Aktuell

Welche Rolle spielt das
CTTE im Systemd-Konflikt?

www.linux-magazin.de

© Bdale Garbee, gemeinfrei

Projekts, dem Debian
fällen, um für diese entweder Systemd
Project Leader (DPL).
oder ein anderes Initsystem verbindlich
Der DPL hat aber das
vorzuschreiben. Auslöser dafür war eine
letzte Wort: Gefällt Mail ein paar Tage zuvor, laut der der
ihm ein Kandidat Gnome-Desktop mittlerweile de facto auf
nicht, den das CTTE
Systemd angewiesen ist, um überhaupt
vorgeschlagen
hat, zu funktionieren.
kann er die Ernen- Der Bugreport im BTS – auf diese Weise
nung ablehnen.
verwaltet das CTTE Anfragen an sich
In aller Regel erhält
selbst – wurde praktisch augenblicklich
von Systemd-Fans und -Gegnern gedas CTTE innerhalb
kapert, um wiederum eine technische
des Debian-Projekts
Diskussion vom Zaun zu brechen. Dass
kaum Aufmerksamkeit, es entscheidet in
der entsprechende Bugreport an das BTS
spezifischen technidafür eigentlich gar kein Forum ist oder
sein will, interessierte die Diskutanten
schen Sachverhalten,
die in der Regel nur
kein bisschen. Tatsächlich kam das CTTE
eine kleine Anzahl
der Aufforderung Tagliamentes nach und
von Paketen betreffen.
fällte im Februar 2014 eine Entscheidung
Abbildung 1: Bdale Garbee war bis vor Kurzem Vorsitzender des DebianBei der Entscheidung für Systemd.
Technik-Komitees CTTE.
über das Initsystem ist
Die Art und Weise, wie eben jene Entscheidung zustande kam, ist dabei aldas anders.
so groß, dass die Entscheidung sich nicht Bei Redaktionsschluss bestand das CTTE
lerdings bemerkenswert: Auf der einen
mehr länger verschieben lässt.
noch aus seinem Vorsitzenden Bdale GarSeite gab es innerhalb des CTTE Leute,
bee (Abbildung 1), der lange Zeit selbst
Wer die Positionen der Befürworter und
die von Anfang an Systemd als InitsysDPL war, sowie aus Don Armstrong, AnGegner von Systemd genauer betrachtet,
tem für Jessie wollten. Die andere Frakbemerkt schnell, dass sie weitestgehend dreas Barth, Steve Langasek und Keith
tion hätte Upstart lieber gesehen, weil es
unversöhnlich sind. Ein Kompromiss ist Packard. Verlassen haben das CTTE in deutlich weniger invasiv als Systemd ist.
den Wochen zuvor Russ Allbery, Colin Zwischen den zwei Fraktionen innerhalb
nicht möglich, denn „ein bisschen Systemd“ geht nicht. Eine Seite wird also am
Watson und Ian Jackson.
des CTTE kam es so zu einem Patt; laut
Ende ihren Willen definitiv nicht kriegen
Verfassung fiel die Entscheidung damit
– zumindest nicht direkt in dem, was akBdale Garbee als dem Vorsitzenden zu,
und Garbee ist nicht nur zweimaliger
tuell als Debian-Projekt bekannt ist. Weil
Projektleiter, sondern auch ein großer
Debian weiß, dass bisweilen technische
Die Debian-Diskussion rund um SysFan von Systemd.
Entscheidungen eben dieses Ausmaßes
notwendig sind, gibt es innerhalb des
temd tobte eingangs fast nur in Form Auch bemerkenswert war die Tatsache,
Projekts allerdings eine eigene Instanz,
von Diskussionen innerhalb des Bugtradass Garbee bereits in seiner E-Mail andie genau solche Fragen klärt: das Techcking-Systems. Schon hier war deutlich, kündigte, dass sich das CTTE dem Ergebnical Committee, abgekürzt CTTE.
dass manche Debian-Developer ihre gute nis einer Generalabstimmung anschlieKinderstube entweder
sehr vermissen ließen
oder eine solche nie
Das Technical Committee hat laut Degehabt hatten – der
bian-Verfassung [2] sowohl das Recht
Tonfall war auffallend
als auch die Pflicht, auf Bitten der Entruppig.
wickler über komplexe technische Fragen
Während der Diskusein Urteil zu fällen. Entscheidungen des
sion zeigte sich, wie
CTTE sind zunächst bindend, freilich
unvereinbar die beibleibt es den einzelnen Debian-Entwickden Meinungen auflern unbenommen, gegen eine CTTE-Enteinanderprallen: Paul
scheidung mit einer Generalabstimmung
Tagliamonte bat das
vorzugehen.
Technical
CommitMitglied des CTTE kann grundsätzlich
tee im Oktober 2013
jeder Debian-Entwickler werden, die offiziell darum, eine
Abstimmung erfolgt im Kreise der exisEntscheidung für die
tierenden CTTE-Mitglieder zusammen kommende Debian- Abbildung 2: Debian-Entwickler Ian Jackson bei einem Vortrag auf der
mit dem amtierenden Leiter des Debian- Version Jessie zu
Debconf 2012 in Managua.

27

02/2015

Aktuell
28

www.linux-magazin.de

Knatsch bei Debian

Debatten lähmend und unnötig. Manche
Debian-Entwickler stellen öffentlich klar,
dass das Debian-Projekt im Augenblick
ideell nicht mehr an das Projekt herankommt, dem sie einst vor Jahren beigetreten waren.
Hinzu kommt, dass das Verhalten so
manches Diskussionsteilnehmers nur
mehr zu Kopfschütteln führte. Insbesondere die Mitglieder des CTTE haben
öffentlich mehrere Male kundgetan, in
der Systemd-Debatte auch abseits von
Debian von projektfremden Menschen
bisweilen bedrängt und auch beschimpft
worden zu sein. Wer Teil der Systemd-Debatte war, konnte also reguläre Projektarbeit im Grunde vergessen.
Abbildung 3: Eine Sammlung von Tools, die beim Bau von Debian-Paketen hilfreich sein wollen, das ist
Debhelper. Auch sein Maintainer Joey Hess trat jüngst zurück.

ßen werde, wenn es zu einer solchen
kommen sollte [3].

Was war das Ergebnis der
Generalabstimmung?
Mehrere Debian-Entwickler griffen Bdale
Garbees Kommentar umgehend als eine
direkte Ermutigung auf, eine Generalabstimmung über das Thema zu starten.
In der Debian-Verfassung liegt die Hürde
zur Einberufung einer Generalabstimmung niedrig; lediglich sechs Entwickler müssen einen GR-Vorschlag per Mail
unterstützen, um eine GR vom Zaun zu
brechen.
Als Speerspitze der Gegner von Systemd
etablierte sich schnell ein prominentes
CTTE-Mitglied: Ian Jackson (Abbildung
2) nutzte nicht nur verschiedene DebianMailinglisten regelmäßig, um massiv gegen Systemd zu agitieren, er diskutierte
auf der Mailingliste für Abstimmungen
[4] auch verschiedene GR-Entwürfe und
kontrollierte gar die Arbeit des Projektsekretärs Kurt Roeckx. War beispielsweise
die Zeit, die ein GR-Entwurf zum Sammeln von Sekundanten hatte, abgelaufen,
mahnte Jackson quasi augenblicklich den
Beginn der GR an.
Insgesamt hat Jackson während der gesamten Systemd-Diskussion keinen guten
Eindruck hinterlassen: Mal forderte er
den Rücktritt Bdale Garbees vom CTTEVorsitz, mal griff er andere Entwickler
scharf an, weil sie Systemd unterstützten. Zum bisweilen hasserfüllten Ton in

der Diskussion hat er damit maßgeblich
beigetragen. Dies Verhalten steht in der
von Jackson vorgetragenen Vehemenz einem ehemaligen Projektleiter und CTTEMitglied nicht zu, mehr Contenance wäre
wünschenswert und notwendig.
Jackson zettelte also eine Generalabstimmung an, über deren Text mehrere Wochen heftige Diskussion auf den verschiedenen Mailinglisten sowie in diversen
Chatrooms stattfanden. Am Ende stand
ein GR-Entwurf, der als eine der Möglichkeiten quasi eine „LMAA“-Klausel
hatte: Das Debian-Projekte möge per GR
entscheiden, dass es einer GR über die
Initsystem-Frage nicht bedürfe. Genau
jene Option stand als Gewinner fest, als
Kurt Roeckx die Ergebnisse auf der Abstimmungsseite veröffentlichte.

Was sagt die Community
dazu?
Das GR-Ergebnis darf wohl auch als
virtueller Stinkefinger in Richtung der
Systemd-Verfechter und -Gegner gelten,
die ihren Streit seit Monaten in diversen
Formen öffentlich austragen. Die Mehrheit der Debian-Entwickler geht an die
Initsystem-Debatte offenbar sehr nüchtern heran und ist bereit, eine funktionierende Implementation zu akzeptieren, sei
es auf Systemd-Basis oder auf Basis eines
anderen Werkzeugs.
Kurzum: Die Mehrheit der Entwickler ist
der Diskussion rund um Systemd müde
und findet die immer wiederkehrenden

Was bedeuten die Rückzüge
aus den Gremien?
Beide Faktoren dürften dazu beigetragen
haben, dass sich im November gleich
mehrere altgediente Entwickler aus dem
CTTE zurückzogen oder Debian gleich
ganz den Rücken kehrten. Joey Hess
(Abbildung 3) ist dabei – und ein echtes Debian-Schwergewicht: Er ist der
Kopf hinter »debhelper«, das beim Zusammenbau der meisten Debian-Pakete
zum Einsatz kommt. Auch für andere
Programme innerhalb Debians zeichnet
er verantwortlich.
Hess verabschiedete sich gleich ganz vom
Projekt und erklärte, künftig seine Aufmerksamkeit anderen Themen widmen
zu wollen. Als einen Grund nannte er
die für ihn befremdliche Systemd-Debatte
und die Tatsache, dass ihm die Entscheidungsprozesse in Debian mittlerweile zu
komplex geworden seien.
Ganz so hart brach Tollef Fog Heen mit
Debian zwar nicht, doch hing auch er
seinen Posten als Maintainer an den Nagel: Heen wird nicht länger an Systemd in
Debian arbeiten, weil der ihm entgegenschlagende Hass [5] unerträglich sei und
er sich dem nicht länger aussetzen wolle.
Das Technical Committee hat gleich drei
Abgänge zu verkraften: Colin Watson
nimmt seinen Hut und will bloß noch so
lange aktiv bleiben, bis ein Nachfolger
für ihn feststeht. Er merkt ausdrücklich
an, dass die Systemd-Debatte nichts mit
seinem Rücktritt zu tun hat.
Anders sieht es bei Russ Alberry aus: Er
will in Zukunft weniger diskutieren und

02/2015

Wie geht es weiter mit dem
Debian-Projekt?
Bei Licht betrachtet bleibt aber kein
Grund, an Debian insgesamt zu zweifeln.
Das Projekt ist so groß, dass es überall ständige Fluktuationen gibt. Pakete,
deren Maintainer sich verabschieden,
werden meist von anderen Entwicklern
übernommen und betreut. Wie es mit
den Paketen von Joey Hess weitergeht,
muss sich zeigen: Hess hat angekündigt,
Debhelper und seine anderen Projekte in
Zukunft nicht mehr weiterentwickeln zu
wollen. Es steht allerdings zu vermuten,
dass sich innerhalb des Projekts Leute
finden, die sich um die verwaiste Software kümmern.
Abgesehen von dem aktuellen SystemdStreit ist es ja auch nicht das erste Mal,
dass Debian zentrale Persönlichkeiten
der Projektgeschichte abhanden kommen: Als Mark Shuttleworth beispielsweise vor Jahren gleich eine ganze Reihe
Debian-Entwickler anstellte und sie
damit zumindest zum Teil dem Projekt
entzog, herrschte nur kurzzeitig Endzeitstimmung. Schon bald stellte sich
nämlich heraus, dass frischer Wind in
den Projektgremien dem Debian-Projekt
durchaus zuträglich sein kann.
Der erste und wichtigste Schritt, den
Debian bewältigen muss, ist der zu innerer Ruhe: Die Grabenkämpfe rund um
Systemd sind von einzelnen Leuten mit
einer solchen Härte geführt worden, dass
sie viel Porzellan zerschlagen haben.

Wird der Devuan-Fork
Erfolg haben?
Es sieht so aus, als wollten die SystemdGegner nun einen Debian-Fork ins Leben
rufen, der ohne die Software auskommt.

Ein solches Projekt würde Betreuer und
Gegner von Systemd dauerhaft trennen
und es Debian erlauben, wieder zur Ruhe
zu kommen. Wenn das Devuan-Projekt
[6] denn Erfolg hat: Einerseits waren die
Devuan-Verantwortlichen bis Redaktionsschluss nämlich nicht bereit, Ross und
Reiter zu nennen, und agieren lieber aus
der Anonymität heraus.
Andererseits sind die Devuan-Gründer
beim Sammeln von Spenden nicht gerade
erfolgreich. Innerhalb von 48 Stunden
kratzten sie rund 1700 US-Dollar über
Paypal, Stripe und Bitcoins zusammen.
Mit umgerechnet 1370 Euro lässt sich
allerdings schwerlich eine ganze Distribution bauen. Außerdem konterkariert
der Misserfolg beim Spendensammeln
die Mantra-artig wiederholte Aussage
der Systemd-Gegner, es gäbe eine große
Zahl von Debian-Nutzern, die Systemd
zu verhindern versuchten.
Eine echte Gefahr für Debian könnte
Devuan nur werden, wenn es dessen
Entwicklern gelingt, ein funktionierendes, aktuelles System mit einem anderen
Initsystem als Systemd auf die Beine zu
stellen und dann für das eigene Projekt
genug Traktion zu erzeugen. Warum dessen technischer Teil sehr komplex werden dürfte, hat Lennart Poettering (Abbildung 4) in seiner Rolle als Erfinder
und Systemd-Hauptentwickler bereits vor
Monaten in [7] erläutert.

Was ändert sich technisch?
Unterm Strich werden künftig Systemkomponenten wie Cgroups im Linux-Kernel oder auch Kdbus Funktionen nutzen,
die augenblicklich nur Systemd bietet.
Wer die gleichen Features ohne Systemd
will, müsste also enormen Programmieraufwand betreiben. Dann stellt sich die
Frage, ob das sinnvoll ist: Red Hat (für
RHEL sowie Fedora), Suse (für SLES und
Open Suse) und Canonical (für Ubuntu)
haben bereits eine Entscheidung für Systemd gefällt. Romantiker mögen es für
möglich halten, dass Debian hier einen
eigenen Weg gehen und etwas anderes
nutzen kann.
Doch dürfte in der Realität die Entwicklung darauf hinauslaufen, dass immer
mehr Software Funktionen an Systemd
knüpft und daher die Pflege eines Forks
zunehmend aufwändiger wird, wenn er

© Markus Feilner, CC-BY-SA 4.0

Aktuell
Knatsch bei Debian
www.linux-magazin.de

30

wieder mehr entwickeln, was in seinen
Augen mit der CTTE-Arbeit unvereinbar
ist. Kurz nach Bekanntgabe des Ergebnisses der GR über Systemd erklärte auch Ian
Jackson seinen sofortigen Rücktritt vom
CTTE und begründete ihn damit, dass er
Systemd nicht unterstützen möchte, aber
andererseits mit dieser Meinung nicht
mehr die Mehrheit von Debian hinter
sich weiß. Innerhalb kurzer Zeit hat so
eine ganze Reihe Entwickler ihre Posten
geräumt oder Debian verlassen.

Abbildung 4: Ein T-Shirt mit dem Aufdruck „Open
Source Tea Party“: Systemd-Mastermind Lennart
Poettering auf der FOSDEM 2014 in Brüssel.

nicht sehr schnell im Softwaremuseum
verkommen soll. Fürs Erste scheint es jedenfalls so, als bleibe Debian eine Pause
zum Durchatmen. Es ist dem Projekt zu
wünschen, dass die Pause eine lange
wird. (mfe)
Q

Infos
[1] Martin Loschwitz, „Frei regiert“:
Linux-Magazin 10/14, S. 34
[2] Die Debian-Verfassung: [https://www.
debian.org/devel/constitution.de.html]
[3] E-Mail von Bdale Garbee:
[https://bugs.debian.org/cgi-bin/
bugreport.cgi?bug=727708#6734]
[4] Debian-Vote-Mailingliste:
[http://lists.debian.org/debian-vote]
[5] Mail von Tollef Fog Heen: [http://lists.
alioth.debian.org/pipermail/pkg-systemdmaintainers/2014-November/004563.html]
[6] Devuan-Projekt: [https://devuan.org]
[7] Beitrag von L. Poettering: [https://plus.
google.com/u/0/+LennartPoetteringTheOne
AndOnly/posts/8RmiAQsW9qf]
Der Autor
Martin Gerhard Loschwitz
arbeitet als Cloud Architect
bei Syseleven in Berlin. Er
beschäftigt sich dort intensiv mit den Themen Cloudmanagement, Open Stack,
Distributed Storage und Puppet. Außerdem pflegt
er in seiner Freizeit Pacemaker für Debian.

02/2015

Titelthema
32

www.linux-magazin.de

Clients

Das Ende von End-to-End und die mühsame Suche nach Alternativen

E-Mail, aber sicher
Ob private oder betriebliche Kommunikation – das Unbehagen wächst. Denn Geheimdienste und Mitbewerber
trachten danach, aus dem Urgestein E-Mail eine sprudelnde Quelle abzuschöpfen. Der Schwerpunkt dieser Ausgabe informiert über mögliche Gegenmaßnahmen. Los geht es mit verschlüsselnden Clients. Tim Schürmann, Jan Kleinert

Die langen Stehtische haben dicke Holzplatten, es gibt genug leckeres Fingerfood
für alle, die Getränke sind frei, und an
einer der dunkelroten Wände zischt ein
Kaffeeautomat, wenn Gäste der kostenlosen Veranstaltung auf einen der Knöpfe
drücken. Vor dem Vortragsraum im
Münchner Hotel „Courtyard by Marriott
Inhalt
32 Verschlüsselnde Clients
PGP oder Gnu PG bieten zwar Sicherheit,
sind aber so umständlich zu handhaben,
dass kaum jemand sie benutzt.
38 Dime
Eine Initiative rund um Phil Zimmermann
will die E-Mail revolutionieren.
42 DANE und DNSsec
DANE stellt sicher, dass ein Mailserver
oder eine Firewall auf dem Transportweg
nicht jede Verschlüsselung ausknipsen.
46 Dmarc
Hilft auch gegen Spammer: Mailadressen verifizieren mit Dmarc.

City Center“ (Zimmer ab 160 Euro pro
Nacht) sorgen Kellner dafür, dass keine
Annehmlichkeit versiegt.
Der Rahmen könnte der einer Verkaufsveranstaltung für dubiose Immobilienfonds sein. Ist er aber nicht, denn eine
Stunde zuvor hatten drei Entwickler ihre
Mail-Projekte LEAP [1] und Pixelated [2]
vorgestellt. Ihr Arbeitgeber, die IT-Firma
Thoughtworks [3], bezahlt diese drei
und acht weitere Developer in Hamburg
sowie im brasilianischen Porto Alegre seit
Anfang 2014 und plant wohl, dies weitere
eineinhalb Jahre zu tun. Die Rechnung
des Abends (der in mehreren europäischen Städten wiederholt wird) begleicht
sie auch – und das, obwohl die Entwickler beteuern, dass Thoughtworks kein
kommerzielles Produkt um LEAP und Co.
plane. Willkommen auf dem Sonnendeck
der Open-Source-Szene!
Christoph Klünter, Lisa Junger und Folker
Bernitt – so heißen die drei – erklären
das intensive Engagement ihres Arbeit-

gebers: An normalen Tagen passieren 196
Milliarden E-Mails das Internet, und nur
sehr wenige davon sind verschlüsselt.
Der Rest ist Freiwild für Geheimdienste
und Industriespione. Hinzu kommt, dass
sich in fast allen Ländern der Mailverkehr
auf wenige Provider konzentriert, was die
zum lohnenden Objekt für Cyberangriffe
und staatliche Eingriffe macht.
Wer als Gegenmaßnahme seine Mails
Ende-zu-Ende-verschlüsselt, ist überraschenderweise nicht völlig aus dem
Schneider. Weil der Anteil gecrypteter
Nachrichten so gering ist, fallen diese
nämlich über die Gebühr auf. Mitlauschende Geheimdienste erfassen die
unverschlüsselten Header solcher Mails
als weiße Raben besonders genau, weil
sie annehmen, Absender und Empfänger
haben etwas zu verbergen.

Weich gebettet: LEAP,
Bitmask und Pixelated
Die Thoughtworks-Leute wollen etwas
dazu beitragen, die Situation zu verbessern. Zum einen möchten sie die länderweisen Quasimonopole der Mailprovider
aufweichen, indem sie kleineren Firmen
und Privatanwendern die technische
Möglichkeit an die Hand geben, selber
als (verschlüsselungsfreundlicher) Provider aufzutreten. Zum anderen versuchen
sie den alten Konflikt zwischen Sicherheit und Usability zu entschärfen, an
dem PGP und Gnu PG seit jeher leiden:
Aktuelle Schlüssellängen vorausgesetzt,
gelten beide Verfahren als sicher – wenn
man davon absieht, dass sie den Mailheader im Klartext belassen.
Doch in der praktischen Ende-zu-EndeVerschlüsselung erweisen sie sich als
aufwändig zu handhaben, weshalb die

02/2015

Titelthema
Clients

Abbildung 1: Pretty Easy Privacy verifiziert die Schlüssel initial mit englischen oder deutschen Wortgruppen,
die sich gut am Telefon diktieren lassen.

tomatisch und validiert die Mail. Für die
Benutzerseite haben die LEAP-Macher
den Linux-Client Bitmask [4] im Köcher.
Klünter, Junger und Bernitt empfehlen an
dem Abend jedoch ihre Webapp Pixelated [2]. Wie jedem Webclient lastet der
App aber der Makel an, dass ein Server
die Private Keys der Nutzer speichert.
Angesichts der Entwicklerressourcen und
der hehren Motive verdient das Projektebündnis jedoch Aufmerksamkeit.

Vordiktiert: PEP
Das Projekt Pretty Easy Privacy (PEP,
[5]) will ähnlich dem ThoughtworksProjekt oder Dime (vormals Darkmail,

siehe Extra-Artikel hier im Schwerpunkt)
die Ver- und Entschlüsselungsmechanismen vom Benutzer abkoppeln. PEP fußt
nicht auf dem Web of Trust mit klassischen Keyservern, sondern verifiziert die
Schlüssel mit englischen oder deutschen
Wortgruppen, die sich gut am Telefon
diktieren lassen (Abbildung 1). Den Key
setzt PEP aus entropiereichen Quellen
des Benutzers zusammen.
Die PEP-Engine ist freie Software – jeder
darf und soll sie in seinen Messaging-Client einbauen. Dass der erste unterstützte
Client auf den Namen Outlook hört, folgt
Marktgegebenheiten, bringt aber Linuxer nicht weiter. Der im schweizerischen
Winterthur lebende Entwickler Volker

www.linux-magazin.de

© PEP-Videopräsentation

wenigsten Benutzer sie verwenden.
Viele verstehen schon das Prinzip von
Private und Public Key nicht, andere
sind mit dem Erzeugen und Hochladen
der Schlüssel überfordert und vielen ist
das ständige Eintippen der Passphrase
zu viel. Zum Teil in Mailprogramme integrierte Frontends wie der GNU Privacy
Assistant (GPA), Seahorse oder Kgpg
versuchen den Nutzungsgrad zu heben,
erreichen dieses Ziel aber nicht im ausreichenden Maße.
Der Ansatz der gut unterfütterten Thoughtworks-Entwickler nimmt prinzipbedingte
Sicherheitsschwächen in Kauf, um die
Benutzbarkeit drastisch zu vereinfachen.
Ihre pragmatische Rechnung: Das Mitlesen soll für Angreifer aufwändiger und
damit teurer werden als dies bei Plaintext-Mails der Fall ist. Die benutzte LEAPPlattform [1] bietet ein Set aus einem
gehärteten Debian, Debian-Paketen und
Puppet-Modulen an, welche die Infrastruktur eines sicheren KommunikationsServiceproviders bereitstellen und dessen
Betrieb aufrecht erhalten. Diese Serverkomponente könnte bei einem Dienstleister arbeiten – dem man dann vertrauen
muss –, oder man installiert sie als virtuelle Maschine im eigenen Netz.
LEAP speichert eingehende PlaintextMails verschlüsselt, sodass sie ab diesem Zeitpunkt nur der Empfänger lesen
kann. Passt ein öffentlicher Schlüssel zur
eingehenden Mail, erkennt LEAP dies au-

33

02/2015

Titelthema
34

www.linux-magazin.de

Clients

und widerspricht damit
PEP-Mann Volker Birk
indirekt.

Altgedient:
Web.de Mail
Das kostenlose Postfach
bei Web.de verschlüsselt
auf Wunsch E-Mails nach
dem S/MIME-Standard
mit X.509-Zertifikaten.
Wer bei Web.de ein PostAbbildung 2: Auf Anhieb erkennen Anwender bei Web.de nicht, welches Verschlüsselungsverfahren sich hinter welcher Einstelfach anlegt, erhält autolung verbirgt. Anders als mancher Mitbewerber macht sich der große Provider aber wenigstens Gedanken um Vertraulichkeit.
matisch ein eigenes Zertifikat. Die Verschlüsselung
E-Mails chiffrieren kann der Webclient einer E-Mail läuft besonders einfach zwiBirk wirbt daher um Geduld: „Die Dinge
gehen nur nicht alle auf einmal. PEP jedoch nicht. Wer seine Nachrichten schen zwei Web.de-Nutzern ab: Zunächst
liegt bisher ja nur in einer Preview vor.
verschlüsseln möchte, muss folglich zu
senden sich beide Gesprächspartner eine
Auch sind wir nur eine kleine Gruppe
einem fähigen lokalen Mailclient greifen,
signierte E-Mail. Web.de importiert dann
Kolab Systems empfiehlt Kontact oder
automatisch den Schlüssel aus dem dabei
von Leuten, die dafür umso engagierter
Thunderbird mit Enigmail.
angehängten X.509-Zertifikat des Gegendaran arbeitet.“
Die wenigen Ressourcen halten Birk
Auch wer selbst einen Kolab-Server auf- übers. Der Verfasser einer E-Mail muss
nicht vom Blick in die Zukunft ab: „Ich setzen möchte, benötigt einen Desktopdann in seinem Webclient nur noch die
komme gerade vom W3C-Workshop zuClient: Der standardmäßig eingerichtete Verschlüsselungsart einstellen: RC2 mit
Webmailer Roundcube kann ebenfalls
rück. Da geht es um die Browser-Plugins
128 Bit Schlüssellänge, 3DES mit 168 Bit
keine E-Mails chiffrieren. Erst in einer
für Webmailer … Wir werden gerade an
oder AES mit 265 Bit (Abbildung 2).
der kommenden Versionen wollen die
die IETF weitergereicht, um die SynchroDen ganzen Ablauf versteckt der WebRoundcube-Entwickler eine S/MIME- client vor seinen Anwendern. Die X.509nisationsprotokolle zu standardisieren.“
Er selbst programmiert zurzeit an der und Open-PGP-Unterstützung integrieZertifikate beziehungsweise Schlüssel erAndroid-Version, einem Fork von K-9.
ren. Zwar existieren bereits Plugins, die
zeugt das Web.de Trustcenter. Anwender
Eine erste Testversion will er bis Ende
eine Verschlüsselungsfunktion nachrüsmüssen dem Dienst allerdings vertrauen,
2014 fertigstellen. Birk plant einen Patch
ten, die Firma legt diese Erweiterungen denn theoretisch könnte Web.de nicht
nur E-Mails unbemerkt entschlüsseln,
für den Mailclient Mutt, den er selbst
jedoch nicht bei.
Den Grund verrät Georg Greve, CEO
sondern auch die Identität des Anwennutzt. Irgendwann danach will er eine
Lösung für Thunderbird finden. Zudem von Kolab Systems, gegenüber dem ders annehmen und von ihm signierte
habe das Kolab-Projekt angekündigt, PEP Linux-Magazin: „Alle uns bekannten MeE-Mails verschicken. Über die Einstelzusammen mit der nächsten Major-Rethoden erlauben immer auch die Komlungen kann der Anwender sein X.509lease auszuliefern, Kontact also fit dafür promittierung des Schlüssels. Entweder
Zertifikat immerhin als P12-Datei herunzu machen (siehe unten).
wird er direkt auf dem Server abgelegt
terladen. Sofern die E-Mail an ein Konto
Während LEAP, PEP oder Dime noch
oder über das HTML-5-Storage für die bei Web.de, T-Online, GMX oder Freenet
nicht produktiv einsetzbar sind, mühen
Webanwendung zugreifbar. Beides ist
gerichtet ist, nutzt Web.de einen versich einige große und kleine Webhosaber nach unserer Einschätzung nicht gut schlüsselten Übertragungsweg. Wie die
ter schon länger, auf Privatsphäre und
genug und erlaubt es, den Schlüssel di- Verschlüsselung und der Versand dabei
Sicherheit bedachte Benutzer zufrieden rekt zu kompromittieren. Das wiederum
genau ablaufen, verraten die Maildienste
zu stellen. Nicht dazu zählen allerdings ist schlechter als nicht zu verschlüsseln, allerdings nicht.
weil die Erwartungshaltung des NutGoogle, Yahoo und GMX, letzterer Dienst
zers zum Zeitpunkt der Verschlüsselung
gibt in seiner Online-Hilfe immerhin eine
eine andere ist. Kolab empfiehlt daher
Kurzanleitung für Thunderbird.
Den Dienst Mailbox.org [7] betreibt
die Verschlüsselung auf dem Desktop.“
die in der Linux-Szene bekannte BerliLangfristig möchte Kolab Systems jedoch
ner Heinlein GmbH. Das Unternehmen
auch eine Verschlüsselung im Webclient
Kolab Systems bietet mit My Kolab. anbieten. Das Unternehmen prüft dazu
wirbt mit einem Serverstandort in Berlin,
com [6] eine gehostete Groupware an.
der Einhaltung deutscher Datenschutzderzeit verschiedene Konzepte, zu denen
auch PEP (siehe oben) gehört. Wann eine
Die darin verwalteten Daten lagern laut
gesetze und einer Verschlüsselung. Das
Anbieter zwar „sicher geschützt in ei- Umsetzung mit welcher Lösung erfolgt,
letzte Versprechen kann der Dienst jenem Rechenzentrum in der Schweiz“,
konnte Georg Greve noch nicht sagen
doch nur teilweise einlösen. So chiffriert

Rumberlinert: Mailbox.org

Unverschlüsselt: Kolab

Mailbox.org wie LEAP auf Wunsch alle
E-Mails mit dem Public Key des Users.
Auf dem Mailbox.org-Server liegen damit
ausschließlich chiffrierte Nachrichten,
auf dem Weg im Internet laufen sie aber
weiterhin im Klartext, und der Kunde
braucht ein gewisses Vertrauen zu den
Admins des Betreibers. Und es gibt noch
einen anderen Haken: Speichert ein EMail-Client eine gerade versendete E-Mail
im »Sent«-Ordner auf dem Server, bleibt
sie dort unverschlüsselt liegen. Mailbox.
org arbeitet nach eigenen Angaben an
diesem Problem.
Um die automatische Verschlüsselung zu
aktivieren, müssen User nur ihren Public Key hochladen. In Zukunft möchte
Mailbox.org zusätzlich den Private Key
auf seinen Servern speichern. Die Verund Entschlüsselung könnte damit zwar
automatisch geschehen, der Anwender
gibt jedoch seinen Private Key in fremde
Hände. Mailbox.org hätte dann nicht nur
Zugriff auf den E-Mail-Verkehr, sondern
müsste etwa auf Anweisung durch Gerichte die E-Mails herausgeben.
Beim Versand einer E-Mail versucht Mailbox.org einen verschlüsselten Kanal zum
Empfänger aufzubauen. Das funktioniert
allerdings nur, wenn auch das Gegenüber
mitspielt. Den gesicherten Versand dürfen Nutzer sogar erzwingen. Die Zustellung scheitert dann, wenn der Empfänger
keine Verschlüsselung erlaubt. Experten
wählen sogar zwischen verschiedenen
Sicherheitsstufen und gestatten beispielsweise die Zustellung nur an Empfänger
mit einem validen DANE-Record-Eintrag.
In der Praxis müssen Anwender jedoch
häufig E-Mails an nicht entsprechend
abgesicherte Postfächer versenden. Wer
mit Mailbox.org verschlüsselte E-Mails
austauschen möchte, kommt somit unter
dem Strich nicht um
einen lokalen Mailclient herum. Zu einem
solchen rät sogar Mailbox.org in seiner Onlinehilfe.

chen. Dieser in Python geschriebene
Webmailclient funktioniert ähnlich wie
Roundcube: Anwender starten Mailpile
auf einem eigenen Server oder dem PC
und greifen mit dem Browser darauf zu
(Abbildung 3). Gegenüber dem E-MailProvider verhält sich Mailpile wie ein lokaler Mailclient. Im Gegensatz zu Roundcube bietet Mailpile fest integrierte und
einfach zu nutzende Verschlüsselungsfunktionen. Um eine E-Mail zu verschlüsseln, genügt etwa in der »Compose«-Ansicht ein Klick auf das entsprechende
Symbol.
Zum De- und Chiffrieren nutzt Mailpile
den Open-PGP-Standard und enkodiert
die Nachricht, noch bevor es sie an den
E-Mail-Dienst übergibt. Der kann folglich
nicht mitlesen. Bei einem Einsatz auf
einem Server könnte ein Angreifer diesen
jedoch kompromittieren. Da Mailpile die
Nachrichten mit Gnu PG verschlüsselt,
wandert zudem der Klartext zwischen
Browser und Mailpile-Server durch das
Internet. Den Zugang zu Mailpile und
somit dem eigenen Postfach schützt
nur ein einfaches Passwort. Anwender
müssen daher zusätzliche Sicherungsmaßnahmen ergreifen. Derzeit befindet
sich Mailpile noch in der Betaphase, der
Quellcode [9] steht wahlweise unter der
GNU Affero General Public License oder
der Apache License 2.0.

Eingeklinkt: Web PG und
Google End-to-End
Einen anderen Weg geht das unter der
GPLv2 veröffentlichte Web PG [10].
Diese Erweiterung für Firefox und
Chrome bindet Gnu PG in den Browser
ein. Das versetzt Anwender in die Lage,
direkt im Browser ihre Schlüssel zu ver-

Aufgepfropft:
Mailpile
Wessen Mailprovider
im Web nicht verschlüsselt, kann auf
Mailpile [8] auswei-

Abbildung 3: Mailpile ist ein zusätzliches Frontend für einen beliebigen
nicht-verschlüsselnden E-Mail-Dienst.

02/2015

Titelthema
Clients
www.linux-magazin.de

36

der nicht. Die Schlüsselverwaltung lässt
kaum Wünsche offen:
Schlüssel sind importier-, exportier- und
mit Schlüsselservern
abgleichbar. Anwender dürfen unter anderem das Ablaufdatum
ändern und Unterschlüssel hinzufügen.
Bei der Schlüsselerzeugung lässt Web
PG die Wahl zwischen
den Algorithmen DSA,
RSA und El Gamel,
Abbildung 4: Web PG und ein Browserplugin verschaffen Gmail-Nutzern doch
Schlüssel sind 1024,
noch Gelegenheit, Nachrichten zu verschlüsseln.
2048, 3072 oder 4096
Bits lang.
walten und über das Kontextmenü der
Auch Google arbeitet derzeit an einer
Erweiterung für Chrome. Die End-to-End
rechten Maustaste schnell Texte zu ver[11] getaufte und der Apache License
und entschlüsseln.
2.0 unterworfene Software blendet auf
Für den Artikel interessant ist Web PGs
Knopfdruck ein Fenster ein, in dem sich
Gmail-Integration: Nach der Anmeldung
eine Nachricht de- und enkodieren lässt
bei Googles Webmailer klingt sich das
(wie in Abbildung 5). Innerhalb von
Plugin wie in Abbildung 4 in die WeboGmail dechiffriert die Erweiterung Nachberfläche ein. Über die zusätzlichen Butrichten automatisch.
tons de- und chiffriert der Benutzer die
Die Ver- und Entschlüsselung überMails. Die Entwickler klassifizieren diese
nimmt eine eigens für das Projekt neu
Integration zurzeit allerdings als experimentell, der Benutzer muss sie in den entwickelte Javascript-Bibliothek, die
dem Open-PGP-Standard folgt. Nach
Web-PG-Einstellungen explizit freischalihrer Installation generiert die Erweiteten. Des Weiteren tippen Anwender den
Text zunächst im Klartext ein. Bei einer rung automatisch einen Schlüssel, der
Zwischenspeicherung landet die NachAnwender muss lediglich seine E-Mailricht damit doch wieder unverschlüsselt
Adresse eintippen. Schlüssel lassen sich
auf den Google-Servern.
im- und exportieren. Im Gegensatz zu
Die Oberfläche von Web PG ist äußerst
Web PG befindet sich End-to-End noch
übersichtlich gestaltet, Kenntnisse im
in einer frühen Entwicklungsphase. Wer
Umgang mit Gnu PG benötigen Anwenes einsetzen möchte, muss die Erweite-

rung selbst übersetzen. Darüber hinaus
warnen die Entwickler vor Fehlern und
Sicherheitslücken.

Eingetütet: Mailvelope
Eine Alternative zu Web PG bietet Mailvelope (Abbildung 6, [12]). Diese Erweiterung für Firefox und Chrome befindet
sich ebenfalls noch im Beta-Stadium,
unterstützt aber weitaus mehr Webmailer als Web PG: Gmail, GMX, Microsoft
(Mail.live.com), Posteo, Yahoo und Web.
de. Sie arbeitet nach dem Open-PGPStandard und untersteht der GNU Affero
General Public License. Sie kann Schlüssel importieren, exportieren und erzeugen. Letzteres erfolgt grundsätzlich mit
dem RSA-Algorithmus. Der Anwender
wählt nur die Schlüsselgröße in den drei
Q
Stufen 1024, 2048 oder 4096 Bit.

Infos
[1] LEAP: [https://leap.se/en/home]
[2] Pixelated: [https://pixelated-project.org]
[3] Thoughtworks:
[http://www.thoughtworks.com/de/]
[4] Bitmask:
[https://leap.se/en/docs/client#Bitmask]
[5] PEP: [http://pep-project.org]
[6] My Kolab: [https://mykolab.com/de]
[7] Mailbox.org: [https://mailbox.org]
[8] Mailpile [https://www.mailpile.is]
[9] Mailpile-Sourcen:
[https://github.com/mailpile/Mailpile]
[10] Web PG: [https://webpg.org]
[11] Google End-to-End:
[https://code.google.com/p/end-to-end/]
[12] Mailvelope: [https://www.mailvelope.com]

Abbildung 5: Googles End-to-End läuft nur im Chrome-Browser. Die Erweiterung ver-

Abbildung 6: Eine Nachricht per Mailvelope zu schreiben, geschieht in

und entschlüsselt E-Mails in einem separaten Fenster.

einem Extrafenster und ist etwas komplizierter gelöst als in Web PG.

02/2015

Titelthema

Dime will bei digitaler Post alles neu machen

Der E-Mail haftet kein guter Ruf mehr an: Unsicher, nicht zuverlässig und für jeden lesbar wie eine Postkarte.
Eine Initiative rund um den Gründer des ehemaligen E-Mail-Anbieters Lavabit sowie PGP-Urgestein Phil Zimmermann haben sich das Ziel gesetzt, die E-Mail durch ein neues Medium zu ersetzen. Martin Loschwitz, Markus Feilner

auch als Problem von existenzieller Bedeutung für Lavabit herausstellen.

Snowden und das Ende

© filmfoto, 123RF

38

www.linux-magazin.de

Dime

Jetzt aber!

Ladar Levison ist in der Szene nur wenigen Menschen ein Begriff, dafür kennt
mittlerweile fast jeder die Ex-Firma des
Unternehmers: Lavabit (Abbildung 1).
Die Webseite [1] war von 2004 bis 2013
im E-Mail-Hosting-Geschäft aktiv und
sah sich selbst als Pionier auf dem Gebiet sicherer und bei Bedarf anonymer
Kommunikation. Ihren Ursprung fand die
Unternehmensidee in der angeprangerten Schwäche eines Mitbewerbers. Die
texanischen Gründer waren nicht damit
einverstanden, dass Googles Gmail Werbung auf Grundlage des vorher von den
Kaliforniern durchsuchten Inhalts von
E-Mails anzeigt, und gründeten den auf
Sicherheit ausgerichteten E-Mail-Service.

Lavabits Schwachpunkt: Die
Schlüssel der Kunden
Lavabit setzte damals tatsächlich Maßstäbe: Asynchrone Verschlüsselung gehörte zum Standard, und zwar in einer

Lange Zeit nach seiner Gründung war
Lavabit trotzdem nur ein Anbieter von
vielen und wirbelte auch nicht viel Staub
auf. Mit den Behörden arbeitete man zusammen, wo es nötig war. Vermutlich
wäre Lavabit ein Mailanbieter wie viele
geblieben, hätte es da nicht diesen einen
verflixten Kunden mit der E-Mail-Adresse
[edsnowden@lavabit.com] gegeben.
Als Snowden (Abbildung 2) erst ins
Ausland flüchtete und dann kurzerhand
anfing die geheimsten Geheimnisse der
Megabehörde NSA auszuplaudern, war
der Spaß für Lavabit bald vorbei, das
Unternehmen sah sich diversen Gerichtsbeschlüssen (Abbildung 3) und Durchsuchungsbefehlen ausgesetzt.

Qualität, die selbst für Geheimdienste
nicht ohne Weiteres zu knacken ist. Doch
hatte die Lösung einen Schwachpunkt:
Die Schlüssel, die Lavabit für den KryptoTeil der Installation
nutzte, lagen bei Lavabit selbst auf den
Servern. Die Kunden
von Lavabit mussten
dem
Unternehmen
also vertrauen, denn
Lavabit konnte immer
die Inhalte der E-Mails
lesen, die Kunden
über den Dienst verschickten.
Nicht nur sorgte diese
Funktionsweise für
aufgerollte Fußnägel
bei Menschen mit einer Affinität für das Abbildung 1: Ladar Levison ist ein Mann mit Mission: Dass er Lavabit auf
Druck von US-Behörden schließen musste, brachte ihn weltweit in die
Thema Verschlüsselung – sie sollte sich
Medien, was er auch wirksam auszuschlachten wusste.

02/2015

Seither ist Levison ein Mann mit Mission.
Bald nach dem Lavabit-Ende trat er mit
der Ankündigung an die Öffentlichkeit,
einen Lavabit-Nachfolger gründen zu
wollen. Dieser soll nicht weniger tun, als
die E-Mail durch eine neue Technologie
ersetzen, bei deren Design Sicherheit eine
elementare Rolle spielt. Levison hat sich
dafür auch ein durchaus schlagkräftiges
Team organisiert, das er auf der Webseite
([2], Abbildung 5) vorstellt:
Q Phil Zimmermann (Abbildung 6,
[3]) ist der Erfinder von PGP, also
ein Pionier für Sicherheit bei digitaler
Kommunikation, und bringt fundiertes
Krypto-Wissen mit.
Q Jon Callas kann auf seine lange Erfahrung bei der Arbeit für Sicherheit
im Internet verweisen: Er war unter
anderem bei DEC und PGP und einer
der Mitbegründer von Silent Circle
[4], einem anderen Dienst für sichere
Mailkommunikation im Netz nach
dem Prinzip von Lavabit.
Q Mike Janke, der andere Mitbegründer
von Silent Circle und enge Freund von
Jon Callas und Phil Zimmermann.
Zusammen bringen die vier Köpfe hinter
dem neuen Projekt also einiges an Erfahrung mit, was verschlüsselte Kommunikation betrifft. Und einen Namen haben
die vier für ihr Baby auch schon, oder
eigentlich eher zwei: Zunächst firmierte
das 2013 gestartete Projekt als „Project
Darkmail“.
Unter dieser Bezeichnung sammelte Levison auf Kickstarter [5] eine Menge
Spenden und Goodwill. Erst vor Kurzem erfolgte dann die Umbenennung in
„DIME“, was für Dark Internet Mail Environment steht. Schon aus dieser Bezeichnung allein ist ersichtlich, dass Dime

Der oberste und wichtigste Faktor für
Dime ist in den Augen der Gründer die
Fähigkeit, echte Ende-zu-Ende-VerschlüsAbbildung 2: Hätte Ed Snowden nicht Lavabit
selung zu bieten, bei der Schloss und genutzt, um sichere E-Mails zu verschicken, dann
Schlüssel nur den beiden kommunizie- gäbe es den Dienst wahrscheinlich noch.
renden Personen bekannt sind. Darin enthalten soll aber nicht nur der eigentliche Nachrichtenversand abzuschnorcheln.
Inhalt der E-Mail sein – Dime will auch Dadurch wäre Dime fein raus und davor
geschützt, in eine ähnliche Situation wie
alle Metadaten der E-Mail verschlüsselt
Silent Circle oder Lavabit zu kommen,
und damit sicher übertragen.
die beide ins Visier der Polizei gerieten.
Die einzige Information, die ein fiktiver
Man-in-the-Middle bei der Kommunikation der gedachten Kommunikationspartner Alice und Bob sehen können soll, ist
die Länge der verschlüsselten Nachricht.
Dime will aber noch einen Schritt weiter
Darüber hinaus sieht der Angreifer nur
gehen und die Software öffentlich maDatensalat, der selbst für Megacomputer
chen, die im Hintergrund bei Dime läuft.
(fast) unmöglich zu knacken ist.
Der Ansatz schlägt gleich mehrere Fliegen
Letztlich soll Dime ein Dienst sein, den
mit einer Klatsche. Wenn Dime für die Admins auf eigenen Servern betreiben
Kommunikationsteilnehmer nur das Medium bereitstellt, aber
die
Informationen
selbst nicht entschlüsseln kann, bietet die
Firma keinen verwertbaren Ansatzpunkt
für Strafverfolgungsbehörden. Durch die
umfassende Anonymisierung könnte Dime
selbst dann keine Daten rausrücken, wenn
es wollte oder ein
erneuter
„National
Security Letter“ der
US-Behörden sie dazu
zwingen sollte.
Und weil die digitalen
Schlüssel nur bei den
Nutzern liegen, hat
Dime selbst auch überhaupt keine Chance,
Abbildung 3: Per Gerichtsbeschluss wollten die US-Behörden erwirken, dass
echte Nutzdaten beim
Lavabit alle Daten herausgeben muss.

Software, Dienste,
Protokolle und Clients

www.linux-magazin.de

End to End

Dime

Titelthema

Sichere E-Mails voraus

nicht einfach nur ein E-Mail-Aufsatz für
mehr Sicherheit sein will, wie Gnu PG es
de facto ist.
Viel mehr will Dime die klassische EMail durch einen neuen Dienst ersetzen,
der so funktioniert wie E-Mail, dabei
aber grundlegend sicher ist. Das umfasst
mehrere Punkte, die auf der Agenda des
Dime-Projekts stehen.

© Laura Poitras / Praxis Films, Wikimedia, CC-BY 3.0

In denen forderten die Ermittler Lavabit dazu auf, sämtliche Schlüssel zu
übergeben, die intern für Kunden in Gebrauch gewesen waren. Effektiv hätten
die Behörden damit alle Nachrichten
entschlüsseln können, die man jemals
weitergeleitet hatte. Lavabit widersetzte
sich den Anordnungen zunächst, stellte
den IT- und Geschäftsbetrieb aber kurzerhand ein, wohl auch, weil sich Ladar
Levison sonst im Knast wiedergefunden
hätte (Abbildung 4).

39

02/2015

Titelthema
Dime
www.linux-magazin.de

40

Apropos Schlüssel: ten austauschen wollen. Für die steht
Dime wird eine Ver- in Dime konsequent ausschließlich der
schlüsselung verwenModus „Vertrauensvoll“ zur Verfügung.
den, die jener mit
Außerdem warnt Volcano ausdrücklich
PGP für E-Mails sehr vor eventuell mangelnder Sicherheit, beähnlich ist. Sie arvor es einen Dime-Anwender eine Nachbeitet ebenfalls mit richt unverschlüsselt an einen normalen
öffentlichen
Keys, E-Mail-Account versenden lässt.
die im Dime-Sprech
allerdings Signet (Abbildung 8) heißen
sollen. Nutzer können
sich für ihre Signets
Levison tingelt dieser Tage rund um den
gegenseitig das VerGlobus und stellt sein Projekt auf Kontrauen aussprechen,
ferenzen vor, bei denen Sicherheit ein
Abbildung 4: Laut eigener Aussage durfte Levison offiziell nicht darüber
was im PGP-Sprech
Thema ist. Auch beim Chaos Commureden, dass er unter massivem Druck durch Strafverfolgungsbehörden stand.
einer Schlüsselsignanication Congress in Berlin Ende 2013
tur gleichkäme.
[7] war er anwesend und sprach über
Zumindest dieser Teil der Geschichte
können, wie es die E-Mail schon heute
die Motive seines Handeln. Wer sich mit
klingt sehr stark nach Gnu PG mit all seiist. Bei ihrer Fundraising-Kampagne gaihm unterhält, hat schnell den Eindruck,
ben die Entwickler das ausdrücklich als nen Schwachpunkten. Levison verspricht dass dieser Mann weiß, was er tut. Das
aber hoch und heilig, dass die inhärente manifestiert sich in Details, die bei der
Ziel mit an: Auf Grundlage der Software,
die bei Lavabit lief, sollen Daemons
Verschlüsselung bei Dime deutlich leichBenutzung von Gnu PG oft unter den
für den Empfang und den Versand von ter zu nutzen sein werde, als es bei Gnu
Tisch fallen.
Dime-Nachrichten entstehen. Ein DMAP
PG der Fall ist – eben weil sie Teil des Erst im Dezember haben etwa Richard
(Darkmail Message Access Protocol) geKonzepts ist und nicht angehäkelt.
Klafter und Eric Swanson eindrücklich
unter Beweis gestellt [8], dass die 32-Bitnanntes Protokoll soll ein gleichwertiger
IDs für Schlüssel in Gnu PG bereits gut
Ersatz für IMAP sein, der aber mit Dime
voraussagbar sind. Wer es darauf anlegt,
funktioniert.
kann innerhalb kürzester Zeit ein Key-Set
Mittlerweile hat sich das Projekt bereits
ein schönes Stück von den Anfängen entDas bereits erwähnte Ziel der Verschlüs- von Tausenden Schlüsseln generieren,
fernt; die Lavabit-Komponenten haben
die gegenseitig signiert sind und vertrauselung der Metadaten stellt eine weitere
viele neue Features erhalten und auch
enerweckende Einträge in den Namenshohe Hürde dar, die Dime bereits umdie anderen Bestandteile der Suite sind
schifft zu haben glaubt. Schließlich, so und E-Mail-Feldern haben.
die Entwickler, gäbe es bereits ein Vorbild Anders formuliert: Mit dem beschrieinzwischen mehr als bloße Ideen. Levifür ein Netz, bei dem zwei Enden überbenen Prozedere lassen sich Schlüssel
son selbst stellte auf der Defcon 22 im
erzeugen, deren ID mit den IDs echter
wachungsfrei und anonym miteinander
Jahr 2014 [6] den Dime-Client Volcano
Schlüssel bekannter Persönlichkeiten
kommunizieren können: Tor.
(Abbildung 7) vor, der auf Thunderbird
identisch sind. Das Problem betrifft also
basiert und mit diesem zumindest bis- Die Dime-Macher rund um Levison bezeichnen den Transportmechanismus
gar nicht die Schlüssel jener Persönlichher einige Ähnlichkeit aufweist. Das gilt
von Dime als „Torwenigstens im Hinblick auf die Benutähnlich“ und meinen
zeroberfläche.
damit, dass verschiedene Hosts an der
Kommunikation beteiligt sind, den eigentliVolcano stellt den Benutzer vor die Wahl
chen Traffic dabei aber
nie zu Gesicht bekomaus drei Betriebsmodi, die mit den englischen Begriffen Trustful (vertrauensmen. Denn der ist wie
voll), Cautious (vorsichtig) und Paranoid bei einer Zwiebel unter vielen Schichten
(paranoid) benannt sind. Levison weist
verborgen.
ausdrücklich darauf hin, dass lediglich
Das birgt ein Problem
Cautious und Paranoid als sicher gelten
können. Denn nur in diesen Betriebsfür Dime-Anwender,
modi setzt Dime auf die Verschlüsselung
die mit Nicht-DimeAnwendern kommunivon Ende zu Ende, bei der die Keys auf
zieren und NachrichAbbildung 5: Das prominente Team von Darkmail respektive Dime.
den Computern der User verbleiben.

Das Problem der sicheren
Schlüsselverteilung gelöst?

Eingebaute Anonymisierung
wie im Tor-Netzwerk

Vertrauensvoll, vorsichtig
und paranoid

02/2015

Abbildung 6: Phil Zimmermann – hier rechts auf dem Open Xchange Summit 2013 in Hamburg mit Linux-Magazin-Redakteur Markus Feilner – gehört zum Dime-Team und bringt als Erfinder von PGP viel Erfahrung mit.

keiten selbst, denn die sind nach wie
vor sicher.
Erkennbar sind solche gefälschten
Schlüssel nur dann, wenn sich Anwender
die Mühe machen, den Fingerabdruck eines ihnen bekannten Schlüssels mit dem
zu vergleichen, den sie für die Verschlüsselung einer Nachricht verwenden. Tun
sie das nicht, sind dem Missbrauch Tür
und Tor geöffnet. Dramatisch wird dies
durch die Tatsache, dass auch Gnu PG
seit vielen Jahren die Möglichkeit bietet,
64-bittige Schlüssel-IDs zu verwenden.
Die Funktion nutzt allerdings praktisch
niemand. Die wenigsten Gnu-PG-Anwender wissen überhaupt von dem Problem
oder einer Lösung dafür.
Dime hat Probleme dieser Art auf dem
Schirm. Die Key-Distribution innerhalb
des Dienstes soll einige Sicherheit ab
Werk mitbringen: Die Keyserver, die zum
Einsatz kommen, sollen beispielsweise
so robust sein, dass missliebige Dienste

mit viel Budget sie nicht unterwandern
können. Und das System der Schlüsselverwaltung soll so tief in Dime integriert
sein, dass der Nutzer von dessen Existenz erst gar nichts merkt.

Dime hat Potenzial, muss
aber auch bald liefern
Besonders ergiebig sind die verfügbaren
Informationen zu Dime nicht. Dieser Artikel speist sich bereits aus den meisten
Quellen, die im Netz zu finden sind. Gut
möglich, dass Levison und seine Partner
Dime nicht an eine zu große Glocke hängen wollen, bevor der Dienst kann, was
er verspricht. Freilich ist auch klar, dass
Geheimdienste wie die NSA Dime als Affront auffassen und sich ins Zeug legen
werden, um die Nutzung des Dienstes zu
unterbinden. Es ist Dime offensichtlich
ein großes Anliegen, dafür erst gar keinen
Ansatz zu bieten.

Was Dime tatsächlich taugt, müssen
handfeste Tests beweisen, wenn Dime
den Sprung ins kalte Wasser gewagt hat
und verfügbar ist. Gelingt es den Entwicklern, ihren Dienst sinnvoll an den
Start zu bringen und die dazu gehörende
Software ebenfalls als Open Source zu
veröffentlichen, könnte das System an
Fahrt aufnehmen. Bombensicher ist bereits jetzt, dass die klassische E-Mail in
Q
Sachen IT-Sicherheit am Ende ist.

Infos
[1] Lavabit: [http://lavabit.com]
[2] Darkmail: [http://darkmail.info]
[3] Markus Feilner, „Volle Kraft voraus“:
Linux-Magazin 12/13, S. 20
[4] Silent Circle: [https://silentcircle.com]
[5] Kickstarter zu Darkmail:
[https://www.kickstarter.com/projects/
ladar/lavabits-dark-mail-initiative]
[6] Der Defcon-Autritt von Levison: [https://
www.youtube.com/watch?v=TWzvXaxR6us]
[7] Chaos Communication Congress: [http://
events.ccc.de/congress/?language=de]
[8] Kryptokalypse für Gnu PG:
[https://evil32.com]

Abbildung 7: Volcano ist ein Thunderbird-Spin-off, das bereits für Dime umge-

Abbildung 8: Signets sind bei Dime das Substitut für Gnu-PG-Schlüssel bei nor-

baut ist, und soll der offizielle Client des Unternehmens werden.

malen E-Mails. Mit bis zu 16 MByte Länge sei so ein Signet schwer zu knacken.

Dime

Titelthema

Gute Chancen?

www.linux-magazin.de

© Markus Feilner, CC-BY-SA 4.0

Denn um Dime in seinem aktuell bekannten Design zu schaden, müsste ein
Staat effektiv verschlüsselte Kommunikation insgesamt verbieten. Das scheint
im Augenblick zwar unwahrscheinlich,
aber nicht völlig unmöglich – erinnert sei
an den Umstand, dass kryptographische
Software in den USA lange strengen Regelungen unterlag, gerade im Hinblick auf
ihren Export in andere Länder.

41

02/2015

Titelthema

Transportverschlüsselung mit DANE und DNSsec

Wer glaubt, STARTTLS im Mailclient zu aktivieren, mache seinen Mailverkehr in jedem Fall sicherer, der irrt. Erst
wer auf DANE setzt, kann sicher sein, dass ein Mailserver oder eine Firewall auf dem Transportweg nicht jede
Verschlüsselung ausknipst. Markus Feilner

Schwachstellen, die dieser Artikel bespricht und begründet.

Session Downgrade

© Liftarn, CC BY 2.0 (Wikimedia)

42

www.linux-magazin.de

DANE

Sicherer Transport

Kommunikation braucht Privatsphäre.
Sie bildet die Grundlage für vertraulichen und verbindlichen Austausch. Eine
normale E-Mail bietet keine Privatsphäre,
denn sie passiert das Netz im Klartext.
Wer den Netzwerkverkehr mitliest, hat
vollen Zugriff auf den Inhalt der Nachricht. Wer Privatsphäre will, muss also
verschlüsseln, das schützt private Informationen und Firmengeheimnisse. PGP
Listing 1: Ungefilterte SMTPVerbindung
01 $ telnet mail.sys4.de 25
02 220-mail.sys4.de ESMTP Postfix
03 EHLO client.example.com
04 250-mail.sys4.de
05 250-PIPELINING
06 250-SIZE 40960000
07 250-ETRN
08 250-STARTTLS
09 250-ENHANCEDSTATUSCODES
10 250-8BITMIME
11 250 DSN

und S/MIME beziehungsweise SSL und
STARTTLS sind geeignete Methoden zur
Verschlüsselung von E-Mail. Die ersten
beiden verschlüsseln die Nachricht, die
anderen den Transport.

Nicht immer sicherer
Transport
Transportverschlüsselung (Transport
Layer Security, TLS) ist attraktiv. Sie ermöglicht ein brauchbares Schutzniveau
und ist für Anwender transparent. Das
ist gut, denn es spart Supportkosten, die
Anwender können sich auf ihr eigentliches Ziel, die Inhalte der Kommunikation, konzentrieren.
Viele Admins glauben, es genüge, die
für Verschlüsselung erforderlichen Zertifikate zu erzeugen und STARTTLS im
SMTP-Server und -Client (Abbildung 1)
zu aktivieren, dann sei der Transport
fortan sicher. Sie irren. Transportverschlüsselung hat einige prinzipbedingte

STARTTLS ist eine Protokollerweiterung
des ursprünglichen SMTP. Zwei Voraussetzungen müssen gegeben sei, um eine
TLS-geschützte Verbindung aufzubauen.
Der Server muss ESMTP (Extended
SMTP) sowohl beherrschen als auch anbieten und die Erweiterung STARTTLS
muss im Server aktiviert sein.
Ob diese Voraussetzungen gegeben sind,
erkennt ein Client erst nach dem Verbindungsaufbau, wenn der Server zur Begrüßung des Clients sein „SMTP Banner“
sendet. Im Banner etabliert der Server
seinen aktuellen Status durch einen Statuscode, oft gefolgt von seinem Namen
und – wichtig – dem String »ESMTP«
(Listing 1).
Sendet der Server kein »ESMTP« im
Banner, dann beherrscht er (oder gibt
es zumindest vor) kein ESMTP und die
Kommunikation kann nur ohne Transportverschlüsselung stattfinden. Fehlt der
String oder sendet der Server »SMTP«,
dann muss der Client davon ausgehen,
dass der Server keine SMTP-Erweiterungen beherrscht.
Die SMTP-Clients in gängigen Mailservern sind grundsätzlich bedingungslos
auf Transport eingestellt. Sie führen
„Opportunistische TLS“ durch. Bietet
der Server STARTTLS an, versuchen sie
verschlüsselten Transport herbeizufühzufüh
DELUG-DVD
Auf der DELUG-DVD finden Sie

DELUG-DVD

ein Vortragsvideo mit Patrick Ben Koetter
zum Thema E-Mail-Sicherheit mit DANE.

02/2015

Titelthema
www.linux-magazin.de

DANE

ren. Fehlt ESMTP im Banner des Servers,
schalten sie auf herkömmliches SMTP
zurück. Sie verzichten auf Transportverschlüsselung, weil es keine Gelegenheit
(lat.: opportunitas) dazu gibt.
Anbieter von Sicherheitslösungen machen sich dieses Verhalten ebenso zunutze wie auch einige Accessprovider.
Sie filtern SMTP-Verbindungen in der
Firewall (bei Cisco schick SMTP Fixup
genannt), im Desktop-SMTP-Proxy
(McAfee) oder auf WAN-Strecken [1] und
entfernen das »ESMTP« im Banner.

Gezielt unsicher
Durch dieses bewusst herbeigeführte
Session Downgrade erhalten sie Zugriff
auf die Sessiondaten und den Inhalt der
Nachricht. Eine Nachricht, so ihr Argument, kann nur unverschlüsselt auf
schädlichen Inhalt (Malware, Spam) geprüft werden. Dabei ist dieses Argument
gar nicht haltbar: Nachrichten lassen sich
auch verschlüsselt zum Server transportieren und anschließend unverschlüsselt
im Server auf unerwünschte Inhalte prüfen. Genau das findet heute millionenfach tägliche Anwendung.
Verwschwörungstheoretiker mögen vor
dem Hintergrund der NSA-Affäre über
mögliche Gründe spekulieren, Tatsache
ist: Transportverschlüsselung bietet einen Angriffsvektor, der beispielsweise bei
der STRIPTLS-Attacke [2] zur Anwendung kam. Derlei Angriffe sind möglich,
weil herkömmliche TLS keine PolicyKomponente bietet. Der Server verfügt
nicht über einen fälschungssicheren Kanal, über den er dem Client signalisieren kann, dass er STARTTLS beherrscht.
Abhilfe bieten hier nur eine eigene TLSPolicy und die Aktivierung einer weiteren
SMTP-Erweiterung.

Manuell und automatisch
Eine TLS-Policy definiert Voraussetzungen für eine SMTP-Session mit einem
SMTP-Server. Die grundlegende Anforderung, der Transport muss TLS-verschlüsselt stattfinden oder unterbleiben, verhindert effektiv ein Session Downgrade. Sind
die Transportbedingungen nicht gegeben,
verbleibt die E-Mail in der Queue des sendebereiten Servers, bis sie nach Ablauf
der Wartezeit bounct.

Abbildung 1: Es reicht nicht, im Mailclient SSL/TLS zu aktivieren, weil standardmäßig alle Beteiligten verschlüsselungsfreie Kommunikation als Fallback nutzen – und der lässt sich provozieren.

Sender-seitige TLS-Policies kommen nur
selten zum Einsatz. Die Vielzahl der
Kommunikationspartner macht eine lückenlos gesicherte Verschlüsselung zu
aufwändig. Eine lokale Policy, die zusätzlich zu der Anforderung „Muss TLS
anbieten“ auch noch Bedingungen wie
„Muss sich mit einem bestimmten Fingerprint im Zertifikat auszeichnen“ definiert, steht auf wackligen Beinen. Sobald
die entfernte Gegenstelle eine Bedingung
ändert, greifen die lokalen Anforderungen ins Leere und der Transport kommt
zum Stillstand.
Die Protokollerweiterung DANE SMTP
befreit den Admin aus der Zwangslage.
Aktiviert er DANE SMTP, dann prüft sein
SMTP-Client fortan, ob sich das Ziel in
einer DNSsec-signierten Domain befindet
und ob ein TLSA Ressource Record (RR)
für den anzusteuernden MX existiert. Der
Client soll die Existenz eines TLSA RR wie
eine Policy werten. Bietet der im TLSA
RR referenzierte Server kein STARTTLS
an, dann ist das ein Policy-Verstoß. Der
Transport muss unterbleiben.

Schutz vor MITM
DANE SMTP schützt auch vor Man-inthe-Middle-Attacken (MITM). Eine erfolgreiche MITM-Attacke vergiftet beispielsweise das DNS des Opfers mit gefälschten
Ressource Records (DNS Poisoning). Gefälschte MX-Einträge verweisen dann auf
den SMTP-Server des Angreifers. Dessen
Server gibt vor, für die angeblich korrekte
Zieldomain Nachrichten anzunehmen. Er

kann sogar STARTTLS mit einem gültigen
Zertifikat anbieten.
Ein unkontrollierter SMTP-Client wird
das Zertifikat akzeptieren und dem
Angreifer arglos die schützenswerten
Nachrichten über eine verschlüsselte
Verbindung in den Rachen werfen. Das
ist möglich, weil die meisten MTAs zur
Identitätsüberprüfung nur den Common
Name (CN) des Zertifikats überprüfen.

Zertifizierte Täuschung
Ein Angreifer, der ein Zertifikat mit einem passenden CN besitzt, kann den
Client einfach täuschen. Er muss sich
nicht anstrengen, ein selbst signiertes
Zertifikat genügt. Die meisten Clients
akzeptieren selbst signierte Zertifikate,
ohne mit der Wimper zu zucken. Solange
der CN stimmt, wird verschlüsselt, egal
wer sich hinter dem Zertifikat verbirgt.
Davor schützen auch von öffentlichen
Certification Authorities (CA) signierte
Zertifikate nicht, denn die Clients prüfen
standardmäßig nur den CN und nicht,
wer das Zertifikat ausgestellt hat.
Ein Designfehler verschlimmert das
Ganze noch: CAs können unabhängig
voneinander gültige Zertifikate für dieselbe Domain erstellen. Diese Schwachstelle haben sich Angreifer zunutze gemacht, als sie in die Zertifizierungsstellen
Diginotar und Türktrust eindrangen und
dort Zertifikate für Domains bekannter
Unternehmen ausstellten.
Nachdem die Vorfälle bekannt geworden
waren, wurden eiligst die Root-Zertifikate

43

02/2015

Titelthema
DANE

der kompromittierten CAs deaktiviert. Bis
zum Zeitpunkt der Entdeckung verfügten
die Angreifer über „amtliche“ Zertifikate.
Sie konnten selbst jene SMTP-Clients täuschen, die nur Zertifikate bekannter CAs
akzeptieren.

Identifikationskriterien

www.linux-magazin.de

44

Die Kriterien, die zur Identifikation des
Gegenüber herangezogen werden, bilden
das Problem. Wer nur auf den Hostnamen achtet, abgebildet im CN des Zertifikats, kann leicht Opfer einer Täuschung
werden. Namen sind sozusagen Schall
und Rauch. Der Fingerprint eines Zertifikats ist hingegen einmalig. Er lässt
sich – Stand Ende 2014 – nicht fälschen.
Ein SMTP-Client, der auf den Fingerprint
achtet, kann einer MITM-Attacke nicht
auf dem Leim gehen.
Ein SMTP-Client, der opportunistische
TLS durchführt, verbindet den Fingerprint eines Zertifikats nicht mit einer konkreten Identität. Das geschieht erst dann,
wenn der Administrator in einer TLSPolicy der Zieldomain ein oder mehrere
(SMTP-Cluster) Fingerprints zuordnet
(Certificate Pinning).

Certificate Pinning
Wer Certificate Pinning wirklich ernst
nimmt, fixiert nicht einfach den Fingerprint. Er stellt vorher die Identität sicher
und besorgt sich zuerst den Fingerprint
der Gegenstelle. Anschließend sucht er
sich einen geeigneten Ansprechpartner in
der Zieldomain. Von dieser Person lässt
er sich den Fingerprint des eingesetzten

Zertifikats vorlesen. Dann vergleicht er
beide Fingerprints. Stimmen sie überein,
darf er den Fingerprint fixieren. Reichlich
kompliziert und arbeitsaufwändig.
DANE SMTP nimmt sich auch dieses
Problems an: Es automatisiert die Identifizierung. Der TLSA Ressource Record
publiziert den Fingerprint des verwendeten Zertifikats samt einiger beschreibender Aussagen über das Zertifikat. Ein
DANE-fähiger SMTP-Client kann diese Informationen vertrauenswürdig über eine
DNSsec-signierte Domain beziehen und
sie selbstständig mit dem Fingerprint des
Gegenüber vergleichen.
Sogar an den Rollover eines Zertifikats
haben die RFC-Autoren gedacht. Wer ein
neues Zertifikat mit neuem Fingerprint
einsetzen möchte, veröffentlicht zeitweise zwei TLSA RRs für dieselbe Ressource (ein RR-Beispiel zeigt Listing 2).
Für den SMTP-Client zählt nur, dass einer
der veröffentlichten TLSA RRs passt. Der
alte TLSA RR lässt sich entfernen, sobald
seine DNS TTL abgelaufen ist.
Wer angesichts der erwähnten CASchwachstellen auf selbst signierte Zertifikate umsteigen möchte, der findet ein
weiteres Mal bei DANE SMTP Unterstützung. Ein TLSA RR gestattet es, den Fingerprint für ein selbst signiertes Zertifikat
zu veröffentlichen oder einfach nur den
Verweis auf das Root-Zertifikat einer eigenen CA. Die signierte DNSsec-Domain
bürgt in beiden Fällen.

DANE SMTP benutzen
Ein DNSsec-verifizierender DNS-Resolver
ist Voraussetzung für DANE SMTP. Er

Listing 2: Fingerprint im TLSA RR
01 $ dig TLSA _25._tcp.mail.sys4.de +short
02 3 0 1 9273B4E9040C1B9EE7C946EFC0BA8AAF2C6E5F05A1B2C960C41655E3 2B15CBE

Listing 3: DNSsec-Abfrage
01 $ dig @localhost +dnssec sys4.de
02
03 ; <<>> DiG 9.9.5-3-Ubuntu <<>> @localhost +dnssec sys4.de
04 ; (1 server found)
05 ;; global options: +cmd
06 ;; Got answer:
07 ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 15587
08 ;; flags: qr rd ra ad; QUERY: 1, ANSWER: 2, AUTHORITY: 4, ADDITIONAL: 3
09 [...]

sollte auf demselben Host arbeiten, auf
dem auch der DANE-fähige MTA betrieben wird. Hat eine DNSsec-aktivierte
Domain Probleme beispielsweise mit
ihrer Signatur, ist dies ein Indiz für ein
Sicherheitsproblem. Auskünfte einer
solchen Domain dürfen Clients konsequenterweise nicht verwenden, weil die
Vertrauenswürdigkeit der ganzen Domain
in Frage gestellt ist.
Herkömmliche Resolver erkennen derartige Probleme nicht, nur DNSsec-fähige
bemerken DNSsec-Fehler und unterdrücken die Antwort. Listet »/etc/resolv.
conf« mehrere Resolver, dann müssen
alle DNSsec-fähig sein, damit ein lückenloser Trust gewährleistet ist.
Ein abschließender Test stellt sicher, dass
alles geklappt hat. Den Transport einer
E-Mail an »sink@dane.sys4.de« sollte
der eigene Postfix als »Verified TLS …«
protokollieren:
Dec

9 13:44:23 mail postfix/smtp[14944]: U

Verified TLS connection established to daneU
.sys4.de[194.126.158.134]:25: TLSv1.2 with U
cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256U
bits)

Um dieses Protokoll zu erhalten, sollte
der Admin den Parameter »smtp_tls_loglevel« auf »1« setzen.

Der DNS-Resolver Unbound
Unbound [3] ist ein guter DNSsec-fähiger Resolver. Er ist leicht eingerichtet,
schnell und cacht DNS-Anfragen. Nach
der Installation genügt es in der Regel,
»unbound-anchor« auszuführen, um
Root-Zertifikate für die DNSsec Trust
Chain zu laden. Der zusätzliche Aufruf
von »unbound-control-setup« generiert
lokale Zertifikate für die sichere Kommunikation des Kommandozeilen-Kontrollprogramms »unbound-control«, das
Unbound bequem verwaltet.
Nach dem Start bindet Unbound sich
standardmäßig an die Adresse des Localhost. Die Dig-Abfrage einer DNSsec-aktivierten Domain (Listing 3) stellt sicher,
dass Unbound DNSsec erkennen und
verifizieren kann. Das zusätzliche Flag
»ad« (Authenticated Domain) im Headerbereich der Antwort kennzeichnet eine
erfolgreiche Abfrage.
Bis zum Erscheinen dieses Artikels bietet
nur Postfix vollständigen DANE-SMTPSupport. Das liegt vor allem daran, dass

02/2015

Für DANE SMTP bedarf es mindestens
Postfix 2.11.1. Nachdem der SMTP-Client
grundsätzlich für TLS konfiguriert ist, genügen wenige Handgriffe, und Postfix
kann mit DANE-SMTP-Servern umgehen.
Der Parameter »smtp_dns_support_level«
weist Postfix dazu an, DNSsec-validierende Anfragen an den Resolver zu stellen. Die Option »dane« für »smtp_tls_
security_level« (Listing 4) setzt die neue
TLS-Policy. Ab sofort fragt Postfix über
DNSsec ab, ob die MX(e) der Zieldomain
TLSA RRs besitzen, und prüft, ob deren
Fingerprints mit denen der Server übereinstimmen.

TLS-Policies aktivieren
Wer eine TLS-Policy publizieren möchte,
muss seine Domain für DNSsec aktivieren. Gut ein Drittel der deutschen Registrare bietet derzeit die Infrastruktur, um
eine Domain DNSsec-aktiviert zu hosten.
Wer einen eigenen DNS-Server laufen
hat, kann seine Domains natürlich auch
selbst DNSsec-aktiviert betreiben.
Welche Schritte dazu erforderlich sind,
variiert je nach eingesetztem Produkt:
DNSsec mit aktuellem Bind funktioniert
problemlos. Ältere NS-Server, beispielsweise Djbdns, haben jedoch noch Pro-

TLSA RR
In der signierten Zone
des MX muss der Administrator noch einen passenden TLSA
Abbildung 2: Der TLSA-Generator erzeugt TLSA-RRs bequem im Browser.
RR eintragen. Ein
TLSA-Generator [4] hilft beim Erstellen
Infos
des Ressource Record. Wer ein CA-signiertes Zertifikat besitzt, der wählt die [1] ISPs Removing Their Customers’ Email Encryption: [https://www.eff.org/de/deeplinks/
Optionsfelder »3«, »1« sowie nochmals
2014/11/starttls-downgrade-attacks]
»1« und kopiert das eigenen Zertifikat in
[2] Google, Yahoo SMTP email severs hit in
das dafür vorgesehene Eingabefeld und
Thailand: [http://www.telecomasia.net/
gibt anschließend noch an, wie der dacontent/google-yahoo-smtp-email-seversmit verbundene Service zu erreichen ist
hit-thailand]
(Abbildung 2).
Die generierte Ausgabe kann er dann
[3] Unbound: [http:/unbound.net]
in die Zonen-Datei übernehmen. Nach [4] TLSA-Generator:
einem Update der Serial Number und
[https://www.huque.com/bin/gen_tlsa]
einem Reload steht der neue Eintrag [5] DANE-Validator: [https://dane.sys4.de]
für Abfragen bereit. Damit ist die Policy
scharfgeschaltet. Der Sys4-DANE-ValiListing 4: DANE SMTP einfach
aktiviert
dator [5] vom E-Mail-Spezialisten Patrick Koetter hilft, indem er gewissenhaft
01 smtp_dns_support_level = dnssec
prüft, ob die veröffentlichte TLS-Policy
02 smtp_tls_security_level = dane
Q
ohne Mängel ist.

DANE

Titelthema

Nur Postfix ab Version 2.11.1

bleme. In jedem Fall
ist es wichtig, die Signaturen einer DNSsecaktivierten Domain
innerhalb ihrer TTL
penibel zu erneuern.
Laufen diese ohne
Erneuerung ab, gilt
die Domain als nicht
mehr vertrauenswürdig, DNSsec-fähige Resolver ignorieren dann
alle Anfragen.

www.linux-magazin.de

Viktor Dukhovni, einer der Autoren des
DANE-SMTP-RFC, zugleich einer der
führenden Autoren von Postfix ist. Seine
Überlegungen zu DANE SMTP sind in
Postfix eingeflossen, seine Erfahrungen
hat er in das RFC zurückgeführt.

45

02/2015

Titelthema

E-Mail-Absenderverifikation mit Dmarc

Dmarc soll bei E-Mails die fehlende Absenderverifikation nachrüsten, um ein brauchbares Mittel gegen Spam
zu bieten. Die Idee ist gut, aber manche Mailinglisten-Manager sind dafür noch nicht bereit. Martin Loschwitz

Adresse überprüfen,
ob der Versender legitim ist oder nicht.
Dazu setzt Dmarc
auf zwei etablierte
Technologien: DKIM
(Domain Keys Identified Mail) und SPFEinträge (Sender Policy Framework).

DKIM und SPF
© kzenon, 123RF

46

www.linux-magazin.de

Dmarc

Ausweis-Kontrolle

DKIM macht aus
DNS-Servern gewissermaßen eine Zertifizierungsstelle, die
über asymmetrische
Verschlüsselung die
Verifizierung einer E-Mail erlaubt. Wenn
Der Fehler liegt im Design: E-Mail-Abder empfangende Mailserver eine E-Mail
sender zu fälschen ist ein Kinderspiel.
erhält, ist diese mit einem digitalen Key
Erst Zusatzfunktionen rüsten das Mailsigniert. Anhand des öffentlichen Schlüsprotokoll mit sinnvoller Absenderverifikation aus. So soll das aus einer Kooperasels, den der DNS-Server der Domain des
tion von Google, Yahoo und anderen gröAbsenders zur Verfügung stellt, lässt sich
ßeren Unternehmen entstandene Dmarc
die Herkunft der Mail sicher verifizieren
[1] das Problem lösen.
oder widerlegen. SPF legt über »TXT«Dmarc (Domain-based Message AuthenEinträge in Domain-Zonen darüber hintication, Reporting and Conformance) aus fest, welche Server E-Mails von diewill anhand der genutzten Domain einer ser Domain versenden dürfen.
Dmarc kombiniert
die beiden Features
und legt noch eine
neue Funktion oben
drauf: Es erlaubt
den Admins, ein Regelwerk festzulegen,
falls eintrudelnde
E-Mails SPF oder
DKIM nicht erfolgreich hinter sich gebracht haben.
Abbildung 1: In Sachen Spam versteht Yahoo keinen Spaß. Wer an DKIM und
Zusätzlich zu den
SPF scheitert, muss draußen bleiben.
bestehenden TXT-

Einträgen für DKIM und SPF erstellen
Admins für Dmarc einfach einen TXTEintrag, der beschreibt, wie mit Mails
zu verfahren ist, die an SPF oder DKIM
scheitern. Bei Yahoo lautet der:
v=Dmarc1; p=reject; sp=none; pct=100; U
rua=mailto:Dmarc-yahoo-rua@yahoo-inc.com, U
mailto:Dmarc_y_rua@yahoo.com;

Der Eintrag sorgt dafür, dass eingehende
E-Mails für [yahoo.com] immer dann
zurückgewiesen werden, wenn DKIM
oder SPF fehlschlagen (»p=reject«).
Für Subdomains gilt die Regel nicht
(»sp=none«), »pct« gibt in Prozent an,
wie hoch der Anteil an zurückgewiesenen Mails werden darf (Abbildung 1).
Der »rua«-Parameter legt fest, dass für
jede zurückgewiesene Mail ein Report an
den Absender geht.
Dmarc hat sich bereits bei vielen Anbietern durchgesetzt und ist bei der IETF zur
Standardisierung eingereicht. Dennoch
sind bei Weitem noch nicht alle Probleme gelöst: Vor allem ältere Versionen
der Mailinglisten-Manager können mit
DKIM und SPF nichts anfangen. Sie nehmen eingehende E-Mails und leiten sie an
alle Listenteilnehmer weiter, ohne dabei
das »From«-Feld der Mail anzupassen –
worauf DKIM und SPF scheitern.
Wer sein Mailkonto bei Yahoo hat und an
Mailinglisten teilnimmt, deren Software
nicht aktuell ist, bekommt wahrscheinlich ein Problem. Hier sind vor allem
die Admins in der Pflicht, die Server
mit Mailinglisten betreiben: Mailman &
Co. bieten in ihren aktuellen Versionen
Dmarc-Support, sodass ein Upgrade die
Q
gewünschte Funktion bringt. (mfe)

Infos
[1] Dmarc: [http://Dmarc.org]

02/2015
12/2010

Software

Auch diesen Monat bekommen die DELUG-Käufer die doppelte Datenmenge zum einfachen Preis: Von der einen
Seite der DVD bootet Suse Linux Enterprise Server 12, auf der anderen warten Videos von der Susecon 2014,
die Groupware Tine 2.0 in einer virtuellen Maschine, Fedora 21 und vieles mehr. Tim Schürmann
Inhalt
50 Fedora 21
Drei Flavors, viel neue Software, neue
Führung: Hat sich das Warten auf die
neue Fedora gelohnt?
54 Bitparade
Kollaboratives Projektmanagement in
der Cloud mit Basemap, Open Project,
Redmine und Zoho Projects.
64 Tooltipps
Im Kurztest: Pkgdiff 1.6.3, Load Avg 2.0,
Mlock 0.2, LXCF 0.11, Mlterm 3.4.0, Pimp
my Log 1.7.4.
Abbildung 1: Hersteller Metaways hat eine exklusive virtuelle Maschine mit der Groupware Tine 2.0 bereitgestellt.

Neben einem normalen Linux-Magazin
ohne Datenträger gibt es die DELUGAusgabe mit Monats-DVD, bei der die
Redaktion den Datenträger nach einem
speziellen Konzept zusammenstellt: In
einer Art modularem System enthält er
Programme und Tools, die in der jeweiligen Magazin-Ausgabe getestet und besprochen werden. Zudem gibt es nicht
im Heft abgehandelte Software, die die
Redaktion besonders empfiehlt – alles
gebündelt unter einer HTML-Oberfläche.

Seite A: SLES 12
Von der einen Seite der DELUG-DVD bootet der Suse Linux Enterprise Server 12
für x86_64-Architekturen. Auf der DVD
befindet sich die 60 Tage lauffähige Evaluation-Version von SLES 12, dessen Installation eine Registrierung bei Suse voraussetzt. Wer die Silberscheibe umdreht
und mit dem Browser darauf zugreift,
landet im HTML-Menü mit zahlreichen
weiteren exklusiven Inhalten.
Als Erstes fällt die virtuelle Maschine
mit Tine 2.0 auf. Mit ihr lässt sich die
Community-Edition der Groupware ohne
Installation direkt ausprobieren (Abbil-

dung 1). Außerdem wartet das E-Book
„Kenne deinen Feind“ auf Leser. Auf 600
Seiten beschreiben Cyrus Peikari und Anton Chuvakin das Vorgehen von Angreifern und innovative Abwehrtechniken.

Videos und Fedora 21

Die genannten Videos liegen im WebmFormat vor und lassen sich somit in vielen Browsern direkt betrachten.
Wem das alles nicht reicht, der probiert
die brandneue Fedora 21 Workstation aus
(Abbildung 2), vertieft sich in die mitgelieferte Software zu den Artikeln dieses
Linux-Magazins, schaut sich das Video
mit einer Einführung in DANE SMTP an
oder benutzt gefahrlos die PentestingTools mit Metasploitable. (mfe)
Q

Vom 17. bis 23. November fand in Orlando die Susecon 2014 statt. Auf der
DVD finden sich die Aufzeichnungen
der Keynotes, in denen
nicht nur SLES 12 eine
Rolle spielte.
Bereits im Oktober luden
die Open Source Business Alliance (OSBA)
und die Bürgerschaftsfraktion der Grünen ins
Hamburger
Rathaus
zum „1. Offenen IT-Gipfel“. Die Videos auf der
DVD zeigen den Vortrag
von Sabine Leutheusser
Schnarrenberger sowie
die
Eröffnungsreden
Abbildung 2: Fedora 21 kommt in der Workstation-Variante für 64-Bitvon Farid Müller und
Peter Ganten.
Systeme als ISO-Image.

www.linux-magazin.de

Tine 2.0, Susecon-Videos, SLES 12

Einführung

In eigener Sache: DELUG-DVD

49

02/2015

Software

Nach mehr als einem Jahr Wartezeit ist Fedora 21 da

Mehr als zwölf Monate hat es gedauert, bis die neue Fedora-Version fertig war, fast doppelt so lange wie üblich
mussten die Fans warten. Doch es zahlt sich wohl aus: Fedora 21 belohnt mit topaktueller Software und vereinfachter Installation, alles erstmals in drei Flavors und unter neuer Führung. Markus Feilner

© Markus Feilner, CC-BY-SA 4.0

Wenn er sich auf Linux-Entwicklerkonferenzen umschaue, sehe er entschieden zu
viele Macbooks, meint Matthew Miller,
der Projektleiter von Fedora (Abbildung
1, [1]). Das sei eine Schande für die freie
Softwarewelt, erklärt er im Interview mit
der Linux Action Show [2]. Nicht zuletzt
deshalb sei es eines der vorrangigen Ziele
des Desktop- und Community-Spins der
größten Linux-Distribution (Red Hat), die
Linux-Entwickler wieder auf den heimischen Desktop zu holen. Abseits aller
technischen Neuerungen definiert Miller
das als das vorrangige Ziel hinter der 21.
Ausgabe von Fedora.

Zielgruppe: Ein Linux für
Poweruser
Die Zielgruppe sind also erfahrene LinuxAnwender – dass sich Fedora traditionell
nicht an Einsteiger richtet, konnten Newbees in den letzten Jahren regelmäßig berichten. Schon Anaconda (Abbildung 2),
der Fedora-Installer, brachte auch geübt
geübte
DELUG-DVD
Auf der DELUG-DVD finden Sie

DELUG-DVD

Fedora 21 als ISO-Image in der Desktop-Version „Workstation“.

Anwender schnell an die Grenzen ihres
Verständnisses oder der Geduld – etwa
wenn die Fedora-Entwickler komplett
andere GUI-Konzepte fürs Partitionieren
einsetzten, ohne diese auch nur im Ansatz zu erklären.
Anaconda ist in Version 21 deutlich einfacher und klarer geworden, doch die
Zielgruppe bleiben die Linux-Poweruser.
Böse Zungen behaupteten ja gerne, Anaconda sei gar kein Installer, sondern der
DAU-Filter, den Fedora schützend vor
sich herschiebe.

früher mit stabilen KDE-Akonadi-PimProgrammen auf den Markt, als es die darin traditionell starken Suse-KDE-Pakete
schafften. Wer heute den Linux-Desktop
im Auge behalten will oder muss und
aktuelle Software braucht, darf Fedora
nicht ausblenden.

Drei Spins, Kernel 3.17,
Gnome 3.14, Systemd 217
Mit der neuen Version stellen die Entwickler erstmals drei Varianten bereit:

Topaktueller Gnome- und
KDE-Desktop
Dabei setzen viele Linux-Entwickler sehr
wohl auf Fedora (noch vor Open Suse) –
wenn sie denn einen Linux-Desktop benutzen, etwa um Software oder Treiber zu
entwickeln oder Desktop-Environments
zu programmieren. Sicher liegt das daran, dass Red Hat wie auch Suse deutlich
mehr hochrangige Programmierer bezahlen als andere Distributoren.
Das führt dann zu interessanten Phänomenen: Obwohl man bei den roten
Hüten den Gnome-Desktop favorisiert,
kamen die Fedora-Versionen 19 und 20
wahlweise auch und zugleich deutlich

© Fedora

50

www.linux-magazin.de

Fedora 21

Apfelschwemme

Abbildung 1: All die Apple-Macbook-User zurück
auf den Linux-Desktop holen, das ist laut Matthew
Miller das Ziel von Fedora 21.

02/2015

Abbildung 2: Deutlich verbessert und klarer präsentiert sich der Installer Anaconda. Für Linux-Einsteiger ist
aber auch diese Ausgabe immer noch nicht geeignet.

Während Fedora 21 Cloud den Einsatz
in der Wolke adressiert, können Administratoren mit Fedora 21 Server einen
solchen aufsetzen. Auf der DELUG-DVD
liegt ein ISO-Image von Fedora 21 Workstation, das für den Einsatz auf DesktopRechnern gedacht ist.
Alle drei Varianten basieren auf dem
gleichen Linux-Kernel 3.17, um den
Systemstart kümmert sich Systemd 217.
Als Desktopumgebung kommt bei der
Workstation-Ausgabe gewöhnlich Gnome
3.14 auf den Schirm. Wer mag, darf den
designierten X11-Ersatz Wayland ausprobieren, einfach durch Einloggen in eine
X-Wayland-Sitzung.

Matthew Miller löst Robyn
Bergeron ab
Die drei Spins seien notwendig geworden, erklärte die ehemalige Projektleiterin Robyn Bergeron im Video-Interview
mit „Eweek“ [3]. Zwar sei gerade die
Red-Hat-Community-Distribution Fedora
in ihrer zehnjährigen Geschichte stets als
Universalsystem gebaut worden, also für
jeden Einsatzzweck. Das passe aber nicht
mehr zusammen.
Zudem werde man die Zahl der Mitarbeiter in der Quality Assurance und im
Release Management deutlich aufstocken
und viel mehr Tasks automatisieren – wie
genau, das „müssen wir im Detail noch
klären“, so Bergeron.
Die Ex-Projektleiterin gab ihren Job auf,
als bekennender Led-Zeppelin-Fan verab-

schiedete sie sich auf ihrem Blog passend
mit einem rockigen „Ramble on!“ und
übergab den Stab an ihren Nachfolger
Matthew Miller [4].

Aufregend
Im Interview mit dem Linux-Magazin
zeigt sich der neue Projektleiter euphorisch: „Aufregend, wichtig und wegweisend“ sei die neue Ausgabe. Obwohl man
immer eine Desktop-Distribution entwickelt habe, gehe die 21 auch auf Server
und die Cloud zu – was ja viele User
schon immer gemacht hätten.
Wichtig seien auch, meint Miller, die Änderungen, die sich im Council [5] vollzogen hätten. Von der neuen Charta erhoffe man sich mehr Agilität im Vergleich
zu früher und vor allem mehr Führung.
„Das bisherige Board war eher passiv
und durfte mehr reagieren. Wir wollen
hier eine aktivere Vorreiterrolle etablieren“, erklärt der neue Leiter.
Auf der „Base“ – die die „Standard-Plattform für alle Fedora-Produkte“ und die
Installer, aber auch alle Basis-Libraries
für die anderen Produkte umfasst (etwa
Kernel, Yum, RPM, Systemd und Anaconda) – bauen die Server- und Workstation-Varianten auf. Die Base ist schlank,
schnell, klein und nicht als eigenständige
Distribution gedacht.
Die Cloud-Variante ist dagegen für den
Einsatz bei Amazon oder unter Open
Stack optimiert, sie ist offensichtlich auch
auf Docker-Container maßgeschneidert

Zu Base und Cloud gesellt sich noch
Fedora 21 Server mit für Racks optimierten Tools wie der Webmin-Alternative
Cockpit [7], dem API-Toolkit Rolekit
[8] und einer vorkonfigurierten Domänencontroller-Rolle sowie mit dem Konfigurations- und Monitoring-Framework
Open LMI [9].
In der Workstation sind wie gewohnt die
aktuellen Desktops und passende Software enthalten. Der Standard bleibt zwar
Gnome, aber jetzt mit Features wie Dev
Assistant – eindeutig ein Fingerzeig für
die Devops-Ziele der Fedora-Entwickler.
Dev Assistant [10] hilft beim Einrichten
einer Developerumgebung.
Im Test machte Fedora 21 einen gelungenen Eindruck. Sowohl das Update mit
Fedup wie auch die Neuinstallation von
USB-Sticks oder ISO-Images liefen auf
vier getesteten (Hardware-)Systemen aus
beinahe zehn Jahren Rechnergeschichte
problemlos. Fast scheint es, als hätte sich
Q
das lange Warten gelohnt.

Infos
[1] Fedora-Projekt: [https://getfedora.org]
[2] Linux Action Show 342:
[http://www.jupiterbroadcasting.com/
73122/lennarts-linux-revolution-las-342/]
[3] Robyn Bergeron im Interview mit Eweek:
[http://www.eweek.com/enterprise-apps/
fedora-21-linux-will-have-new-leadershipand-direction.html]
[4] Robyn Bergerons Blog:
[https://www.robyn.io]
[5] Fedora Council Members:
[https://fedoraproject.org/wiki/Council]
[6] Project Atomic:
[http://www.projectatomic.io]
[7] Cockpit: [https://github.com/
cockpit-project/cockpit]
[8] Rolekit: [https://fedorahosted.org/rolekit/]
[9] Open LMI: [http://www.openlmi.org]
[10]Dev Assistant: [http://devassistant.org]

Fedora 21

Software
© Fedora

Atomic, Cockpit, Rolekit,
Open LMI und Dev Assistant

www.linux-magazin.de

und bringt zwei Kernelpakete mit, ein
Minimal- und ein Komplettsystem mit
allen Modulen. Fedora 21 wird auch die
erste Distribution sein, die einen Atomic
Host für Dockers Atomic-Projekt [6] vorstellt – eine Deployment- und Managementsuite für Docker.

51

02/2015

Software

Gemeinsam arbeiten

Freiberuflern, Startups oder Teams, die nur temporär an einem Projekt zusammenarbeiten, fehlt oft eine gemeinsame Infrastruktur. Dank Online-Kollaborationstools kommen Mitarbeiter im virtuellen Büro zusammen.
Zwei Vertreter für den eigenen Server treten im Test gegen zwei Cloudlösungen an. Mela Eckenfels

© ximagination, 123RF

54

www.linux-magazin.de

Bitparade

Überall dabei

Der eine arbeitet im Firmenbüro, der
andere beim Kunden vor Ort, der nächste
im Strandcafé – damit ein verteiltes Team
nicht mühsam Dateien, Statusaktualisierungen, Fragen und Ähnliches per Mail
verschicken muss, gibt es Online-Kollaborationstools. Sie organisieren Termine
und Abläufe, geben Zugriff auf notwendige Dokumente, verteilen Aufgaben und
halten Diskussionen fest. Die Bitparade
stellt vier Kandidaten für standortübergreifende Zusammenarbeit in Projekten
vor. Die Systeme erfinden die Einzelfunktionen nicht neu, vereinen sie aber unter
einem Dach und vermeiden damit Reibungsverluste.
Als Kandidaten treten mit Redmine [1]
und Open Project [2] zwei Open-SourceProjekte für den eigenen Server gegen
die beiden kommerziellen Clouddienste
Basecamp [3] und Zoho Projects [4] an.
Die ersten beiden Programme installier-

ten die Tester auf einem typischen LAMPServer mit Debian Wheezy 7.7. 

Redmine
Den ersten Testkandidaten gibt es seit
2006. Redmine [1] ist in Ruby on Rails
implementiert und steht unter der GPLv2.
Die Software ist merklich vom Bugtracker
Trac inspiriert. Da die Redmine-Pakete
in den meisten Distributions-Repositories
veraltet sind, spielten die Tester die aktuelle Version 2.6 vom 21. Oktober 2014
aus den Quellen ein und folgten dazu einer Anleitung aus der Howto-Sammlung
[5]. Neben Apache, MySQL und einem
Mailserver benötigt das Programm Ruby
1.8.7, Rails 3.2, Ruby Gems, Passenger,
Imagemagick und Rmagick.
Anwender, die mit der Anleitung zum
Ruby-Paketbau unter Debian Stable arbeiten, sollten beim »checkinstall«-Aufruf

darauf achten, die Versionsnummer zu
korrigieren, da beim Bestätigen der Standardwerte der Vorgang abbricht. Sobald
die Eingabemaske »Debian package creation selected« auftaucht, gibt der Admin
»3« ein und ändert »p547« zu »547«.
Der Rest läuft wie beschrieben weiter; allerdings ist die Installation der einzelnen
Ruby- und Gem-Komponenten etwas zäh.
Wer sich bis zur Apache-Konfiguration
durchgehangelt hat, ruft abschließend
die neue Redmine-Instanz im Browser
auf und loggt sich mit dem Benutzernamen und Passwort »admin« ein.
Nach dem Ändern des Kennworts wendet
sich der Admin der Einrichtung zu. Redmine ist in rund 50 Sprachen übersetzt,
darunter auch Deutsch. Im Bereich »Anzeige« entscheidet er, ob die Standardsprache automatisch für alle Benutzer gilt
und in welchem der drei Themes sich die
Oberfläche präsentiert.
Wer einen ganz anderen Look bevorzugt,
findet im Redmine-Wiki einen Artikel
[6], der zu anderen Themes verlinkt und
erklärt, wie man diese einbindet oder
eigene entwickelt. In der Liste der veröffentlichten Themes sind auch solche
mit einem responsiven Design. Im Dialog
»Anzeige« entscheiden Systemverwalter
auch, ob Redmine für die Benutzer Gravatar-Icons verwendet – Voraussetzung
ist ein Account bei dem Dienst [7].

Zuständigkeiten
Redmine-Admins richten Benutzer, Gruppen und Rollen in ihrem Dashboard ein.
»Manager« dürfen innerhalb der Projekte
alles, »Entwickler« unterliegen einigen
Einschränkungen. Ihnen ist es nicht
gestattet, Projekte zu starten oder neue
Dokumente anzulegen. »Reporter« dür-

02/2015

ausgeklügelte System hat auch der Ableger Open Project übernommen.

fen im Forum mitreden und ihre Zeiten
buchen, sonst aber nur mitlesen. Administratoren passen die Befugnisse der Rollen nach Belieben an (Abbildung 1) und
erzeugen bei Bedarf neue Benutzerrollen,
denen sie selbst Rechte zuweisen. Redmine kennt zudem Nichtmitglieder und
nicht angemeldete Besucher, die jeweils
eigene Rollen haben.
Beim Anlegen eines neuen Projekts
vergibt der Nutzer einen Namen, eine
später unveränderliche Kennung und
wählt Module aus. Redmine bietet alles,
was ein Kollaborationstool braucht: eine
Aufgabenverwaltung (Ticket-Verfolgung
genannt), einen Kalender, Diskussionsforen sowie eine rudimentäre Dokumentenund Dateienverwaltung. Dazu kommen
ein Projektwiki, eine News-Funktion und
Auswertungstools. Ganz unten im Dialog
aktivieren Nutzer im Bereich »Tracker«
die Checkboxen »Fehler«, »Feature« und
»Unterstützung« – eine etwas holprige
Übersetzung für »Support«.
Der einem Tracker zugeordnete Workflow
legt fest, welche Benutzerrollen dem Ticket Feedback hinzufügen, seinen Bearbeitungsstatus ändern oder es schließen
dürfen. Hier werden die Bugtracker-Wurzeln des Systems deutlich: Termine und
Aufgaben verwaltet Redmine als Tickets
und ordnet sie einem Tracker zu. Dieser

wiederum gehört zu einem Workflow,
und der entscheidet, welche Stufen ein
Ticket durchläuft. Ein frisch angelegtes
hat den Status »Neu«. Sobald jemand
einträgt, zu wie viel Prozent die Aufgabe
erledigt ist, verändert sich der Status.
Redmine kennt die Zustände »In Bearbeitung«, »Gelöst«, »Erledigt« und »Geschlossen«.

Anspruchslos
Beim Anlegen von Tickets weisen Nutzer
sie einem Bearbeiter oder einer Gruppe
zu. Zusätzlich wählen sie die Priorität
und eine Kategorie, definieren den Startund den Endtermin und tragen den geschätzten Aufwand ein. Per Klick wandern Beobachter hinzu. Tickets können
übergeordnete Aufgaben enthalten. Eine
Autovervollständigungs-Funktion hilft
beim Ausfüllen des Feldes. Redmine stellt
Querverbindungen zwischen den Tickets
her; im Kalender sehen Mitarbeiter entweder alle Aufgaben ein oder filtern nach
Tracker, Priorität, Zuständigkeit und anderen Parametern (Abbildung 2).
Redmine erzeugt Gantt-Diagramme und
Berichte. Vor allem die Grafiken verschaffen allen Beteiligten einen guten Überblick darüber, wie es um das Projekt steht
und ob sie alle Termine einhalten kön-

Erweiterbar
News und Foren sind als Atom-Feed erhältlich, die Ticket-Übersicht bietet zusätzlich den Export in die Formate CSV
und PDF. Der Kalender bleibt in der Standardinstallation unerreichbar von außen.
Damit Projektmitarbeiter die Termine im
Ical-Format in ihre persönlichen PIMTools übertragen können, benötigen sie

www.linux-magazin.de

Bitparade

Software
Abbildung 1: Redmine-Admins passen über diesen Dialog die Berechtigungen der einzelnen Rollen an. Das

nen. Die Bilder exportiert Redmine per
Knopfdruck in PDF- und PNG-Dateien.
Auch im Bereich »Gantt-Diagramm« gibt
es Filteroptionen. Praktisch: Wer die Tickets eines Projekts hier nach eigenen
Kriterien sortiert hat, kann die Abfrage
abspeichern und so jederzeit wieder auf
den Schirm rufen.
In der Grundeinstellung ist die Dokumentenverwaltung äußerst schlicht gehalten. Anwender tippen ihre Texte in
ein Wysiwyg-Editorfenster. Redmine setzt
auf die Markupsprache Textile. Optional
hängen sie Dateien als Attachments an
und geben Beschreibungen ein. Die Tester scheiterten dabei, diese nachträglich
zu setzen oder zu verändern, nachdem
sie das Uploadfenster unabsichtlich geschlossen hatten.
Redmine nimmt Word- und Libre-OfficeDokumente sowie PDFs, HTML-, Text-,
MP3- und Ogg-Vorbis-Dateien an. Die
maximale Dateigröße ist in der Voreinstellung auf 5 MByte begrenzt. Anpassen
lässt sich dieser Wert über »Administration | Konfiguration « auf dem Reiter
»Allgemein«.
Redmine stellt Dateien einfach als lange
Liste dar. Es ist schade, dass Anwender
im unmodifizierten System Dateien nicht
unproblematisch mit Tickets verknüpfen
können. Im Textile-Editor verlinken sie
lediglich zu Seiten des internen Wiki. Etwas mehr Komfort verschafft das Plugin
DMSF (Document Management System
Features), das unter anderem eine hierarchische Verzeichnisstruktur und eine
Versionskontrolle bereitstellt [8].
Außerdem können Benutzer ihre Dokumente gegen gleichzeitiges Bearbeiten
schützen, per Drag & Drop sortieren und
mehrere Dateien als Zip-Archiv herunterladen. DMSF integriert eine XapianSuche über alle Dokumente und deren
Anhänge und benötigt dazu Xpdf, Antiword, Catdoc und natürlich Xapian.

55

02/2015

Software
Bitparade
www.linux-magazin.de

56

das Redmics-Plugin [9]. Ebenfalls nur
über Erweiterungen erhältlich sind Importfunktionen.
Wer beispielsweise CSV-Dateien hochladen oder Aufgaben (Tickets) per Mail ans
System senden möchte, sollte einen Blick
auf die Plugins CSV Import Users und
Issue Importer Plugin werfen, die beide
über die zentrale Anlaufstelle der Redmine-Projektseite erhältlich sind [10].
Rund 600 Erweiterungen waren dort bei
Redaktionsschluss erhältlich, davon über
100 für die Redmine-Version 2.6. Neben
den erwähnten Plugins warten dort auch
solche, die einfache Checklisten, Funktionen für agile Programmierung und ein
CRM-System nachrüsten.

Ausbaufähig
Um eine Erweiterung zu installieren,
wenden sich Systemverwalter der Shell
auf ihrem Server zu und wechseln ins
Plugin-Verzeichnis »/opt/redmine/plugins«. Hier entpacken sie das heruntergeladene Archiv oder checken das entsprechende Git-Repository aus. Anschließend
rufen sie folgenden Befehl auf:
rake redmine:plugins:migrate RAILS_ENVU
=production

Danach führen sie einen Redmine-Reboot
durch, indem sie entweder den Webser-

ver selbst neu starten oder – sofern ihnen
dazu die Berechtigung fehlt – eine Datei
namens »restart.txt« im »tmp«-Verzeichnis der Redmine-Installation anlegen:
touch /opt/redmine/tmp/restart.txt

Die Admin-Weboberfläche zeigt das neue
Plugin nun unter »Administration | Plugins« an. Leider halten sich nicht alle Erweiterungen an diese Vorgehensweise.
Im Zweifelsfall orientieren sich Nutzer
an den jeweiligen Anleitungen.
Etwas mau sieht es mit der Integration
weiterer Clouddienste aus. Plugins, die
Redmine beispielsweise mit Dropbox verknüpfen, sind veraltet und arbeiten nicht
mit der aktuellen Version zusammen. Firmen wie Zapier [11] füllen die Lücke.
Sie verbinden Redmine-Tickets mit dem
Google-Kalender oder dem Notiztool
Evernote. Die lange Liste der externen
Tools auf der Redmine-Homepage [12]
enthält Links zu iPhone-, Android- und
Windows-Phone-Apps, Desktopclients,
Browser-Erweiterungen und vieles mehr. 

Open Project
Der zweite Kandidat ist ein indirekter
Redmine-Abkömmling. Open Project [2]
ist ein Fork von Chili Project [13], das
wiederum von Redmine abstammt. Die
Entwicklung von Chili Project scheint

Abbildung 2: In der Kalenderansicht filtern Benutzer die Redmine-Aufgaben nach Status, Tracker, Priorität,
Zuständigkeiten, geschätztem Aufwand und anderen Kategorien.

zu stagnieren, die letzte Release stammt
vom März 2013. Open Project steht unter
der GPLv3 und arbeitet seit 2012 eigenständig. Im selben Jahr gründete sich die
Open Project Foundation; der Verein organisiert unter anderem Fördermittel für
ein hauptamtliches Programmiererteam.
Die Entwicklung schreitet zügig voran
und es erscheinen regelmäßig neue Versionen und Bugfixes. Die Tester spielten
die Version 4.0.2 vom 19. November 2014
ein und folgten dazu der Anleitung auf
der Projektseite.
Während die Installation und Einrichtung von Redmine den größten Teil eines
Arbeitstags verschlang, war Open Project nach zirka 30 Minuten einsatzbereit.
Open Project bietet für Debian, Ubuntu,
Fedora, Cent OS und Red Hat fertige
Pakete in einem eigenen Repository an.
Diese ziehen auf einem nackten Server
ohne fertig eingerichtete LAMP-Umgebung andere Komponenten nach.
Das Programm benötigt neben Apache, MySQL und Ruby einen Application Server wie Unicorn oder Passenger,
Rails, Subversion, Git, Imagemagick und
Rmagick. Sobald alle Pakete eingespielt
sind, ruft der Admin auf der Shell den
Einrichtungsassistenten auf:
openproject configure

Zur ersten Anmeldung im Webinterface
geben Anwender »admin« als Benutzernamen und Passwort ein. Das Kennwort
und die Sprache ändern sie danach im
Bereich »Mein Konto«. Open Project unterstützt derzeit Englisch und Deutsch,
wobei die deutsche Übersetzung noch ein
paar Lücken aufweist. Weitere Sprachen
fügen Admins über das Plugin-System
hinzu [14]; rund 30 Übersetzungen waren bei Redaktionsschluss in verschiedenen Stadien verfügbar.
Im Auslieferungszustand enthält die
Software ein einziges Theme namens
»OpenProject«. Eine zentrale Liste mit
weiteren Looks gibt es nicht. Wer die
Suchmaschine der Wahl bemüht, findet
im Netz einige Personalisierungen von
Drittanbietern, zum Beispiel Shiny [15].
Eine unvollständige Anleitung zum Eigenbau bezeichnen andere Nutzer in den
Open-Project-Foren als „möglicherweise
überholt“.
Der Open-Project-Admin richtet Benutzer, Gruppen und Rollen über die ent-

02/2015

Software
www.linux-magazin.de

Bitparade

sprechenden Menüpunkte im Dashboard
ein. An keiner Stelle ist die Verwandtschaft zu Redmine deutlicher als hier –
während Open Project ansonsten deutlich modernisiert daherkommt, haben
die Entwickler das Accountsystem fast
komplett übernommen.
Auch hier stehen die drei Benutzertypen
»Manager«, »Member« und »Reader« zur
Verfügung. Hinzu kommen die beiden
Rollen »Non member« und »Anonymous«
für Anwender ohne Konto. Die Gruppen
dienen dazu, Berechtigungen für mehrere
Nutzer ohne großen Klickaufwand einzurichten. Ein Einzelaccount erhält per
Klick in die entsprechende Checkbox im
Profil Administratorrechte. Open Project
nutzt Gravatar [7] für die Benutzericons.
Abbildung 3: Beim Erstellen eines neuen Arbeitspakets unterstützt Open Project den Anwender mit einer

Bevollmächtigt

Autovervollständigungs-Funktion, die »Übergeordnete Aufgaben« anbietet.

Über das Dashboard gelangen Anwender zur Abteilung »Projekte«, wo sie
bestehende erreichen und neue anlegen. Neben einem Namen und einer
Beschreibung wählen sie Module aus,
die später in der linken Seitenleiste der
Projektansicht auftauchen; im Angebot
sind »Arbeitspaket-Verfolgung«, »Wiki«,
»Kalender«, »Dokumente«, »Zeiterfassung«, »Projektarchiv«, »Timelines«, »Aktivität«, »News«, »Foren« und »Backlogs«.
Wie auch bei Redmine ist der Kalender
nur lesbar. Neue Einträge wandern automatisch hinein, wenn Anwender ein so
genanntes »Arbeitspaket« erstellen. Dabei
handelt es sich um einzelne Aufgaben
innerhalb eines Projekts.
Nach dem Klick auf »Neues Arbeitspaket« öffnet sich ein Dialog, in dem
Nutzer zunächst einen Typ aussuchen.
Auch in der deutschen Variante bietet
Open Project hier die englischen Bezeichner »Task«, »Deliverable«, »Milestone«,
»Phase«, »Bug« und »Feature« an.
Das Feld »Übergeordnete Aufgabe« enthält eine Autovervollständigungs-Funktion: Es reicht aus, die ersten Buchstaben des Arbeitspaket-Titels zu schreiben,
Open Project schlägt dann passende Kandidaten vor (Abbildung 3). Die restlichen
Felder nehmen den Status, den Verantwortlichen, Beginn- und Abgabedatum
sowie den geschätzten Aufwand auf.
Für Diskussionen steht ein einfaches
Forum zur Verfügung und im integrierten Wiki schreiben Teammitglieder ihr

Wissen für andere nieder. Beide Module
nutzen die Textile-Markupsprache; ein
Wysiwyg-Editor hilft beim Schreiben. Das
Entwicklerteam hat das Dokumentenmanagement aus dem Basissystem entfernt.
Bei Bedarf integrieren Admins es wieder
über ein Plugin. Dieses bietet allerdings
nicht mehr als die einfache Dokumentenverwaltung bei Redmine. Ein eigenes
Modul für Dateien, wie es der Konkurrent
besitzt, fehlt ebenso wie eine integrierte
Versionskontrolle. Auch die ist nur über
ein externes Plugin erhältlich.

Anschaulich
Die Auswertung der Projekte und der
Projektfortschritte ist bei diesem Testkandidaten besonders gut gelungen. Einen schnellen Überblick verschafft »Arbeitspakete | Zusammenfassung«, und
das Modul »Zeitpläne« enthält sogar detaillierte Aufstellungen samt grafischer
Timeline (Abbildung 4). Mit dem Schieberegler passen Nutzer die Größe an,
über Dropdownmenüs wählen sie das
Intervall, die gestrichelte rote Linie zeigt
den aktuellen Tag an. Die einzelnen Arbeitspaket-Typen haben unterschiedliche
Symbole und Farben. Der Administrator
bearbeitet bei Bedarf die Farbe der Icons
im Bereich »Typen«.
Die Aufstellung der Arbeitspakete exportieren Anwender über das Zahnradsymbol oben rechts als PDF- und CSV-Dateien. Zusätzlich stehen hier, im Modul

»Aktivität«, für die News, das Projektarchiv und die Diskussionsforen AtomFeeds bereit, sofern der Admin dies unter
»Konfiguration | Allgemein« aktiviert hat.
Dort beeinflusst er ebenfalls die Anzahl
der Einträge für die Feeds.
Eine Exportfunktion für den Kalender
ist nicht vorhanden. Auf Nachfragen im
Open-Projects-Forum antworteten die
Entwickler, dass ein solches Feature in
naher Zukunft nicht geplant sei. Dürftig
sieht es derzeit auch bei den Importmöglichkeiten aus. Über den Task Connector
[16] verbinden Anwender MicrosoftPowerpoint- und Microsoft-Project-Dateien mit der Software.
Insgesamt existieren für Open Project
deutlich weniger Plugins als für Redmine;
bei Redaktionsschluss waren lediglich 14
Erweiterungen erhältlich, darunter solche für Kostenkalkulationen, zum Vereinbaren von Teammeetings und für agile
Programmierung. Eine Liste und Installationsanweisungen bietet die Projektseite
[17]. Nach dem Einspielen muss der Administrator über »Rollen und Rechte« die
Berechtigungen für die Erweiterungen
setzen.
Der Cloud-Zeiterfassungsdienst Timecamp [18] arbeitet seit Anfang November
mit Open Project zusammen. Anwender
koppeln die beiden Services über das
Open-Project-API [19]. Dabei sollten sie
beachten, dass die Entwickler das APIv2
als überholt bezeichnen und davon abraten, es für neue Applikationen einzuset-

57

02/2015

Software
Bitparade
www.linux-magazin.de

58

Abbildung 4: Wirklich gut gelungen ist die Fortschrittsanzeige bei Open Project. Die Timeline zeigt alle Typen
des Arbeitspakets mit farbigen Symbolen an; den aktuellen Tag repräsentiert die gestrichelte Linie.

zen. Die Verantwortlichen weisen darauf
hin, dass sie zwar an APIv3 arbeiten,
aber nicht abschätzen können, wann die
neue Version fertig sein wird.
Eine eigene Open-Project-App für Smartphones oder Tablets gibt es nicht, sie ist
laut Webseite auch nicht geplant. Wer
sich von einem mobilen Gerät aus einloggt, stellt schnell fest, dass die Oberfläche nicht responsiv ist. Die Entwickler
äußern sich vage bei entsprechenden Benutzeranfragen im Forum. Zwar räumen
sie ein, dass responsives Design wichtig
sei, allerdings sei ein solches Feature nur
für Tablets und nicht für Smartphones
angedacht. 

Basecamp
Der dritte Kandidat ist ein Pionier der
Web-basierten Kollaborationstools. Bereits 2004 veröffentlichte der Hersteller
37signals seine Software Basecamp Classic. Auch Ruby on Rails, auf das auch
die beiden getesteten Open-Source-Tools
Redmine und Open Project setzen, entstand unter dem 37signals-Dach mit dem
Ziel, ein Framework für Basecamp zu
schaffen. Inzwischen hat sich einiges
getan: Seit 2012 löst Basecamp [3] das
ursprüngliche Basecamp Classic ab.
Im Februar dieses Jahres gab die Softwareschmiede bekannt, dass sie sich
ebenfalls in Basecamp umbenannt habe.
Im Zuge der Neuordnung stieß sie ihre
anderen Cloudprodukte Backpack,

Campfire und Highrise ab, um sich auf
Basecamp zu konzentrieren.
Während die Classic-Variante einen kostenlosen Zugang für alle bereithielt, die
nur ein Projekt mit der Software verwalten, steht ein solcher Account nicht mehr
zur Verfügung. Der Hersteller ermöglicht
Lehrern aber nach wie vor freien Zugang
zum System. Alle anderen können es 60
Tage lang kostenlos testen.
Danach wählen Kunden zwischen vier
Monats- und einem Jahrestarif. Zehn aktive Projekte und 3 GByte Speicher kosten 20 US-Dollar pro Monat, 40 Projekte
und 15 GByte 50 US-Dollar, 100 Projekte
und 40 GByte Speicher 100 US-Dollar,
unbegrenzt viele Projekte mit 300 GByte
Speicher schlagen mit 250 US-Dollar monatlich zu Buche. Unternehmen, denen
das nicht ausreicht, können jährlich 3000
US-Dollar berappen und erhalten dafür
beliebig viele Projekte, 500 GByte Speicher und Vorzugssupport.
Während das alte Basecamp Classic
noch 17 Sprachen beherrschte, kommuniziert das neue Interface nur noch auf
Englisch. Ob sich das Unternehmen irgendwann wieder der Lokalisierung
widmen möchte, war nicht in Erfahrung
zu bringen. Auch die Möglichkeit, den
Basecamp-Look mit Themes zu verändern, ist seit der Umstellung verschwunden. Aktuell ist es nicht mal drin, ein
eigenes Firmenlogo einzubinden.
Über »Everyone« richten Basecamp-Admins weitere Nutzer ein, die auf ihren

Account Zugriff haben. Das Ganze funktioniert über Einladungen per Mail. Neben
dem normalen Benutzerzugang kennt
das System den so genannten Client, der
Zugriff auf bestimmte Elemente erhält.
Der Verwalter legt zudem fest, welche Kalender ein Anwender betrachten darf und
ob dieser neue Projekte erzeugen kann
beziehungsweise volle Admin-Rechte
erhält. Einem Client kann der Admin
Einsicht in Diskussionen, Dateien oder
To-dos gezielt verwehren.
Das Konzept hakt nach Meinung der
Tester: Besser wäre es, Kunden erst einmal aus allem auszusperren und nur bei
Bedarf relevante Dokumente oder Diskussionsstränge freizuschalten. Jedes
Teammitglied und jeder Client darf weitere Anwender per Mail einladen. Die
Neuzugänge erben den Benutzerstatus
des Gastgebers.

Tagesordnung
Alle zu einem Projekt eingeladenen Nutzer dürfen grundsätzlich alle BasecampTools nutzen. Sie starten Diskussionen,
erstellen To-dos und fügen Dateien
hinzu. Leider haben Clients damit auch
das Recht, Teile des Projekts zu löschen.
Wenigstens gibt es einen Rettungsanker:
Klickt ein Benutzer auf der Projektübersicht-Seite oder im Bereich »Progress« auf
ein gelöschtes Objekt, bietet Basecamp
an, es wiederherzustellen (siehe Abbildung 5). Das Konzept von Gruppen oder
Rollen, wie es die beiden ersten Kandidaten bieten, kennt Basecamp nicht. Der
Admin muss Rechte von Hand setzen
und entziehen.
Aufgaben in einem Projekt heißen bei
Basecamp »To-do«. Das System ordnet
diese in Listen mit Unterpunkten an. Es
ist möglich, einzelne Aufstellungen per
Klick in eine Checkbox vor allen zu verbergen, die den Status Client haben. Paradox: Auch wenn die Aufgabe versteckt
ist, kann der Anwender sie einem Client
zuweisen, und dieser erhält eine Infomail
darüber mit einer URL, die er dann aber
nicht aufrufen darf.
Alternativ kann ein To-do auch erst mal
den Status »Unassigned« behalten. Außerdem bestimmt der Nutzer beim Anlegen ein Datum als Deadline. Im Vergleich mit Redmine und Open Project
schneidet Basecamp hier nicht gut ab,

02/2015

Gut gefiel den Testern die E-Mail-Schnittstelle. Jedes Basecamp-Projekt besitzt
seine eigene Mailadresse, Nachrichten,
die Benutzer an diese senden, archiviert
das System und macht sie über »Everything | Show all forwarded emails« zugänglich. Enthält der Nachrichtenbetreff
die Zeichenkette »Discussion:«, dann
taucht die Mail als neues Topic in der
Diskussionsübersicht auf.
Leider erkennt das System Antworten per
Mail nicht als zugehörigen Beitrag und
hängt sie an den Thread an, sondern
legt sie unter den allgemeinen Mails ab.
Lautet das Subject »Todo list:« und enthält der Body mehrere Zeilen, die jeweils
mit einem Sternchen beginnen, erscheint
eine neue To-do-Liste mit Unterpunkten.
Über »Document:« im Betreff erzeugen
Nutzer neue Dokumente aus dem Inhalt
der Mail, über »Files:« fügen sie Mailanhänge zu einem Projekt hinzu.
Minuspunkte gibt es allerdings für die
Auswertungsfunktionen. Eine »Progress«Ansicht blendet zwar eine rudimentäre
Zeitleiste ein, über die Anwender einzelne Tage anspringen können. Aber eine
grafische Auswertung oder Filter fehlen
– besonders Open Project zeigt, wie so
etwas besser geht.
Die interne Dokumentensammlung beschränkt sich auf einfache Texte mit ein

Bitparade

Software

Austausch

www.linux-magazin.de

denn die Konkurrenz kennt Workflows,
erfasst Bearbeitungsfortschritte und bildet diese ab.
Aufgaben und Liste besitzen eigene Diskussionsfunktionen. Die sind aber nicht
vergleichbar mit den Foren, die Redmine
und Open Project bieten. Das Diskussionstool erfüllt nur Minimalbedürfnisse;
alle Beiträge erscheinen chronologisch
sortiert, aber es gibt keine Threads und
Verschachtelungen, sodass es schwierig
ist, Antworten richtig zuzuordnen. Alle
To-dos und ihre Deadlines finden sich
auch im Kalender wieder.
Per Klick auf einen Tag erzeugen Anwender neue Events. Sie ordnen diese einem
Projekt hinzu, bestimmen optional eine
Uhrzeit, setzen eine Erinnerungsfunktion und bestimmen, wer die Gedankenstütze per Mail erhält (siehe Abbildung
6). Auch dieser Dialog erlaubt es, Clients
gezielt auszuschließen.

Abbildung 5: Objekte, die ein Teammitglied aus Versehen gelöscht hat, können auch andere Anwender wiederherstellen oder vollständig aus dem System entfernen.

paar Auszeichnungsoptionen. Ein Schutz
vor dem gleichzeitigen Bearbeiten eines
Dokuments ist eingebaut, Basecamp
weist darauf hin, welcher Anwender den
Text gerade unter den Fingern hat. In der
Seitenleiste rechts neben dem Dokument
zeigt Basecamp eine Versionsübersicht.
Nach Anwahl eines Eintrags hebt das
System die Änderungen farblich hervor
und stellt vorhandene Fassungen per
Mausklick wieder her.
Externe Dateien nimmt Basecamp bis zu
einer Größe von 10 GByte an. Anwender
dürfen beliebige Formate hochladen. Für
Grafiken und PDFs zeigt die Software
Vorschaubilder an, Audio- und Videodateien spielt sie direkt im Browser ab.
Alle anderen Dateitypen müssen Teammitglieder erst herunterladen, bevor sie
die Inhalte einsehen können.
Es ist möglich, Files umzubenennen,
eine Versionsverwaltung wie bei den Dokumenten fehlt allerdings. Der Hersteller
empfiehlt, auf neue Dateiversionen per
Kommentar hinzuweisen – eine eher unglückliche Lösung, denn diese landen in
der Diskussionsübersicht, was nicht zur
Übersichtlichkeit beiträgt.
Die Inhalte des Kalenders exportiert der
Ical-Link unterhalb der Projektübersicht.
Dort findet sich auch ein Atom-Feed.
Über »Account« in der oberen Leiste fordern Nutzer den Export ihrer Daten als
HTML-Archiv an. Sie können sich dabei

entscheiden, ob sie nur die Daten aktiver Projekte oder alles haben möchten.
Die Funktion steht einmal pro Tag zur
Verfügung, und es kann laut Hersteller
ein paar Stunden bis zur Bereitstellung
dauern.
Einige Funktionen, die Basecamp fehlen,
ergänzen Drittanbieter [20]. So bieten
sich für die fehlende Zeiterfassung etwa
die Clouddienste Toggl, Time Doctor oder
Tick an. Die von den Testern vermisste
Projektübersicht stellen Team Gantt oder
Ganttify bereit.
Die Integration der externen Services ist
denkbar einfach. In der Regel reicht es
aus, die entsprechenden Accounts miteinander zu verknüpfen und entsprechende
Zugriffsrechte zu bestätigen. Unter [20]
finden sich ebenfalls Links zu mobilen
Apps und Desktopanwendungen, die mit
Basecamp zusammenspielen. 

Zoho Projects
Die zweite Cloud-basierte Kollaborationslösung stammt aus dem großen
Werkzeugkasten des indisch-amerikanischen Softwarehauses Zoho Corporation.
Zoho Projects [4] ist seit 2006 auf dem
Markt. Das Unternehmen hat vier Pakete mit unterschiedlichen Funktionen
geschnürt.
In der kostenlosen Free-Variante verwalten Nutzer ein Projekt und erhalten

59

02/2015

Software
Bitparade
www.linux-magazin.de

60

Abbildung 6: Neue Aufgaben wandern über Kalender-Events schnell in die To-do-Listen. Basecamp erinnert
auf Wunsch per Mail an anstehende Termine.

10 MByte Speicherplatz. Express schlägt
monatlich mit 20 US-Dollar zu Buche, erlaubt bis zu 20 Projekte und hält 5 GByte
Speicherplatz bereit. 50 Projekte und
15 GByte gibt es für 40 US-Dollar pro
Monat in der Premium-Version. Wer unbegrenzt viele Projekte managen möchte,
zahlt 80 US-Dollar monatlich und erhält
obendrein 30 GByte auf den Servern des
Herstellers. Für die Bezahlvarianten bietet Zoho einen Preisnachlass an, wenn
Kunden ein ganzes Jahr buchen.
Die Webseite listet neben den Preisen und
Rabatten auch die Features der Zoho-Projects-Varianten auf. Einige Funktionen,
etwa die Zeiterfassung, Erinnerungen per
Mail und die Möglichkeit, Wochenenden
und Feiertage aus der Berechnung der
Manntage herauszunehmen, sind zahlenden Kunden vorbehalten. Dafür werden diese Mandanten für Wiki, Chat und
Bugtracker zusätzlich zur Kasse gebeten,
während die Tools im kostenlosen Account vorhanden sind. Die Tester schauten sich die Variante Premium an.
Zoho Projects ist in 17 Sprachen verfügbar. Die deutsche Lokalisierung ist
weitgehend vollständig, enthält aber einige Tippfehler. Der Hersteller scheint
im Hintergrund keine systemweiten Übersetzungsdateien zu nutzen, denn einige
Bedienelemente erscheinen in einer Ansicht auf Deutsch, in einer anderen auf
Englisch. Hier besteht Handlungsbedarf.

Über den Schraubenschlüssel und »Persönliche Einstellungen« wählen Anwender aus einem von vier Designs für die
Weboberfläche aus. Ein eigenes Logo für
Zoho-Projekte ist laut FAQ möglich; die
Funktion fehlt allerdings in der aktuellen
Version, wie das Unternehmen auf Nachfrage bestätigte.

Zentrale Aufgaben
Zoho kennt fünf Rollen: Portalinhaber,
Administrator, Manager, Mitarbeiter und
Auftragnehmer. Der Portalinhaber hat
vollen Zugriff und darf auch die Vertragsdaten des Accounts einsehen und
verändern. Der Zoho-Administrator legt
neue Projekte an und löscht vorhandene,
fügt Benutzer hinzu oder entfernt sie.
Er hat die volle Verwaltungshoheit über
das gesamte Zoho-Projects-Portal. Manager besitzen das Recht, Projekte zu
handhaben und bestehende Accounts zu
Projekten hinzuzufügen.
Mitarbeiter sind auf ihre Projekte beschränkt, haben dort aber Zugriff auf
alle Aufgaben, dürfen Dateien hinzufügen und an Diskussionen teilnehmen.
Der Typ Auftragnehmer entspricht weitgehend dem Mitarbeiter, ist allerdings für
externe Kollegen gedacht, die nur temporär ins Projekt involviert sind.
Genau wie Basecamp kennt Zoho zusätzlich Kundennutzer, diese dürfen aber

im Unterschied zur Konkurrenz lediglich
ihre eigenen Kommentare und Diskussionsbeiträge löschen. Aus der Zeiterfassung und der Kalenderansicht sperrt das
System sie grundsätzlich aus.
Jedes Zoho-Projekt hat Aufgabenlisten
mit einzelnen Tasks. Zusätzlich dürfen
Anwender alleinstehende Aufgaben definieren, die keiner Liste zugeordnet sind.
Wenn sie eine neue anlegen, fügen sie
optional bis zu zehn Dateien hinzu, bestimmen Anfangs- und Enddatum und
den verantwortlichen Mitarbeiter.
Die Erinnerungsfunktion erweist sich als
äußerst flexibel und schickt auf Wunsch
wiederholt Nachrichten an ein Team. Ein
Klick auf das Uhrensymbol vor dem Namen startet die Zeiterfassung, und über
das Aufklappmenü stellen Nutzer den
Fortschritt ein (Abbildung 7).
Bonuspunkte gibt es für die verschiedenen Darstellungsformen der Aufgabenlisten. Über den oberen Rand schalten
Benutzer von der klassischen Ansicht
zu einem Kanban-Board oder zu einer
Übersicht, die Abhängigkeiten zwischen
einzelnen Tasks aufzeigt.

Teamwork
Neben Open Project ist der Zoho-Dienst
der zweite Kandidat, der Meilensteine
unterstützt. Diese erscheinen in der Projektauswertung und im Kalender entsprechend hervorgehoben. Der Kalender
bietet eine Monats- und eine Agenda-Ansicht, die nur Einträge vom Typ »Ereignis«
zeigt. Über das kleine Filtersymbol am
oberen Rand blenden Nutzer bestimmte
Termintypen ein und aus und sortieren
die Einträge nach Zuständigkeiten.
Ein Klick auf einen Tag legt eine neue
Task an, ohne zur Aufgabenliste wechseln zu müssen. Anwender entscheiden
sich, ob es sich um ein Ereignis, einen
Meilenstein, eine Aufgabe oder einen
Fehler handelt, wählen einen Verantwortlichen aus, setzen Anfangs- und Enddatum und Erinnerungsfunktionen.
Das Forum schafft durch Kategorien etwas mehr Ordnung. Laufen viele Unterhaltungen über diese Schnittstelle, dann
ist es möglich, einzelne Bereiche einzublenden. Ansonsten unterscheidet sich
Zoho Projects hier leider nicht von den
anderen Kandidaten und hängt Nachrichten ebenfalls chronologisch sortiert

02/2015

Software
www.linux-magazin.de

Bitparade

aneinander. Zwar ist es möglich, auf Beiträge zu antworten, ein echtes Threading
findet jedoch nicht statt.
Genau wie Basecamp bietet dieser
Clouddienst eine Mailschnittstelle zum
Diskussionsforum. Ob das System eine
Nachricht als Aufgabe, Forenbeitrag oder
Dokument behandelt, beeinflusst der
Nutzer allerdings nicht über den Betreff,
sondern über jeweils eine eigene Mailadresse. Anders als der Cloud-Konkurrent
lehnt Zoho Projects Post von Adressen
ab, die nicht über die Benutzerverwaltung freigeschaltet sind. Das schützt einerseits vor Spam, macht es andererseits
aber unmöglich, die Kollegen von einem
anderen Account aus zu kontaktieren.
Abbildung 7: Anwender starten und stoppen die Zeiterfassung für Zoho-Projects-Aufgaben über den kleinen

Einsatzfreudig

Timer vor einer Aufgabe. Über ein Dropdownmenü an der rechten Seite erfassen sie den Fortschritt.

Die Dokumentenfunktion schneidet im
Vergleich mit den anderen Kandidaten
deutlich besser ab. Anwender laden bis
zu zehn Dateien gleichzeitig hoch, fügen
Kommentare hinzu und sortieren ihre
Inhalte in Verzeichnisse. Neben einer
Listen- und Miniaturansicht bietet Zoho
eine abgespeckte Vorschaufunktion für
Bilder. Eine Integrationsmöglichkeit mit
Dropbox ist ebenfalls dabei. Formate,
welche die Online-Officesuite Zoho Docs
[21] unterstützt, öffnen Nutzer direkt aus
Zoho Projects heraus im entsprechenden
Docs-Modul und bearbeiten es, nach dem
Speichern aktualisiert das System die Dateien automatisch.
Alle Dateien unterliegen der Versionsverwaltung. Ein kleiner grauer Kreis zeigt
die aktuelle Versionsnummer an. Klickt
der Anwender auf das Symbol, klappt

eine Liste aus, die Zugriff auf alle Fassungen und die Möglichkeit zum Upload
einer weiteren Variante bietet. Sofern der
Dateiname des neuen File vom Original
abweicht, gibt die Software eine deutliche Warnung aus. Den Testern gefiel
überdies gut, dass sie ihre Daten mit Tags
versehen können. Hält ein Team diese
Auszeichnung konsequent ein, finden
alle Mitarbeiter schnell die gesuchten
Dokumente.
Den Kalender exportieren Anwender über
das Icon rechts oben. Zoho Projects erzeugt zwei Links – einen im Ical-Format
und einen für Google-Kalender. Aufgabenlisten und Auswertungen des Zeitplans
speichert der Clouddienst im Excel- oder
CSV-Format, Letztere und die Berichte
zusätzlich als PDF-Dateien. In den Einstellungen finden Anwender eine Option,

um das gesamte Projekt als XML-Datei
ohne Dokumente zu exportieren. Über
die Abteilung »Integrations« der persönlichen Konfiguration verheiraten Anwender Zoho Projects mit der Business-Intelligence-Lösung Zoho Reports [22], um
professionelle Analysen und Auswertungen der Projekte zu erstellen.
In der so genannten Instrumententafel im
Dashboard finden Anwender einen Überblick über den aktuellen Projektstatus
und die letzten Ereignisse. Zoho Projects
blendet auf der rechten Seite Diagramme
ein (siehe Abbildung 8), die Anwender
in den Vordergrund holen, mit Filteroptionen anpassen, als PDF- und PNG-Datei
sowie in die Zwischenablage speichern
können. Zusätzlich bietet der Clouddienst Zugriff auf Berichte und GanttDiagramme, die zwar ausführlicher sind

61

02/2015

Software
62

www.linux-magazin.de

Bitparade

Dennoch hinterlässt der Clouddienst
einen guten Eindruck. Besonders die
Kooperation mit anderen Zoho-Diensten
und externen Anbietern ist ein Plus. Als
einziger Kandidat im Test bietet Zoho
Projects eine Weboberfläche mit responsivem Design und eignet sich daher besonders für Teams, deren Mitglieder oft
von unterwegs mit Smartphone oder
Tablet arbeiten. (hej)
Q

Abbildung 8: Im Dashboard blendet Zoho Projects Diagramme ein. So sehen Mitarbeiter und Verantwortliche
auf einen Blick, wie es um den Fortschritt des Projekts steht.

als bei Open Project, aber nicht ganz so
handlich und aussagekräftig.
Der vierte Kandidat trumpft auf, wenn
es um die Integration weiterer Clouddienste geht. Er arbeitet aber nicht nur
mit den firmeneigenen Angeboten zusammen, sondern importiert auch Daten
aus Cloudspeichern wie Dropbox, Google
Drive, Box, Microsoft One Drive und
Evernote. Apps für Android- und iPhoneNutzer sind über die gängigen App Stores
erhältlich. Anwender anderer mobiler
Geräte können den Clouddienst bequem
über den Browser bedienen, denn Zoho
Projects nutzt ein responsives Design.

Teamgeist
So mächtig und flexibel Redmine dank
seines Plugin-Systems ist, so unbequem
und nervenaufreibend sind Installation
und Pflege. Selbst erfahrene Admins dürften sich die Haare raufen beim Versuch,
die Software aktuell und einsatzbereit zu
halten. Das Zusammenspiel der Erweiterungen ist ein reiner Eiertanz, da diese
teilweise einander ausschließende Abhängigkeiten haben. Jedes Update kann
Ausfälle einzelner Komponenten oder des
ganzen Systems bedeuten.
Aus Benutzersicht spricht aber nichts gegen den ersten Kandidaten – Redmine ist
zwar nicht immer modern, dafür aber
zuverlässig und leicht zu erlernen. Gut
gefiel den Testern die Fülle externer Anwendungen. Egal ob mit dem Androidoder Windows-Phone-Handy, einem

iPhone oder verschiedenen Tablets: Die
Interaktion mit der Software von unterwegs ist garantiert.
Der zweite Kandidat für den eigenen
Server ist deutlich besser zu administrieren, auch das Einspielen der Plugins ist
einheitlicher und damit weniger fehleranfällig. Die Benutzeroberfläche kommt
moderner daher – Open Project macht
insgesamt einen guten Eindruck. Abzüge
in der B-Note gibt es wegen des ausgelagerten Dokumentenmanagements, das
muss der Admin in jedem Fall nachrüsten. Wer viel von unterwegs mit mobilen
Geräten arbeitet, sollte genau prüfen, ob
er mit der nicht-responsiven Oberfläche
zurechtkommt. Apps für Smartphones
und Tablets wären eine wünschenswerte
Ergänzung.
Basecamp fehlen einige Workflowelemente, welche die anderen Testkandidaten besser umsetzen. Die Cloudlösung
ist an vielen Stellen zu minimalistisch,
bietet dafür aber eine niedrige Lernkurve.
Sie eignet sich für kleinere Teams oder
Anwender mit wenig Erfahrung im Bereich Projektmanagement. Gut umgesetzt
sind die E-Mail-Integration und die Dokumentenverwaltung. Wenn es um die
Zusammenarbeit mit externen Cloudservices geht, zeigt Basecamp seine stärkste
Seite. Sehr viele Drittanbieter kooperieren mit dem System und ergänzen vermisste Funktionen.
Zoho Projects kann deutlich mehr – in
dieser Funktionsfülle können sich Anwender aber auch schnell verlaufen.

Infos
[1] Redmine: [http://www.redmine.org]
[2] Open Project: [https://openproject.org]
[3] Basecamp: [https://basecamp.com]
[4] Zoho Projects:
[https://projects.zoho.com]
[5] Redmine-Howtos: [http://www.redmine.
org/projects/redmine/wiki/HowTos]
[6] Redmine-Wiki zu Themes:
[http://www.redmine.org/projects/
redmine/wiki/Themes]
[7] Gravatar: [https://de.gravatar.com]
[8] DMSF-Plugin für Redmine:
[http://www.redmine.org/plugins/dmsf]
[9] Redmics-Plugin:
[https://github.com/buschmais/redmics]
[10] Redmine-Plugins:
[http://www.redmine.org/plugins]
[11] Zapier:
[https://zapier.com/zapbook/redmine]
[12] Redmine-Zusammenarbeit mit externen
Tools: [http://www.redmine.org/projects/
redmine/wiki/ThirdPartyTools]
[13] Chili Project:
[https://www.chiliproject.org]
[14] Open-Project-Übersetzungen: [https://
github.com/opf/openproject-translations]
[15] Shiny-Theme: [https://github.com/
LivioTeam/openproject-themes-shiny]
[16] Task Connector: [https://community.
openproject.org/projects/task-connector]
[17] Plugins für Open Project:
[https://www.openproject.org/download/
install-plugins]
[18] Timecamp: [https://www.timecamp.com/
en/integrations/openproject-time-tracking-timecamp]
[19] API-Dokumentation für Open Project:
[https://community.openproject.org/
projects/openproject/wiki/API_v2]
[20] Basecamp-Apps und -Erweiterungen:
[https://basecamp.com/extras]
[21] Zoho Docs: [https://www.zoho.com/docs]
[22] Zoho Reports:
[https://www.zoho.com/reports]

02/2015

Software
64

www.linux-magazin.de

Tooltipps

Werkzeuge im Kurztest

Tooltipps
Pkgdiff 1.6.3

Load Avg 2.0

Mlock 0.2

Pakete miteinander vergleichen
Quelle: [http://lvc.github.io/pkgdiff]
Lizenz: GPLv2
Alternativen: keine

Systemlast im Blick
Quelle: [http://www.loadavg.com]
Lizenz: AGPLv3
Alternativen: Sysusage

Dateien verschlüsseln
Quelle: [http://andre-simon.de/doku/mlock/
en/mlock.php]
Lizenz: GPLv3
Alternativen: Gnu PG

Wer den Inhalt von zwei RPM-, Deboder Tar.gz-Paketen miteinander vergleichen möchte, muss normalerweise beide
Archive entpacken und dann ein Tool wie
Diff bemühen. Komfortabler geht es mit
Pkgdiff, das die Pakete gegenüberstellt
und anschauliche Berichte im HTML-Format erzeugt. Das Perl-Skript unterstützt
die Formate RPM, SRPM, Tar (kombiniert
mit verschiedenen Kompressionstools),
Deb und Deb-SRC.
Anwender übergeben beim Aufruf beide
Pakete. Die HTML-Dateien legt Pkgdiff im
Ordner »pkgdiff_reports« ab, sortiert nach
Paketnamen und -versionsnummern. Die
Schalter »-minimal«, »-quick« und »-details« bestimmen, wie ausführlich die
Berichte sind. Weitere Aufrufparameter
beeinflussen die Behandlung von Leerzeichen oder -zeilen.
Praktisch ist auch der Parameter »-size-limit«, um eine Größenbegrenzung für Pakete festzulegen. Er empfiehlt sich vor allem dann, wenn Anwender Repositories
mit vielen Dateien prüfen möchten. Die
Dokumentation erklärt, wie Nutzer mit
einer XML-Datei eine Gruppe von Paketen analysieren.
+++++ Pkgdiff eignet sich sowohl für
Entwickler, die ihre neuen Pakete kontrollieren möchten, als auch für Anwender, die Fehler in selbst kompilierten Programmen suchen. Das Perl-Skript erzeugt
ansprechende Berichte, die beim VergleiQ
chen und Analysieren helfen.

Load Avg erfasst die Last und den Speicher- und Ressourcenbedarf von Servern,
erzeugt daraus Verlaufsgraphen und präsentiert diese im Browser. Das PHP-Tool
benötigt einen Webserver sowie PHP 5.0
oder neuer. Optional können Admins es
mit SSL absichern.
Die Weboberfläche zeigt die aktuelle
Systemauslastung in mehreren Graphen
an. Welche Daten das Tool präsentiert,
bestimmen Anwender über »Settings«.
Load Avg enthält Module für die CPU, das
Netzwerk, den Speicher, die Festplatte(n),
MySQL, Apache und SSH. Das Menü »Server« bringt Informationen zur Grundkonfiguration, über den Arbeitsspeicher, den
oder die Prozessoren sowie den Kernel.
Außer der Webschnittstelle bringt Load
Avg das Skript »logger.php« mit, das die
Daten einsammelt.
Ein Crontab-Eintrag wie im Beispiel auf
der Projektseite sorgt für automatischen
Betrieb. Im Gegensatz zu vergleichbaren Programmen benötigt Load Avg kein
Datenbank-Backend, sondern verwaltet
die erfassten Daten in eigenen Logs.
+++++ Load Avg ist ein nützliches
Tool, das Anwendern Auskunft über
die Systemauslastung ihres Servers gibt.
Allerdings eignet es sich nur für einen
Rechner. Wer mehrere Server im Blick
behalten möchte, sollte auf andere MoQ
nitoringtools zurückgreifen.

Mlock bietet eine Shell-Schnittstelle zum
Kryptographieverfahren Minilock, das
komplizierte Techniken wie PGP oder
Gnu PG ablösen will, indem es vor allem
das Hantieren mit privaten und öffentlichen Keys eliminiert. Um eine MinilockID zu erzeugen, rufen Anwender Mlock
zusammen mit »-m« und der eigenen
Mailadresse auf. Die Passphrase muss aus
mehreren Wörtern bestehen und mindestens 41 Zeichen lang sein. Die Eingabe
erfolgt einmalig und ist verdeckt – wer
sich vertippt, hat Pech gehabt.
Um eine Datei zu verschlüsseln, geben
Benutzer diese hinter »-E« an; sie erhält
die Endung ».minilock«. Wer einen anderen Namen vergeben möchte, hängt
diesen an »-o« an. Um ein File für einen
Dritten wegzuschließen, übergeben Nutzer hinter dem Parameter »-r« dessen ID.
Es ist möglich, mehrere Empfänger zu
definieren. Über »-x« schließlich nehmen
Nutzer ihre eigene Minilock-ID aus und
haben damit keinen Zugriff mehr auf die
verschlüsselte Datei.
Zum Entschlüsseln dient »-D«; auch hier
sind wieder die Passphrase und die Mailadresse gefragt. Letztere dient dabei als
Salt-Element.
+++++ Vom Namen sollten sich Anwender nicht abschrecken lassen – Mlock
kann auch mit großen Dateien umgehen.
Das Tool ist schnell und performant. Q

02/2015

Software
Tooltipps

Mlterm 3.4.0

Pimp my Log 1.7.4

Virtuelle Umgebungen
Quelle: [http://lxcf.sourceforge.jp/index.
html.en]
Lizenz: GPLv2
Alternativen: LXC, Virtenv

Mehrsprachiges Terminal
Quelle: [http://mlterm.sourceforge.net]
Lizenz: BSD
Alternativen: Jfbterm

Serverlogs im Browser
Quelle: [http://pimpmylog.com]
Lizenz: GPLv3
Alternativen: Analog, Awstats

www.linux-magazin.de

66

LXCF 0.11

Linux Containers (LXC) virtualisiert
mehrere voneinander isoliert laufende
Linux-Systeme auf einem einzigen Host.
Das Framework LXC Facility, kurz LXCF,
erzeugt im Handumdrehen neue Container oder verwaltet bestehende. Es nutzt
dazu die Libvirt-Bibliothek.
Anwender steuern LXCF über Aufrufparameter oder interaktiv über die LXCFShell. Die Befehlspalette umfasst Ressourcen- und Containerverwaltung, das
Starten und Stoppen einzelner Umgebungen sowie das Steuern von Batchjobs.
Einen neuen Container erzeugen und
starten Nutzer mit »sysgen«, gefolgt von
einem eindeutigen Namen. Die Kommandos »cpurate« beziehungsweise »memlimit« schränken den verfügbaren Arbeitsspeicher und die CPU-Performance ein,
um Ressourcen zwischen Gast und Host
optimal aufzuteilen.
Einen Blick auf die aktuelle Konfiguration
wirft »show«, »update« spielt Patches ein
und »deploy« aktualisiert das ContainerBetriebssystems. Eine Übersicht aller
verfügbaren Umgebungen liefert das
Kommando »list«. In der Voreinstellung
starten die Container nach einem Reboot
des Hosts nicht automatisch neu. Ist
das erwünscht, kennzeichnen Anwender solche Umgebungen mit »autostart«.
Eine Auflistung aller LXCF-Befehle stellt
»helpcmd« bereit. Die Manpage und das
Readme enthalten eine umfangreiche Anleitung und viele Beispiele.
+++++ LXCF erzeugt neue Container
in wenigen Minuten. Da Anwender das
Tool komplett mit Aufrufparametern
steuern können, eignet es sich ideal für
eigene Skripte. Das interaktive Arbeiten
in der LXCF-Shell ist allerdings etwas
gewöhnungsbedürftig.
Q

Linux-Terminalemulatoren gibt es wie
Sand am Meer. Der Multi Lingual Terminal Emulator on X, kurz Mlterm, unterstützt zahlreiche ISO-Kodierungen,
asiatische Zeichensätze (auch Zeichen
mit doppelter Breite) und bidirektionale
Schriften wie Hebräisch, Arabisch oder
Persisch. Der Support für indische Sprachen wie etwa Hindi ist noch als experimentell gekennzeichnet. Insgesamt
beherrscht das mehrsprachige Terminal
über 40 Kodierungen.
Beim Start wertet das Tool die »locale«Einstellungen aus. Passt die Konfiguration nicht, öffnet [Strg] zusammen mit
der rechten Maustaste einen Dialog, in
dem Anwender Änderungen zum Encoding und zu den Schriftarten- und -größen vornehmen. Mlterm bietet hier auch
Optionen, um die Farbgebung anzupassen oder Fensterrahmen sowie Scrollbalken ein- oder auszublenden. Das Tool
kennt zahlreiche Aufrufparameter, die
das Antialiasing einschalten, die MetaTaste zuweisen, eine Login-Shell starten
und Helligkeit und Kontrast regeln.
Interessant ist auch der Parameter »-j«, der
Mlterm als Dienst startet und Anfragen
von »mlclient« annimmt. Die Langfassung
kennt zwei Modi: »--daemon=blend«
und »--daemon=genuine«. Ersterer sorgt
dafür, dass der Daemon die Arbeit einstellt, wenn der Nutzer das letzte Terminalfenster schließt, »genuine« hingegen
versetzt den Dienst in eine Art Suspend.
Die Anwender können zu einem späteren Zeitpunkt mit »mlclient« und dem
PTY-Socketnamen die Verbindung wiederbeleben.
+++++ Mlterm erscheint als das perfekte Terminal für alle, die vielsprachig
unterwegs sind und auch exotische ZeiQ
chensätze benötigen.

Wer einen komfortablen Weg sucht, um
die Logfiles eines Remoteservers zu betrachten, der sollte Pimp my Log eine
Chance geben. Ursprünglich als PHP
Apache Log Viewer gestartet, benannten
die Entwickler im Januar 2014 ihr Tool
um, da seine Fähigkeiten nicht mehr nur
auf Apache beschränkt sind. Es verarbeitet inzwischen alle Protokolle, die dem
Common-Logfile-Format folgen, darunter
solche von Nginx, IIS, Ruby on Rails,
Tomcat, SSHD und Syslog.
Anwender entpacken das Archiv im Dokumentenverzeichnis des Webservers.
Zur Konfiguration benennen sie die Datei »config.example.php« in »config.user.
php« um und bearbeiten sie im Texteditor. Alternativ bietet das Tool einen Einrichtungsassistenten, der die wichtigsten
Daten abfragt. Dazu gehören Admin-Benutzername und -Passwort, das bevorzugte Logformat sowie die Verzeichnisse
mit den Protokollen. Systemverwalter
sollten darauf achten, dass Pimp my Log
die Logdateien lesen darf.
In der Kopfzeile der Weboberfläche wählen Anwender die gewünschte Logdatei
aus. Je nach Protokoll zeigt die Tabelle
darunter unterschiedliche Spalten an.
Über das Menü am oberen Rand aktualisieren Nutzer die Anzeige von Hand oder
automatisch und wählen dazu ein Intervall und die Anzahl der Protokolle aus.
Ein Suchfeld erlaubt die Recherche nach
bestimmten Einträgen; reguläre Ausdrücke sind erlaubt. Eine Exportfunktion
rundet den Funktionsumfang ab.
+++++ Pimp my Log bereitet Serverprotokolle übersichtlich auf, greift dazu
allerdings nur auf lokale Logfiles zu. Für
größere Infrastrukturen eignet sich das
Q
Tool also nicht. (U. Vollbracht/hej)

Sysadmin

02/2015

Wer mit einem Pentesting-Tool wild im eignen Netz rumfuchtelt, bleibt zwar am Leben, hat aber Aussichten auf
einen Preis für herausragende Leichtfertigkeit. Für alle anderen hat Charly Kühnast einen Rat: Verwenden Sie
Metasploitable, das vielleicht kaputteste Linux aller Zeiten. Charly Kühnast
Inhalt
70 Cloud-Betriebssysteme
OS-Betriebssysteme für die Cloud mit
unterschiedlichen Konzepten und Einsatzschwerpunkten.
80 Dovecot und S3
Fast beliebig skalierbaren Mailspeicher
ermöglicht die Zusammenarbeit von
Dovecot und Amazons S3.

Wahrscheinlich haben Sie schon von
den Darwin Awards [1] gehört. Den launigen Preis bekommt verliehen, wer die
Qualität des Genpools der Menschheit
dadurch erhöht, dass er der Welt seine
Gene auf herausragend dämliche Weise
entzieht. Prinzipbedingt werden fast alle
Darwin Awards posthum verliehen – die
wenigen Ausnahmen sind unappetitlich
und nicht jugendfrei [2].
Meinen Lieblings-Award haben zwei Herren gekriegt, die mit ihrem Geländewagen
auf einen zugefrorenen See fuhren, um
dem Dynamitfischen zu frönen. Einer
zündete eine Sprengladung an und warf
sie weit weg. Die Männer staunten, als
der mitgereiste Hund das gefährliche
Stöckchen munter apportierte.
In ihrer Not zückten sie Schusswaffen,
um den Hund zu stoppen. Der brachte
sich daraufhin unter dem Geländewagen
in Sicherheit. Dort detonierte das Dynamit, das Auto versank, während die
Druckwelle die Schlaumeier fortschleu-

Der Autor
Charly Kühnast administriert
Unix-Systeme im Rechenzentrum Niederrhein. Zu seinen
Aufgaben gehören Sicherheit und Verfügbarkeit der
Firewalls und der DMZ.

derte. Sie verloren das Bewusstsein und wurden später
erfroren aufgefunden. Schade
um den Hund – Respekt für
den Forensiker, der den Ablauf rekonstruierte.
Prämienwürdiges Pech ist
auch im Netz zu finden. Jeder Admin mit Erfahrung
kann Geschichten von Amok
laufenden Pentesting-Tools
erzählen, die unversehens die
wichtigsten Produktionsserver in den Orkus geschossen
haben – gesteuert vom Azubi,
der sehen wollte, was dieses
Abbildung 1: Mit einem Smiley zu Root werden – Vsftp 2.3.4 macht's möglich.
Metasploit kann.
Das eigene Netz zu attackieren wäre liebten Software hackt und das Programm
durch eine mit Malware oder einer Hinwirklich nicht nötig, denn es gibt einen Abenteuerspielplatz zum gefahrlotertür versehenen Version austauscht.
sen Austoben. Er heißt Metasploitable
Wer sie auf einem Server installiert, be[3], und sein Name ist Programm. Das
kommt bald ungebetenen Besuch.
Linux-Image, zu finden auch auf der
Ein Beispiel dafür ist der beliebte FTPDELUG-DVD, lässt sich in VMware oder
Daemon Vsftpd. Er wurde einmal durch
Virtualbox starten. Ist das geschafft, enteine Version ersetzt, die auf Port 6200
faltet sich ein großartiges Sammelsurium
eine Rootshell öffnete, wenn sich Benutzer mit einem Smiley nach dem Benutzervon Sicherheitslücken.
namen anmeldeten (Abbildung 1).
Wenn der Azubi also mal wieder Pentester spielen will, geben Sie ihm MetasploiEinige Schwachstellen sind nur noch von table und einen vom LAN abgekoppelten
archäologischem Interesse, etwa die kaSwitch. Er wird von den Möglichkeiten so
fasziniert sein, dass keine Zeit mehr fürs
puttkonfigurierten R-Dienste Rlogin und
Q
Dynamitfischen bleibt. (jk)
Rsh – die Älteren werden sich erinnern.
Die Jüngeren kennen eh nur SSH, und
selbstverständlich ist auch das auf Metasploitable eine einzige Katastrophe,
Infos
ganz zu schweigen von den schwachen
[1] Darwin Awards: [http://darwinawards.com]
bis nicht vorhandenen Defaultpasswör[2] „The Thing Ring“, eine Kastrationsstory,
tern aller möglichen Dienste.
2014 nominiert für den Darwin Award:
Eine andere Klasse bilden trojanisierte
[http://darwinawards.com/darwin/
Dienste, von denen Metasploitable mehdarwin2014-05.html]
rere offeriert. Sie entstehen, wenn irgend[3] Metasploitable: [http://sourceforge.net/
wer das Download-Repository einer beprojects/metasploitable/]

Unzulänglichkeiten satt

www.linux-magazin.de

Auf den Hund kommen

Einführung

Aus dem Alltag eines Sysadmin: Metasploitable

69

02/2015

Sysadmin

Betriebssysteme für die Cloud

Open-Source-Software spielt in der Cloud zwar die erste Geige, doch als Betriebssystem fehlt manchem Linux
die Leichtigkeit, um in die Sphären aufzusteigen. Cloudbetriebssysteme wollen Anwendungen in der Rechenwolke schlank machen, das Linux-Magazin stellt vielversprechende Anwärter vor. Udo Seidel

die Basis für die eigentlichen (Web-)Anwendungen und kommen diesen möglichst wenig in die Quere.
Die Grenzen zwischen den Kategorien
fließen, in der Praxis sind die Kandidaten
weniger klar voneinander getrennt. Für
diesen Artikel besteht das Teilnehmerfeld aus OSv [5], Mirage OS [6] und
Cirros [7]. Auch dazu zählt neben Core
OS [8], dem das Linux-Magazin kürzlich
[9] einen Artikel widmete, auch die JeosFamilie (Just enough operating system,
[10]). Zu ihr liefert der Kasten „Saftiges
Linux“ Details. Am Ende stellt der Artikel noch zwei neue, Docker-zentrierte
Systeme von Canonical und Red Hat vor.

© Sergey Nivens, 123RF

70

www.linux-magazin.de

Cloud-Systeme

Lift in die Wolken 

Der neue Star – OSv

Als „quelloffenes Betriebssystem für die
Cloud“ geht mittlerweile einiges durch.
Das weiß, wer versucht hat, den Begriff
zu googeln. Geht es aber um Kandidaten,
die im Rechenzentrum laufen und Webanwendungen ausliefern sollen, wird die
Luft überraschend dünn.

Drinnen oder draußen
Der Artikel betrachtet spezielle Vertreter
der Gattung Cloud-OS. Generell zerfallen

Der Autor
Dr. Udo Seidel ist eigentlich Mathe-Physik-Lehrer
und seit 1996 Linux-Fan. Nach seiner Promotion
hat er als Linux/Unix-Trainer, Systemadministrator und Senior Solution Engineer gearbeitet.
Heute ist er Leiter des Linux-Strategie-Teams der
Amadeus Data Processing GmbH in Erding.

die Fundstücke zu den Cloudbetriebssystemen grob in drei Kategorien. Da sind
die Desktop-artigen Systeme. Zu ihnen
gehören etwa Chromium OS [1] oder
auch das inzwischen eingestellte Joli
OS [2], ihnen widmet sich der Kasten
„Quelloffen und wolkenartig“.
In eine zweite Kategorie fallen Technologien, die die Betriebssystemschicht
außen vor lassen, um sich auf die Virtualisierungsebene zu konzentrieren. Bekannte Vertreter sind Smart OS [3] und
Zero VM [4], zu denen der erwähnte
Kasten auch Details beisteuert.
Die dritte Kategorie besteht aus Systemen, die den in der Einführung genannten Ansatz verfolgen. Es sind quelloffene
Betriebssysteme, die zwar primär für den
Einsatz als Gäste in der Wolke trainiert
sind, sich prinzipiell aber auch im Rechenzentrum zu Hause fühlen. Sie bilden

OSv ist ein noch recht junges Projekt,
die Erstausgabe erschien im September
2013. Ein Blick in das Git-Log zeigt, dass
der erste Eintrag vom 1. Dezember 2012
stammt. Dennoch avancierte OSv auf der
Linuxcon Europe 2013 in Edinburgh bereits zu einem kleinen Star. Kein Wunder,
sind die Leute hinter OSv – Cloudius
Systems [11] – doch keine Unbekannten.
CEO Dor Laor und CTO Avi Kivity Kennern gelten der Szene als Väter von KVM
[12]. Hinzu kommt Glauber Costa, der
eine wichtige Rolle in der Linux-Virtualisierung gespielt hat.
OSv versteht sich als minimalistische
Schicht zwischen dem Hypervisor und
einer Cloudanwendung, eine Installation
und der Betrieb auf echter Hardware sind
nicht vorgesehen. Ein Teil des Erfolgs beruht darauf, dass sich das Betriebssystem
lokal installieren lässt, wofür der Anwender zwischen KVM, Xen [13], VMware
[14] oder Virtualbox [15] als Unterbau
wählt. Daneben funktioniert OSv auch

02/2015

OSv verzichtet auf ein Nutzerkonzept,
alle Prozesse laufen quasi im Kernelspace. Das macht das System schlanker
und schneller, weil beispielsweise Kontextwechsel zwischen Kernel- und Userspace wegfallen und es nicht zwischen
verschiedenen Applikationen umschal-

Da OSv deutlich anders gestrickt ist als
ein traditionelles Linux (oder Free, Net,
Open BSD), fragt sich ein Admin natürlich, wie er ein System verwaltet, das
keine Benutzer kennt, bei dem alles im
Kernelspace läuft und das nur für eine
einzelne Anwendung ausgelegt ist. Der
Nutzer wiederum möchte wissen, wie er
seine Lieblingsanwendung auf OSv zum
Laufen bekommt.
Zum zweiten Punkt lässt sich sagen, dass
das Cloudbetriebssystem die meisten Linux-ABIs (Application Binary Interface)
implementiert [24]. Doch fordern die
oben geschilderten Designentscheidungen ihren Tribut. Ohne Benutzerkonzept
fallen Multiuser-Anwendungen schon
mal raus. Systemaufrufe wie »fork()«,
»vfork()« und »clone()« funktionieren
ebenfalls nicht – es soll ja nur ein Prozess
laufen. Schließlich muss die auszuführende Anwendung in einem bestimmten
Format vorliegen, auch bekannt als »Relocatable Shared Object« [25].
OSv sucht im Objektcode nach der Hauptfunktion »main()« und führt diese aus.
Der Linux-Anwender kennt das von den

sich dann aber heraus, dass es für das DesktopCloud-OS keine Zukunft gibt [26].
Besser erging es Chromium OS, wohl auch durch
die wohlhabende Verwandtschaft. Das von
Google initiierte Betriebssystem zielt vor allem auf Anwender, die viel Zeit im Internet verbringen. Anwendungen sind Webanwendungen,
Internet und Hardware verschmelzen. Netbooks
betrachtete Google als passenden Unterbau für
Letztere. Nach einer ersten Ankündigung im
Juli 2009 veröffentlichte Google im November
den Quelltext.
Cloudbetriebssysteme sollen auch Smart OS
und Zero VM sein, obwohl sie eher aus der Virtualisierungsecke kommen. Smart OS wird von
der Firma Joyent unterstützt, ist Open Source,
verheiratet die von Solaris bekannten Zonen

mit KVM und mischt noch ZFS als Datenspeicher
sowie Dtrace [27] als Analysetool hinzu. Die
Verbindung zur Wolke schaffen die Entwickler
über die Virtualisierung. Ein Rechner zeigt sich
dabei für einzelne Kunden mit verschiedenen
Gesichtern und gibt jedem das Gefühl, „allein
für sich“ zu sein.
Sowohl Smart OS als auch Zero VM betrachten
es dabei als zentrale Aufgabe, die virtuellen
Maschinen oder Instanzen abzusichern und voneinander abzuschotten. Ersteres greift dafür
auf die Zonentechnologie von Solaris zurück,
Letzteres benutzt Googles Native Client [28].
Zwar spielt Sicherheit auch eine große Rolle
in der Cloud, dennoch sehen diese Hypervisor mit Zusatzfunktion eher nach klassischer
Virtualisierung und damit Infrastruktur aus.

Listing 1: Ein Basis-OSv belegt
29 MByte Speicherplatz
01 $ du -sh osv-base.qemu
02 29M

osv-base.qemu

03 $ qemu-img info osv-base.qemu
04 image: osv-base.qemu
05 file format: qcow2
06 virtual size: 10G (10842275840 bytes)
07 disk size: 29M
08 cluster_size: 65536

Quelloffen und wolkenartig
Als Desktop-artige Systeme wollen Chromium
OS und Joli OS dem Anwender einen einfachen Zugang zum Internet ermöglichen, ohne
enorme Anforderungen an die Hardware zu
stellen. Joli OS wurzelt beispielsweise in der
Netbook-Variante von Ubuntu.
Für den sparsamen Umgang mit den limitierten
Hardware-Ressourcen gibt es generell verschiedene Strategien. Erstens lässt sich das
System selbst verschlanken, zweitens können
Admins die Programmausführung auslagern.
Der erste Fall trifft übrigens auch auf die im
Haupttext vorgestellten Systeme zu.
Der Anfang von Joli OS schien vielversprechend.
Version 1.0 erschien im Juli 2010, es folgten in
kurzen Abständen die 1.1 (Dezember 2010) und
die 1.2 (März 2011). Im November 2013 stellte

Cloud-Systeme

Sysadmin

Einfach genug

ten muss. Qua Design soll OSv nur eine
einzige Anwendung – streng genommen
einen Prozess – ausführen.
Auch die Laufzeitumgebung für Java-Anwendungen profitiert davon, dass OSv
Prozesse in den Kernelspace verlegt, da
die Java Virtual Machine (JVM) fast ein
Bestandteil des Kernels ist. Indem OSv
Teile der Speicherverwaltung direkt weiterreicht, muss die JVM keine Schnittstellen wie »mmap()« verwenden.
Damit aber noch nicht genug. OSv verzichtet nicht nur auf Spinlocks [20], die
Entwickler vermeiden Locks generell.
Wo dies nicht möglich ist, kommt eine
spezielle Mutex-Variante [21] zum Einsatz. Dieses Vorgehen weiten sie auch
auf den Netzwerkstack aus, für den
die OSv-Entwickler auf das Kanalkonzept von Van Jacobson [22] setzen.
Aus der Free-BSD-Ecke haben sie die
Datenträgerverwaltung übernommen,
daher überrascht es nicht, ZFS [23]
vorzufinden. Die Pseudodateisysteme
»/proc« und »/dev« sind zwar vorhanden,
aber nahezu leer.
Das Thema Sicherheit haben die OSvEntwickler komplett an das darunterliegende Hostsystem delegiert. Das Resultat
ist ein Betriebssystem, das lediglich 30
MByte groß ist (Listing 1). Zum Vergleich:
Schon allein ein „handelsüblicher“ Desktop-Linux-Kernel belegt in Binärform und
ohne Module auf der Festplatte locker 5
MByte. OSv ist ein 64-Bit-Betriebssystem
und in der x86-Welt zu Hause. Doch die
Entwickler arbeiten bereits am ARM-Support, der recht weit fortgeschritten ist.

www.linux-magazin.de

in bekannten öffentlichen Clouds wie der
Amazon Elastice Cloud (EC2) oder in
Googles Compute Engine (GCE).
Die radikal reduzierte Betriebssystemschicht von OSv soll wesentlich zwei
Aufgaben erfüllen: unter einem nahezu
beliebigen Hypervisor laufen und als
Plattform für die eigentliche Cloudapplikation dienen. Auch hier ist Minimalismus Programm: Die Laufzeitumgebung
für eine Posix-kompatible C++-Anwendung darf schlank sein, Analoges gilt für
Java oder Ruby. Weitere Aufgaben muss
das Betriebssystem nicht erledigen.
Die Entwickler sind jedoch noch einen
Schritt weitergegangen. Sie haben OSv
von Grund auf neu geschrieben, wobei
die Wahl, anders als beim traditionellen Linux, auf C++ als Programmiersprache fiel. Verschiedene andere OpenSource-Projekte standen dabei Pate für
den Programmcode des Cloudbetriebssystems, zu nennen sind hier Free BSD
[16], Open Solaris [17], Prex [18] und
Musl [19]. Für diese Bestandteile gelten
die jeweiligen Lizenzen des UrsprungQuelltextes, der Rest von OSv steht unter
der 3-Clause-BSD-Lizenz.

71

02/2015

Sysadmin
Cloud-Systeme
www.linux-magazin.de

72

muss dazu ebenfalls
im Objektcode vorliegen. Den Start unter
OSv leitet der Admin
dann ungefähr so ein:
»/tools/java.so -jar
app.jar«.
Für einige Anwendungen gibt es übrigens
vorgefertigte OSv-Instanzen. Dazu zählen
Tomcat [30], Redis
Abbildung 1: Die „Hello World“-Variante für OSv. Die auszuführende Anwen[31],
Memcached
dung liegt als ».so«-Datei vor.
[32] und Cassandra [33]. Auf JavaBibliotheken seines Systems, Abbildung 1
Freunde warten Instanzen mit den Openzeigt eine Variante des berühmten „Hello JDK-Versionen 7 und 8. Wer tiefer in die
World“-Beispiels für OSv [29].
Materie einsteigen möchte, sei auf die
Die Anwendung legt der Admin nun in Wiki-Seite [34] des Projekts verwiesen.
einem OSv-Image ab. Hier führt die Dokumentation allerdings etwas in die Irre,
denn in vielen Fällen gibt sie das Wurzelverzeichnis als Standardablage an. In den
Wie erwähnt ist »capstan« [35] das Veraktuellen Versionen von OSv ist es aber
waltungswerkzeug für OSv und steht
das Verzeichnis »/tools«. Anschließend gleichfalls unter der 3-Clause-BSD-Lizenz. Es ist dem aufmerksamen Leser
konfiguriert er das Image noch so, dass
womöglich schon in Abbildung 1 aufdie Anwendung es beim Start ausführt –
gefallen. Bereits die ersten Gehversuche
fertig. Das Resultat ist eine OSv-Instanz
zeigen eine gewisse Verwandtschaft mit
(Image plus Anwendung).
dem Docker-Werkzeug »docker« [36],
In der Praxis fällt es einem Admin jedoch
gar nicht so leicht, die beschriebenen
die beabsichtigt ist.
Schritte umzusetzen. Möchte er die An- Ein Teil des Erfolgs von »docker« besteht
wendung ablegen, scheitert er womög- darin, dass es Container und davon ablich bereits am fehlenden Support für die geleitete Instanzen komfortabel dirigiert.
richtige ZFS-Version. Alternative Ansätze Analoges wollen die Entwickler mit »capwie »scp« ändern das grundlegende Bild stan« für OSv erreichen. Die Installation
nicht, zudem widerspricht dies dem Anist denkbar einfach und legt ein kleines
spruch auf ein einfach zu benutzendes
Binary im »$HOME/bin«-Verzeichnis des
Anwenders ab. Die wichtigsten KommanWolken-Betriebssystem. Hier springt das
Werkzeug »capstan« in die Bresche –
dos listet Tabelle 1 auf.
dazu gleich mehr.
Doch noch immer braucht der Admin
zumindest drei Schritte, um eine OSv-InFür Java-Anwendungen geht der Admin
analog vor, die Java Virtual Machine stanz mit der gewünschten Anwendung

Docker-Style

anzulegen. Er lädt das Basis-Image herunter (»pull«), integriert die Applikation
(»build«) und startet die eigentliche Instanz (»run«).

Capstan-Style
Zum Glück gibt es einen deutlich einfacheren Weg. Das Werkzeug »capstan«
lässt sich bequem über die Datei »Capstanfile« steuern, Listing 2 zeigt den Inhalt und die Ausführung für das weiter
oben gezeigte „Hello World“-Beispiel. Als
Repository für die verschiedenen Images dient einfach die Github-Seite des
Projekts [37]. Das Kommando »capstan
pull Name« sucht nach den entsprechenden Daten unter »http://github.com/
Name«. Ein OSv-Image mit Shellzugriff
lädt der OSv-User mittels »capstan pull
cloudius/osv« herunter. Als lokales
Repository dient »$HOME/.capstan/«, die
Images liegen dort im Unterverzeichnis
»repository«. Fertige OSv-Instanzen findet der Admin unter »$HOME/.capstan/
instances/«.
Die in Yaml [38] geschriebenen Datei
benötigt lediglich drei Einträge. Welches
OSv-Image als Basis dient, legt der Parameter »base« fest. Die zu kopierenden
Dateien beschreibt »files«. Über »cmdline« bestimmt der Admin, welche Anwendung beim Booten der OSv-Instanz
startet. Im Beispiel von Listing 2 legt er
einfach »Capstanfile« und »hello.so« in
einem Verzeichnis ab und ruft »capstan
run« auf.
In dem einfachen Beispiel braucht der
Download des 30-MByte-Image die
meiste Zeit beim Instanzieren. Ein Beispiel dafür, wie der Cloudbetreiber einen
simplen Webserver aufsetzt, liefert [39].
Es zeigt, wie er die Webapplikation mit

Saftiges Linux
Ein aktuelles Linux bringt eine Unmenge Software und Funktionen, um sich für alle Einsatzgebiete und Möglichkeiten zu wappnen. Was
früher auf ein paar Disketten passte, fordert
heute Plattenplatz in GByte-Größe ein. So gesehen taugt der Krösus unter den Open-SourceBetriebssystemen eher nicht als idealer Kandidat für die Traumhochzeit.
Zum Glück lässt sich Linux auf den Anwendungszweck zuschneiden. Hier kommt Jeos (Just
enough operating system – ausgesprochen
wie Juice) ins Spiel. Das deutlich abgespeckte

Betriebssystem bringt nur das Allernotwendigste mit, wozu der Betriebssystemkern und
die wichtigsten Systembibliotheken gehören.
Meist kennt es auch ein Software-Repository,
damit der Admin im Betrieb weitere Anpassungen vornehmen kann. Eine geringere Sicherheit
auf Jeos-Ebene nimmt das Projekt in Kauf, den
Verlust sollen der Hypervisor beziehungsweise
die Cloudplattform ausgleichen.
Zu den Jeos-Distributionen und -Baukästen
zählen Suse Studio [40], Ubuntu Core [41],
Fedora Cloud [42] und Oracle Jeos [43].

Nicht selten bewerben die Linux-Distributoren
ihre abgespeckten Systeme mit einer erhöhten
Sicherheit. Das wirft die Frage auf, warum sie
nicht auch die normalen Varianten abspecken.
Hierbei punktet das Turnkey-Linux-Projekt
[44]. Es bietet vorgefertigte Installationen
zum Austesten von speziellen Applikationen
an, einer der typischen Anwendungsfälle für
die Wolke. Zum anderen dient als Basis der
über 100 Software-Appliances ein abgespecktes
Debian, das allerdings auf den Namen Turnkey
Core hört [45].

02/2015

Sysadmin
Cloud-Systeme
www.linux-magazin.de

Abbildung 2: Das OSv-Instanz-Dashboard erlaubt dem Admin per Browser einen tiefen Einblick in die Systemaktivitäten von OSv.

Hilfe der Datei »Capstanfile« kompiliert,
in den Tests des Linux-Magazins funktionierte dieser Weg allerdings nicht. Grob
vereinfach generiert der Administrator
die OSv-Instanz also in drei Schritten: Er
schreibt die Applikation einschließlich
des »Makefile«, er legt die Datei »Capstanfile« an und er ruft abschließend
»capstan run« auf.

Das Beste zum Schluss
Zum Abschluss seien noch zwei Schmankerln genannt. Erstens kann der Anwender über das via HTTP-Port 8000 zugängliche Dashboard [46] nützliche Statistiken über die OSv-Instanz abrufen.
Dort findet er Informationen über CPU-,

Speicher- und Festplattenauslastung (Abbildung 2). Auf Wunsch liest er die Daten zu einzelnen Threads aus oder nutzt
einen RESTful-Zugriff auf OSv-Interna.
Daneben setzt er auch Kommandos wie
»reboot« oder »dmesg« ab.
Das zweite Schmankerl ist die eingebaute
Kommandozeilen-Schnittstelle [47]. Gestandene Linux-Admins atmen hier üblicherweise auf, da einige der vertrauten
Befehle auftauchen (Listing 3).
Das muss man OSv lassen: Es ist schnell
und schlank und auf den Gastbetrieb in
der Wolke zugeschnitten. Die Verwaltung
mit »capstan« ist denkbar einfach. Als
größte Herausforderung wartet die Integration der eigenen Cloudanwendung
auf den Admin. Doch die weiter oben

erwähnten vorgefertigten Images erleichtern den Einstieg erheblich. 

Klein, aber fein – Cirros
Neben OSv ist Cirros [7] nahezu unscheinbar. Das drei Jahre alte Projekt,
dessen erste öffentliche Version 0.3.0
im Oktober 2011 erschien, liegt inzwischen in Version 0.3.3 vor. Der Quelltext
steht unter der GPLv2. Das kleine CloudListing 2: »Capstanfile«
01 $ cat Capstanfile
02 base: cloudius/osv-base
03
04 files:
05

/tools/hello.so: hello.so

06

Tabelle 1: Wichtige »capstan«-Kommandos

07 cmdline: /tools/hello.so
08

Kommando

Beschreibung

pull

Lädt ein OSv-Image vom Github-Repository

10 Building capstan-example...

rmi

Löscht ein OSv-Image im lokalen Repository

11 Uploading files...

run

Startet eine OSv-Instanz

12 1 / 1 [===...===] 100.00 % Created instance:

build

Generiert ein OSv-Image

images

Listet die lokalen OSv-Images auf

14 eth0: 192.168.122.15

search

Sucht nach OSv-Images im Github-Repository

15 Hallo Linux-Magazin!

instances

Listet lokale OSv-Instanzen auf

17 real

0m4.116s

stop

Stoppt eine OSv-Instanz

18 user

0m1.536s

delete

Löscht eine OSv-Instanz

19 sys

0m0.741s

09 $ time ~/bin/capstan run

capstan-example
13 OSv v0.16

16

73

02/2015

Sysadmin
74

www.linux-magazin.de

Cloud-Systeme

betriebssystem setzt sich aus zwei Bausteinen zusammen: einem Ubuntu-Kernel
und Buildroot [48].
Letzteres ist eigentlich dafür vorgesehen,
ein Linux-System für den EmbeddedBereich zu erzeugen, in dem Platz für
ein Luxus ist und ein möglichst schlankes Betriebssystem eine extrem wichtige
Rolle spielt. Diese Anforderung trifft aber
auch auf Cloudsysteme zu, die den Betriebssystem-Anteil möglichst klein halten möchten.
Der Einsatz eines Ubuntu-Kernels verwundert nicht, wenn man weiß, dass
Scott Moser hinter Cirros steckt, der
hauptberuflich bei Canonical als technischer Leiter im Serverbereich arbeitet
[49]. Aktuell gibt es Images für 32- und
64-Bit-Systeme der Intel/AMD-Welt. ARM
wird ebenfalls unterstützt, aber noch
nicht mit einer 64-Bit-Version.
Cirros ist etwas anders ausgerichtet als
OSv. Die Entwickler verstehen ihr Cloudbetriebssystem primär als Werkzeug für
Tests oder wollen damit Probleme untersuchen. Open Stack [50] beispielsweise
nennt Cirros in seiner Dokumentation
offiziell als Test-Image [51], Ähnliches
gilt für Eukalyptus [52].

Vorhang auf
Ein aktuelles Festplattenabbild mit vorinstalliertem Cirros braucht weniger als
15 MByte Speicherplatz. Die meiste Zeit
Listing 3: OSv-CLI-Kommandos
01 /# help
02 COMMAND DESCRIPTION
03 api

execute arbitrary OSv API operations as
defined by the schema

04 cat

concatenate files and print on the standard
output

05 cd

change the shell working directory

06 date

print the system date and time

07 df

report file system disk space usage

08 dmesg

print operating system boot log

09 echo

display a line of text

10 exit
11 free

verbringt der Bootprozess mit dem Initialisieren des Kernels. Zur Erinnerung: Dieser stammt unmodifiziert von Ubuntu,
aktuell von Version 12.04, demnächst
wohl von der 14.04. Das Cloudbetriebssystem ist letztlich ein verschlanktes
Linux und verhält sich damit analog zu
seinen großen Brüdern und Schwestern.
Qemu kann es einfach lokal starten (Abbildung 3) und testen.
Das Cloud-OS ist mit einer Reihe von
Helferlein ausgestattet, die allesamt mit
»cirros-« beginnen, Tabelle 2 listet sie
mit je einer kurzen Erklärung auf. Alle
Kommandos sind Shellskripte und erlauben so prinzipiell einen einfachen Blick
hinter die Kulissen. Allerdings sind sie
nicht sonderlich gut dokumentiert – weder im Code selbst noch auf der Webseite
des Projekts.
Als Initsystem dienen erst das traditionelle Sys-V-Init, zum Schluss Cirros-spe-

zifische Skripte. Die sind so angelegt,
dass sie mit dem Cloud-Init-Gerüst [53]
funktionieren. Die zugehörigen Konfigurationsdateien befinden sich unter »/etc/
cirros-init/«. Im Lieferumfang enthalten
sind Vorlagen für Amazons EC2, ein so
genanntes Konfigurationslaufwerk (»config-drive«) oder eine lokale Startmöglichkeit – also ohne Cloud [54].
Was auf den ersten Blick wie unnötiger
Aufwand aussieht, ist tatsächlich recht
nützlich. So testet der Anwender den
kompletten Ablauf, prüft, wie er eine
Cloudinstanz anlegt und hochfährt, und
betrachtet die Postinstall-Skripte.
Wie schon angedeutet, es warten unter
der Motorhaube von Cirros keine Überraschungen. Zur Datenablage dient das fast
schon altehrwürdige Ext 3. Dass Cirros
Busybox [55] für die meisten ausführbaren Programme und Dropbear [56]
als SSH-Daemon verwendet, ist eigent-

Tabelle 2: »cirros«-Kommandos

close shell and exit

Kommando

Beschreibung

display amount of free and used memory in

cirros-apply

Ruft eine Phase der Datenquelle auf

system
12 hello

Abbildung 3: Cirros ist eine kleines Linux, der Bootvorgang enthält keine Überraschungen.

cirros-ds

Sucht nach Cloud-Init-Datenquelle
Fragt nach Daten der Cloud-Init-Datenquelle
Arbeitet die Userdata-Datei ab

a command example

13 help

list console available commands and show help

cirros-query

14 ls

list directory contents

cirros-userdata

15 mkdir

make directories

cirros-dhcpc

Wrapper für DHCP-Client (»udhcpc«)

16 reboot

reboot an OSv instance

Aufruf eines Kommandos mit gewünschter Häufigkeit
Ausgabe wichtiger Statusinfos über Cirros

17 rm

remove files or directories

cirros-per

18 top

display OSv threads

cirros-status

02/2015

Glaubt man den Angaben der Entwickler, reichen die Anfänge von Mirage OS
bis ins Jahr 2009 zurück. An die breite
Öffentlichkeit trat das Projekt aber erst
mit Version 1.0, die im Dezember 2013 erschien. Analog zu OSv geht dieses Cloudbetriebssystem einen ganz neuen Weg.
Tatsächlich versteht sich Mirage OS gar

port gibt es keine Pläne, allenfalls Ideen
[61]. Mirage OS steht unter ISC-Lizenz,
organisatorisch ist das Cloud-OS als eines
der Inkubator-Projekte im Xen-Projekt gelistet. Natürlich zählte x86 zu den unterstützten Plattformen der ersten Stunde,
seit Version 2.0 vom Juli 2014 kommt
auch ARM zum Zug [62].

Kamele als Kernthema
Wer Mirage OS als System der Wahl für
die Cloud betrachtet, muss sich mit der
Programmiersprache Ocaml [63] befassen. Weil der Kernel viele Aufgaben eines
traditionellen Kerns nicht wahrnimmt,
sind C oder C++ als Programmiersprachen nicht unbedingt die erste Wahl.

Listing 4: Opam in Aktion
01 $ mirage configure --unix

13 === 2 to install ===

02 Mirage

Using scanned config file: config.ml

14 =-=- Synchronizing package archives -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=

03 Mirage

Processing: /home/user/mirage-skeleton/console/config.ml

04 Mirage

=> rm -rf /home/user/mirage-skeleton/console/_build/

-=-=-=-=-=
15 =-=- Installing packages =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=

config.*
05 Mirage

-=-=-=-=-=
=> cd /home/user/mirage-skeleton/console && ocamlbuild

-use-ocamlfind -tags annot,bin_annot -pkg mirage config.cmxs
06 console

16 Building mirage-unix.2.0.1:
17

make unix-build

18

make unix-install PREFIX=/home/user/.opam/4.01.0

Using configuration: /home/user/mirage-skeleton/console/

config.ml
07 console

1 job [Unikernel.Main]

08 console

Installing OPAM packages.

09 console

=> opam install --yes mirage-console mirage-unix

19 Installing mirage-unix.2.0.1.
20 Building mirage-console.2.0.0:
21

make

10 The following actions will be performed:

22

make install

11

- install

mirage-unix.2.0.1

23 Installing mirage-console.2.0.0.

12

- install

mirage-console.2.0.0

24 console

Generating: main.ml

Cloud-Systeme

Sysadmin 

Der Fremde – Mirage OS

nicht als Betriebssystem, sondern eher
als eine Art Bibliothek [59]. Nicht zufällig fällt auch das Wort „Lib OS“ (Library
Operating System) – eine Idee aus den
90er Jahren [60].
Die Grundidee ist noch radikaler als die
von OSv. Die Anwendung fungiert zugleich als der zu bootende Betriebssystemkern, quasi der komplette virtuelle
Server. Viele Aufgaben eines traditionellen Kernels fallen weg oder sind deutlich
reduziert, etwa die Verwaltung des Netzwerks oder des Hauptspeichers.
Mirage OS delegiert möglichst viele Aufgaben an die darunterliegende Schicht.
Im Normalfall ist dies ein Hypervisor,
aktuell nur Xen, es darf aber auch ein
traditionelles Linux sein. Für KVM-Sup-

www.linux-magazin.de

lich eine Konsequenz aus dem BuildrootUnterbau. Der gestandene Linux-Admin
sollte sich hier leicht zurechtfinden, es
ist eben „nur“ ein Linux. Die Entwickler
überlegen allerdings, einen neuen Untersatz einzusetzen, im Gespräch sind
Tiny-Core-Linux [57] und Yocto [58].

75

02/2015

Sysadmin

rierte Maschinencode den Ruf, schnell
und effizient zu sein. Für hartgesottene
C-Programmierer ist Ocaml hingegen
schon eine große Hürde beim Einstieg
in Mirage OS.
Ein wichtiges Werkzeug ist der zugehörige Paketmanager Opam [65]. Er ermöglicht es, die notwendigen Bibliotheken beim Generieren des Unikernels zu
installieren (Listing 4). Sind Ocaml und

Infos
[1] Chromium OS: [http://www.chromium.
org/chromium-os/]
[2] Joli OS:
[http://www.jolicloud.com/jolios/]
[3] Smart OS: [http://smartos.org]
[4] Zero VM: [http://www.zerovm.org]
[5] OSv: [http://osv.io]
[6] Mirage OS: [http://www.openmirage.org]
[7] Cirros: [http://launchpad.net/cirros/]
[8] Core OS: [http://coreos.com]
[9] Martin Loschwitz, „Kerniges Früchtchen“:
Linux-Magazin 10/14, S. 100
[10] Jeos: [http://en.wikipedia.org/wiki/
Just_enough_operating_system]
[11] Cloudius Systems:
[http://www.cloudius-systems.com]
[12] KVM: [http://www.linux-kvm.org]
[13] Xen: [http://www.xenproject.org]
[14] VMware: [http://www.vmware.com]
[15] Virtualbox: [http://www.virtualbox.org]
[16] Free BSD: [http://www.freebsd.org]
[17] Open Solaris: [http://de.wikipedia.org/
wiki/OpenSolaris]

[18] Prex: [http://prex.sourceforge.net]
[19] Musl: [http://www.musl-libc.org]
[20] Mehr zu Spinlocks:
[http://en.wikipedia.org/wiki/Spinlock]
[21] Mutual Exclusion: [http://en.wikipedia.
org/wiki/Mutual_exclusion]
[22] Van Jacobson:
[http://lwn.net/Articles/169961/]
[23] ZFS: [http://wiki.freebsd.org/ZFS]
[24] Linux-ABI-Kompatibilität:
[http://github.com/cloudius-systems/osv/
wiki/OSv-Linux-ABI-Compatibility]
[25] ELF: [http://de.wikipedia.org/wiki/
Executable_and_Linking_Format]
[26] Joli OS eingestellt: [http://www.
omgubuntu.co.uk/2013/11/jolicloud-desktop-to-be-discontinued-december-2013]
[27] Dtrace: [http://dtrace.org]
[28] Native Client: [https://developer.chrome.
com/native-client]
[29] Capstan-Beispiel: [http://github.com/
cloudius-systems/capstan-example]
[30] Tomcat: [http://tomcat.apache.org]

[31] Redis: [http://redis.io]
[32] Memcached: [http://memcached.org]
[33] Cassandra: [http://cassandra.apache.org]
[34] Java und OSv: [http://github.com/
cloudius-systems/osv/wiki/
Running-compiled-code-on-OSv]
[35] Capstan: [http://osv.io/capstan/]
[36] Docker: [http://www.docker.com]
[37] Capstan auf Github: [https://github.com/
cloudius-systems/capstan]
[38] Yaml: [http://www.yaml.org]
[39] Webserver auf OSv: [http://github.com/
dmarti/http-server]
[40] Suse Studio: [http://www.suse.com/
products/susestudio/features/jeos.html]
[41] Ubuntu Core: [http://blog.dustinkirkland.
com/2014/08/re-introducing-jeos-justenough-os-aka.html]
[42] Fedora Cloud: [https://getfedora.org/
de_CH/cloud/download/]
[43] Oracle Jeos: [http://www.oracle.com/
technetwork/server-storage/vm/
downloads/vm-jeos-083859.html]

76

www.linux-magazin.de

Cloud-Systeme

Für die als singuläre Applikation funktionierenden Kerne – auch Unikernel genannt – gibt es eine Tendenz, Programmiersprachen zu verwenden, die nicht so
nah an der Hardware sind. Das bringt einige Vorteile. Im Falle von Ocaml nennen
Entwickler die automatische Speicherverwaltung, die Typenprüfung während
des Kompilierens und den modularen
Aufbau [64]. Zudem genießt der gene-

Opam auf dem lokalen Entwicklungssystem installiert, kann es direkt losgehen.
Anderenfalls sei auf die Installationsanleitung [66] verwiesen. Natürlich fehlt
auch das obligatorische „Hello World“Beispiel [67] nicht. Es ist auch deshalb
lehrreich, weil es nochmals wesentliche
Aspekte von Mirage OS erklärt.
Zunächst erläutert die Anleitung, wie
die Anwendung eine Konsole für Ausgaben nutzt. Da die Anwendung zugleich
der Kernel ist, muss sie auch Geräte für
den Eigenbedarf verwalten. Folgerichtig
beschäftigt sich die zweite Lektion mit
dem Zugriff auf einfache Datenträger.
Im Cloudumfeld sind das die bekannten Blockgeräte. Die Kür ist dann der
Netzwerkstack inklusive eines einfachen
Webservers (Abbildung 4).
Mirage OS erlaubt es dem Anwender,
das Binary seiner Anwendung in zwei
verschiedenen Formaten zu generieren.
Mit »mirage configure --unix« ist das
Kompilat eine Datei, die er einfach in
einer traditionellen Linux-Umgebung als
normalen Prozess ausführt (Listing 5).
Analog leitet »mirage configure --xen«
in die Wege, dass die Anwendung sich
als Xen-Kernel booten lässt. Im zweiten
Fall findet der Benutzer eine Konfigurationsdatei, die sich mit den bekannten

Abbildung 4: Ein einfacher Webserver als Unikernel bei Mirage OS.

02/2015

Sysadmin
www.linux-magazin.de

Cloud-Systeme

»xl«-Kommandos weiterverarbeiten lässt,
die zum Kommandozeilen-Toolstack gehören, der auf der Libxenlight basiert.
Auch wer Libvirt [68] einsetzt, steht
nicht im Regen. Die entsprechende Datei
im XML-Format erzeugt die Mirage-OSMaschinerie ebenfalls.
Die Beispiele der Projektseite sind schick
und funktionieren gut. Eine existierende
Anwendung auf Mirage OS zu bringen,
erfordert auf jeden Fall eine neue Implementierung. Neben dem Kodieren der
Applikation muss der Entwickler sich
auch um den Zugriff auf Blockgeräte und
das Netzwerk kümmern. Dies – kombiniert mit einer eventuell neuen Programmiersprache – ist kein geringer Preis.

Neue Wege

Abbildung 5: Fedoras Atomic Cloud Image lässt sich unter anderem in Amazons EC2 einsetzen.

Kurz vor Redaktionsschluss erschienen
zwei Versionen einer neuen Art von
Cloudbetriebssystemen, die ContainerTechnologien wie Docker [36] unterstützen wollen. Das eingesetzte Betriebssystem dient nicht mehr direkt als Fundament für Anwendungen, sondern hostet
vielmehr eine Docker-Instanz.
Es lassen sich gewisse Parallelen zu OSv
oder Mirage OS erkennen. Die DockerSchicht entspricht dabei ungefähr dem

neuen schlanken Kernel beziehungsweise
dem Lib OS oder auch Unikernel. Der
Containerinhalt wäre dann die Komponente, die schnell starten und möglichst
schlank sein soll.

Wer mit Container-Technologie arbeitet,
hat wahrscheinlich von Fedoras Projekt
Atomic [69] gehört oder gelesen. Das

möchte Docker und das ganze Drumherum auf den Einsatz im harten Produktionsalltag vorbereiten. Ein Aspekt ist dabei das Setup des Hosts, bei dem es sich
um eine abgespeckte Version von Fedora,
Centos oder RHEL mit Optimierungen für
Docker handelt.
Mit Version 21 führte das Fedora-Projekt
Produkttypen für die Distribution ein,
wie man sie von Red Hat Enterprise
Linux kennt (siehe Fedora-Artikel in

[44] Turnkey-Linux:
[http://www.turnkeylinux.org]
[45] Turnkey-Core:
[http://www.turnkeylinux.org/core]
[46] OSv-Dashboard:
[http://github.com/cloudius-systems/osv/
wiki/OSv-Dashboard]
[47] Kommandozeile für OSv:
[http://github.com/cloudius-systems/osv/
wiki/Command-Line-Interface-(CLI)]
[48] Buildroot: [http://buildroot.uclibc.org]
[49] Scott Moser: [http://launchpad.net/
~smoser/+related-projects]
[50] Open Stack: [http://www.openstack.org]
[51] Cirros als Open-Stack-Testimage:
[http://docs.openstack.org/image-guide/
content/ch_obtaining_images.html]
[52] Cirros für Eucalyptus:
[http://www.eucalyptus.com/blog/2014/
02/02/cirros-perfect-machine-imageeucalyptus-cloud-debugging]
[53] Cloud-Init:
[http://launchpad.net/cloud-init]

[54] Cirros starten:
[http://cloudinit.readthedocs.org/en/
latest/topics/datasources.html]
[55] Busybox: [http://www.busybox.net]
[56] Dropbear: [http://matt.ucc.asn.au/
dropbear/dropbear.html]
[57] Tiny-Core-Linux:
[http://wiki.tinycorelinux.net]
[58] Yocto-Projekt:
[http://www.yoctoproject.org]
[59] Mirage-Hintergrund:
[http://www.openmirage.org/wiki/
technical-background]
[60] Lib-OS-Konzept: Engler, D. R., Kaashoek,
M. F., O’Toole, Jr., J. 1995, „Exokernel:
An operating system architecture for
application-level resource management“:
Proceedings of 15th ACM Symposium on
Operating Systems Principles (SOSP),
251-266
[61] KVM-Status: [http://lists.xenproject.org/
archives/html/mirageos-devel/2014-08/
msg00102.html]

[62] ARM-Support von Mirage OS: [http://
lists.xenproject.org/archives/html/
mirageos-devel/2014-07/msg00178.html]
[63] Ocaml: [http://ocaml.org]
[64] Vorteile von Ocaml: [http://de.wikipedia.
org/wiki/Objective_CAML]
[65] Opam: [http://opam.ocaml.org]
[66] Installation von Mirage OS:
[http://openmirage.org/wiki/install]
[67] „Hello World“-Programm: [http://www.
openmirage.org/wiki/hello-world]
[68] Libvirt: [http://libvirt.org]
[69] Project Atomic: [http://projectatomic.io]
[70] OS-Tree-Projekt: [https://wiki.gnome.org/
action/show/Projects/OSTree?
action=show&redirect=OSTree]
[71] Snappy: [http://www.ubuntu.com/cloud/
tools/snappy]
[72] Click: [https://launchpad.net/click]
[73] Machine: [http://blog.docker.com
/2014/12/announcing-docker-machineswarm-and-compose-for-orchestratingdistributed-apps/] 

Atomic und Snappy

77

02/2015

Sysadmin
Cloud-Systeme
www.linux-magazin.de

78

Abbildung 6: Das Anfang Dezember 2014 veröffentlichte Snappy Ubuntu Core liegt bislang nur in einer Betaversion vor. Die läuft allerdings bereits in Microsofts Cloudumgebung Azure.

diesem Magazin). Eine der Produktvarianten heißt Cloud [42]. In ihr findet
der Admin neben einem verschlankten
Standard-Fedora auch eine Atomic-Implementierung. Die setzt auf atomare Updates und benutzt dazu Mechanismen
aus Gnomes OS-Tree-Projekt [70].
Beide Images laufen direkt bei AWS
(Abbildung 5). Auf der Webseite gibt es
sogar einen Mechanismus, den AtomicHost direkt in EC2 zu instanzieren, ohne
Einsatz der AWS-Console.
Der zweite Mitspieler in dieser CloudOS-Kategorie ist Canonical mit Snappy
Ubuntu Core [71]. Die jüngst veröffentlichte Betaversion verwendet nicht mehr
Debians Paketsystem für Updates, sondern setzt das so genannte Snappy-System ein, das auf dem Paketsystem Click
[72] aufbaut, Yaml-Syntax und App-Armor verwendet und Software-Updates als
Diffs ausliefert.
Generell haben die Entwickler kräftig
am Betriebssystem herumgeschraubt.
Der Anwender findet nun drei Schichten
vor. Ganz unten werkelt noch immer das
altbekannte Linux, allerdings in einer auf
das Allernotwendigste abgespeckten Variante. Was eine bestimmte Anwendung
als Unterbau benötigt, das ist in so genannten Frameworks zusammengefasst,

welche die mittlere Schicht ausmachen.
Die Anwendung selbst kommt dann oben
drauf. Der Admin verwaltet jede der drei
Schichten separat.
Das erste verfügbare Framework für
Ubuntu Core ist Docker, für das sich
Snappy laut Erläuterungen der Projektwebseite insbesondere eigne. Zum gegenwärtigen Zeitpunkt lässt sich Snappy
Ubuntu Core auch einfach in Microsofts
Azure starten (Abbildung 6).
Nicht zuletzt gibt es Parallelaktivitäten
des Docker-Projekts selber. Der CTO Solomon Hykes präsentierte im Rahmen der
Dockercon Europe 2014 in Amsterdam
Machine [73]. Dieses frisch geschlüpfte
Projekt erstellt einen Host, der lokal aber
auch in der Cloud laufen kann. Microsoft
Azure und Digital Ocean zählen zu den
unterstützten Anbietern.

Krönender Abschluss
Die drei zuerst vorgestellten Kandidaten
vertreten unterschiedliche Ansätze, um
Anwendungen flink und schnell in der
Cloud zu betreiben. Mirage OS bricht
mit den meisten Traditionen. Die Anwendung ist der Betriebssystemkern und die
Entwicklung erfolgt in Ocaml. Bei OSv
läuft alles im Kernelspace, hier findet

der Admin aber eine Umgebung im ELFFormat vor.
Beide Systeme sehen nur eine Anwendung pro virtueller Instanz vor. Sie verfolgen in verschiedenen Bereichen neue
Konzepte, um die Performance zu verbessern und das traditionelle Betriebssystem auf das Nötigste zu reduzieren.
Der Aufwand, um eine Cloudanwendung
neu zu entwickeln, ist bei Mirage OS aber
deutlich höher als bei OSv.
Cirros versucht hingegen, eine Brücke
zwischen der alten und der neuen Welt
zu schlagen. Es ist ein klassisches Linux,
wenn auch ein minimalistisches, was es
dem Admin in vielen Dingen einfacher
macht. Als Mini-Linux lässt es die großen
Brüder und Schwestern in Sachen Bootzeit und Betriebssystem-Overhead locker
hinter sich.
Alle drei vorgestellten Systeme haben
ihre Vor- und Nachteile. Am revolutionärsten dürfte Mirage OS sein. Die fehlende Unterstützung für KVM ist jedoch
ein schweres Erbe. OSv scheint ein guter
Mittelweg zwischen Heute und Morgen
zu sein. Erlaubte es das Ausführen normaler Linux-Binaries, könnte das für zusätzlichen Aufwind sorgen. Cirros spielt
seine Stärken bei eher traditionellen Anwendungen aus.
Für die Zukunft könnte sich der noch
junge Docker-Ansatz als recht interessant erweisen. Eigentlich zählen aber das
darunterliegende Linux und Docker eher
zur Infrastruktur, analog zum Hypervisor.
Das schnelle Aufsetzen von Anwendungen beginnt erst mit dem Initiieren der
Container-Instanzen.
Der Ansatz hilft dem Container-Projekt
aber, indem er es vereinfacht, Hosts anzulegen, was den Start optimiert. Der
Admin muss sich jedoch Gedanken darüber machen, wie er die einzelnen Komponenten von Atomic-Cloud oder Ubuntu
Core zuordnet. (kki)
Q

Listing 5: Unikernel bauen
01 $ mirage configure --unix
02 [...]
03 $ make depend
04 [...]
01 $ make
02 ocamlbuild -classic-display -use-ocamlfind -pkgs lwt.syntax,

-cflag -g -lflags -g,-linkpkg main.native
03 [...]
04 $ ln -nfs _build/main.native mir-console
05 $ file _build/main.native
06 _build/main.native: ELF 64-bit LSB executable, x86-64, version 1

mirage-console.unix,mirage-types.lwt -tags "syntax(camlp4o),annot,bin_

(SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.32,

annot,strict_sequence,principal"

BuildID[sha1]=734e3fc7a56cd83bc5ac13d124e4a994ce39084f, not stripped

02/2015

Sysadmin

Fast beliebig skalierbarer Mailspeicher mit Dovecot und Amazons S3

Indem Admins Dovecot mit einem Objektspeicher nach S3-Standard an den Start bringen, umgehen sie die
typischen Skalierbarkeitsprobleme bei Mailservern. Mit einem – allerdings kommerziellen – Dovecot-Plugin von
den Entwicklern des Mailservers selbst gelingt das ohne große Probleme. Martin Loschwitz

© Nongnuch Leelaphasuk, 123RF

80

www.linux-magazin.de

Dovecot und S3

Platz? Da!

Admins von Mailservern sind ein leidgeprüftes Volk. Einerseits produzieren
wenige andere Dienste so viele Missbrauchsbeschwerden, wie es der MailBetrieb üblicherweise tut – falsche Blacklistings sind ein Beispiel. Andererseits
merkt man der E-Mail mittlerweile auch
an, dass sie ein Produkt aus einer anderen Zeit ist, das mit der schnelllebigen IT
der Gegenwart seine Schwierigkeiten hat.
Die Anforderungen, die Nutzer an den
Empfang und den Versand von E-Mails
stellen, sind in den letzten Jahren stetig
gewachsen.
War es zum Beispiel vor einigen Jahren durchaus noch üblich, Anhänge für
E-Mails nur bis zu einer bestimmten, sehr
niedrigen Größe zuzulassen, ist genau
das heute verpönt: Nutzer erwarten, dass
sie ihre 20-MByte-Präsentation für Powerpoint per E-Mail verschicken können und
diese beim Gegenüber auch ankommt.
Obendrein wächst die Zahl der E-MailNutzer noch immer kontinuierlich und

die Menge an Daten, die alle Nutzer eines
Anbieters zusammen speichern, wächst
proportional zur Nutzeranzahl.
Das ist zwar nicht E-Mail-spezifisch,
denn auch andere Internetdienste erleben den Effekt des stetigen Wachstums
der zu bewältigenden Datenmengen. Bei
E-Mail-Setups ist es aber vergleichsweise
komplex, dieses Problem zu umgehen.
Das liegt vorrangig an der Architektur,
die dem Prinzip „E-Mail“ innewohnt.

Architektonisches
Normale Setups folgen meist dem immer
gleichen Schema: Auf der einen Seite sorgen SMTP-Daemons dafür, dass Kunden
Mails versenden können und eingehende
Nachrichten bei den Empfängern landen.
Den größeren Teil der Arbeit erledigen auf
der anderen Seite allerdings die Dienste,
die den Kunden ihre E-Mails ausliefern.
Zwar gibt es noch immer Provider, die
nur auf POP3 setzen oder IMAP nur ge-

gen Bezahlung anbieten. Im Großen und
Ganzen hat sich das IMAP-Protokoll allerdings durchgesetzt.
Für die Betreiber von E-Mail-Diensten bedeutet das zusätzliche Sorgen: Der Kunde
erwartet nämlich völlig zu Recht, seine
E-Mails jederzeit vorzufinden – auf den
Servern des Anbieters. Meist laden diese
Kunden erst gar keine lokalen Kopien
der Mails mehr herunter und verlassen
sich auf ihren Anbieter. Der muss dann
zusehen, wie er mit der Last und dem
Speicherplatzbedarf eines solchen Setups
umgeht. Selbst wenn jeder Anwender nur
eine kleine Mailbox hat, ist der Bedarf an
Speicherplatz bereits beachtlich, wenn
viele Nutzer da sind.
Früher oder später werden Admins also
in die Situation geraten, ihre Infrastruktur
an gestiegene Nutzerzahlen anzupassen,
also auszuskalieren. Load-Probleme bei
den Diensten lassen sich erfahrungsgemäß über multiple MX-Einträge (auf
der SMTP-Seite) und IMAP- oder POP3Daemons per Load Balancer verhältnismäßig einfach in den Griff kriegen. Das
Storage-Problem ist kniffliger.

Das Storage-Problem
Wenn E-Mail-Admins ihre Server mit
Speicherplatz ausstatten wollten, taten
sie das bis jetzt hauptsächlich über zentrale Storage-Systeme. SAN-Modelle der
großen Hersteller stellten die klassischen
Kandidaten. Doch sind die Dinger teuer
und skalieren höchstens in die Höhe. Zur
Erinnerung: Skalierbarkeit in die Höhe
meint, vorhandene Hardware mit mehr
Power auszustatten. Dem gegenüber
steht das Skalieren in die Breite, bei dem
vorhandenen Maschinen einfach noch
mehr Maschinen zur Seite gestellt wer-

02/2015

Abbildung 1: Nur gegen Bares gibt es bei Dovecot die Lizenz für das S3-Plugin. Die Kosten lassen sich aber
meist durch günstige Hardware abfedern.

den. Die Last verteilt sich dann auf die
Geräte, die zur Installation gehören.

Sharding
Klassische Speichersysteme sind möglicherweise durch den Einbau von neuen
Festplatten zu erweitern, doch irgendwann ist das Ende der Fahnenstange erreicht und zusätzlicher Speicherplatzbedarf lässt sich nur durch die Anschaffung
mehrerer Speichersysteme in den Griff
kriegen. Genau das war über viele Jahre
der übliche Ansatz: Nutzer bekamen verschiedene Storage-Systeme zugeordnet
(Sharding).
Das bringt eine Latte von Nachteilen:
Erstens sind SAN-Storages empfindlich
teurer als normale Hardware von der
Stange, zweitens machen viele StorageInseln zentralisierte Administration eher
schwer. Admins bissen aus Mangel an
Alternativen trotzdem in den sauren Apfel, denn im Hinblick auf das Skalieren in
die Breite schien der Storage-Markt sehr
lange im Dornröschenschlaf.

Objektspeicher zur Hilfe
Das änderte sich schlagartig mit dem Aufkommen von Object Stores. Den Namen
haben Lösungen dieser Art erhalten, weil
sie intern alle Daten auf die gleiche Weise

behandeln – wie binäre Objekte nämlich.
Der Clou dabei ist, dass sich binäre Objekte nach Belieben aufteilen und wieder
zusammensetzen lassen, solange das in
der gleichen Reihenfolge passiert.
Durch diesen Kniff bieten Objektspeicher
echtes Skalieren in die Breite. Denn der
Objektspeicher selbst muss „nur“ noch
dafür sorgen, dass das Aufteilen in die
binären Objekte ordnungsgemäß stattfindet und dass sich die Objekte auf die
vorhandenen Festplatten ordentlich verteilen. Kommen mehr Festplatten zur Installation dazu, nutzt der Objektspeicher
diese automatisch und erweitert so die
Grenzen der Skalierbarkeit in theoretische Bereiche.
Die vorhandenen Cloud-Computing-Lösungen haben eine ganze Welle verschiedener Objektspeicher ins Rampenlicht gespült. Red Hat hat Ceph ([1], Linux-Magazin-Artikel unter [2] und [3]) gekauft
([4], [5]) und mit seinem Storage Server
[6] eine eigene Lösung für das Speichern
von Objekten im Angebot. Open Stack
kommt mit Swift daher, das ebenfalls ein
Objektspeicher im klassischen Sinne ist.
Und dann sind da noch die Dienste, die
selbst einen Objektspeicher als Dienst
für Nutzer zur Verfügung stellen, etwa
Amazon S3 oder Dropbox.
Mit allen Diensten ist es jedenfalls möglich, skalierbare Storage-Systeme aufzu-

Sirainen bietet das Dovecot-S3-Plugin
bereits seit einer Weile an. Wichtig im
Vergleich zur normalen Dovecot-Version
ist, dass das Plugin lediglich mit der
Enterprise-Version von Dovecot läuft und
Admins eine Lizenz benötigen, um es
zu verwenden (Abbildung 1). Die Lizenz
lässt Sirainen sich mit rund 5000 Euro pro
Jahr für 10 000 Mailboxen vergüten. Das
ist zugegebenermaßen kein Pappenstiel;
an und für sich ist die Zahl aber auch
wenig aussagekräftig.
Zwar kostet Dovecot in einem solchen
Setup mehr als die freie Version; der Einsatz mit einem Objektspeicher im Rücken
wird für das betreibende Unternehmen
aber in vielen Fällen erhebliche Vergünstigungen beim Thema Hardware mit sich
bringen, weil SAN-Storages nicht mehr
nötig sind und Hardware von der Stange
genügt. Überlegungen dieser Art sollten
Firmen jedenfalls anstellen, wenn sie
über den Dovecot-Einsatz mit S3-Plugin
nachdenken.
Wie funktioniert das S3-Plugin für Dovecot im Detail? Timo Sirainen erklärt das
in der Dokumentation zum Plugin selbst
und ausführlich. Grundsätzlich gilt: Wer
das S3-Backend von Dovecot nutzen
möchte, benötigt Zugriff auf einen Objektspeicher nach Amazon-S3-Standard.
An solchen Accounts hängen zumeist
Listing 1: Ein Dovecot-Plugin
01 plugin {
02 # Use 100 GB cache for mails in /var/lib/dovecot/
cache. The cache directory is the same for all users.
03 obox_fs = fscache 100G:/var/lib/dovecot/
cache:s3:https://Accesskey:Secret@Bucket-Name.
s3.amazonaws.com/
04 }

Dovecot und S3

Sysadmin

Dovecot mit S3

www.linux-magazin.de

bauen. Phänomenal wäre es für die
Admins von E-Mail-Plattformen, wenn
sich eine solche Speicherlösung mit der
beschriebenen E-Mail-Architektur in Einklang bringen ließe. Schließlich spricht
nichts dagegen, eine E-Mail genauso zu
behandeln wie ein binäres Objekt. Das
dachte sich wohl auch Timo Sirainen,
der Autor von Dovecot, und zog die
Konsequenz: Das S3-Plugin für Dovecot
verbindet den IMAP-Daemon mit einem
S3-kompatiblen Speicher und nutzt die
Object-Storage-Vorteile damit ideal aus.

81

02/2015

Sysadmin
Dovecot und S3
www.linux-magazin.de

82

Für das Amazon-S3Plugin genügt es, einen zusätzlichen Absatz einzutragen, der
die Plugin-Konfiguration übernimmt. Das
Beispiel in Listing 1 ist
direkt der DovecotDokumentation entnommen (siehe Abbildung 2).
Dovecot schaltet S3
in diesem Fall noch
einen lokalen Cache
mit insgesamt 100
GByte Platz vor, um
den lokalen Zugriff
auf häufig benötigte
Objekte so schnell wie
möglich abzuwickeln.
Klar ist damit, dass es
nicht sehr schwierig
ist, Dovecot an ein S3
anzudocken, falls die
benötigte DovecotLizenz für das Plugin
vorliegt.
Wer seine Daten lieber
Abbildung 2: Dovecot bietet auf der eigenen Website ein PDF-File an, das
in Microsofts Azuresowohl die Einrichtung des Enterprise-Repo als auch die des S3-Plugins
Cloud ablegen will,
beschreibt.
kann das ebenso tun,
auch für Azure steht
die Zugangsdaten in Form zweier Werte:
ein Plugin zur Verfügung. Obendrein gibt
es Dropbox-Support, auch Dropbox kann
Erstens fungiert der Access Key als eine
also als Backend-Speicher für Dovecot
Art Nutzername, zweitens ist der Secret
zum Einsatz kommen.
Key das Passwort. Wer sich bei Amazon
einen Account anlegt, erhält beide Infor- Gerade dieser Umstand führt allerdings
zu einer Diskussion, die viel mehr eine
mationen automatisch.
rechtliche als eine technische ist: Wollen
Für die Ablage von Mails per Dovecot in
Unternehmen ihre E-Mails per Dovecot
S3 ist es zudem nötig, ein eigenes Bucket
wirklich bei Amazon, Microsoft oder
in S3 anzulegen. Dass nicht jeder Nutzer
Dropbox lagern? Gerade vor dem Hinein eigenes Bucket erhält, mag im ersten
Augenblick Bauchschmerzen im Hinblick
tergrund der Snowden-Enthüllungen ist
auf die Sicherheit verursachen – doch
Skepsis verständlich.
das ist eine Täuschung. Bei einem normalen Mailserver hat eben auch nicht
jeder Nutzer sein eigenes Dateisystem,
Das bedeutet aber nicht, dass Admins auf
die Verantwortung für die Durchsetzung
den Komfort der S3-Speicher in Dovecot
der Zugriffsrechte liegt in beiden Fällen
ganz verzichten müssten. Denn das S3bei Dovecot als Mailserver.
Protokoll ist öffentlich dokumentiert, auf
FLOSS-Basis existieren gleich mehrere
Projekte, die einen S3-Speicher selbst
Dann folgt die Konfiguration von Dovecot anbieten. Darunter der Shootingstar des
selbst: Wer das Programm bereits für
Storage-Umfelds: Ceph.
IMAP oder IMAPS nutzt, kennt die AbIn den vergangenen Monaten hat Ceph
satz-ähnliche Struktur der Config-Files. gerade auch durch den Verkauf an Red

Ceph-Grundlagen

Dovecot-Konfiguration

Hat viel Publicity erhalten; den meisten
Admins ist Ceph daher ein vertrauter Begriff. Zusammengefasst lässt sich Ceph
als Objektspeicher mit diversen Frontends betiteln. Die Eigenschaft, mehrere
Frontends zu bieten, ist dabei durchaus
ein Unterschied zu anderen Objektspeichern wie Open Stack Swift. Ceph ist
seitens der Herstellerfirma Inktank als
universeller Storage für beinahe alles ausgelegt, was in einem modernen Rechenzentrum anfällt.
Ein Ceph-Cluster besteht idealerweise
aus mindestens drei Maschinen. Auf
denen laufen dann verschiedene CephKomponenten, mindestens ein Monitoring-Server pro Host (im Fachjargon
MON) sowie ein Speicherdaemon (OSD,
Object Storage Daemon) für jede vorhandene Festplatte.
Die Monitoring-Server sind die Wachposten innerhalb der Speicherarchitektur:
Sie überwachen mittels Paxos-Algorithmus das Quorum, um Split Brains zu
vermeiden. Grundsätzlich gilt hier, dass
eine Clusterpartition nur dann als „quorat“ (also „mit Quorum“) gilt, wenn sie
mindestens 50 Prozent aller MONs plus
einen ganzen MON enthält. Bei einem
Drei-Knoten-Cluster ist folglich eine Clusterpartition dann quorat, wenn sie zwei
MONs sieht – die Partition, die nur einen
MON sieht, würde Ceph automatisch deaktivieren.

MONs
Obendrein spielen die MONs für den
Ceph-Cluster das Telefonbuch: Clients
reden eigentlich direkt mit den Festplatten im Cluster, also den OSDs. Wollen die
Clients jedoch mit den OSDs reden, müssen sie wissen, wie sie jene erreichen. Die
MONs führen dynamische Listen über
die vorhandenen OSDs sowie die vorhandenen MONs (OSD-Map und MONMap) und liefern beide Karten aus, wenn
Clients die Information erbitten. Auf der
Grundlage des Crush-Algorithmus ist es
den Clients anschließend möglich, die
korrekte Position binärer Objekte selbst
auszurechnen. Ceph kennt insofern kein
zentrales Verzeichnis, in dem für jedes
einzelne binäre Objekt die Zielfestplatten
vermerkt sind.
Als großer Vorteil von Ceph erweist sich
außerdem die inhärente Parallelisie-

02/2015

Object Gateway erweitern.

rung, die nahezu allen Ceph-Diensten
innewohnt. Ein einzelner Client, der eine
16 MByte große Datei in Ceph ablegen
möchte, teilt diese üblicherweise in vier
Blöcke zu 4 MByte auf. Dann lädt er alle
vier Dateien gleichzeitig auf vier OSDs
im Cluster hoch, sodass er die kombinierte Schreibgeschwindigkeit von vier
Festplatten erhält. Je mehr Spindeln sich
in einem Cluster befinden, desto mehr
Prozesse kann der Ceph-Cluster parallel
abhandeln.
Für den Einsatz im S3-Beispiel ist das
eine gute Voraussetzung: Selbst Mailsysteme, die erhöhter Last ausgesetzt sind,
können im Hintergrund problemlos viele
Mails zeitgleich in Ceph ablegen. Einzig bei der sequenziellen Schreiblatenz
schneidet Ceph meist deutlich schlechter
ab als konventionelle Speicherlösungen;
genau dieser Fall ist für das Dovecot-S3Beispiel allerdings belanglos.

Writes auf dieses Blockdevice wandern
im Hintergrund direkt zu Ceph.
Ceph-FS ist ein Posix-kompatibles Dateisystem, das jedoch Inktanks ewiges Sorgenkind ist und seit Jahren konsequent
nicht fertig wird. Für das S3-Beispiel aus
den Abbildungen 3 bis 5 wirklich interessant ist dagegen das Ceph Object
Gateway. Das vormals als Rados Gateway bezeichnete Konstrukt basiert auf
der Librados, die direkten und nativen
Zugriff auf Ceph-Objekte ermöglicht. Auf
der anderen Seite exponiert das Rados
Gateway RESTful-APIs, die wahlweise
der Syntax von Amazon S3 oder Open
Stack Swift folgen.

Design-Überlegungen:
S3-Load-Balancing
Vom nackten Blech zum fertigen CephCluster mit S3-Frontend ist der Weg übrigens nicht so steinig, wie es auf den
ersten Blick aussieht. Inktank [4] hat in
Form von »ceph-deploy« ein mächtiges
Werkzeug im Köcher, das Ceph in wenigen Minuten auf Systeme mit gängigen
Distributionen bringt. Wer erst mal in
drei virtuellen Maschinen testen möchte,
kann das natürlich ebenfalls tun.
Auch in die üblichen Automatisierungswerkzeuge wie Puppet oder Chef ist
Ceph mittlerweile integriert – der Ceph-

Ceph-Frontends: RBD, CephFS, Ceph Object Gateway
Der schönste Objektspeicher ist nutzlos, wenn die Clients nicht direkt mit
ihm kommunizieren können. Ceph bietet gleich mehrere Möglichkeiten für
Clients, Kontakt mit ihm aufzunehmen.
Das Rados-Blockdevice emuliert auf Linux-Basis eine normale Festplatte. Was
auf den Client-Computern dann so aussieht, als wäre es lokal eingebaut, ist in
Wirklichkeit ein virtuelles Blockdevice.

Abbildung 4: Damit das Ceph Object Gateway funktioniert, braucht es einen Fast-CGI-fähigen Webbrowser.
Apache mit »mod_fastcgi« ist die typische Kombination.

www.linux-magazin.de

Dovecot und S3

Sysadmin
Abbildung 3: Ein existierender Ceph-Cluster lässt sich über einen Eintrag wie diesen schnell um ein Ceph

Zwar implementiert das Ceph Object
Gateway die S3-Spezifikation nicht vollständig, die wichtigsten Funktionen sind
aber auch im Gateway zu finden. Damit
ist die Lösung vollständig: Ein Cluster
mit mindestens drei Knoten betreibt auf
lokalen Platten Ceph. Hinzu kommt ein
Server, der das Ceph Object Gateway
steuert und verschiedenen Instanzen von
Dovecot mit S3-Plugin das Ablegen von
E-Mails erlaubt.
Eine solche Lösung skaliert auf allen
Ebenen: Braucht der Ceph-Cluster mehr
Platz, schiebt der Admin mehr Kisten ins
Rack. Wird die Last auf den DovecotServern zu hoch, stellt der Admin ebenfalls mehr Maschinen ins Rack. Solange
hinreichend Platz in Racks zur Verfügung
steht, lässt sich dieses Prinzip praktisch
ohne Grenzen ausdehnen.

83

02/2015

Sysadmin
84

www.linux-magazin.de

Dovecot und S3

Ceph Object Gateway jedenfalls genauer
ansehen. Die Anleitung in [8] erläutert,
wie sich ein Ceph mit Object Gateway
so einrichten lässt, dass es gegenüber
Clients vom „echten S3“ gar nicht zu
unterscheiden ist. (mfe)
Q

Abbildung 5: Der Beweis: Das Ceph Object Gateway meldet sich beim Aufruf einer URL und zeigt an, dass für
den Nutzer »anonymous« keine Buckets hinterlegt sind.

Cluster selbst gelingt also schnell. Mit
etwas mehr Aufwand ist das Ceph Object
Gateway verbunden: Inktank selbst hält
auf [7] ausführliche Dokumentation bereit, die den gesamten Vorgang erklärt.
Am Ende haben Admins eine Instanz des
Ceph Object Gateway, die S3 spricht und
als Anknüpfungspunkt für eine DovecotInstanz dienen kann.
Admins sollten allerdings im Hinterkopf
behalten, dass bei großen Setups das
S3-Gateway durchaus ins Schwitzen geraten kann. Kein Wunder: Wenn bloß
eine einzelne Gateway-Instanz existiert,
quetschen sich alle Verbindungen von
den Dovecot-Frontends zu Ceph durch
dieses eine Nadelöhr. Das ist nicht nur
aus Performance-Sicht ein Problem, sondern auch ein klassischer Single Point of
Failure (Abbildung 6).
Weil S3 aber auf HTTP basiert und HAAnsätze für HTTP zur Genüge existieren,
ist die Lösung des Problems naheliegend:
Sinnvollerweise fangen Admins gleich
mit zwei Objekt-Gateways an, vor denen ein (hochverfügbarer) Load Balancer
eingehende Verbindungen entsprechend
weiterleitet (Abbildung 7). Auch diese
Architektur ist skalierbar; zusätzliche Object Gateways lassen sich jederzeit integrieren, und das gelingt dann auch ohne
jede Downtime.

Plugin erhebt. In einem sinnvollen Setup
sollten die sich allerdings recht schnell
wieder dadurch einspielen lassen, dass
auf Storage-Seite kein teures SAN mehr
arbeitet, sondern Ceph auf Hardware
von der Stange. In Sachen Performance
erweist sich Ceph – vom Single-SerialWrite-Szenario abgesehen – meist als die
überlegene Lösung und muss den direkten Vergleich mit kommerziellen Storages
keinesfalls scheuen.
Wer ein E-Mail-Setup betreibt und regelmäßig vor der Herausforderung steht,
mehr Platz für die Daten seiner Nutzer zu
schaffen, sollte sich die Kombination aus
Dovecot, dem S3-Plugin und Ceph mit

Ceph 1

Infos
[1] Ceph: [http://ceph.com] [http://ceph.com/
papers/weil-rados-pdsw07.pdf]
[2] Martin Loschwitz, „Traumpaar“: LinuxMagazin 03/14, S. 28
[3] Udo Seidel, „Speicher satt“: LinuxMagazin 02/13, S. 30
[4] Red Hat kauft Inktank:
[http://www.linux-magazin.de/NEWS/
Red-Hat-kauft-Ceph-Spezialisten-Inktank/]
[5] Ceph Enterprise von Inktank:
[http://www.inktank.com/enterprise/]
[6] Markus Feilner, Martin Loschwitz, „Spartanisches Lager“: Linux-Magazin 03/14, S. 38
[7] Doku zum Ceph Object Gateway:
[http://ceph.com/docs/master/radosgw/]
[8] S3-Trick für das Ceph Object Gateway:
[http://www.hastexo.com/resources/
hints-and-kinks/configuring-radosgwbehave-amazon-s3]

Ceph 2

Ceph n

Object
Gateway 1

Client 1

Client 2

Client n

Abbildung 6: So sieht ein einfaches Ceph-Gateway-Setup aus; dabei stellt die einzelne Gateway-Instanz allerdings einen Single Point of Failure dar.

Ceph 1

Ceph 2

Ceph n

Fazit
Timo Sirainen erweitert mit seinem S3Plugin für Dovecot das Thema Mail um
Skalierbarkeit auf der Storage-Ebene. Für
Admins steht damit eine sinnvolle Alternative zu den klassischen Lösungen
bereit – jenen Lösungen wie Sharding,
deren Inflexibilität in den agilen IT-Strukturen der Gegenwart oft genug Probleme
bereitet. Wermutstropfen sind zweifellos
die Lizenzkosten, die der Autor für das

Object
Gateway 1

Object
Gateway 2

LB

Client 1

Client 2

Client n

Abbildung 7: So ist's besser: Das Setup lässt sich auf allen Ebenen nahtlos in die Breite skalieren.

02/2015

Hardware

Ein schicker Monitor für den Raspberry Pi

Manchmal wäre es gut, wenn der Raspberry über einen ständig angeschlossenen Bildschirm verfügte und
trotzdem portabel bliebe. Ein seit einiger Zeit erhältlicher 2,8 Zoll großer Touchscreen passt perfekt zu diesem
Anwendungsfall. Das Linux-Magazin hat sich dieses Modell genauer angesehen. Udo Seidel

© Wolfgang Zwanzger, 123RF

86

www.linux-magazin.de

Raspi-Monitor

Fenster zur Welt

Ist der Raspberry nicht als MultimediaSteuerzentrale oder als traditioneller Server unterwegs, dann ist eine herkömmliche Bildschirmausgabe kein purer Luxus.
Anschlussoptionen dafür offeriert der Pi
viele: Das beginnt mit HDMI-fähigen Monitoren und HDMI-zu-DVI-Konvertern,
geht weiter über Pendants auf der VGASeite und endet mit Scart-Adaptern. Mit
diesen [1] war es dem Autor sogar möglich, die Ausgabe auf einen 17 Jahre alten
Röhrenfernseher umzuleiten.
Handlich oder gar transportabel sind
diese Lösungen jedoch nicht. Seit einiger Zeit gibt es aber ein kleines 2,8 Zoll
großes Display, das sich einfach an den
ARM-Zwerg anschließen lässt (Abbildung 1). Es verschafft dem Raspberry Pi
ein Ausgabegerät mit einer Größe von
320 mal 240 Pixeln und 16 Bit Farbtiefe.
Als Markenprodukt ist es für gut 30 Euro
bei Adafruit [2] zu finden – zumindest

im deutschen Markt gibt es auch preiswertere Varianten [3]. Dabei ist es egal,
ob der Raspberry Pi in Version A, B oder
B+ vorliegt. Der schicke Mini-Bildschirm
passt für alle.

Erste Schritte
Das hier vorgestellte Setup benötigt keine
Kenntnisse im Umgang mit dem Lötkolben. Wenn gewünscht, kommt das Board

mit dem Touchscreen nahezu gebrauchsfertig ins Haus. Notorische Bastler finden
eine Bauanleitung unter [4].
Ist der Raspberry mit dem BildschirmBoard verbunden, beginnt die eigentliche Arbeit. Zum Ansteuern des MiniMonitors ist der Framebuffer-Treiber für
kleine TFTs und LCDs ([5], [6]) nötig.
In den meisten Linux-Distributionen für
den ARM-Zwerg ist der aber nicht enthalten. Wer seinen Kernel selbst übersetzten
will, hat zwei Möglichkeiten. Entweder
patcht er den schon vorhandenen Quelltext [7] oder lädt die Kernelquellen ([8],
[9]) herunter. Hier hat sich das kleine
Skript »rpi-source« [10] bewährt.
Wem das zu mühsam ist, der kann auch
auf einen bereits vorgefertigten Kernel
zurückgreifen (Listing 1). Dieser ist allerdings nur mit Raspbian [11] getestet
und verträglich. Der Einfachheit halber
diente deshalb diese Linux-Distribution
als Grundlage für den Artikel.
Die Installation des TFT-Kernels ist aber
nur die halbe Miete. Die Ansteuerung
des Monitors erfolgt über den SPI-Bus
(Serial Peripheral Interface). Daher muss
das Kernelmodul »spi-bcm2708« geladen
sein. Danach gilt es, den FramebufferTreiber »fbtft_device« mit geeigneter Konfiguration (ebenfalls Listing 1) zu laden.
Das eben genannte Kernelmodul bietet

Abbildung 1: Der Mini-Bildschirm kommt gebrauchsfertig – zumindest die Hardware-Seite. Die umfangreiche
Anpassung des Betriebssystems erläutert dieser Artikel.

02/2015

Hardware
Raspi-Monitor
www.linux-magazin.de

nicht weniger als 20 Parameter an. Für
die ersten Schritte genügen aber »name«
und »rotate«.
Der Parameter »name« gibt an, um welches TFT-Gerät es sich handelt, damit
der Treiber intern die richtigen Schalter
umlegt. Der Parameter »rotate« dreht die
Ausgabe um den angegebenen Winkel
im Uhrzeigersinn. Etwas Feintuning erledigt die Option »frequency«. Sie steuert die Bildwiederholrate. 32 000 000 ist
hier empfohlen, das entspricht 20 FPS
(Frames per Second). Macht das Display
hier Probleme, probiert man es einfach
eine Stufe kleiner mit 16 000 000. Der
letzte Schritt weist der Shellvariablen
»FRAMEBUFFER« [12] das richtige Gerät
zu – hier ist es »/dev/fb1«.
Startet der Raspberry-Besitzer nun den
X-Server aus dieser Shell, erscheint die
Ausgabe auf dem Mini-TFT. Funktioniert
das, wie es soll, kann der Anwender
diese Konfiguration Reboot-fest machen.
Er muss Raspbian dazu anweisen, die
Module inklusive Konfiguration zu laden
und die Shellumgebung des Benutzers
anzupassen. Das bedarf weniger Zeilen
in den Dateien »/etc/modules«, »/etc/
modprobe.d« und »$HOME/.profile« (Abbildung 2). Ein erneuter Reboot zeigt,
ob man alles richtig gemacht hat. Wer
genauer hinschauen möchte, kann ja die
Bootmeldungen im Kernel-Ringpuffer inspizieren.
Wer das Paketeherunterladen und das
Installieren sowie die Anpassung der genannten Dateien zu anstrengend findet,
der solle sich das Skript »pitft.sh« [13]
anschauen. Laut Dokumentation gibt es
außerdem ein fertig konfiguriertes Raspbian-Abbild [14], das der Anwender nur
noch auf eine SD-Karte kopieren muss.
Als diese Zeilen geschrieben wurden, war
die Datei jedoch beschädigt und ließ sich
nicht verwenden.

Abbildung 2: Entsprechend konfiguriert landet die Ausgabe des X-Servers automatisch auf dem MiniBildschirm des Raspberry Pi.

Die notwendigen Arbeitsschritte beschränken sich auf eine entsprechende
Anweisung an den Kernel. Das Setup
ist nicht mal spezifisch für den Raspberry Pi und in der Kerneldokumentation unter „The Framebuffer Console“
hinterlegt [15]. Für frühe Anweisungen
an den Linux-Kernel ist unter Raspbian
die Datei »boot/cmdline.txt« zuständig. Die Instruktion »fbcon=map:10
fbcon=font:VGA8x8« bewirkt dann das
gewünschte Verhalten. Wer sich für weitere Optionen interessiert, sei auf die
bereits erwähnte Dokumentation [15]
verwiesen.
Das oben angesprochene Skript »pitft.
sh« greift dem Benutzer auch hier unter
die Arme. Auf Wunsch nimmt es die geforderten Änderungen zur Aktivierung
der Konsole auf dem Mini-Bildschirm

vor. Wer mag, kann nun »/etc/rc.local«
aufbohren, um beispielsweise Statusmeldungen nach dem Booten anzeigen zu
lassen. Die bei Raspbian vorkonfigurierte
Ausgabe der IP-Adresse ist eine gute Vorlage (Listing 2).
Übrigens: Wer auf den vorgefertigten
Kernel zurückgreift, sieht die Bootmeldungen erst zu einem recht späten Zeitpunkt. Grund ist, dass der Gerätetreiber
ein Modul ist. Erst wenn der Kernel es geladen hat, kann er seine Meldungen auf
dem Monitor-Zwerg ausgeben. Wer den
Kernel selbst übersetzt, sollte den Treiber
fest einbinden. Dann sieht er auch die
früheren Bootnachrichten.
Bilder oder Videos anzuzeigen bereitet
nun keine Bauchschmerzen mehr. Für
Ersteres empfiehlt sich der Framebuffer Image Viewer »fbi« [16]. Für Videos

Listing 1: Kerneltreiber installieren
01 cd && mkdir setup && cd setup
02 wget http://adafruit-download.s3.amazonaws.com/libraspberrypi-bin-adafruit.deb
03 wget http://adafruit-download.s3.amazonaws.com/libraspberrypi-dev-adafruit.deb

Gib mir mehr
Die Ausgabe von X11 auf den TFT-Winzling ist schon mal ganz nett. Es wäre
aber ausgesprochen praktisch, wenn das
Gleiche auch für die normale Konsole
funktionieren würde. Wenn das sogar
den Bootprozess einschlösse, wäre sogar ein weiterer Bildschirm überflüssig.
Und tatsächlich erfüllt der kleine Monitor
beide Anforderungen.

04 wget http://adafruit-download.s3.amazonaws.com/libraspberrypi-doc-adafruit.deb
05 wget http://adafruit-download.s3.amazonaws.com/libraspberrypi0-adafruit.deb
06 wget http://adafruit-download.s3.amazonaws.com/raspberrypi-bootloader-adafruit-20140917-1.deb
07
08 sudo dpkg -i -B *.deb
09 [...]
10 $ sudo shutdown -r now
11 [...]
12 sudo modprobe spi-bcm2708
13 sudo modprobe fbtft_device name=adafruitts rotate=90
14 export FRAMEBUFFER=/dev/fb1
15 startx

87

02/2015

Hardware
88

www.linux-magazin.de

Raspi-Monitor

kann der Anwender auf das Multitalent
Mplayer [17] zurückgreifen. Als Ausgabegerät muss er »/dev/fb1« angeben –
und damit ist alles erledigt. Sind Screenshots notwendig, so lohnt ein Blick auf
das Werkzeug »fbgrab« [18]. Ein paar
kleine Kommandozeilen-Beispiele finden
sich weiter unten.

Bitte hier drücken
Vielen stechen sicherlich die vier Knöpfe
unterhalb des Bildschirms ins Auge. Die
Entwickler haben vier GPIOs auf diese
Knöpfe gelegt. Unter [19] findet sich
ein Layout-Diagramm, das die Zuordnung Knopf zur GPIO-Nummer darstellt
(siehe Tabelle 1). Leider ist das Pinlayout
für verschiedene Revisionen des ARMZwergs nicht komplett identisch. Auf
älteren Boards ist der dritte Knopf von
links GPIO-Pin 21 zugeordnet, auf neueren jedoch 27.
Dass man mit einfachen Python-Skripten
den Zustand der GPIOs auslesen kann,
haben schon andere Artikel demonstriert.
Im vorliegenden Fall lässt sich so ermitteln, ob der Benutzer einen bestimmten
Listing 2: Konsolen-Setup
01 $ cat /etc/rc.local
02 [...]
03 _IP=$(hostname -I) || true
04 if [ "$_IP" ]; then
05

printf "My IP address is %s\n" "$_IP"

06 fi
07 [...]
08 $

Listing 3: Knöpfe abfragen
01 #!/usr/bin/python
02 import RPi.GPIO as GPIO
03
04 GPIO.setmode(GPIO.BCM)
05
06 GPIO.setup(23, GPIO.IN, pull_up_down=GPIO.PUD_UP)
07 GPIO.setup(22, GPIO.IN, pull_up_down=GPIO.PUD_UP)
08 GPIO.setup(27, GPIO.IN, pull_up_down=GPIO.PUD_UP)
09 GPIO.setup(18, GPIO.IN, pull_up_down=GPIO.PUD_UP)

Abbildung 3: Mit etwas Scripting-Kenntnissen erhält der Anwender einen Ein/Aus-Schalter für die Hintergrundbeleuchtung des Monitor-Winzlings.

Knopf betätigt hat. Ein simples Testskript
zeigt Listing 3.
Unter [20] und [21] finden sich zwei
alternative Implementierungen von Python-Skripten, die den zweiten Knopf
in einen Ein/Aus-Schalter für den Bildschirm – und nur diesen – verwandeln.
Die erste Implementierung benutzt ein
externes Shellskript, die zweite bringt
alles im Python-Code unter. Beide greifen aber auf die gleiche Funktion des
TFT-Boards zurück, das mit einem zusätzlichen GPIO zur Steuerung der Hintergrundbeleuchtung ausgestattet ist.
Diesen GPIO Nummer 252 muss der Benutzer erst mit »echo 252 > /sys/class/
gpio/export« freischalten.
Danach gibt es im Pseudo-Dateisystem
»sysfs« einen neuen Eintrag »/sys/class/
gpio/gpio252«. Über ihn steuert der
Anwender die Hintergrundbeleuchtung
durch einfache »echo«-Befehle. In Abbildung 3 sind die notwendigen Schritte
in einem Shellskript hinterlegt. Wer dies
nun mit dem Auslesen des Zustands von
einem der Knöpfe verdrahtet, erhält einen prima Ein/Aus-Schalter für die Hintergrundbeleuchtung.
Analog könnten die Knöpfe auch die
Wiedergabe von Filme starten oder Bil-

der anzeigen. Beispiele stellt Listing 4
vor. So könnte der Raspberry Pi als echte
Mini-Multimediazentrale dienen.

Vom Skript zum Kernel
Analog zu den eben besprochenen Beispielen kann man einen weiteren Knopf
als Aus-Schalter für den Raspberry Pi
konfigurieren. Schicker wäre allerdings,
wenn das Einschalten analog funktionieren würde. Prinzipbedingt geht das
mit dem Python-Skript natürlich nicht:
Ist das Betriebssystem erst mal heruntergefahren, gibt es keine Skripte, die irgendwo lauschen könnten.
Die Entwickler des Framebuffer-Treibers
haben mit »rpi_power_switch« [22] ein
Kernelmodul geschaffen, das hier ganz
nützlich ist. Wer den vorgefertigten
Linux-Kern benutzt, kann direkt loslegen. Im Wiki [23] steht, wie man dieses
Kernelmodul separat übersetzt. Das ist
etwas hakelig. In den meisten Fällen ist
die Überprüfung der Version des GNUC-Compilers zu deaktivieren. Außerdem
sind mindestens 900 MByte freier Speicher auf der SD-Karte nötig.
Die im Wiki hinterlegten Anweisungen
verschweigen, dass der Anwender das

10 while True:
11
12
13
14
15
16
17
18

if not(GPIO.input(23)):
print("23 gedrueckt!")
if not(GPIO.input(22)):
print("22 gedrueckt!")
if not(GPIO.input(27)):
print("21 gedrueckt!")
if not(GPIO.input(18)):
print("18 gedrueckt!")

Tabelle 1: Zuordnung der PiTFTTaster zu den GPIOs
Knopf-Position

Nummer des GPIO-Pin

1. von links

23

2. von links

22

3. von links

21 (27)

4. von links

18

Der Autor
Dr. Udo Seidel ist eigentlich Mathe-Physik-Lehrer
und seit 1996 Linux-Fan. Nach seiner Promotion
hat er als Linux/Unix-Trainer, Systemadministrator und Senior Solution Engineer gearbeitet.
Heute ist er Leiter des Linux-Strategie-Teams
der Amadeus Data Processing GmbH in Erding.

02/2015

Mit dem PiTFT erübrigt sich ein externer
Monitor in vielen Fällen. Die am Board
angebrachten Knöpfe tragen sogar zu einer nützlichen Erweiterung bei. Dieser
Artikel gibt nur einen ersten Einblick in
die Möglichkeiten des Bildschirms. Darüber hinaus besitzt er etwa noch die
Touchscreen-Funktion, die einem späteren Artikel vorbehalten bleibt. (jcb) Q

Infos
[1] Scart-Adapter:
[http://www.avc-shop.de/epages/
64272905.sf/de_DE/?ObjectPath=/Shops/
64272905/Products/4040849501227]
[2] PiTFT: [http://www.adafruit.com/
products/1601]
[3] Display-Alternative:
[http://www.avc-shop.de/epages/
64272905.sf/de_DE/?ObjectPath=/Shops/
64272905/Products/PiLCD2%2C8]

[15] Kerneldoku zur Konsole:
[http://www.kernel.org/doc/
Documentation/fb/fbcon.txt]
[16] FBI:
[http://www.kraxel.org/blog/linux/fbida/]
[17] Mplayer: [http://www.mplayerhq.hu/]
[18] Fbgrab: [http://fbgrab.monells.se]
[19] Pinbelegung: [http://learn.adafruit.com/
system/assets/assets/000/013/040/
original/raspberry_pi_pitftschem.png?
1387563188]
[20] GPIO-Button schaltet Backlight: [http://raspberrypi.
stackexchange.com/questions/15337/
gpio-button-to-control-backlight-on-pitft]
[21] GPIO-Button, Variante 2: [http://www.
averagemanvsraspberrypi.com/2014/07/
how-to-set-up-adafruit-pitft-for.html]
[22] RPI Power Switch:
[http://github.com/notro/fbtft_tools/
tree/master/rpi_power_switch]
[23] Wiki-Eintrag zum RPI Power Switch:
[http://github.com/notro/rpi-source/wiki/
Examples-on-how-to-build-various-modules#rpi_power_switch]

Listing 4: Filme abspielen oder Bilder anzeigen
01 $ cat test.mpeg.play.sh

14 $

02 #!/bin/sh

15 $ cat show.test.jpg.sh

03 #

16 #!/bin/sh

04 PATH=/bin:/usr/bin:/usr/local/bin

17 #

05 export PATH
06 ps -ef|grep

18 PATH=/bin:/usr/bin:/usr/local/bin
[m]player > /dev/null 2>&1

07 if [ "$?" -eq 0 ]; then
08

pkill mpayer || pkill -9 mplayer

nohup mplayer -nolirc -vo fbdev2:/dev/
fb1 -vf scale=320:-3 test.mpg

11
12 fi
13 $

20 ps -ef|grep

[f]bi > /dev/null 2>&1

21 if [ "$?" -eq 0 ]; then

09 else
10

19 export PATH

/dev/null 2>&1 &

>

22

pkill fbi || pkill -9 fbi

23 else
24

nohup fbi -T 2 -d /dev/fb1 -noverbose
-a test.jpg > /dev/null 2>&1 &

25 fi

Raspi-Monitor

Hardware

Zum Schluss

[4] Bauanleitung: [https://learn.adafruit.
com/adafruit-pitft-28-inch-resistive
-touchscreen-display-raspberry-pi/
assembly]
[5] Treiber-Sourcen:
[http://github.com/notro/fbtft]
[6] FBTFT: [http://github.com/adafruit/
adafruit-rpi-fbtft]
[7] Patch: [http://adafruit-download.s3.
amazonaws.com/adafruit-ts.zip]
[8] Kernelquellen: [http://github.com/
adafruit/adafruit-raspberrypi-linux]
[9] Firmware: [
http://github.com/adafruit/rpi-firmware]
[10] Helferskript:
[http://github.com/notro/rpi-source]
[11] Raspbian: [http://www.raspbian.org]
[12] Framebuffer-Howto:
[http://www.tldp.org/HOWTO/html_single/
Framebuffer-HOWTO/]
[13] Pittft.sh: [http://adafru.it/pitftsh]
[14] Konfiguriertes Raspbian-Image:
[http://adafruit-download.s3.amazonaws.
com/PiTFT28R_raspbian140909_2014_
09_18.zip]

www.linux-magazin.de

Kommando »make scripts« ausführen
muss. Das ist aber nötig, um die notwendigen Hilfsprogramme, etwa »scripts/
mod/modpost«, für die Modulgenerierung zu erzeugen.
Die wichtigsten Parameter von »rpi_
power_switch« sind »gpio_pin« und
»mode«. Der erste legt fest, welchen
GPIO-Pin das Kernelmodul überwacht.
Der zweite Parameter entscheidet, ob der
Knopf als Taster oder als Schalter dient.
Das schon mehrmals erwähnte Helferlein
»pitft.sh« aktiviert auf Wunsch »rpi_power_switch«, ordnet ihm GPIO-Pin 23 zu
und konfiguriert ihn als Taster.

89

02/2015

Forum

Nicht-kommerziell? Die Creative-Commons-Lizenz ist nicht klar genug

Das Oberlandesgericht Köln musste sich mit spannenden Streitfragen zum Thema Creative Commons auseinandersetzen. Dabei erwiesen sich Teile der Lizenz als nicht eindeutig oder intransparent. Sabine Sobola

© Markus Feilner, CC-BY-SA 4.0

90

www.linux-magazin.de

Recht

Nebulös

Nicht-kommerziell im Sinne der CCBY-NC-Lizenz, so das Oberlandesgericht
Köln, sei in der Creative-Commons-Lizenz nicht klar genug definiert. Der dem
Urteil des OLG vom 31. Oktober 2014
(Az.: 6 U 60/ 14, [1]) zugrunde liegende
Sachverhalt rankte sich um das Foto
eines Fotografen, das dieser unter der
Creative Commons Lizenz CC-BY-NC 2.0
(nachfolgend CC-Lizenz, [2]) auf Flickr.
com bereitgestellt hatte.
Der Deutschlandfunk nutzte das Foto auf
seiner Website Dradiowissen.de ([3],
Abbildung 1) zur Illustration eines Artikels und machte es so öffentlich zugänglich. Zuvor hatten die Redakteure
das Foto bearbeitet – in doppelter Weise:
Zum einen nutzten sie nur den zentralen
Bildausschnitt, zum anderen schnitten
sie den Rest so ab, dass dem Bild der
Kasten mit dem Copyright-Vermerk abhanden kam.

Auf die Klage des Fotografen hin musste
das Gericht nun mehrere Fragen klären,
zum Beispiel:
Q Handelt es sich bei der oben beschriebenen Nutzung durch den Sender um
eine „nicht-kommerzielle“ Nutzung?
Q Fällt die Form der Bearbeitung unter
die entsprechende Erlaubnis der CCLizenz?
Q Wie hoch ist der Schadensersatz,
wenn eine Nutzung nicht von der CCLizenz gedeckt ist?
Dabei stellte sich erneut heraus, dass die
beliebte CC-Lizenz gar nicht so eindeutig formuliert ist, wie ihre Verbreitung
vermuten lässt.

Nicht-kommerziell?
In den Ausschlussklauseln der CC-Lizenz
findet sich unter anderem das Verbot,
ein Werk, das unter dem Schutz dieser

Lizenz steht, kommerziell zu nutzen. So
heißt es in Klausel Nr. 4 b), dass eine
Nutzung untersagt ist „that is primarily
intented for or directed towards commercial advantage or private monetary
compensation“. Maßgebend war für das
Gericht die englische Fassung der Lizenz,
weil der Fotograf explizit unter ihr das
Foto zur Verfügung gestellt hatte.
In der deutschen Fassung, die nach Ansicht des Gerichts für den vorliegenden
Rechtsstreit „nur als Interpretationshilfe
herangezogen werden kann“, verbietet die Klausel 4 b eine Nutzung, „die
hauptsächlich auf einen geschäftlichen
Vorteil oder eine vertraglich geschuldete
geldwerte Verfügung“ abzielt oder darauf
gerichtet ist. Das klingt präziser.
Hier kam das Gericht zum entscheidenden Punkt: der Begriff „nicht-kommerziell“ oder „non-commercial“ ist nach
Auffassung des Richters im Rahmen der
Anwendung von CC-Lizenzen nicht klar
definiert. Es wurde daher eine Auslegung
dieses unbestimmten Rechtsbegriffs vorgenommen. Dabei ging das Gericht davon aus, dass die englische Fassung der
CC-Lizenz wirksam als AGB in den Nutzungsvertrag einbezogen wurde. Diese ist
auf eine weltweite Reichweite ausgerichtet, sodass sich eine Auslegung rein nach
deutschem Recht verbietet.
Dann suchte das Gericht nach nationalen
Auslegungshilfen. Zum Beispiel ließe sich
die Begrifflichkeit des Rundfunkstaatsvertrags heranziehen. Danach wäre der
Deutschlandfunk, weil er eine Körperschaft öffentlichen Rechts ist, als nicht
gewinnorientiert einzustufen. Zudem ist
§ 52 a Abs. 1 UrhG zu beachten, bei dessen Anwendung „nicht-kommerziell“ mit
„nicht-gewinnorientiert“ gleichzusetzen
ist und damit eine kommerzielle Nutzung
wiederum zu verneinen wäre.

02/2015

Keine Entscheidung

Ross und Reiter nennen!
Der Deutschlandfunk hat zwar unter
der abgeänderten Version des Bildes den
Namen des Fotografen genannt, auf die
CC-Lizenz verwiesen und entsprechende
Links platziert. Damit war nach Ansicht
des Gerichts aber lediglich die zweite
Verpflichtung erfüllt. Die erste Verpflichtung sieht jedoch vor, die vorhandenen
Urheberrechtsvermerke intakt zu lassen.
Durch deren Entfernung hat der Nutzer
diese Verpflichtung verletzt.
So hat laut Gericht die Platzierung des
Urhebernamens innerhalb eines Fotos einen wesentlich höheren Stellenwert, als
wenn er nur unterhalb des Werkes genannt wird. Denn bei den Verbreitungs-

Recht

Forum

Unzulässige Bearbeitung?

Urhebers vorgenommen werden (§ 23
UrhG). Diese gilt mit der CC-Lizenz als
erteilt. Dort sind nämlich in der Klausel
Nr. 3 c die Bearbeitung und Umgestaltung erlaubt, mithin die Erzeugung von
„derivative Works“, also von abgeleiteten
Werken.
Allerdings hatte die Beschneidung der
Fotografie zur Folge, dass der CopyrightVermerk am unteren Bildrand verloren
ging. Dies verstößt gegen die Klausel Nr.
4 c der CC-Lizenz. Denn danach sind vorhandene Urheberbezeichnungen beizubehalten, der Urheber ist anzuerkennen.
In der englischen Fassung heißt es: „ ...
must keep intact all copyright notices and
give the original author credit.“ Durch die
Verbindung der beiden Verpflichtungen
mit dem englischen „and“ stehen diese
gleichwertig nebeneinander und sind
gleichermaßen bindend.

www.linux-magazin.de

besagt, dass Unklarheiten in den vorformulierten Vertragsbedingungen (AGBs) zu
Lasten des Verwenders gehen. Der Verwender ist derjenige,
der die AGBs gestellt
hat, vorliegend also
der Fotograf.
Daher kann dieser sich
nicht darauf berufen,
dass der Deutschlandfunk das Foto komAbbildung 1: Kommerziell oder nicht? Auf einer Webseite hat der Deutschmerziell genutzt hat,
landfunk ein mit CC-BY-NC-Lizenz ausgestattetes Bild verwendet.
weil nach wie vor
nicht geklärt ist, wie
Dann würde man aber allein auf die Or„nicht-kommerziell“ in den englischen
ganisationsform des Lizenznehmers oder Fassungen der CC-Lizenzen eigentlich zu
auf dessen generellen Aufgabenbereich
verstehen oder anzuwenden ist.
abstellen. Der Wortlaut der CC-Lizenz,
der hier maßgebend ist, legt aber nahe,
dass es allein auf die konkret erfolgte
Nutzung ankommt. Doch auch dies Die nächste Frage lautete, ob die erfolgte
schafft keine Klarheit darüber, wie der Bearbeitung des Fotos eine Umgestaltung
Begriff „nicht-kommerziell“ bei CC-Liim Sinne des § 23 S. 1 UrhG war. Vor
zenzen auszulegen ist.
der Bearbeitung war eine Vielzahl an Demonstranten und Polizeiautos auf dem
Bild zu sehen. Auf dem auf der Website
des Deutschlandfunks veröffentlichten
Das Gericht stellte schließlich fest, dass Foto war ein Demonstrant in den Mitteles aufgrund der vorliegenden Unterlapunkt gerückt, ein paar weitere Mitstreigen keine Entscheidung darüber treffen ter nur noch ansatzweise zu sehen. Dieser
könne, wie der Begriff „non commerbearbeitete Ausschnitt lässt nach Ansicht
cial“ letztlich auszulegen ist. Da Creades Gerichts die Vermutung zu, dass die
Demonstration auch in Räumlichkeiten
tive-Commons-Lizenzen allgemeine Geschäftsbedingungen sind, kommen die stattgefunden haben könnte, was nicht
entsprechenden Vorschriften des BGB zur den Tatsachen entspricht.
Anwendung und damit unter anderem
Eine solche Veränderung der Bildausauch § 305 c Abs. 2 BGB [4]. Dieser
sage darf aber nur mit Einwilligung des

91

02/2015

Forum

© Markus Feilner, CC-BY-SA 4.0

Recht
www.linux-magazin.de

Bedeutet CC „Wert null“?
Abbildung 2: Ob die fotografierten Demonstranten auf der Straße oder scheinbar innerhalb eines Gebäudes
agierten, hält das Gericht für einen relevanten und zustimmungspflichtigen Unterschied in der Bildaussage.

formen des Internets wird oft nur das Bild
selbst, zum Beispiel über eine gezielte
Bildersuche, wahrgenommen und weiterverbreitet. Der zugehörige Text wie auch
die Bildunterschrift bleiben meist außen
vor. Damit wäre aber die Urheberschaft
nicht mehr ersichtlich und der Urheber
in seinen Rechten stark beeinträchtigt.
Zudem hat es der Deutschlandfunk versäumt, auf die Art der Veränderung des
Fotos hinzuweisen, wie es Klausel Nr. 3 c
der CC-Lizenz vorschreibt.

Schadensersatz?
Die beiden oben dargestellten Verstöße
gegen die Regeln der CC-Lizenz lösten
gemäß der Klausel Nr. 7 die automatische
Beendigung der Lizenzrechte aus. Durch

diesen Rückfall der Rechte (in der deutschen Übersetzung „Heimfall“ genannt)
erlischt die Lizenzerteilung gegenüber
dem Deutschlandfunk und mit ihr die
Einwilligung im Sinne des § 23 UrhG.
Jegliche weitere Benutzung stellt damit
einen Rechtsverstoß dar.
Dies hat wiederum zur Folge, dass der
Tatbestand des § 97 UrhG erfüllt ist und
damit grundsätzlich sowohl ein Unterlassungsanspruch als auch ein Schadensersatzanspruch besteht. Der Unterlassungsanspruch wurde problemlos bejaht.
Erstmals hatte sich aber nun ein Gericht
mit der Frage auseinanderzusetzen, wie
hoch der Schaden im Falle einer nichtkommerziellen Nutzung eines unentgeltlich, unter einer CC-Lizenz zur Verfügung
gestellten Werks sein kann.

© iofoto, 123RF

92

Die Berechnung stellt auf den objektiven Wert der unzulässigen Nutzung ab.
Dieser bemisst sich danach, was ein Lizenzgeber von einem Lizenznehmer für
die Vergabe einer Lizenz im konkreten
Fall üblicherweise hätte verlangen können (Lizenzanalogie). Da der Fotograf
seine Werke unentgeltlich zur Verfügung
gestellt hat, wäre eine fiktive Lizenzgebühr mit 0 Euro zu veranschlagen. Nach
Ansicht des OLG ist damit der objektive
Wert einer nicht-kommerziellen (!) Nutzung eines unter der CC-Lizenz angebotenen Werks gleich null.

Abbildung 3: 0 Euro Schaden bedeutet 0 Euro Schadensersatz, auch wenn das Vergehen nach geltendem
Recht mit 100 Prozent Aufschlag wegen fehlender Urhebernennung zu bestrafen wäre.

Ein höherer Schaden ergibt sich auch
nicht daraus, dass die Urheberschaft nicht
korrekt angegeben wurde. Bei fehlender
Urheberbenennung wird in der Praxis
zwar ein 100-Prozent-Aufschlag auf den
Schaden, der nach der Lizenzanalogie
berechnet wird, gewährt. Das Gericht
stellte aber mathematisch unangreifbar
fest, dass 0 Euro plus 100 Prozent davon
immer noch 0 Euro bleibt.
Es blieb daher dabei, dass hier kein Schadensersatz zu gewähren war. Lediglich
der Ersatz seiner anwaltlichen Abmahnkosten wurde dem Fotografen zugesprochen. Das Urteil ist allerdings noch nicht
Q
rechtskräftig. (mfe)

Infos
[1] Urteil des OLG Köln vom 31.10.2014:
[http://dejure.org/dienste/vernetzung/
rechtsprechung?Text=6%20U%2060/14]
[2] Sabine Sobola, Markus Feilner, „Große Freiheit Nummer 4“: Linux-Magazin 06/14, S. 82
[3] Deutschland Radio Wissen:
[http://dradiowissen.de/]
[4] § 305 BGB zu AGBs: [http://dejure.org/
gesetze/BGB/305c.html]
Die Autorin
Sabine Sobola ist Partnerin
der Regensburger Anwaltskanzlei Paluka Sobola Loibl
und Partner und betreut
dort die Bereiche IT- und
Internetrecht, das Vertragsrecht und den gewerblichen Rechtsschutz.
Neben ihren Lehraufträgen für IT-Recht an verschiedenen Hochschulen leitet sie eine Vielzahl
von Workshops zum Thema Recht im Internet.

02/2015

Forum
94

www.linux-magazin.de

Bücher

Ein Git-Buch für gestandene und ein C++-Buch für angehende Programmierer

Tux liest
Zwei Bücher für Programmierer: Eins zum Sprachenlernen, hier geht es um C++, und ein anderes, um die fertigen Quelltexte anschließend mit Git zu verwalten. Beide setzen keine Vorkenntnisse voraus und führen von
den ersten Schritten bis zur Meisterschaft. Jens-Christoph Brendel

Das einst von Linux-Erfinder Torvalds
programmierte Git ist längst nicht nur
unter Software-Entwicklern ein viel benutztes Tool. Hilfreich ist es überall dort,
wo Änderungen an einer größeren Zahl
von Dateien zu verwalten sind. Gleichzeitig sind die zahlreichen Features und
Optionen nicht trivial, sodass sich sicher
schon mancher gewünscht hat, diese Versionsverwaltung einmal von Grund auf
zu studieren. Ein gutes Hilfsmittel dabei
ist das vorliegende Buch.
Die Autoren setzen keine Vorkenntnisse
voraus und beginnen mit einfachen Beispielen für die grundlegenden Kommandos zum Einfügen und Committen von
Dateien oder für die Statusabfrage. Aber
schon das zweite Kapitel verlässt die
Anfangsgründe und erläutert detailliert
Index, Objektmodell und die dahinterstehende Graphenstruktur. Der aufmerksame Leser wird für seine Mühe Zug um
Zug durch das bessere Verständnis der
Zusammenhänge belohnt.
Das dritte Kapitel legt auch in der Praxis
eine Schippe zu und kommt zu den komplexeren Kommandos für das Verwalten
und Verschmelzen von Branches, das
Taggen von Releases oder das Wiederherstellen älterer Versionen. Ausführlich
gehen die Autoren auf das Lösen von
Merge-Konflikten ein. Noch tiefer steigt
das nächste Kapitel in die Materie ein,
Info
Valentin Haenel, Julius
Plenz:
Git
2. Auflage
Open Source Press, 2014
336 Seiten
30 Euro
ISBN: 978-3-9553-9119-5

das insbesondere das Kommando Rebase
vorstellt, das Gruppen von Commits zwischen Branches verschieben kann, damit
die Commit-Geschichte eines Projekts
leicht verständlich bleibt.
Bis hierhin konnte man noch alles mit
einer einzelnen Instanz von Git nachvollziehen, doch in Kapitel fünf geht es
um verteiltes Git und das Klonen von
Repositories, das Transferieren von
Commits oder das Verwalten eines GitSpeichers aus der Ferne. Kapitel sechs
ordnet das Gelernte dann in übergeordnete Arbeitsabläufe ein, etwa in einen
Workflow für das Release-Management.
Es schließen sich noch Kapitel über Git
als Serverdienst und über die weitergehende Automatisierung mit Hilfe so genannter Hooks an.
Das vorliegende Buch über Git gibt einen umfassenden Einblick in das Versionskontrollsystem und eignet sich auch
zum Nachschlagen bei weniger häufig
anfallenden Aufgaben.

Programmieren lernen
Auch die C++-Einführung von Torsten
Will möchte Leser ohne Vorkenntnisse
mitnehmen. Ihnen bereiten die ersten gut
80 Seiten mit einer sehr flach ansteigenden Lernkurve einen bequemen Einstieg.
Wer sich schon etwas mit Programmierung befasst hat, kann den ersten Teil
verlustlos überspringen.
Der zweite Teil beginnt dann schon mit
einer systematischen Vorstellung der
Sprachelemente, angefangen bei den
Operatoren über die eingebauten Datentypen, Streams, Ein- und Ausgabeoperatoren, über Container und Zeiger bis hin
zu Funktionen, Kontrollstrukturen und
zur Fehlerbehandlung.

Eine gute Idee ist das vielen Kapiteln
vorangestellte „Kapiteltelegramm“, das
eine stichpunktartige Aufzählung der
Lerninhalte bringt. Am Ende des Kapitels folgt dann noch einmal eine kurze
Zusammenfassung mit einer Reihe von
Aufgaben, mit denen der Leser seinen
Fortschritt überprüfen kann.
In dieses konsequent auf das Sprachenlernen ausgerichtet Konzept passt, dass
der Autor den Leser durchweg direkt
anredet. Glücklicherweise überschlägt er
sich dabei nicht vor Lockerheit, sondern
bleibt freundlich-distanziert. Das unterstreicht eher den Lehrbuchcharakter,
wirkt aber nicht störend.
Der dritte Teil des Buches dreht sich
vor allem um Datenstrukturen. Im Mittelpunkt stehen eigene Datentypen wie
Aggregate und Structs. Auch den Konstanten ist ein Kapitel gewidmet, genauso
den zentralen Konzepten der Klassen und
der Vererbung. Ein abschließender vierter
Teil behandelt fortgeschrittene Themen.
Dazu gehören Adressen und Zeiger, Makros, Bibliotheken, Heap und Stack oder
dynamische Objekte.
Die vorliegende C++-Einführung eignet
sich wegen ihrer Systematik, der Kontrollfragen und eines ausführlichen Index
gut zum Selbststudium. Die Beschreibungen sind durchweg gut verständlich, die
Q
zahlreichen Beispiele instruktiv.
Info
Torsten T. Will:
Einführung in C++
Galileo Press, 2015
520 Seiten
25 Euro
ISBN: 978-3-8362-2677-6

02/2015

Know-how

Nagios-Überwachung mit und für den Raspberry Pi

Mit seinem lüfterlosen Design, den minimalen Ausmaßen und seinem geringen Stromverbrauch bringt sich der
Raspberry Pi sogar als Kandidat für einen Nagios-Server in Stellung, der sich sogar selbst überwachen kann.
Was dafür nötig ist, untersucht dieser Artikel. Udo Seidel

nario wäre der Ausfall des
Netzwerks. Was tun? Der
Minirechner müsste sich
selbst kontrollieren.

Temperatur im
Blick

© Sergey Yakovenko, 123RF

96

www.linux-magazin.de

Nagios auf Raspi

Selbstkontrolle

Die typischen Linux-Versionen für den
ARM-Rechner sind vergleichbar mit denen der x86-Desktop-Kollegen, sodass
auch eine Nagios-Installation kein Problem darstellt. Fällt allerdings der Strom
aus, fällt – zumindest ohne weitere Absicherung – auch der ARM-Zwerg ins
künstliche Koma, und daran hinge dann
die Überwachung einer Vielzahl anderer
Rechner. Ein ähnliches Schreckenssze-

Auch wenn der Raspberry
Pi ein genügsamer Kamerad ist, sollten doch ein
paar Randbedingungen
erfüllt sein, die ihm das
Leben zumindest erleichtern. Eine dieser Konditionen ist die Temperatur.
Mit Bordmitteln kann der
Anwender auslesen, wie
heiß die CPU ist.
Dabei gibt es zwei Möglichkeiten: Erstens die
Datei »temp« im PseudoDateisystem »debugfs«
(Listing 1). Die CPU-Temperatur ist dort in Millicelsius hinterlegt.
Zweitens kann der Nutzer die VideocoreWerkzeuge ([1], [2]) benutzen – genauer
das Kommando »vcgencmd«. Dessen
Ausgabe ist für den Normalverbraucher
eher verdaulich (Listing 1).
Laut Hersteller-Spezifikation sollte der
ARM-Rechner im Temperaturbereich von
0 Grad bis 70 Grad keine Probleme be-

kommen. Dieser Bereich ist übrigens der
kleinste gemeinsame Nenner aller Chips
des Raspberry-Boards [3]. Die Temperaturüberwachung ist also sinnvoll. Die
Entwicklung eines entsprechenden Moduls ist keine Herausforderung. Eine
Beispiel-Implementierung in Shellcode
findet sich im Github-Repository des Autors [4]. Auf Nagios-Exchange gibt es
etwas Ähnliches [5].
Mit »vcgencmd« lässt sich noch eine
Reihe anderer Parameter auslesen. Für
experimentierfreudige Pi-Benutzer sind
Werte wie Spannung oder Taktfrequenz
eventuell beachtenswert (Tabelle 1). Der
Autor war daran weniger interessiert
und hat diese Werte daher nicht in sein
Nagios-Plugin »check_rpi« (Abbildung 1)
integriert.
Gefahr droht auch bei der Stromversorgung. Bei komplettem Stromausfall
gibt's gleich zwei Probleme. Das offensichtliche ist, dass der ARM-Zwerg
selbst handlungsunfähig ist, wenn die
externe Spannungszufuhr fehlt. Abhilfe
schaffen externe Batterien, Akkupacks
oder am besten eine USV. Eine speziell auf den Raspberry Pi zugeschnittene
Lösung stellte ein Artikel im vorigen
Linux-Magazin vor. Der Einsatz der dort
beschriebenen USV Upis bewirkt, dass
Nagios erst mal weiterläuft, wenn kein
Strom aus der Steckdose kommt.

Tabelle 1: Interna des Raspberry Pi abfragen
Listing 1: Auslesen der CPUTemperatur
01 <$ cat /sys/class/thermal/thermal_zone0/temp
02 48692
03
04 $ vcgencmd measure_temp
05 temp=48.7'C

Argument/Option
measure_clock
measure_volts
measure_temp
get_mem
codec_enabled
version

Bedeutung
Taktfrequenz verschiedener Komponenten
Spannung von Kern oder Speicher
Eigentemperatur
Speicherzuweisung für die CPU und GPU
Verfügbare Multimedia-Codecs
Firmwareversion

02/2015

Ist die schicke USV Upis an den Raspberry Pi angeschlossen, kann Nagios
auch einen Blick auf die wichtigen Parameter dieses Geräts werfen. Die USV verfügt über einen I2C-Bus [6], auf den der
ARM-Zwerg zugreifen kann. An dieser
Stelle sei nochmal ein Firmware-Upgrade
der Upis-Einheit empfohlen, da neuere
Versionen zusätzliche Status-Informationen zugänglich machen.
Eine aktuelle Liste der I2C-Register und
ihrer Funktionen ist unter [7] zu finden. Auf der Raspberry-Seite benötigt der
Nagios-Admin noch die »i2c-tools« [8]
– und schon kann es losgehen. Wer es
langsam angehen will, prüft zunächst mit
»i2cdetect«, ob die in der Dokumentation
erwähnten Register auch tatsächlich zugänglich sind.
Das Beispiel in Listing 2 zeigt die eines
aktuellen Raspberry Pi B. Die gefundenen
Register sind »0x69«, »0x6a« und »06b«,
das deckt sich mit den Angaben der Datei
[7]. Wem ein Test nicht genügt, der kann
mit »i2cdump« noch tiefer graben. Dann
zeigt sich, ob tatsächlich Daten über den
Datenbus gehen (Listing 2).
Ein genauer Blick in die eben erwähnte
Liste zeigt, dass der Status der Stromversorgung der Upis unter der Adresse »0x6a
0x00« zu finden ist. Genau genommen
steht dort, wie das Gespann aus Rasp-

leistet hier das kleine C-Programm, dessen Quelltext unter [11] zu finden ist.

berry und Upis seinen Strom bezieht. Im
Beispiel von Listing 2 steht »02«. Das bedeutet, dass die Spannung am USB-Port
der USV anliegt. Fehlt die externe Stromversorgung, steht im Status-Register eine
»04«. Weitere mögliche Zustände sind in
Tabelle 2 aufgelistet [9].
Nun braucht der Admin nur noch das
Nagios-Plugin, das diesen Register-Wert
überwacht und auswertet. Der Autor war
bei einer entsprechenden Internetrecherche nicht erfolgreich und schrieb es daher
kurzerhand selbst [10]. Übrigens hat die
USV ebenfalls einen Temperatursensor.
Doppelt hält besser. Daher befindet sich
eine entsprechende Prüfroutine im Lieferumfang des Nagios-Plugins »check_upis«
(Abbildung 2).
Mit den Temperaturwerten des Raspberry
Pi und seiner USV und dem Status der
Stromversorgung stehen die wichtigsten
Parameter unter der Aufsicht von Nagios. So kann der Wächter seinen eigenen Gesundheitszustand überprüfen und
kommunizieren. Ein Aufbohren durch die
Überwachung weiterer Parameter der
USV ist einfach möglich. Gute Dienste

Zweites Leben für ein
Handy
Apropos Kommunikation: Die ist eine
Herausforderung beim Totalausfall der
Stromversorgung. Grob skizziert besteht
die Lösung aus dem Koppeln des Raspberry Pi mit einem Handy per Bluetooth
und der Verwendung geeigneter Software.
Ersteres ist ausgesprochen problemlos.
Linux-taugliche USB-Adapter für diesen
Kurzstreckenfunk gibt es reichlich. Eine
einfache Internetrecherche führt schnell
zum Ziel.
Wer unsicher ist, kann das Ergebnis noch
bei Raspishop [12], Adafruit [13], Modmypi [14] oder Elinux.org [15] gegenprüfen. Im vorliegenden Artikel kommt
ein Gerät vom Hersteller Bigtec [16]
zum Zug. Die Rolle des Mobiltelefons
übernahm ein ehrwürdiges Siemens S55
(Abbildung 3).
Das Koppeln per Bluetooth erfolgt nach
der Standardprozedur unter Linux. Der

Listing 2: Register mit den I2C-Tools prüfen.
01 $ i2cdetect -y 1
02

0

1

2

03 00:

3

4

5

6

7

8

9

a

b

c

d

e

f

-- -- -- -- -- -- -- -- -- -- -- -- --

04 10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -05 20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -06 30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -07 40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -08 50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -09 60: -- -- -- -- -- -- -- -- UU 69 6a 6b -- -- -- -10 70: -- -- -- -- -- -- -- -11 $
12 $ i2cdump -y 1 0x69 b| head -3
13

f

0123456789abcdef

14 00: 57 53 16 07 01 11 14 00 00 ff ff ff ff ff ff ff

0

1

2

3

4

5

6

7

8

9

a

b

c

d

e

WS?????.........

15 10: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff

................

16 $
17 $ i2cdump -y 1 0x6a b| head -3
18

f

0123456789abcdef

19 00: 02 11 04 84 04 96 04 40 00 47 04 39 02 01 ff ff

0

1

2

3

4

5

6

7

8

9

a

b

c

d

e

???????@.G?9??..

20 10: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff

................

21 $
22 $ i2cdump -y 1 0x6b b| head -3
23

Abbildung 1: Das Nagios-Plugin »check_rpi« bei der
Arbeit.

f

0123456789abcdef

24 00: 6d 00 ff 1e 00 ff 00 00 00 00 05 01 00 00 00 00

0

1

2

3

4

5

6

7

8

9

a

b

c

d

e

m..?......??....

25 10: 00 00 00 00 ff ff ff ff ff ff ff ff ff ff ff ff

................

Nagios auf Raspi

Know-how

Upis, bitte melde dich

Abbildung 2: Das Nagios-Plugin »check_upis« im Einsatz.

www.linux-magazin.de

Es gibt noch ein weiteres Problem: Die
Benachrichtigung per E-Mail oder SMS
über so genannte SMS-Gateways ist dann
mit sehr großer Wahrscheinlichkeit auch
nicht mehr möglich. Im Normalfall setzt
diese Kommunikation auf einer Infrastruktur auf, die ohne Strom auch nicht
mehr arbeitet. Hier kann das gute alte
Mobilfunknetz helfen.
Eine Möglichkeit wäre der Anschluss eines geeigneten USB-Sticks an den Raspberry Pi. In vielen Fällen benötigen diese
Geräte aber so viel Spannung, dass man
einen aktiven USB-Hub benutzen muss.
Fällt der Strom aus, sind hier wieder Probleme programmiert. Die Alternative ist
ein einfaches Mobiltelefon.

97

02/2015

Know-how
98

www.linux-magazin.de

Nagios auf Raspi

Raspberry verhält sich hier natürlich
nicht anders als ein gewöhnliches Desktop-Linux.
Für die Kommunikation mit dem Mobiltelefon kann der Benutzer zwischen
»scmxx« [17] oder »gammu« [18] wählen. Letzteres empfiehlt sich, auch wenn
Scmxx auf den Datenaustausch mit
Siemens-Handys spezialisiert ist. Die
Entwicklung von Gammu scheint deutlich reger zu sein also die von Scmxx.
Spätestens die Anzahl der unterstützten
Mobiltelefone gibt den Ausschlag für
die weniger spezialisierte Software. Einen einfachen Test zeigt Listing 3. Falls
nicht schon vorhanden, muss der NagiosAdmin noch das SMS-Sende-Kommando
in der Datei »commands.cfg« definieren.
Das in Listing 3 gezeigte Kommando
dient als gute Vorlage.
In den Tests hat es sich bewährt, die
Bluetooth-Verbindung zwischen Mobiltelefon und dem Raspberry Pi regelmäßig
kontrolliert zu beenden und anschließend wieder aufzubauen. Ein einfacher
Cronjob erledigt dies. Dem Selbstüberwachungs-Mantra entsprechend könnte
der Benutzer sogar ein Nagios-Plugin
schreiben, das die Bluetooth-Verbindung
im Auge behält.
Damit sind alle Puzzleteile beieinander.
Die Upis schützt die Nagios-Instanz auf
dem Raspberry Pi vor einem Stromaus-

Abbildung 3: Ein Siemens S55 aus „besseren Tagen“ dient dem Raspberry als Tor zum Mobilfunknetz.

fall. Die Bluetooth-Kopplung über ein
Mobiltelefon erlaubt es zusätzlich, diese
wichtige Information nach draußen zu
schicken.

Zum Schluss
Mit der USV und einem ausgedienten
Handy verwandeln Enthusiasten den
Raspberry Pi recht schnell in eine autarke
IT-Überwachungsinstanz. Die kann sich
selbst auf Herz und Nieren prüfen. Das
hier vorgestellte Setup hilft auch, wenn
der Internetprovider oder das hauseigene
DSL-Modem Probleme haben. (jcb) Q

Tabelle 2: Status der Spannungsversorgung
Register-Wert
01
02
03
04
05

Bezeichner
EPR
USB
RPI
BAT
LPR

Erklärung
externe Spannungsquelle
USB-Port der USV
USB-Port des Raspberry Pi
Akku der USV
wie BAT, aber Raspberry ist abgeschaltet

Listing 3: Handy koppeln
01 $ rfcomm connect rfcomm0 00:01:E3:09:F9:67 1 &
02 [1] 5281
03 $ Connected /dev/rfcomm0 to 00:01:E3:09:F9:67 on channel 1
04 Press CTRL-C for hangup
05
06 $ rfcomm -a
07 rfcomm0: 00:15:83:15:A3:10 -> 00:01:E3:09:F9:67 channel 1 connected [reuse-dlc release-on-hup
tty-attached]
08 $
09 $
10 $ echo "Unbedingt das Linux-Magazin lesen" | /usr/bin/gammu --sendsms TEXT 01781234567
11 If you want break, press Ctrl+C...
12 Sending SMS 1/1....waiting for network answer..OK, message reference=198

Infos
[1] Video Core Tools: [http://github.com/
nezticle/RaspberryPi-BuildRoot/wiki/
VideoCore-Tools]
[2] Vcgencmd Usage: [http://elinux.org/
RPI_vcgencmd_usage]
[3] Raspberry-Hardware:
[http://elinux.org/RPi_Hardware]
[4] Check_rpi:
[http://github.com/useidel/check_rpi]
[5] Temperaturüberwachungs-Plugin:
[http://exchange.nagios.org/
directory/Plugins/Others/
Rasberry-Pi-Temperature-Monitor/details]
[6] I2C-Bus:
[http://www.i2c-bus.org/de/i2c-bus]
[7] Übersicht über die Upis-Register: [http://
app.box.com/s/23y7vwywllc10ga3pb14]
[8] I2C-Tools: [http://www.lm-sensors.org/
wiki/I2CTools]
[9] Upis User Manual: [http://www.pimodules.
com/_pdf/Upis_Manual_V1.10.pdf]
[10] Check_upis:
[http://github.com/useidel/check_upis]
[11] Quelltext »upis.c«:
[http://www.forum.pimodules.com/
viewtopic.php?f=7&t=47]
[12] Raspishop: [http://www.rasppishop.de]
[13] Adafruit: [http://www.adafruit.com]
[14] Modmypi: [http://www.modmypi.com]
[15] Elinux: [http://elinux.org/RPi_USB_
Bluetooth_adapters]
[16] Bigtec: [http://www.amazon.de/
BIGtec-Bluetooth-Adapter-Dongle-Class2/
dp/B003WJBZK0]
[17] Scmxx:
[http://sourceforge.net/projects/scmxx/]
[18] [GW]ammu: [http://de.wammu.eu]

02/2015

Know-how

Zeitgemäße Linux-IPC

Die Interprozesskommunikation führt ein fast unsichtbares Dasein in den Fundamenten des Systems, wo Nachrichten zwischen den Diensten hin und her flitzen. Doch auch hier finden gelegentlich Revolutionen statt, wie
die Beispiele Binder und Kdbus verdeutlichen. Florian Evers

Binder und Kdbus der klassischen IPC in
Linux gegenüber.

Binder in Android

© bowie15, 123RF

100

www.linux-magazin.de

Android-IPC

Lasst uns reden!

Der modulare Aufbau zeitgenössischer
Computersysteme sorgt dafür, dass Programme häufig von den Daten anderer
Prozesse abhängen. Die meisten Anwendungen reden deshalb mit Diensten, die
im Hintergrund Daten verarbeiten oder
über ein Netzwerk kommunizieren. Das
Betriebssystem, genauer gesagt dessen
Interprozesskommunikation (IPC, [1]),
kümmert sich um die Datenübertragung
zwischen den Prozessen. Sie stellt Verfahren bereit, mit denen Prozesse Daten
über den Kernelspace austauschen.

Neuer Anstrich
Klassische Verfahren wie Pipes, Message
Queues, Shared Memory oder Sockets,
die so genannten Primitives, sind für diesen Zweck weit verbreitet, rücken aber
allmählich in den Hintergrund. Sie bilden zwar noch die Basis der Datenübertragung, kommuniziert wird jedoch auf
höherer Ebene. Auf Grundlage der klas-

sischen Verfahren tauchen immer wieder
neue Programmiersprachen und Frameworks auf. Sie unterstützen die Prozesse
dabei, miteinander zu reden, indem sie
passende Protokolle und Dienste anbieten. Zugleich verlagern sie die Kommunikation in Middleware [2], die meist eine
gesonderte Software-Ebene bildet und in
einem separaten Prozess läuft.
Anders als die Local Procedure Calls in
Windows und die Doors in Solaris besitzt
Linux, mit Ausnahme von Android, keinen leistungsfähigen IPC-Mechanismus.
Das soll sich mit dem Kernel-DesktopBus (Kdbus, [3]) ändern. Android wiederum bringt mit Binder [4] zwar ein
effizientes Verfahren zur Interprozesskommunikation mit, das jedoch außerhalb von Googles Betriebssystem nicht
zum Zuge kommt.
Für die effiziente Datenübertragung verwenden Binder und Kdbus dedizierte
und eng an die Middleware gekoppelte
Kerneltreiber. Der folgende Artikel stellt

Die Interprozesskommunikation mit dem
Binder-Framework zieht sich konsequent
durch alle Ebenen des Android-Stack
(Abbildung 1). „Die Android-Plattform
setzt den Binder beinahe überall ein, wo
Prozesse interagieren“, erklärt Dianne
Hackborn, eine Binder-Entwicklerin [5].
Das Binder-Framework, das im Kern auf
dem freien Open-Binder-Projekt [6] basiert, wurde für Android generalüberholt
und an die speziellen Anforderung einer
mobilen Plattform angepasst. Trotz umfangreicher Anpassungen entsprechen
Aufbau und Ablauf der Kommunikation
im Kern dem von Open Binder.
Durch die Service-orientierte Architektur
von Android [7] kommunizieren Prozesse nach dem Client-Server-Prinzip,
wobei der Kerneltreiber im Hintergrund
hilft. Sowohl im Applikation Framework
als auch auf nativer Ebene ermöglichen
Dienste den Zugriff auch auf Funktionen
der Hardware (Abbildung 1). Im Application Framework bilden sie die Basis, um
Daten über High-Level-Komponenten wie
Intents, Content Provider und Broadcast
Receiver zu übertragen.
Die IPC ist in die Android-Runtime integriert, da Android alle Applikationen
auf Kernelebene in voneinander isolierten Prozessen [8] ausführt, die jedoch
miteinander reden müssen. Alle Dienste
lässt sich ein Entwickler über die Android
Debug Bridge ausgeben:
adb shell service list

Android kombiniert im Binder-Framework leichtgewichtige Remote Procedure

02/2015

Know-how
Home

IPC
Contacts

IPC
Phone

IPC
Browser

Content
Providers

Wie aber sieht die klassische IPC aus? Indem ein System Prozesse durch Speicherbereiche und Schutzmechanismen strikt
voneinander trennt, zwingt es diese, den
Umweg über so genannte globale Strukturen wie Dateien oder virtuelle Speicherbereiche zu nehmen. Die klassischen Verfahren der Interprozesskommunikation,
die Primitives, verwenden Schreib- und
Lese-Operationen, um Daten zu übertragen. Zu den bekanntesten Primitives
gehören Pipes, Message Queues, Sockets
und Shared Memory. Der Ablauf erfolgt
nach dem Peer-to-Peer-Prinzip, alle Prozesse dürfen gleichberechtigt lesen oder
schreiben.
Im ersten Schritt verbindet das System die
nicht-verwandten Prozesse wahlweise
über einen Schlüssel, eine Datei oder mit
Hilfe von Adressen. Hinterher greifen die
Prozesse gemeinsam auf eine globale
Struktur zu und tauschen Daten mit Hilfe
von Schreib- und Lese-Operationen aus.
Listing 1 veranschaulicht, wie ein Sender
Daten über eine Pipe verschickt. Da dies
über Dateien passiert, nutzen Sender und

www.linux-magazin.de

IPC

Application Framework
Activity
Service

Window
Service

Vibrator
Service

Wifi
Service

Battery
Service

Package
Service

Telephony
Service

Resource
Manager

Location
Service

Notification
Service

Android
Runtime

JNI & IPC

Native Layer
Surface
Manager

Media
Framework

SQlite

SSL

Open GL

Vold

Netd

Webkit

Libwifi

Libcamera

Libgps

Libc

Dalvic
VM

Core Libs

System Calls

Linux-Kernel

Klassiker

Android-IPC

Applications
IPC

Display
Driver

Camera
Driver

GPS
Driver

Binder
Driver

Keypad
Driver

Wifi
Driver

Audio
Driver

Power
Management

Abbildung 1: Das Binder-Framework berührt fast alle Ebenen des Android-Stack.

Empfänger gemeinsame Dateinamen, um
miteinander zu kommunizieren.

Zwischenhändler
Unterschiede bei der Datenübertragung
über Primitives bestehen nur darin, wie
das System die Verbindungen aufbaut
und wie die jeweiligen globalen Strukturen aussehen. Die Primitives sind tief im
Betriebssystem verankert. Standards wie
System-V und Posix definieren Schnittstellen, die Entwickler nutzen, um Primitives zu erstellen und zu löschen sowie
Daten zu lesen und zu schreiben.
Dabei kämpft das System mit der Herausforderung, die Operationen auf die Primitives synchronisieren zu müssen. Diese
Abstimmung soll verhindern, dass Prozesse zeitgleich auf globale Strukturen

zugreifen, was zu fehlerhafter Synchronisation (Deadlocks) oder fehlerhaften
Datenübertragungen (Race Conditions)
führen kann.
Weil die Synchronisation aufwändig und
fehleranfällig ist, entsteht in diesem BeListing 1: IPC via Pipe
01 #define PIPE_NAME "/tmp/myPIPE"
02 [...]
03 int main(int argc, char** argv) {
04

[...]

05

// Connect to pipe

06

pipe = open(PIPE_NAME, O_WRONLY);

07

[...]

08

// Write data to pipe

09

write(pipe, data, strlen(data));

10

[...]

11

return 0;

12 }

© Aleksandar (Saša) Gargenta, CC BY-NC-SA 3.0

Calls (LRPC, [9]) und mehrere Treiber,
um Daten zwischen den isolierten Prozessen zu übertragen. Der Einsatz der
Bionic Libc [10], einem Abkömmling
von BSDs Standard-Libc, hat das System inkompatibel zu System-V und der
klassischen Interprozesskommunikation
gemacht, weshalb sich Androids IPC fast
ausschließlich auf das Binder-Framework
beschränkt.
Auf der nativen Ebene bündelt die
Libbinder-Bibliothek die ganze Funktionalität des Binder-Framework [11] sowie die Schnittstellen zum Application
Framework (Abbildung 1), um etwa von
Java aus auf native Dienste zuzugreifen.
Die Middleware wiederum verwendet
unter anderem die Libbinder-Bibliothek,
um Methoden von Diensten wie dem Mediaplayer, dem Kameradienst oder dem
Audio Flinger aufzurufen.
Das Binder-Framework bietet zudem
Sicherheitskonzepte für den Zugriff auf
Daten und Ressourcen an ([12], [13]).
Damit gestattet Android als erstes LinuxBetriebssystem die effiziente und systemweite IPC unabhängig von den klassischen Verfahren.

101

02/2015

Know-how
Android-IPC

Applications and Framework

Feste Bindung
Binder-IPC

www.linux-magazin.de

Android System Services
System Server

Media Server
Audio Flinger
Camera
Service

Mediaplayer
Service

Search
Service
Activity
Manager

Other Media
Services

Window
Manager

Other System Services and Managers

HAL
Camera HAL

Audio HAL

Graphics HAL
Other HALs

© source.android.com

102

ten serialisieren und wie sie zwischen
Client und Server vermitteln.

Linux-Kernel
Camera
Driver

Audio Driver
(Alsa, OSS, etc)

Display Driver
Other Drivers

Als erstes Linux-Betriebssystem verwendet Android nicht mehr Primitives zur
Interprozesskommunikation, sondern einen dedizierten Kerneltreiber (»/dev/binder«). Zusammen mit Remote Procedure
Calls bildet das Binder-Framework die
Middleware in der Low-Level-Architektur
von Android (Abbildung 2).
Ursprünglich stammt der Binder-Mechanismus aus dem Betriebssystem Beos
[14]. Später entstand in dem freien
Open-Binder-Projekt ein Framework für
den Kernel 2.6.10, das sich jedoch nie
durchsetzen konnte. Die Terminologie
wurde allerdings beibehalten und setzt
leider noch immer auf die teils irreführenden Bezeichnungen. So bezieht sich
der Begriff Binder wahlweise auf das
gesamte Framework, einen Treiber oder
die Rahmenstruktur eines Dienstes. Für
Android entwickelte Google das BinderFramework neu und passte es an die
Anforderungen der mobilen Plattform an.

Zu Diensten
Abbildung 2: Die Low-Level-Architektur von Binder in Android.

reich Mehrarbeit für Entwickler, die das
reine Übertragen der Nutzdaten zu einem
Nebenkriegsschauplatz macht.

Hinter den Kulissen
In den Frameworks sorgt Middleware,
die ihren Ursprung in verteilten Systemen hat, für mehr Überblick. Sie verbirgt
die komplexe Infrastruktur aus Datenübertragung und Synchronisation hinter
einer Abstraktionsschicht und verlagert
die Datenübertragung auf eine gesonderte Software-Ebene. In der Middleware
kommunizieren Prozesse über Dienste
und Protokolle miteinander und folgen
dabei dem klassischen Client-Server-Modell. Ein Server ist dabei ein Prozess, der
Dienste bereitstellt, ein weiterer Prozess
tritt in der Regel als Vermittler zwischen
Client und Server auf.
Wer schon mal mit klassischen Methoden einen Dienst oder ein Protokoll
programmiert hat, weiß die Vorteile von
Middleware-Technologie zu schätzen. Im

Unterschied zu Primitives baut hier ein
separater Prozess die Verbindung auf und
vermittelt anschließend zwischen den
Client- und Server-Prozessen.
Beispiele dafür wären der D-Bus-Daemon
von D-Bus und der Object-Request-Broker in Corba. Der Prozess überträgt das
gesamte Datenaufkommen erst zum Vermittler und von dort zum Empfänger.
Das halbiert zwar die Effizienz, reduziert
dafür aber den Aufwand für den Entwickler deutlich.

Vermittlung bitte!
Steht die Verbindung, kann eine Applikation über eine wohldefinierte Schnittstelle Instanzen eines Dienstes aufrufen.
Remote Procedure Calls (RPC) kommen
als Technologie in Middleware sehr häufig zum Zuge. Auch der Desktop-Bus (DBus) und Corba sind verbreitete Architekturen für Middleware. Sie unterscheiden
sich darin, welche Protokolle sie einsetzen, auf welche Weise sie komplexe Da-

Für die Komponenten der Low-LevelArchitektur existiert wenig Dokumentation, sodass der systemweite Einsatz des
Binder-Framework nur schwer nachvollziehbar ist. Der Entwickler definiert eine
Schnittstelle für den Dienst, der in einem
Serverprozess läuft, und weist ihm einen eindeutigen Namen zu. Sobald der
Dienst startet, macht der Server ihn unter
seinem Namen dem Context-Manager bekannt. Bei diesem handelt es sich um einen stets erreichbaren Dienst des ServiceManager-Prozesses. Letzterer wiederum
gleicht einer Art Adressbuch, kennt alle
anderen Dienste und liefert Daten für
den Verbindungsaufbau. Er fungiert als
Vermittler zwischen dem Client- und dem
Serverprozess. Der Artikel zeigt weiter
unten an Codeproben, wie die Prozesse
miteinander reden.

Transaktionen und Token
Remote Procedure Calls übertragen ihre
Daten mit Hilfe von Transaktionen. Hat
der Initprozess einen von Androids Sys-

02/2015

Know-how

Eine wichtige Nachricht

ServiceManager

BinderDriver

ServerProzess

Android-IPC

ClientProzess

»Register
Buffer«
»Register
Service«
»Get Service«

"

»Get Token«

!

www.linux-magazin.de

temdiensten im Native Layer gestartet
(Abbildung 2), legt der Serverprozess,
in dessen Kontext der Dienst läuft, einen Transaktionspuffer an, auf den der
Kerneltreiber Zugriff erhält. Der Puffer
ist ein Speicherbereich, über den der
Serverprozess Transaktionen empfängt.
Der Kerneltreiber verwaltet ihn über eine
ID, die Serverprozess und zugehörigen
Dienst identifiziert.
Wie bei den Primitives setzt die Datenübertragung voraus, dass zwischen Client
und Server eine Verbindung besteht. Der
Client kennt den Namen des Dienstes
und fordert beim Service-Manager die
Schnittstelle (Proxy) an, die die Methoden des Dienstes enthält. Dabei hinterlegt
der Service-Manager-Prozess beim Kerneltreiber einen Token für jede Verbindung zwischen Client und Server oder
genauer gesagt zwischen dem Client und
der ID des Transaktionspuffers.
Eine Transaktion enthält neben den verschiedenen Parametern einer Funktion
auch immer den Token [15], über den
der Server die entsprechende Verbindung und damit den Transaktionspuffer
identifiziert. Für die Datenübertragung
kopiert der Kerneltreiber die Transaktion
dann aus dem Clientprozess direkt in den
Transaktionspuffer des Servers. (Abbildung 3, Schritte 4 und 5).

§

»Do
Transaction«
»Copy Data«
»Copy return
Value«

$

%

»Call
Function«

Abbildung 3: Der Service-Manager-Prozess vermittelt (Schritte 1 bis 3) zwischen Client- und Serverprozess.

synchron. Der Client blockiert, bis er eine
Antwort vom Dienst erhält, der im Serverprozess läuft.
Während einfache Transaktionspuffer
1024 KByte nicht überschreiten, lassen
sich größere Datenmengen mit Hilfe einer
Zero-Copy-Operation übertragen. Diese
verschickt nur noch einen Deskriptor,
der auf einen Speicherbereich zeigt. Das
Ashmem-Subsystem (Android Shared
Memory) und das Pmem-Subsystem
(Physical Memory) verwalten den gemeinsamen Speicherbereich.

enter sein und einige Einschränkungen
von D-Bus beseitigen. Wo D-Bus zum
Beispiel zehn Kopiervorgänge, vier Validierungen und vier Kontextwechsel für
einen Request-Reply-Vorgang benötigt,
braucht Kdbus nur noch zwei Kopiervorgänge, zwei Validierungen und zwei
Kontextwechsel. Setzt der Client einen
Request ab, wartet er nicht auf die Antwort des Servers, sondern widmet sich
Listing 2: Client fordert Dienst an
01 [...]
02 sp<IServiceManager> sm = defaultServiceManager();

Listing 2 zeigt, wie ein Clientprozess
den fiktiven „Hello World“-Dienst vom
Service-Manager-Prozess anfordert und
verwendet. Zuvor, im ersten Schritt, registriert der Serverprozess in Zeile 6 von
Listing 3 aber erst mal den Dienst unter
dessen Namen beim Service-ManagerProzess (Abbildung 3, Schritt 1). Dann
verbindet sich der Client mit dem Serverdienst, indem er diesen über seinen
Namen beim Service-Manager-Prozess
anfordert (Abbildung 3, Schritt 2).
Zusätzlich muss der Serverprozess in
Zeile 8 von Listing 3 einen Thread-Pool
eröffnen, erst dann kann er Transaktionen vom Kerneltreiber entgegennehmen
und abarbeiten. Die Anzahl der Threads
im Pool ist dabei auf 16 begrenzt.
Hat der Kerneltreiber eine Transaktion
an einen Server gesendet, arbeitet er sie
in einem Thread aus dem Thread-Pool
ab. Die Kommunikation verläuft dabei

Kdbus
Für Linux ist mit dem Kernel D-Bus
(Kdbus) eine Methode der Interprozesskommunikation entstanden, die sehr an
den Binder-Mechanismus in Android
erinnert. Wie der Name schon verrät,
basiert Kdbus im Kern auf D-Bus. Das
IPC-Framework lagert die Middleware
teilweise in einen separaten Prozess aus.
Dieser zusätzliche D-Bus-Daemon (Abbildung 4) übernimmt die Funktion eines
Vermittlers zwischen den Prozessen.
Prozesse interagieren im Fall von Kdbus über Nachrichten, die wiederum
vergleichbar mit den Transaktionen von
Binder sind. Das System überträgt sie
über einen Bus im D-Bus-Daemon vom
Sender zum Empfänger.
Kdbus verlagert nun den D-Bus-Daemon
in den Kernel, um die Nachricht ohne
Umweg zu übermitteln. Das soll effizi-

03 // Get Service
04 sp<IBinder> binder = sm->getService(String16(
"helloWorld"));
05 sp<IHelloWorld> hw = interface_cast<IHelloWorld>
(binder);
06 // Call remote method (initiate transaction)
07 hw->helloWorld();
08 [...]

Listing 3: Serverprozess meldet
Dienst an
01 int main(int argc, char* argv[]) {
02

// Register buffer

03

sp<ProcessState> proc(ProcessState::self());

04

sp<IServiceManager> sm = defaultServiceManager();

05

// Register service

06

sm->addService(String16("helloWorld"),new
HelloWorld());

07

// Start waiting for transactions

08

ProcessState::self()->startThreadPool();

09

IPCThreadState::self()->joinThreadPool();

10 }

103

02/2015

Know-how
Android-IPC
www.linux-magazin.de

104

nel-basierten IPC-Varianten kommen so mit
einem Minimum an
Kopiervorgängen und
Kontextwechseln aus.
Neben der Datenübertragung überwachen
die Kerneltreiber den
Prozess X
D-Bus-Daemon
Prozess Y
Zugriff auf die Dienste
Abbildung 4: Der D-Bus-Daemon agiert als separater Prozess.
eines Prozesses beziehungsweise eines Serder nächsten Aufgabe. Das unterscheidet vers und bauen die Verbindung zwischen
Kdbus von Binder, das Daten synchron Client und Server auf.
Während die Middleware in Binder auf
überträgt.
Zusätzlich stecken weitere SicherheitsRemote Procedure Calls basiert, fußt die
routinen in Kdbus, die Berechtigungen
von Kdbus auf D-Bus. Beide MiddlewareTechnologien sind teilweise in die Kernelund Zugriffe überprüfen. Die Entwickler
treiber integriert. Mit klassischen Methohaben daneben den Umfang des Quellden würden Remote Procedure Calls und
codes reduziert und XML komplett aus
D-Bus zusätzliche Prozesse benötigen,
dem Userspace verbannt. Im Gegensatz
um zwischen den Client- und Serverprozu D-Bus, das erst nach den Early-Boot-,
Initrd- und Late-Boot-Phasen einsatzbe- zessen zu vermitteln.
Stattdessen synchronisieren beide Framereit ist, steht Kdbus jederzeit zur Verfüworks Ressourcen nur noch im Server
gung [16].
und nicht mehr im Client. Frameworks
Überschreitet die Größe einer Nachricht
liefern dem Entwickler neben der Infra512 KByte, wird sie nicht mehr effizient
struktur zur Interprozesskommunikation
über den Bus übertragen. Abhilfe schafft
wieder der Zero-Copy-Mechanismus
auch Sicherheitskonzepte für den Zugriff
über das Memfds-Subsystem, das Binauf Dienste, Daten und Ressourcen.
ders Ashmem-Subsystem [17] entspricht.
Auch hier zeigen File-Deskriptoren auf
einen gemeinsamen Speicherbereich. Ein
Prozess, der einen Shared Memory an- Im Unterschied zu Binder, das Funktilegt, muss anschließend nur noch den
onsaufrufe vermittelt, versendet Kdbus
Memfd (Memory File Descriptor) für den
Nachrichten. Innerhalb der Server kümSpeicherbereich verschicken.
mern sich in Binder simultane Threads
Zum Schutz vor Manipulationen lassen
um die Transaktionen. In Kdbus empsich die Daten im Shared Memory zudem
fängt hingegen eine Fifo-Datenstruktur
versiegeln (Sealing) und so nachträglich
die Nachrichten und arbeitet sie nacheinander ab. Greg Kroah-Hartman, einer der
nicht mehr verändern. Als neues Feature
hilft zudem die probabilistische Daten- Kdbus-Entwickler, beschreibt den Unterstruktur Bloomfilter dabei, Multicast- schied zwischen Binder und Kdbus wie
und Broadcast-Nachrichten effizienter folgt: „Binder ist an die CPU gebunden,
zu versenden.
D-Bus (und damit auch Kdbus) ist an
RAM gebunden.“ [18]
Binder und Kdbus folgen Sicherheitskonzepten, die aber den speziellen AnforWährend also die klassische Interproderungen ihrer Plattformen entsprechen.
zesskommunikation die Primitives synDer Einsatz von Binder außerhalb von
chronisieren muss, bilden dedizierte
Android würde Sicherheitslücken einfühKerneltreiber bei Binder und Kdbus die
ren, die zuvor zu beheben wären. Kdbus
Basis einer effizienteren Datenübertra- ist konform zu Linux Security Modules
gung. Sie müssen die Daten nicht erst in
(LSM) und ermöglicht somit den Einsatz
eine globale Struktur und von dort in den
von Modulen wie SE Linux [19]. Über eiEmpfängerprozess übertragen, sondern
nen Berechtigungsdienst wie Polkit kann
kopieren sie ohne Zwischenschritt von
ein Entwickler zudem Berechtigungen für
einem Prozess in den anderen. Beide Kereinzelne Busse definieren.
Kernel

RAM versus CPU

Weniger reden, mehr sagen

Im Gegensatz zu Binder bietet Kdbus einen deutlich größeren Funktionsumfang:
Zu dem von D-Bus kommen hier beispielsweise zusätzliche Sicherheitskonzepte und Bloomfilter zum Versand von
Multicast-Nachrichten hinzu.

Ausblick
Kdbus steht in den Startlöchern und
wird voraussichtlich mit dem Linux-Kernel 3.19 oder 3.20 ausgeliefert. Memfd
und Sealing stecken bereits seit Version
3.17 im Kernel. Um Dienste oder Anwendungen zu implementieren, greift der
Entwickler zu der Infrastruktur der Libsystemd-Bibliothek. Dass Kdbus seinen
Vorgänger D-Bus ablösen wird, gilt als
sicher, da die Software Schwachstellen
von D-Bus entfernt und den Funktionsumfang erweitert.
Ob Kdbus die klassischen IPC-Methoden
ablöst, muss sich erst zeigen. Ein heterogenes System wie Linux, das mehrere
Möglichkeiten der Interprozesskommunikation anbietet, kann keine davon
kurzfristig entsorgen. Um kompatibel
zu D-Bus-Anwendungen und Diensten
zu bleiben, bietet »systemd-bus-proxy«
[20] eine Schnittstelle an, die den D-BusDaemon vertritt und eingehende Nachrichten über Kdbus weiterleitet.
Mit Binder stünde theoretisch eine kompakte IPC-Alternative zu Kdbus bereit.
Allerdings bedürfte es einiger Entwicklungs- und vor allem Überzeugungsarbeit in der Linux-Community, um diese
Alternative zu etablieren, weil sich beide
Ansätze doch recht deutlich unterscheiden. Innerhalb von Android ist Binder
ohne Frage unverzichtbar, ob es auch
eine Zukunft in Linux hat, bleibt jedoch
ungewiss. Die Linux-Entwickler haben
vor allem Bedenken bezüglich der Sicherheit und des Designs.
Umgekehrt scheinen sich auch die Hoffnungen einiger Entwickler, Kdbus könne
Binder in Android ablösen, weder in naher noch in ferner Zukunft zu erfüllen
[18]. Zu viele Komponenten sind eng
an Binder gekoppelt und machen eine
Wechsel zu Kdbus nur mit großem Aufwand möglich.
Obwohl Binder und Kdbus Daten effizienter übertragen, gibt es zudem von einigen Seiten Widerstand dagegen, die Interprozesskommunikation in den Kernel

02/2015

[15] Binder-Token:
[http://www.androiddesignpatterns.com/
2013/07/binders-window-tokens.html]
[16] Lennart Poettering über Kdbus [Video]:
[http://mirror.linux.org.au/pub/linux.
conf.au/2014/Friday/104-D-Bus_in_the_
kernel_-_Lennart_Poettering.mp4]
[17] Ashmem: [http://www.androidenea.com/
2010/03/share-memory-using-ashmem
-and-binder-in.html]
[18] Greg Kroah-Hartman über Kdbus und Binder: [http://kroah.com/log/blog/2014/01/
15/kdbus-details/]
[19] Thorsten Schreiber, „Android Binder:
Android Interprocess Communication“:
Ruhr-Universität Bochum, 2011
[20] »systemd-bus-proxyd«:
[http://www.freedesktop.org/software/
systemd/man/systemd-bus-proxyd.html]
[21] Kritik an Kdbus auf der Kernel-Mailingliste: [https://lkml.org/lkml/2014/11/29/6]
[22] Kdbus-Kritik: [https://forums.gentoo.org/
viewtopic-t-1004624.html?sid=
a52e6fc0b020177d94bbc8a0854c61f7]

Android-IPC

Know-how
Infos
[1] Interprozesskommunikation:
[http://de.wikipedia.org/wiki/
Interprozesskommunikation]
[2] Middleware:
[http://de.wikipedia.org/wiki/Middleware]
[3] Kdbus-Übersicht: [https://github.com/
gregkh/kdbus/blob/master/kdbus.txt]
[4] Android Binder:
[http://developer.android.com/reference/
android/os/IBinder.html]
[5] Binder in Android:
[https://lkml.org/lkml/2009/6/25/3]
[6] Open Binder:
[http://www.angryredplanet.com/
~hackbod/openbinder/docs/html/]

[7] Android-Systemarchitektur: [https://
source.android.com/devices/index.html]
[8] Application Sandbox:
[https://source.android.com/devices/
tech/security/overview/kernel-security.
html#the-application-sandbox]
[9] Lightweight Remote Procedure Call:
[http://dl.acm.org/citation.cfm?
id=77650]
[10] Androids Bionic Libc: [http://en.wikipedia.
org/wiki/Bionic_%28software%29]
[11] Das Binder-Framework im Detail:
[https://thenewcircle.com/s/post/
1340Deep_Dive_Into_Binder_Presentation.htm]
[12] Personal Information:
[https://source.android.com/devices/
tech/security/overview/app-security.
html#personal-information]
[13] Application Signing:
[https://source.android.com/devices/
tech/security/overview/app-security.
html#application-signing]
[14] Beos: [http://de.wikipedia.org/wiki/BeOS]

www.linux-magazin.de

zu verschieben. Einige Entwickler lehnen
dies ab, weil der Quellcode traditionell in
den Userspace gehöre ([21], [22]). Vermutlich wird Kdbus trotzdem kommen
und die Interprozesskommunikation in
Q
Linux effizienter machen. (kki)

105

02/2015

Statisch geprüft

106

www.linux-magazin.de

C++11

Programmieren

Modernes C++ in der Praxis – Folge 20

Damit sein Code nicht als Bananensoftware beim Kunden reift, setzt der umsichtige C++-Lieferant auf die
Funktion »static_assert()« und die Type-Traits-Bibliothek. Das dynamische Duo stellt Bedingungen an den
Quellcode, die der Compiler zur Übersetzungszeit verifiziert. Rainer Grimm

verlangt. Daneben zeigt die Abbildung
vor allem zwei Dinge: Erstens dass »static_assert()« jeden Aufruf evaluiert, und
zwar unabhängig davon, ob der Code
tatsächlich zum Einsatz kommt. Dies
gilt für den Aufruf im globalen Bereich
(Zeile 3), im Funktionsbereich (Zeile
8), im Klassenbereich (Zeile 12) und im
Blockbereich (Zeile 17). Zweitens zeigt
es, dass die Fehlermeldung den Text des
»static_assert()«-Aufrufs direkt verwendet: »error: static assertion 12: 32-bit adressing required«.
Seine volle Wirkung entfaltet »static_assert()« aber erst, wenn der Entwickler
den Aufruf mit der Type-Traits-Bibliothek
kombiniert.

Vorsicht ist die Mutter der Porzellankiste: Kontrolliert ein C++-Entwickler
seinen Code bereits, noch während der
Compiler ihn übersetzt, landen Fehler gar
nicht erst in der Porzellankiste, also beim
Kunden. Die Funktion »static_assert()«
und die Type-Traits-Bibliothek helfen ihm
dieses Ziel zu erreichen.

Kontrolle ist besser
Mit »static_assert()« lassen sich Bedingungen an den Quellcode stellen, die der
Compiler beim Übersetzen testet. Damit
schließt die Funktion ein Loch, das die
Präprozessordirektive »#error« und das
Makro »assert« hinterlassen. Denn »static_assert()« greift nach dem Präprozes-

sorlauf ins Getriebe, aber noch bevor das
System das Programm ausführt.
Die Syntax ist denkbar einfach: »static_assert(Ausdruck,Text)«. Während
der Text, den die Software im Fehlerfall ausgibt, optional ist, muss C++ den
Ausdruck zur Übersetzungszeit auswerten können, was keinen Einfluss auf die
Laufzeit des Programms hat. Das unspektakuläre Listing 1 zeigt die Funktion in
Aktion. Der Code lässt sich übersetzen,
sofern ein »void*«-Zeiger auf der Plattform mindestens 8 Byte groß ist. Dem
entgegen steht Listing 2, das nur eine
Zeigergröße von 4 Bytes fordert.
Wie Abbildung 1 zeigt, trifft diese zweite
Forderung auf die Testmaschine nicht
zu, die nach einer 64-Bit-Adressierung

Listing 1: Eine einfache Zusicherung

Ein perfektes Paar
Da der Compiler die Funktionen der
Type-Traits-Bibliothek beim Übersetzen
ausführt, erweist diese sich als idealer
Kandidat für die »static_assert()«-Funktion. Die braucht ja Ausdrücke, die der
Compiler zur Übersetzungszeit evaluiert.
Die Type-Traits-Bibliothek hat dabei einiges auf dem Kasten, allem voran kann sie
Typen analysieren, vergleichen und sogar
transformieren.
Vor der Kür aber kommt die Pflicht. Ziel
des Artikels ist es, generische, typsichere
Funktionen zu implementieren, die den
größten gemeinsamen Teiler (GGT, [1])
zweier ganzer Zahlen berechnen. Die
Funktionen sollen auf dem Algorithmus
von Euklid ([2], Abbildung 2) basieren.

Erster Versuch

01 int main(){
02
03 }

static_assert(sizeof(void*) >= 8, "64-bit addressing is required for this program");

Der Algorithmus ist schnell als Funktions-Template in den Zeilen 3 bis 9
von Listing 3 implementiert. Er ist über

seinen Typ »T« parametrisiert und gibt
als Ergebnis den größten gemeinsamen
Teiler seiner Argumente »a« und »b« zurück. In den Zeilen 15, 16 und 17 kommt
schließlich der GGT-Algorithmus zum
Zuge, das vielversprechende Ergebnis
liefert Abbildung 4.
Allerdings leidet das Funktions-Template
an zwei gravierenden Schwächen. Ruft
der Nutzer GGT mit einer Fließkommazahl (Zeile 21) oder einem C-String (Zeile
22) auf, quittiert der Compiler dies mit
einer Fehlermeldung. Der Entwickler hat
für diese Typen nämlich keinen ModuloOperator (»%«) definiert.
Noch subtiler ist die zweite Schwäche,
die in der Funktion »gcd()« steckt: Das
Funktions-Template besitzt genau einen
Template-Parameter. Das bedeutet insbe-

sondere, dass beide Funktionsargumente
»a« und »b« vom gleichen Typ sein müssen. Dies trifft aber auf den Ausdruck
»gcd(100,10L)« in Zeile 24 nicht zu, da
das erste Argument vom Typ »int«, das
zweite hingegen vom Typ »long int« ist.
Das weiß auch der Compiler. Er wendet
keine Typkonvertierungen an, wenn er
die Template-Parameter aus den Funktionsargumenten bestimmt. Leider drückt
er sich dabei nicht so deutlich aus (Abbildung 3). Beide Schwächen bügelt die
Type-Traits-Bibliothek aus.

Zweiter Versuch
Im ersten Fall ruft der Compiler den GGTAlgorithmus mit dem falschen Argument
auf. Hier hilft ein »static_assert()«-Auf-

Die finale Version
Die Anforderungen an den GGT-Algorithmus steigen jedoch weiter. So soll er nun
über zwei Typen parametrisiert werden
und den kleineren der beiden als Rückgabetyp zurückgeben. Relativ einfach kann
der Entwickler die erste Anforderung
umsetzen. Listing 5 zeigt den über zwei
Typen parametrisierten Algorithmus. Die
Idee von Listing 3 lässt sich direkt auf
die zwei Template-Parameter in Listing
5 anwenden. Für jeden von ihnen prüft
der Compiler im Funktionskörper einzeln
(Zeilen 3 und 4), ob er eine Ganzzahl
darstellt.
Offen bleibt jedoch die Frage, von welchem Typ der Rückgabewert (»???«) in
Zeile 2 ist. Hier greift wieder die TypeTraits-Bibliothek ein. Sie klärt, unter-

Listing 2: »static_assert()« in verschiedenen Bereichen
01 static_assert(sizeof(void*) == 4, "32-bit addressing required");

11 class ClassScope{

02

12

03 namespace namespaceScope{

static_assert(sizeof(void*) == 4, "32-bit addressing required");

13 };

04 static_assert(sizeof(void*) == 4, "32-bit addressing required");

14

05 }
15 int main(){
06
16

07 void functionScope(){
08

static_assert(sizeof(void*) == 4, "32-bit addressing required");

{

17

09 }

18

10

19 }

static_assert(sizeof(void*) == 4, "32-bit addressing required");
}

Listing 3: Der generische GGT-Algorithmus (Versuch 1)
01 #include <iostream>

13

02

14

03 template<typename T>

15

04 T gcd(T a, T b){
05

if( b == 0 ){ return a; }

06

else{

07
08

return gcd(b, a % b);

std::cout << std::endl;

22

std::cout << gcd("100","10") << std::endl;

23
std::cout << "gcd(100,10)= " << gcd(100,10)

24

std::cout << gcd(100,10L) << gcd(100,10L)

<< std::endl;
16

std::cout << "gcd(100,33)= " << gcd(100,33)
<< std::endl;

17

}

std::cout << "gcd(100,0)= " << gcd(100,0)
<< std::endl;

09 }

18

10

19

11 int main(){

20

12

21

<< std::endl;

/*

25
26
27
28
29

std::cout << gcd(3.5,4.0)<< std::endl;

*/

30 }

std::cout << std::endl;

Programmieren

C++11

02/2015

Abbildung 1: Die Funktion »static_assert()« deckt verschiedene Bereiche ab.

www.linux-magazin.de

ruf, der die Forderung nach seinen Argumenten explizit auf den Punkt bringt,
es müssen Ganzzahlen sein: »std::is_
integral<T>::value«. Listing 4 zeigt
das leicht modifizierte Programm, das
nun auch die Headerdatei »type_traits«
benötigt. Netter Nebeneffekt: Die Fehlermeldung in Abbildung 5 ist nun bereits
deutlich einfacher zu lesen.

107

02/2015

Programmieren

C++11

© CC-BY-SA Mark A. Wilson

www.linux-magazin.de

108

Abbildung 3: Der GGT-Algorithmus wird mit falschen Argumenten ausgeführt.
Abbildung 2: Der Mathematiker Euklid hat ein paar
schöne Algorithmen erfunden.

stützt vom Funktions-Template »std::conditional()«, ob es sich beim Rückgabetyp
um Typ »T1« oder »T2« handelt. Der Ausdruck »std::conditional <(sizeof(T1) <
sizeof(T2)), T1, T2>::type« in Zeile 5
von Listing 6 liefert den kleineren der
beiden Typen zurück.
Für ihre Operation benötigt die Funktion
insgesamt drei Argumente: einen Ausdruck sowie zwei Typen. Als Ausdruck
dient »(sizeof(T1) < sizeof(T2))«. den
der Compiler zur Übersetzungszeit evaluiert. Ist das Ergebnis des Ausdrucks
wahr (»true«), gibt »std::conditional()«
den ersten Typ »T1«, sonst den zweiten
Typ »T2« zurück.

Das Funktions-Template »std::conditional()« tritt hier als das Pendant zum bekannten ternären Operator »(sizeof(a) <
sizeof(b)) ? a : b« auf. Zwei entscheidende Unterschiede gibt es jedoch: Einerseits arbeitet »std::condition()« mit
Typen, während der ternäre Operator mit
Werten operiert. Andererseits führt C++

Abbildung 4: Der generische GGT-Algorithmus liefert erste Ergebnisse (Versuch 1).

Listing 4: Der generische GGT-Algorithmus (Versuch 2)
01 #include <iostream>

12

02 #include <type_traits>

13 int main(){

03

14

04 template<typename T>
05 T gcd(T a, T b){
06

static_assert(std::is_integral<T>::value,
"T should be an integral type!");

07
08

if( b == 0 ){ return a; }

10

std::cout << std::endl;

16
17

std::cout << gcd(3.5,4.0)<< std::endl;

18

std::cout << gcd("100","10") << std::endl;

19

else{

09

15

return gcd(b, a % b);

20

std::cout << std::endl;

21

}

11 }

22 }

Listing 5: GGT über zwei Typen parametrisiert
01 template<typename T1, typename T2>
02 ??? gcd(T1 a, T2 b){
03

static_assert(std::is_integral<T1>::value, "T1 should be an integral type!");

04

static_assert(std::is_integral<T2>::value, "T2 should be an integral type!");

05

if( b == 0 ){ return a; }

06

else{

07
08
09 }

»std::condition()« zur Übersetzungszeit
aus, den ternären Operator hingegen zur
Laufzeit des Programms.
Mit diesem hilfreichen Werkzeug in der
Hand, lässt sich der kleinere der beiden
Typen bestimmen. Dazu benötigt das
Funktions-Template nur einen dritten
Template-Parameter »R«, der den Rückgabetyp repräsentiert. Er erhält als Defaultwert den durch »std::conditional()«
ermittelten Typ und wird in Zeile 6 von
Listing 6 eingeführt.
Das Listing demonstriert zugleich, wie
die Features in dem modernen C++
hübsch zusammenarbeiten, um einen
typsicheren, aber auch generischen GGTAlgorithmus umzusetzen. Zugegeben, die
Syntax des Funktions-Template ist nicht
ganz einfach zu verdauen. So bestimmt
zum Beispiel »typename std::conditional
<(sizeof(T1) < sizeof(T2)), T1,
T2>::type« (Zeile 5) den Standardrückgabetyp des Template.
Das Wort »typename« soll an dieser Stelle
den Compiler davon überzeugen, dass
der Gesamtausdruck einen Typ bezeichnet. Dieser hängt von den Typ-Parametern »T1« und »T2« ab. Mit ein bisschen
Phantasie könnte der Ausdruck zum Beispiel auch eine statische Variable einer
Klasse »conditional« sein.

return gcd(b, a % b);
}

Der Autor
Rainer Grimm arbeitet
als
Software-Architekt
und Gruppenleiter bei der
Metrax GmbH in Rottweil.
Insbesondere die Software
der hauseigenen Defibrillatoren ist ihm eine Herzensangelegenheit. Seine
Bücher „C++11 für Programmierer“ und „C++ kurz
& gut“ sind beim Verlag O’Reilly erschienen.

02/2015

Programmieren

C++11

Abbildung 6: Der Compiler ermittelt die Typen der

Richtig interessant wird Listing 6 in Zeile
27. Um das Ergebnis der Berechnung in
der Variablen »uglyRes« zu speichern,
ist derselbe längliche und hässliche Ausdruck notwendig, der den Rückgabetyp
des Template erzeugt. Er ist nicht nur
unschön, sondern auch sehr fehleranfällig und redundant. So muss der C++Entwickler die Typen des FunktionsTemplate »gcd(100,10LL)« sowohl in dem
Ausdruck »sizeof(100) < sizeof(10LL)«
als auch in den potenziellen Rückgabetypen »long, long long« verwenden.
Den Rückgabetyp ermittelt »auto« ohne
Zutun. Die Zeilen 28 und 29 reduzieren
den Schreibaufwand auf das Nötigste,
denn eine als »auto« deklarierte Variable
erhält vom Compiler automatisch den
richtigen Typ.
Nun gilt es noch zu prüfen, ob der ermittelte Rückgabetyp der kleinere der beiden
Eingabetypen ist. Diese Aufgabe erledigt
der »typeid«-Operator, der die Headerdatei »typeinfo« benötigt. Der Operator wird

zur Übersetzungszeit aktiv, nimmt Typen
oder Ausdrücke an und gibt Typinformationen in Form eines Objekts zurück. Auf
diesem »type_info«-Objekt lässt sich wie
im Beispiel die Methode »name« aufrufen, die eine String-Repräsentation des
Typs anfordert. Zwar ist in C++ nicht
definiert, wie die String-Repräsentation
eines Typs auszusehen hat, die Sprache
gibt aber in den meisten Fällen eine ausreichend informative Antwort.
Genau dies demonstriert auch Abbildung 6. Der kleinere Typ des Ausdrucks
»gcd(100,10LL)« besitzt die StringRepräsentation »i«, der des Ausdrucks
»gcd(100LL,10L)« verwendet »l«. Im
ersten Fall ermittelt der Compiler einen
»int«-, im zweiten einen »long int«-Typ.

Wie geht es weiter?
Die Type-Traits-Bibliothek bietet ihre
reichhaltige Funktionalität zur Übersetzungszeit an. Sie lässt sich einerseits

String-Repräsentation.

verwenden, um den Code in Kombination mit »static_assert()« typsicher zu
machen. Sie kann andererseits aber auch
den resultierenden Code optimieren. Das
zeigt »std::conditional()« im Falle des
GGT-Algorithmus, der den kleineren der
beiden Eingabetypen als Rückgabetyp
zurückgibt.
Der C++11-Fan ahnt es womöglich bereits: Das ist bei Weitem noch nicht das
komplette Repertoire der Type-Traits-Bibliothek. Grund genug also, im nächsten
Artikel systematischer auf ihre FähigkeiQ
ten einzugehen. (kki)

Infos
[1] Größter gemeinsamer Teiler: [http://de.
wikipedia.org/wiki/Gr%C3%B6%C3%9F
ter_gemeinsamer_Teiler]
[2] Euklid:
[http://de.wikipedia.org/wiki/Euklid]

Listing 6: Der generische GGT-Algorithmus (finale Version)
01 #include <iostream>

19

std::cout << "gcd(100,10)= " <<

02 #include <type_traits>

20

std::cout << "gcd(100,33)= " << gcd(100,33) << std::endl;

03 #include <typeinfo>

21

std::cout << "gcd(100,0)= " << gcd(100,0)

04

22

05 template<typename T1, typename T2, typename R = typename
std::conditional <(sizeof(T1) < sizeof(T2)), T1, T2>::type >

23

25

07

26

type!");
08

std::cout << "gcd(100,10LL)= " << gcd(100,10LL) << std::endl;

std::conditional <(sizeof(100) < sizeof(10LL)), long, long
long>::type uglyRes= gcd(100,10LL);

28

auto res= gcd(100,10LL);

09

if( b == 0 ){ return a; }

29

auto res2= gcd(100LL,10L);

10

else{

30

11
12

return gcd(b, a % b);

31

32

15 int main(){

33

16

34

18

std::cout << "typeid(gcd(100LL,10L)).name(): " << typeid(res2).name()
<< std::endl;

14

17

std::cout << "typeid(gcd(100,10LL)).name(): " << typeid(res).name()
<< std::endl;

}

13 }

std::cout << std::endl;

<< std::endl;

std::cout << std::endl;

27

static_assert(std::is_integral<T2>::value, "T2 should be an integral
type!");

<< std::endl;

24

06 R gcd(T1 a, T2 b){
static_assert(std::is_integral<T1>::value, "T1 should be an integral

gcd(100,10)

35
36 }

std::cout << std::endl;

www.linux-magazin.de

Abbildung 5: Der generische GGT-Algorithmus (Versuch 2).

109

02/2015

Schirmherr
Ein Perl-Skript, das im Morgengrauen die aktuelle Wettervorhersage einholt, hilft bei der Entscheidung, auf
Risiko zu spielen oder doch einen Schirm einzupacken. Michael Schilli

menden Json-Datenwust und gibt pro
Stunde die Uhrzeit und die Regenwahrscheinlichkeit im Eintrag »pop« (Probability of precipitation, [3]) aus. Abbildung
1 zeigt, dass es am Nachmittag mit weniger als 50 Prozent Wahrscheinlichkeit
regnen wird, ein gläubiger Mathematiker
könnte den Schirm zu Hause lassen.

Mehr als nur Regen

© alphaspirit, 123RF

110

www.linux-magazin.de

Perl-Snapshot

Programmieren

Perl-Skript erkundigt sich nach dem Wetter

In der nassen Jahreszeit stellt sich oft die
Frage, ob im Laufe des Tages Regen oder
Schnee vom Himmel fallen wird und man
deswegen gut beraten wäre, auf den Weg
zur Arbeit einen Schirm mitzunehmen.

Untergrund-Wetter
Letztlich wären aber sogar gelegentliche
Regenschauer um die Mittagszeit irrelevant, solange sich der Weg zur und von
der Arbeit trockenen Fußes bewältigen
lässt. Zum Glück bietet der Wetterdienst

„Weather Underground“ [1] kostenlose
Vorhersagen für die laufenden Stunden
des Tages. Obwohl diese zweifellos nicht
immer hundertprozentig zutreffen, schlagen sie doch die menschliche Intuition im
Schnitt um Längen.
Auf dem CPAN finden Perl-Programmierer
das Modul WWW::Wunderground::API,
das die Wetterdaten mit einem eigens von
[2] eingeholten API-Key skriptgesteuert
vom Server saugt. Das simple Skript in
Listing 1 nutzt das Modul, iteriert über
die stündlichen Einträge im zurückkom-

Listing 1: »chance-of-rain.pl«
01 #!/usr/local/bin/perl -w

10 );

02 use strict;

11

03 use WWW::Wunderground::API;
04 use DateTime;

12 for my $e (@{ $w->hourly }) {
13

07

location => "Munich, Germany",

08

api_key

09

auto_api => 1,

=> "0123456789abcdef",

14

epoch => $e->{ FCTTIME }->{ epoch } );

15
16
17 }

API-Key gegen
E-Mail-Adresse
Ganz offen ins Internet legt der Wunderground-Server die Daten nicht, aber
wer sich auf der Developer-Seite [2] mit
einer gültigen E-Mail-Adresse registriert,
bekommt einen 16-stelligen hexade-

my $dt = DateTime->from_epoch(

05
06 my $w = WWW::Wunderground::API->new(

Dabei kommt vom Underground-Server
weit mehr zurück als nur die Regenwahrscheinlichkeit. Die in Zeile 12 von
Listing 1 aufgerufene Methode »hourly()«
liefert einen Array von stündlichen Wetterelementen des Tages. Wie der Datensalat in Abbildung 2 zeigt, verweist jedes
Element auf eine Reihe von Schlüsseln
wie »humidity« (Luftfeuchtigkeit) oder
»sky« (Bewölkung). Schließlich stehen
unter »FCTTIME« das Datum und die
Uhrzeit der Vorhersage.
Listing 1 schnappt sich den Eintrag
»epoch« aus dem Datum und wandelt
die dort stehenden Unix-Sekunden seit
1970 mit dem Perl-Modul »DateTime« in
ein lesbares und später leicht maschinell
manipulierbares Format um.

print "$dt: $e->{ pop }%\n";

Online PLUS
In einem Screencast demonstriert
Michael Schilli das Beispiel: [http://
www.linux-magazin.de/2015/2/plus]

02/2015

Abbildung 1: Anfangend bei der aktuellen Stunde
gibt Weather Underground die stündliche Regenwahrscheinlichkeit an.

zimalen API-Key, mit dem der Service
eine beschränkte Anzahl täglicher Abfragen freischaltet. Wer allerdings den
kostenlosen „Cumulus“-Plan wählt und
außerdem versichert, die Daten nicht zu
kommerziellen Zwecken zu verwenden
(Abbildung 3), der muss auch keine
Zahlungsmodalitäten angeben. In den
vorgestellten Listings 1 und 2 ist dann
der mit »$api_key« definierte String vor

www.linux-magazin.de

Schirm oder Risiko?
Um nun zu ermitteln, ob es an einem
bestimmten Tag in den kritischen Zeitfenstern auf dem Weg zur und von der
Arbeit regnet und ob damit ein Schirm
erforderlich ist, läuft das Skript in Listing
2 per Cronjob im Morgengrauen los. Es
definiert in Zeile 12 die kritischen Stunden, im Beispiel 8 und 9 Uhr morgens für
den Weg zur Arbeit und dann wieder 17,
18 und 19 Uhr abends für den Nachhauseweg nach Feierabend, falls es doch mal
wieder später wird.
Im Parameter »location« in Zeile 15 ist der
Ort des Wettergeschehens anzugeben,
unter »api_key« wieder der eingeholte
Zugangsschlüssel. Die Option »auto_api«
sorgt dafür, dass das CPAN-Modul mit
der in Zeile 20 aufgerufenen Methode
»hourly()« gleich hinter den Kulissen die
REST-Schnittstelle des WundergroundServers aufruft und den gewünschten
Json-Array zurückliefert.

Abbildung 2: Die stündlichen Wettervorhersagen
enthalten nicht nur die Regenwahrscheinlichkeit,
sondern auch Luftfeuchtigkeit oder Temperatur.

Listing 2: »umbrella«
#!/usr/local/bin/perl -w

15

location => "Munich, Germany",

29

02 use strict;

16

api_key

30

03 use WWW::Wunderground::API;

17

auto_api => 1,

04 use DateTime;

18 );

05 use Log::Log4perl qw(:easy);

19

=> "0123456789abcdef",

20 for my $e (@{ $w->hourly }) {

07

21

08 getopts "v", \my %opts;

22

09 Log::Log4perl->easy_init(

23

10

24

$opts{ v } ? $DEBUG : $ERROR);

11

25

12 my @critical_hours = qw(8 9 17 18 19);

26

13

27

14 my $w = WWW::Wunderground::API->new(

28

DEBUG "Checking hour ", $dt->hour(),
" ($e->{ pop }%)";

31
32

06 use Getopt::Std;

if( !scalar @critical_hours ) {
last;

if( $e->{ pop } > 50 ) {

33

printf "Bring your Umbrella! " .

34

"(%d%% rain at %s)\n",

35

}

$e->{ pop }, $dt->hms();

36

}

37
my $dt = DateTime->from_epoch(
epoch => $e->{ FCTTIME }->{ epoch } );

38
39

if( $dt->hour() == $critical_hours[0] ) {

shift @critical_hours;
}

40 }

Listing 3: »mandrill-email«
01 #!/usr/local/bin/perl -w

13 my $api_key = "abcdefghi0123456789";

25

text

02 use strict;

14 my $from

= 'from@email-address.com';

26

subject => $text,

03 use warnings;

15 my $to

= 'to@email-address.com';

27

from_email => $from,

04 use LWP::UserAgent;

16

05 use JSON qw(to_json);

17 my $ua = LWP::UserAgent->new();

06

18

07 my $text = join "", <>;

19 my $resp = $ua->post(

08

20

28
29

=> $text,

to => [ { email => $to } ],
} } ),

30 );
"https://mandrillapp.com/api/1.0/" .

31
32 if( $resp->is_error() ) {

09 if( !length $text ) {

21

10

22

Content => to_json( {

33

11 }

23

key => $api_key,

34

12

24

message => {

35 }

exit 0;

"messages/send.json",

Programmieren

Perl-Snapshot

Gebrauch durch den eingeholten API-Key
zu ersetzen (Abbildung 4).

die "Sending mail failed: ",
$resp->message();

111

02/2015

Programmieren
112

www.linux-magazin.de

Perl-Snapshot

Wer genau wissen
will, was das Skript
treibt, ruft es mit der
Option »-v« auf, wie in
Abbildung 5 gezeigt,
und erhält die Regenwahrscheinlichkeit in
den kritischen Stunden mittels Log4perlMeldungen angezeigt.
Der Cronjob muss das
Skript allerdings ohne
»-v«, also zum Beispiel
um 7 Uhr morgens mit
0 7 * * * umbrella | U
mandrill-email

aufrufen, damit der
nachfolgende E-Mailer keine Nachricht
Abbildung 3: Den für Weather Underground erforderlichen API-Key rückt
schickt, falls es gar
der Server gegen eine gültige E-Mail-Adresse heraus.
nicht regnet. Zu beachten ist auch, dass
Ohne Parameter aufgerufen gibt das
die Skripte entweder in einem Verzeichnis
Skript nur dann eine Meldung aus, falls
stehen müssen, das der Cronjob findet,
es festgestellt hat, dass die Regenwahroder der Croneintrag muss den absoluten
scheinlichkeit in den kritischen StunPfad zu den Skripten explizit festlegen.
den einmal über 50 Prozent liegt. Dann
schreibt die »printf«-Anweisung in Zeile
33 einen String wie
Im Spam-Zeitalter ist es gar nicht mehr
Bring your Umbrella! (52% rain at 19:00:00)
so einfach, automatisch E-Mails zu verauf die Standardausgabe, und das nachschicken. In der Firma oder zu Hause
folgende E-Mail-Skript in Listing 3
geht es noch, da kann der ISP verifischickt die Meldung an den gespannt
zieren, wer da was treibt. Um flexibel
wartenden User.
zu sein, wendet man sich am besten an
Besteht keine Gefahr, dass Niederschlag Drittanbieter. So erlaubt zum Beispiel die
den Arbeitnehmer durchnässt, gibt das
Firma Mandrill gegen einen Obolus die
Skript auch nichts aus und der nach- Nutzung ihrer Mailschleudern, aber Testsetzende E-Mailer bricht ab, ohne eine accounts dürfen auch ein paar E-Mails
Nachricht abzusenden.
für lau schicken.

Mailprovider gesucht

E-Mail mit REST
Auf [4] kann sich der interessierte Nutzer mit einer gültigen E-Mail registrieren und erhält dann einen 22-stelligen
API-Key im Base64-Format, den Skripte
später nutzen können, um mit Mand-

Abbildung 4: Der API-Key auf Weather Underground

Abbildung 5: Im Verbose-Modus verrät das Skript,

besteht aus einer 18-stelligen Hexzahl.

welche Meldungen des Wetterberichts es prüft.

rills REST-Server E-Mails zu versenden.
Allerdings ist an dieser Stelle zu beachten, dass die From-Adresse immer die
bei der Registrierung angegebene gültige
E-Mail-Adresse sein muss. Ist das nicht
der Fall, dann verweigert Mandrill den
Dienst, zumindest für die kostenlosen
Testaccounts.
Zeile 7 in Listing 3 schnappt sich die auf
der Standardeingabe eintrudelnden Textdaten und legt sie in »$text« ab. Bleibt
dieser String leer, weil das vorhergehende
Skript in der Unix-Pipeline nichts ausgab,
bricht Zeile 10 ohne Fehlermeldung ab.
In diesem Fall wäre nichts zu senden.
In Zeile 13 ist der »$api_key« durch den
Mandrill-Testkey zu ersetzen und die
Absenderadresse in »$from« (Zeile 14)
durch die dort verwendete RegistrationsE-Mail. Die Empfängeradresse darf der
Anwender nach Belieben festlegen.
Das Skript kodiert die E-Mail-Daten mittels der Funktion »to_json« des Json-Moduls als Blob und schickt sie per POSTRequest an den Mandrill-Server. Falls
Zeile 32 keinen Fehler entdeckt, wurde
die E-Mail versandt und der zur Arbeit
hetzende Arbeitnehmer kann auf seinem
Smartphone sehen, ob der Wetterdienst
Q
zu einem Schirm rät. (jcb)

Infos
[1] Weather Underground:
[http://wunderground.com]
[2] Weather Underground, Developer-API:
[http://www.wunderground.com/weather/
api]
[3] Probability of precipitation:
[http://en.wikipedia.org/wiki/Probability_
of_precipitation]
[4] E-Mail-Service Mandrill:
[http://mandrillapp.com]
[5] Listings zu diesem Artikel:
[ftp://www.linux-magazin.de/pub/listings/
magazin/2015/02/Perl]
Der Autor
Michael Schilli arbeitet
als Software-Engineer bei
Yahoo in Sunnyvale, Kalifornien. In seiner seit 1997
erscheinenden Kolumne
forscht er jeden Monat
nach praktischen Anwendungen der Skriptsprache Perl. Unter [mschilli@
perlmeister.com] beantwortet er gerne Fragen.

02/2015

114

www.linux-magazin.de

IT-Profimarkt

Service

PROFI
MARKT
Sie fragen sich, wo Sie maßgeschneiderte Linux-Systeme und kompetente
Ansprechpartner zu Open-Source-Themen finden? Der IT-Profimarkt weist Ihnen als zuverlässiges Nachschlagewerk
den Weg. Die hier gelisteten Unternehmen beschäftigen Experten auf ihrem
Gebiet und bieten hochwertige Produkte
und Leistungen.
Die exakten Angebote jeder Firma entnehmen Sie deren Homepage. Der ersten Orientierung dienen die Kategorien

Hardware, Software, Seminaranbieter,
Systemhaus, Netzwerk/TK und Schulung/Beratung. Der IT-Profimarkt-Eintrag ist ein Service von Linux-Magazin
und LinuxUser.

Online-Suche
Besonders bequem finden Sie einen
Linux-Anbieter in Ihrer Nähe über die
neue
Online-Umkreis-Suche
unter:
[http://www.it-profimarkt.de]

Informationen
fordern Sie bitte an bei:
Computec Media GmbH
Anzeigenabteilung
Putzbrunner Str. 71
D-81739 München
Tel: +49 (0) 89 / 99 34 11-24
Fax: +49 (0) 89 / 99 34 11-99
E-Mail: anzeigen@linux-magazin.de

1 = Hardware 2 = Netzwerk/TK 3 = Systemhaus
4= Seminaranbieter
5 = Software
6 = Beratung
4= Fachliteratur
5 = Software
6 = Schulung/Beratung

IT-Profimarkt – Liste sortiert nach Postleitzahl
Firma

Anschrift

Telefon

Web

Schlittermann internet & unix support

01099 Dresden, Tannenstr. 2

0351-802998-1

www.schlittermann.de

✓ ✓

✓ ✓

imunixx GmbH UNIX consultants

01468 Moritzburg, Heinrich-Heine-Str. 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

✓ ✓

Compaso GmbH

10439 Berlin, Driesener Strasse 23

030-3269330

www.compaso.de

✓ ✓ ✓

elego Software Solutions GmbH

13355 Berlin, Gustav-Meyer-Allee 25

030-2345869-6

www.elegosoft.com

verion GmbH

16244 Altenhof, Unter den Buchen 22 e

033363-4610-0

www.verion.de

Logic Way GmbH

19061 Schwerin, Hagenower Str. 73

0385-39934-48

www.logicway.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

✓ ✓ ✓

✓ ✓

teuto.net Netzdienste GmbH

33602 Bielefeld, Niedenstr. 26

0521-96686-0

www.teuto.net

✓ ✓ ✓

✓ ✓

LINET Services GmbH

38118 Braunschweig, Cyriaksring 10a

0531-180508-0

www.linet-services.de

✓ ✓ ✓ ✓ ✓ ✓

OpenIT GmbH

40599 Düsseldorf, In der Steele 33a-41

0211-239577-0

www.OpenIT.de

✓ ✓ ✓

✓ ✓

Linux-Systeme GmbH

45277 Essen, Langenbergerstr. 179

0201-298830

www.linux-systeme.de

✓ ✓ ✓

✓ ✓

Linuxhotel GmbH

45279 Essen, Antonienallee 1

0201-8536-600

www.linuxhotel.de

OpenSource Training Ralf Spenneberg

48565 Steinfurt, Am Bahnhof 3-5

02552-638755

www.opensource-training.de

Intevation GmbH

49074 Osnabrück, Neuer Graben 17

0541-33508-30

www.intevation.de

uib gmbh

55118 Mainz, Bonifaziusplatz 1b

06131-27561-0

www.uib.de

LISA GmbH

55411 Bingen, Elisenhöhe 47

06721-49960

www.lisa-gmbh.de

✓ ✓ ✓

✓ ✓

saveIP GmbH

64283 Darmstadt, Saalbaustr. 8-10

06151-666266

www.saveip.de

✓ ✓ ✓

✓ ✓

LinuxHaus Stuttgart

70565 Stuttgart, Hessenwiesenstrasse 10

0711-2851905

www.linuxhaus.de

✓ ✓ ✓

✓ ✓

Manfred Heubach EDV und Kommunikation

73730 Esslingen, Hindenburgstr. 171

0711-4904930

www.heubach-edv.de

✓ ✓ ✓

Waldmann EDV Systeme + Service

74321 Bietigheim-Bissingen, Pleidelsheimer Str. 25

07142-21516

www.waldmann-edv.de

✓ ✓ ✓

✓ ✓

in-put GbR - Das Linux-Systemhaus

75179 Pforzheim, Kurze Steig 31

07231 / 440785 -0 www.in-put.de

Bodenseo

78224 Singen, Pomeziastr. 9

07731-1476120

www.bodenseo.de

IT-Profimarkt listet ausschließlich Unternehmen, die Leistungen rund um Linux bieten. Alle Angaben ohne Gewähr.

1

2 3 4

5 6

✓ ✓ ✓ ✓ ✓
✓ ✓ ✓
✓ ✓

✓ ✓ ✓ ✓
✓ ✓ ✓

✓ ✓

✓ ✓

✓ ✓ ✓ ✓

✓ ✓ ✓ ✓ ✓ ✓
✓ ✓ ✓ 

(S.118)

Python für Systemadministratoren
Mit Rainer Grimm 
Vereinfachen Sie Ihren Workflow mit Python-Scripts!
Q Tipps und Tricks vom Programmier-/Scripting-Profi Rainer Grimm!
QMit vielen praktischen Beispielen aus dem Sysadmin-Alltag!
Q

MEDIALINX
IT-ACADEMY
powered by

IT-Onlinetrainings
Mit Experten lernen.

Python für Systemadministratoren
mit Rainer Grimm,
science + computing ag
199 €

/MedialinxAcademy

www.medialinx-academy.de

Seminare

IT-Onlinetrainings MEDIALINX

Mit Experten lernen.

IT-ACADEMY

Einfache IMAP-Server
mit Dovecot
mit Peer Heinlein,
Heinlein Support GmbH
249 €

www.medialinx-academy.de

IT-Onlinetrainings MEDIALINX
Mit Experten lernen.

IT-ACADEMY

Puppet Fundamentals
–     

mit Achim Ledermüller,
Netways GmbH
299 €
NETWAYS

®

X25

www.medialinx-academy.de

02/2015

Service

IT-Profimarkt/Markt

118

www.linux-magazin.de

IT-Profimarkt

IT-Profimarkt – Liste sortiert nach Postleitzahl (Fortsetzung von S. 114)
Firma

Anschrift

Linux Information Systems AG

81739 München, Putzbrunnerstr. 71

Telefon
089-993412-0

Web
www.linux-ag.com

✓ ✓ ✓

LIS-Linuxland GmbH

81739 München, Putzbrunnerstr. 71

089-99341441

www.linuxland.de

✓ ✓ ✓ ✓ ✓ ✓

Synergy Systems GmbH

81829 München, Konrad-Zuse-Platz 8

089-89080500

www.synergysystems.de

✓ ✓ ✓

B1 Systems GmbH

85088 Vohburg, Osterfeldstrasse 7

08457-931096

www.b1-systems.de

ATIX AG

85716 Unterschleißheim, Einsteinstr. 10

089-4523538-0

www.atix.de

✓ ✓ ✓ ✓ ✓ ✓

Tuxedo Computers GmbH

86343 Königsbrunn , Zeppelinstr. 3

08231 - 99 19 001

www.linux-onlineshop.de

OSTC Open Source Training and Consulting
GmbH

90425 Nürnberg, Waldemar-Klink-Str. 10

0911-3474544

www.ostc.de

✓ ✓ ✓ ✓ ✓ ✓

Dipl.-Ing. Christoph Stockmayer GmbH

90571 Schwaig, Dreihöhenstr. 1

0911-505241

www.stockmayer.de

pascom - Netzwerktechnik GmbH & Co.KG

94469 Deggendorf, Berger Str. 42

0991-270060

www.pascom.net

✓ ✓ ✓

✓ ✓

RealStuff Informatik AG

CH-3007 Bern, Chutzenstrasse 24

+41-31-3824444

www.realstuff.ch

✓ ✓

CATATEC

CH-3013 Bern, Dammweg 43

+41-31-3302630

www.catatec.ch

✓ ✓

Syscon Systemberatungs AG

CH-8036 Zürich, Postfach

+41-44-4542010

www.syscon.ch

✓ ✓ ✓

✓ ✓

Würth Phoenix GmbH

IT-39100 Bozen, Kravoglstraße 4

+39 0471- 56 41 11

www.wuerth-phoenix.com

IT-Profimarkt listet ausschließlich Unternehmen, die Leistungen rund um Linux bieten. Alle Angaben ohne Gewähr.

1

2 3 4

5 6
✓ ✓

✓ ✓

✓ ✓ ✓ ✓ ✓

✓ ✓ ✓

✓ ✓ ✓

✓ ✓ ✓

Q

02 /2015

Service
Inserenten
www.linux-magazin.de

120

Inserentenverzeichnis
1blu AG

http://www.1blu.de

29

Linux-Magazin Online

http://www.linux-magazin.de

Bytec GmbH

http://www.bytec.de

124

Linuxhotel

http://www.linuxhotel.de

CANDAN THE WEB COMPANY

http://www.canhost.de

61

LinuxUser

http://www.linuxuser.de

91

Medialinx AG

http://www.medialinx-gruppe.de

119

Medialinx IT-Academy

http://www.medialinx-academy.de
23, 48, 115, 117, 117, 117, 117, 117

Mittwald CM Service GmbH & Co. KG

http://www.mittwald.de

11

Norplex Communications

http://www.norplex.de

7

outbox AG

http://www.outbox.de

17, 19

pascom - Netzwerktechnik GmbH & Co.KG

http://www.pascom.net

15

PC Games Hardware - Computec

http://www.pcgameshardware.de

99

PlusServer AG

http://www.plusserver.de 31, 63, 65, 79,
93, 113
http://www.raspberry-pi-geek.de

89

Computec

http://www.computec.de/

47, 52

Deutsche Messe AG

http://www.cebit.de

37

DFN-Cert Services GmbH

http://www.dfn-cert.de

95

EasyLinux

http://www.easylinux.de

105

embedded projects GmbH

http://www.embedded-projects.net 115

Fernschule Weber GmbH

http://www.fernschule-weber.de

117

Games TV 24 - Computec

http://www.gamestv24.de

24

GIMP-Magazin

http://www.gimp-magazin.de

68

Holger Jakobs, IT-Beratung und -Schulung

117

75, 117
9

Ico Innovative Computer GmbH

http://www.ico.de

35

Raspberry Pi Geek

in-put Schulungen

http://www.in-put.de

45

Schlittermann internet & unix support

http://www.schlittermann.de

115

IT-Administrator

http://www.it-administrator.de

85

Stockmayer GmbH

http://www.stockmayer.de

117

Kettner Mathias - Linux Experte

http://www.mathias-kettner.de

13

Thomas Krenn AG

http://www.thomas-krenn.com

Linux User Spezial

http://www.linux-user.de/spezial

116

Tuxedo Computers GmbH

http://www.linux-onlineshop.de

123

Linux-Community

http://www.linux-community.de

118

Zertificon Solutions GmbH

http://www.zertificon.com

33

2

Veranstaltungen
08.-11.02.2015

21.-22.03.2015

01.-02.06.2015

SPTechCon

Chemnitzer Linux-Tage 2015

Automotive Linux Summit

Austin, TX

Hörsaal- und Seminar-Gebäude der Technischen

Tokio, Japan

http://www.sptechcon.com

Universität Chemnitz
09126 Chemnitz

09.-11.02.2015

29.-31.07.2015
AnDevCon

Security and Privacy
http://icissp.org

linux-summit

https://chemnitzer.linux-tage.de

International Conference on Information Systems
Angers, Loire Valley, France

http://events.linuxfoundation.org/events/automotive-

28.03.2015

Boston, MA

14. Augsburger Linux-Infotag

http://www.andevcon.com

Hochschule Augsburg
86161 Augsburg
19.-22.02.2015

http://www.luga.de/LIT-2015/

SCALE 13x

SPTechCon
Boston, MA

Los Angeles, CA
http://www.socallinuxexpo.org/scale13x

24.-27.08.2015

http://www.sptechcon.com
06.04.2015
HPC for Wall Street -- Cloud Technology Show and

09.-11.03.2015

Conference

Wearables TechCon

New York, NY

Santa Clara, CA

http://www.flaggmgmt.com/linux/

http://www.wearablestechcon.com

05.-07.10.2015
Embedded Linux Conference Europe
Dublin, Irland
http://events.linuxfoundation.org/events/embeddedlinux-conference-europe

24.-25.04.2015
11.-12.03.2015

Grazer Linuxtage 2015

Cloud Expo Europe
London, UK
http://www.cloudexpoeurope.com

05.-07.10.2015
LinuxCon Europe

8020 Graz, Österreich

Dublin, Irland

http://www.linuxtage.at

http://events.linuxfoundation.org/events/linuxconeurope

16.-20.03.2015
CeBIT 2015

26.-28.04.2015

01.-03.12.2015

Messegelände

Big Data TechCon

30521 Hannover

Boston, MA

Santa Clara, CA

http://www.cebit.de

http://www.bigdatatechcon.com

http://www.andevcon.com

AnDevCon

02/2015

Österreich
€ 7,05
€ 9,35
€ 3,—
€ 71,90
€ 96,90
€ 6,70
Österreich
€ 6,40
€ 65,20
€ 12,—
€ 12,—
Österreich
€ 163,90

Schweiz
Sfr 12,80
Sfr 17,—
Sfr 4,50
Sfr 107,50
Sfr 142,80
Sfr 8,50
Schweiz
Sfr 8,30
Sfr 84,80
Sfr 12,—
Sfr 12,—
Schweiz
Sfr 199,90

Ausland EU
(siehe Titel)
(siehe Titel)
€ 3,—
€ 84,60
€ 99,90
€ 6,70
Ausland EU
€ 6,40
€ 65,20
€ 12,—
€ 12,—
Ausland EU
€ 173,90

1 nur erhältlich in Verbindung mit einem Jahresabo Print oder Digital

Service

Deutschland
€ 6,40
€ 8,50
€ 3,—
€ 65,20
€ 87,90
€ 6,70
Deutschland
€ 6,40
€ 65,20
€ 12,—
€ 12,—
Deutschland
€ 143,40

Ein Unternehmen der MARQUARD MEDIA INTERNATIONAL AG
Verleger Jürg Marquard
Redaktion / Verlag

Redaktionsanschrift:
Redaktion Linux-Magazin
Putzbrunner Straße 71, D-81739 München
Telefon: +49 89 - 99 34 11-0
Telefax: +49 89 - 99 34 11-99
E-Mail: redaktion@linux-magazin.de
http://www.linux-magazin.de

Verlagsanschrift:
Computec Media GmbH
Dr-Mack-Str. 83, D-90762 Fürth
Telefon: +49 911 - 2872-100
Telefax: +49 911 - 2872-200

Geschäftsführer

Rainer Rosenbusch, Hans Ippisch

Chefredakteur
stv. Chefredakteure

Jan Kleinert (V.i.S.d.P.), jkleinert@linux-magazin.de (jk)
Markus Feilner, mfeilner@linux-magazin.de (mfe)
Jens-Christoph Brendel, jcb@linux-magazin.de (jcb)
Jens-Christoph Brendel, jcb@linux-magazin.de (jcb)

2 mit LinuxUser-Abo (DVD) und beiden Jahres-DVDs, inkl. DELUG-Mitgliedschaft

(monatl. DELUG-DVD)
Schüler- und Studentenermäßigung: 20 Prozent gegen Vorlage eines Schülerausweises
oder einer aktuellen Immatrikulationsbescheinigung. Der aktuelle Nachweis ist bei
Verlängerung neu zu erbringen. Andere Abo-Formen, Ermäßigungen im Ausland etc. auf
Anfrage.
Adressänderungen bitte umgehend mitteilen, da Nachsendeaufträge bei der Post nicht
für Zeitschriften gelten.

Redaktionsltg. Online
Print- und Onlineredaktion
Aktuell, Forum, Software, Kristian Kißling, kkissling@linux-magazin.de (kki)
Programmierung
Jens-Christoph Brendel, jcb@linux-magazin.de (jcb)
Sysadmin, Know-how
Markus Feilner, mfeilner@linux-magazin.de (mfe)
Ständige Mitarbeiter
Zack Brown, Mela Eckenfels, Heike Jurzik (hej), Charly Kühnast, Martin Loschwitz,
Michael Schilli, Tim Schürmann, Mark Vogelsberger, Uwe Vollbracht
Schlussredaktion
Jürgen Manthey
Tim Schürmann (info@tim-schuermann.de)
DELUG-DVD
Grafik
Boris Schmelter (Titel-Illustration), Judith Erb
Bildnachweis
123RF.com, Fotolia.de, Photocase.com, Pixelio.de und andere

Autoren dieser Ausgabe
Mela Eckenfels

Überall dabei

54

Florian Evers

Lasst uns reden!

100

Rainer Grimm

Statisch geprüft

106

Patrick Koetter

Sicherer Transport

42

Charly Kühnast

Auf den Hund kommen

69

Martin Loschwitz

Ausweis-Kontrolle

46

Martin Loschwitz

Jetzt aber!

38

Martin Loschwitz

Platz? Da!

80

Martin Loschwitz

Verlorene Liebe

26

Michael Schilli

Schirmherr

110

Tim Schürmann

E-Mail, aber sicher

32

Tim Schürmann

Tine 2.0, Susecon-Videos, SLES 12

49

Dr. Udo Seidel

Fenster zur Welt

86

Dr. Udo Seidel

Lift in die Wolken

70

Dr. Udo Seidel

Selbstkontrolle

96

Sabine Sobola

Nebulös

90

Uwe Vollbracht

Tooltipps

64

Marketing/Sales
Produktion

marketing@linux-magazin.de
Martin Closmann (Ltg.) martin.closmann@computec.de,
Jörg Gleichmar joerg.gleichmar@computec.de

Vertrieb, Abonnement

Werner Spachmüller (Ltg) werner.spachmueller@computec.de

Anzeigen

Mediaberatung USA
und weitere Länder

Verantwortlich für den Anzeigenteil: Petra Jaser
Es gilt die Anzeigenpreisliste vom 01.01.2014.
Petra Jaser, anzeigen@linux-magazin.de
Telefon: +49 89 - 99 34 11 24 • Fax: +49 89 - 99 34 11 99
Ann Jesse, ajesse@linuxnewmedia.com, Telefon +1 785 841 8834
Eric Henry, ehenry@linuxnewmedia.com, Telefon +1 785 917 0990

Internet
Täglicher Newsletter
Heftarchiv
Leserbriefe
Heft-DVDs
Allgemeine Anfragen

http://www.linux-magazin.de
http://www.magazin.de/mc/subscribe
http://www.linux-magazin.de/Ausgaben
redaktion@linux-magazin.de
cdredaktion@linux-magazin.de (Fragen und Ersatzbestellungen DVDs)
info@linux-magazin.de

ISSN
Abo-Infoseite
Abo-Bestellung
Abo-Service

1432 – 640 X
http://www.linux-magazin.de/Produkte
http://www.linux-magazin.de/Abo
COMPUTEC MEDIA GMBH
c/o ZENIT Pressevertrieb GmbH
Postfach 810580 – D-70522 Stuttgart
E-Mail: computec@zenit-presse.de
Telefon +49 711 - 7252-250 • Telefax +49 711 - 7252-399
http://www.linux-magazin.de/Abo • E-Mail: sales@linux-magazin.de

Mediaberatung D, A, CH

Einzelheftbestellung

Krypto-Info
GnuPG-Schlüssel der Linux-Magazin-Redaktion:
pub 1024D/44F0F2B3 2000-05-08 Redaktion Linux-Magazin
<redaktion@linux-magazin.de>
Key fingerprint = C60B 1C94 316B 7F38 E8CC E1C1 8EA6 1F22 44F0 F2B3
Public-Key der DFN-PCA:
pub 2048R/7282B245 2007-12-12,
DFN-PGP-PCA, CERTIFICATION ONLY KEY (DFN-PGP-Policy: 2008-2009)
<https://www.pki.dfn.de/pgp>
Key fingerprint = 39 D9 D7 7F 98 A8 F1 1B 26 6B D8 F2 EE 8F BB 5A
PGP-Zertifikat der DFN-User-CA:
pub 2048R/6362BE8B (2007-12-12),
DFN-PGP-User-CA, CERTIFICATION ONLY KEY (DFN-PGP-Policy: 2008-2009)
<https://www.pki.dfn.de/pgp>
Key fingerprint = 30 96 47 77 58 48 22 C5 89 2A 85 19 9A D1 D4 06
Root-Zertifikat der CAcert:
Subject: O=Root CA, OU=http://www.cacert.org, CN=CA Cert Signing Authority/
Email=support@cacert.org
SHA1 Fingerprint=13:5C:EC:36:F4:9C:B8:E9:3B:1A:B2:70:CD:80:88:46:76:CE:8F:33
MD5 Fingerprint=A6:1B:37:5E:39:0D:9C:36:54:EE:BD:20:31:46:1F:6B
GPG-Schlüssel der CAcert:
pub 1024D/65D0FD58 2003-07-11 [expires: 2033-07-03]
Key fingerprint = A31D 4F81 EF4E BD07 B456 FA04 D2BB 0D01 65D0 FD58
uid CA Cert Signing Authority (Root CA) <gpg@cacert.org>

Pressevertrieb

MZV GmbH & Co. KG • Ohmstraße 1 • 85716 Unterschleißheim
Telefon: +49 89 31906–0 • Fax: +49 89 31906–113
Druck
Vogel Druck und Medienservice GmbH & Co. KG, 97204 Höchberg
COMPUTEC MEDIA ist nicht verantwortlich für die inhaltliche Richtigkeit der Anzeigen und übernimmt keinerlei
Verantwortung für in Anzeigen dargestellte Produkte und Dienstleistungen. Die Veröffentlichung von Anzeigen
setzt nicht die Billigung der angebotenen Produkte und Service-Leistungen durch COMPUTEC MEDIA voraus. Sollten
Sie Beschwerden zu einem unserer Anzeigenkunden, seinen Produkten oder Dienstleistungen haben, möchten
wir Sie bitten, uns dies schriftlich mitzuteilen. Schreiben Sie unter Angabe des Magazins, in dem die Anzeige
erschienen ist, inklusive der Ausgabe und der Seitennummer an: CMS Media Services, Annett Heinze, Anschrift s. o.
Der Begriff Unix wird in dieser Schreibweise als generelle Bezeichnung für die Unix-ähnlichen Betriebssysteme
verschiedener Hersteller benutzt. Linux ist eingetragenes Markenzeichen von Linus Torvalds und wird in
unserem Markennamen mit seiner Erlaubnis verwendet.
Eine Haftung für die Richtigkeit von Veröffentlichungen kann trotz sorgfältiger Prüfung durch die Redaktion
vom Verlag nicht übernommen werden. Mit der Einsendung von Manuskripten gibt der Verfasser seine Zustimmung zum Abdruck. Für unverlangt eingesandte Manuskripte kann keine Haftung übernommen werden.
Das Exklusiv- und Verfügungsrecht für angenommene Manuskripte liegt beim Verlag. Es darf kein Teil des
Inhalts ohne ausdrückliche schriftliche Genehmigung des Verlags in irgendeiner Form vervielfältigt oder
verbreitet werden.

Marquard Media
Deutschsprachige Titel:
SFT, WIDESCREEN, PC GAMES, PC GAMES MMORE, PC GAMES HARDWARE, BUFFED, X3, PLAY 4, GAMES & MORE,
GAMES AKTUELL, N-ZONE, XBG GAMES, LINUX-MAGAZIN, LINUXUSER, EASYLINUX, RASPBERRY PI GEEK
Internationale Zeitschriften:
Polen: COSMOPOLITAN, JOY, SHAPE, HOT, PLAYBOY, CKM, VOYAGE, Harper’s Bazaar
Ungarn: JOY, SHAPE, ÉVA, IN STYLE, PLAYBOY, CKM, Men’s Health

Impressum

Preise Print
No-Media-Ausgabe
DELUG-DVD-Ausgabe
Mini-Abo (3 Ausgaben)
Jahresabo No Media
Jahresabo DELUG-DVD
Jahres-DVD zum Abo 1
Preise Digital
Heft-PDF Einzelausgabe
DigiSub (12 Ausgaben)
DigiSub zum Printabo
HTML-Archiv zum Abo 1
Preise Kombiabos
Mega-Kombi-Abo 2

Impressum

www.linux-magazin.de

Abonnement

121

02/2015
01/2013

Service

Vorschau
03/2015

Vorschau 02/2013
03/2015

Überschrift
SLED 12

Ja, es gibt ihn noch, den Linux-Desktop mit Enterprise-Support. Er kommt von Suse und teilt die Codebasis mit dem
jüngst präsentierten SLES 12. Um 50, teilweise 80 Prozent billiger als andere Desktops soll er sein und weniger Hardware fordern, meint der Hersteller. Das Linux-Magazin hat’s getestet.
© Zhanna Tretiakova, 123RF

www.linux-magazin.de

122

App nimmt Kontakt auf
Soll die eigene Android-App einen Raspberry Pi steuern, dann
schickt mancher Entwickler bloß Kommandos durch eine SSHVerbindung. Dabei gibt es mit Websockets eine elegante Alternative. Ein Artikel im nächsten Heft zeigt, wie Entwickler Sockel zum Schwingen bringen.

Mischen possible
Selbst Entwickler, die das Privileg genießen, frei ihre Muttersprache zu wählen, müssen sich manchmal bei einer Teilaufgabe eingestehen, dass eine andere Programmiersprache hier
effizienter arbeiten würde oder performanter. Oder man schielt
auf Möglichkeiten, die ein fremdes Framework hier böte.
Jetzt schlägt die Stunde von Mixed Languages oder polyglotter
Programmierung. C-Programme, die nah an Hardware ranmüssen oder die Performanceprobleme plagen, betten schon immer Assemblercode ein. Neuer ist der Kniff, exotische Sprachen,
die beim Übersetzen sowieso Java-Zwischencode erzeugen,
gleich die Vielfalt der Kaffeeinsel schmecken zu lassen. Das
nächste Linux-Magazin pickt leckere Cocktailrezepte heraus.

Vorschau
auf 02/2015
Die nächste Ausgabe erscheint am 22. Januar

© Studio Porto Sabbia, 123RF

MAGAZIN

Dachzeile

Gezielt verständigen
Seit Python 3.4 ist Asyncio Teil der Standardbibliothek und
ermöglicht asynchrone Client-Server-Kommunikation in abstrahierter Form über TCP, UDP, SSL, Subprocess-Pipes oder
Delayed Calls. Es ist an der Zeit, die vielfältigen Gestaltungsmöglichkeiten der Bibliothek zu studieren.

Die Ausgabe 03/2015
erscheint am 5. Februar 2015

Optimale Grafik-Tools
Mit einem Linux-System haben Sie immer Tools zur Hand, um
Grafiken zu erstellen oder Bildern den letzten Schliff zu geben. Mit Workshops helfen wir bei der Auswahl und verraten
dabei, wie Sie mit dem Draw-Modul von Libre Office ansprechende Grafiken erstellen. Mit MyPaint und MtPaint nehmen
wir zwei Kandidaten unter die Lupe, die sich an jene richten,
denen Gimp für die Arbeit mit Bildern zu komplex ist.

Texteditor Slap
Wenn der Editor lästige Aufgaben übernimmt, bleibt der Kopf
frei für das Feilen an Sätzen und Wörtern. Wir nehmen mit
Slap einen Vertreter für die Konsole unter die Lupe und prüfen, ob er das Prädikat „Sublime-Ersatz“ verdient.

Backup mit einem Klick
Mit Systembackup drehen Sie die Zeit einfach zurück: Die
Software ermöglicht es, die Daten im Verzeichnis eines Users
zu sichern und wieder zurückzuspielen. Als kleines Extra erstellen Sie mit ihm ein angepasstes Live-System.