26.02.2014 Aufrufe

Linux-Magazin Alle für einen (Vorschau)

Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.

YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.

10/13<br />

DIE ZEITSCHRIFT FÜR LINUX-PROFESSIONALS<br />

Feed-Aggregatoren<br />

im Planetenfieber<br />

Blogs, Nachrichten, Webcomics und Videocasts<br />

zusammenfassen und anzeigen S. 64<br />

GPIO-Treiber<br />

Eigene schnelle IO-Kernelmodule<br />

<strong>für</strong> Rasp berry Pi &<br />

Co. schreiben S. 102<br />

Ganz regulär<br />

»std::reg ex_replace()« in<br />

C++11 revolutioniert das<br />

Suchen & Ersetzen S. 108<br />

<strong>Alle</strong> <strong>für</strong> <strong>einen</strong><br />

Gemeinsinn und Pragmatismus bewahren<br />

Open-Source-Projekte vorm Scheitern<br />

■ Viel Manpower: Gnome & KDE S. 26<br />

■ Unter der Oberfläche: X11 bis Xmir S. 30<br />

■ Fork: Aus dem GCC wird die GCC S. 36<br />

■ Rivalen I: Xen vs. KVM S. 40<br />

■ Rivalen II: IPsec vs. Open VPN S. 44<br />

■ Auf los: Upstart, Systemd, Eudev S. 48<br />

■ Filesystem-Clan: Viermal Ext-FS S. 52<br />

■ Der ewige GNU-Editor: Emacs S. 56<br />

■ Freiheit <strong>für</strong> 100 000 Euro: Blender S. 60<br />

■ Citrix Xenserver 6.2 wird<br />

Open Source S. 76<br />

■ Leap Motion erkennt die kleinste Geste S. 96<br />

An der Costa Brava trotzt Charly nicht nur der Sonne, sondern mit Mosh auch instabilen WLANs. S. 75<br />

www.linux-magazin.de<br />

Deutschland Österreich Schweiz Benelux Spanien Italien<br />

4 6,40 4 7,05 sfr 12,80 4 7,50 4 8,30 4 8,30<br />

4 192587 306401 10


Sieben Jahre: Pech!<br />

Login 10/2013<br />

Editorial<br />

Den wenigsten Admins ist es langweilig. Wenn nicht gerade ihre Dienste als „Da<br />

kommt kein Anmeldebildschirm mehr!“-Feuerwehrleute gefragt sind, sie prophylaktisch<br />

in Logfiles wühlen, dem Klimaanlagen-Heino erklären, warum er nicht mal<br />

alles <strong>für</strong> eine Stunde abschalten darf, oder sich der visionären Ideen ihres Chefs<br />

– vielleicht trägt der sogar den Titel „CIO“ – erwehren müssen, dann fahren sie auf<br />

eine Fortbildung oder lesen vielleicht das <strong>Linux</strong>-<strong>Magazin</strong>.<br />

Wer trotzdem mal über den Alltag hinweg schaut, fragt sich eines Tages: Habe ich<br />

den richtigen Job? „Ach naja: ja“, denken dann die meisten. Denn nach den Krisen<br />

früherer Jahre sind die Kenntnisse und Dienste von Admins wieder deutlich mehr<br />

gefragt, sogar das an sich arbeitnehmerfreundliche Wort „Fachkräftemangel“<br />

macht die mediale Runde.<br />

Jan Kleinert, Chefredakteur<br />

Nun legt eine Studie, welche die Unternehmensberatung A.T. Kearney angestellt<br />

hat, unfreiwillig nahe, dass Admin zu sein im Jahre 2020 vermutlich k<strong>einen</strong> großen<br />

Spaß machen wird. Aber nacheinander: Um zu verstehen, wie die IT-Welt in sieben Jahren ticken wird, hat<br />

die Unternehmensberatung unter anderem 150 CIOs global agierender Unternehmen befragt und die Antworten<br />

quantifiziert. <strong>Alle</strong>n heutigen Konsolidierungsbemühungen zum Trotz erwarten demnach 84 Prozent der CIOs<br />

im Jahr 2020 deutlich mehr und speziellere Applikationen als im Moment. Um nicht an der quantitativen und<br />

qualitativen Komplexität zu scheitern, wollen die Betroffenen künftig noch mehr als heute auf Standardsoftware<br />

setzen. 80 Prozent der Befragten glaubt, dass jede zweite Applikation von der Stange sein wird.<br />

Den verhaltenen Optimismus der Firmen-IT-Lenker trübt, dass 60 Prozent von ihnen erwarten, 2020 die Verantwortung<br />

<strong>für</strong> doppelt bis viermal so viele Endgeräte und Server zu tragen. Deren Pflege wird – soviel Realismus<br />

muss sein – eventuell eingesparte Aufwände bei den Applikationen zunichte machen, mindestens. Was tun? Drei<br />

Viertel der CIOs wollen noch mehr einfache Leistungen outsourcen, die so genannten Commodities, wenn möglich<br />

in die Cloud. 60 Prozent schielen dabei auf Dienstleister im billigeren Ausland. Parallel müssen neue Stellen mit<br />

neuen Fähigkeiten geschaffen werden, um die neuen in- und ausländischen Partner zu managen. Ganz zu schweigen<br />

von den Mitarbeitern, die Lösungen zur Erfüllung der neuen Anforderungen an die IT entwickeln müssen.<br />

Der Umstieg auf solche Modelle soll <strong>einen</strong> drastischen Umbau der IT-Abteilungen nach sich ziehen und 40 Prozent<br />

der Stellen betreffen. Treten die Prognosen ein, dann müssen allein in Deutschland 136 000 Mitarbeiter ihren Job<br />

wechseln, sich umschulen lassen oder bekommen die Kündigung. Auf Deutsch: 40 Prozent der heutigen Admins<br />

wird in sieben Jahren zu einem Billig-Dienstleister abgeschoben, zum SLA-Überwacher umgeschult oder gleich<br />

auf die Straße gesetzt. Wie sich das Gekündigtwerden anfühlt, dürfen 90 Prozent der Sysadmins bei der National<br />

Security Agency schon mal ausprobieren. Keith Alexander, der Direktor der NSA, hat genau das am 8. August auf<br />

einer Cyber-Konferenz in New York angekündigt. Durch IT-Automatisierung, so sein Plan, werde ein Großteil der<br />

menschlichen Arbeit überflüssig. Ohne den Namen Edward Snowden zu nennen, fügte der NSA-Chef hinzu, dass<br />

sich im gleichen Maße die Zahl der Menschen mit Zugang zu Geheiminformationen verringere.<br />

Die Logik dahinter: Nicht das überaus verschwenderische Erheben und Speichern von Kommunikationsdaten der<br />

Weltbevölkerung ist der Sündenfall ungekannten Außmaßes, nein, interne Datenlecks, die das öffentlich machen,<br />

sind das Problem, das es zu lösen gilt. Der auf Klick und Tritt überwachte Bürger mag das seltsam und nassforsch<br />

finden. In Wahrheit ist die NSA ihrer Zeit nur sieben Jahre voraus.<br />

www.linux-magazin.de<br />

3


Inhalt<br />

www.linux-magazin.de 10/2013 10/2013<br />

4<br />

Einer <strong>für</strong> alle, alle <strong>für</strong> <strong>einen</strong>: Gemeinsinn und Pragnatismus erweisen sich als Erfolgsfaktoren<br />

<strong>für</strong> Open-Source-Projekte. Das jedenfalls ist das Ergebnis der Untersuchungen, die das<br />

<strong>Linux</strong>-<strong>Magazin</strong> anhand von Beispielen <strong>für</strong> diesen Schwerpunkt angestellt hat. Erstaunlich:<br />

Kaum ein Projekt folgt beim Entwickeln einem der etablierten Modelle.<br />

Aktuell<br />

Titelthema: Erfolgsfaktoren bei Open-Source-Projekten<br />

6 N ew s<br />

n 1000 verwaiste CPAN-Module<br />

n Long-Term-Support <strong>für</strong> KDE 4.11<br />

26 Desktops<br />

Titel<br />

Wie sich Gnome und KDE organisieren.<br />

48 Initsysteme<br />

Runlevel, Init-Skripte, Symlinks unter »/etc<br />

/rc.d/«: Systemd macht vieles anders.<br />

Massen von Entwicklern bewegen die Desktops.<br />

My Kolab: Vertrauenswürdige Groupware.<br />

12 Zahlen & Trends<br />

n Neue Millionen <strong>für</strong> Open Xchange<br />

n Open Root Servers: DNS ohne die USA<br />

30 Von X11 bis Xmir<br />

Fenstersystemen steht nach langer Zeit<br />

der Umbruch zu Wayland und Mir bevor.<br />

36 GCC<br />

Der Standard-Compiler der GNU-Welt hat<br />

<strong>einen</strong> Fork überlebt.<br />

Upstart, Systemd und Eudev stehen in den<br />

Startblöcken, um Sys-V den Rang abzulaufen.<br />

52 Ext-FS<br />

Vier Generationen des beliebten Filesystems<br />

bestimmen das <strong>Linux</strong>-Leben.<br />

Solarpanele ausgeklappt: Der Solar-Laptop<br />

von Wewi kostet nur 350 Dollar.<br />

18 Zacks Kernel-News<br />

Patch-Empfänger und Umgangston.<br />

20 Open Suse Conference<br />

Grüne Strategie- und Richtungsdebatten<br />

auf Suses Community-Konferenz.<br />

Richard Stallman brauchte <strong>für</strong> sein GNU-Projekt<br />

dringend <strong>einen</strong> Compiler.<br />

40 Xen und KVM<br />

Das Wettrennen der beiden wichtigsten<br />

<strong>Linux</strong>-Hypervisoren.<br />

44 Open VPN und IPsec<br />

Parallel entwickelt: <strong>Linux</strong>-VPN-Software.<br />

Die Ext-FS-Familie zählt zu den ältesten Bewohnern<br />

der meisten <strong>Linux</strong>-Maschinen.<br />

56 Emacs<br />

Der programmier- und erweiterbare Editor.<br />

60 Blender Open-Source-Coup<br />

In sieben Wochen kratzte die Community<br />

100 000 Euro zusammen.<br />

Zur OSC trafen sich die Geekos in Thessaloniki.<br />

24 Ubuntu Edge<br />

Crowdfunding <strong>für</strong> ein Smartphone.<br />

Open VPN ist auf jedem Androiden vorinstalliert.<br />

Service<br />

3 Editorial<br />

116 IT-Profimarkt<br />

120 Veranstaltungen<br />

120 Inserenten<br />

121 Impressum<br />

122 <strong>Vorschau</strong>


10/2013 10/2013<br />

Inhalt<br />

64 Klasse Konstellationen<br />

Die tägliche Dosis News nicht nur aus<br />

der Open-Source-Szene bieten RSSoder<br />

Atom-Feeds. Planeten bereiten<br />

die Inhalte auf dem eigenen Server auf.<br />

76 Endlich frei!<br />

Ende Juni gab Citrix die neueste Ver sion<br />

6.2 seiner Enterprise-Virtualisie rung<br />

Xenserver als Open-Source-Software<br />

frei, inklusive Management.<br />

112 Bewegte Reife<br />

Der elektronische Armreif Up misst Bewegungen<br />

seines Trägers. Perlmeister<br />

Schilli schließt daraus auf zurückgelegte<br />

Wege und Schlafrhythmen.<br />

www.linux-magazin.de<br />

5<br />

Software<br />

Sysadmin<br />

Hardware<br />

63<br />

Einführung<br />

Auf der DELUG-DVD: Kali, Enquete-<br />

Berichte, ein Routing-E-Book und Tor.<br />

64 Bitparade<br />

Titel<br />

Vier Feed-Aggregatoren im Test: Planet<br />

Planet, Moon Moon, Planet Venus und<br />

Tiny Tiny RSS.<br />

75 Einführung<br />

Titel<br />

Aus dem Urlaub eines Sysadmin: Charly<br />

benutzt wilde Mosh-Shells, um trotz unzuverlässigen<br />

Internetempfangs zu arbeiten.<br />

76 Xenserver<br />

Titel<br />

Auf dem freien Hypervisor Xen baute<br />

Citrix sein proprietäres Cloud-Management<br />

auf. Nun ist es freie Software.<br />

96 Leap Motion<br />

Titel<br />

Die freihändige Gestensteuerung des<br />

Leap Motion unter <strong>Linux</strong> verwenden.<br />

82 Jelastic<br />

Platform as a Service <strong>für</strong> Java und PHP:<br />

Eine Dortmunder Firma will Lastspitzen<br />

automatisch abfangen.<br />

Inklusive <strong>Linux</strong>-SDK: Der Leap Motion überzeugt<br />

durch Preis und Messgenauigkeit.<br />

Planet Planet bindet die Bilder des Webcomics<br />

Xkcd ein, entfernt aber leider Audiodateien.<br />

72 Tooltipps<br />

Cputool 0.0.6, Cscope 15.8a, Finit 1.8, Fossil<br />

1.26, Keybox 1.08.50 und Playshell 0.2.<br />

Forum<br />

88 Rechtsrat<br />

Brüssel verabschiedet eine<br />

EU-Richtlinie <strong>für</strong> Open Government.<br />

Know-how<br />

102 Kern-Technik 70<br />

Titel<br />

Kernel- und Treiberprogrammierung<br />

mit dem <strong>Linux</strong>-Kernel: GPIOs nutzen am<br />

Beispiel des Raspberry Pi.<br />

Das Ncurses-Tool Cscope sucht in Quelltexten.<br />

DELUG-DVD<br />

Kali <strong>Linux</strong> 1.0.4<br />

TOOL<br />

Bootet von DVD: Nachfolgerin der<br />

Security-Distribution Bugtrack<br />

Virtual Appliance<br />

TOOL<br />

TOOL<br />

Zum sofort Ausprobieren:<br />

„Turnkey Domain Controller“, der<br />

aufgebohrte PDC <strong>für</strong> heterogene<br />

Netze<br />

TOOL<br />

92 Bücher<br />

Bücher über C und<br />

über Programmierer-<br />

Gesundheit.<br />

94 Leserbriefe<br />

Auf den Punkt gebracht.<br />

Details zu DVD-<br />

TOOL<br />

Inhalten auf S. 63<br />

E-Books satt<br />

„Praxiskurs Routing & Switching“<br />

auf 200 Seiten sowie 1300 Seiten<br />

Bundestagsabschlussberichte der<br />

Internet-Enquete-Kommission<br />

Tor und Suse<br />

Anonymisier-Interna und Key notes<br />

der Suse Conference (6 Stunden)<br />

Programmieren<br />

108 C++11 – Folge 12<br />

Titel<br />

Modernes C++ in der Praxis: Regex-<br />

Replace anonymisiert und lokalisiert.<br />

112 Perl-Snapshot<br />

Titel<br />

Totale Überwachung dank Perl: Mike<br />

Schillis Skripte werten Armreifdaten aus.<br />

Ein Bastler zeigt im, wie er <strong>einen</strong> Up-Armreif<br />

aufschlitzt und erklärt die Komponenten.


Aktuell<br />

www.linux-magazin.de News 10/2013<br />

6<br />

News<br />

My Kolab: Hosted Groupware nach Schweizer Recht und Gesetz<br />

Der Open-Source-Branche<br />

kommen Prism, Tempora und<br />

XKeyscore offenbar gelegen:<br />

Jetzt hat die Schweizer Firma<br />

Kolabsys die Groupware Kolab<br />

auch als Webdienst bereit gestellt<br />

– unter dem Namen My<br />

Kolab [http://​mykolab.​com].<br />

Das volle Programm, aber<br />

nach europäischem – genauer<br />

Schweizer – Recht und<br />

Datenschutzvorgaben, biete<br />

My Kolab den Anwendern,<br />

schreibt die Firma in ihrer<br />

Pressemitteilung zum Start<br />

des Webdienstes. Die Enthüllungen<br />

von Edward Snowden<br />

hätten die seit Januar laufenden<br />

Betatests noch weiter<br />

beschleunigt.<br />

Die GPL-Groupware Kolab<br />

soll Menschen und Unternehmen<br />

beim Streben nach<br />

ihrem Grundrecht auf Privatsphäre<br />

helfen: „Sie können<br />

die Kontrolle über Ihre Kommunikation<br />

und Ihre Daten<br />

zurückerobern, ohne dabei<br />

Bequemlichkeit und Produktivität<br />

zu opfern.“<br />

My Kolab, so das Unternehmen,<br />

biete alle Funktionen,<br />

die Anwender des Groupware-Servers<br />

kennen und richte<br />

sich in erster Linie an Unternehmen,<br />

die „sich vor Wirtschaftsspionage<br />

schützen<br />

wollen.“ Auch die Migration<br />

bestehender Installationen sei<br />

problemlos möglich. n<br />

My Kolab: Groupwaredienste ohne lästige Installation.<br />

Repurposing: Stratodesk macht Alt-PCs zu Thinclients<br />

CPAN-Waisen<br />

Das Unternehmen Stratodesk<br />

mit Filialen in den USA und<br />

Österreich, bietet mit No-<br />

Touch-Desktop eine <strong>Linux</strong>-<br />

Lösung an, die Alt-PCs (nach<br />

1998 gebaut) als verwaltete<br />

Thinclients nutzbar macht,<br />

was unter dem Schlagwort<br />

Repurposing zusammengefasst<br />

wird. In Frage kommen<br />

Computer der Architekturen<br />

x86 und x86_64, die mindestens<br />

500 MHz Prozessortakt<br />

und 128 MByte Arbeitsspeicher<br />

aufweisen.<br />

Das Client-Betriebssystem,<br />

das auf Ubuntu 10.04 basiert,<br />

landet per CD, USB-Speicher<br />

oder PXE-Boot auf den Maschinen,<br />

kann anschließend<br />

im Live-Betrieb laufen oder<br />

auf die Festplatte installiert<br />

werden. Auf Wunsch löscht<br />

der Installer die Windows-<br />

Daten auf der wiederverwendeten<br />

Festplatten sicher über<br />

ATA Secure Erase.<br />

No-Touch-Desktop setzt freie<br />

Remote-Desktop-Software<br />

wie Free RDP und Rdesktop<br />

ein, daneben aber auch die<br />

von Citrix und VMware lizenzierten<br />

Clients. Ein minimal<br />

ausgestattetes Image umfasst<br />

32 MByte, ein maximal ausgestattetes<br />

schließt Java und<br />

Firefox ein und bringt es auf<br />

400 MByte. Letzteres eignet<br />

sich auch <strong>für</strong> moderne Thinclients<br />

mit einem größeren<br />

Funktionsumfang. Die Administration<br />

der Thinclients<br />

erfolgt bei Bedarf lokal (inklusive<br />

Zugriff auf die <strong>Linux</strong>-<br />

Konsole), häufig übernimmt<br />

aber auch das hauseigene<br />

Administrationscenter von<br />

Stratodesk.<br />

Auf der Produktseite [http://<br />

stratodesk.com] gibt es weitere<br />

Informationen sowie eine Evaluationsversion<br />

der Software<br />

zum Herunterladen nach Registrierung.<br />

Die Lizenzpreise<br />

unterscheiden sich nach Volumen,<br />

liegen aber bei rund<br />

50 Euro pro Arbeitsplatz. n<br />

Der Perl-Programmierer Neil<br />

Bowers hat eine Liste von<br />

rund 1000 verwaisten Perl-<br />

Modulen aus dem CPAN-Archiv<br />

veröffentlicht. Eine automatisierte<br />

Bewertung soll<br />

zeigen, wie lohnenswert es<br />

wäre, ein bestimmtes Modul<br />

zu pflegen. Lohnenswert seien<br />

solche Module, die häufig<br />

benutzt werden, als Indikator<br />

<strong>für</strong> die Nutzung dienen dabei<br />

Bugreports.<br />

Viele Module erhalten zwei<br />

bis fünf Punkte, die Spitzenreiter<br />

bringen es aber auf<br />

zehn oder elf. Die Übersicht<br />

ist im Web unter [http://​neilb.​<br />

​org/​adoption/] zu finden. n


Aktuell<br />

www.linux-magazin.de News 10/2013<br />

8<br />

Long Term Support <strong>für</strong> KDE 4.11<br />

Es soll die letzte Ausgabe der<br />

4er Serie werden: Der jüngst<br />

veröffentlichte KDE-Workspace<br />

4.11 punktet neben<br />

zahlreichen Bugfixes vorrangig<br />

durch den <strong>für</strong> Enterprise-<br />

Anwender wichtigen Langzeitsupport.<br />

Vor allem die<br />

Groupwaresuite Kontact profitiert<br />

von zahlreichen Patches<br />

und Erweiterungen, aber auch<br />

Wayland ist dabei.<br />

Auf dem Weg zu den KDE<br />

Frameworks 5 haben die Entwickler<br />

nicht vor, die Workspaces,<br />

Applikationen und<br />

Plattform noch einmal als<br />

gesammeltes Update-Paket<br />

herauszugeben.<br />

Die neue Version soll mehr<br />

Performance bringen, sowohl<br />

was Plasma als auch den Unterbau<br />

des Desktops angeht.<br />

Doch die Entwickler bezeichnen<br />

vor allem die Neuerungen<br />

in Kontact, Nepomuk und<br />

Akonadi als „großen Schritt<br />

vorwärts“. Sie haben neben<br />

Bugfixes – der lästige Offline-<br />

Bug ist weg – auch die Archivierungsfähigkeiten<br />

verbessert,<br />

den Memory Footprint<br />

verkleinert und den Import<br />

und Export von ganzen Mailordnern<br />

repariert. Außerdem<br />

erhielt die Suite zahlreiche<br />

neue Features, darunter <strong>einen</strong><br />

Scheduler <strong>für</strong> die »Später<br />

senden«-Funktion.<br />

Kate unterstützt mehr Sprachen<br />

und Erweiterungen<br />

(etwa Autocompletion <strong>für</strong><br />

Python 2 und 3, Javascript,<br />

Jquery, Django und XML).<br />

Der Dateimanager Dolphin<br />

lade in Verzeichnissen mit<br />

vielen Dateien neuerdings<br />

Previews, bevor er den ganzen<br />

Inhalt darstelle. Das senke<br />

die CPU- und I/​O-Last, die der<br />

Besuch solcher Verzeichnisse<br />

bisweilen auslöste. Kwin<br />

bringt neuerdings ein experimentelles<br />

Wayland-Backend<br />

mit, Kscreen steuert mehrere<br />

Monitore an und Blogilo kann<br />

HTML bearbeiten.<br />

KDE 4.11 ist dem Gedenken an<br />

Atul Chitnis gewidmet, <strong>einen</strong><br />

jüngst an Krebs verstorbenen<br />

Consultant aus der indischen<br />

KDE-Community.<br />

n<br />

© Kalyanvarma, Wikimedia Commons, CCBY 3.0<br />

Atul Chitnis, Vordenker der vielköpfigen<br />

indischen KDE-Community, starb<br />

im Juni 2013. Ihm ist die KDE-Release<br />

4.11 gewidmet.<br />

LTS-Kernel 3.10<br />

Version 3.10 des <strong>Linux</strong>-Kernel<br />

wird Langzeitsupport<br />

erhalten, also mindestens<br />

zwei Jahre lang mit Patches<br />

gepflegt. Das gab Greg<br />

Kroah-Hartman, Maintainer<br />

der stabilen Kernelversionen,<br />

in seinem privaten Blog<br />

[http://www.kroah.com] bekannt.<br />

Die Weiterentwicklung im<br />

Zweig 3.10 schreite zwar immer<br />

noch schnell voran, doch<br />

er wolle die Kernel-Hacker<br />

wissen lassen, dass es ein<br />

Longterm-Kernel werde. Auch<br />

die Initiative LTSI wird diese<br />

Version laut Kroah-Hartman<br />

zur Basis <strong>für</strong> Elektronikprodukte<br />

machen.<br />

Im Augenblick unterstützen<br />

mehrere Maintainer, darunter<br />

Greg Kroah-Hartman, Willy<br />

Tarreau sowie Ben Hutchings,<br />

die Kernelversionen 3.4, 3.2,<br />

3.0, 2.6.34 und 2.6.32 auf<br />

Kernel.org mit einem Langzeitsupport.<br />

n<br />

Grafikbibliothek SDL reloaded<br />

Containers 1.0: Einfache Tools <strong>für</strong> LXC<br />

Nach Jahren der Entwicklung<br />

ist nun Version 2.0.0 der Grafikbibliothek<br />

SDL (Simple Directmedia<br />

Layer) erschienen,<br />

auf die auch Steam setzt. In<br />

der Ankündigung der Version<br />

weist Sam Latinga, ehemaliger<br />

Lead-Entwickler bei Loki<br />

Software und jetzt bei Valve<br />

angestellt, auf die Rolle von<br />

SDL <strong>für</strong> Valves Spielekonsole<br />

hin. Die neue Version wird<br />

Teil der Steam <strong>Linux</strong> Runtime,<br />

Valve verwendet sie unter anderem<br />

<strong>für</strong> den Game-Controller-Support.<br />

Zu den wichtigen neuen Features<br />

gehört, dass SDL 2.0.0<br />

volle 3-D-Hardwarebeschleunigung<br />

beherrscht und Open<br />

GL 3.0+ mit verschiedenen<br />

Profilen unterstützt. Weiterhin<br />

bringt die Bibliothek<br />

Support <strong>für</strong> Open GL ES mit<br />

und kommt parallel mit mehreren<br />

Fenstern, Displays und<br />

Audiogeräten zurecht. Das<br />

einfache 2-D-Rendering-API<br />

nutzt wahlweise Direct 3D,<br />

Open GL, Open GL ES oder<br />

Software Rendering.<br />

SDL 2.0.0 [http://​libsdl.​org],<br />

das sich unter <strong>Linux</strong> in Form<br />

verschiedener Module installieren<br />

lässt, kann zudem mit<br />

Force Feedback und Touch-<br />

Displays umgehen, bringt<br />

simplen Drag-and-Drop-Support<br />

mit und unterstützt den<br />

Vollbildmodus besser. n<br />

Der britische Entwickler<br />

Chris Webb hat mit Containers<br />

1.0 eine Sammlung einfacher<br />

Userspace-Tools <strong>für</strong><br />

die Virtualisierung mit <strong>Linux</strong><br />

Containers (LXC) veröffentlicht.<br />

Mit den Programmen<br />

solle LXC so einfach werden<br />

wie das Anlegen einer traditionellen<br />

Chroot, schreibt deren<br />

Autor im Readme. Containers<br />

funktionieren ab <strong>Linux</strong>-Kernel<br />

3.8, das erstmals die User Namespaces<br />

unterstützt, von<br />

der die Software intensiven<br />

Gebrauch macht.<br />

Das Kommando »contain« legt<br />

<strong>einen</strong> neuen Container mit<br />

eigenem Namespace an, der<br />

den Netzwerkstack des Hosts<br />

mitbenutzen kann. Der Befehl<br />

»inject« dient dazu, in einem<br />

laufenden Container Programme<br />

auszuführen. Das Werkzeug<br />

»pseudo« ist der Ersatz<br />

<strong>für</strong> »sudo« (das im Englischen<br />

praktisch gleich klingt) und<br />

führt Kommandos in einem<br />

neuen Namespace mit Rootrechten<br />

aus.<br />

Weitere Erläuterungen inklusive<br />

einer Demonstration der<br />

Container-Syntax hat der Entwickler<br />

Chris Webb im Readme<br />

und in der Datei »TIPS«<br />

im Quelltext aufgeführt. Die<br />

erste stabile Version 1.0 steht<br />

auf [https://​github.​com/​arachsys/​<br />

​containers] unter MIT-Lizenz<br />

zur Verfügung.<br />

n


ARM-Server im USB-Stick-Format<br />

Die I2SE GmbH aus Leipzig<br />

bietet mit ihrem Produkt<br />

Duckbill <strong>einen</strong> Server im Format<br />

eines USB-Sticks an. Das<br />

<strong>für</strong> die Gebäudeautomation<br />

gedachte Gerät besitzt <strong>einen</strong><br />

ARM-9-Prozessor mit 450<br />

MHz Taktrate in Form des SoC<br />

i.MX28 von Freescale. Daneben<br />

stecken in dem kl<strong>einen</strong><br />

„Entenschnabel“ 128 MByte<br />

DDR-2-RAM. Als Massenspeicher<br />

dient eine Micro-SD-<br />

Karte mit bis zu 32 GByte, die<br />

Stromversorgung erfolgt per<br />

USB, und mit der Außenwelt<br />

kommuniziert das System per<br />

Ethernet.<br />

Auf dem Miniaturrechner<br />

läuft <strong>Linux</strong> mit dem aktuellen<br />

Kernel 3.10, der ja von den<br />

Kernelentwicklern eine Langzeitunterstützung<br />

erhält.<br />

Ab Ende September wird das<br />

Gerät – exklusive der SD-Karte<br />

– käuflich zu erwerben sein.<br />

Für Privatkunden kostet ein<br />

Der Duckbill von I2SE ist <strong>für</strong> die Hausautomation gedacht.<br />

Stick dann 60 Euro, Firmen<br />

erhalten zehn der Minigeräte<br />

ab 400 Euro plus Umsatzsteuer.<br />

Ein <strong>Linux</strong>-Image sowie die<br />

verwendeten Patches will der<br />

Hersteller dann ebenfalls veröffentlichen.<br />

n<br />

Gnome auf Github<br />

Der Gnome-Code ist nun auch<br />

in einem offiziellen Github-<br />

Repository zu finden, schreibt<br />

Gnome-Entwickler Alberto<br />

Ruiz in seinem Blog. Das soll<br />

es Externen vereinfachen,<br />

Gnome-Code zu verwenden,<br />

zu verbessern und an das Projekt<br />

zurückzugeben. Ruiz hätte<br />

<strong>einen</strong> Aha-Effekt erlebt, als<br />

jemand auf Github seine Software<br />

ungefragt optimierte.<br />

Das Repository befindet<br />

sich unter [https://​github.​com/​<br />

​GNOME], die Wiki- und Bugtracker-Funktionen<br />

sind deaktiviert,<br />

Pull-Requests werden ignoriert.<br />

Das Mirror-Repository<br />

solle die Gnome-Infrastruktur<br />

nicht ersetzen, so Ruiz. n<br />

News 10/2013<br />

Aktuell<br />

www.linux-magazin.de<br />

9<br />

Anzeige<br />

Phased Updates in Ubuntu 13.04<br />

Stable Release Upgrades<br />

(SRUs) veröffentlichen die<br />

Ubuntu-Entwickler nach dem<br />

Release einer Version. Sie reparieren<br />

Fehler in der vorhandenen<br />

Software und schließen<br />

Sicherheitslücken. Mitunter<br />

sorgt aber ein Update <strong>für</strong> eine<br />

Bibliothek unerwartet da<strong>für</strong>,<br />

dass eine ganz andere Software<br />

nicht mehr funktioniert.<br />

Solche Regressionen lassen<br />

sich offensichtlich nicht abschaffen,<br />

aber zumindest eindämmen.<br />

Genau das jedenfalls plant<br />

nun eine Gruppe um Brian<br />

Murray [http://​www.​murraytwins.​<br />

​com/​blog/​?​p=127] mit den<br />

Phased Updates. Bislang erhielt<br />

das Ubuntu-Projekt über<br />

ihr Bugtool Apport zwar Fehlermeldungen,<br />

wenn eine<br />

Regression auftrat, die betraf<br />

dann aber bereits viele User.<br />

Seit Version 13.04 liefert man<br />

Updates hingegen nur an zehn<br />

Prozent der User aus, die der<br />

Update-Manager über eine<br />

zufällig generierte Zahl bestimmt.<br />

Stürzt eine Software<br />

gehäuft ab, registriert der Errortracker<br />

das in der Testgruppe,<br />

stoppt das Ausliefern der<br />

Updates und die Entwickler<br />

beheben die Regression. Die<br />

Quantität der Abstürze verrät,<br />

ob es sich um Einzelfälle oder<br />

um ein breiteres Phänomen<br />

handelt.<br />

Gibt es keine Auffälligkeiten,<br />

erhalten weitere zehn Prozent<br />

der Nutzer das Update. Stufenweise<br />

wird so die Zahl bis<br />

auf hundert Prozent erhöht.<br />

Wer an den Phased Updates<br />

nicht teilnehmen möchte,<br />

ändert das über die Konfigurationsdatei<br />

»/​etc/​apt/​apt.<br />

conf«. Der Eintrag »Update-<br />

Manager::Never-Include-<br />

Phased-Updates "True";«<br />

schließt den Rechner von den<br />

Phased Updates aus. n


Aktuell<br />

www.linux-magazin.de News 10/2013<br />

10<br />

Kurznachrichten<br />

Gnuaccounting 0.8.3: Eine freie Buchhaltungssoftware. Neu: Die neue<br />

Release kann Bezahlcode-Barcodes schreiben und lesen, die Details <strong>für</strong><br />

eine Banküberweisung enthalten. Mit geeigneter Software, beispielsweise<br />

einer Handy-App, überweist der Rechnungsempfänger dann einfach und<br />

fehlerfrei. Außerdem importiert Gnuaccounting Bestellungen aus einem<br />

Magento-Onlineshop, um daraus die passenden Rechnungen zu erstellen.<br />

Lizenz: GPLv2 [http://​www.​gnuaccounting.​de]<br />

Wine 1.7.0: Software, mit der sich unter <strong>Linux</strong> auch Windows-Programme<br />

ausführen lassen Neu: Neben zahlreichen Bugfixes unterstützt Wines<br />

Postscript-Treiber nun vertikalen Text. Die Bibliothek Liblcms, die sich um<br />

Farbmanagement kümmert, wurde auf die neuere Version 2 gehoben. Die<br />

Unicode-Daten haben die Entwickler auf Unicode 6.2.0 aktualisiert. Neben<br />

den Anwendungen Photoshop CS 2, MS Excel 2010, Sunbird, Irfanview,<br />

Symantec Antivirus 10.x und Codegear RAD Studio 2007/​2009 laufen auch<br />

einige Spiele besser, darunter NFS Shift, Max Payne 2, Civilization V oder<br />

Homeworld 1. Lizenz: LGPL [http://​www.​winehq.​org]<br />

Sabayon 13.08: Gentoo-basierte Live-Distribution mit Fokus auf Multimedia.<br />

Neu: Das Update vervollständigt die Umstellung auf das Initsystem<br />

Systemd, daneben besteht die Unterstützung <strong>für</strong> Open RC fort. Die 64-Bit-<br />

Images von Sabayon booten auf neueren Rechnern mit UEFI Secure Boot<br />

und bringen eine UEFI Shell mit. Das System verwendet weiterhin Kernel<br />

3.10.4 mit dem I/​O-Scheduler BFQ und einer Unterstützung <strong>für</strong> externes<br />

ZFS. Lizenz: GPL [http://​www.​sabayon.​org]<br />

Tails 0.20: Eine <strong>Linux</strong>-Distribution <strong>für</strong> die anonymisierte Internetbenutzung<br />

und den Schutz der Privatsphäre. Neu: Die Release behebt zahlreiche<br />

Sicherheitslücken in Torbrowser und dem verwendeten Browser Iceweasel,<br />

ein Update ist deshalb dringend empfohlen. Sie bringt den <strong>Linux</strong>-Kernel<br />

3.10.3-1 aus Debian Unstable mit und behebt Bugs, etwa beim Git-Zugriff<br />

auf HTTPS-Repositories oder beim Verlassen von SSL-verschlüsselten<br />

Websites mit Iceweasel. Neu ist Dasher, eine Eingabehilfe, während das<br />

veraltete Truecrypt demnächst aus dem Programm fliegt und Pidgin nur<br />

noch über IRC und XMPP kommunizieren darf. Lizenz: GPL und andere<br />

[https://​tails.​boum.​org]<br />

Pypy 2.1: Python-Compiler und C-Python-Alternative <strong>für</strong> Python 2.7.1.<br />

Neu: Pypy unterstützt nun die 32-Bit ARM-Architektur und auf jedweder<br />

Hardware mit ARMv6- und ARMv7-Architektur (sowohl auf Hard-Float- als<br />

auch Soft-Float-Builds), so lange diese Version 3 von ARMs Floating Point<br />

Architecture (VFPv3) aufweist und ein JIT-Backend mitbringt. Für die Portierung<br />

auf die 64-Bit ARM-Architektur sucht das Projekt noch Helfer. Auf<br />

Unix-Systemen kennt Pypy die Methoden »os.statvfs« und »os.fstatvfs«.<br />

Die Logging-Performance wurde optimiert, Objekte werden schneller<br />

gesetzt und es gibt Verbesserungen am Interpreter. Lizenz: MIT License<br />

[http://​pypy.​org]<br />

Libvirt 1.1.1: Libvirt nutzt die Virtualisierungsfähigkeiten des Kernels und<br />

unterstützt KVM, Xen, LXC, Open VZ oder Virtualbox. Neu: Zu den Innovationen<br />

gehören Events, die beim Löschen oder Entfernen von Geräten<br />

eintreten. Für Xen 4.3 wurden Interface-Versionen ergänzt, außerdem<br />

kennt die Libvirt nun den Public-API-Aufruf »virDomainSetMemoryStats-<br />

Period()«. Eine Änderung an den <strong>Linux</strong> Containers betrifft die Möglichkeit,<br />

offene Dateihandles (»stdin, stdout, stderr«) an den Initprozess des Containers<br />

zu übergeben. So lassen sich Container durch eingehende Socket-<br />

Verbindungen aktivieren. Die APIs »virDomainCreateXMLWithFiles« und<br />

»virDomainCreateWithFiles« akzeptieren eine Reihe solcher Handles.<br />

Lizenz: GPL [http://​libvirt.​org]<br />

Call for Papers <strong>für</strong> die Fosdem 2014<br />

Finanzspritze <strong>für</strong> Flynn<br />

Am 1. und 2. Februar 2014<br />

wird, mittlerweile zum 14.<br />

Mal, die Konferenz Fosdem<br />

stattfinden, wie immer in<br />

Brüssel, wie immer an der<br />

Libre Université, am ULB<br />

Campus Solbosch. Bis September<br />

haben die „Geeks<br />

from all over the world“ nun<br />

Zeit, ihre Ideen einzureichen.<br />

Im Call for Participation sucht<br />

das Fosdem-Team Einreichungen,<br />

welche die „gewöhnlich<br />

hochgradig entwicklernahen<br />

Besucher aus der ganzen<br />

Welt“ <strong>für</strong> spannend und innovativ<br />

halten.<br />

Es gehe um die Main Tracks<br />

(die eigentlichen Vorträge)<br />

und um die Developer<br />

Rooms. Erstere befassen sich<br />

tendenziell mit größeren Themenkomplexen<br />

wie Security,<br />

Entwicklung oder auch der<br />

Community, während letztere<br />

mehr oder weniger selbstorganisiert<br />

ablaufen und<br />

der Community Gelegenheit<br />

geben, Themen nach ihren<br />

eigenen Vorstellungen zu diskutieren.<br />

Für die Vorschläge rund um<br />

die Main Tracks nutzt das<br />

Fosdem-Team die Software<br />

Pentabarf. Developer-Room-<br />

Vorschläge mögen Bewerber<br />

bis zum 15. September an die<br />

E-Mail-Adresse [devrooms@fosdem.​org]<br />

schicken. In beiden<br />

Fällen sollen die Einreichungen<br />

so detailliert wie möglich<br />

sein, <strong>für</strong> die Dev-Rooms sind<br />

Tagesordnungen mit einem<br />

groben Plan <strong>für</strong> den Ablauf<br />

erwünscht. Am 1. Oktober<br />

will das Team den daraus abgeleiteten<br />

Plan bekannt geben,<br />

zugleich endet die Frist<br />

<strong>für</strong> Vorschläge rund um die<br />

Main Tracks. <br />

n<br />

Flynn, eine PaaS-Lösung auf<br />

Docker-Basis, die sich an<br />

Heroku orientiert, existiert<br />

bisher nur als Readme-Datei.<br />

Dennoch haben die Entwickler<br />

per Crowdfunding 75 000<br />

US-Dollar <strong>für</strong> die Entwicklung<br />

eingesammelt: „Die Crowdfunding-Kampagne<br />

haben wir<br />

in letzter Minute ergänzt und<br />

dachten, wir würden ein paar<br />

hundert Dollar <strong>für</strong> die Flugkosten<br />

des Teams erhalten.“<br />

Tatsächlich wurden über die<br />

eigene Plattform [https://​flynn.​<br />

​io] in zwei Wochen 75 000 US-<br />

Dollar eingesammelt, was fast<br />

dem kompletten Projektbudget<br />

entspräche.<br />

Man hätte Flynn auch ohne<br />

den finanziellen Support entwickelt,<br />

das Geld erlaube es<br />

dem Coreteam aber, mehr Zeit<br />

mit der Arbeit an neuen Features<br />

zu verbringen.<br />

Die Spendenaktion läuft jedoch<br />

weiter: Kommt noch<br />

mehr Geld zusammen, könne<br />

man weitere Features ergänzen,<br />

etwa Autoscaling, ACLs<br />

und Log Aggregation. Zum<br />

bisher geplanten Funktionsumfang<br />

gehört das Verwalten<br />

von Diensten in einem Cluster.<br />

Ein HTTP-REST-ähnliches API<br />

soll <strong>einen</strong> einfachen Umgang<br />

mit Containern und Diensten<br />

erlauben.<br />

Die Dienste sollen sprachunabhängig<br />

als Unix-Prozesse in<br />

Containern laufen und zwar<br />

in verschiedenen Infrastrukturen<br />

(AWS/​Public Cloud, Private<br />

Cloud, Bare Metal). Zu<br />

den geplanten Minimalfeatures<br />

gehören zudem ein<br />

Scheduler, Build-Packs <strong>für</strong> ein<br />

Git-Push-Verfahren, ein Kommandozeilen-Client<br />

und ein<br />

HTTP-Router.<br />

n


Libre Office 4.1 verbessert Interoperabilität<br />

Die Document Foundation<br />

hat ihre freie Bürosuite Libre<br />

Office in Version 4.1 veröffentlicht<br />

und verbessert die<br />

Interoperabilität sowie einige<br />

Details. Um das Layout beim<br />

Austausch mit anderen Anwendungen<br />

und insbesondere<br />

Microsoft Office zu erhalten,<br />

haben die Entwickler die Import-<br />

und Export-Filter optimiert.<br />

Beispielsweise werden<br />

nun grafische Aufzählungsund<br />

Nummerierungszeichen<br />

aus Word-Dateien importiert.<br />

Daneben lassen sich Schriften<br />

in Writer-, Calc-, Impress- und<br />

Draw-Dokumente einbetten,<br />

damit diese auf allen Systemen<br />

gleich aussehen.<br />

Zu den kleineren Neuerungen<br />

gehören die Möglichkeit, eingebettete<br />

Bildern in Writer in<br />

90-Grad-Schritten zu drehen,<br />

der Vektorgrafik-Export aus<br />

Calc sowie ein Limit <strong>für</strong> Datenbankabfragen<br />

in Base. Von<br />

den Kollegen des Apache-Projekts<br />

Open Office haben die<br />

Entwickler die Symphony-<br />

Sidebar übernommen, diese<br />

stecke aber noch im experimentellen<br />

Stadium.<br />

Libre Office 4.1, das unter<br />

der LGPLv3 steht, lässt sich<br />

unter [http://​de.​libreoffice.​org/​<br />

​download/] samt Sprachdateien<br />

und Offline-Hilfe <strong>für</strong> <strong>Linux</strong>,<br />

Windows und OS X herunterladen.<br />

(kki,mfe,mhu) n<br />

Neues Detail in Libre Office 4.1: Eingebettete Bilder lassen sich in Writer in<br />

90-Grad-Schritten drehen.<br />

News 10/2013<br />

Aktuell<br />

www.linux-magazin.de<br />

11<br />

Anzeige


Aktuell<br />

www.linux-magazin.de Zahlen & Trends 10/2013<br />

12<br />

Zahlen & Trends<br />

Parallella: Verteilt rechnen <strong>für</strong> rund 100 US-Dollar<br />

Die Hardware-Revolution, die<br />

preiswerte Boards wie Arduino<br />

oder Raspberry Pi ausgelöst<br />

haben, erreicht die Welt des<br />

Parallel Computing: Parallella<br />

[http://​parallella.​org], ein offenes<br />

Parallelsystem, soll demnächst<br />

zum Preis von rund<br />

100 US-Dollar erhältlich sein.<br />

Das Halbleiter-Startup Adapteva<br />

kündigte an, dass es das<br />

Parallella University Program<br />

(PUP) sponsern möchte, das<br />

Hardware und weitere Unterstützung<br />

<strong>für</strong> Unis und andere<br />

Einrichtungen bereitstellt.<br />

Das Parallella-Board wird den<br />

Multicore-Prozessor Epiphany<br />

von Adapteva verwenden sowie<br />

ein System-on-Chip der<br />

Zync-7000-Serie von Xilinx,<br />

das <strong>einen</strong> ARM-9-Prozessor<br />

mit zwei Kernen enthält. Laut<br />

Hersteller soll das System im<br />

Das Startup Adapteva möchte Boards <strong>für</strong> Parallel Computing im Niedrigpreis-<br />

Segment vertreiben.<br />

Normalbetrieb nicht mehr als<br />

5 Watt verbrauchen.<br />

Adapteva hat das Projekt mit<br />

Hilfe einer Crowdfunding-<br />

Kampagne auf Kickstarter.<br />

com angeschoben. Adapteva-<br />

CEO Andreas Olofsson: „Wir<br />

haben Parallella geschaffen,<br />

um der Welt die erste offene<br />

und erschwingliche Plattform<br />

<strong>für</strong> die Entwicklung massiv<br />

paralleler Programme zu bieten.<br />

Mit dem Parallella University<br />

Program möchten wir<br />

den Übergang zum Parallel<br />

Computing beschleunigen.“n<br />

Konferenz zu freien Bildungsmaterialien<br />

Mailpile soll E-Mail sicher machen<br />

In Zeiten immer knapper<br />

werdender Schulbudgets, in<br />

denen sich Schüler nicht selten<br />

Bücher teilen, scheint die<br />

Nachfrage nach frei zugänglichem<br />

Material deutlich zu<br />

steigen. Dem trägt eine von<br />

Wikimedia Deutschland organisierte<br />

Konferenz Rechnung,<br />

die am 14. und 15. September<br />

2013 in Berlin stattfinden soll<br />

und sich mit dem Thema Open<br />

Educational Resources (OER)<br />

oder freien Bildungsmaterialien<br />

beschäftigt. Bereits <strong>einen</strong><br />

Monat vor Beginn der Konferenz<br />

waren keine Anmeldungen<br />

mehr möglich, offenbar<br />

ist das Interesse enorm. Lediglich<br />

<strong>für</strong> Lehrer gibt es noch<br />

einige freie Plätze.<br />

Die Konferenz plant eine Bestandsaufnahme<br />

freier Bildungsmaterialien<br />

in Deutschland<br />

und weltweit, die Teilnehmer<br />

sollen Erfahrungen<br />

austauschen und sich vernetzen.<br />

Zu den Themen gehören<br />

das Urheberrecht, die Qualität<br />

der Materialien und die verfügbaren<br />

Plattformen. Angesprochen<br />

fühlen sollen sich<br />

Akteure aus Schulen, Hochschulen<br />

und der Bildungsarbeit,<br />

Medienvertreter, Wissenschaftler<br />

und Entscheider in<br />

Behörden, Parteien, Stiftungen<br />

sowie Verlage.<br />

Die Konferenz steht unter<br />

Schirmherrschaft der Unesco,<br />

beteiligt sind unter anderem<br />

die Medienanstalt Berlin-<br />

Brandenburg, Creative Commons<br />

Deutschland sowie die<br />

Werkstatt der Bundeszentrale<br />

<strong>für</strong> politische Bildung. n<br />

Das isländische Projekt Mailpile<br />

[http://​mailpile.​is] wurde<br />

Anfang August auf dem Hackerfestival<br />

OHM gestartet.<br />

Es sammelt zurzeit über die<br />

Crowdfunding-Plattform Indiegogo<br />

Geld ein, um <strong>einen</strong><br />

sicheren und quelloffenen<br />

E-Mail-Client zu entwickeln.<br />

Version 1.0 soll im Sommer<br />

2014 ersch<strong>einen</strong>, eine erste<br />

Alpha bereits im Januar.<br />

Das Besondere an Mailpile:<br />

Die Entwickler wollen starke<br />

Verschlüsselung von Beginn<br />

an integrieren und diese <strong>für</strong><br />

Otto Normalverbraucher<br />

nutzbar machen. Freie E-<br />

Mail-Clients wie Thunderbird<br />

benötigen dazu die Enigmail-<br />

Erweiterung, die einige Kenntnisse<br />

in Sachen Verschlüsselung<br />

voraussetzt.<br />

Um die ehrgeizigen Pläne<br />

umzusetzen, wollen die Macher<br />

auf Indiegogo bis Mitte<br />

September 100 000 US-Dollar<br />

einsammeln. Anders als beim<br />

Ubuntu Edge fließt das gespendete<br />

Geld auf jeden Fall<br />

an das Projekt, auch wenn es<br />

das selbst gesteckte Ziel nicht<br />

erreichen sollte. Aktuell sind<br />

bereits 90 Prozent der Zielsumme<br />

eingesammelt.<br />

Ab einer Spendenhöhe von<br />

23 US-Dollar dürfen die Unterstützer<br />

mit abstimmen,<br />

welche Features als nächste<br />

in den Client fließen, falls die<br />

Entwickler unsicher sind.<br />

Mailpile soll plattformübergreifend<br />

funktionieren. Entwickelt<br />

wird auf <strong>Linux</strong> und OS<br />

X, programmiert in Python,<br />

Javascript, HTML und CSS.n


Solarbetrieben: Ein Outdoor-Laptop mit Ubuntu<br />

Stromversorgung mit Solarzellen<br />

und laut Hersteller „gegen<br />

alles gewappnet, was die<br />

Natur zu bieten hat“, das ist<br />

der Sol-Laptop [http://​solaptop.​<br />

​com] der Firma Wewi. Sie will<br />

ab Ende Dezember <strong>einen</strong> modernen<br />

Atom-Laptop über die<br />

Webseite <strong>für</strong> wenig Geld und<br />

mit <strong>Linux</strong>-OS verkaufen.<br />

Die CPU ist ein Intel-Atom-<br />

D2500-Dualcore mit 1,86 GHz,<br />

dazu eine Seagate-2,5-Zoll-<br />

SATA-HDD mit 320 GByte, 2<br />

oder 4 GByte RAM, Intel-HD-<br />

Grafik mit einem 13.3-Zoll-<br />

Display (WXGA, 1366 mal<br />

768) sowie 8 bis 10 Stunden<br />

Akkulaufzeit. Der Clou: Das<br />

Gerät verfügt über ein Gehäuse,<br />

das der Hersteller als<br />

stoßfest (<strong>für</strong> 350 Dollar) und<br />

wasserdicht (<strong>für</strong> 400 Dollar)<br />

bezeichnet.<br />

Doch was an dem Gerät als<br />

Erstes auffällt, sind die ausklappbaren<br />

Solarpanele, mit<br />

denen der Besitzer das Notebook<br />

im Café oder in der<br />

Wildnis laden kann. „Der<br />

erste Laptop, den der Besitzer<br />

wirklich niemals einstecken<br />

muss“, wirbt der Hersteller<br />

mutig. Als Betriebssystem<br />

dient Ubuntu, das Wewi ebenfalls<br />

als „nachhaltig und zukunftsorientiert“<br />

anpreist. n<br />

Solarpanele ausgeklappt: Der Solar-Laptop von Wewi kostet nur 350 Dollar.<br />

IPfire plus Tor<br />

Als Reaktion auf die flächendeckende<br />

Internetüberwachung<br />

hat die Firewall-Distribution<br />

IPfire 1852 Euro Spenden<br />

gesammelt, um das Anonymisierungsnetzwerk<br />

Tor<br />

einzubinden. Die Idee der<br />

Online-Spendenaktion sei aufgekommen,<br />

weil die Entwickler<br />

viele Anfragen nach dem<br />

Feature erhielten.<br />

Dank eines integrierten Tor-<br />

Proxys soll sich ein lokales<br />

Netzwerk an das Tor-Netzwerk<br />

anschließen lassen.<br />

Daneben möchten die IPfire-<br />

Entwickler ihren Anwendern<br />

die Konfiguration möglichst<br />

einfach machen, über das<br />

Socks-Protokoll sollen sie den<br />

Proxy nutzen können. n<br />

Zahlen & Trends 10/2013<br />

Aktuell<br />

www.linux-magazin.de<br />

13<br />

Anzeige<br />

FSF: Spenden <strong>für</strong> ein freies Smartphone<br />

Die Free Software Foundation<br />

(FSF) sammelt Geld, um<br />

ein komplett freies Android-<br />

System namens Replicant auf<br />

die Beine zu stellen. Denn<br />

viele Android-Mobilgeräte<br />

laufen mit proprietärer Software,<br />

wenn auch unter der<br />

Haube: Diverse Hardwaretreiber<br />

und Bibliotheken, die<br />

es dem Betriebssystem erlauben,<br />

mit einem der Geräte zu<br />

kommunizieren, gibt es nur in<br />

proprietärer Form.<br />

Diese Firmware lässt sich<br />

nicht ohne Weiteres tauschen<br />

und einsetzen. Zudem ersch<strong>einen</strong><br />

die Geräte ab Werk<br />

mit Closed-Source-Programmen.<br />

Das würde die Free<br />

Software Foundation [https://​<br />

​www.​fsf.​org] gern ändern, aber<br />

es kostet Geld: Erst durch die<br />

Spende eines Samsung Galaxy<br />

Tab 2 konnte Replicant dieses<br />

Gerät unterstützen.<br />

<strong>Alle</strong>in die Hardware kostet pro<br />

Gerät zwischen 400 und 600<br />

US-Dollar, schreibt die FSF.<br />

Aktuell unterstützt Replicant,<br />

das auf Cynogen Mod fußt,<br />

bereits zehn Mobilgeräte, darunter<br />

Tablets und Smartphones<br />

der Galaxy- und Nexus-<br />

Reihe. Ganz ohne proprietäre<br />

Treiber kommen aber auch<br />

diese Geräte noch nicht aus,<br />

wie ein Blick auf die Statusseite<br />

zeigt. Da<strong>für</strong> gibt es mit<br />

F-Droid [https://​f‐droid.​org] ein<br />

Android-Repository, das freie<br />

Software enthält.<br />

Die Stiftung hat nun eine<br />

Spendenseite eingerichtet, um<br />

Geld <strong>für</strong> die „Befreiung“ weiterer<br />

Systeme einzusammeln.<br />

Gespendet werden darf dort<br />

via Bitcoin, aber auch per Kreditkarte<br />

oder auf Rechnung.<br />

Zudem sucht das Projekt nach<br />

interessierten Entwicklern, die<br />

bei der Aktion helfen. n


Aktuell<br />

www.linux-magazin.de Zahlen & Trends 10/2013<br />

14<br />

DNS ohne NSA und USA<br />

Das Projekt Open Root Server<br />

Networks [http://​orsn.​org]<br />

will ein Netzwerk aus DNS-<br />

Servern ohne ICANN-Kontrolle<br />

aufbauen. Jeder Aufruf<br />

einer Webseite und fast jeder<br />

Verbindungsaufbau löst eine<br />

DNS-Abfrage aus, die häufig<br />

abhör- und auswertbaren<br />

Traffic erzeugt. Dieser wird<br />

im ungünstigen Fall – beispielsweise<br />

bei einigen DNS-<br />

Servern von Google – über die<br />

USA geroutet.<br />

Weil die Zentrale des DNS-<br />

Netzwerks, die Icann, in den<br />

USA sitzt und dem US-Handelsministerium<br />

unterstellt<br />

ist, sei hier der Zensur und<br />

der Kontrolle Tür und Tor<br />

geöffnet, schreiben die Initiatoren<br />

des Open Root Server<br />

Networks.<br />

Das Projekt, eine private<br />

Non-Profit-Initiative, will eine<br />

zweite DNS-Root-Server-Infrastruktur<br />

aufbauen, parallel<br />

zur Domäne der Icann, gehostet<br />

in europäischen Demokratien,<br />

mit einer dezentralen,<br />

zensurunabhängigen Struktur.<br />

ORSN setzt auf Transparenz,<br />

auf Freiwillige und auf jeden,<br />

der Hardware und Zeit investiert.<br />

Die Initiatoren wollen<br />

„zu 100 Prozent kompatibel<br />

zur Icann bleiben und keine<br />

Topleveldomain mehr oder<br />

weniger in die eigenen Datenbanken<br />

einziehen lassen“.<br />

Das ORSN-Projekt existiert<br />

seit 2002, war aber nach 2008<br />

Quelle: http://orsn.org/de/press/<br />

Nameserver-Abhängigkeiten mit und ohne ORSN.<br />

mangels Nachfrage eingeschlafen.<br />

Jetzt haben die Initiatoren<br />

angesichts des Bedarfs<br />

und der Sensibilisierung durch<br />

Prism & Co. die Initiative ins<br />

Leben zurückgerufen. n<br />

Valve will Blender in Steam-Plattform integrieren<br />

Über die Mailingliste des Blender-Projekts<br />

sucht Jan-Peter<br />

Ewert von Valve derzeit nach<br />

Personen, die sich <strong>für</strong> eine<br />

Integration von Blender in<br />

Steam interessieren. Valve sei<br />

eine Firma, die sich auf das<br />

Modden konzentriere, Blender<br />

wäre perfekt, um etwa virtuelle<br />

Gegenstände <strong>für</strong> diese<br />

Spiele zu entwerfen.<br />

Ton Roosendaal, Chairman<br />

der Blender Foundation, unterstützt<br />

den Vorschlag nicht<br />

zuletzt, weil Valve die Blender<br />

Foundation finanziell fördert.<br />

Er sieht einige Synergie-Effekte<br />

zwischen der 3-D-Community<br />

um Blender und der<br />

Modder-Szene von Valve. Eine<br />

Integration von Blender in die<br />

Steam-Plattform würde auch<br />

Blender weiterbringen, doch<br />

müsse man erst lizenzrechtliche<br />

Fragen klären, Blender<br />

steht unter der GPLv2.<br />

Erste konstruktive Ideen gibt<br />

es jedoch bereits: So schlugen<br />

Leute auf der Liste vor, zunächst<br />

existierende Blender-<br />

Erweiterungen wie das SMD/​<br />

DMX-Plugin einzubinden. n<br />

Open-Source-Tools sparen in den Niederlanden 4,5 Millionen<br />

Quelle: http://prezi.com<br />

Grafik aus dem Vortrag auf der Inspire-Konferenz.<br />

Indem sie eine Lösung miteinander<br />

geteilt und Open-<br />

Source-Software <strong>für</strong> ihre geogra<br />

fischen Informationssysteme<br />

(GIS) genutzt haben,<br />

hätten zwölf niederländischen<br />

Provinzen seit 2009 4,5 Millionen<br />

Euro eingespart. Das<br />

schreibt das Open Source Observatory<br />

(OSOR) und beruft<br />

sich auf Koen Rutten, <strong>einen</strong><br />

der GIS-Administratoren, der<br />

auf der Inspire-Konferenz 2013<br />

<strong>einen</strong> Vortrag dazu hielt. Das<br />

Wiederverwenden der Software<br />

spare ebenso Geld wie<br />

das Teilen der Entwicklungsund<br />

Pflegekosten.<br />

Neben einer Open-Source-<br />

Software namens Flamingo,<br />

die den Datenaustausch ermöglicht,<br />

wollen die Provinz-<br />

Admins bald ein Tool namens<br />

CDS (Central Data and Service<br />

Environment) veröffentlichen.<br />

Es soll geografische Informationen<br />

aus den Provinzen importieren,<br />

validieren und als<br />

nationale Datensammlung<br />

öffentlich verfügbar machen.<br />

Durch die Veröffentlichung<br />

hoffe man, weitere öffentliche<br />

Verwaltungen <strong>für</strong> die Software<br />

zu interessieren. Zudem sollen<br />

Stiftungen die beiden Softwareprojekte<br />

begleiten. n


Mozilla arbeitet an Testtools <strong>für</strong> Security<br />

Die Firefox-Macher möchten<br />

die Sicherheit ihrer Internetsoftware<br />

weiter verbessern<br />

und setzen dabei auf eine<br />

Partnerschaft mit Blackberry,<br />

ein Fuzzing-Tool und eine Automatisierungsplattform<br />

<strong>für</strong><br />

Sicherheitstests.<br />

Bei der Zusammenarbeit mit<br />

Blackberry (vormals Research<br />

In Motion) geht es um die<br />

Entwicklung eines Tools, das<br />

eine Fuzzing genannte Technik<br />

einsetzt, die versucht Fehler<br />

und Sicherheitsschwächen<br />

durch Ausprobieren vielfältiger<br />

Eingaben zu entdecken.<br />

Diesem Zweck dient auch das<br />

Fuzzing-Framework Peach v2,<br />

das als Open-Source-Software<br />

unter MIT-Lizenz entwickelt<br />

wird und das nun Mozilla<br />

und Blackberry optimieren<br />

sollen. Die Software kann unterschiedliche<br />

Modelle, Strategien,<br />

Mutationen und Schnittstellen<br />

nutzen.<br />

Daneben arbeiten die Mozilla-<br />

Entwickler an einer Security<br />

Automation Platform namens<br />

Minion. Sie soll es Testern und<br />

Entwicklern erleichtern, Security-Scans<br />

zu automatisieren.<br />

Die Plattform bindet externe<br />

Tools ein und lässt sich so in<br />

ihrer Funktionalität erweitern.<br />

Die Web-basierte Anwendung<br />

steht unter Mozilla Public License<br />

und ist noch in Entwicklung.<br />

Für Interessierte gibt es<br />

bereits ein Virtualbox-Image<br />

zum Ausprobieren. n<br />

Open Xchange erhält Millionen-Spritze<br />

Open Xchange, das in letzter<br />

Zeit durch seine Online-Office-<br />

Suite von sich reden machte,<br />

erhält eine Finanzspritze von<br />

15 Millionen Euro. Die Investition<br />

kommt unter anderem<br />

von United Internet Ventures,<br />

dessen CEO, Oliver Mauss,<br />

der Firma eine rosige Zukunft<br />

voraussagt: „Für uns ist es ein<br />

extrem aufregendes Investment.<br />

Als langjähriger Kunde<br />

von Open Xchange konnten<br />

wir beobachten, wie sich die<br />

Firma von einem kl<strong>einen</strong> Anbieter<br />

zu einem bedeutenden<br />

Player im Cloudmarkt entwickelt<br />

hat.“<br />

Das Geld soll das Wachstum<br />

der Firma ermöglichen und<br />

direkt in Software-Entwicklung,<br />

professionelle Dienste<br />

und die internationale Business-Entwicklung,<br />

aber auch<br />

in Marketing und Verkauf fließen.<br />

Der Umsatz und die Zahl<br />

der User von Open Xchange<br />

ist in den letzten drei Jahren<br />

jeweils um 50 Prozent gewachsen<br />

und führte zu mittlerweile<br />

mehr als 80 Millionen<br />

verkauften Seats.<br />

Oliver Mauss und der zweite<br />

Neuinvestor Hermann-Josef<br />

Lamberti, der frühere Chief<br />

Operating Officer der Deutschen<br />

Bank und im Aufsichtsrat<br />

bei EADS und der Ing Bank,<br />

sollen zudem den Aufsichtsrat<br />

erweitern. „Der Zusatz an<br />

Expertise im Aufsichtsrat ist<br />

lebenswichtig, wenn wir unsere<br />

Produktpalette in Zeiten<br />

großer Umbrüche im Cloud<br />

Computing erweitern wollen“,<br />

bestätigt Rafael Laguna, CEO<br />

von Open Xchange. Dritter in<br />

der Investitionsrunde ist der<br />

Altinvestor E-Capital, dessen<br />

CEO, Paul-Josef Patt, die Verhandlungen<br />

mit den neuen<br />

Investoren führte. n


Aktuell<br />

www.linux-magazin.de Zahlen & Trends 10/2013<br />

16<br />

Red Hat und Intel eröffnen Cloud Innovation Lab<br />

Die Hardware kommt von<br />

Intel, die Infrastruktur-Software,<br />

der Serverraum und der<br />

Glaube an <strong>einen</strong> stark expandierenden<br />

Markt von Red Hat:<br />

Das Cloud Innovation Lab von Red Hat<br />

und Intel wurde in München eröffnet.<br />

In Gegenwart der Geschäftsführer<br />

beider Firmen nahm<br />

am 18. Juli 2013 das Cloud<br />

Innovation Lab offiziell s<strong>einen</strong><br />

Betrieb auf.<br />

Im Münchner Gebäude der<br />

<strong>Linux</strong>-Firma und im optimistisch<br />

gestimmten Beisein<br />

von Christian Lamprechter,<br />

Geschäftsführer der Intel<br />

GmbH, gab Red Hats Werner<br />

Knoblich, Vice President<br />

und General Manager EMEA,<br />

den Startschuss zur Nutzung<br />

des neuen Lab. Die dort aufgestellten<br />

Server sollen nach<br />

Aussage beider Firmen <strong>für</strong><br />

Red-Hat-Kunden aufwändigere<br />

Anwendungssetups<br />

nachstellen – wo<strong>für</strong> es laut<br />

Knoblich in seiner Firma sehr<br />

großen Bedarf gäbe. Als Basis<br />

wird wohl vorwiegend die<br />

ebenfalls vorgeführte „Red<br />

Hat Enterprise <strong>Linux</strong> Open<br />

Stack Platform“ dienen.<br />

Partner Intel, der Red Hat als<br />

wichtigen Spieler sieht, um<br />

die eigene Vision einer offenen<br />

Cloud zu realisieren, hat<br />

die Hardware beigetragen – im<br />

Kern zwei starke Node- und<br />

sechs Standardserver sowie<br />

diverse Storagekomponenten<br />

– und stellt bei Bedarf Personal<br />

bereit. Obwohl die drei<br />

19-Zoll-Racks optisch unspektakulär<br />

wirken, bilden sie <strong>für</strong><br />

Red Hat das modernste Lab<br />

in Europa, weshalb dort nicht<br />

primär normale Produktdemonstrationen<br />

laufen sollen.<br />

Andreas Stolzenberger zum<br />

Beispiel, Red Hat Solution Architect<br />

in München, will dort<br />

hybride Clouds aufsetzen,<br />

die auch Virtualisierungsprodukte<br />

anderer Anbieter<br />

wie VMware, Microsoft oder<br />

Amazon enthalten.<br />

Die Open-Source-Firma meint,<br />

Kunden auf lange Sicht über<br />

den Preis zum Umstieg auf<br />

eigene Produkte und Dienstleistungen<br />

bewegen zu können,<br />

bei vergleichbarer oder<br />

gar besserer Funktionalität –<br />

um die zu belegen, scheint<br />

das Cloud Innovation Lab der<br />

richtige Ort. n<br />

Open-Source-Diktiersoftware in Arbeit<br />

Desktop-Fusion<br />

Peter Grasch, Software-Entwickler<br />

und Informatikstudent<br />

aus Graz, hat den<br />

Proto typ einer Open-Source-<br />

Diktiersoftware vorgestellt.<br />

Grasch beschäftigt sich in<br />

seiner sprachgesteuerten<br />

Desktop-Anwendung Simon<br />

[http://​grasch.​net/​projects] bereits<br />

länger mit Spracherkennung.<br />

Nun hat er die Software<br />

um ein Diktiersystem erweitert.<br />

In einer Video-Demo<br />

diktiert er <strong>einen</strong> englischen<br />

Text und korrigiert, ebenfalls<br />

per Spracheingabe, ein falsch<br />

erkanntes Wort.<br />

Der Prototyp zeigt, was ein<br />

Diktiersystem mit ausschließlich<br />

freien Komponenten leisten<br />

kann. Er verwendet die<br />

freie Erkennungsbibliothek<br />

Pocketsphinx der Carnegie<br />

Mellon University. Die Akustikmodelle<br />

und das Wörterbuch,<br />

die neben der r<strong>einen</strong><br />

Software erforderlich sind, hat<br />

Peter Grasch mit Sphinx-Tools<br />

erstellt, das Sprachmodell mit<br />

SRILM und MITLM. „Wie so<br />

oft in der Welt der freien Software<br />

gilt: Ich stehe auf den<br />

Schultern von Giganten“, erklärt<br />

der Entwickler.<br />

Die Entscheidung, um welche<br />

Funktionen er Simon erweitern<br />

soll, hat er die Leser seines<br />

Blogs fällen lassen. Deren<br />

Wahl fiel aufs Diktieren. Bisherige<br />

Projekte <strong>für</strong> Open-<br />

Source-Diktiersysteme seien<br />

allerdings eingeschlafen, etwa<br />

das vielversprechende Eval-<br />

Dictator-Projekt, so erzählt<br />

Grasch. Die Software Palaver<br />

sei hingegen lediglich ein<br />

Frontend <strong>für</strong> Googles proprietäre<br />

Dienste.<br />

Der Entwickler sucht aktuell<br />

noch Mitstreiter, um zusammen<br />

ein konkurrenzfähiges,<br />

freies Diktationssystem zu<br />

entwickeln. Mit einer ersten<br />

Version, die sich <strong>für</strong> Endbenutzer<br />

eignet, rechnet Peter<br />

Grasch „vorsichtig optimistisch“<br />

frühestens 2014. n<br />

Mit Peter Graschs Prototyp kann man bereits englische Texte diktieren.<br />

Auf der Akademy 2013 haben<br />

die Projekte Razor und<br />

LXDE Qt beschlossen zu fusionieren.<br />

Auf Razor-Seite ist<br />

die Motivation recht klar: Es<br />

fehle an Manpower, erklärt<br />

Entwickler Jerome Leclanche<br />

auf der Mailingliste. Mehrere<br />

Entwickler hätten aus persönlichen<br />

Gründen aufgegeben,<br />

was den Fortschritt im Projekt<br />

verlangsamt habe.<br />

Das LXDE-Qt-Projekt verfolge<br />

sehr ähnliche Ziele wie Razor,<br />

die Idee einer Fusion der beiden<br />

Projekte sei daher naheliegend.<br />

Nun will man Nägel<br />

mit Köpfen machen und die<br />

besten Teile von LXDE-Qt und<br />

Razor zusammenlegen.<br />

Schon in der 0.1-Release von<br />

LXDE-Qt sollen Teile von Razor<br />

stecken, dessen Version<br />

0.6.0 wohl die letzte wird. Den<br />

Razor-Qt-Zweig werde man<br />

nicht weiter betreuen. (Joe<br />

Casad/jkl/kki/mfe/mhu) n


Aktuell<br />

www.linux-magazin.de Kernel-News 10/2013<br />

18<br />

Zacks Kernel-News<br />

Empfänger <strong>für</strong> Kernelpatches unklar<br />

Greg Kroah-Hartman hat ein<br />

Problem der Kernelentwicklung<br />

ans Licht gebracht, als<br />

er im Juli seine Arbeitslast<br />

beklagte. Er schrieb, er habe<br />

mehr als 170 Patches <strong>für</strong> den<br />

stabilen Kernel auf Halde, die<br />

er nicht einpflegen könne,<br />

weil sie noch nicht im Kernelzweig<br />

von Linus Torvalds<br />

angekommen sind.<br />

Eine der Regeln <strong>für</strong> die stabilen<br />

Kernelversionen schreibt<br />

nämlich vor, nur Patches aufzunehmen,<br />

die sich bereits<br />

im offiziellen Torvalds’schen<br />

Kernel befinden. Das soll verhindern,<br />

dass sich die beiden<br />

Zweige zu weit auseinanderentwickeln.<br />

Den Zyklus <strong>für</strong> eine neue<br />

Kernelversion eröffnet Linus<br />

derzeit mit einem kurzen<br />

Merge-Window. Dann können<br />

die Entwickler ihre Patches<br />

an ihn schicken. Während<br />

der folgenden Stabilisierung<br />

in den Release Candidates<br />

werden seine Anforderungen<br />

immer strenger, bis »‐rc7«<br />

oder »‐rc8«, worauf der fertige<br />

Kernel folgt. Danach beginnt<br />

der Zyklus von Neuem.<br />

Torvalds gilt dabei als so<br />

streng, dass sich manche Entwickler<br />

bereits nach »‐rc1«<br />

ängstlich zurückziehen und<br />

sich denken: „Oh Mist, ich darf<br />

keine Patches mehr einschicken,<br />

sonst wird Linus mich<br />

schimpfen“, so formulierte es<br />

zumindest Dave Jones. Das<br />

hat offenbar dazu geführt,<br />

dass viele Kernelentwickler<br />

ihre Patches stattdessen an<br />

Greg <strong>für</strong> seine stabilen Kernel<br />

schicken.<br />

Auf Gregs öffentliche Klage<br />

hin gaben viele Entwickler an,<br />

sie hätten keine klaren Richtlinien,<br />

welche Patches sie an<br />

wen schicken sollten. Die<br />

beiden Maintainer bemühten<br />

sich um eine Klarstellung.<br />

Linus schreibt, nach »‐rc3«<br />

akzeptiere er nur noch Fixes<br />

<strong>für</strong> Regressionen, Sicherheitslücken<br />

und Abstürze. Greg<br />

dagegen gibt an, er wolle Patches,<br />

die „echte“ Probleme<br />

beheben – was einiges einschließen<br />

dürfte, das Linus in<br />

seiner Definition ausschließt.<br />

Das wäre eine Erklärung da<strong>für</strong>,<br />

dass so viel mehr Patches<br />

bei Greg landen.<br />

Willy Tarreau, jahrelang der<br />

Main tainer des Kernelzweigs<br />

2.4, schlägt vor, dass die Entwickler<br />

in den Tags angeben,<br />

<strong>für</strong> welche Kernelversion ihre<br />

Patches ein Problem beheben.<br />

Dann könnten die <strong>für</strong> die Stabilität<br />

wichtigsten Fixes in den<br />

stabilen Zweig wandern. Das<br />

gefiel Greg gar nicht: „Gibt<br />

es <strong>einen</strong> Fix <strong>für</strong> ein Problem,<br />

dann möchte ich ihn in Stable<br />

und Linus möchte ihn ebenso.<br />

Bitte schafft kein neues Tag,<br />

nach dem die Anwender dann<br />

suchen müssen, nur weil wir<br />

zu faul sind, es <strong>für</strong> alle User<br />

einzupflegen“, entgegnete er<br />

darauf.<br />

Daneben stellt er klar, das<br />

Problem bestehe <strong>für</strong> ihn eher<br />

darin, dass ihm Entwickler<br />

Patches schicken, die eigentlich<br />

gar keine Fehlerkorrekturen<br />

seien. Sie fügten beispielsweise<br />

den Debugging-<br />

Informationen <strong>einen</strong> Zeilenumbruch<br />

hinzu. Das sei zwar<br />

<strong>für</strong> manche Entwickler besser<br />

zu lesen, aber nicht gleich eine<br />

Rechtfertigung <strong>für</strong> die Aufnahme<br />

in den stabilen Kernel.<br />

Eine Grauzone bleibe also auf<br />

jeden Fall, resümiert Greg. n<br />

Kritik am rauen Umgangston<br />

Der Thread über Patches <strong>für</strong><br />

den stabilen Kernel verwandelte<br />

sich streckenweise in<br />

eine Diskussion über den Umgangston<br />

auf der Mailingliste.<br />

Linus Torvalds ist bekannt<br />

da<strong>für</strong>, dass er Entwickler abkanzelt,<br />

wenn sie etwas gegen<br />

besseres Wissen tun. Dann<br />

schickt er Mails mit Großbuchstaben,<br />

Schimpfwörtern<br />

und Drohungen.<br />

Als er auch Greg Kroah-Hartman<br />

zu einem raueren Ton riet,<br />

rief das die Intel-Entwicklerin<br />

Sarah Sharp auf den Plan. „Ist<br />

das euer Ernst, Jungs?“, fragt<br />

sie. „Brauchen wir wirklich<br />

solche Sitten, um Stable zu<br />

verbessern?“ Sie schreibt weiter:<br />

„Gewalt, sei es in Form<br />

von körperlicher Einschüchterung,<br />

verbalen Drohungen<br />

oder Beleidigungen, ist nicht<br />

akzeptabel. Verhaltet euch<br />

auf der Mailingliste professionell.“<br />

Dazu liefert sie ein<br />

paar saftige Linus-Zitate als<br />

Beleg und fügt hinzu: „Mit so<br />

einem Mist werde ich mich<br />

nicht mehr abfinden.“<br />

„Ich muss den Leuten einfach<br />

klar machen, was meine Position<br />

zu bestimmten Fragen<br />

ist“, rechtfertigt sich Linus.<br />

„Mein Motto ist: Subtilität<br />

kommt im Internet einfach<br />

nicht an.“ Daneben schreibt<br />

Torvalds, er glaube einfach<br />

nicht an Höflichkeit und Political<br />

Correctness. Sarah gibt<br />

sich nicht so leicht geschlagen:<br />

„Man kann Leuten auch<br />

klar machen, dass man ihren<br />

Code nicht annimmt, ohne<br />

sie verbal fertig zu machen“,<br />

entgegnet sie. Zudem besitze<br />

allein schon der Name Linus<br />

Torvalds einige Autorität.<br />

Einige Entwickler haben nun<br />

vorgeschlagen, das Thema in<br />

einer Podiumsdiskussion auf<br />

dem Kernel Summit zu besprechen,<br />

der im Oktober in<br />

Edinburgh stattfindet. (Zack<br />

Brown/​mhu)<br />

n


Aktuell<br />

www.linux-magazin.de Open Suse Conference 10/2013<br />

20<br />

OSC 13: Open Suse auf Richtungs- und Strategiesuche<br />

Griechische Leckereien<br />

Im sommerlich-heißen Thessaloniki traf sich Ende Juli die Open-Suse-Community zu ihrer jährlichen Konferenz<br />

– organisiert von Freiwilligen und mit stark strategisch geprägtem Fokus. Das Treffen fand zum ersten Mal in<br />

einem Ort statt, in dem es weit und breit kein Suse-Büro gibt. Text und Fotos: Markus Feilner<br />

© Markus Feilner<br />

Mpougatsa: Ein Backblech<br />

voller Blätterteig, Puderzucker,<br />

Sahne und Eier, dazu je<br />

ein Schuss Zimt und Vanille,<br />

viel Butter sowie ein wenig<br />

Zitrone – fertig ist die makedonische<br />

Spezialität, die in<br />

den letzten Jahrzehnten ganz<br />

Griechenland erobert hat. Als<br />

Hauptstadt der Mpougatsa<br />

versteht sich Thessaloniki<br />

(Abbildung 1), die Millionenmetropole<br />

an der Nordküste<br />

der Ägäis. Hier, nicht in<br />

Athen, sitzt auch die größte<br />

Universität des Landes, von<br />

hier stammen Alexander der<br />

Große und Aristoteles.<br />

Alexander, Aristoteles,<br />

Open Suse<br />

Im Olympischen Museum dieser<br />

Hochschule trafen sich im<br />

Juli mehr als 250 Mitglieder<br />

der Open-Suse-Community<br />

und der Firma Suse zu ihrer<br />

jährlichen Konferenz ([1],<br />

[2]). Die wurde komplett<br />

von Freiwilligen vor Ort, den<br />

„Greekos“, organisiert (Abbildung<br />

2), die Company aus<br />

Nürnberg hatte sich erstmals<br />

ganz aus der Planung und<br />

Durchführung herausgehalten<br />

– da<strong>für</strong> halfen Freundinnen<br />

und Familienmitglieder und<br />

verpassten so dem Event ein<br />

typisch griechisches Flair, inklusive<br />

Mpougatsa-Frühstück<br />

und viel Greek Coffee.<br />

Geeko Money und<br />

Poolparty<br />

Schon bei der Welcome-Party<br />

am Vorabend der Konferenz<br />

wurde den Besuchern klar:<br />

Die Euro-Krise hat den Veranstaltern<br />

den Humor nicht<br />

verdorben, als Zahlungsmittel<br />

ist während der nächsten<br />

Tage nur das selbst gedruckte<br />

„Gee ko Money“ erlaubt, nur<br />

die vielversprechend angekündigte<br />

Poolparty mit Cocktails<br />

fällt mit drei Kinderplanschbecken<br />

etwas sparsamer aus<br />

als erwartet (Abbildungen 3<br />

und 4). Im Mittelpunkt der<br />

Veranstaltung stand bei stets<br />

über 30 Grad im Schatten<br />

ohnehin nicht das Badevergnügen,<br />

vielmehr suchte<br />

die Community der ehemals<br />

deutschen Distribution nach<br />

Orientierung.<br />

Zwar berichteten die meisten<br />

Vorträge aus den unterschiedlichsten<br />

Projekten, doch <strong>für</strong><br />

Aufsehen sorgten eher die<br />

Strategiethemen (dazu später<br />

mehr). Auf der technischen<br />

Seite stellten die Entwickler<br />

Georg Greve und Hans de Raad<br />

Kolab 3.1 auf Suse vor (Abbildung<br />

5, [3]), Vincent Untz<br />

plauderte aus dem Gnome-<br />

Nähkästchen und Suses Arvin<br />

Schnell erläuterte die Funktionsweise<br />

des Snapshot-Tools<br />

Snapper anhand von Btr-FS<br />

[4]. Dazu gab’s Details zu<br />

UEFI, USB 3.0, GIS und Marble,<br />

<strong>Linux</strong> on ARM, MySQL,<br />

Neues von den Autotools und<br />

vieles mehr.<br />

Auch die Netzpolitik rund<br />

um Prism kam nicht zu kurz:<br />

Greve nutzte seine Keynote,<br />

um den Anwesenden die<br />

weitreichenden Chancen ins<br />

Gedächtnis zu rufen, die der<br />

NSA-Skandal <strong>für</strong> die Open-<br />

Source-Community mit sich<br />

bringt: „Prism nützt uns“,<br />

rief er s<strong>einen</strong> Zuhörern zu<br />

und erklärte, warum er alle<br />

Entwickler freier Software <strong>für</strong><br />

Superhelden hält.<br />

Zahlen, Fakten,<br />

Strategie<br />

Am meisten beachtet und von<br />

den Besuchern heiß diskutiert<br />

waren die Vorträge von Alberto<br />

Planas und Ralf Flaxa<br />

(Abbildung 6). Planas lieferte<br />

die Fakten in Form von Download-<br />

und Nutzerzahlen, Suse-<br />

Board-Member und Vizepräsident<br />

<strong>für</strong>s Engineering Flaxa<br />

erläuterte in seiner Keynote<br />

die Planungen der Firma und<br />

machte Vorschläge <strong>für</strong> die Vision<br />

der weiteren Zusammenarbeit<br />

mit der Open-Source-<br />

Community: Die Kooperation<br />

basiere auf mehreren Faktoren,<br />

etwa dem unternehmerischen<br />

Erfolg von Suse und<br />

damit auch geschäftlichen<br />

Rahmenbedingungen, stellt<br />

Flaxa klar.<br />

Man sei so näher am Upstream,<br />

ohnehin wären fast<br />

alle Entwickler auch persönlich<br />

sehr stark bei Open Suse<br />

involviert, auch emotional.<br />

Die Community, zu der er sich<br />

selbst auch rechnet, profitiere<br />

DELUG-DVD<br />

Auf der DELUG- DELUG-DVD<br />

DVD finden Sie die Videos der<br />

Keynotes auf der Open Suse<br />

Conference in Thessaloniki.


© Markus Feilner<br />

Abbildung 1: Schauplatz der Open Suse Conference 2013: Die uralte Universitätsstadt Thessaloniki.<br />

von Suse-Entwicklungen der<br />

letzten Jahre wie dem Open<br />

Suse Build Service, dem Qualitätsmanagement<br />

Open QA<br />

oder auch Suse Studio.<br />

Flaxa freute sich über die positiven<br />

Bewertungen <strong>für</strong> die<br />

letzten Open-Suse-Editionen:<br />

„Der Spagat zwischen stabiler,<br />

ausgereifter und neuer,<br />

vielleicht noch unstabiler<br />

Soft ware gelingt uns gut.“<br />

Evergreen-Strategie<br />

Als Nächstes ginge es darum,<br />

ein Open-Suse-Ökosystem<br />

zu bauen und die Strategie<br />

hinter Factory und den Suse<br />

Releases, aber auch Tumbleweed<br />

(der Rolling Release) zu<br />

stärken. Wie das genau gehen<br />

soll, erklärten wenig später<br />

einige Suse-Board-Member<br />

im Interview: Andrew Wafaa<br />

zählte die Unterschiede auf<br />

(Abbildung 7): „Suse 12.3<br />

bringt Kernel 3.7, Tumbleweed<br />

dagegen immer den aktuellen<br />

stabilen Kern, derzeit<br />

ist das der 3.10.1. In der Factory<br />

dagegen sind noch neuere<br />

Entwicklerversionen, die<br />

irgendwann stable werden.<br />

Und die alten Open-Suse-Versionen<br />

bekommen gar keine<br />

neuen Kernelversionen mehr,<br />

nur noch Patches.“<br />

Da wäre es doch nur schön<br />

und effizient, wenn vielleicht<br />

ein wenig mehr Ordnung Einzug<br />

hielte. Dabei helfen soll<br />

unter anderem das Projekt<br />

Evergreen: Mit ihm wollen die<br />

Entwickler auch veralteten,<br />

eigentlich nicht mehr supporteten<br />

Open-Suse-Versionen<br />

wie beispielsweise der betagten<br />

11.1 noch Patches und<br />

Security-Updates bringen. Das<br />

alles sei dank des Open Suse<br />

Build Service technisch kein<br />

großes Problem mehr: „Fein<br />

abgestimmt <strong>für</strong> jeden Flavour<br />

lassen sich da Pakete bauen“,<br />

erklärte Wafaa. „Da profitiert<br />

die Community natürlich<br />

auch von den SLES-Erfahrungen<br />

der Suse-Mitarbeiter, die<br />

sowohl die Open-Suse-Leute<br />

trainieren, aber auch immer<br />

wieder eigenen Input einbringen“,<br />

fügte das amerikanische<br />

Board-Member Robert<br />

Schweikert hinzu.<br />

Wie das alles zusammenpassen<br />

soll mit einer Enterprise-<br />

Distribution und freien, gar<br />

mit Rolling Releases, darüber<br />

diskutiert die (Open-)Suse-<br />

Community seit der Conference.<br />

Vor allem die vielen<br />

Softwarequellen vom Build<br />

Service über Factory bis zu<br />

Test- und Developer-Repositories<br />

einzelner Paketgruppen<br />

– etwa KDE oder Gnome –<br />

möchten die Beteiligten um­<br />

strukturieren. So soll auch die<br />

Distribution Open Suse wieder<br />

näher an die Enterprise-<br />

Variante rücken und professioneller<br />

werden.<br />

Welche Zielgruppe?<br />

Aber auch bei der Definition<br />

seiner Zielgruppe hat Open<br />

Suse derzeit ein Orientierungsproblem:<br />

Während Red<br />

Hat und Fedora, aber auch<br />

Debian und Ubuntu eine<br />

scheinbar klare Rollenverteilung<br />

kennen, hat die Suse-<br />

Community in den letzten<br />

Monaten zunehmend Probleme,<br />

ihren typischen Anwender<br />

zu benennen.<br />

Fedora sieht sich als reine<br />

Entwickler-Distribution und<br />

verzichtet gern auch lautstark<br />

auf Neueinsteiger, Red Hat destilliert<br />

daraus das Enterprise-<br />

<strong>Linux</strong> RHEL. Ubuntu konzentriert<br />

sich auf die Ein- und<br />

Umsteiger, Debian adressiert<br />

die <strong>Linux</strong>er, denen die Freiheit<br />

und Unabhängigkeit von Unternehmenspolitik<br />

am wichtigsten<br />

ist.<br />

SLES wiederum hat <strong>einen</strong><br />

Marktvorsprung unter anderem<br />

im HPC-Umfeld und bei<br />

Cloud- und Cluster-Kunden,<br />

aber auch, wenn es darum<br />

geht, fremde Distributionen<br />

oder Betriebssysteme einzubinden.<br />

Das macht Konkurrent<br />

Red Hat nur gegen teueres<br />

Geld, Suse dagegen verdient<br />

sogar gut mit Support<br />

Open Suse Conference 10/2013<br />

Aktuell<br />

www.linux-magazin.de<br />

21<br />

© Markus Feilner<br />

© Markus Feilner<br />

Abbildung 2: Die Veranstaltung fand erstmals nicht in Nürnberg oder Prag statt<br />

und wurde komplett von freiwilligen „Greekos“ und Angehörigen organisiert.<br />

Abbildung 3: Willkommene Erfrischung: Die sensationellen Becken der OSC-13-<br />

Poolparty boten leider nicht <strong>für</strong> alle Teilnehmer Platz.


Aktuell<br />

www.linux-magazin.de Open Suse Conference 10/2013<br />

22<br />

© Markus Feilner<br />

© Markus Feilner<br />

Abbildung 4: Ein fast zehn Meter großes Riesen-Geeko aus Post-its schmückte<br />

den Eingang des Olympischen Museums der Universität.<br />

Abbildung 5: Georg Greve (links) und Hans de Raad zeigten im Kolab-3.1-Workshop,<br />

wie einfach die Installation der Groupware jetzt auch auf Suse gelingt.<br />

<strong>für</strong> Open oder ​Libre Office auf<br />

Windows – und sucht händeringend<br />

neue Mitarbeiter.<br />

Orientierungslos?<br />

Nur Open Suse schwimmt<br />

ein wenig, auch weil die<br />

Community sich nie richtig<br />

auf eine Zielgruppe festlegen<br />

wollte. Vom Kernelentwickler<br />

über den <strong>Linux</strong>-Desktop-User<br />

bis zu Windows-Admins, die<br />

„mal schnell was mit Yast<br />

per Mausklick administrieren<br />

wollen“, reicht die Zielgruppe.<br />

Und alle können (müssen?)<br />

aus einer Vielzahl von Softwarequellen<br />

auswählen:<br />

Tumble weed ist die Rolling<br />

Release, Factory das Testlabor<br />

<strong>für</strong> Mutige, dazu gibt es auch<br />

noch in den Developer-Repositories<br />

einzelner Projekte und<br />

mit dem Open Suse Build Service<br />

gleich eine ganze Hand­<br />

voll Softwarequellen <strong>für</strong> ambitionierte<br />

User.<br />

Klar ist, dass Open Suse das<br />

Testbett ist, aus dem die<br />

Firma Suse erfolgreich ihr<br />

Produkt Suse <strong>Linux</strong> Enterprise<br />

baut. Doch hier entsteht<br />

mittlerweile eine immer größere<br />

Lücke, meint nicht nur<br />

Community-Manager Jos<br />

Poortvliet in seinem Blog [5].<br />

Während Suse eindeutig auf<br />

Unternehmenskunden abziele,<br />

sei die Anwenderlandschaft<br />

von Open Suse so weit<br />

gefasst, dass eine Spezialisierung<br />

schwerfalle.<br />

Poortvliet schreibt, man wolle<br />

„gleichzeitig Open Governance<br />

stärken, also Open<br />

Suse mehr Freiheiten lassen,<br />

aber auch die Lücke füllen,<br />

damit aus der freien Distribution<br />

mehr Input <strong>für</strong> SLES“<br />

erwachse. Das bedeute aber<br />

auch, dass die Firma Suse<br />

machen, aber nichts perfekt“.<br />

Dank OBS klappt das zwar<br />

recht gut, dennoch gäbe es<br />

Verbesserungspotenzial.<br />

Die Wünsche, mehr automatisiertes<br />

Testen einzuführen,<br />

mehr Menschen zu beteiligen<br />

und Tumbleweed, Devel und<br />

Factory irgendwie in Einklang<br />

zu bringen, münden nach<br />

Meinung des Community-Managers<br />

vor allem in der Frage,<br />

wie sich die Factory besser in<br />

Suses Distributionslandschaft<br />

integrieren lässt.<br />

Auf den Mailinglisten geistern<br />

schon seit Längerem<br />

Ideen wie das Konzept der<br />

konzentrischen Ringe umher:<br />

Um höhere Qualität, längere<br />

Release Cycles und eine klar<br />

definierte Zielgruppe zu erreichen,<br />

könnte man doch<br />

die bestehende Infrastruktur<br />

in Komponenten oder Ringe<br />

aufteilen, etwa ein Form eimehr<br />

Entwickler <strong>für</strong> Open<br />

Suse abstellen muss und wird,<br />

vor allem natürlich mit dem<br />

Hintergedanken, das freie Projekt<br />

stärker im professionellen<br />

Bereich zu etablieren.<br />

Auch überdenke man die derzeit<br />

achtmonatigen Releasezyklen,<br />

die „aus einer Zeit stammen,<br />

als es kein Tumbleweed,<br />

kein OBS und kein Evergreen<br />

gab“, und möchte sie zugunsten<br />

langfristigerer Planung<br />

mit höheren QA-Ansprüchen<br />

und ‐Aufwänden umstrukturieren.<br />

<strong>Alle</strong>s gut, aber<br />

nichts perfekt<br />

Poortvliet fordert darüber hinaus:<br />

Die Community müsse<br />

sich überlegen, worauf sie<br />

sich konzentrieren wolle.<br />

Open Suse sei bekannt da<strong>für</strong>,<br />

„alles einigermaßen gut zu<br />

© Markus Feilner<br />

© Markus Feilner<br />

Abbildung 6: Ralf Flaxa, Suses Vizepräsident <strong>für</strong>s Engineering, ist stolz auch auf<br />

Open Suse und stellt s<strong>einen</strong> Plan <strong>für</strong> die weitere Zusammenarbeit vor.<br />

Abbildung 7: „So löst das Suse Board Probleme“: Andrew Wafaa und Robert<br />

Schweikert vom Suse Board haben sichtlich Spaß beim Interview.


© Markus Feilner<br />

Abbildung 8: „Andrew, wo kaufst du deine Hemden?“, so lautete die erste Frage<br />

beim traditionellen Town Hall Meeting.<br />

ner „Core Selection plus Open<br />

Build Service“. Dabei würde<br />

ein Ring 0 beispielsweise alles<br />

enthalten, was <strong>für</strong> Bootstrap<br />

und Compiler notwendig sei,<br />

Ring 1 dann „alles hinauf bis<br />

zu X11“. Dieser Kern würde<br />

alle zwei Jahre releast und<br />

drei Jahre maintaint.<br />

Ein Ring, sie zu<br />

knechten?<br />

Ring 2 enthält die Desktops<br />

und ihre Frameworks und<br />

wird zwei Jahre gepflegt, Ring<br />

3 bringt Applikationen und<br />

Development-Tools – direkt<br />

aus dem OBS, mehr oder weniger<br />

als Rolling Release wie<br />

bei Open Suse Tumbleweed.<br />

Der so genannte „Core“ bestünde<br />

dann aus Ring 0 und 1,<br />

er wäre auf Enterprise-Level<br />

getestet, gehärtet und könnte<br />

zusammen mit einem Basis-<br />

Desktop plus Libre Office<br />

und Firefox eine Open-Suse-<br />

Release ergeben. „Den Rest<br />

holt sich der Anwender einfach<br />

aus dem Open Suse Build<br />

Service“, schreibt Poortvliet.<br />

So eine Release wird naturgemäß<br />

deutlich kleiner, kann<br />

aber viel näher an der Enterprise-Version<br />

liegen.<br />

Die Frage, wo<strong>für</strong> sich die<br />

Community entscheidet, so<br />

meint Poortvliet, sei aber<br />

nicht, was technisch möglich<br />

ist, sondern wiederum: „Was<br />

ist unser Ziel? Wo wollen wir<br />

hin? Wen wollen wir als typischen<br />

Open-Suse-User adressieren?“<br />

Eine schnelle Antwort scheint<br />

nicht in Sicht. Dabei geht es<br />

Suse nicht schlecht, in Thessaloniki<br />

folgte ein Bewerbungsgespräch<br />

dem anderen und<br />

auch die freie Variante kann<br />

auf deutlich mehr Anwender<br />

(über 400 000 regelmäßig updatende<br />

Rechner) verweisen<br />

als beispielsweise Fedora.<br />

Ein Suse-Appstore?<br />

Auch die Innovationskraft<br />

scheint ungebrochen: Ein<br />

Appstore ist geplant, den<br />

auch Board-Member Richard<br />

Brown als „wünschenswerte<br />

Utopie“ bezeichnet. Das<br />

containerhafte Erstellen von<br />

Software, das der Open Suse<br />

Build Service ermöglicht, mag<br />

irgendwann dazu führen, dass<br />

Entwickler ein Paket bauen,<br />

das sofort auf allen <strong>Linux</strong>-<br />

Flavours funktioniert, „nicht<br />

mehr wie bei Firefox gefühlte<br />

tausend Pakete“, erklärte<br />

Brown. Das Free-Desktop-<br />

Projekt Appstream gehe in genau<br />

diese Richtung, auch sei<br />

denkbar, das Ubuntu Software<br />

Center zu portieren, Gespräche<br />

gebe es bereits.<br />

Für <strong>einen</strong> echten Suse-Appstore<br />

sch<strong>einen</strong> derzeit jedoch<br />

die Voraussetzungen noch<br />

nicht vollständig. Sollte der<br />

kommerziell erfolgreich sein,<br />

müsste entweder Suse oder<br />

eine Open Suse Foundation<br />

Billing und Verwaltung übernehmen<br />

– das Open-Suse-Projekt<br />

könne das nicht.<br />

Überhaupt sind sich Suse und<br />

Open Suse einig: Keiner der<br />

Beteiligten wolle mit einem<br />

Cut (einer Abgabe wie bei<br />

Apple, das sich ein Drittel der<br />

Umsätze gönnt) Geld an Apps<br />

verdienen, so wie Microsoft<br />

oder Google. Dass das prinzipiell<br />

funktioniert, zeigen<br />

Beispiele wie Owncloud oder<br />

auch Steam: Beide sind im<br />

Open Suse Build Service verfügbar<br />

und nutzen die Möglichkeiten,<br />

die das Tool bietet,<br />

weidlich aus.<br />

Andrew Wafaa würde sich<br />

allerdings noch mehr Engagement<br />

von Dritten wünschen:<br />

„Es wäre schön, wenn beispielsweise<br />

auch das Humble<br />

Abbildung 9: Ja su, Thessaloniki! Nächstes Jahr treffen sich die Geekos im<br />

dalmatinischen Dubrovnik.<br />

© Markus Feilner<br />

Bundle im OBS wäre – das<br />

würde dem Hersteller doch<br />

nur nützen!“<br />

Orlando! Dubrovnik!<br />

Am Samstagabend trafen sich<br />

die Konferenzgäste zum traditionellen<br />

Town Hall Meeting.<br />

Nach dem Vorbild der Bürgermeister<br />

und Stadträte amerikanischer<br />

Kleinstädte stellt<br />

sich das Open Suse Board<br />

(in diesem Falle vier Mitglieder:<br />

Richard Brown, Andrew<br />

Wafaa, Vincent Untz und Robert<br />

Schweikert, in Abbildung<br />

8 von links nach rechts) den<br />

Fragen und Diskussionen der<br />

Community, von der Strategiedebatte<br />

bis hin zu Sinn<br />

und Unsinn von einzelnen<br />

Mailinglisten.<br />

Die nächste Open Suse Conference<br />

findet bereits im<br />

Frühjahr in Dubrovnik statt.<br />

Auch in dem kroatischen<br />

Weltkulturerbe wird wieder<br />

die Community organisieren,<br />

erklärte Poortvliet, während<br />

die Teilnehmer sich zum<br />

Gruppenfoto mit Chamäleon<br />

aufstellten (Abbildung 9).<br />

Doch bereits im November<br />

treffen sich die Geekos in Florida,<br />

zum Open Suse Summit<br />

in Orlando [6]. n<br />

Infos<br />

[1] OSC 13: [http:// conference.​<br />

opensuse. org]<br />

[2] <strong>Linux</strong>-<strong>Magazin</strong>, Online-<br />

Schwerpunkt zur OSC 13:<br />

[http:// www. linux‐magazin.​<br />

de/​plus/ 2013/10/Open-Suse-<br />

Conference-2013]<br />

[3] Kolab 3.1 bringt „iRony“:<br />

[http:// www. linux‐magazin.​<br />

de/ NEWS/ Keine‐Ironie‐Kolabbetritt‐den‐Apfel‐Space]<br />

[4] Snapper testen:<br />

[http:// www. snapper. io]<br />

[5] Jos Poortvliets Blog:<br />

[http://blog.jospoortvliet.com]<br />

[6] Open Suse Summit:<br />

[http:// summit. opensuse. org]<br />

Open Suse Conference 10/2013<br />

Aktuell<br />

www.linux-magazin.de<br />

23


Aktuell<br />

www.linux-magazin.de Crowdfunding 10/2013<br />

24<br />

Ubuntus Edge‐Kampagne<br />

Megakollekte<br />

Über eine Crowdfunding-Plattform möchte Canonical <strong>einen</strong> noch nie dagewesenen Geldbetrag einsammeln,<br />

um ein Android-Smartphone zu produzieren, das auch als Ubuntu-Rechner funktioniert. Kristian Kißling<br />

Quelle: Ubuntu.com<br />

Crowdfunding und Open-<br />

Source-Software liegen in<br />

ihren Grundsätzen nah beieinander.<br />

In beiden Fällen<br />

ermöglicht eine Gruppe von<br />

Menschen die Umsetzung eines<br />

Projekts, hier mit Geldspenden,<br />

dort durch Arbeitseinsatz.<br />

Auch Software- und<br />

Hardwareprojekte aus dem<br />

Open-Source-Bereich versuchen<br />

immer wieder über<br />

„Schwarmfinanzierung“ Geld<br />

<strong>für</strong> ihre Ziele einzustreichen –<br />

mit wechselndem Erfolg.<br />

Während Mailpile [1], ein<br />

E-Mail-Client mit Fokus auf<br />

Verschlüsselung, sein Ziel<br />

von 100 000 US-Dollar fast erreicht<br />

hat und auch Openshot<br />

[2] sowie Flynn [3] jüngst<br />

erfolgreich Geld auftrieben,<br />

hatten andere Projekte weniger<br />

Glück. Der E-Mail-Client<br />

Geary [4] erreichte nur die<br />

Hälfte der erhofften Summe<br />

von 100 000 US-Dollar. Ein<br />

„Open-Source-Flugzeug“ von<br />

Makerplane.org dümpelt noch<br />

bei 7000 US-Dollar herum, einem<br />

Zehntel der anvisierten<br />

75 000 Dollar.<br />

Seid umschlungen,<br />

Millionen!<br />

Seit dem 22. Juli setzt nun<br />

Canonical neue Maßstäbe<br />

im Crowdfunding: Mit einer<br />

Indiegogo-Kampagne will die<br />

Firma historische 32 Millionen<br />

US-Dollar einsammeln,<br />

um die Produktion und den<br />

Vertrieb eines Smartphones<br />

unter dem Namen Ubuntu<br />

Edge zu finanzieren. Es ist<br />

das höchste Kampagnenziel,<br />

das jemals auf einer Crowdfunding-Plattform<br />

anvisiert<br />

wurde. Kommt die Summe<br />

nicht zusammen, erhalten die<br />

Backer das Geld zurück. Auf<br />

Reddit gab Mark Shuttleworth<br />

zu Protokoll, dass die Summe<br />

<strong>für</strong> die Markteinführung eines<br />

Smartphones sogar verhältnismäßig<br />

bescheiden sei.<br />

Canonical hatte das Projekt<br />

„Ubuntu for Android“ bereits<br />

im Februar 2012 angekündigt.<br />

Darin plante die Firma, anders<br />

als beim Ubuntu Phone,<br />

Ubuntu und Android parallel<br />

auf einem Smartphone laufen<br />

zu lassen. Steckt der Nutzer<br />

das Telefon in ein Dock, lässt<br />

es sich wie ein gewöhnlicher<br />

Desktoprechner mit Ubuntu<br />

verwenden.<br />

Canonical zeigte sich schon<br />

Anfang 2012 überzeugt, dass<br />

die nächste Hardwaregeneration<br />

in der Lage sein werde,<br />

das zu leisten. Doch Hersteller,<br />

die das Handy finanzieren<br />

und verkaufen wollten, fanden<br />

sich nicht. Das lag womöglich<br />

auch an den Erfahrungen mit<br />

dem Atrix von Motorola, das<br />

nach demselben Prinzip funktionierte,<br />

aber wohl aufgrund<br />

der Hardware kein Riesenerfolg<br />

wurde.<br />

Auch zur geplanten Hardware<br />

<strong>für</strong> das Ubuntu Edge bleiben<br />

Fragen. Die Kampagnenseite<br />

[5] verspricht 4 GByte<br />

RAM, die es bislang noch<br />

in keinem Gerät gibt. Vor<br />

allem die neue Batterietechnologie<br />

mit Silizium-Anoden<br />

gilt als wenig erprobt, weshalb<br />

Kernelentwickler Alan<br />

Cox auf Google Plus bereits<br />

über Explosionsgefahren spekulierte.<br />

Zudem, schrieb er,<br />

wisse man nicht, wie offen<br />

die tatsächlich ausgelieferte<br />

Hardware sein werde.<br />

Raketenstart<br />

Die Nachricht von Canonicals<br />

Kampagne ging jedoch durch<br />

alle Medien. In nur einem<br />

Tag sammelte das Projekt 3<br />

Millionen Dollar – ein neuer<br />

Rekord. Am 2. August lagen<br />

Zusagen über 8 Millionen Dollar<br />

vor. Dann kühlte die Dynamik<br />

ab, weshalb Canonical<br />

am 8. August nachlegte und<br />

den Preis <strong>für</strong> das Edge auf 695<br />

US-Dollar senkte.<br />

Vier Tage vor dem Ende der<br />

Kampagne steht der Zähler<br />

nun bei 11 Millionen Dollar,<br />

die höchste jemals erzielte<br />

Crowdfunding-Summe. Doch<br />

um das Ziel zu knacken,<br />

müsste Canonical noch ein<br />

Ass im Ärmel haben. Denn<br />

eine Sache hat Mark Shuttleworth<br />

bereits ausgeschlossen<br />

– dass er das fehlende Kapital<br />

aus seinem Privatvermögen<br />

zuschießt. n<br />

Infos<br />

[1] Mailpile:<br />

[http://www.mailpile.is]<br />

[2] Openshot:<br />

[http://www.openshot.org]<br />

[3] Flynn: [http://flynn.io]<br />

[4] Geary: [http://www.yorba.<br />

org/projects/geary/]<br />

[5] Ubuntu-Edge-Kampagne:<br />

[www.indiegogo.com/<br />

projects/ubuntu-edge]


Titelthema<br />

www.linux-magazin.de Desktops 10/2013<br />

26<br />

KDE und Gnome – die beiden beliebtesten <strong>Linux</strong>-Desktops<br />

Massenbewegung<br />

Stolz verweisen KDE- und Gnome-Projekt auf rund tausend Entwickler. Mit dem Unterbau Qt, GTK, den Desktop-<br />

Anwendungen, Designern, Stiftung und Verein liegt die Zahl der Aktiven aber noch deutlich höher. Markus Feilner<br />

der, um seine eigenen Desktop-Ambitionen<br />

zu verfolgen – hauptsächlich wegen<br />

der fragwürdigen Situation rund um<br />

Trolltechs Closed-Source-Bibliothek Qt,<br />

von der KDE reichlich Gebrauch macht –<br />

und wandte sich dem Gimp Toolkit GTK<br />

zu. Heute ist Qt komplett Open-Source,<br />

und glaubt man den KDElern, dann war<br />

das nie wirklich ein Problem.<br />

© Saniphoto, Fotolia.com<br />

Am Anfang war KDE, da sind sich die<br />

Entwickler überraschend einig. Basyskom-Chefin<br />

und KDE-Urgestein Eva Brucherseifer<br />

wagt gar, Gnome mit einem<br />

Augenzwinkern als Fork von KDE zu bezeichnen:<br />

„Nun, auch der Gnome-Gründer<br />

Miguel de Icaza (Abbildung 1) war<br />

ja zunächst ein KDE-Entwickler, bevor<br />

er sein Desktop-Projekt startete. Insofern<br />

könnte man durchaus sagen, Gnome ist<br />

ein KDE-Fork.“ erklärt sie nicht ganz<br />

ernsthaft. Da pflichtet ihr auch Suse-<br />

Community-Manager und Akademy-Organisator<br />

Jos Poortvliet leicht ironisch<br />

bei: „Ja, Gnome ist einfach der am meisten<br />

sichtbare KDE-Fork, auch wenn sie in<br />

letzter Zeit ein wenig zurückfallen.“<br />

„Gnome ist ein KDE-Fork“<br />

Doch trotz solcher Sticheleien vertragen<br />

sich die Entwickler der beiden Communities<br />

außerordentlich gut, oftmals besser<br />

als ihre Anwender, die Flamewars<br />

um „den besten aller <strong>Linux</strong>-Desktops“<br />

miteinander ausfechten. Unfassbar <strong>für</strong><br />

viele Hardliner legten die beiden Projekte<br />

sogar ihre Entwicklerkonferenzen<br />

zusammen: Statt separat zu Guadec und<br />

Akademy traf man sich 2009 auf Gran<br />

Canaria und 2011 in Berlin zum Projektübergreifenden<br />

Desktop Summit [1]. Bis<br />

dahin war es jedoch ein langer Weg, beide<br />

Oberflächen entstanden bereits um 1996,<br />

was die zahlreichen 15-Jahresfeiern der<br />

letzten Jahre belegen ([2], [3]). Heute<br />

steht KDE vor der Release mit der Major<br />

Nummer 5, Gnome arbeitet an seiner<br />

vierten großen Version.<br />

Icaza, Ettrich: Gründer als<br />

Deserteure und Kritiker<br />

Die beiden Erfolgsstories waren Mitte der<br />

Neunziger keineswegs ausgemacht, auch<br />

wenn Matthias Ettrich (Abbildung 2) in<br />

seinem legendären Post [2] meinte, die<br />

Zeit wäre einfach reif <strong>für</strong> <strong>einen</strong> <strong>Linux</strong>-<br />

Desktop. Mehr oder weniger gleichzeitig<br />

hatten sich die Studenten Miguel de Icaza<br />

and Federico Mena Quinte ebenfalls Gedanken<br />

über das Thema gemacht.<br />

Brucherseifer hat insofern Recht, als Icaza<br />

tatsächlich beim KDE-Projekt einstieg,<br />

wie er in s<strong>einen</strong> Erinnerungen schreibt<br />

[4]. Er verließ es jedoch recht bald wie-<br />

„Mir blutet das Herz“<br />

Doch wie KDE-Gründer Ettrich hat sich<br />

auch der Mexikaner mittlerweile komplett<br />

von <strong>Linux</strong> abgewandt und nimmt<br />

verschnupft die Rolle des ätzenden Kritikers<br />

ein – während sich Ettrich eher<br />

zurückgezogen hat. Icaza wird nicht<br />

müde, seine ehemaligen Weggefährten<br />

zu kritisieren, nicht nur im Interview mit<br />

dem <strong>Linux</strong>-<strong>Magazin</strong> zerlegt er haarklein<br />

und mit viel Drama die vermeintlichen<br />

Fehler des Gnome-, GTK- und überhaupt<br />

des ganzen <strong>Linux</strong>-Projektes [5].<br />

„Mir blutet das Herz“, versichert er dem<br />

<strong>Linux</strong>-<strong>Magazin</strong>, aber der <strong>Linux</strong>-Desktop<br />

sei total gescheitert, immer schon eine<br />

falsche Idee gewesen und die Zukunft<br />

gehöre einfach Apple. Sein Fokus liegt<br />

jetzt auf Mono und seiner Firma Xama-<br />

Abbildung 1: Miguel de Icaza gründete Ende der<br />

Neunziger das Gnome-Projekt, fiel zuletzt doch vom<br />

Glauben an <strong>Linux</strong> ab und wandte sich Apple zu.<br />

© Markus Feilner


in. Auch Ettrich beteiligt sich nicht mehr<br />

am KDE-Projekt, er konzentriert sich auf<br />

Qt und s<strong>einen</strong> Arbeitgeber Nokia.<br />

Hunderte, Tausende<br />

Dass selbst ein solch kapitaler Verlust<br />

einem populären Projekt nicht schaden<br />

muss, zeigt sich bei einem Blick<br />

auf die Zahlen: Wer alle Mitwirkenden<br />

einrechnet, die in Gnome Foundation,<br />

KDE e.V., Design, Dokumentation, Übersetzungsteams<br />

und als Entwickler, Debugger<br />

und Tester aktiv mitmachen,<br />

kommt bei beiden Desktops mittlerweile<br />

auf eine stattliche Anzahl: Schätzungen<br />

der Marketing-Experten (beide Desktop-<br />

Projekte verfügen mittlerweile über ein<br />

eigenes Marketingteam) ergeben jeweils<br />

mehrere tausend Contributors und immerhin<br />

einige hundert, die regelmäßig<br />

Patches committen oder sich via IRC und<br />

Mailinglisten über den neuesten Code<br />

austauschen. Da wundert es nicht mehr,<br />

Abbildung 2: KDE-Gründer Matthias Ettrich auf dem <strong>Linux</strong>tag 2007, hier<br />

links neben Tux-Designer und Gnome-Entwickler Larry Ewing.<br />

dass die Entwicklerkonferenzen<br />

Guadec<br />

(Gnome) und Akademy<br />

(KDE) jedes<br />

Jahr überaus gut besucht<br />

sind und auch<br />

<strong>Linux</strong>-Prominenz ein<br />

Stelldichein gibt (Abbildung<br />

3 und 4).<br />

Wie aber bringt man<br />

so eine große Horde<br />

freier Entwickler<br />

dazu, an einem Strang<br />

zu ziehen? Allan Day,<br />

Leiter des Gnome Design-Entwicklungsund<br />

Marketing-Teams glaubt, die offene<br />

Diskussionskultur, die nach außen oft<br />

als Streit wahrgenommen wird, sei genau<br />

das Richtige, um so ein großes Team<br />

zusammenzuhalten. Ja, es habe Forks<br />

gegeben, gerade im Zuge der Umstellung<br />

von Gnome 2 auf 3, die ja „wirklich eine<br />

revolutionäre Umstellung des GUI mit<br />

vielen neuen Funktionen und Möglichkeiten<br />

mitgebracht habe,“ seien auch die<br />

Streits lauter geworden. Einige Entwickler<br />

verfolgten jetzt ihre eigenen Projekte,<br />

von Cinnamon (Mint) bis zu Ubuntus<br />

Unity. Solche Abspaltungen hätten ihre<br />

Gründe nicht nur in der Technik, sondern<br />

oft auch in den rüden Umgangsformen,<br />

die manche Beteiligten an den Tag legen.<br />

Hier sei die Foundation gefragt, die das<br />

Problem aber bereits erkannt habe.<br />

© Markus Feilner<br />

Desktops 10/2013<br />

Titelthema<br />

www.linux-magazin.de<br />

27


Titelthema<br />

www.linux-magazin.de Desktops 10/2013<br />

28<br />

© Knut Yrvin<br />

Abbildung 3: Gruppenfoto bei der Akademy 2013 in Bilbao: Sowohl KDE als auch …<br />

Insgesamt hat Gnome in den letzten<br />

Jahren große Fortschritte gemacht: Das<br />

Entwicklungsmodell wird eher von Designentscheidungen<br />

angetrieben, es gäbe<br />

quasi Vorlagen <strong>für</strong> jeden Schritt, auch<br />

Usability-Experten seien eingebunden,<br />

erklärt Day: „Und wir haben mit OSTree<br />

[6] Continuous Integration eingeführt,<br />

mit deren Hilfe Entwickler innerhalb von<br />

Minuten in einer virtuellen Maschine<br />

ihren Code testen können und die Ergebnisse<br />

automatisch via IRC erhalten.“<br />

Auch Andrea Veri, Committee Chairman<br />

bei der Gnome Foundation nennt das<br />

CI-Tool als Meilenstein, betont aber die<br />

Bedeutung des Wechsels von CVS zu Git:<br />

„Der Umstieg 2008 hat uns sehr viel gebracht,<br />

erst damit war OSTree möglich!“<br />

KDE: Europa plus Brasilien<br />

plus Indien<br />

Die KDE-Entwicklung prägten in den frühen<br />

Jahren durchweg Europäer wie Ettrich,<br />

Matthias „Kalle“ Dalheimer („KDE<br />

ist heute viel offener als damals“) oder<br />

Martin Konold, der die ersten Server bereitstellte.<br />

Heute sind auch die südamerikanische<br />

und indische Fraktion stark<br />

© Gnome Foundation<br />

vertreten. Forks gab es nicht viele, KDE-<br />

Entwickler David Faure, der vor allem an<br />

den KDE Frameworks arbeitet, bezeichnet<br />

Trinity [7] als einzige ernsthafte Abspaltung,<br />

die aus der Unzufriedenheit mit<br />

den anfangs holprigen KDE-4-Versionen<br />

entstand.<br />

Auch KDE ist vor einigen Jahren nach und<br />

nach auf Git umgestiegen, was die Arbeit<br />

deutlich vereinfacht hat (Poortvliet). Der<br />

Großteil der Organisation und Kommunikation<br />

läuft über Mailinglisten oder IRC,<br />

oder auf Events. Brucherseifer erinnert<br />

sich: „Am Anfang konnten sich alle KDE-<br />

Entwickler regelmäßig in einem Raum<br />

treffen, doch das ging dann recht schnell<br />

nicht mehr, wir waren bald zu viele.“ Da<br />

kam dann die KDE Akademy ins Spiel.<br />

Ausblick<br />

Es steht nicht schlecht um die beiden<br />

großen Desktop-Projekte. Gnome will mit<br />

Gnome OS und Gnome 4 weiter Maßstäbe<br />

in Usability und Integration setzen<br />

[8], KDE organisiert gerade seine Projekte<br />

und Bibliotheken neu. Die jüngst erschienene<br />

Version 4.11 sei die letzte KDE-<br />

Variante, die alles gemeinsam brächte, ab<br />

Abbildung 4: ... Gnome, hier auf der Guadec 2013, versammeln jedes Jahr hunderte Entwickler.<br />

Nummer 5 sollen die KDE Frameworks<br />

[9] <strong>einen</strong> gegliederten Unterbau bieten.<br />

die Neuorganisation ist notwendig, um<br />

verschiedene Gerätetypen und Touch-<br />

Devices zu integrieren.<br />

Und dann gibt’s ja mit dem mobilen Sektor<br />

noch ein ganz neues Betätigungsfeld<br />

<strong>für</strong> beide Projekte. Denkt da noch jemand<br />

an de Icaza und Ettrich?<br />

n<br />

Infos<br />

[1] Desktop Summit Berlin 2011: [http:// www.​<br />

linux‐magazin. de/ plus/ 2011/ 10/ News‐zum‐<br />

Desktop‐Summit‐2011‐in‐Berlin]<br />

[2] Happy Birthday Gnome:<br />

[http:// happybirthdaygnome. org]<br />

[3] 15 Jahre KDE-Geschichte, erzählt von den<br />

Hauptakteuren: [http:// dot. kde. org/ 2012/​<br />

11/ 27/ 15‐years‐kde‐ev‐early‐years],<br />

[http:// dot. kde. org/ 2012/ 11/ 28/ 15‐yearskde‐ev‐growing],<br />

[http:// dot. kde. org/ 2012/ 11/ 29/ 15‐yearskde‐ev‐today]<br />

[4] Miguel de Icazas Gnome-History:<br />

[http:// primates. ximian. com/ ~miguel/​<br />

gnome‐history. html]<br />

[5] Miguels Gnome-Kritiken:<br />

[http:// www. linux‐magazin. de/ NEWS/ Miguels<br />

‐Rant‐Was‐wir‐falsch‐gemacht‐haben/],<br />

[http:// www. linux‐magazin. de/ NEWS/ Miguel<br />

‐de‐Icaza‐kritisiert‐Plaene‐fuer‐Gtk‐3/],<br />

[http:// www. linux‐magazin. de/ Ausgaben/​<br />

2013/ 05/ Login/], [http:// www. linux‐magazin.​<br />

de/ Ausgaben/ 2011/ 11/ Mono/]<br />

[6] OSTree: [https:// wiki. gnome. org/ OSTree]<br />

[7] Trinity: [http:// www. trinitydesktop. org]<br />

[8] Gnome 4 oder Gnome OS?: [http:// www.​<br />

linux‐community. de/ Internal/ Nachrichten/<br />

Anmerkungen‐zu‐den‐ambitionierten‐Plaenen‐des‐Gnome‐Projekts‐von‐Allan‐Day]<br />

[9] KDE Frameworks: [http:// www. linuxmagazin.<br />

de/ NEWS/ KDE‐Roadmap‐Version‐5<br />

‐heisst‐KDE‐Frameworks‐5]


Titelthema<br />

www.linux-magazin.de Von X11 bis Xmir 10/2013<br />

30<br />

Freie Fenstersysteme<br />

<strong>Alle</strong>s zu seiner Zeit<br />

X.org, das als Fenstersystem in den meisten aktuellen <strong>Linux</strong>-Distributionen steckt, existiert länger als <strong>Linux</strong><br />

selbst. Trotz des Erfolgs stehen aber bereits potenzielle Nachfolger in den Startlöchern. Kristian Kißling<br />

© Maxim Kazmin, 123RF.com<br />

Es war Anfang Mai 1992, als Linus<br />

Torvalds sich über das neue Fenstersystem<br />

(Abbildung 1) <strong>für</strong> <strong>Linux</strong> äußerte [1]:<br />

„Nach Version 0.03 entschied ich, dass<br />

die nächste Version von <strong>Linux</strong> tatsächlich<br />

benutzbar sein sollte (war sie auch<br />

irgendwie, aber Junge, X unter 0.96 ist<br />

deutlich beeindruckender).“ Gut zwei<br />

Wochen später erschien besagte Version<br />

0.96 von <strong>Linux</strong>. Es brachte erstmals das<br />

X Window System (kurz X) mit, dessen<br />

Integration Linus beim Verfassen der E-<br />

Mail offenbar gerade beschäftigte.<br />

X Window System<br />

Das X Window System war keine Neuerfindung,<br />

sondern existierte bereits seit<br />

1984 als plattformunabhängiges Fenstersystem<br />

[2]. Die Idee da<strong>für</strong> wurde aus<br />

der Not heraus am MIT geboren, als das<br />

Institut zusammen mit IBM und DEC das<br />

Projekt Athena startete. In dem campusweiten<br />

Lernprojekt sollten Studierende<br />

auf Workstations mit einem Fenstersystem<br />

lokale Tools wie Tabellenkalkulationen<br />

verwenden, aber auch über das<br />

Netzwerk auf Ressourcen wie etwa Dokumente<br />

zugreifen – das Stichwort lautete<br />

Distributed Computing.<br />

Die da<strong>für</strong> eingesetzten Rechner stammten<br />

jedoch von verschiedenen Herstellern. Da<br />

die Carnegie-Mellon-Universität keine Lizenzen<br />

<strong>für</strong> ihr eigenes Fenstersystem herausrückte,<br />

machten sich Bob Scheifler,<br />

James Gettys, Ron Newman und viele<br />

Pioniere an die Arbeit und entwickelten<br />

das Protokoll <strong>für</strong> X. Die Arbeit ging gut<br />

voran, DEC portierte Version 6 von X<br />

sogar <strong>für</strong> die eigene Hardware.<br />

Das MIT verschickte sein X Window System<br />

gegen eine Schutzgebühr von 150<br />

US-Dollar auf einem 9-Spur-Magnetband.<br />

Die Version X10R3 veröffentlichte man im<br />

Februar 1986 unter der freien MIT-Lizenz<br />

mit dem Ziel, die Popularität der Software<br />

zu steigern, was auch gelang.<br />

Dann begann die Arbeit an X11, das X<br />

Hardware-unabhängiger machen sollte<br />

und an dem sich mehrere Unternehmen<br />

beteiligten. Im Juni 1987, noch vor der<br />

Publikation der finalen X11-Spezifikation,<br />

beschlossen neun beteiligte Parteien, <strong>für</strong><br />

das erfolgreiche Projekt das MIT X Consortium,<br />

eine neutrale Non-Profit-Organisation,<br />

zu gründen. Dieses Konstrukt<br />

einer Dachorganisation, die verschiedene<br />

Interessen vereint, funktioniert bis heute<br />

<strong>für</strong> Großprojekte wie den Kernel (<strong>Linux</strong><br />

Foundation), Open Stack (Open Stack<br />

Foundation) oder Apache (Apache Foundation).<br />

Zwar gibt es das MIT X Consortium seit<br />

1996 nicht mehr, da<strong>für</strong> aber Freedesktop.<br />

org: Die projektübergreifende Plattform<br />

bietet X.org, Wayland, Mesa und diversen<br />

Toolkits ein Zuhause und setzt <strong>einen</strong> Fokus<br />

auf die Interoperabilität mit Desktops<br />

wie KDE, Gnome oder Xfce.<br />

Am 15. September 1987 wurde die X11-<br />

Spezifikation schließlich offiziell veröffentlicht<br />

(Abbildung 2). Ein Grund <strong>für</strong><br />

die schnelle Entwicklung und Verbreitung<br />

bestand in der Nutzung einer offenen<br />

Mailingliste mit Anschluss an das<br />

öffentliche Usenet – X11 wurde damit zu<br />

einem FLOSS-Projekt avant la lettre. Es<br />

erfüllte bereits 1987 die typischen Kriterien,<br />

die solche FLOSS-Projekte noch<br />

heute kennzeichnen.<br />

Ein zweiter Faktor <strong>für</strong> den Erfolg von<br />

X11 war die freie Lizenz: Hätten die X-<br />

Entwickler auf die MIT-Lizenz verzichtet<br />

(über die Richard Stallman nicht ganz<br />

glücklich war, [3]), wären vermutlich<br />

weder Xfree86 noch X.org entstanden.<br />

X11 <strong>für</strong> <strong>Linux</strong><br />

Die erste X11-Variante <strong>für</strong> <strong>Linux</strong> portierte<br />

der Kodak-Angestellte Orest Zborowski<br />

im Frühjahr 1992 [4] unter dem Namen<br />

X11v1.0 auf das freie Betriebssystem. Sie<br />

landete in <strong>Linux</strong> 0.96. Er selbst hatte


Quelle: Tene/CC-BY-SA 3.0<br />

www.linux-magazin.de<br />

Von X11 bis Xmir 10/2013<br />

Titelthema<br />

31<br />

Abbildung 1: Das Fenstersystem von Unix mit Toms Window Manager (Twm). Der<br />

<strong>Linux</strong>-Desktop sah Anfang der 90er ähnlich aus, der Desktop Twm lässt sich noch<br />

heute problemlos installieren und starten.<br />

Abbildung 2: Die Ankündigung von X11 auf der Mailingliste [comp.windows.x],<br />

die Google heute noch hostet.<br />

<strong>Linux</strong> seit Version 0.12 installiert und sah,<br />

dass es – anders als Minix – ein funktionierendes<br />

Speichermanagement bot,<br />

weshalb er X damit testen wollte. Dazu<br />

brachte er <strong>Linux</strong> die System Calls von<br />

System-V bei. Das hatte den Nebeneffekt,<br />

dass <strong>Linux</strong> später sowohl Funk tionen von<br />

System-V als auch BSD beherrschte, wodurch<br />

sich die Software dieser Systeme<br />

einfacher portieren ließ.<br />

Als Vorlage diente ihm dabei die Arbeit<br />

von Thomas Röll und Mark W. Snitily<br />

[5], von denen X386 stammte, ein<br />

Freeware-Port von X11R5 <strong>für</strong> das Unix-<br />

Betriebssystem System-V [6], das auf<br />

Intels 80386er CPU lief. Der Port wurde<br />

offizieller Bestandteil von X11R5.<br />

Xfree86<br />

Als Röll und Snitily <strong>für</strong> X386 kommerzielle<br />

Pläne entwickelten, übernahmen<br />

vier andere Herren: Mit dem Einverständnis<br />

der Originalautoren behoben David<br />

Wexelblat, David Dawes, Glenn Lai und<br />

Jim Tsillas Fehler im Code von X386 1.2<br />

und veröffentlichten ihre quelloffene Variante<br />

am 18. Juli 1992 als X386 1.2E 1.0<br />

[7]. Das dadurch verursachte Namenschaos<br />

brachte die Entwickler dazu, ihre<br />

X11-Variante am 3. September 1992 offiziell<br />

in Xfree86 1.0 umzubenennen [8].<br />

Free ohne Freiheit<br />

betrieb eine geschlossene Mailingliste,<br />

auf der Änderungen beschlossen und<br />

dann ohne Diskussion an die anderen<br />

Entwickler kommuniziert wurden. Zugang<br />

zum Core-Team erhielt man erst<br />

nach Jahren der Arbeit, und auf den Code<br />

im CVS durften nur ausgewählte Entwickler<br />

zugreifen. Mit 250 Codezuträgern<br />

war das wichtige Projekt ohnehin vergleichsweise<br />

klein, dennoch dauerte es<br />

oft Monate, bis eine Bewerbung um die<br />

Mitgliedschaft bewilligt wurde.<br />

Diese Einstiegshürden sah zwar auch<br />

der X11-Entwickler Orest Zborowski, begrüßte<br />

aber den geschlossenen Entwicklungsprozess<br />

„nach der BSD-Methode“<br />

als solchen, weil X härtere Entscheidungen<br />

erfordere und sich ein offenes<br />

Entwicklungsmodell eher <strong>für</strong> den <strong>Linux</strong>-<br />

Kernel eigne [4].<br />

Zwar öffnete das Projekt irgendwann den<br />

CVS-Zugang und machte die Mailingliste<br />

öffentlich, aber bis dahin waren die Dinge<br />

schon recht verfahren. Der Anfang vom<br />

Ende trat ein, als Keith Packard, ein X-<br />

Veteran, der schon an X11 mitgearbeitet<br />

hatte, Kritik am Projekt übte.<br />

Der Anfang vom Ende<br />

Das Board of Directors versuchte nun<br />

ein Doppelmanöver: Es startete eine weitere<br />

öffentlich zugängliche Mailingliste,<br />

warf aber als erste Amtshandlung am<br />

Xfree86 wurde zum bedeutendsten Vertreter<br />

von X (Abbildung 3) und zehn<br />

Jahre lang wirkte das Modell alternativlos.<br />

Das Entwicklungsmodell von Xfree86<br />

war jedoch nicht perfekt. Das Core-Team<br />

Abbildung 3: Der Xfce-Desktop mit seinem unschuldigem Xfree86-Charme im Jahre 2000.


Titelthema<br />

www.linux-magazin.de Von X11 bis Xmir 10/2013<br />

32<br />

20. März 2003 Keith Packard mit dem<br />

Vorwurf aus dem Core-Team, er habe<br />

hinter dem Rücken des Projekts <strong>einen</strong><br />

Fork starten wollen. Packard wehrte sich<br />

<strong>einen</strong> Tag später [9]. Er habe ja versucht,<br />

Änderungen anzustoßen, sei aber nicht<br />

weit gekommen.<br />

Er äußerte seine Kritik am Entwicklungsmodell,<br />

die im Wesentlichen auf<br />

vier Punkte hinauslief (siehe Kasten<br />

„Packards Kritik“), öffentlich. <strong>Alle</strong>s in<br />

allem, so Packard, sei das Hauptproblem,<br />

dass Xfree86 kein Community-verwaltetes<br />

Projekt sei. Er forderte in seiner Mail<br />

niedrige Einstiegshürden <strong>für</strong> Mitglieder<br />

und regelmäßige Vorstandswahlen durch<br />

alle Mitglieder. Dazu zählte er auch Qtund<br />

GTK+-Entwickler, Hardwarehersteller<br />

und X-Anwender, also quasi alle<br />

Menschen, die mit Xfree86 in Berührung<br />

kamen. Vor allem den dritten Punkt, die<br />

Kooperation mit externen Projekten, diskutierten<br />

die Abonnenten der Liste.<br />

„X.org irrelevant“<br />

Eigentlich hätte X.org, eine Nachfolge-<br />

Organisation des MIT X Consortium, <strong>für</strong><br />

die Koordination mit anderen Projekten<br />

wie beispielsweise Gnome und KDE sorgen<br />

sollen. Doch den X.org-Mitgliedsbeitrag<br />

von damals 3000 US-Dollar pro<br />

Jahr (<strong>für</strong> ein Industriekonsortium nichts<br />

Ungewöhnliches) konnten und wollten<br />

die freien Projekte nicht aufbringen. Der<br />

Entwickler Havoc Pennington sprach es<br />

aus: „So lange X.org nicht s<strong>einen</strong> ,Wenn<br />

du zahlst, hast du mehr zu sagen‘-Prozess<br />

stoppt, sollten wir als Open-Source-<br />

Community X.org formal als irrelevant<br />

betrachten und unsere eigenen Standards<br />

machen.“<br />

Doch nicht nur das. Red Hats Owen Taylor<br />

kritisierte, dass sich nur sehr wenige<br />

Xfree86-Leute an vorhandenen Desktop-<br />

Projekten (Rendering, Anwendungsper-<br />

Packards Kritik<br />

Diese vier Punkte kritisierte Keith Packard im<br />

März 2003 am Xfree86-Entwicklungsprozess.<br />

n Im Gegensatz zu Fetchmail habe das deutlich<br />

größere Xfree86-Projekt nur ein Viertel der<br />

Entwickler, es fehle also an Nachwuchs.<br />

n Die neuen Versionen von Xfree86 erschienen<br />

viel zu selten. Der Jahresrhythmus führe<br />

dazu, dass die Nutzer neuerer Chips oft ihr<br />

eigenes Xfree86 kompilieren müssen.<br />

Abbildung 4: Mit Cygwin ließ sich Xfree86 auch unter Windows betreiben. Das Projekt kündigte später die<br />

Zusammenarbeit mit Xfree86, weil es k<strong>einen</strong> CVS-Zugang erhielt.<br />

formance) beteiligten. Der Desktop sei<br />

<strong>für</strong> viele Entwickler wohl kein interessantes<br />

Problem [10].<br />

Daniel Stone beschrieb zudem, wie die<br />

Entwickler um die Probleme von X11 herumprogrammierten<br />

und dabei wissentlich<br />

gegen die Spezifikationen verstießen.<br />

Die Hardware wurde vielfältiger, Rendering<br />

wurde komplizierter, neue Anforderungen<br />

tauchten auf. Xfree86 konnte<br />

aufgrund des geschlossenen Entwicklungsmodells<br />

nicht Schritt halten.<br />

Auflösungserscheinungen<br />

Als Keith Packard in den Folgemonaten<br />

immer wieder Konferenzgespräche führte<br />

und die Liste darüber informierte, schlug<br />

ihm David Dawes vor, doch <strong>einen</strong> Fork<br />

aufzumachen. Das übernahmen aber<br />

zunächst andere: Jonathan Walther und<br />

William Lathi forkten im August 2003<br />

Xfree86 unter dem Namen Xouvert, doch<br />

n KDE und Gnome mussten Freedesktop.org<br />

gründen, weil Xfree86 sich geweigert habe,<br />

beim Erweitern und Verbessern des X-Window-Systems<br />

zu helfen.<br />

n Auf der Homepage würden Informationen<br />

fehlen, wie man Xfree86-Entwickler wird.<br />

Diese befänden sich nur in einer Readme-<br />

Datei im Xfree86-Quellcode und würden auf<br />

ein paar Mailinglisten verweisen.<br />

das Projekt schlief schon bald ein. Im<br />

Oktober 2003 verabschiedete sich auch<br />

Cygwin (Abbildung 4) aus dem Xfree86-<br />

Projekt, weil die eigenen Entwickler<br />

keine Erlaubnis erhielten, Patches an das<br />

CVS zu senden.<br />

David Dawes, Kopf von Xfree86, löste<br />

dann höchstpersönlich am 30.12.2003<br />

das Core-Team von Xfree86 auf, was von<br />

Beobachtern auf Slashdot als richtiger,<br />

aber zu spät kommender Schritt gedeutet<br />

wurde [11]. Die reale Macht hätte ohnehin<br />

bei den Entwicklern mit CVS-Zugriff<br />

gelegen, im Core-Team hätten Leute gesessen,<br />

die schon lange nicht mehr aktiv<br />

an der Entwicklung beteiligt waren.<br />

Neues Jahr, neues X<br />

Im Januar 2004 gründeten Mitglieder<br />

von X.org und Freedesktop.org, von<br />

der Öffentlichkeit unbemerkt, die X.org<br />

Foundation. Zu den Gründern gehörte<br />

auch X.org-Mitglied Alan Coopersmith.<br />

Eigentlich wollte er <strong>für</strong> s<strong>einen</strong> Auftraggeber<br />

Sun das X11-basierte proprietäre<br />

Xsun <strong>für</strong> Solaris durch Xfree86 ersetzen.<br />

Doch da hatten die Querelen im Xfree86-<br />

Projekt bereits begonnen, wie er dem<br />

<strong>Linux</strong>-<strong>Magazin</strong> schrieb. Da das Xfree86-<br />

Team nicht mit X.org kooperieren wollte,<br />

habe er geholfen, das Industriekonsortium<br />

in eine Open-Source-Foundation<br />

umzuwandeln.


Abbildung 5: Das brennende Verlangen nach Desktopeffekten ist mittlerweile etwas abgekühlt. Unter Ubuntu<br />

6.10 war das Thema im Jahre 2006 hingegen hochaktuell.<br />

Ebenfalls im Januar 2004, kündigte<br />

Daniel Stone auf der Freedesktop-Mailingliste<br />

die Xlibs in Version 1.0 an. Sie<br />

brachte eine erste Modularisierung von<br />

Xfree86 mit sich und Stone verwies in der<br />

Ankündigung auf die Mithilfe von Keith<br />

Packard und Jim Gettys.<br />

Zufall oder nicht: Fünf Tage nach Stones<br />

Bekanntmachung kündigte David Dawes<br />

eine Lizenzänderung <strong>für</strong> Xfree86 4.4 an:<br />

Durch eine neue Klausel im BSD-Stil<br />

wurde die Xfree86-Lizenz inkompatibel<br />

zur GPL und den damit lizenzierten Programmen.<br />

Zahlreiche Entwickler meldeten<br />

sich kritisch zu Wort, doch selbst<br />

GNU-Erfinder Richard Stallman konnte<br />

über die Mailingliste keine Einigung erzielen.<br />

Mandrake <strong>Linux</strong> reagierte, indem<br />

es auf Xfree86 4.3 zurückkehrte, bis Mitte<br />

Februar sagten sich fast alle anderen Distributionen<br />

von Xfree86 los.<br />

Am 6. April 2004 folgte der offizielle und<br />

endgültige Bruch: Die X.org Foundation<br />

kündigte nicht nur sich selbst, sondern<br />

auch die Release von X11R6.7.0 an, das<br />

auf X11R6.6 und Xfree86 4.4RC2 basierte.<br />

In der Ankündigung kamen gleich<br />

mehrere bekannte Unterstützer zu Wort,<br />

darunter Matthias Ettrich (KDE), Georg<br />

Greve (FSFE), Havoc Pennington (Red<br />

Hat) und Jim Gettys (HP). Das zeigte die<br />

breite Allianz von Unterstützern hinter<br />

der X.org Foundation.<br />

Es gab also einige Hauptfaktoren, die<br />

das Ende von Xfree86 besiegelten: Das<br />

geschlossene Entwicklungsmodell, das<br />

krude Workarounds verlangte, die mangelnde<br />

Kooperation mit externen Projekten<br />

und kommerziellen Anbietern sowie<br />

die Lizenzänderung von 2004.<br />

X.org<br />

Sehr schnell wurde X.org zum bestimmenden<br />

X Window System auf <strong>Linux</strong>-<br />

Rechnern (Abbildung 5). Noch heute<br />

laufen nahezu alle <strong>Linux</strong>-Versionen auf<br />

X.org-Basis, die Installationen gehen<br />

in die Millionen. Die Zahl der X.org-<br />

Entwickler ist hingegen begrenzt: Alan<br />

Coopersmith spricht von etwa 50 bis<br />

100 aktiven Entwicklern, Peter Hutterer<br />

schätzt ihre Zahl hingegen auf 20 bis 30,<br />

allerdings ohne die Mesa-Entwickler.<br />

X-Client<br />

KMS<br />

X-Client<br />

X-Server<br />

Evdev<br />

Kernel<br />

X-Client<br />

Compositor<br />

X Window System<br />

Zu den im Projekt genutzten Kommunikationswegen<br />

gehören Mailinglisten<br />

und IRC, als Bugtracker dient Bugzilla,<br />

weil, so Coopersmith, Freedesktop.org<br />

diesen ohnehin verwende. Nur bei der<br />

Versionsverwaltung gab es <strong>einen</strong> Wechsel:<br />

Auf Keith Packards Betreiben hin<br />

[12] nutzt das Projekt seit 2007 Git statt<br />

CVS. Packard argumentierte mit der Geschwindigkeit<br />

von Git, aber auch mit seiner<br />

Fähigkeit, Dateien zu komprimieren.<br />

Zudem sprachen die Flexibilität und die<br />

Stabilität laut Packard <strong>für</strong> Git.<br />

Daneben tauscht das Projekt Code auch<br />

über die Mailingliste aus, in Form von<br />

Patches. Echte Konflikte gab es, sieht man<br />

von technischen Auseinandersetzungen<br />

ab, laut Hutterer und Coopersmith nach<br />

dem Fork nicht mehr. Beide arbeiten<br />

noch immer zusammen mit Packard am<br />

X-Server, wobei sich Hutterer auch an<br />

Wayland beteiligt.<br />

Wayland und Weston<br />

Ebenfalls an Wayland arbeiten die ehemaligen<br />

X.org-Entwicker Kristian Høgsberg<br />

und Daniel Stone. Beide reden nicht<br />

schlecht über ihr Ex-Projekt und machen<br />

auch nach dem Start von Wayland noch<br />

mit. <strong>Alle</strong>rdings wollen sie ganz klar weg<br />

von der Software X.org. Ins Leben gerufen<br />

hat Wayland, das ist ein Protokoll<br />

über das ein Compositor und seine<br />

Clients miteinander reden, der ehemalige<br />

X- und Red-Hat-Entwickler Høgsberg. Er<br />

entwickelte Wayland zunächst als Einzelkämpfer,<br />

der erste Commit stammt vom<br />

30. September 2008.<br />

Høgsberg wollte nicht den X-Server umschreiben,<br />

sondern etwas komplett Neues<br />

Wayland-Client<br />

Wayland<br />

Wayland-Client<br />

KMS<br />

Wayland-<br />

Compositor<br />

Evdev<br />

Kernel<br />

Abbildung 6: Wayland will sich unter anderem von X lösen, um die über Jahre aufgebaute Komplexität zu<br />

reduzieren. Verschiedene Distributionen und Toolkits unterstützen Wayland bereits.<br />

Von X11 bis Xmir 10/2013<br />

Titelthema<br />

www.linux-magazin.de<br />

33


Titelthema<br />

www.linux-magazin.de Von X11 bis Xmir 10/2013<br />

34<br />

[13] und vor allem Einfacheres aufbauen<br />

(Abbildung 6). Wayland sei kein Fork<br />

von X.org und kein X-Server, schreibt er<br />

in der FAQ [14]. Wayland könne X.org<br />

zwar ersetzen, er glaube aber, beide Server<br />

werden künftig Seite an Seite arbeiten.<br />

Sein Display Server könne als grafischer<br />

Multiplexer <strong>für</strong> mehrere X-Server<br />

dienen und so das bisherige VT-Switching<br />

ablösen. X-Anwendungen, die es wohl<br />

noch einige Zeit geben werde, könnten in<br />

einem unabhängigen X-Server laufen, der<br />

als Client <strong>für</strong> Wayland funktioniert.<br />

Sein Problem mit X.org beschreibt Høgsberg<br />

so: „Das Problem mit X ist … es ist<br />

X! Wenn man ein X-Server ist, muss man<br />

eine unheimliche Menge an Funktionalität<br />

unterstützen, damit man behaupten<br />

kann, das X-Protokoll zu beherrschen –<br />

und niemand wird diese Funktionen verwenden.“<br />

Er wolle X.org nicht verändern,<br />

sondern es zu einer Möglichkeit neben<br />

anderen machen.<br />

Andere X.org-Entwickler schlossen sich<br />

Høgsberg bald an, darunter Daniel Stone.<br />

Will man wissen, was er über X.org<br />

denkt, genügt ein Besuch auf Youtube.<br />

In einem Vortrag auf der <strong>Linux</strong>.conf.au<br />

2013 rechnet Stone mit X11, Xfree86 und<br />

X.org ab und auch mit seiner eigenen<br />

Vergangenheit. Stone hatte im Jahr 2002<br />

damit begonnen, Xfree86 zu paketieren.<br />

2004 trat er der X.org Foundation bei und<br />

zeichnete <strong>für</strong> die erste modulare X.org-<br />

Release mitverantwortlich.<br />

Grob vereinfacht hält Stone das X Window<br />

System <strong>für</strong> unfähig, auf die modernen<br />

Hardware-Anforderungen zu reagieren,<br />

weil es aus zu vielen Komponenten<br />

bestehe, die miteinander interagieren.<br />

Das schaffe <strong>einen</strong> sinnlosen Kommunikations-Overhead,<br />

den Wayland beheben<br />

wolle. Die zahlreichen Gründe gegen X11<br />

listet Stone auch unter [15] auf. Doch<br />

<strong>einen</strong> X11-Nachfolger wolle er nicht entwickeln:<br />

In so einem Projekt würden alle<br />

mitreden, die sich mit X beschäftigen.<br />

Indem sie ihr Projekt Wayland nennen,<br />

kümmere sich niemand darum und die<br />

Entwickler könnten tun und lassen, was<br />

sie möchten.<br />

Nach einer Weile privater Entwicklung<br />

landete das Projekt Ende Oktober 2010<br />

unter den Fittichen von Freedesktop.<br />

org – mitsamt Webseite, Mailingliste und<br />

Git-Repository. Patches laufen weiterhin<br />

auch über die Mailingliste, Bugzilla<br />

fassten Canonicals Vorstoß wohl als eine<br />

Art Kriegserklärung auf. Kein Wunder:<br />

Nicht nur begründeten die Entwickler<br />

den Schritt mit falschen Einschätzungen<br />

über Waylands Fähigkeiten (wo<strong>für</strong> sie<br />

sich später entschuldigten), Mark Shuttleworth<br />

zog damit auch seine Ankündigung<br />

von 2010 zurück, den Unity-Desktop auf<br />

eine Wayland-Basis zu setzen.<br />

In seinem Blog [18] erklärt Mir-Architekt<br />

Thomas Voss, warum X.org und Wayland<br />

<strong>für</strong> Ubuntu nicht in Frage kämen. X sei<br />

schlicht zu kompliziert und mit Features<br />

überladen, Wayland fehle ein klar definiertes<br />

Treibermodell und ein rigoroser<br />

Entwicklungsprozess. Mir solle alle Bildschirmgrößen<br />

unterstützen und auch die<br />

Möglichkeit bieten, proprietäre Treiber<br />

einzubinden, erklärte Voss. Gerade Letzteres<br />

dürfte <strong>für</strong> eine Plattform, die sich an<br />

Desktop-Anwender richtet und auch als<br />

Spieleplattform wahrgenommen werden<br />

möchte, wichtig sein.<br />

Der Entwickler Christopher Halse Rogers<br />

wurde konkreter. Weston käme als<br />

Compositor nicht in Frage, da der Code<br />

zu wenig getestet sei. Wayland müsste<br />

Canonical patchen, um <strong>für</strong> ARM-Systeme<br />

eine Server-seitige Buffer Allocation zu<br />

erhalten. Auch der Input-Stack und der<br />

Umgang mit dem Windowmanager gefielen<br />

den Ubuntu-Entwicklern nicht, sie<br />

suchen hier eine Minimallösung.<br />

Das noch junge Projekt und in C++ geschriebene<br />

Projekt nutzt die <strong>für</strong> Ubuntu<br />

üblichen Wege der Kommunikation. Es<br />

ist auf Ubuntus Launchpad-Plattform genimmt<br />

Bug reports entgegen. Die Tools<br />

haben die Projektteilnehmer nicht selbst<br />

gewählt, Freedesktop.org gibt sie vor.<br />

Laut Ohloh arbeiten zurzeit 32 Entwickler<br />

an Wayland und 69 am Compositor<br />

Weston, wobei es sicherlich eine Schnittmenge<br />

zwischen beiden gibt.<br />

What the Fork<br />

Doch auch in dem recht jungen Projekt<br />

gab es bereits Konflikte, so etwa, als der<br />

Wayland-Entwickler Scott Moreau Weston<br />

und Wayland forkte. Er wolle lediglich<br />

mit Desktopeffekten experimentieren,<br />

gab Moreau zuerst an, sprach aber nach<br />

einigem Hin und Her doch von einem<br />

Fork. Die restlichen Wayland-Entwickler<br />

zeigten sich wenig begeistert von seinem<br />

Vorstoß, weil ein Fork von Wayland <strong>für</strong><br />

seine Pläne nicht nötig sei. Doch Moreau<br />

insistierte, bis Høgsberg ihn schließlich<br />

von der Mailingliste warf und aus dem<br />

IRC verbannte [16]. Die Arbeit an Norwood<br />

und Northfield – so die Namen seiner<br />

Forks – scheint Moreau bisher noch<br />

nicht aufgenommen zu haben [17].<br />

Wir kommen in Frieden<br />

Die zweite Überraschung <strong>für</strong> das Wayland-Projekt<br />

kam von Canonical: Der<br />

Ubuntu-Hersteller kündigte im April dieses<br />

Jahres überraschend <strong>einen</strong> eigenen<br />

Displayserver namens Mir (Abbildung 7)<br />

an. Das Wort steht im Russischen zwar<br />

<strong>für</strong> Frieden, doch die Wayland-Entwickler<br />

Lightdm Control Instance<br />

Switch Active<br />

Start/Stop<br />

Start/Stop<br />

Start/Stop<br />

Toolkit<br />

Unity Greeter<br />

System Compositor/Shell<br />

Mir<br />

Toolkit<br />

Unity Next<br />

Mir<br />

Toolkit<br />

App<br />

Toolkit<br />

Unity Next<br />

Abbildung 7: Canonical setzt <strong>für</strong> Ubuntu auf <strong>einen</strong> eigenen Displayserver, der den Namen Mir trägt.<br />

Mir


hostet, die auch den Code (Bazaar) und<br />

die Bugreports verwaltet. Die Kommunikation<br />

erfolgt über IRC und eine Mailingliste.<br />

In Ubuntu 13.10 kommt Mir in<br />

Form von Xmir, das mit X-Anwendungen<br />

umgehen kann, erstmals zum Einsatz.<br />

Ausblick<br />

Weder Wayland noch Mir gehören zu den<br />

bereits langfristig erfolgreichen Open-<br />

Source-Projekten, beide müssen ihre<br />

Nach haltigkeit noch beweisen. Doch vergleicht<br />

man sie mit früheren Projekten<br />

von X11 bis X.org, hat Wayland in einigen<br />

Bereichen mehr vorzuweisen.<br />

So arbeiten die Entwickler mit Freedesktop.org<br />

zusammen. Verschiedene Toolkits<br />

unterstützen Wayland bereits, zu ihnen<br />

gehören etwa Qt 5, GTK+, Clutter,<br />

SDL und EFL. Daneben sollen Kwin und<br />

Mutter künftig als Wayland Compositors<br />

zum Einsatz kommen. Auch mehrere<br />

Desktops (KDE, Gnome, Enlightenment)<br />

haben Support <strong>für</strong> Wayland angekündigt.<br />

In den letzten Jahren konnte Wayland<br />

also ein recht umfangreiches Ökosystem<br />

etablieren und ist deutlich besser in die<br />

<strong>Linux</strong>-Community integriert.<br />

Anders sieht es bei Mir aus, das bislang<br />

nur Ubuntu und Unity unterstützt und an<br />

dem zurzeit etwa ein Dutzend Canonical-<br />

Mitarbeiter arbeitet. Mir sieht wie ein<br />

Open-Source-Projekt kommerzieller Prägung<br />

aus. Zwar steht das Projekt unter<br />

der GPLv3, doch wer daran programmieren<br />

möchte, muss Canonical auch das<br />

Recht einräumen, den Code unter einer<br />

proprietären Lizenz zu verteilen [19],<br />

wobei der Entwickler die Rechte an seinem<br />

Code behält und ihn verändern und<br />

weiterverteilen darf. Das ist wohl vor allem<br />

den Plänen geschuldet, Ubuntu<br />

Touch auch in Umgebungen von Anbietern<br />

mit proprietärer Hardware unter unfreien<br />

Lizenzen zu etablieren.<br />

Canonicals Gratwanderung könnte sich in<br />

diesem Umfeld als Vorteil herausstellen,<br />

aber freie Entwickler lassen sich so eher<br />

schwer anlocken. Läuft Mir einigermaßen,<br />

werden die Canonical-Angestellten<br />

zudem Überzeugungsarbeit leisten müssen,<br />

damit auch die Toolkit-Entwickler<br />

auf den Zug aufspringen, erste Grabenkämpfe<br />

um Kwin gab es bereits. Auf der<br />

anderen Seite setzen nach wie vor viele<br />

<strong>Linux</strong>-Anwender – aber auch Entwickler<br />

– auf Ubuntu, weil es recht unfallarm<br />

läuft. Auch wenn die Wetten eher auf<br />

Wayland stehen, wird man abwarten<br />

müssen, wie sich beide Projekte in den<br />

nächsten Jahren schlagen. n<br />

Infos<br />

[1] Linus über X: [https:// www. cs. cmu. edu/​<br />

~awb/ linux. history. html]<br />

[2] X11-Geschichte:<br />

[https:// en. wikipedia. org/ wiki/ X11R4#​<br />

Origin_and_early_development]<br />

[3] Stallman zur MIT-Lizenz:<br />

[https:// www. gnu. org/ philosophy/ x. html]<br />

[4] X11 in <strong>Linux</strong>:<br />

[http:// www. linuxjournal. com/ article/ 70]<br />

[5] X386: [http:// www. informatica. co. cr/​<br />

linux/ research/ 1992/ 0702. htm]<br />

[6] Unix-Port von X386:<br />

[http:// xfree86. org/ pipermail/ forum/​<br />

2003‐March/ 002188. html]<br />

[7] X386 1.2E: [https:// groups. google. com/<br />

forum/ #!msg/ comp. unix. bsd/​<br />

UwoUB8VMzFE/ 1gSWCL4uXZEJ]<br />

[8] Ankündigung Xfree86 1.0:<br />

[http:// xfree86. org/ pipermail/ forum/​<br />

2003‐March/ 002188. html]<br />

[9] Packard verteidigt sich:<br />

[http:// xfree86. org/ pipermail/ forum/​<br />

2003‐March/ 000168. html]<br />

[10] Owen Taylor kritisiert Xfree86:<br />

[http:// xfree86. org/ pipermail/ forum/​<br />

2003‐March/ 002365. html]<br />

[11] Core-Team löst sich auf:<br />

[http:// slashdot. org/ comments. pl?​<br />

sid=91077& cid=7845466]<br />

[12] X.org wechselt zu Git: [http:// keithp. com/​<br />

blogs/ Repository_Formats_Matter/]<br />

[13] Høgsberg stellt Wayland vor: [http://​<br />

hoegsberg. blogspot. de/ 2008/ 11/ premature<br />

‐publicity‐is‐better‐than‐no. html]<br />

[14] Wayland-FAQ:<br />

[http:// wayland. freedesktop. org/ faq. html]<br />

[15] Stones Gründe gegen X: [http:// www.​<br />

phoronix. com/ scan. php? page=article&​<br />

item=x_wayland_situation& num=1]<br />

[16] Forkversuch von Wayland: [http:// www.​<br />

linux‐magazin. de/ NEWS/ Wayland‐Forker<br />

‐fliegt‐aus‐IRC‐und‐Mailingliste/]<br />

[17] Norwood und Northfield: [https:// github.​<br />

com/ soreau? tab=repositories]<br />

[18] Hintergrund zu Mir: [http:// samohtv.​<br />

wordpress. com/ 2013/ 03/ 04/ mir‐an<br />

‐outpost‐envisioned‐as‐a‐new‐home/]<br />

[19] Zur Lizenz von Mir: [http:// mjg59.​<br />

dreamwidth. org/ 25376. html]


Titelthema<br />

www.linux-magazin.de GCC 10/2013<br />

36<br />

Die GNU Compiler Collection<br />

Freier Übersetzer<br />

Was heute als GNU Compiler Collection in fast jeder <strong>Linux</strong>-Distribution steckt, ist das Ergebnis eines Forks. Das<br />

Alternativprojekt Egcs öffnete um die Jahrtausendwende die Entwicklung und siegte. Tim Schürmann<br />

© Li xuejun, 123RF.com<br />

1983 begründete Richard M. Stallman<br />

(Abbildung 1) das GNU-Projekt mit dem<br />

Ziel, ein komplett freies Betriebssystem<br />

zu schaffen. Um die Software da<strong>für</strong><br />

schrei ben zu können, suchte er nach einem<br />

freien Compiler und stieß an einer<br />

niederländischen Universität auf das Free<br />

University Compiler Kit. Dessen Autor<br />

weigerte sich jedoch mit einer schnippischen<br />

Antwort, ihm den Compiler <strong>für</strong> das<br />

GNU-Projekt zu überlassen. Das wiederum<br />

spornte Richard Stallman dazu an,<br />

<strong>einen</strong> eigenen, plattformübergreifenden<br />

Compiler zu entwickeln.<br />

Selbst ist der GNU-Mann<br />

Als Ausgangspunkt durfte er den Pascal-<br />

Compiler Pastel vom Lawrence Livermore<br />

Laboratory verwenden. Stallman schrieb<br />

<strong>für</strong> ihn zunächst ein C-Frontend und versuchte<br />

dann den kompletten Compiler<br />

auf andere Rechner zu portieren. Dabei<br />

musste er jedoch feststellen, dass der Pastel-Compiler<br />

äußerst verschwenderisch<br />

mit dem Speicher umging. Das wiederum<br />

erschwerte den Einsatz auf kl<strong>einen</strong> Rechnern<br />

– Mitte der 80er Jahre zählte noch<br />

jedes einzelne Kilobyte. Notgedrungen<br />

begann der GNU-Chef <strong>einen</strong> komplett<br />

neuen Compiler zu entwickeln, bei dem<br />

er immerhin sein C-Frontend weiterverwenden<br />

konnte.<br />

Bis die erste Betaversion das Licht der<br />

Welt erblickte, sollten allerdings noch<br />

drei Jahre vergehen. Zwischenzeitlich<br />

arbeitete Richard Stallman am Texteditor<br />

Emacs und gründete die Free Software<br />

Foundation (FSF). Sie sorgte <strong>für</strong> die finanziellen<br />

Mittel und stellt auch noch<br />

heute die Infrastruktur <strong>für</strong> die Compiler-<br />

Entwickler bereit.<br />

Am 22. März 1987 kündigte Richard Stallman<br />

schließlich s<strong>einen</strong> GNU C Compiler,<br />

kurz GCC, über die Projekt-Mailingliste<br />

an [1]. Der Compiler unterstützte den<br />

kompletten Ansi-C-Standard und führte<br />

bereits zahlreiche Optimierungen durch,<br />

beispielsweise erkannte er unerreichbare<br />

Anweisungen. Code erzeugte der GCC<br />

<strong>für</strong> Sun-3-Workstations mit 68020-Prozessor<br />

sowie Vax-Maschinen, ließ sich<br />

aber leicht auf andere Systeme mit 32-Bit-<br />

Prozessor portieren.<br />

Wer den GCC nicht über den FTP-Server<br />

herunterladen konnte, durfte ihn auch<br />

auf einem Magnetband anfordern – gegen<br />

eine Versandgebühr von 150 Dollar.<br />

Gleichzeitig bat Stallman alle Nutzer darum,<br />

Fehler zu suchen und zu melden.<br />

Die korrigierte Version 1.0 erschien rund<br />

<strong>einen</strong> Monat später. Rasch entstanden<br />

weitere Portierungen, die mitunter sogar<br />

schnellere und bessere Ergebnisse produzierten<br />

als die mit den jeweiligen Systemen<br />

gelieferten kommerziellen Compiler.<br />

Schon im ersten Jahr lernte GCC auch<br />

C++ übersetzen, Ende 1987 erschien bereits<br />

Version 1.16 [2].<br />

Besonders engagiert zeigte sich das Unternehmen<br />

Cygnus, das sein Geld mit<br />

kommerziellem Support <strong>für</strong> den GCC und<br />

den zugehörigen Tools verdiente. Cygnus<br />

betreute unter anderem den Debugger<br />

und die GNU Binutils. Unter dem Namen<br />

GNU Pro verkaufte die Firma sogar ein<br />

recht bekanntes Komplettpaket in einer<br />

Schachtel. Vor allem Cygnus-Mitbegründer<br />

Michael Tiemann trieb die Entwicklung<br />

des GCC maßgeblich voran [3]. Zusammen<br />

mit der FSF startete Cygnus 1991<br />

die Arbeit an der überholten GCC-Version<br />

2, die im Februar 1992 erschien.<br />

Rührige Eier<br />

Ab Mitte der 1990er Jahre verlangsamte<br />

sich das Veröffentlichungstempo zusehends.<br />

Stallman und die FSF wollten<br />

den Compiler vor allem stabiler machen,<br />

Neuerungen standen immer weniger im<br />

Fokus. Die eigentliche Weiterentwick-


lung fand deshalb weitgehend hinter<br />

verschlossenen Türen in einem kl<strong>einen</strong><br />

Entwicklerteam statt. Andere Nutzer<br />

durften lediglich Verbesserungen vorschlagen.<br />

Unter diesem Vorgehen litt vor<br />

allem der C++-Compiler, dessen Ausbau<br />

nur schleppend vorankam.<br />

Die unter anderem auch dank <strong>Linux</strong> extrem<br />

rasch gewachsene externe Programmierergemeinde<br />

wollte die Entwicklung<br />

jedoch beschleunigen und viele weitere<br />

Features einbringen. Die unterschiedlichen<br />

Sichtweisen gipfelten 1997 schließlich<br />

in einem heftigen Streit auf der GCC-<br />

Mailingliste.<br />

Irgendwann wurde es einigen frustrierten<br />

Entwicklern zu bunt: Unter der Führung<br />

von Cygnus schufen sie ihre eigene Variante<br />

des Compilers namens Egcs (ausgesprochen<br />

„Eggs“, Eier, [4]). Sie sollte<br />

vor allem auch die bis dahin aus der Not<br />

entstandenen kleineren GCC-Forks wieder<br />

zusammenführen. Die erste Version<br />

von Egcs basierte auf GCC 2.8, erschien<br />

im Dezember 1997 und enthielt vor allem<br />

zahlreiche Optimierungen.<br />

Das Entwicklungsmodell des Egcs mit<br />

öffentlichen Mailinglisten, Bugtracker<br />

und frei zugänglichem Code-Repository<br />

zog zahlreiche Programmierer an, was<br />

wiederum die Entwicklung beschleunigte.<br />

Ab 1998 übernahm ein unabhängiges<br />

Steering Committee die Aufsicht<br />

über das Egcs-Projekt [5]. Es sollte nicht<br />

nur wichtige Richtungsentscheidungen<br />

Abbildung 1: Richard Stallman brauchte <strong>für</strong> sein GNU-Projekt dringend <strong>einen</strong> Compiler.<br />

treffen, sondern vor allem verhindern,<br />

dass einzelne Personen oder Organisationen<br />

die Kontrolle über das komplette<br />

Projekt an sich reißen. Mitglieder des<br />

Komitees waren neben GCC-Entwicklern<br />

auch Nutzer des Compilers, zum Beispiel<br />

die Kernelentwickler, die ein großes Interesse<br />

an der Fortführung des Projekts<br />

hatten [5].<br />

Der Coup<br />

Während der neue Egcs rasch an Zuspruch<br />

gewann, verlor der alte GCC zusehends<br />

Nutzer und Mithelfer, auch <strong>Linux</strong>-<br />

Distributionen begannen langsam auf<br />

Egcs umzuschwenken. Linus Torvalds<br />

bevorzugte allerdings den alten GCC,<br />

seine offiziellen Kernel waren weiterhin<br />

auf ihn zugeschnitten.<br />

Diese Unterstützung half Richard Stallmans<br />

Compiler jedoch nicht mehr: Anfang<br />

1999 zog die FSF die Notbremse,<br />

stellte die Entwicklung des GCC ein und<br />

machte den Konkurrenten Egcs zum offiziellen<br />

GNU-Compiler. Gleichzeitig erhielt<br />

der Egcs den neuen Namen GNU<br />

Compiler Collection, der absichtlich<br />

wieder zum bekannten Akronym GCC<br />

führt. Aus der letzten Version des Egcs<br />

GCC 10/2013<br />

Titelthema<br />

www.linux-magazin.de<br />

37


Titelthema<br />

www.linux-magazin.de GCC 10/2013<br />

38<br />

Abbildung 2: In der Version 2.95 der Compiler Collection fanden die Egcs- und<br />

GCC-Fraktionen wieder zusammen.<br />

Abbildung 3: Der GNU-Compiler unterstützt seit Version 4.8 vom März 2013 den<br />

neuen Sprachstandard C++11.<br />

entwickelte sich schließlich die beliebte<br />

Versionsreihe 2.95.x.<br />

Die etablierte Kontrolle und Steuerung<br />

durch das Steering Committee blieb bis<br />

heute erhalten. Diesem gehören derzeit<br />

unter anderem der Österreicher Gerald<br />

Pfeifer von Suse und der Deutsche Marc<br />

Lehmann von der Nethype GmbH an.<br />

Richard Stallman zählt ebenfalls zu den<br />

Mitgliedern des Steering Committee [5],<br />

in das technische Tagesgeschäft ist er<br />

jedoch nicht involviert.<br />

Krise überstanden<br />

Die Abspaltung des Egcs war die einzige<br />

große Krise in der Geschichte des Compilers,<br />

wie der langjährige GCC-Entwickler<br />

Gerald Pfeifer bestätigt: „GCC 2.95 wurde<br />

vor 14 Jahren releast und hat formal die<br />

Egcs-Abspaltung beendet. Das ist in dieser<br />

Branche doch schon eine recht lange<br />

Zeit, und Konflikte auch nur ähnlicher<br />

Größenordnung hat es seit damals nicht<br />

gegeben. Natürlich sind GCC-Entwickler,<br />

wie andere auch, manchmal stark von der<br />

Richtigkeit ihres Ansatzes oder Falschheit<br />

eines anderen Ansatzes überzeugt und<br />

argumentieren auch so. Grobheiten oder<br />

Flames wie beim <strong>Linux</strong>-Kernel sind aber<br />

kaum anzutreffen.“<br />

Während 1999 der GCC neu durchstartete,<br />

fusionierte Cygnus mit Red Hat. Der<br />

Firmenname verschwand jedoch nicht<br />

ganz: 1995 begann Cygnus die GNU-<br />

Toolchain unter dem Namen Cygwin auf<br />

Windows zu portieren. Unter diesem Namen<br />

firmiert das mittlerweile maßgeblich<br />

von Red Hat betreute Projekt noch immer<br />

[6]. Von der Version 2.95.2 bis zur nächs-<br />

ten großen GCC-Version 3.0 dauerte es<br />

ganze zwei Jahre.<br />

Red Hat konnte die lange Entwicklungszeit<br />

offenbar nicht abwarten und veröffentlichte<br />

2000 eigenmächtig die Version<br />

2.96. Sie basierte auf einem Entwickler-<br />

Snapshot der Version 2.95, dem Red Hat<br />

einige Patches verpasste. Die von diesem<br />

Compiler gelieferten Ergebnisse waren<br />

teilweise nicht mit den Kompilaten des<br />

offiziellen GCC binärkompatibel. Zum<br />

Glück verschwand die Version 2.96 so<br />

schnell, wie sie gekommen war.<br />

Feste Termine<br />

Die lange Entwicklungszeit bis zur Version<br />

3.0 animierte das GCC-Projekt dazu,<br />

den Arbeitsablauf zu überdenken und<br />

vor allem feste, vorhersehbare Release-<br />

Termine vorzugeben [7]. Aktuell verläuft<br />

die Entwicklung in drei Phasen: In der<br />

ersten dürfen die Entwickler am Compilerpaket<br />

beliebige Änderungen vornehmen<br />

beziehungsweise neue Features<br />

einreichen. Da<strong>für</strong> haben sie mindestens<br />

vier Monate Zeit. Größere Modifikationen<br />

am Compiler müssen die Entwickler<br />

zunächst in einem eigenen Entwicklungszweig<br />

vornehmen.<br />

In der zweiten Phase, die mindestens zwei<br />

Monate dauert, dürfen die Entwickler nur<br />

noch Fehler beheben und Änderungen<br />

einreichen, die keine anderen Teile des<br />

Compilers beeinflussen. Den Abschluss<br />

bildet eine Stabilisierungsphase, in der<br />

das Projekt nur noch Regressionen behebt<br />

und die Dokumentation verbessert.<br />

„Praktisch gesehen dauern diese Phasen<br />

zurzeit doch jeweils etwas länger, sodass<br />

wir etwa bei einem Jahresrhythmus stehen“,<br />

so Gerald Pfeifer. Die Kommunikation<br />

der GCC-Entwickler untereinander<br />

erfolgt nach wie vor primär über die zahlreichen<br />

Mailinglisten ([8], Abbildung 2)<br />

sowie <strong>einen</strong> IRC-Kanal. Darüber hinaus<br />

treffen sich die Entwickler einmal im Jahr<br />

auf der Konferenz Cauldron, die 2012 den<br />

GCC Summit beerbte.<br />

Fehler sammelt das Projekt in einem<br />

Bugzilla-Bugtracker [9], der vor einigen<br />

Jahren den Konkurrenten Gnats abgelöst<br />

hat. <strong>Alle</strong>in 2013 haben bisher rund 300<br />

Personen zur Entwicklung der Compiler<br />

Collection beigetragen. Der GCC-Webauftritt<br />

führt Hunderte weitere Mitwirkende<br />

auf, die <strong>einen</strong> Beitrag geleistet haben,<br />

von einer kl<strong>einen</strong> Korrektur bis zur Portierung<br />

auf eine neue Architektur [10].<br />

Standhaft<br />

In der Vergangenheit musste die GNU<br />

Compiler Collection immer wieder Kritik<br />

von ihren Anwendern einstecken. Die<br />

kommt immer dann, wenn die GCC-<br />

Entwickler Altlasten entfernen. Das<br />

sind meist Sprachelemente, die aus den<br />

Standards herausgefallen sind, sich als<br />

überflüssig erwiesen haben oder die der<br />

GNU Compiler (bewusst) anders als im<br />

Standard beschrieben interpretiert hat.<br />

Letzteres traf in der Vergangenheit vor allem<br />

C++-Programmierer [11]. Aber auch<br />

Kommandozeilen-Parameter entfallen<br />

häufig, die Optimierungs-Parameter <strong>für</strong><br />

alte Pentium-Prozessoren sind nur ein<br />

Beispiel [12].<br />

Diese Aufräumaktionen können immer<br />

wieder das Übersetzen älterer Software


erschweren oder gar blockieren. Die wenigsten<br />

Probleme bereitet Quellcode, der<br />

strikt den offiziellen Sprachstandards<br />

folgt. Dieser lässt sich meist auch noch<br />

Jahre später problemlos übersetzen. Das<br />

bestätigt Gerald Pfeifer: „Standardkonformer<br />

Code kompiliert erfahrungsgemäß<br />

über viele Versionen von GCC hinweg,<br />

wobei es bei C++ und Fortran eher zu<br />

Problemchen kommt als bei C. Der Großteil<br />

der Probleme, die auftraten, kann relativ<br />

einfach behoben werden, durch die<br />

Ergänzung eines fehlenden »#include« im<br />

Code oder eines »using« bei C++. Wie<br />

wir bei größeren Paketmengen sehen, ist<br />

GCC an sich sehr gut kompatibel, besser<br />

als andere Compiler, die stattdessen testweise<br />

verwendet wurden.“<br />

Auch die Kritik an der schleppenden Unterstützung<br />

von neuen Sprachstandards<br />

darf man differenzierter betrachten.<br />

Insbesondere gilt es, zwischen den verschiedenen<br />

Frontends zu unterscheiden:<br />

Während GCC den C++11-Standard schon<br />

recht früh in weiten Teilen beherrschte,<br />

stagniert die Java-Entwicklung zugunsten<br />

des Open JDK.<br />

Ausblick<br />

Mit LLVM kratzt ein recht leistungsfähiger<br />

Konkurrent zunehmend an den Marktanteilen<br />

des GCC. Immerhin, ein wenig<br />

die Nase vorn hat der GNU-Compiler<br />

noch: GCC unterstützt seit dem 22. März<br />

2013 mit der Version 4.8 den kompletten<br />

C++11-Standard (Abbildung 3). Clang/​<br />

LLVM hat dieses Ziel mit der Release 3.3<br />

erst drei Monate später erreicht.<br />

In der letzten Zeit fordern Entwickler<br />

vermehrt, GCC zu modularisieren [13].<br />

Ein weiteres Problem ist der mittlerweile<br />

auf über 250 MByte angewachsene Quellcode,<br />

der viele neue Entwickler davon<br />

abschreckt, in ihn einzutauchen. Die<br />

Übersicht soll eine Reimplementierung<br />

in C++ lösen, welche die Entwickler mit<br />

der Version 4.8 teilweise schon in Angriff<br />

genommen haben [14].<br />

Trotz dieser Probleme bleibt der GNU<br />

Compiler auch 26 Jahre nach seiner ersten<br />

Release extrem beliebt. Er kommt in<br />

unterschiedlichen Firmen zum Einsatz,<br />

und es gibt kaum eine <strong>Linux</strong>-Distribution,<br />

die ihn nicht standardmäßig ausliefert.<br />

Für fast jedes Betriebssystem existiert<br />

eine Portierung. Mit ein und demselben<br />

Compiler können Programmierer ihre<br />

Software auf ARM-Rechnern, x86-Systemen<br />

oder sogar Mainframes übersetzen.<br />

Die Zukunftsaussichten eines Compilers<br />

hängen jedoch maßgeblich davon ab, wie<br />

schnell er neue Sprachstandards unterstützt<br />

und wie effizient die ausgespuckten<br />

Programme laufen.<br />

Dank der zahlreichen GCC-Entwickler<br />

und vieler Ideen dürften die nächsten 26<br />

Jahre in jedem Fall äußerst interessant<br />

werden. Dem stimmt auch Gerald Pfeifer<br />

zu: „Das Spannende an GCC ist doch,<br />

dass sich laufend etwas tut an der <strong>einen</strong><br />

oder anderen Front.“ (mhu) n<br />

Infos<br />

[1] Vorstellung der ersten GCC-Version vom<br />

23.03.1987: [https:// groups. google. com/<br />

forum/ #!msg/ mod. compilers/​<br />

ynAVuwR7dPw/ -IirjtgwPxsJ]<br />

[2] GCC-Releases:<br />

[http:// gcc. gnu. org/ releases. html]<br />

[3] Michael Tiemann, „Future of Cygnus<br />

Solutions – An Entrepreneur’s Account“,<br />

in „Open Sources: Voices from the Open<br />

Source Revolution“: [http:// oreilly. com/​<br />

catalog/ opensources/ book/ tiemans. html]<br />

[4] Ankündigung des Egcs-Projekts: [http://​<br />

gcc. gnu. org/ news/ announcement. html]<br />

[5] GCC Steering Committee:<br />

[http:// gcc. gnu. org/ steering. html]<br />

[6] Cygwin: [http:// www. cygwin. com]<br />

[7] GCC Development Plan:<br />

[http:// gcc. gnu. org/ develop. html]<br />

[8] GCC-Mailinglisten:<br />

[http:// gcc. gnu. org/ lists. html]<br />

[9] GCC-Bugtracker:<br />

[http:// gcc. gnu. org/ bugzilla/]<br />

[10] GCC-Contributors: [http:// gcc. gnu. org/​<br />

onlinedocs/ gcc/ Contributors. html]<br />

[11] René Rebe, „Testflug, GCC 4.1: Features<br />

und Benchmark“: <strong>Linux</strong>-<strong>Magazin</strong> 06/​06,<br />

S. 126; [http:// www. linux‐magazin. de/​<br />

Ausgaben/ 2006/ 06/ Testflug]<br />

[12] René Rebe, „Ausgedehnte Quellenstudien:<br />

GNU Compiler Collection 4.3“:<br />

<strong>Linux</strong>-<strong>Magazin</strong> 06/​08, S. 116; [http:// www.​<br />

linux‐magazin. de/ Ausgaben/ 2008/ 06/​<br />

Ausgedehnte‐Quellenstudien]<br />

[13] Basile Starynkevitch, „GCC 5 & modularity“:<br />

[http:// gcc. gnu. org/ ml/ gcc/ 2012‐03/​<br />

msg00263. html]<br />

[14] Tim Schürmann, „GCC 4.8.0 erschienen“:<br />

[http:// www. linux‐magazin. de/ NEWS/​<br />

GCC‐4. 8. 0‐erschienen]


Titelthema<br />

www.linux-magazin.de Xen und KVM 10/2013<br />

40<br />

Xen und KVM, die beiden wichtigsten Hypervisoren unter <strong>Linux</strong><br />

Unter einem Dach<br />

Die beiden Platzhirsche in Sachen Virtualisierung auf <strong>Linux</strong> sind zweifellos KVM und Xen. Beide Projekte haben<br />

eine bewegte Geschichte hinter sich – am Anfang lag Xen vorne, dann holte KVM auf, doch entgegen allen Erwartungen<br />

ist auch Xen noch nicht tot. Unter der Libvirt sind nun beide vereint. Martin Loschwitz<br />

© Dmitriy Shironosov, 123RF.com<br />

„Gefahren warten nur auf jene, die nicht<br />

auf das Leben reagieren“, sagte einst Michael<br />

Gorbatschow zu Erich Honecker,<br />

später medial begradigt und berühmt<br />

geworden als „Wer zu spät kommt, den<br />

bestraft das Leben“. Auch im Bereich der<br />

Virtualisierung passt das historische Zitat.<br />

Gerade das älteste <strong>Linux</strong>-Virtualisierungsprojekt<br />

kann ein Lied davon singen,<br />

was freien Softwareprojekten droht, die<br />

nicht mit der Zeit gehen: Weil es lange<br />

Zeit unmöglich war, Xen mit einem neueren<br />

Kernel als 2.6.32 zu nutzen, konnte<br />

KVM zum dominierenden Hypervisor <strong>für</strong><br />

<strong>Linux</strong> werden, Xen wäre beinahe in der<br />

Versenkung verschwunden.<br />

Anfänge der Virtualisierung<br />

Klar, Virtualisierung fängt nicht erst mit<br />

KVM [1] und Xen [2] an: Seit Jahrzehnten<br />

„partitioniert“ IBM die Ressourcen<br />

seiner Mainframes. Aber das war auch<br />

Hardware im teuren Unternehmenssegment,<br />

oft mit Preisen im sechsstelligen<br />

Dollar-Bereich. Damit das heutige<br />

Szenario der massenhaft verbreiteten<br />

Virtualisierung entstehen konnte, war<br />

eine andere Entwicklung innerhalb der<br />

IT von essenzieller Bedeutung: Computer<br />

wurden in den letzten Jahren immer<br />

leistungsfähiger und billiger.<br />

Noch vor 15 Jahren war es kein Problem,<br />

<strong>einen</strong> damals aktuellen Rechner auszulasten.<br />

Leistungsreserven waren kaum<br />

vorhanden. Gab es bei neuer Hardware<br />

doch mal welche, sorgten die Entwickler<br />

der Anwendungen üblicherweise da<strong>für</strong>,<br />

dass die Reserven schneller weg waren,<br />

als Hardwarehersteller neue Technik liefern<br />

konnten.<br />

Heute? Leistung satt!<br />

Heute lassen sich selbst Entry-Level-<br />

Server von der Stange mit gängigen Applikationen<br />

wie einfachen Webservern<br />

kaum auslasten. Der Leerlauf wurde Pro-<br />

gramm, Admins mussten ihn billigend<br />

in Kauf nehmen. Doch ungenutzte oder<br />

nicht ausgelastete Hardware ist totes Kapital,<br />

ein Dorn im Auge der Controller.<br />

Da war es kein Geniestreich, mehrere<br />

Systeme auf der gleichen Hardware laufen<br />

zu lassen, um die vorhandenen Ressourcen<br />

optimal auszunutzen.<br />

Das erste Unternehmen, das sich mit<br />

einer entsprechenden Lösung auf den<br />

Markt wagte, war VMware: 1999 stellten<br />

die Amerikaner eine zunächst auf Desktops<br />

ausgerichtete Virtualisierungslösung<br />

vor, die mit Servern noch gar nichts am<br />

Hut hatte, sondern es vielmehr erlaubte,<br />

Desktopsysteme unter Windows zu virtualisieren.<br />

Ring frei!<br />

Nur wenig später begann der große <strong>Linux</strong>-<br />

Hype. IBM schaltete Fernsehspots <strong>für</strong> das<br />

freie System, auf Servern gewann <strong>Linux</strong><br />

zunehmend an Boden. Und schließlich<br />

brachte wiederum VMware im Jahre 2001<br />

den ersten GSX-Server auf den Markt, ein<br />

speziell auf Server ausgerichtetes Virtualisierungssystem.<br />

Von da an entwickelte sich Virtualisierung<br />

von einer belächelten Nische zu dem,<br />

was man damals <strong>für</strong> die Zukunft im Servermarkt<br />

hielt. Wie sich in der Zwischenzeit<br />

herausstellte, war diese Annahme<br />

nicht ganz falsch, nur in der FOSS-Welt<br />

herrschte da lange Zeit tote Hose. <strong>Alle</strong>s,<br />

was zwischenzeitlich von VMware kam,<br />

war proprietäre Closed-Source-Software.<br />

2003: Xensource<br />

Die ersten zaghaften Entwicklungen hin<br />

zu einem quelloffenen Hypervisor kamen<br />

unter <strong>Linux</strong> erst 2003 auf: Vor ziemlich


Xen und KVM 10/2013<br />

Titelthema<br />

Abbildung 1: Auch KVM kann die in aktuellen CPUs verbauten, Hardware-spezifischen<br />

VT-D- oder SVM-Technologien im Hostkernel ansprechen.<br />

genau zehn Jahren veröffentlichte die<br />

Firma Xensource die erste Version von<br />

Xen, eines neuartigen Hypervisors <strong>für</strong><br />

<strong>Linux</strong> unter der GPL. Keir Fraser, Steven<br />

Hand und Ian Pratt waren die Entwickler,<br />

die im Computerlabor der Universität von<br />

Cambridge (England) den Grundstein <strong>für</strong><br />

eine freie Virtualisierungslösung gelegt<br />

haben.<br />

Die Funktionalität der ersten Xen-Versionen<br />

war jedoch noch sehr eingeschränkt<br />

und konnte kaum mit VMware mithalten.<br />

Außerdem richtete sich Xen zu diesem<br />

Zeitpunkt noch an Desktop-User, nicht<br />

an Server-Admins. Dabei war der technische<br />

Unterbau der Software durchaus ordentlich:<br />

Bereits in den ersten öffentlich<br />

zugänglichen Versionen setzte Xen auf<br />

Paravirtualisierung, also auf das Prinzip,<br />

bei dem das virtualisierte System weiß,<br />

dass es virtualisiert ist, und über entsprechende<br />

Treiber unmittelbar auf die Hardware<br />

des Hosts zurückgreift.<br />

Im Gegensatz zur Vollvirtualisierung<br />

bringt das den Vorteil, dass das Betriebssystem<br />

auf dem Host – in Xen-Sprech die<br />

»dom0« – nicht die komplette Kommunikation<br />

zwischen dem Gast-OS und der<br />

Hardware des Host-Betriebssystems übersetzen<br />

muss, was <strong>einen</strong> Performancevorteil<br />

ausmachen kann.<br />

Abbildung 2: Anders als Xen setzte KVM nie das aufwändige Patchen des Kernels<br />

auf dem Host voraus, sondern kam in Form eines ladbaren Kernelmoduls daher.<br />

Einsatz bereit war (Abbildung 1). Eine<br />

Zeit lang hielten die Xen-Entwickler ihre<br />

Patches <strong>für</strong> <strong>Linux</strong> aktuell und es gab sogar<br />

Bestrebungen, Xen fix in den Kernel<br />

zu integrieren.<br />

Doch dann brach sich ein Disput Bahn,<br />

der die Szene in Atem hielt: Die Kernelversion<br />

2.6.23 erschien im September<br />

2006 und brachte zum ersten Mal ein<br />

natives Interface <strong>für</strong> paravirtualisierte<br />

Anwendungen mit, die so genannten Paravirtualized<br />

Ops (»paravirt‐ops«, [3]).<br />

Die unterschieden sich jedoch deutlich<br />

von der Art und Weise, wie Xen bis dahin<br />

Virtualisierung umgesetzt hatte. Ein<br />

beachtlicher Umbau stand also ins Haus,<br />

und der ließ lange auf sich warten.<br />

Auf Jahre hinaus hatten Admins nur die<br />

Wahl zwischen einem veralteten Kernel<br />

(2.6.18) oder aktueller Hardware. Dieser<br />

Zeitraum hinterließ bei vielen Admins,<br />

aber auch im Xen-Projekt selbst, sehr unangenehme<br />

Erinnerungen und bewegte<br />

nicht wenige Experten zur Suche nach<br />

Alternativen.<br />

Auftritt KVM<br />

So blieb Xen nicht lange allein. Im Mai<br />

2005 hatte der Israeli Avi Kivity die Firma<br />

Qumranet gegründet und entwickelte still<br />

und leise <strong>einen</strong> neuen Hypervisor <strong>für</strong><br />

<strong>Linux</strong>. Anders als die Xen-Entwickler tat<br />

er das in enger Kooperation mit den Kernelentwicklern,<br />

2006 gab er seine Patches<br />

beispielsweise über die Kernel-Mailingliste<br />

weiter [4] und achtete stets darauf,<br />

den Code <strong>für</strong> die Integration in <strong>Linux</strong><br />

vorzubereiten.<br />

Kivitys Mühen fanden ihre Belohnung<br />

darin, dass Linus Torvalds KVM offiziell<br />

in den Kernel 2.6.20 aufnahm, der<br />

Anfang 2007 erschien. 2008 krönte sich<br />

Kivity selbst, indem er und seine Partner<br />

www.linux-magazin.de<br />

41<br />

Gemischt-, Voll- oder<br />

Paravirtualisierung<br />

Vollvirtualisierung baut tatsächlich <strong>einen</strong><br />

kompletten PC nach. Die Mischform aus<br />

Para- und Vollvirtualisierung ist heute<br />

Standard: Man emuliert <strong>einen</strong> kompletten<br />

PC, gibt diesem aber über spezielle,<br />

paravirtualisierte Treiber wiederum Zugriff<br />

auf die Hardware des Hosts.<br />

Ende 2005 erschien Xen in der wegweisenden<br />

Version 3.0, die wichtige Neuerungen<br />

wie die Unterstützung <strong>für</strong> die<br />

Virtualisierungssysteme der Hersteller<br />

Intel (VT-D) und AMD (SVM) mitbrachte<br />

und somit endlich <strong>für</strong> den Enterprise-<br />

Abbildung 3: Die Libvirt hat in den vergangenen Jahren stark dazu beigetragen, Virtualisierung auf <strong>Linux</strong><br />

marktreif zu machen. Die Konfiguration landet dabei in XML-Dateien.


Titelthema<br />

www.linux-magazin.de Xen und KVM 10/2013<br />

42<br />

Abbildung 4: Red Hats Virt-Manager gibt dem Anwender ein GUI, das sich<br />

nicht hinter proprietären Alternativen zu verstecken braucht und neben<br />

Xen und KVM auch die <strong>Linux</strong>-Container administrieren kann.<br />

Qumranet an die roten Hüte verkauften.<br />

Red Hat sah in Qumranet ein Unternehmen,<br />

das gut zu den frisch verabschiedeten<br />

Virtualisierungsplänen aus Raleigh<br />

passte [5].<br />

Der Schritt überraschte dennoch wenig,<br />

denn KVM war zu diesem Zeitpunkt bereits<br />

auf einem Siegeszug, der bis heute<br />

anhält: Zum ersten Mal in der <strong>Linux</strong>-Geschichte<br />

ließ sich mit dem Vanilla-Kernel<br />

Virtualisierung betreiben. Ein externes<br />

Patch wie bei Xen war nicht länger nötig,<br />

sodass die Wartungshürden <strong>für</strong> KVM viel<br />

niedriger waren als <strong>für</strong> Xen.<br />

Obendrein war es verhältnismäßig leicht,<br />

KVM auf den aktuellen Stand der Technik<br />

zu bringen: Was bei Xen stets das<br />

Neukompilieren des Kernels mit entsprechenden<br />

Reboots erforderte, ließ sich mit<br />

KVM durch das Entfernen des aktuellen<br />

Kernelmoduls aus dem Kernel und dem<br />

Laden des zuvor gebauten, neuen Moduls<br />

erreichen (Abbildung 2).<br />

Heute gehört KVM zum Inventar jeder<br />

Distribution. Das Fedora-Projekt bietet<br />

auf seiner Website sogar paravirtualisierte<br />

Treiber <strong>für</strong> die Netzwerk- und<br />

Storage-Anbindung [6] an, mit denen die<br />

VM auch bei vollvirtualisierten Systemen<br />

mehr Performance aus dem System kitzelt<br />

als mit den Standardtreibern.<br />

Citrix steigt ein<br />

Das starke Engagement von Red Hat <strong>für</strong><br />

KVM sorgte auch da<strong>für</strong>, dass Xen in der<br />

Virtualisierungswelt eine immer klei-<br />

ner werdende Rolle<br />

spielte. Doch wer die<br />

Virtualisierungslösung<br />

bereits <strong>für</strong> tot gehalten<br />

hatte, wurde in den<br />

folgenden Jahren eines<br />

Besseren belehrt.<br />

Denn auch Xensource<br />

fand 2007 <strong>einen</strong> neuen<br />

Besitzer: Citrix.<br />

Die Firma, die sich in<br />

der IT vor allem durch<br />

proprietäre Terminalserver<br />

und Virtual-<br />

Desktop-Infrastruktur-<br />

Anwendungen (VDI)<br />

<strong>einen</strong> Namen gemacht<br />

hat, schlug zu, erwarb<br />

den Hersteller von Xen<br />

und verfolgte fortan<br />

mit Xen Server (siehe den Artikel in der<br />

Sysadmin-Rubrik) als Virtualisierungsprodukt<br />

<strong>für</strong> Server und dem Xen Desktop<br />

eine ganz eigene Agenda.<br />

Dass es dennoch so lange dauerte, bis<br />

Xen <strong>einen</strong> weiteren Schritt in seiner Entwicklung<br />

hinlegte, lag auch an Citrix, das<br />

eigene Prioritäten vor den technischen<br />

Fortschritt setzte. Erst in den letzten<br />

Jahren nahm die Aktivität rund um Xen<br />

wieder zu: Die Version 4.0, die im April<br />

2010 erschien, bot erstmals volle Unterstützung<br />

<strong>für</strong> die Paravirtualization Ops<br />

des <strong>Linux</strong>-Kernels sowohl <strong>für</strong> Dom-0- wie<br />

auch <strong>für</strong> Dom-U-Systeme. So lassen sich<br />

endlich auch aktuelle Kernel mit Xen<br />

ohne Probleme betreiben. 2011 schaffte<br />

es Xen in den Mainline-Kernel.<br />

Die Entwicklung gewinnt zunehmend an<br />

Fahrt, bei Redaktionsschluss war die aktuelle<br />

Xen-Version 4.3 veröffentlicht und<br />

die Planungen <strong>für</strong> Xen 4.4 hatten begonnen.<br />

Im April 2013 übergab Citrix schließlich<br />

die Entwicklung von Xen selbst an<br />

die <strong>Linux</strong> Foundation, die damit nun als<br />

offizieller Pate des Projekts agiert. Mit<br />

der Version 6.2 ihres Xen Servers gaben<br />

die Amerikaner schließlich das komplette<br />

Managementprodukt als Open-Source-<br />

Software frei.<br />

Red Hats Libvirt<br />

Von vielem, was Xen und KVM unter<br />

der Haube machen, bekommen Admins<br />

heute gar nichts mehr mit – und da mag<br />

manch geplagter Früheinsteiger ausrufen:<br />

„Gott sei Dank!“ Nach sieben Jahren Entwicklung<br />

gab Maintainer Daniel Berrange<br />

am 2. November 2012 den finalen Status<br />

der Libvirt-Version 1.0.0 [7] bekannt [8],<br />

die sich schon länger als einheitliches<br />

Frontend <strong>für</strong> die Verwaltung von Hypervisoren<br />

und Cloudrechnern (Hosts und<br />

Gäste) anbot (Abbildung 3).<br />

Vor nicht allzu langer Zeit war das noch<br />

ein großes Problem gewesen: Gerade die<br />

Steuerung virtueller Gäste wurde bei KVM<br />

und Xen praktisch ohne jede Gemeinsamkeit<br />

implementiert. Beide Systeme<br />

nutzten grundlegend andere Befehle. Die<br />

Libvirt abstrahiert nun die Funktionen<br />

<strong>für</strong> die Hypervisoren und stellt sie über<br />

eine Administrationsschnittstelle zur Verfügung<br />

– wahlweise als API, als Shell<br />

in Form von Virsh [9] oder im Qt- oder<br />

GTK-GUI des Virt-Managers (Abbildung<br />

4, [10]).<br />

Der Bedarf <strong>für</strong> eine einheitliche Benutzeroberfläche<br />

war groß, das Projekt wuchs<br />

schnell, wie die Animation der ersten<br />

sieben Jahre zeigt [11]. Das dürfte maßgeblich<br />

zum Erfolg der Virtualisierung<br />

auf <strong>Linux</strong> beigetragen haben. Heute greifen<br />

auch Cloudmanager wie Open Stack<br />

(oder auch Xen Server) auf die Libvirt zu<br />

und abstrahieren selbst diese Zwischenschicht<br />

<strong>für</strong> den Admin. (kki) n<br />

Infos<br />

[1] Xen: [http:// www. xen. org]<br />

[2] KVM: [http:// www. linux‐kvm. org]<br />

[3] Paravirtual Ops im Kernel: [http:// wiki.​<br />

xenproject. org/ wiki/ XenParavirtOps]<br />

[4] Avi Kivitys Kernelpatches:<br />

[http:// thread. gmane. org/ gmane. linux.​<br />

kernel/ 458485/ focus=458485]<br />

[5] Andrej Radonic, „Aufholjagd“:<br />

<strong>Linux</strong>-<strong>Magazin</strong> 04/​13, S. 68<br />

[6] Paravirtualisierte KVM-Treiber:<br />

[http:// www. linux‐kvm. org/ page/​<br />

WindowsGuestDrivers/ Download_Drivers]<br />

[7] Libvirt: [http:// www. libvirt. org/]<br />

[8] Libvirt 1.0: [https:// www. berrange. com/​<br />

posts/ 2012/ 11/ 02/ announce‐libvirt‐1‐0‐0‐r<br />

elease‐and‐7th‐birthday/]<br />

[9] Tim Schürmann, „Herr im Maschinenraum“:<br />

<strong>Linux</strong>-<strong>Magazin</strong> 12/​11, S.40<br />

[10] Markus Feilner „Wirts-Haus“: <strong>Linux</strong>-User<br />

04/​12, S. 26<br />

[11] Libvirt-Entwicklung im Video:<br />

[http:// www. youtube. com/ watch?​<br />

v=TKynN8TwC0M]


Titelthema<br />

www.linux-magazin.de Open VPN und IPsec 10/2013<br />

44<br />

VPN-Lösungen <strong>für</strong> <strong>Linux</strong><br />

Parallel entwickelt<br />

Dass zwei Protokolle, die letztlich zum gleichen Ziel führen, nicht zwingend in Feindschaft zueinander stehen,<br />

beweisen Open VPN und IPsec seit Jahren. Obwohl es sich um konkurrierende VPN-Lösungen handelt, haben<br />

beide ihre Daseinsberechtigung und kommen gut miteinander zurecht. Martin Loschwitz<br />

© Kenneth Keifer, 123RF.com<br />

Zwischen „das Rad nicht neu erfinden“<br />

und „es sollte immer Alternativen geben“<br />

klafft bisweilen eine große Lücke. Immer<br />

wieder machen sich Projekte mit sehr<br />

ähnlichen Zielsetzungen gegenseitig Konkurrenz.<br />

Missverständnisse, Meinungsverschiedenheiten<br />

und Streit um Details<br />

lösen Forks aus, die manchmal nur der<br />

Eitelkeit oder Verbohrtheit einzelner Akteure<br />

geschuldet sind.<br />

Virtuell, privat, friedfertig<br />

Andrerseits gibt es Projekte mit sehr<br />

ähnlichem Aufgabengebiet, die jahrelang<br />

überaus friedlich nebeneinander existieren.<br />

Im Bereich der virtuellen privaten<br />

Netzwerke trifft das voll und ganz auf<br />

die beiden beliebtesten Vertreter Open<br />

VPN [1] und die <strong>Linux</strong>-Implementierung<br />

von IPsec [2] zu. Zwar sind die beiden<br />

Projekte intern komplett anders gestrickt<br />

– von IPsec gibt es eine stattliche Anzahl<br />

Forks, von Open VPN k<strong>einen</strong> einzigen –<br />

doch letztlich geht es den Entwicklern<br />

beider Umgebungen einfach darum, sichere<br />

Datenübertragung in unsicheren<br />

Netzen zu ermöglichen.<br />

Obwohl die beiden Projekte bisweilen<br />

identische Aufgaben erfüllen und daher<br />

immer wieder in Konkurrenz geraten, hat<br />

es zwischen den Projekten nie eine nennenswerte<br />

Fehde gegeben – die tobte eher<br />

innerhalb der IPsec-Welt. Vielleicht liegt<br />

das auch daran, dass viele Nutzer sogar<br />

auf beide Technologien angewiesen sind,<br />

weil sie beispielsweise privat auf Open<br />

VPN setzen, doch <strong>für</strong> den Zugang zum<br />

Netzwerk des Arbeitgebers oder Kunden<br />

den De-facto-Standard IPsec benötigen.<br />

Ein langer Weg: IPsec<br />

Die Geschichte der beiden könnte unterschiedlicher<br />

kaum sein. Das IPsec-<br />

Protokoll hat bereits zwei Jahrzehnte auf<br />

dem Buckel, allerdings dauerte es recht<br />

lange, bis <strong>Linux</strong>-Implementierungen zu<br />

haben waren. Zurück geht die Technologie<br />

unter anderem auf das von John<br />

Ioannidis 1993 vorgestellte Software IP<br />

Encryption Protocol (Swipe). Diese Kooperation<br />

von AT&T und der Columbia<br />

University diente dem Ziel, Onlineverbindungen<br />

besser abzusichern.<br />

Das Internet stellte Interessierte damals<br />

vor zwei gravierende Probleme: Authentizität<br />

als auch Vertraulichkeit waren<br />

schwer sicherzustellen. Das berühmte<br />

Beispiel von Alice und Bob kennt fast<br />

jeder, und Swipe war so etwas wie der<br />

erste Schritt auf dem Weg hin zu sicherer<br />

Kommunikation. Das Protokoll konnte<br />

Verbindungen verschlüsseln, sodass Angreifer<br />

sich nicht mehr ohne Weiteres<br />

in den Datenstrom einklinken und ihn<br />

mitlesen konnten. Mechanismen zur<br />

Authentifizierung der Gegenseite implementierte<br />

Swipe jedoch nur rudimentär.<br />

Gauntlet: IPsec-Firewall<br />

Der US-Amerikaner Wei Xu setzte die<br />

von Ioannidis begonnene Arbeit fort, und<br />

so konnte sein damaliger Arbeitgeber,<br />

Trusted Information Systems, 1995 erstmals<br />

eine Firewall mit der Unterstützung<br />

<strong>für</strong> abgesicherte Verbindungen mit dem<br />

Namen Gauntlet auf den Markt bringen.<br />

Die dort genutzte Technik war letztlich<br />

jene, die die Internet Engineering Task<br />

Force später als IPsec in Form diverser<br />

RFCs standardisierte, erstmals 1998 im<br />

RFC 2401 [3].<br />

John Ioannidis hatte bereits ein Jahr<br />

vorher mit einer Implementierung des<br />

Standards <strong>für</strong> <strong>Linux</strong> begonnen. Weil in<br />

den USA damals noch sehr strenge Richtlinien<br />

<strong>für</strong> den Export kryptographischer


Abbildung 1: Die IPsec-Konfiguration <strong>für</strong> Strongswan auf Debian birgt zahlreiche komplizierte Parameter.<br />

Software galten, tat er dies, während er<br />

sich im Ausland aufhielt. John Gilmore<br />

machte 1997 ein eigenes Projekt aus dem<br />

Code und gab ihm den Namen Free Secure<br />

Wide-Area Networking, kryptisch<br />

abgekürzt: Free S/​WAN [4].<br />

Für zwei Jahre war Freeswan die quasioffizielle<br />

IPsec-Umsetzung <strong>für</strong> <strong>Linux</strong> [5].<br />

Doch Zeit seines Lebens kämpfte das Projekt<br />

mit extremen Ansichten seines Gründers<br />

Gilmore. Ein Streitpunkt war etwa<br />

die Tatsache, dass Gilmore sich weigerte,<br />

auch nur Patches von US-Staatsbürgern<br />

zu akzeptieren. Ken Bantoft platzte 2000<br />

der Kragen, er forkte Freeswan als „Super<br />

Freeswan“ und akzeptierte nahezu<br />

alle ausstehenden Patches, darunter auch<br />

viele von US-Bürgern.<br />

Red Hat will mitmischen<br />

Nicht nur Ken Bantoft machte John Gilmore<br />

unmissverständlich klar, was er<br />

von dessen Umtrieben hielt – auch von<br />

Red Hat kam laute Kritik: Dort hatte der<br />

Entwickler David Miller ebenfalls begonnen<br />

IPsec <strong>für</strong> <strong>Linux</strong> zu bauen, in erster<br />

Linie, weil Red Hat den betroffenen Code<br />

als Teil des <strong>Linux</strong>-Kernels sehen wollte.<br />

Obendrein betrachtete man dort die ganze<br />

Diskussion eher als akademisch, weil ein<br />

Stück Code, das nicht von US-Bürgern<br />

gewartet werden könnte, es nicht in den<br />

Kernel schaffen würde.<br />

Das Problem des Crypto-Exports durch<br />

US-Bürger hing bis 2002 über der IPsec-<br />

Community. Ein Wissenschaftler namens<br />

Daniel J. Bernstein hatte schon 1995 –<br />

noch als Student – die US-Regierung<br />

verklagt, weil er der Meinung war, die<br />

Regulierung des Exportes kryptographischer<br />

Software sei ein Verstoß gegen die<br />

US-Verfassung. 2002, nach mehreren<br />

Gerichtsverfahren, wandte sich die US-<br />

Regierung schließlich von ihrer bis dahin<br />

vertreteten Rechtsmeinung ab, was<br />

die <strong>Linux</strong>-Community mehrheitlich als<br />

Erfolg wertete. Die US-Regierung habe<br />

eingelenkt und es sei somit kein Problem<br />

mehr, Kryptosoftware aus den USA zu<br />

exportieren, lautete die Interpretation.<br />

Der Startschuss: Bernstein<br />

gegen die USA<br />

Ab da ging es in der IPsec-Community<br />

rund: Ausgehend von Freeswan entstanden<br />

in kurzer Zeit zwei Forks, Open swan<br />

[6] und Strongswan (Abbildung 1, [7]),<br />

die beide bis heute aktiv sind. Freeswan<br />

selbst veröffentlichte 2003 die letzte Version<br />

und wird seither nicht mehr gepflegt.<br />

Im November 2011 entstand aus Openswan<br />

sogar ein weiterer Fork, Libreswan<br />

[8], ebenfalls aufgrund unterschiedlicher<br />

Ansichten der Entwickler.<br />

Die drei Projekte Openswan, Strongswan<br />

und Libreswan werden nach wie<br />

vor gepflegt und ersch<strong>einen</strong> regelmäßig;<br />

technisch liegen sie nicht so weit voneinander<br />

entfernt, dass sich die Unterschiede<br />

als epochal bezeichnen ließen.<br />

Strongswan erfreut sich des guten Rufes,<br />

eine umfassende und sehr genaue<br />

Dokumentation zu haben, während die<br />

Openswan-Dokumentation meist nicht in<br />

besonders gutem Licht steht.<br />

Letztlich ist es aber vor allem eine Frage<br />

der persönlichen Präferenz, welchen Stack<br />

ein Admin verwendet. Auch die Benutz-


Titelthema<br />

www.linux-magazin.de Open VPN und IPsec 10/2013<br />

46<br />

erzahlen und die Anzahl der Committer<br />

geben kein geeignetes Auswahlkriterium<br />

ab. <strong>Alle</strong> drei Ipsec-Projekte verweisen auf<br />

Nachfrage auf Tausende Downloads und<br />

ein Core-Team von unter zehn Entwicklern.<br />

Dass selbst ein akademisch geprägtes<br />

Projekt wie Strongswan mit hohem<br />

Anspruch an Qualität und Sicherheit (wie<br />

fast alle Open-Source-Projekte) ohne Entwicklungsmodell<br />

auskommt und von nur<br />

schätzungsweise acht Committern betrieben<br />

wird, überrascht aber doch.<br />

IPsec gilt also als Pionier <strong>für</strong> VPN-Verbindungen.<br />

Im Grunde nichts anderes als<br />

die Kombination verschiedener IP- und<br />

Verschlüsselungstechniken, ist es sehr<br />

flexibel und bietet viele verschiedene<br />

Konfigurationsparameter. Doch mit dieser<br />

Flexibilität ging und geht auch immer<br />

ein sehr hohes Maß an Komplexität einher,<br />

die Nicht-Geeks an der Einrichtung<br />

einer IPsec-Verbindung zwischen zwei<br />

Hosts scheitern lässt.<br />

Wer schon mal ein IPsec-basiertes Netzwerk<br />

<strong>für</strong> ein Unternehmen aufgesetzt hat,<br />

schlimmstenfalls mit einer proprietären<br />

Implementierung auf einer Seite ([9],<br />

[10]), kennt dieses Problem sicher. Noch<br />

interessanter wird es, wenn die kommerziellen<br />

Stacks verschiedener Netzwerk-<br />

Hardwarehersteller ins Spiel kommen:<br />

Eine Cisco-Kiste per IPsec mit <strong>Linux</strong> zu<br />

verheiraten bringt Admins an die Grenze<br />

der Belastbarkeit.<br />

Abbildung 2: Open VPN macht es richtig vor: Ab Werk sind nur wenige Variablen<br />

zu ändern, dann steht der Tunnel.<br />

Dass flächendeckende Verbindungssicherheit<br />

mit IPsec nicht realisierbar ist,<br />

merkte der Amerikaner James Yonan<br />

2003. Anstatt sich über das Problem zu<br />

beklagen, fing er an, eine Lösung zu erarbeiten.<br />

Seine Idee: Anders als IPsec<br />

sollte seine VPN-Software ohne größere<br />

Schwierigkeiten in Betrieb zu nehmen<br />

sein, vor allem sollte sie auf einem simplen<br />

Server-Client-Prinzip beruhen und<br />

obendrein SSL verwenden. Im April 2004<br />

veröffentlichte Yonan seine Software unter<br />

dem Namen Open VPN 1.1.0.<br />

Einfach sicher: Open VPN<br />

Open VPN [1] machte so einiges einfacher:<br />

Nach der Installation des Open<br />

VPN-Servers ist es in der Regel völlig<br />

ausreichend, VPN-Benutzer anzulegen<br />

und die eigenen Zertifikate <strong>für</strong> die Nutzer<br />

auszurollen (siehe Abbildung 2). Mit<br />

dynamischen IPs hat Open VPN ebenso<br />

wenig Probleme wie mit Verbindungen<br />

durch Firewalls, Proxys oder NAT-<br />

Gateways. Im Vergleich zum hakeligen<br />

IPsec, das <strong>für</strong>s NAT-Traversal ein eigenes<br />

Plugin brauchte, kam das einer Revolution<br />

gleich.<br />

Obendrein zeigt Open VPN, dass die Arbeit<br />

auch bei gutem Umgangston gelingen<br />

kann. James Yonan scheint ein sehr<br />

umgänglicher Mensch zu sein, denn auch<br />

neun Jahre nach der ersten öffentlichen<br />

Version ist immer noch<br />

kein Fork in Sicht. Eine<br />

Google-Suche führt lediglich<br />

zu einer E-Mail<br />

auf der Open-VPN-<br />

Mailingliste, in der einer<br />

der etwa zwanzig<br />

Entwickler sich nach<br />

einer längeren Abwesenheit<br />

James Yonans<br />

fragte, ob der überhaupt<br />

noch lebe. Weit<br />

und breit keine Spur<br />

einer sich anbahnenden<br />

Spaltung.<br />

Der Erfolg gibt dem<br />

Projekt indes Recht:<br />

Open-VPN-Clients stehen<br />

<strong>für</strong> die gängigen<br />

Betriebssysteme samt<br />

und sonders zur Verfügung,<br />

auch Server<br />

sind auf den meisten<br />

Abbildung 3: Open VPN ist mittlerweile weit verbreitet,<br />

auch mit Android ist die Verbindung kein<br />

Problem (im Bild: Cyanogenmod).<br />

Plattformen problemlos zu betreiben. Auf<br />

Android gibt es seit einiger Zeit <strong>einen</strong><br />

nativen Open-VPN-Client mit allen wichtigen<br />

Features, ebenso <strong>für</strong> I-OS (siehe<br />

Abbildung 3). Yonan konnte Open VPN<br />

sogar als Grundlage <strong>für</strong> eine eigene Firma<br />

[11] nutzen und verdient heute mit Open-<br />

VPN-Tunneln, einfachem Zertifikatsmanagement,<br />

Support und Entwicklung<br />

Geld. (mfe) <br />

n<br />

Infos<br />

[1] Open VPN: [http:// www. openvpn. net/<br />

index.php/open-source.html]<br />

[2] IPsec: [http:// www. ipsec. org]<br />

[3] RFC 2401 „Security Architecture for the<br />

Internet Protocol“:<br />

[http:// www. ietf. org/ rfc/ rfc2401. txt]<br />

[4] Historische Website von Freeswan:<br />

[http:// www. freeswan. org]<br />

[5] Ralf Spenneberg, „Standard-Tunnel“:<br />

<strong>Linux</strong>-<strong>Magazin</strong> 10/03, S. 24<br />

[6] Website von Openswan:<br />

[http:// www. openswan. org]<br />

[7] Website von Strongswan:<br />

[http:// www. strongswan. org]<br />

[8] Website von Libreswan:<br />

[http:// www. libreswan. org]<br />

[9] Konstantin Agouros, „Geschützte Äpfel“:<br />

<strong>Linux</strong>-<strong>Magazin</strong> 02/​12, S. 66<br />

[10] Wolfgang Langer, Markus Feilner, „Durchbruch“:<br />

<strong>Linux</strong>-<strong>Magazin</strong> 10/​09, S. 56<br />

[11] Open VPN Inc.: [http:// www. openvpn.net]


Titelthema<br />

www.linux-magazin.de Initsysteme 10/2013<br />

48<br />

Von Sys-V-Init über Upstart zu Systemd<br />

Gerangel am Start<br />

Sys-V-Init startete die Prozesse von <strong>Linux</strong> mehr als ein Jahrzehnt lang als Einzelkämpfer. Doch heute lauert<br />

eine technisch versierte Generation von Initsystemen in den Startblöcken. Kristian Kißling<br />

© Shariff Che'Lah, 123RF.com<br />

Viele Jahre lang startete der <strong>Linux</strong>-Kernel<br />

als erste Amtshandlung <strong>einen</strong> Prozess<br />

und stattete diesen mit der Prozess-ID 1<br />

aus: Init. Der Startprozess warf zunächst<br />

<strong>einen</strong> Blick in die Datei »/etc/inittab« und<br />

schlurfte anschließend gemütlich durch<br />

die Runlevel des Sys-V-Init-Systems (Abbildung<br />

1).<br />

In jedem Runlevel startete Init, unterstützt<br />

von so genannten Initskripten, verschiedene<br />

Dienste und hörte erst damit<br />

auf, wenn es den anfangs anvisierten<br />

Runlevel erreicht hatte. Handelte es sich<br />

zum Beispiel um Debian und war das Ziel<br />

der Runlevel 1, saß der Benutzer am Ende<br />

vor einem Rechner ohne Netzwerk und<br />

grafischer Oberfläche, war aber in der<br />

Lage, lokale Anwendungen zu nutzen.<br />

Beim Herunterfahren des Rechners wurden<br />

die Dienste dann wieder gestoppt.<br />

Von Simpleinit zu Sys-V-Init<br />

Wie der Name schon andeutet, kam Sys-<br />

V-Init nicht aus dem luftleeren Raum,<br />

sondern orientierte sich am Runlevel-<br />

System von System-V, AT&Ts kommerziellem<br />

Unix-System von 1983. Miquel<br />

van Smoorenburg hatte Sys-V-Init 1992<br />

<strong>für</strong> Minix portiert, der Däne Ørbæk entwickelte<br />

daraus eine Version <strong>für</strong> <strong>Linux</strong>,<br />

die im April 1992 in Version 1.0 von<br />

»admutil« debütierte [1].<br />

Dabei war Sys-V-Init weder das erste<br />

noch das einzige Initsystem <strong>für</strong> <strong>Linux</strong>.<br />

Das verwendete zunächst Simpleinit [2],<br />

ein Init-basiertes System, das Ørbæk unter<br />

Mithilfe von Werner Almesberger<br />

entwickelt hatte. Es war etwas einfacher<br />

gestrickt als Sys-V-Init, weil es unter anderem<br />

keine Runlevel mitbrachte, und<br />

steckte im »poeigl«-Archiv.<br />

Ende 1992, nach der Veröffentlichung<br />

von »admutil‐1.4«, entspann sich im<br />

Usenet jedoch eine Diskussion [3] über<br />

das passende Initsystem. Ausgangspunkt<br />

waren Ørbæks Pläne, die Logout Records<br />

von dem Tool Getty schreiben zu lassen.<br />

Ein User wies darauf hin, dass man<br />

diesen Job in bester Unix-Manier wohl<br />

eher Init überlassen solle, und berichtete<br />

nebenbei von s<strong>einen</strong> guten Erfahrungen<br />

mit Sys-V-Init. Ørbæk willigte ein, Sys-V-<br />

Init zum Standard der nächsten Version<br />

seiner Werkzeugsammlung zu machen,<br />

Simpleinit sei mittlerweile ohnehin „zu<br />

groß“ geworden.<br />

Doch die Pläne änderten sich, weil der<br />

Sys-V-Init-Autor Miquel van Smoorenburg<br />

im Dezember 1992 die weitere Entwicklung<br />

des Tools unter <strong>Linux</strong> übernahm<br />

und Version 2.0 veröffentlichte [4]. Er<br />

hatte sich inzwischen <strong>einen</strong> 386er besorgt,<br />

<strong>Linux</strong> installiert und baute nun den<br />

Code von Sys-V-Init komplett um. Die<br />

ursprüngliche Minix-Unterstützung ging<br />

dabei verloren, da<strong>für</strong> landete Sys-V-Init<br />

bald danach im Kernel und avancierte<br />

auch zum Bootsystem <strong>für</strong> Softlanding<br />

<strong>Linux</strong>, der ersten <strong>Linux</strong>-Distribution<br />

überhaupt. Smoorenburg betreute Sys-V-<br />

Init zwölf Jahre lang, bis er das Projekt<br />

2004 einstellte.<br />

Rückzugsgefechte<br />

Smoorenburg ging, zurück blieb ein<br />

verwaistes Projekt mit Versionsnummer<br />

2.86, das dennoch weiter zum Einsatz<br />

kam. Der Debian-Entwickler Petter Reinholdtsen<br />

kümmerte sich inoffiziell um<br />

Bugreports <strong>für</strong> Sys-V-Init, brachte Patches<br />

ein und veröffentlichte gepatchte<br />

Varianten der Version, die auch Ubuntu<br />

verwendete.<br />

Fünf Jahre lang hielt der <strong>für</strong> Reinholdtsen<br />

frustrierende Zustand an, bevor er im Juli<br />

2009 das Projekt zusammen mit einigen<br />

Helfern übernahm [5], sich kurzerhand<br />

zum neuen Upstream erklärte und die<br />

neue Version 2.87dsf von Sys-V-Init veröffentlichte.<br />

Mit dem Wechsel des Betreuers<br />

ging auch ein Wechsel des Repository<br />

einher: Seitdem hostet Savannah [6]<br />

den Code. Reinholdtsen sah durchaus<br />

die Ironie bei dieser Übernahme, denn


Initsysteme 10/2013<br />

Titelthema<br />

www.linux-magazin.de<br />

49<br />

Abbildung 1: Init durchläuft im Sys-V-System verschiedene Runlevel, welche<br />

die Datei »inittab« festlegt, und führt jeweils einige Initskripte aus.<br />

einige Distributionen dachten zu diesem<br />

Zeitpunkt bereits über <strong>einen</strong> Wechsel zu<br />

Ubuntus neuem Initsystem nach.<br />

Upstart<br />

In erster Linie ein Kind des Ubuntu-<br />

Entwicklers Scott James Remnant, sollte<br />

Upstart die Nachteile des in die Jahre<br />

gekommenen Sys-V-Init ausbügeln. Diese<br />

lagen unter anderem darin, dass Sys-<br />

V-Init mit einem ganz anderen Modell<br />

vom Computer im Hinterkopf entwickelt<br />

wurde. Es ging von Desktoprechnern<br />

aus, die einmal hochgefahren wurden<br />

und dann ohne große Änderungen an der<br />

Hardware eine ganze Weile liefen. 2006,<br />

als Remnant mit der Entwicklung von<br />

Upstart begann, waren USB-Sticks, mobile<br />

Festplatten und externe USB-Geräte<br />

bereits gang und gäbe.<br />

Upstart ermöglicht es, Dienste flexibel<br />

und Ereignis-basiert zu starten und zu<br />

stoppen, und beschleunigt so auch den<br />

Startvorgang. Denn Sys-V-Init verschleppt<br />

den Bootprozess gelegentlich, weil abhängige<br />

Dienste nicht verfügbar sind und<br />

es die weiteren Skripte erst nach einem<br />

Timeout ausführt.<br />

Upstart legt keine Bootziele fest, um Services<br />

zu starten, vielmehr reagieren diese<br />

auf bestimmte Events. Indem er <strong>einen</strong><br />

Job definiert, sorgt der Admin etwa da<strong>für</strong>,<br />

dass Apache startet, sobald ein Netzwerk<br />

verfügbar ist. Auf Wunsch kann ein Ereignis<br />

auch mehrere<br />

Jobs auslösen, die parallel<br />

laufen. Die Syntax ist im Vergleich<br />

zu Sys-V-Init recht einfach.<br />

Fedora, das Upstart Ende 2008 in seine<br />

Version 10 integrierte [7], wollte vor<br />

allem die zahlreichen, mit Sys-V-Init<br />

verbundenen Bash-Skripte loswerden.<br />

Debian sah in Upstart die Antwort auf<br />

<strong>einen</strong> zunehmend Event-basierten Kernel<br />

und wollte damit die Probleme lösen, die<br />

ein sequenzieller Bootprozess gelegentlich<br />

mit sich brachte. Petter Reinholdtsen<br />

schlug den Wechsel von Debian zu Upstart<br />

vor [8], doch erst Ende 2012 landete<br />

ein Paket in Debian Unstable.<br />

In Ubuntu werkelt Upstart bereits seit Oktober<br />

2006, entfaltete aber anfangs kaum<br />

Wirkung, weil die Entwickler zunächst<br />

das Verhalten von Sys-V-Init nachbauten.<br />

Erst <strong>für</strong> die 9er Versionen ersetzte<br />

das Ubuntu-Projekt zahlreiche Initskripte<br />

durch Upstart-Jobs (Abbildung 2).<br />

Upstart reloaded<br />

Abbildung 2: Auszug aus einer mit Bootchart erzeugten Grafik unter Ubuntu 9.04.<br />

2011 erlitt Upstart vorübergehend <strong>einen</strong><br />

Rückschlag, als der Hauptentwickler<br />

Scott James Remnant das Projekt verließ.<br />

Er wechselte zu Google, um an Chrome<br />

OS zu arbeiten, das ebenfalls auf Upstart<br />

setzt. Im Laufe des Jahres gingen seine<br />

Beiträge auf der Mailingliste deutlich zurück,<br />

s<strong>einen</strong> Platz übernahm Canoncials<br />

James Hunt, ein ehemaliger IBM-Angestellter.<br />

Er kümmert sich bis heute um<br />

Upstart, gibt neue Versionen heraus und<br />

beantwortete dem <strong>Linux</strong>-<strong>Magazin</strong> auch<br />

Fragen zum Projekt.<br />

Laut Hunt wirken aktuell etwa 20 Leute<br />

an Upstart mit, darunter hauptsächlich<br />

Canonical-Angestellte. Die Software sei<br />

nicht nur Teil aller Ubuntu-Installationen<br />

weltweit, sondern laufe auch unter<br />

Chrome OS und auf älteren Fedora-Versionen.<br />

Kommuniziert werde über die Mailingliste<br />

und <strong>einen</strong> IRC-Channel, den Code<br />

und die Bugreports verwalte das Projekt<br />

in Ubuntus Launchpad-Plattform.<br />

Zu den Änderungen, die Hunt bisher anschob,<br />

gehört das Einrichten eines Daily<br />

Repository, das täglich Upstart-Versionen<br />

baut. Änderungen am Code landen automatisch<br />

auf der Mailingliste. Zusätzlich<br />

zu Scan-Build und Smatch kommt Coverty<br />

Scan <strong>für</strong> die statische Code-Analyse<br />

zum Einsatz. Auch automatische Tests<br />

wolle man künftig verstärkt nutzen.<br />

Zu den größten Konflikten der jüngeren<br />

Projektgeschichte zählt Hunt die Debatte<br />

um Canonicals Contribution Agreement,<br />

als deren Folge das Contributor License<br />

Agreement (CLA) entstand. Dies erlaubt<br />

es Canonical zwar noch immer, den<br />

Code <strong>für</strong> Upstart und andere Projekte<br />

auch proprietär zu lizenzieren, doch die<br />

Entwickler behalten das Recht, ihn frei zu<br />

lizenzieren und zu verteilen.<br />

Systemd<br />

Noch in die Amtszeit von Remnant fiel<br />

eine weitere Überraschung: Systemd.<br />

Lennart Poettering, der Kopf hinter Avahi


Titelthema<br />

www.linux-magazin.de Initsysteme 10/2013<br />

50<br />

Abbildung 3: In einer sehr langen Tabelle (hier nur ein kurzer Auszug) listet Lennart Poettering in seinem<br />

Blog zahlreiche Funktionen auf, die Systemd künftig übernehmen soll.<br />

Die Entwickler von Upstart beziehungsweise<br />

Systemd, begründen ihre Neuentwicklungen<br />

vor allem mit technischen<br />

Argumenten. Während Upstart das zeitweise<br />

nur dürftig betreute und nicht mehr<br />

zeitgemäße Sys-V-Init ablöste, rechtfertigen<br />

die Systemd-Macher ihren Neubau<br />

damit, dass sie Upstarts Konzept vom<br />

Kopf auf die Füße stellen wollen.<br />

Dass auch unternehmerische Gründe hinter<br />

den Entscheidungen stecken, würden<br />

die Entwickler wohl bestreiten. Dennoch:<br />

Für Upstart besitzt Canonical ein Contriund<br />

Pulseaudio und seines Zeichens Red-<br />

Hat-Entwickler, kündigte das alternative<br />

Initsystem 2010 in seinem Blog an [9].<br />

Wie er im E-Mail-Interview schreibt,<br />

arbeitete er bereits vor dem Ersch<strong>einen</strong><br />

von Upstart privat an einem Initsystem<br />

namens Babykit, legte dies aber nach<br />

dem Upstart-Announcement wieder zu<br />

den Akten.<br />

Auf der <strong>Linux</strong> Plumbers Conference 2009<br />

habe er dann zusammen mit seinem Kollegen<br />

Kay Sievers festgestellt, dass Upstart<br />

<strong>einen</strong> falschen Ansatz verfolgt, weil es<br />

vom Benutzer Vorleistungen erwarte, statt<br />

die minimale Anzahl benötigter Dienste<br />

selbst zu ermitteln. Also habe er die Pläne<br />

aus der Schublade geholt, sich Solaris’<br />

SMF und Apples Launchd genau angesehen<br />

und im November 2009 begonnen<br />

Code <strong>für</strong> Systemd zu entwickeln.<br />

Zukunftspläne<br />

Technisch will Systemd Dienste massiv<br />

parallelisieren, indem es sie auf unterschiedlichen<br />

Wegen aktiviert: über Sockets,<br />

Busse, Geräte, Pfade oder Timer.<br />

Traditionell warten Daemons unter <strong>Linux</strong><br />

zudem darauf, dass die Sockets anderer<br />

Daemons auf Empfang gehen, bevor sie<br />

Anfragen senden. Das will Systemd ändern,<br />

indem es alle Sockets aktiviert, bevor<br />

es die zugehörigen Daemons startet.<br />

Die Anfragen landen im Socket-Puffer,<br />

wo sie der Kernel verwaltet.<br />

Ist der Daemon schließlich online, arbeitet<br />

er die Warteschlange ab. Erwartet ein<br />

Client auf seine synchrone Anfrage eine<br />

Antwort, muss er sich zwar gedulden, bis<br />

der Daemon läuft, blockiert aber keine<br />

anderen Dienste. Da alle Sockets aktiv<br />

sind, spielen auch Abhängigkeiten der<br />

Daemons voneinander keine Rolle.<br />

Doch die Pläne gehen weiter. So wollen<br />

die Systemd-Entwickler, zu denen hauptsächlich<br />

Kay Sievers, Zbigniew Jedrzejewski-Szmek<br />

und Lennart Poettering<br />

gehören, dass Systemd auch das Festplattenmanagement<br />

beim Systemstart übernimmt,<br />

also Aufgaben wie das Mounten,<br />

Gesundheitschecks, die Platzverwaltung<br />

oder das Swappen.<br />

Zudem will die Mannschaft Prozesse<br />

über das Cgroups-Feature im Kernel verfolgen,<br />

um die Dienste so im Auge zu behalten<br />

und bei Abstürzen neu zu starten<br />

oder zumindest Crash-Informationen zu<br />

sammeln. Systemd soll auch Logdateien<br />

<strong>für</strong> Daemons anlegen, an Luks, Selinux<br />

und PAM andocken, Locales verwalten,<br />

Konsolen und Keyboards einrichten und<br />

vieles mehr. Sein Projekt habe, schreibt<br />

Poet tering, „den Fokus von Systemd etwas<br />

ausgedehnt“. Eine komplette Übersicht<br />

der geplanten Aufgaben von Systemd<br />

gibt ([10], Abbildung 3).<br />

Bei vielen Entwicklern weckt die Menge<br />

an Funktionen in Systemd Besorgnis.<br />

Poettering verteidigt die Pläne: Er sieht<br />

die Chance, die verschiedenen Eigenlösungen<br />

und Skripte der Distributionen<br />

abzuschaffen, indem Systemd die neuen<br />

Features von <strong>Linux</strong> intelligent einsetze<br />

und das Startsystem vereinheitliche.<br />

Viele <strong>Linux</strong>-Nutzer haben jedoch den alten<br />

Unix-Spruch „Do one thing and do it<br />

well“ verinnerlicht. Seine Gegner werfen<br />

ihm vor, er mache kleineren Distributionen,<br />

die auf Systemd verzichten wollen,<br />

das Leben schwer, indem er zahlreiche<br />

Dienste mit seinem Initsystem verknüpfe<br />

[11]. Einige Gentoo-Entwickler gründeten<br />

mit Eudev [12] <strong>einen</strong> Fork von Udev,<br />

nachdem Systemd den Udev-Code in die<br />

eigene Codebasis integrierte.<br />

Solche Vorwürfe hält der Entwickler <strong>für</strong><br />

überzogen und will sie in seinem Blog<br />

entkräften. Doch seine offensive Art polarisiert,<br />

auch die Unbekümmertheit, mit<br />

der er vermeintlich alte Zöpfe abschneidet,<br />

kommt nicht überall gut an.<br />

Im Projekt selbst gehe es hingegen harmonisch<br />

zu, schreibt Poettering. Commit-<br />

Berechtigung <strong>für</strong> Systemd haben demnach<br />

17 Personen, im Repository stecken<br />

Patches von 400 Leuten, 600 Personen<br />

stehen auf der Mailingliste. Über diese<br />

kommunizieren alle, außerdem gebe es<br />

mehrmals im Jahr Hackfeste, und regelmäßig<br />

telefoniere er mit seinem Mitentwickler<br />

Kay Sievers. Den Code von Systemd<br />

verwaltet Git, Bugs werden in den<br />

Bugtrackern von Fedora und Freedesktop.org<br />

verfolgt. Aktuell komme Systemd<br />

unter Fedora, Open Suse, Arch-<strong>Linux</strong>,<br />

Mandriva, Mageia, Tizen und Mer, einem<br />

Fork von Meego, zum Einsatz.<br />

Für Debian gibt es zwar Systemd-Pakete,<br />

doch es nutzt noch immer Sys-V-Init.<br />

Auch <strong>Linux</strong> Mint hat nicht gewechselt,<br />

vielleicht weil Ubuntu an Upstart festhält.<br />

Mark Shuttleworth begründete das in seinem<br />

Blog damit, dass Upstart sorgfältig<br />

designt, gut getestet sei und es zudem<br />

eine klare Aufgabe habe [13].<br />

Ausblick


utor License Agreement, kann also die<br />

Software notfalls unter eine proprietäre<br />

Lizenz stellen, etwa auf Mobilgeräten.<br />

Zudem ist Upstart nach längerer Entwicklung<br />

ein gut angepasster Bestandteil von<br />

Ubuntu und Canonical bezahlt die meisten<br />

seiner Entwickler. Das Initprogramm<br />

dürfte man allein deshalb nicht ohne triftige<br />

Gründe über Bord werfen.<br />

Die Entwickler von Systemd arbeiten hingegen<br />

<strong>für</strong> Red Hat. Das Unternehmen<br />

aus Raleigh hat sich nicht offiziell zu<br />

den Plänen geäußert, aber es ist sicher<br />

nicht unpraktisch, die Experten <strong>für</strong> das<br />

neue System auf der eigenen Lohnliste<br />

zu haben. Weil Canonical aus besagten<br />

Gründen vorerst nicht wechseln wird,<br />

besitzt Fedora zudem ein <strong>Alle</strong>instellungsmerkmal,<br />

das sich aufgrund der Komplexität<br />

von Systemd nicht ohne Weiteres<br />

nachbauen lässt.<br />

Ob dieser Technologiewettstreit, der auch<br />

Wayland und ​Mir sowie Unity und Gnome<br />

berührt, der <strong>Linux</strong>-Community eher nützt<br />

oder schadet, muss sich noch zeigen. Insbesondere<br />

die Anhänger und Entwickler<br />

kleinerer Distributionen dürften den Konflikt<br />

genau beobachten.<br />

Während einige Systeme sich bereits <strong>für</strong><br />

Systemd entschieden haben (etwa Arch<br />

<strong>Linux</strong>), bleiben andere einfach bei Sys-V-<br />

Init (Debian) oder nutzen gleich eine eigene<br />

Variante des Bootsystems wie Open<br />

RC (Gentoo). Dank der freien Lizenzen<br />

beider Bootsysteme ist zur Not auch ein<br />

späterer Wechsel möglich. n<br />

Infos<br />

[1] Sys-V-Init unter <strong>Linux</strong>:<br />

[http:// www. informatica. co. cr/​<br />

linux‐kernel/ research/ 1992/ 0422. html]<br />

[2] Simpleinit: [https:// www. kernel. org/​<br />

pub/ linux/ kernel/ Historic/ old‐versions/​<br />

RELNOTES‐0. 95]<br />

[3] Sys-V-Init soll Simpleinit ersetzen:<br />

[https://groups.google.com/d/msg/comp.<br />

os.linux/ceMONr8tHDI/srKZxiY6XDUJ]<br />

[4] Historische Changelogs <strong>für</strong> Sys-V-Init:<br />

[http:// swlx01. hs‐esslingen. de/ doc/​<br />

usr‐doc/ sysvinit‐2. 86/ Changelog]<br />

[5] Sys-V-Init-Übernahme:<br />

[http:// people. skolelinux. org/ pere/ blog/​<br />

Taking_over_sysvinit_development. html]<br />

[6] Sys-V-Init auf Savannah: [https://​<br />

savannah. nongnu. org/ projects/ sysvinit]<br />

[7] Upstart in Fedora 10:<br />

[http:// www. redhat. com/ archives/​<br />

rhl‐devel‐list/ 2008‐May/ msg01888. html]<br />

[8] Upstart in Debian:<br />

[https:// lwn. net/ Articles/ 351013/]<br />

[9] Lennart Poettering über Systemd:<br />

[http:// 0pointer. de/ blog/ projects/​<br />

systemd. html]<br />

[10] Ziele von Systemd: [http:// 0pointer. de/​<br />

blog/ projects/ why. html]<br />

[11] Eine Kritik an Systemd:<br />

[http:// sporkbox. us/ blog/ ? r=page/ 95]<br />

[12] Eudev: Udev-Fork:<br />

[https:// github. com/ gentoo/ eudev]<br />

[13] Shuttleworth über Upstart: [http:// www.​<br />

markshuttleworth. com/ archives/ 1121]<br />

Initsysteme 10/2013<br />

Titelthema<br />

www.linux-magazin.de<br />

51


Titelthema<br />

www.linux-magazin.de Ext-FS 10/2013<br />

52<br />

Ext-FS – Rückblick auf vier Generationen<br />

Alteingesessene Familie<br />

Das Extended File System ist seit dem <strong>Linux</strong>-Kernel 0.96c ein treuer Begleiter des freien Betriebssystems. Mit<br />

s<strong>einen</strong> Weiterentwicklungen – oder sollte man sagen Wiedergeburten – Ext 2, Ext 3 und Ext 4 zählt es zu den<br />

ältesten <strong>Linux</strong>-spezifischen Softwareprojekten. Udo Seidel<br />

© Alevtina Huzova, 123RF.com<br />

Der <strong>Linux</strong>-Kernel [1] ist mittlerweile fast<br />

22 Jahre alt. Ein Weggefährte seit 1992<br />

ist die Familie der „Erweiterten Dateisysteme“<br />

(Extended File Systems, Ext,<br />

[2], [3], [4]). Die ersten Schritte machte<br />

<strong>Linux</strong> mit einem von Minix stammenden<br />

Dateisystem ([3], [4], [5]). Da<strong>für</strong><br />

gab es mehrere Gründe: Linus Torvalds<br />

wollte ursprünglich ja nur <strong>einen</strong> besseren<br />

Terminal-Emulator <strong>für</strong> eben jenes Minix<br />

entwickeln. Daher bestand keine Notwendigkeit<br />

<strong>für</strong> eine eigene Datenablage.<br />

Selbst als sich das Torvalds-Projekt in<br />

<strong>einen</strong> Betriebssystemkern verwandelte,<br />

fand die Entwicklung weiter unter Minix<br />

statt. Das gemeinsame Dateisystem erleichterte<br />

dabei den Datenaustausch.<br />

Ein Stern geht auf<br />

Das Dateisystem des eigentlich <strong>für</strong> Lehrzwecke<br />

entwickelten Minix wies einige<br />

signifikante Einschränkungen auf. Die<br />

maximale Größe lag bei 64 MByte und die<br />

maximale Länge von Dateinamen betrug<br />

14 Zeichen [4]. Für manche <strong>Linux</strong>-Pioniere<br />

waren diese Grenzen irgendwann<br />

nicht mehr tragbar, sie machten sich Gedanken<br />

über eine neues, <strong>Linux</strong>-natives<br />

Dateisystem. Mit Version 0.96a des Kernels<br />

integrierte Linus die VFS-Schicht<br />

(Virtual File System), die das Hinzufügen<br />

weiterer Dateisysteme erleichterte ([4],<br />

[6], Abbildung 1).<br />

Mit Version 0.96c erblickte das erste Mitglied<br />

der Ext-FS-Familie das Licht der<br />

<strong>Linux</strong>-Welt [2]. Rémy Card, der Hauptautor,<br />

ließ sich hierbei vom Design des<br />

UFS (Unix File System) inspirieren. Nun<br />

durften Dateinamen 255 Zeichen lang<br />

sein, und zwar auf einem bis zu 2 GByte<br />

großen Dateisystem.<br />

Das war aber nur der Anfang. Obwohl<br />

Ext eine Verbesserung gegenüber Minix-<br />

FS darstellte, gab es immer noch Punkte,<br />

die den Entwicklern absolut missfielen:<br />

Es gab nur <strong>einen</strong> statt der drei heute<br />

üblichen Datei-Zeitstempel. Die Verwendung<br />

von verlinkten Listen <strong>für</strong> freien<br />

Platz führte schnell zu Fragmentierung<br />

und schlechter Performance.<br />

Die Ablösung von Ext war also vorprogrammiert<br />

und ließ nicht lange auf sich<br />

warten. Der Nachfolger Ext 2 ist seit<br />

Version 0.99.7 (März 1993) Bestandteil<br />

des <strong>Linux</strong>-Kernels. Die maximale Größe<br />

des Dateisystems konnte nun stolze 4<br />

TByte betragen, eine Datei durfte bis zu<br />

2 GByte umfassen. Das waren 1993 utopisch<br />

große Datenträger. Natürlich gab es<br />

nun auch die vertrauten drei Zeitstempel<br />

<strong>für</strong> die Erzeugung, die letzte Aktualisierung<br />

und den letzten Zugriff auf eine<br />

entsprechende Datei.<br />

Konkurrent Xia<br />

Tabelle 1: Dateisystem-Features, Stand März 1993<br />

Interessanterweise war Ext 2 nicht konkurrenzlos<br />

ins Rennen gestartet. Xia-<br />

FS – benannt nach seinem Entwickler<br />

Frank Xia [6] – basierte auf Minix-FS<br />

und adressierte dessen Unzulänglichkeiten<br />

(Tabelle 1). Erste Alphaversionen gab<br />

Merkmal Minix-FS Ext Ext 2 Xia-FS<br />

Maximale Dateisystemgröße 64 MByte 2 GByte 4 TByte 2 GByte<br />

Maximale Dateigröße 64 MByte 2 GByte 2 GByte 64 MByte<br />

Maximale Länge der Dateinamen 30 Zeichen 255 Zeichen 255 Zeichen 248 Zeichen<br />

Anzahl Zeitstempel 1 1 3 3


Abbildung 1: Der <strong>Linux</strong>-Kernel 0.96a brachte VFS gewissermaßen als<br />

Sprungbrett <strong>für</strong> das Ext-Dateisystem in 0.96c.<br />

es sowohl von Xia-FS als auch von Ext<br />

2 im Januar 1993 – und Xia erwies sich<br />

zunächst sogar als stabiler. Die größere<br />

Entwicklergemeinde stand aber hinter<br />

dem Nachfolger von Ext und half dabei,<br />

diesen rasch stabil zu machen [7].<br />

Die zweite Welle<br />

Ext 2 war fast ein Jahrzehnt de facto<br />

das Standarddateisystem <strong>für</strong> <strong>Linux</strong>.<br />

Auch heute noch erfreut es sich signifikanter<br />

Beliebtheit: <strong>für</strong> Bootmedien oder<br />

zur Core-Dump-Datenablage. Die ersten<br />

Versionen stammten hauptsächlich aus<br />

der Feder des Franzosen Rémy Card, der<br />

schon Ext geschrieben hatte. Daneben<br />

machte sich Stephen Tweedie <strong>einen</strong> Namen<br />

als einer der Väter von Ext 2.<br />

Theodore (Ted) Ts’o schließlich ist der<br />

Dritte im Bunde. Ihre 1994 veröffentlichte<br />

Arbeit zum Nachfolger von Ext<br />

([8], auch [4]) ist eine gelungene Darstellung<br />

der Herkunft, des Status und der<br />

Entwicklungsmöglichkeiten des neuen<br />

<strong>Linux</strong>-Standarddateisystems. Wie schon<br />

der Vorgänger basiert Ext 2 auf den Designprinzipien<br />

von UFS und weist damit<br />

eine robuste Grundstruktur auf.<br />

Das Konzept von Inodes, Verzeichnissen<br />

und Links erfordert kein Informatikstudium,<br />

um es zu verstehen (Abbildung 2):<br />

Nach dem Bootblock ist der Datenträger<br />

in so genannte Blockgruppen aufgeteilt.<br />

Am Beginn jeder Blockgruppe steht ein<br />

Superblock – oder dessen Backup –, der<br />

das Dateisystem beschreibt. Es folgen Informationen<br />

zur jeweiligen Blockgruppe.<br />

Mit den Bitmaps und Tabellen verwaltet<br />

das Dateisystem die (unbenutzten) Blöcke<br />

und Inodes.<br />

Der verbleibende Platz gehört den eigentlichen<br />

Daten. Beim Design von Ext 2 hatten<br />

die Entwickler die Notwendigkeit zukünftiger<br />

Erweiterungen<br />

im Sinn. Bewusst<br />

ließen Rémy & Co.<br />

Platz in den Strukturen<br />

des Dateisystems,<br />

um dort später neue<br />

Merkmale hinterlegen<br />

zu können.<br />

Die Anwender sollten<br />

dabei in den Genuss<br />

von neuen Funktionen<br />

kommen, ohne<br />

das Dateisystem neu<br />

anlegen zu müssen. Dieser recht einfach<br />

zu formulierende Ansatz ist eine wichtige<br />

Säule des Erfolgs der Ext-FS-Familie.<br />

Aufgrund der gut verstandenen Interna<br />

und der Tatsache, dass Ext-FS fast von<br />

Anfang an mit von der Partie war, diente<br />

Ext 2 oft als Testbasis <strong>für</strong> Erweiterungen<br />

der VFS-Schicht.<br />

Journaling<br />

Im Laufe der Zeit erhielt der <strong>Linux</strong>-Kernel<br />

immer mehr Dateisysteme. Reiser-FS, JFS<br />

oder XFS waren Ext 2 unter anderem in<br />

einem Punkt überlegen [9]: Dank des<br />

so genannten Journaling war ein »fsck«-<br />

Lauf bei ihnen wesentlich schneller als<br />

bei Ext 2. Mit immer größer werdenden<br />

Datenträgern trägt die Dateisystem-Überprüfung<br />

signifikant zur Dauer eines Betriebsausfalls<br />

bei. Stephen Tweedie veröffentlichte<br />

1998 eine Designstudie mit<br />

ersten Implementationsansätzen <strong>für</strong> Ext<br />

2 mit Journaling-Funktion [10].<br />

Während der Diskussion zu Schreib-<br />

Performance-Problemen großer Dateien<br />

[11] meldete der Entwickler auf der Kernel-Mailingliste<br />

auch, dass er an dieser<br />

Erweiterung des Dateisystems arbeitete<br />

Listing 1: Von Ext 2 zu Ext 3 und zurück<br />

01 # mkfs.ext2 /dev/sdb1<br />

02 mke2fs 1.42.7 (21‐Jan‐2013)<br />

03 Dateisystem‐Label=<br />

04 OS‐Typ: <strong>Linux</strong><br />

05 Blockgröße=4096 (log=2)<br />

06 Fragmentgröße=4096 (log=2)<br />

07 [...]<br />

08 Inode‐Tabellen werden geschrieben: erledigt<br />

09 Schreibe Superblöcke und Dateisystem‐<br />

Accountinginformationen: erledigt<br />

10 # mount /dev/sdb1 /tmp/mnt/<br />

11 # grep mnt /proc/mounts<br />

12 /dev/sdb1 /tmp/mnt ext2 rw,relatime 0 0<br />

13 # umount /tmp/mnt/<br />

[12]. Die Verwaltung vieler Dateien in<br />

einem Verzeichnis machte Ext 2 einige<br />

Mühe. Die Entwickler adressierten dies<br />

mit der Einführung von H-Tree, einer speziellen<br />

Form des B-Tree.<br />

Mit Journaling, der eben erwähnten<br />

baum artigen Struktur <strong>für</strong> große Verzeichnisse<br />

und der Möglichkeit, das Ext-FS<br />

online zu vergrößern, war Ext 3 geboren.<br />

Seit Version 2.4.15 (November 2001)<br />

ist es als <strong>Linux</strong>-Kernelbeigabe erhältlich<br />

[13]. Der Clou an der Sache: Eine Umwandlung<br />

von Ext 2 zu seinem Nachfolger<br />

war (und ist) ohne lästiges Daten-<br />

Herumschaufeln möglich.<br />

Die Dateisystem-Entwickler hielten Wort.<br />

Mehr noch, sogar der Rückweg war möglich.<br />

Einfach das Kommando »fsck.ext2«<br />

über eine Ext-3-Partition laufen lassen,<br />

und schon konnte der Admin es wieder<br />

als normales Ext 2 in den Verzeichnisbaum<br />

einhängen. Noch eleganter geht es<br />

mit dem Werkzeug »tune2fs« (Listing 1).<br />

Zurückrudern<br />

Die Rückverwandlung einer Ext-3-Partition<br />

in Ext 2 erscheint dann sinnvoll,<br />

wenn Performance wichtiger als Dateisystem-Integrität<br />

ist. Ein Journal erfordert<br />

mehr Schreibzugriffe auf den Datenträger<br />

als bei Ext 2 und lässt sich leider nicht<br />

separat abschalten. Wie Listing 1 zeigt,<br />

ist die Konvertierung recht schmerzfrei<br />

und keine Einbahnstraße.<br />

Listing 2: »libext2fs«<br />

01 # ldd /usr/sbin/debugfs /usr/sbin/tune2fs \<br />

02 > /usr/sbin/mkfs.ext* /usr/sbin/fsck.ext* \<br />

03 > /usr/sbin/btrfs‐convert | grep ext2fs | \<br />

04 > awk '{print $1}' | uniq<br />

05 libext2fs.so.2<br />

14 # tune2fs ‐j /dev/sdb1<br />

15 tune2fs 1.42.7 (21‐Jan‐2013)<br />

16 Erstelle Journal‐Inode: erledigt<br />

17 # mount /dev/sdb1 /tmp/mnt/<br />

18 # grep mnt /proc/mounts<br />

19 /dev/sdb1 /tmp/mnt ext3<br />

rw,relatime,data=ordered 0 0<br />

20 # umount /tmp/mnt/<br />

21 # tune2fs ‐O ^has_journal,^dir_index /dev/sdb1<br />

22 tune2fs 1.42.7 (21‐Jan‐2013)<br />

23 # mount /dev/sdb1 /tmp/mnt/<br />

24 # grep mnt /proc/mounts<br />

25 /dev/sdb1 /tmp/mnt ext2 rw,relatime 0 0<br />

Ext-FS 10/2013<br />

Titelthema<br />

www.linux-magazin.de<br />

53


Titelthema<br />

www.linux-magazin.de Ext-FS 10/2013<br />

54<br />

Aber die Geschichte wiederholte sich:<br />

Die Anforderungen bezüglich Größe und<br />

Geschwindigkeit der zu verwaltenden Datenträger<br />

wuchsen immer mehr und Ext<br />

3 begann, an seine Grenzen zu stoßen.<br />

Aus einer Art gepatchtem Ext 3 entstand<br />

so Ext 4 [14]. Zunächst als experimentell<br />

gekennzeichnet, ist das Dateisystem seit<br />

Kernelversion 2.6.28 (Oktober 2008) als<br />

produktiv einsetzbar markiert.<br />

Ted macht weiter<br />

Die Kontinuität setzte sich auch auf Entwickler-Seite<br />

fort. Ted Ts’o, schon am<br />

Großvater von Ext 4 maßgeblich beteiligt<br />

und Chefverwalter von Ext 3, nahm auch<br />

den jüngsten Vertreter der Ext-FS-Familie<br />

unter seine Fittiche. Die neuen Merkmale<br />

von Ext 4 sind in [9] recht ausführlich<br />

beschrieben. Unbedingt hervorzuheben<br />

ist: Ein bereits vorhandenes Ext 3 lässt<br />

sich ohne Datenverlust oder -migration<br />

konvertieren.<br />

Manche Neuerungen von Ext 4 erfordern<br />

aber leider eine Änderung der Struktur<br />

auf der Platte, dem so genannten Ondisk-Format.<br />

Verzichtet der Admin auf<br />

diese, ist auch hier die Konvertierung<br />

keine Einweg-Operation. Wieder leistet<br />

das Programm »tune2fs«<br />

dem Administrator<br />

wertvolle<br />

Diens te. Es gibt sogar<br />

eine Light-Version, bei<br />

der Anwender eine<br />

Ext-3-Partition mit<br />

dem Ext-4-Treiber einbinden<br />

(siehe Abbildung<br />

3).<br />

Die Beziehungen innerhalb<br />

der Ext-FS-<br />

Familie sind transitiv<br />

– aus der Kompatibilität<br />

von Ext 2 und<br />

Ext 3 sowie von Ext 3<br />

und Ext 4 ergibt sich<br />

die Verträglichkeit von Ext 2 und Ext 4.<br />

Tabelle 2 zeigt auf, welcher Kerneltreiber<br />

mit welchem Dateisystem umgehen<br />

kann, ohne dass der Anwender die eigentlichen<br />

Daten auf der Platte manipulieren<br />

muss.<br />

Nebenbasis: Bibliothek<br />

Abbildung 3: Einige Verbesserungen von Ext 4 macht der Kernel über den<br />

Treiber auch <strong>für</strong> Ext-3-Partitionen verfügbar.<br />

Wie erwähnt war das gute Grundverständnis<br />

von Ext 2 mit s<strong>einen</strong> Nachfolgern<br />

ein wesentlicher Baustein <strong>für</strong> den<br />

Erfolg des Dateisystems. Neben den üblichen<br />

Werkzeugen zum Anlegen und<br />

Überprüfen von Ext-FS existieren auch<br />

gute Debuggingtools wie »debugfs« und<br />

»dumpe2fs«. Damit steigen ambitionierte<br />

Anwender richtig tief in das Dateisystem<br />

hinab, um es zu analysieren, Fehler zu<br />

beheben oder Daten zu retten.<br />

Damit diese Tools funktionieren, müssen<br />

sie das entsprechende Insiderwissen über<br />

das jeweilige Mitglied der Ext-FS-Familie<br />

besitzen. Ändert sich ein Detail am Dateisystem,<br />

sind die Entwickler genötigt,<br />

auch die zugehörigen Werkzeuge anzu-<br />

Bootsektor Blockgruppe 1 Blockgruppe 2 Blockgruppe 3 Blockgruppe 4 Blockgruppe 5<br />

Superblock<br />

Blockgruppeninfos<br />

Block-Bitmap Inode-Bitmap Inode-Tabelle<br />

Abbildung 2: Die grundlegende Struktur von Ext 2 stammt vom Unix-Dateisystem UFS.<br />

Datenblöcke<br />

Tabelle 2: Treiber-Kompatibilität<br />

Dateisystem Ext 2 Ext 3 Ext 4<br />

Ext 2 ja ja ja<br />

Ext 3 nein ja ja<br />

Ext 4 (mit nein ja ja<br />

Ext-3-On-disk-<br />

Format)<br />

Ext 4 nein nein ja<br />

Blick in die Zukunft<br />

Seit 2008 ist Ext 4 reif <strong>für</strong> den produktiven<br />

Einsatz. Ob es ein Ext 5 geben wird, bleibt allerdings<br />

fraglich. Selbst Ted Ts’o glaubt, dass die<br />

Zukunft Btr-FS gehört [16]. Ein großer Vorteil<br />

der Ext-FS-Familie, die Rückwärtskompatibilität,<br />

beschränkt letztlich auch die Skalierbarkeit<br />

und Verwaltbarkeit. Suse ist diesen Weg schon<br />

gegangen: Nach dem schweren Abschied von<br />

Reiser-FS kam der Wechsel zu Ext 3, der aber<br />

nicht lange anhielt, denn schon ist Btr-FS am<br />

Zug. Auch Red Hat wird in absehbarer Zeit Ext<br />

4 als Standard abschaffen. Dort ist aber XFS der<br />

designierte Nachfolger.<br />

Die (Weiter-)Entwicklung von Ext 4 beruht auf<br />

mehreren Komponenten. Das Kernteam umfasst<br />

zehn Leute, Ted Ts’o gehört natürlich dazu. Sie<br />

beraten sich in wöchentlichen Telefonkonferenzen<br />

und treffen sich einmal im Jahr. Die<br />

Beiträge zum Quelltext an sich stammen aus<br />

der Arbeit von weit mehr Leuten. Eine aktuelle<br />

Grobanalyse zählt hier mehr als 120 verschiedene<br />

Entwickler. Deren Kommunikation findet<br />

teilweise auf der <strong>Linux</strong>-Kernel-Mailingliste sowie<br />

auf dem Ext-4-spezifischen Verteiler [17]<br />

statt. Der gute alte Internet Relay Chat (IRC) ist<br />

ebenfalls mit von der Partie [18].<br />

Zur Überprüfung von Funktion, Robustheit und<br />

Stabilität kommen »xfstest« und die hauseigene<br />

Regressionstest-Suite zum Einsatz. Fehler<br />

und deren Behebung sind durch Bugzilla-Tickets<br />

dokumentiert [19]. Diese und viele andere Fakten<br />

beschreibt die Wiki-Seite [20]. Dort finden<br />

Entwickler und Anwender gleichermaßen wichtige<br />

und nützliche Informationen.<br />

Apropos Anwender: Die Zahl der Ext-4-Benutzer<br />

ist nicht wirklich abschätzbar. Eine große<br />

Dunkelziffer bilden die Computer in Googles<br />

Rechenzentren, auf denen das Dateisystem im<br />

Einsatz ist. Übrigens war die Umstellung von<br />

Ext 2 auf Ext 4 einer der Gründe, warum der<br />

Internetgigant den Maintainer Ted Ts’o an Bord<br />

holte. Android setzt seit Honeycomb ebenfalls<br />

auf das jüngste Mitglied der Ext-FS-Familie.<br />

Dank der <strong>Linux</strong>-Smartphones wächst die Anzahl<br />

der Ext-4-Instanzen rasant.


passen. Mit wachsender Anzahl der Helferprogramme<br />

kann der Pflegeaufwand<br />

immens werden. Der Trick bei Ext 2 und<br />

s<strong>einen</strong> Nachfolgern besteht darin, dass<br />

sich die Dateisystem-Infos in der Bibliothek<br />

»libext2fs« versammeln, gegen das<br />

die Tools gelinkt sind (Listing 2). Es ist<br />

schon Ironie, dass das Btr-FS-Werkzeug<br />

»btrfs‐convert« ebenfalls diese Bibliothek<br />

benutzt. Es erlaubt nämlich, ein bestehendes<br />

Ext-FS in situ in den Konkurrenten<br />

Btr-FS zu konvertieren [15].<br />

Fazit<br />

Mit ihrer über 20-jährigen Geschichte ist<br />

die Familie der Ext-Dateisysteme eines<br />

der nachhaltigsten Open-Source-Projekte<br />

im <strong>Linux</strong>-Umfeld. Maßgeblich <strong>für</strong> diesen<br />

Erfolg sind mehrere Faktoren: Zunächst<br />

das Design von 1993, das einerseits künftige<br />

Erweiterungen erlaubte, andererseits<br />

aber sehr stark rückwärtskompatibel war.<br />

Zudem herrscht Kontinuität bei den Chef-<br />

Entwicklern.<br />

Die frühzeitige Integration in den <strong>Linux</strong>-<br />

Kernel war auch nicht gerade schädlich.<br />

Sie verhalf der Dateisystemfamilie zu einer<br />

großen Entwickler- und Anwendergemeinde.<br />

Dazu kam die frühe Nominierung<br />

zum Standarddateisystem von<br />

<strong>Linux</strong>. Sie ist gleichzeitig Ursache und<br />

Konsequenz des Erfolgs von Ext 2 und<br />

s<strong>einen</strong> Verwandten.<br />

Es bleibt dennoch spannend, wie es in<br />

den kommenden Jahren weitergeht (siehe<br />

Kasten „Blick in die Zukunft“). Was passiert<br />

wohl nach der Wachablösung durch<br />

Btr-FS oder XFS? Wird das Handy-<strong>Linux</strong><br />

Android die Fahne der Ext-Familienehre<br />

hochhalten? (mhu) <br />

n<br />

Infos<br />

[1] <strong>Linux</strong> Kernel Archives:<br />

[http:// www. kernel. org/]<br />

[2] <strong>Linux</strong> 0.96c: [https:// www. kernel. org/​<br />

pub/ linux/ kernel/ Historic/ old‐versions/​<br />

linux‐0. 96c. tar. gz]<br />

[3] M. Tim Jones, „Anatomy of Ext 4“:<br />

[http:// www. ibm. com/ developerworks/​<br />

linux/ library/ l‐anatomy‐ext4/]<br />

[4] Rémy Card, Theodore Ts’o, Stephen<br />

Tweedie, „Design and Implementation<br />

of the Second Extended Filesystem“:<br />

[http:// e2fsprogs. sourceforge. net/​<br />

ext2intro. html]<br />

[5] Andrew Tanenbaum, „Operating Systems:<br />

Design and Implementation“: Prentice<br />

Hall, 1987<br />

[6] <strong>Linux</strong> 0.96a: [https:// www. kernel. org/​<br />

pub/ linux/ kernel/ Historic/ old‐versions/​<br />

linux‐0. 96a. tar. gz]<br />

[7] Theodore Ts’o, „The <strong>Linux</strong> Ext2/​3/​4<br />

Filesystem: Past, Present and Future“:<br />

[http:// www. linuxfoundation. jp/ jp_<br />

uploads/ seminar20060911/ Ted_Tso. pdf]<br />

[8] Rémy Card, Theodore Ts’o, Stephen<br />

Tweedie, „Design and implementation of<br />

the second extended filesystem“: Proceedings<br />

of the First Dutch International<br />

Symposium on <strong>Linux</strong>, 1994<br />

[9] Udo Seidel, „Zünftige Speicher: Lokale<br />

Dateisysteme im Überblick“,<br />

<strong>Linux</strong>-<strong>Magazin</strong> 07/​12 S. 22<br />

[10] Stephen Tweedie, „Journaling the <strong>Linux</strong><br />

ext2fs Filesystem“:<br />

[http:// original. jamesthornton.​<br />

com/ hotlist/ linux‐filesystems/​<br />

ext3‐journal‐design. pdf]<br />

[11] Alan Curry: „fsync on large files“:<br />

[http:// lkml. org/ lkml/ 1999/ 2/ 12/ 160]<br />

[12] Stephen C. Tweedie, „Re: fsync on large<br />

files“:<br />

[http:// lkml. org/ lkml/ 1999/ 2/ 17/ 36]<br />

[13] Changelog zu Kernel 2.4.15:<br />

[http:// www. kernel.​org/ pub/ linux/ kernel/​<br />

v2. 4/ ChangeLog‐2. 4. 15]<br />

[14] Theodore Ts’o, „Proposal and plan for<br />

Ext2/​3 future development work“:<br />

[http:// lkml. org/ lkml/ 2006/ 6/ 28/ 454]<br />

[15] „Conversion from Ext 3“:<br />

[http:// btrfs. wiki. kernel. org/ index. php/​<br />

Conversion_from_Ext3]<br />

[16] Ryan Paul: „Panelists ponder the kernel<br />

at <strong>Linux</strong> Collaboration Summit“:<br />

[http:// arstechnica. com/​<br />

information‐technology/ 2009/ 04/ linux<br />

‐collaboration‐summit‐the‐kernel‐panel/]<br />

[17] Ext-4-Mailinglisten: [http:// ext4. wiki.​<br />

kernel. org/ index. php/ Mailinglists]<br />

[18] Ext-4-IRC: [http:// ext4. wiki. kernel. org/​<br />

index. php/ IRC]<br />

[19] Ext-4-Bugs: [http:// bugzilla. kernel. org/<br />

buglist. cgi? product=File+System&​<br />

component=ext4]<br />

[20] Ext-4-Wiki: [http:// ext4. wiki. kernel. org]<br />

Der Autor<br />

Dr. Udo Seidel ist seit 1996 <strong>Linux</strong>-Fan. Er hat<br />

als <strong>Linux</strong>/​Unix-Trainer, Systemadministrator und<br />

Senior Solution Engineer gearbeitet. Heute ist er<br />

Leiter des <strong>Linux</strong>-Strategie-Teams der Amadeus<br />

Data Processing GmbH in Erding.


Titelthema<br />

www.linux-magazin.de Emacs 10/2013<br />

56<br />

Der programmierbare Editor Emacs<br />

GNUs Tausendsassa<br />

Den Texteditor Emacs gibt es seit Jahrzehnten und die Community entwickelt ihn stets weiter. Zu seinem Erfolgsrezept<br />

gehören die Erweiterbarkeit, eine freie Lizenz und eine kreative Anhängerschaft. Mathias Huber<br />

© 3355m, 123RF.com<br />

Ein Texteditor, mit dem man Mail lesen,<br />

Aufgaben planen und Tetris spielen kann?<br />

Den hatte der spätere GNU-Gründer Richard<br />

Stallman vermutlich noch nicht im<br />

Sinn, als er 1976 die erste Inkarnation des<br />

Emacs programmierte: Es handelte sich<br />

um Makros <strong>für</strong> Teco, den Texteditor des<br />

Betriebssystems ITS, das damals im Artificial<br />

Intelligence Lab des MIT lief. Laut<br />

Legende stammt von diesen „Editing Macros“<br />

auch der Name Emacs.<br />

ITS und Teco sind längst verschwunden,<br />

ebenso die folgende Emacs-artige Software<br />

wie Zmacs, der Multics Emacs und<br />

die erste Version <strong>für</strong> Unix, geschrieben<br />

vom Java-Erfinder James Gosling 1981<br />

[1]. Überlebt hat Stallmans Variante, der<br />

GNU Emacs [2], den er 1985 veröffentlichte.<br />

Er ist heute noch der Leib-und-<br />

Magen-Editor vieler Programmierer, sofern<br />

sie nicht eine integrierte Umgebung<br />

wie Eclipse benutzen – oder den ewigen<br />

Emacs-Konkurrenten Vi (siehe Kasten<br />

„Vi – der andere Editor“).<br />

Für den Erfolg des GNU Emacs, der nun<br />

fast drei Jahrzehnte anhält, dürften mehrere<br />

Faktoren gesorgt haben, auch wenn<br />

der derzeitige Chef-Maintainer Stefan<br />

Monnier da<strong>für</strong> hauptsächlich eine große<br />

Portion Glück verantwortlich macht.<br />

Teil eines großen Plans<br />

Der Editor sollte kein einzelnes Softwareprodukt<br />

werden, Richard Stallman<br />

hatte ein komplettes System alternativer<br />

Unix-Software im Sinn. Das machte er<br />

erstmals im September 1983 im Usenet<br />

bekannt [3]: „Von Thanksgiving an<br />

werde ich ein vollständiges, Unix-kompatibles<br />

Softwaresystem namens GNU<br />

(<strong>für</strong> Gnu 's Not Unix) schreiben und an<br />

jeden kostenlos abgeben, der es brauchen<br />

kann. Unterstützung in Form von<br />

Zeit, Geld, Programmen und Hardware<br />

wird dringend benötigt.“<br />

Wenn der Plan auch nicht in allen Details<br />

aufgegangen ist, muss doch jeder zuge-<br />

ben, dass GNU-Software wie GNU Compiler<br />

Collection (GCC) und Bash heute<br />

wichtige Fundamente Unix-artiger Systeme<br />

bilden. Der Editor Emacs war unter<br />

diesen Komponenten das erste fertige<br />

Programm, das das junge GNU-Projekt<br />

1985 vorzeigen konnte, während GCC<br />

noch in der Entwicklung steckte.<br />

Dazu kam eine Lizenz, die das Weitergeben<br />

von Code ermöglichte, wie es in<br />

der akademischen Welt des MIT üblich<br />

gewesen war. Anfangs war dies die GNU<br />

Emacs General Public Licence (GPL),<br />

später machte Stallman sie <strong>für</strong> weitere<br />

Programme tauglich und veröffentlichte<br />

sie 1989 als GNU General Public License<br />

(GPL) 1.0. Sie erklärt das Teilen von Code<br />

nicht nur zu einem Recht, sondern zur<br />

Pflicht, und setzt damit die Idee eines<br />

„andersrum funktionierenden“ Copyright<br />

um – des Copyleft.<br />

Features einfach nachladen<br />

Daneben hatte sich Richard Stallman<br />

schon früher Gedanken über die Technik<br />

eines erweiterbaren und anpassbaren<br />

Editors gemacht. In einem Aufsatz <strong>für</strong> die<br />

„ACM Conference on Text Processing“<br />

[4] hielt er 1981 die grundlegende Architektur<br />

fest: Ein Basissystem, das sich zur<br />

Laufzeit durch das Laden von Bibliotheken<br />

um Features erweitern lässt. Damit<br />

legte er sich auf Programmiersprachen<br />

und Implementierungen fest, die das<br />

können. Neben Snobol und APL machte<br />

dies Lisp zum Kandidaten. Schon Gosling<br />

hatte <strong>für</strong> seine Emacs-Ausgabe ein<br />

reduziertes Lisp-artiges System namens<br />

Mocklisp gewählt.<br />

In einer Rede [5] hat Stallman 2002<br />

näher ausgeführt, wie er mit Lisp vertraut<br />

wurde und schließlich Emacs Lisp<br />

schuf, <strong>für</strong> das der Editor heute <strong>einen</strong> ein-


Abbildung 1: Code-Ausschnitt: Dank seiner leistungsfähigen Erweiterungssprache Emacs Lisp kann der Editor<br />

sogar als Psychoanalytiker mit dem Anwender in Dialog treten.<br />

gebauten Interpreter besitzt. Die Erweiterbarkeit<br />

mittels einer leistungsfähigen<br />

Programmiersprache gilt allgemein als<br />

Erfolgsrezept von Emacs.<br />

Lernen und einarbeiten<br />

Der bekennende Emacs-Fan Steve Yegge<br />

schreibt in seinem Blog [6]: „Emacs hat<br />

die gleiche Lernkurve wie HTML: Man<br />

kann ganz einfach anfangen und sich<br />

langsam hocharbeiten, ohne auf einmal<br />

Vi – der andere Editor<br />

Ein sehr langlebiges Projekt, das unter <strong>Linux</strong><br />

noch immer zum Einsatz kommt, heißt Vi (<strong>für</strong><br />

„visual“). Der Texteditor stammt aus dem<br />

Jahre 1976. Ihm gingen unterschiedliche Varianten<br />

des zeilenorientierten Unix-Editors Ed<br />

von Ken Thompson voraus, der wiederum auf<br />

dem noch älteren Qed basierte, der Mitte der<br />

60er Jahre entstanden war und dessen Geschichte<br />

Dennis Ritchie aufschrieb [7].<br />

Dank seines geringen Ressourcenbedarfs<br />

wurde Vi zum Standardeditor vieler Systeme.<br />

Das Terminalprogramm kann mit seiner ausgefeilten<br />

Tastenbelegung mehrere Befehle kombinieren.<br />

So löscht [D] [W] [.] [.] [.] den Rest<br />

des Worts rechts vom Cursor und wiederholt<br />

den Vorgang dreimal. Die kurzen Kommandos<br />

erlauben fließendes Arbeiten.<br />

Der Erfolg von Vi beruht zudem auf den drei<br />

Arbeitsmodi: Im Command Mode lassen sich<br />

simple Arbeiten erledigen (Zeilen löschen,<br />

Wörter suchen), im Insert Mode kann man Text<br />

eingeben und im Ex Mode lassen sich komplexe<br />

Befehle absetzen, etwa Suchen und Ersetzen.<br />

S<strong>einen</strong> Weg in eine <strong>Linux</strong>-Distribution fand der<br />

<strong>einen</strong> Riesenschritt bei der Komplexität<br />

zu machen.“ Das beginnt schon beim<br />

Emacs-Initiationsritual, dem Anlegen der<br />

persönlichen Konfigurationsdatei »~/.<br />

emacs«.<br />

Emacs ist bestens <strong>für</strong> die Erweiterbarkeit<br />

gerüstet: Die Bearbeitungseinstellungen<br />

<strong>für</strong> bestimmte Programmiersprachen<br />

oder Datenformate, die Modes, sind in<br />

einzelnen Lisp-Dateien abgelegt, die der<br />

Anwender mit der eingebauten Kommandozeile<br />

lädt. Diese Major Modes lassen<br />

Originaleditor aber erst im Jahre 2002. Gunnar<br />

Ritter nahm um 2000 herum den Quellcode des<br />

Vi-Erfinders Joy aus 2.11-BSD und portierte ihn<br />

<strong>für</strong> <strong>Linux</strong> und Free BSD. Doch erst zwei Jahre<br />

später änderte AT&T die Quellcode-Lizenz und<br />

erlaubte es, aus dem Original-Vi ein Open-<br />

Source-Projekt [8] zu machen.<br />

Andere waren schneller: Ende Januar 1990<br />

veröffentlichte Steve Kirkendall mit Elvis <strong>einen</strong><br />

Vi-Klon <strong>für</strong> Minix und schickte ihn an die<br />

Newsgroup Comp.os.minix [9]. Als Elvis zwei<br />

Jahre später Version 1.5 erreichte, ließ sich<br />

die Software auch unter <strong>Linux</strong> ausführen [10].<br />

Zur selben Zeit tauchte Vim unter <strong>Linux</strong> auf<br />

[11]. Bram Moolenar veröffentlichte ihn Ende<br />

1991 <strong>für</strong> Amiga, er basierte auf einem Vi-Klon<br />

namens Stevie. Der Sprung auf <strong>Linux</strong> gelang<br />

mit Version 1.24.<br />

Vim gilt als erfolgreichste Vi-Variante unter<br />

<strong>Linux</strong>, viele Distributionen leiten Vi-Aufrufe automatisch<br />

an Vim weiter. Grund da<strong>für</strong> ist neben<br />

dem Mehr an Features gegenüber Vi sicherlich<br />

auch Vimscript, das es erlaubt, den Editor um<br />

eigene Funktionen oder Makros zu erweitern.


Titelthema<br />

www.linux-magazin.de Emacs 10/2013<br />

58<br />

Abbildung 2: Verblasster Mythos: Der Fork XEmacs preist seine Vorzüge<br />

gegenüber der GNU-Variante der Software.<br />

sich durch Minor Modes um ausgewählte<br />

Features erweitern.<br />

Der Editor hält zahlreiche Anknüpfungspunkte<br />

<strong>für</strong> selbst geschriebenen Code<br />

bereit. Diese so genannten Hooks laufen<br />

etwa beim Öffnen, Schließen oder<br />

Speichern einer Datei ab und führen den<br />

eingehängten Code aus. Außerdem bietet<br />

Emacs Lisp vorgefertigte Variablen <strong>für</strong><br />

Editorkomponenten wie Fenster, Cursor<br />

und markierte Abschnitte. Das macht<br />

ihn zum „Rohmaterial, um Editoren zu<br />

bauen“, wie es Bob Glickstein in seinem<br />

Buch „Writing GNU Emacs Extensions“<br />

von 1997 ausdrückt [12]. Die Beispiele<br />

aus diesem Standardwerk funktionieren<br />

übrigens mit der aktuellen Emacs-Version<br />

immer noch.<br />

Massenhaft Erweiterungen<br />

Free-Software-Lizenz plus Programmierbarkeit<br />

haben zu einem reichen Repertoire<br />

an Emacs-Erweiterungen geführt.<br />

Es gibt kaum eine Programmiersprache,<br />

mag sie noch so neu oder esoterisch sein,<br />

<strong>für</strong> die es k<strong>einen</strong> Emacs-Modus gibt. Man<br />

kann dank der Erweiterung Gnus mit<br />

Emacs Mail und Usenet-News lesen, ihn<br />

als textbasierten Browser verwenden, ja<br />

sogar PDF-Dateien anzeigen.<br />

Anschluss an Debugger, Testwerkzeuge<br />

und Versionskontrollsysteme findet der<br />

Editor ebenfalls. Daneben ist eine gewisse<br />

Spielfreudigkeit der Emacs-Liebhaber zu<br />

bemerken, die im Emacs-Doctor gipfelt<br />

– einer Art Eliza-Programm, das wie ein<br />

Psychoanalytiker <strong>einen</strong> Dialog mit dem<br />

Benutzer führt (Abbildung 1, [13]).<br />

Diese Vielfalt gibt Stallman Recht, wenn<br />

er das Projekt Emacs als unvorhersehbar<br />

einordnet [4]: „Weder ich noch jemand<br />

anderes konnte sich<br />

<strong>einen</strong> erweiterbaren<br />

Editor vorstellen, ehe<br />

ich ihn geschrieben<br />

hatte, oder s<strong>einen</strong><br />

Wert schätzen, ehe er<br />

ihn erlebt hatte.“<br />

Viele einst externe<br />

Emacs-Erweiterungen<br />

sind im Laufe der Zeit<br />

in den Lieferumfang<br />

des Editors eingegangen.<br />

Zu den jüngeren<br />

Zugängen zählen<br />

Orgmode, ein Modus<br />

<strong>für</strong> Notizen und Aufgabenplanung, und<br />

ELPA, ein Paketmanager, der seinerseits<br />

Emacs-Erweiterungen aus Internet-Repositories<br />

installiert.<br />

Die Neuzugänge müssen unter GPL lizenziert<br />

sein, daneben ist es Voraussetzung,<br />

dass der Entwickler das Copyright an<br />

die Free Software Foundation überträgt.<br />

Das verschafft der Organisation zumindest<br />

nach US-amerikanischem Recht die<br />

Möglichkeit, Gerichtsverfahren um den<br />

Code und die Einhaltung der GPL durchzufechten.<br />

Das Emacs-Projekt galt nicht<br />

immer als aufgeschlossen. In seinem Aufsatz<br />

„The Cathedral and the Bazaar“ [14]<br />

schrieb der Open-Source-Programmierer<br />

Eric S. Raymond 1997, der Führungsstil<br />

Stallmans entspreche eher einer Kathedrale<br />

mit einem strengen Chefarchitekten<br />

als einem bunten Basar.<br />

Der Fork: XEmacs<br />

Einige Entwickler stießen sich sogar dermaßen<br />

an Projektleiter und FSF, dass sie<br />

1991 <strong>einen</strong> Fork des freien Quellcodes<br />

vornahmen und <strong>einen</strong> eigenen Emacs<br />

daraus machten. Zunächst hieß er Lucid<br />

Emacs, nach der Firma, bei der Jamie Zawinski,<br />

einer der Unzufriedenen, damals<br />

arbeitete. Ab 1994 trägt er den bekannteren<br />

Namen XEmacs [15]. Gegenstand<br />

des Zwists war die anstehende Version 19<br />

des GNU-Emacs, sie hatte sich verzögert.<br />

Zugleich wollten einige Entwickler dem<br />

bisherigen Terminalprogramm bessere<br />

GUI-Unterstützung beibringen.<br />

Was dann genau passierte, ist Thema<br />

eines jahrzehntelangen Disputs. Richard<br />

Stallman findet [16], die Neuerer hätten<br />

nicht das Gespräch mit dem Projekt gesucht<br />

und zudem bestehende Features<br />

neu implementiert. Laut Zawinski [17]<br />

akzeptierte die Free Software Foundation<br />

die Verbesserungsvorschläge und den dazugehörigen<br />

Code nicht.<br />

Dieser Fork, in Emacs-Kreisen sogar als<br />

Schisma bezeichnet, war die größte Krise<br />

des Projekts und hat die Gemeinde um<br />

den freien Editor nachhaltig gespalten.<br />

Viele Autoren von Erweiterungen dagegen<br />

bemühten sich, ihre Emacs-Lisp-Dateien<br />

unter beiden Emacs-Varianten gleichermaßen<br />

funktionstüchtig zu halten.<br />

In der GPL erlaubt<br />

In einer Mail von 1992 [17] schreibt Richard<br />

Stallman immerhin recht versöhnliche<br />

Worte: „Ich kann es den Leuten<br />

nicht übel nehmen, dass sie die Lücke<br />

gefüllt haben, die die FSF gelassen hat.<br />

Eines der Ziele von Copyleft ist es ja, so<br />

etwas zu ermöglichen – damit der Fehler<br />

eines zentralen Maintainers nicht eine<br />

ganze Community behindert.“<br />

XEmacs enthält eine Datei, die seine Vorzüge<br />

gegenüber der GNU-Variante hervorhebt<br />

(Abbildung 2): eine echte Werkzeugleiste,<br />

bessere Menüs, horizontale<br />

und vertikale Scrollbalken in allen Fenstern,<br />

Schriften und Farben auch in einem<br />

Terminal. Fast alles hat der GNU Emacs<br />

inzwischen nachgeholt, abgesehen von<br />

grafischen Tabs <strong>für</strong> die geöffneten Dateien.<br />

Die Entwicklung des XEmacs ist<br />

Abbildung 3: Sympathisch-kauzig oder eher peinlich?<br />

Emacs-Erfinder Richard Stallman inszeniert<br />

sich auf dem Desktop Summit 2009 als St. IGNUcius<br />

von der Kirche des Emacs.


mittlerweile eingeschlafen – das leise<br />

Ende eines spektakulären Forks.<br />

Editor-Folklore<br />

Emacs hat als lange bestehendes Projekt<br />

eine eigene Folklore und Kultur geschaffen.<br />

Dazu gehören Szene-eigene Witze,<br />

beispielsweise Emacs sei ein Akronym<br />

<strong>für</strong> „Escape-Meta-Alt-Control-Shift“, was<br />

sich über die Tastaturkürzel zur Bedienung<br />

lustig macht. Mindestens ebenso<br />

seltsam mutet an, wenn sich Richard<br />

Stallman bei Auftritten zum „St. IGNUcius“<br />

von der „Kirche des Emacs“ stilisiert<br />

(Abbildung 3). Interessanterweise<br />

passt zu diesem klerikalen Scherz auch<br />

das Reden vom Emacs-Schisma.<br />

Derzeit tragen offiziell 167 Personen<br />

Code zu GNU Emacs bei, in der Geschichte<br />

des Editors waren es insgesamt<br />

über 1300. Dabei spielt Richard Stallman<br />

immer noch eine wichtige Rolle. Obwohl<br />

er mittlerweile nur noch einer von rund<br />

zehn Maintainern ist – und nicht einmal<br />

der oberste –, wiegt sein Wort auf der<br />

Mailingliste [18] mehr als das anderer.<br />

Emacs-Zukunft<br />

Trotz seiner vielen Jahre bleibt Emacs in<br />

Bewegung: In den ELPA-Archiven findet<br />

man modernste Features, zum Beispiel<br />

eine Implementierung von Websockets<br />

in Emacs Lisp. Die größte Neuerung<br />

dürfte das Projekt Guile-Emacs [19] sein.<br />

Guile dient dem GNU-Projekt als Standard-Compiler<br />

und ‐VM <strong>für</strong> Lisp-artige<br />

Sprachen. In Zukunft soll er den alten<br />

Emacs-Lisp-Interpreter ersetzen. Damit<br />

gibt es nur noch eine Implementierung<br />

zu pflegen, zudem bringt Guile Nebenläufigkeit.<br />

Dadurch könnte Emacs etwa<br />

im Hintergrund E-Mails abrufen, während<br />

er vorne gerade eine Lisp-Bibliothek<br />

kompiliert.<br />

Ein weiterer Plan ist der Ausbau zur integrierten<br />

Entwicklungsumgebung, wie<br />

der Chef-Maintainer Stefan Monnier dem<br />

<strong>Linux</strong>-<strong>Magazin</strong> mitteilte. Daneben gibt<br />

es eine Forderung, die nach einer längst<br />

überfälligen Modernisierung klingt:<br />

Emacs Lisp soll Namespaces bekommen,<br />

um mehr Ordnung in die zahllosen Erweiterungspakete<br />

zu bringen [20]. Erstaunlich,<br />

dass es 30 Jahre auch ohne<br />

gegangen ist.<br />

n<br />

Infos<br />

[1] Sam Williams, „Free as in Freedom“:<br />

[http:// oreilly. com/ openbook/ freedom/​<br />

index. html]<br />

[2] GNU Emacs:<br />

[http:// www. gnu. org/ software/ emacs/]<br />

[3] Richard Stallman, „Initial GNU Announcement“:<br />

[http:// www. gnu. org/ gnu/​<br />

initial‐announcement. en. html]<br />

[4] Richard Stallman, „EMACS: The Extensible,<br />

Customizable Display Editor“:<br />

[http:// www. gnu. org/ software/ emacs/​<br />

emacs‐paper. html]<br />

[5] Richard Stallman, „My Lisp Experiences<br />

and the Development of GNU Emacs“:<br />

[http:// www. gnu. org/ gnu/ rms‐lisp. html]<br />

[6] Steve Yegge’s Blog:<br />

[http:// steve‐yegge. blogspot. de]<br />

[7] QED: [http:// cm. bell‐labs. com/ cm/ cs/ who/​<br />

dmr/ qed. html]<br />

[8] Traditional Vi:<br />

[http:// sourceforge. net/ projects/ ex‐vi/]<br />

[9] Elvis: [https:// groups. google. com/ forum/​<br />

#!original/ comp. editors/ rdUYDzANsMw/​<br />

ErR‐8j1VCfQJ]<br />

[10] Elvis läuft auf <strong>Linux</strong>: [https:// groups.​<br />

google. com/ forum/ #!searchin/ comp.​<br />

os. linux/ elvis|sort:date/ comp. os. linux/​<br />

J7y0Vy_9AAg/ iviaLaRZtXoJ]<br />

[11] Die Story von Vim:<br />

[http:// www. moolenaar. net/ vimstory. txt]<br />

[12] Bob Glickstein, „Writing GNU Emacs Extensions“,<br />

O’Reilly 1997<br />

[13] Emacs-Doctor:<br />

[http:// www. csee. umbc. edu/ courses/ 471/​<br />

papers/ emacs‐doctor. shtml]<br />

[14] „Eric S. Raymond, „The Cathedral<br />

and the Bazaar“: [http:// www. catb.​<br />

org/ ~esr/ writings/ cathedral‐bazaar/​<br />

cathedral‐bazaar/]<br />

[15] XEmacs: [http:// xemacs. org]<br />

[16] Richard Stallman, „The Origin of<br />

XEmacs“: [http:// stallman. org/ articles/​<br />

xemacs. origin]<br />

[17] Jamie Zawinski, „The Lemacs/​FSFmacs<br />

Schism“:<br />

[http:// www. jwz. org/ doc/ lemacs. html]<br />

[18] Mailingliste der Emacs-Entwickler:<br />

[http:// lists. gnu. org/ mailman/ listinfo/​<br />

emacs‐devel]<br />

[19] Guile Emacs: [http:// www. emacswiki. org/​<br />

emacs/ GuileEmacs]<br />

[20] Nic Ferrier, „Hatching a plan to add<br />

namespaces to Emacs Lisp“: [http://​<br />

nic. ferrier. me. uk/ blog/ 2013_06/​<br />

adding‐namespaces‐to‐elisp]


Titelthema<br />

www.linux-magazin.de Blender, Xfig 10/2013<br />

60<br />

Blender und das Street Performer Protocol<br />

Freigekauft<br />

In einer spektakuären Sammelaktion erwarb 2002 eine Community den Blender Publisher von den Risikokapitalgebern<br />

der gestrandeten 3-D-Firma „Not a Number“. Seither ist das Modellierungsprogramm frei, und eine<br />

Foundation lenkt die Entwicklung, Open-Movie-Projekte und Kooperationen mit der Spieleindustrie. Jan Kleinert<br />

© Scott Griessel, 123RF.com<br />

gebung (Game Engine), aber weiterhin<br />

auch mit einer nicht standardkonformen<br />

Benutzeroberfläche. Ende 2000 hatten<br />

sich mehr als eine viertel Million Anwender<br />

auf der NaN-Webseite registriert.<br />

Dem kometenhaften Aufstieg folgte der<br />

jähe Fall. Schon im April 2001 mussten<br />

ein neuer Investor aushelfen und große<br />

Teile der Mannschaft von Bord. Was blieb,<br />

war der Misserfolg: Der Ende des Jahres<br />

herausgebrachte kommerzielle Blender<br />

Publisher floppte, und die verbliebenen<br />

Investoren drehten den Geldhahn zu.<br />

1995 begann das niederländische Animationsstudio<br />

Neo Geo an Blender zu<br />

arbeiten. Die 1988 gestartete Firma, die<br />

wegen ihrer preisgekönten Produktionen<br />

schnell zur landesweit größten aufstieg,<br />

hatte Mitte der 90er Jahre erkannt, dass<br />

ihr bislang eingesetztes 3-D-Programm<br />

unrettbar veraltet war. Der damalige<br />

künstlerische und Software-Entwicklungsleiter,<br />

Ton Roosendaal (Abbildung<br />

1), entschied sich <strong>für</strong> eine Neuentwicklung<br />

im eigenen Haus.<br />

Die Software war offenbar so gut, dass<br />

auch fremde Animationskünstler sie<br />

gerne einsetzen wollten. Darum gründete<br />

Roosendaal 1998 ein neues Unternehmen,<br />

das die Entwicklung und Vermarktung<br />

von Blender übernehmen sollte. Not<br />

a Number (NaN), so der etwas seltsame<br />

Name, baute Neo Geo Blender bis Ende<br />

der 90er zum plattformunabhängigen,<br />

professionellen Werkzeuge <strong>für</strong> 3-D-Modellierung<br />

und ‐Animation aus. Das Produkt<br />

sorgte schon allein deshalb <strong>für</strong> viel<br />

Ausehen, weil NaN keine Lizenzkosten<br />

da<strong>für</strong> verlangte – eine Revolution in einem<br />

Segment, in dem mehrere tausend<br />

US-Dollar pro Kopie üblich waren.<br />

Roosendaals Geschäftsmodell war es,<br />

kommerzielle Produkte und Dienstleistungen<br />

rund um Blender anzubieten. Die<br />

Software selbst sollte sich künftig auch<br />

zum Designen von interaktiven 3-D-Inhalten<br />

eignen. Dazu benötigte Not a Number<br />

weiteres Kapital, das zu besorgen auf<br />

dem Scheitelpunkt der so genannten Dotcom-Blase<br />

sich als leichtes Unterfangen<br />

erwies. Im Frühjahr 2000 sammelten die<br />

Blender-Macher umgerechnet 4,5 Millionen<br />

Euro bei Risikokapitalgebern ein. Der<br />

weitere Verlauf gleicht den Geschichten<br />

jener Zeit bis aufs Haar.<br />

Steil rauf, steil hinab<br />

NaN expandierte auf 50 Mitarbeiter weltweit,<br />

im Sommer 2000 erschien Blender<br />

2.0 mit erstmals integrierter Echtzeitum-<br />

Foundation soll's richten<br />

Mit dem Ende von Not a Number drohte<br />

auch Blender das Aus. Auf der Haben-<br />

Seite standen die zufriedenen Kunden<br />

der Kaufversion und eine fast enthusiastische<br />

Benutzer-Community der kostenlosen<br />

Version. Um seine Lebensaufgabe<br />

nicht beerdigen zu müssen, gründete Ton<br />

Abbildung 1: Ton Roosendaal (hier: 2008) ist seit<br />

Neo Geo, Not a Number und der Foundation die<br />

Vaterfigur von Blender.<br />

Photo: William Maanders/​CC-BY 3.0


Abbildung 2: Gut gebrüllt, Löwe – der mit Blender gerenderte „Steampunk Nemean Lion“ ist nur ein Beispiel<br />

da<strong>für</strong>, dass das Projekt prima dasteht.<br />

Roosendaal im März 2002 die Blender<br />

Foundation als Non-Profit-Gesellschaft.<br />

Im Juli 2002 überredete er die Investoren,<br />

die Rechte am Quellcode und an<br />

dem Markennamen herauszugeben, falls<br />

die Foundation 100 000 Euro auftreiben<br />

könne. Roosendaal und eine Gruppe von<br />

Freiwilligen, darunter ehemalige NaN-<br />

© Kevin Hays<br />

Angestellte, starteten daraufhin die „Free<br />

Blender“-Kampagne. Mehr als 1300 Nutzer<br />

und Firmen schrieben sich als Mitglied<br />

ein oder spendeten anonym. Der<br />

Mindestbetrag lab bei 50 Euro. In nur<br />

sieben Wochen hatten die Aktivisten die<br />

geforderte Summe beieinander und übergaben<br />

sie der Abwicklungsfirma „NaN<br />

Holding BV“. Am 13. Oktober 2002 veröffentlichte<br />

die Foundation Blender unter<br />

der GNU General Public License.<br />

Das Street Performer<br />

Protocol<br />

Die „Free Blender“-Kampagne gilt als<br />

mustergültig angewendetes Beispiel <strong>für</strong><br />

das so gennannte Street Performer Protocol<br />

(SPP), das die Kryptologen John<br />

Kelsey und Bruce Schneier entwickelt haben.<br />

Als Gegenentwurf zu DRM soll SPP<br />

im Internetzeitalter schöpferischer Werke<br />

fördern, um sie gemeinfrei öffentlich zugänglich<br />

zu machen.<br />

Blender, Xfig 10/2013<br />

Titelthema<br />

www.linux-magazin.de<br />

61


Titelthema<br />

www.linux-magazin.de Blender, Xfig 10/2013<br />

62<br />

Dazu kündigt der Urheber einer Software,<br />

eines Musikstücks oder Buchs an,<br />

sein Werk frei zu veröffentlichen, sobald<br />

er <strong>einen</strong> bestimmten Geldbetrag erhält.<br />

Nutzer senden bei Interesse eine Summe<br />

an <strong>einen</strong> Verwalter. Kommt genug bei<br />

dem zusammen, erfüllt der Urheber sein<br />

Versprechen, andernfalls kriegen die Interessenten<br />

ihr Geld zurück.<br />

Das Crowdfunding-ähnliche SPP funktioniert<br />

nur, wenn der Urheber <strong>einen</strong> guten<br />

Ruf vorzuweisen hat, die Spender also<br />

davon ausgehen können, dass das angekündigte<br />

Werk ihre Erwartungen erfüllen<br />

wird. Blender hatte sich Popularität<br />

erworben, weil die Software lange Zeit<br />

<strong>für</strong> jedermann kostenfrei erhältlich war.<br />

Das Street Performer Protocol eignet sich<br />

damit bestens zur (Weiter)-Finanzierung<br />

von Open-Source-Projekten, die bereits<br />

etablierte und beliebte Software vorzuweisen<br />

haben.<br />

Durch nichts mehr zu<br />

erschüttern<br />

Seit jenen denkwürdigen Wochen Ende<br />

2002 steht Blender wieder blendend da<br />

(Abbildung 2). Ton Roosendaal, der auf<br />

Presseanfragen schon mal etwas patzig<br />

reagiert, und die Foundation leiten die<br />

Entwicklung, die über die Welt verstreute<br />

Programmierer leisten. Die Anwender<br />

modellieren mit der aktuellen Version<br />

dreidimensionale Körper, texturieren und<br />

Abbildung 3: Mit dem Uralt-Vektor-Zeichenprogramm erzeugt die <strong>Linux</strong>-<strong>Magazin</strong>-Redaktion bis heute ihre<br />

Seitenpläne <strong>für</strong> jede Ausgabe.<br />

rendern sie. Außerdem können sie Filmsequenzen<br />

damit animieren, mischen<br />

und auf den eingebauten Videoschnitteditor<br />

und eine Spiel-Engine zugreifen.<br />

Für Anwenderskripte haben die Blender-<br />

Macher Python bestimmt.<br />

Python ist neben C und C++ auch die<br />

Sprache, in der Blender selbst geschrieben<br />

ist. Die Entwickler arbeiten im<br />

Moment an der Version 2.69, <strong>für</strong> die<br />

<strong>Linux</strong>-Version benutzen sie Eclipse, Qt<br />

Creator, Netbeans und Kdevelop. Das so<br />

genannte Blender Institut kümmert sich<br />

mit drei bis fünf Angestellten um Trainings<br />

und Open-Movie-Projekte wie „Elephants<br />

Dream“, „Yo Frankie!“, „Big Buck<br />

Bunny“, „Sintel“ oder „Tears of Steel“.<br />

Außerdem gibt es Kooperationen mit der<br />

Spiele-Industrie. <br />

n<br />

Infos<br />

[1] Blender, Blender Foundation und Blender<br />

Institut: [http:// www. blender. org]<br />

[2] Nedit: [http:// www. nedit. org]<br />

[3] Xfig: [http:// xfig. org]<br />

Wenn alles getan ist<br />

Ursprünglich sollte es in diesem <strong>Magazin</strong>-<br />

Schwerpunkt <strong>einen</strong> eigenen Artikel über die<br />

Projekte Nedit [2] und Xfig [3] geben, die<br />

beide zwar optisch angestaubte, aber sehr<br />

funktionale Programme hervorgebracht haben.<br />

Wegen einiger besonderer Eigenschaften sind<br />

beide Tools sogar Dauergäste in den Redaktionsräumen<br />

des <strong>Linux</strong>-<strong>Magazin</strong>s (Abbildung 3).<br />

Doch aus dem Vorhaben wurde nichts – beide<br />

Projekte sind tot, wie sich schnell herausstellte.<br />

Nedit hat im Oktober 2004 die letzte stabile<br />

Version, 5.5, herausgegeben, Mails an das Projekt<br />

werden nicht mehr zugestellt. Die Xfig-<br />

Entwicklung kam 2002 mit Version 3.2.4 ins<br />

Stocken, die seit 2009 aktuelle 3.2.5b behebt<br />

im Wesentlichen Bugfixes. Brian V. Smith, der<br />

letzte führende Kopf von Xfig, gibt bereitwillig<br />

Auskunft über die Hintergründe. Seit einem<br />

internen Jobwechsel bei seinem Arbeitgeber,<br />

dem Lawrence Berkeley National Laboratory,<br />

fehle ihm seit 2004 schlicht die Zeit, um an Xfig<br />

weiterzuarbeiten. Denn an der Software müsste<br />

(zu) viel getan werden, da sie auf Athena fußt,<br />

einem der ersten X-Window-Widgets.<br />

Supoj Sutanthavibul an der University of Texas<br />

in Austin hatte bereits 1985 mit Fig begonnen.<br />

Der Entwickler Ken Yap portierte Fig von Sun<br />

View auf X Window, Brian Smith stieß 1989 dazu<br />

und blieb. Im Rückblick sagt er, die Arbeit an<br />

Xfig geliebt und gerne Features anhand der<br />

Wünsche der Benutzer implementiert zu haben.<br />

Großen Streit zwischen den Entwickler habe es<br />

nie gegeben. Nur einmal habe ein anderer das<br />

Look & Feel des ganzen GUI ungefragt komplett<br />

geändert, was ihn anfangs ärgerte. Aber Smith<br />

habe sich überzeugen lassen, dass die neue<br />

Oberfläche besser als die alte sei.<br />

Jenseits jeder Theorie<br />

Auch nach 15 Jahren Entwicklung kann Smith<br />

übrigens kein lehrbuchmäßiges Entwicklungsmodell<br />

benennen, nach dem Xfig entstanden<br />

wäre. Xfig reiht sich damit ein in die große<br />

Mehrheit der <strong>für</strong> diesen <strong>Magazin</strong>-Schwerpunkt<br />

befragten Projekte – kaum ein Entwickler<br />

konnte <strong>für</strong> sein Projekt bestimmen, was Generationen<br />

von Informatikern an ihren Hochschulen<br />

gebüffelt haben.<br />

Nedit und Xfig gehören damit einer eigenen<br />

Gruppe von Projekten an, jener der erfolgreich<br />

abgeschlossenen. Die ist viel kleiner als die<br />

der eingestellten Projekte, die keine produktiv<br />

einsetzbare Software hervorgebracht haben.<br />

Für Anwender solcher Tools ist freilich nicht<br />

alle eitel Sonnenschein, denn der technische<br />

Fortschritt nagt an Sicherheit und Integrierbarkeit:<br />

Niemand Zentrales sorgt sich mehr um das<br />

Beheben von Sicherheitslücken, und die Sofware<br />

linkt gegen Uraltversionen von Bibliotheken.<br />

Wenn die User Glück haben, übernehmen<br />

die <strong>für</strong> das Paket zuständigen Maintainer der<br />

<strong>Linux</strong>-Distributionen den verwaisten Pflegejob<br />

ein bisschen, Open Source sei Dank.


In eigener Sache: DELUG-DVD<br />

Kali, Enquete, E-Book, Tor<br />

Einführung 12/2010 10/2013<br />

Software<br />

Auch diesen Monat bekommen DELUG-Käufer wieder eine randvolle DVD: Neben dem Backtrack-Nachfolger Kali<br />

<strong>Linux</strong> finden sich dort der komplette Abschlussbericht der Enquetekommission „Internet“, ein E-Book über<br />

Routing und Switching und mehrere Stunden Videos von Suse sowie übers Tor-Netzwerk und Prism. Markus Feilner<br />

www.linux-magazin.de<br />

63<br />

Inhalt<br />

64 Bitparade<br />

RSS- oder doch lieber Atom-Feeds? So<br />

genannte Planeten fassen die Inhalte<br />

auf dem eigenen Server übersichtlich<br />

zusammen.<br />

72 Tooltipps<br />

Cputool 0.0.6, Finit 1.8, Fossil 1.26,<br />

Cscope 15.8a, Keybox 1.08.50 und Playshell<br />

0.2<br />

Neben dem normalen <strong>Linux</strong>-<strong>Magazin</strong><br />

ohne Datenträger gibt es die DELUG-<br />

Ausgabe mit Monats-DVD, bei der die<br />

Redaktion den Datenträger nach einem<br />

speziellen Konzept zusammenstellt: In<br />

einer Art modularem System enthält<br />

er Programme und Tools, die in der jeweiligen<br />

<strong>Magazin</strong>-Ausgabe getestet und<br />

besprochen werden. Zudem führt eine<br />

HTML-Oberfläche durch von der Redaktion<br />

besonders empfohlene Software.<br />

Kali <strong>Linux</strong><br />

Von der DVD bootet Kali <strong>Linux</strong>. Die<br />

Nachfolgerin der überaus beliebten Security-Distribution<br />

Backtrack ist kürzlich<br />

in Version 1.0.4 erschienen und enthält<br />

eine reichhaltige Auswahl an Security-<br />

Werkzeugen <strong>für</strong> Sicherheitsprüfungen<br />

jeder Art. Die Entwickler stiegen beim<br />

Modellwechsel von Ubuntu auf Debian<br />

um und bringen auf Wunsch der Anwendergemeinde<br />

jede Menge neuer Programme<br />

wie das Toolkit Pass the Hash,<br />

Unicornscan, Ghost Phisher und Bully.<br />

Enquete-Bericht<br />

Wer auf die Silberscheibe dagegen mit<br />

dem Browser zugreift, findet im HTML-<br />

Menü gleich als Erstes den Abschlussbe-<br />

richt der Enquetekommission „Internet“<br />

des Deutschen Bundestages, drei Jahre<br />

hat das Gremium gearbeitet. In den 14<br />

Berichten mit umfangreichen Bestandsaufnahmen<br />

und Handlungsempfehlungen<br />

richtet die Kommission den Blick<br />

in die Zukunft. Diese DVD enthält alle<br />

veröffentlichten Berichte zum Nachlesen<br />

im PDF-Format. Ihr Umfang beträgt zusammen<br />

etwa 1300 Seiten. Für <strong>Linux</strong>er<br />

von besonderem Interesse ist wohl der<br />

Bericht der Arbeitsgruppe „Interoperabilität,<br />

Standards, Freie Software“.<br />

E-Book: „Praxiskurs<br />

Routing und Switching“<br />

Exklusiv auf der DVD findet sich O’Reilllys<br />

„Praxiskurs Routing & Switching“ (Abbildung<br />

1). Das E-Book wirft auf etwa 200<br />

Seiten <strong>einen</strong> tiefen Blick in die Welt der<br />

Netzwerke, Nachrichtenverbindungen<br />

und Protokolle sowie ihre Strukturen und<br />

Arbeitsweisen. Neben den theoretischen<br />

Grundlagen gibt das Werk am Ende jedes<br />

Kapitels praktische Beispiele, um das Gelesene<br />

zu üben und zu festigen. Regulär<br />

kostet das E-Book beim Verlag O’Reilly 20<br />

Euro, <strong>für</strong> Besitzer der DELUG-Ausgabe<br />

des <strong>Linux</strong>-<strong>Magazin</strong>s dagegen nichts.<br />

Ein PDC, sechs Stunden<br />

Videos und viel Software<br />

Die Virtual Appliance Turnkey Domain<br />

Controller arbeitet, wie der Name schon<br />

sagt, als vollwertiger primärer Domain<br />

Controller (PDC). Mehrere integrierte<br />

Webmodule, beispielsweise ein eigens<br />

da<strong>für</strong> angepasstes Webmin, erlauben es<br />

dem Admin, selbst komplexe Strukturen<br />

und Hierarchien auf dem Samba-PDC abzubilden,<br />

der dann als Anmeldeserver <strong>für</strong><br />

heterogene Netze arbeitet.<br />

Abbildung 1: Auf der DELUG-DVD als PDF- und Epub-<br />

Datei: Der Routing-Praxiskurs von Bruce Hartpence<br />

<strong>für</strong> Studenten und Admins.<br />

Doch damit nicht genug: Im HTML-Menü<br />

auf der DVD finden Leser noch weitere<br />

exklusive Einträge, zum Beispiel mehr als<br />

sechs Stunden Videos über Tor (mit dem<br />

Gründer des Anonymisierungs-Netz werks<br />

Tor, Roger Dingledine, und Tor-Evangelist<br />

Jacob Appelbaum), aber auch den Keynotes<br />

der Open Suse Conference 2013 in<br />

Thessaloniki mit Kolab-CEO Georg Greve,<br />

Suses Adrian Schröter, Alberto Planas, Jos<br />

Poortvliet und Suse-Vizepräsident Ralf<br />

Flaxa. Sie referieren über Suse-Zahlen,<br />

‐Strategie, ‐Community, die Netzpolitik in<br />

Zeiten von Prism, aber auch den Betrieb<br />

des eigenen Build Service.<br />

Wem das noch nicht reicht, der bedient<br />

sich in der reichhaltigen Softwaresammlung<br />

aus Mosh, Containers, Vim 7.4, den<br />

Tooltipps und den gesammelten News-<br />

Aggregatoren aus der Bitparade inklusive<br />

der Liste der im Artikel beschriebenen<br />

Newsfeeds als handlicher OPML-Datei<br />

zum leichten Importieren und Testen. n


Software<br />

www.linux-magazin.de Bitparade 10/2013<br />

64<br />

Vier Feed-Aggregatoren im Test<br />

Klasse Konstellationen<br />

Die tägliche Dosis Nachrichten aus der Open-Source-Szene, Science-Fiction- und Geek-Podcasts, Webcomics,<br />

Blogs und vieles mehr bieten RSS- oder Atom-Feeds. So genannte Planeten fassen die Inhalte auf dem eigenen<br />

Server übersichtlich zusammen. Mela Eckenfels, Heike Jurzik<br />

News (Atom 1.0) als reine Textfeeds,<br />

in der Kategorie Webcomic traten Xkcd<br />

(Atom 1.0) sowie Geek & Poke (RSS 2.0<br />

via Feedburner) an. Als Videocasts ergänzten<br />

sie LE Talk (RSS 2.0), Ubuntu Video<br />

Cast (RSS 2.0) und <strong>Linux</strong> in the Shell<br />

(RSS 2.0), als Podcasts waren Hacker<br />

Pub lic Radio (RSS 2.0), Geek’s Guide to<br />

the Galaxy (RSS 2.0) und Chaosradio Express<br />

(RSS 2.0) dabei. Der Youtube-Kanal<br />

Household Hacker (RSS 2.0) ergänzte<br />

den bunten Reigen. Die OPML-Testdatei<br />

erzeugte Sage <strong>für</strong> Firefox [8].<br />

© Iryna Denysova, 123RF.com<br />

„RSS ist tot!“, m<strong>einen</strong> die Internetgiganten<br />

und lassen den Worten Taten folgen.<br />

So beerdigte Google kürzlich den<br />

Google Reader, <strong>einen</strong> der beliebtesten<br />

Web-basierten Feedreader. Auch Twitter<br />

hat die Unterstützung von RSS-Feeds <strong>für</strong><br />

die Nutzerinhalte inzwischen endgültig<br />

eingestellt. „RSS lebt!“, kontert der Rest<br />

der Netzgemeinde und will auf die Aggregatoren<br />

nicht verzichten. Anbieter wie<br />

Flipboard [1], Inoreader [2] und Pulse<br />

[3] standen flugs bereit, um die verprellten<br />

Google-Kunden abzuholen. Doch die<br />

„Readerkalypse“ erinnerte die meisten<br />

vor allem daran, dass bei Clouddiensten<br />

nur eines sicher ist: Unter gehen sie irgendwann<br />

alle.<br />

Auf der sicheren Seite ist, wer <strong>einen</strong><br />

Planeten sein Eigen nennt. Ein solcher<br />

Feedreader <strong>für</strong> Aggregator-Dienste läuft<br />

auf dem eigenen oder einem gemieteten<br />

(Root-)Server und fasst Blogs, Nachrichten,<br />

Webcomics und Videocasts zusammen.<br />

2004 entstand das erste dieser<br />

Programme, das damals die Blogs der<br />

Debian- und Gnome-Entwickler unter einer<br />

Oberfläche organisierte.<br />

Planet Planet [4] macht als „Ur-Planet“<br />

den Auftakt in diesem Test. Im Vergleich<br />

treten Moon Moon [5], Planet Venus [6]<br />

und Tiny Tiny RSS [7] an. Die Tester<br />

installierten die Reader auf einem Debian-Wheezy-Server,<br />

den sie mit Apache,<br />

MySQL und PHP zu einem klassischen<br />

LAMP-System ausbauten.<br />

<strong>Alle</strong> vier Kandidaten sollten zeigen, wie<br />

sie mit unterschiedlichen Feedsorten umgehen,<br />

ob der Anwender Einfluss auf die<br />

Anzeige hat, ob es <strong>einen</strong> Zugriffsschutz<br />

<strong>für</strong> private Planets gibt, wie die Darstellung<br />

der Artikel und der eingebundenen<br />

Medien gelingt und ob Import- und ​Exportfunktionen<br />

enthalten sind.<br />

Die Tester verfütterten im Einzelnen folgende<br />

Feeds: <strong>Linux</strong>-<strong>Magazin</strong> News (RSS<br />

2.0), KDE News (RSS 2.0) und Gnome<br />

E Planet Planet<br />

Die Entwickler Jeff Waugh and Scott<br />

James Remnant begannen 2004 die Arbeit<br />

an Planet Planet [4] mit dem Ziel,<br />

die Blogs ihrer Gnome- und Debian-Kollegen<br />

unter <strong>einen</strong> Hut zu bringen. Die<br />

Software baut auf Mark Pilgrims Universal<br />

Feedparser [9] und der Template-<br />

Engine Htmltmpl von Tomas Styblo [10]<br />

auf. Planet Planet hat seit 2006 keine<br />

Fortschritte gemacht; Version 2.0 war<br />

die letzte Release. Dennoch setzen viele<br />

Anwender immer noch auf diesen Ur-<br />

Planeten, der in Python implementiert<br />

ist und auch unter der Python-Lizenz<br />

steht. Eine Datenbank benötigt der erste<br />

Testkandidat nicht. Auf einem typischen<br />

LAMP-System gilt es aber, vor der Einrichtung<br />

Python in Version 2.1 (besser<br />

2.3 oder neuer) zu installieren.<br />

Planet-Software<br />

Auf der DELUG-DVD dieses<br />

DELUG-DVD<br />

<strong>Magazin</strong>s finden Sie die in diesem Artikel<br />

getesteten Programme Planet Planet (2.0),<br />

Moon Moon (8.12), Planet Venus (0~bzr116)<br />

und Tiny Tiny RSS (1.9). Zusätzlich ist die<br />

OPML-Datei mit den getesteten Feeds dabei.


Um Planet Planet in Betrieb zu nehmen,<br />

entpacken Anwender das Quellpaket in<br />

ein beliebiges Verzeichnis, allerdings<br />

nicht direkt ins Document-Root. Im<br />

nächsten Schritt wandert der Inhalt des<br />

Ordners »examples« in ein neues Verzeichnis<br />

(im Test »bitparade«). Die beiden<br />

Dateien »config.ini« und »index.html.<br />

tmpl« (entweder aus »examples/basic«<br />

oder aus »examples/fancy«) kopieren<br />

Nutzer ebenfalls direkt ins Verzeichnis<br />

hinein. Wer das Design »fancy« nutzen<br />

möchte, der kopiert ebenfalls das Stylesheet<br />

und optional die Bilder aus dem<br />

Ordner »output« ins Hauptverzeichnis<br />

des Planeten.<br />

Der Name des Planeten, die URL und<br />

weitere Informationen gehören in die<br />

Datei »config.ini«. Außerdem ersetzt der<br />

Benutzer dort überall »examples« in der<br />

Option »template_files« durch den vorher<br />

gewählten Verzeichnisnamen und definiert<br />

das Verzeichnis auf dem Webserver,<br />

zum Beispiel über folgende Anweisung:<br />

output_dir = /var/www/planetplanet<br />

Am Ende der Datei befindet sich die Liste<br />

der Feeds. Ein Eintrag besteht in der<br />

»basic«-Konfiguration aus zwei Zeilen:<br />

[http://www.linux‐magazin.de/rss/feed/news]<br />

name = <strong>Linux</strong>‐<strong>Magazin</strong> News<br />

Bitparade 10/2013<br />

Software<br />

www.linux-magazin.de<br />

65<br />

Die Feedadresse steht in eckigen Klammern;<br />

darunter folgt ein Name. Die<br />

»fancy«-Vorlage bietet <strong>für</strong> jeden Eintrag<br />

drei weitere Zeilen <strong>für</strong> die Hackergotchi-<br />

Konfiguration [11]. Planet Planet erwartet<br />

die Bilder im erwähnten Verzeichnis<br />

»output/images«.<br />

Damit ist der Planet betriebsbereit. Zum<br />

Start geben Anwender »./planet.py bitparade/config.ini«<br />

ein. Damit Planet Planet<br />

regelmäßig neue Beiträge abholt, richtet<br />

der Admin <strong>einen</strong> Cronjob ein. Dabei sollte<br />

er beachten, den Befehl im richtigen Verzeichnis<br />

auszuführen, zum Beispiel:<br />

Abbildung 1: Einige der Feeds konnte Planet Planet nicht einsammeln und meldete verschiedene HTTP-<br />

Fehlercodes. Da die anderen Testkandidaten diese erfassten, lag das Problem nicht bei den Feeds selbst.<br />

55 */1 * * * root cd /home/planet/U<br />

planetplanet/; /home/planet/planetplanet/U<br />

planet.py bitparade/config.ini<br />

Wer mehrere Feedreader auf einem System<br />

betreiben möchte, der kopiert das<br />

»examples«-Verzeichnis beliebig oft und<br />

gibt den Planeten in der zugehörigen<br />

»config.ini« jeweils <strong>einen</strong> eigenen Ordner<br />

»output_dir«.<br />

Planetoid<br />

Abbildung 2: Während Planet Planet die Bilder des Webcomics Xkcd einbindet, entfernt er aus dem Hacker<br />

Public Radio die Audiodateien. Auch andere verlinkte Elemente ersch<strong>einen</strong> nicht als Links, sondern als Text.<br />

Planet Planet unterstützt laut Aussagen<br />

der Entwickler RSS-, Atom- und OPML-<br />

Feeds. Im Test gelang der Import jedoch<br />

nicht immer. Probleme gab es immer wieder<br />

mit den beiden Atom-Feeds Gnome<br />

News (siehe Abbildung 1) und Xkcd, die<br />

mit Fehlercode 500 (Internal Server Error)<br />

abbrachen. Ab und zu streikten auch<br />

Geek’s Guide to the Galaxy und <strong>Linux</strong> in<br />

the Shell (beide RSS 2.0) und meldeten<br />

403 (Forbidden).<br />

Die größte Schwäche der Software ist<br />

allerdings die mangelhafte Importmöglichkeit.<br />

Planet Planet bietet nicht an,<br />

eine Sammlung aus einer externen Datei<br />

einzulesen. Wer nicht alle Adressen


Software<br />

www.linux-magazin.de Bitparade 10/2013<br />

66<br />

von Hand per Copy & Paste übertragen<br />

möchte, der bearbeitet vorhandene<br />

OPML-Dateien mit Shellwerkzeugen und<br />

extrahiert die URL und den Namen. Besser<br />

sieht es beim Export aus. Die Software<br />

generiert nach jedem »planet.py«-<br />

Aufruf je nach verwendetem Template<br />

die Dateien »atom.xml«, »foafroll.xml«,<br />

»rss10.xml«, »rss20.xml« und »opml.xml«<br />

im Planet-Verzeichnis.<br />

In der Voreinstellung fasst Planet Planet<br />

60 Einträge der aggregierten Feeds zusammen.<br />

Mit den Optionen »items_per_<br />

page« (Anzahl der Artikel auf der Seite)<br />

und »days_per_page« (maximales Alter<br />

der Einträge) passt der Admin die Anzeige<br />

in der Datei »config.ini« an. Dabei<br />

sollte er sich nicht von der Bezeichnung<br />

„per page“ irritieren lassen und zu niedrige<br />

Werte wählen, denn der erste Testkandidat<br />

kennt nur seine Startseite und<br />

bietet nicht an, zu älteren Einträgen und<br />

weiteren Seiten zurückzublättern. Dabei<br />

hat »days_per_page« mehr Gewicht. Stellt<br />

der Verwalter hier beispielsweise nur fünf<br />

Tage ein und ersch<strong>einen</strong> in dieser Zeit nur<br />

zehn Beiträge, dann enthält der Planet<br />

recht wenige Artikel.<br />

Planet Planet kann die Feeds nicht nach<br />

Kategorien sortieren und bietet keinerlei<br />

Zugriffsschutz; daher haben viele Blogbetreiber<br />

Planeten ungefähr so gerne wie<br />

Zahnschmerzen. Die Aggregatoren übernehmen<br />

je nach Konfiguration die Inhalte<br />

vollständig und verursachen damit den<br />

von Google angeprangerten duplizierten<br />

Content, der den Pagerank in den Keller<br />

sausen lässt.<br />

Verantwortungsbewusste Admins sichern<br />

eine Planet-Planet-Installation via ».htaccess«<br />

ab und verbieten den Zugriff <strong>für</strong><br />

Suchmaschinen über <strong>einen</strong> Eintrag in der<br />

Datei »robots.txt«:<br />

Software nicht. Eingebettete Bilder zeigt<br />

sie an; Video- und Audiodateien entfernt<br />

sie jedoch (siehe Abbildung 2).<br />

E Moon Moon<br />

Der zweite Testkandidat ist laut Aussage<br />

seines Entwicklers Maurice Svay<br />

„lächerlich einfach, versammelt einfach<br />

nur Feeds und gibt sie auf einer Seite<br />

aus“. Viel mehr ist über Moon Moon [5]<br />

nicht in Erfahrung zu bringen. Das unter<br />

der BSD-Lizenz stehende Programm ist<br />

in PHP geschrieben und benötigt mindestens<br />

Version 5.3. Eine Datenbank ist nicht<br />

nötig; aktuell ist Version 8.12.<br />

Die Installation ist mit wenigen Handgriffen<br />

erledigt: Der Anwender lädt die<br />

Zip-Datei von der Projektseite herunter,<br />

entpackt sie im Verzeichnis des Webservers<br />

und öffnet die Datei »install.php« im<br />

Browser. Moon Moon testet, ob alle Voraussetzungen<br />

erfüllt sind, und startet die<br />

Einrichtung. Danach löschen Benutzer<br />

»install.php« und rufen im Browser das<br />

Unterverzeichnis »admin« auf.<br />

In einer Eingabemaske fügen sie die<br />

gewünschten Feeds hinzu (siehe Abbildung<br />

3). Ist die genaue Adresse einer<br />

Quelle nicht bekannt, reicht es jedoch<br />

schon, eine normale URL einzugeben,<br />

und Moon Moon versucht eingebettete<br />

Feeds selbstständig zu finden.<br />

Das Interface zum Hinzufügen wirkt dennoch<br />

unvollständig, denn es fehlt eine<br />

Möglichkeit, OPML-Dateien zu importieren<br />

oder mehrere Feeds auf einmal zu<br />

laden. Die Datei »custom/people.opml«<br />

enthält alle von Moon Moon abonnierten<br />

Feeds, sodass der Export gut gelingt.<br />

Moon Moon kann laut Webseite mit RSSund<br />

Atom-Feeds umgehen, zeigte von<br />

Letzteren allerdings den Namen in der<br />

Seitenleiste nicht immer an. Benutzer tragen<br />

diese Informationen gegebenenfalls<br />

über den Admin-Bereich der Weboberfläche<br />

von Hand ein.<br />

Auch danach holperte die Aktualisierung<br />

einiger Adressen aber von Zeit zu Zeit.<br />

Ein Problem der Feeds selbst konnten<br />

die Tester ausschließen, denn Planet<br />

Venus und Tiny Tiny RSS stellten die<br />

Inhalte richtig dar. Auch der Youtube-<br />

Kanal bereitete zunächst Ärger, denn die<br />

Planet-Software verschluckte sich an der<br />

Datumsangabe und erkannte somit alle<br />

Inhalte als brandneu. Abhilfe schaffte,<br />

die URL in der von Firefox Sage generierten<br />

OPML-Datei zu kürzen und alles<br />

hinter »uploads« abzuschneiden.<br />

User‐agent: *<br />

Disallow: /planetplanet<br />

Die Länge der gesammelten Artikel können<br />

Anwender, wenn auch nur rudimentär,<br />

über das verwendete Template<br />

steuern. Sowohl »basic« als auch »fancy«<br />

zeigen in der Voreinstellung immer die<br />

volle Länge an. Wer von jedem Beitrag<br />

immer nur <strong>einen</strong> kurzen Abschnitt sehen<br />

möchte, der ersetzt in der Datei »index.<br />

html.tmpl« die Anweisung »content«<br />

durch »summary«. Eine Möglichkeit, Beiträge<br />

als gelesen zu markieren, bietet die<br />

Abbildung 3: Moon Moon bietet über die Admin-Seite der Weboberfläche eine einfache Eingabemaske zum<br />

Hinzufügen von Feeds. Den Namen und den Link zur Webseite generiert der Planet automatisch.


Probleme mit den Zeitangaben hatte<br />

Moon Moon des Öfteren. Manchmal waren<br />

diese gar nicht vorhanden, manchmal<br />

erschien »undefined«. Die Autorennamen<br />

der einzelnen Beiträge tauchten ebenfalls<br />

nicht immer auf.<br />

Kleiner Trabant<br />

Moon Moon aktualisiert die Feeds, wenn<br />

Anwender die Startseite besuchen oder<br />

wenn der Verwalter im Adminbereich die<br />

Schaltfläche »Purge cache« betätigt. Ein<br />

Cronjob ist nicht erforderlich. Wer diese<br />

Automatik dennoch einrichten möchte,<br />

der nutzt Programme wie Wget oder<br />

Curl, um <strong>einen</strong> GET-Request an die Datei<br />

»cron.php« zu schicken.<br />

Moon Moon sortiert nicht nach Kategorien<br />

und bietet ebenfalls k<strong>einen</strong> Zugriffsschutz.<br />

Genau wie beim ersten Testkandidaten<br />

regeln Administratoren Letzteres<br />

über die Dateien ».htaccess« und »robots.<br />

txt«. Die Anzahl der eingeblendeten Einträge,<br />

deren Länge oder Anzeigedauer<br />

beeinflussen Anwender über die Datei<br />

»custom/config.yml«.<br />

Im Test gelang dies nicht <strong>für</strong> alle Feeds,<br />

und Moon Moon ignorierte beispielsweise<br />

stets die maximale Länge <strong>für</strong> Posts,<br />

zeigte mal eine Zeile, mal den gesamten<br />

Artikel an. Fünf verschiedene CSS-Styles<br />

im Verzeichnis »custom/style« tauchen<br />

den Mond jeweils in ein anderes Licht.<br />

Anwender bestimmen das Template über<br />

<strong>einen</strong> Eintrag in der Datei »views/default/<br />

head.tpl.php«.<br />

Über den Link »See all headlines« in der<br />

Sidebar erreichen Benutzer das Moon-<br />

Moon-Archiv (Abbildung 4). Hier finden<br />

sich Verknüpfungen zu Artikeln des<br />

aktuellen Tages, der Woche oder des<br />

Monats. <strong>Alle</strong>s, was weiter zurückliegt,<br />

sortiert der Feed-Aggregator unter »Older<br />

items« ein.<br />

E Planet Venus<br />

Der Software-Entwickler Sam Ruby<br />

brachte den Planet-Planet-Ableger 2006<br />

in die Umlaufbahn, die beiden Projekte<br />

teilen sich auch eine Entwickler-Mailingliste.<br />

Planet Venus [6] steht ebenfalls<br />

unter der Python-Lizenz, ist in Python<br />

geschrieben und benötigt mindestens<br />

Version 2.2; die Macher empfehlen 2.4<br />

oder neuer. Das Programm nutzt den<br />

Feedparser von Mark Pilgrim [9] und<br />

den Python-Parser <strong>für</strong> Webseiten Beautiful<br />

Soup [12]. Im Einsatz sind zudem<br />

Abbildung 4: Moon Moon erstellt ein Archiv der gesammelten Nachrichten. So sehen Anwender auf <strong>einen</strong><br />

Blick alle Beiträge des aktuellen Tages, der Woche oder des Monats.


Software<br />

www.linux-magazin.de Bitparade 10/2013<br />

68<br />

die Htmltmpl-Engine [10] und die XSLT-<br />

Bibliothek des Gnome-Projekts [13]. Eine<br />

Datenbank ist nicht erforderlich. Im Test<br />

trat Version 0~bzr116 an.<br />

Im Downloadbereich der Projektseite finden<br />

Anwender Links zu den Quellen.<br />

Alternativ checken sie das Tool direkt aus<br />

dem Git-Repository aus:<br />

git clone https://github.com/rubys/venus.git<br />

Danach folgen sie den Anweisungen der<br />

Dokumentation von der Projektwebseite.<br />

Die Schritte zur Einrichtung unterscheiden<br />

sich nicht wesentlich von denen des<br />

Vorgängers Planet Planet.<br />

Für Debian und Ubuntu stehen zudem<br />

fertige Pakete bereit. Auf dem Testrechner<br />

zog die Installation von »planet‐venus«<br />

zahlreiche weitere Python-Komponenten<br />

nach sich. Die Konfigurationsroutine des<br />

Pakets legte die Planet-Venus-Daten in<br />

»/usr/share/planet‐venus« und das Binary<br />

unter »/usr/bin/planet« ab. Diese<br />

ausführbare Datei nutzen Admins, um<br />

<strong>einen</strong> neuen Planeten einzurichten. Sie<br />

wechseln dazu ins Webserver-Verzeichnis<br />

und rufen das Kommando »planet<br />

‐‐create bitparade« auf.<br />

Das Programm erstellt nun ein neues<br />

Verzeichnis namens »bitparade« und kopiert<br />

die Konfigurationsdatei »planet.ini«<br />

sowie das Standard-Theme-Verzeichnis<br />

Abbildung 6: Bei einigen Themes (hier die Variante Mobile) definieren Anwender das Encoding, damit Planet<br />

Venus die Umlaute richtig darstellt. Dazu bearbeiten sie die Xslt-Dateien im Texteditor.<br />

dorthin. Die Einrichtungsdatei gleicht der<br />

von Planet Planet. Abweichungen heben<br />

die Entwickler in der Anleitung auf der<br />

Projektseite in Pink hervor, sodass ein<br />

Umstieg schnell gelingt. Benutzer tragen<br />

in der Konfiguration den Namen der Feedsammlung,<br />

<strong>einen</strong> Link zur Startseite, den<br />

eigenen Namen und eine Mailadres se,<br />

Verzeichnisse <strong>für</strong> den Cache und das<br />

Theme und viele weitere Definitionen<br />

ein, die das Handbuch erklärt.<br />

Danach startet »python planet.py config.<br />

ini« beziehungsweise »planet ‐‐verbose<br />

planet.ini« (im Fall des Debian-Pakets)<br />

den neuen Planeten. Um diesen stets<br />

aktuell zu halten, fügen Anwender <strong>einen</strong><br />

Cronjob hinzu. Die Installationsroutine<br />

des Debian-Pakets erstellt bereits<br />

<strong>einen</strong> entsprechenden Eintrag in »/etc/<br />

crontab«:<br />

05 */1 * * * root planet /var/www/U<br />

bitparade/planet.ini<br />

Benutzer sollten diesen kontrollieren und<br />

falls nötig den Pfad zur Konfigurationsdatei<br />

anpassen.<br />

Göttin der Liebe<br />

Dieser Kandidat überzeugte bei der Darstellung<br />

der Feeds und zeigte alle getesteten<br />

Quellen einwandfrei an. Diese<br />

trägt der Benutzer genau wie bei Planet<br />

Planet am Ende der Konfigurationsdatei<br />

ein. Zusätzlich liest Planet Venus externe<br />

Dateien im OPML-, FOAF- und CSV-Format<br />

ein. Die Adresse des Abonnements<br />

steht wie gewohnt in eckigen Klammern;<br />

darunter definiert der Parameter »content_type«<br />

das Format:<br />

[http://www.example.com/file.opml]<br />

content_type = opml<br />

Abbildung 5: Einige der Planet-Venus-Themes fügen in der Seitenleiste Links <strong>für</strong> den bequemen Export ein.<br />

Je nach verwendetem Template erzeugt<br />

Planet Venus OPML-, FOAF- und Atom-<br />

Feeds als Output und zeigt die Links in<br />

der Seitenleiste an (siehe Abbildung 5).<br />

Wer den Aggregator als Debian-Paket<br />

installiert hat, der arbeitet in der Voreinstellung<br />

mit dem Theme »/usr/share/<br />

planet‐venus/theme/diveintomark« und<br />

muss sich mit »index.html« und »atom.<br />

xml« begnügen. Wer mit einem anderen


Template experimentieren möchte, der<br />

passt die Konfigurationsdatei an.<br />

Bei einigen der Vorlagen ist darüber hinaus<br />

ein Griff zum Texteditor erforderlich,<br />

um das Encoding anzupassen. Dazu<br />

reicht es meist aus, in den entsprechenden<br />

».xslt«-Dateien das »meta«-Tag um<br />

»charset="utf‐8"« zu erweitern (siehe<br />

Abbildung 6).<br />

Die maximale Anzahl der Einträge kann<br />

der Admin in der Einrichtungsdatei über<br />

»items_per_page« festlegen. Zudem regeln<br />

Optionen, ab wie vielen Tagen ohne<br />

Aktualisierung Planet Venus eine Quelle<br />

als inaktiv markiert. Der Feed-Aggregator<br />

arbeitet zudem mit Filtern, um unerwünschten<br />

Content auszuklammern:<br />

Der Entwickler hat zahlreiche Filter als<br />

Python-Skripte und »sed«-Dateien beigefügt,<br />

die als Vorlage <strong>für</strong> eigene Anpassungen<br />

dienen. Planet Venus bietet keine<br />

Möglichkeit, die Anzeige nach Kategorien<br />

zu sortieren oder bereits gelesene Artikel<br />

zu markieren.<br />

E Tiny Tiny RSS<br />

Abbildung 7: Pluspunkte gibt’s <strong>für</strong> den komfortablen Admin-Bereich der Tiny-Tiny-RSS-Weboberfläche, die<br />

auch den Import und Export von OPML-Dateien per Mausklick erlaubt.<br />

Tiny Tiny RSS [7] von Andrew Dolgov<br />

fällt etwas aus der Reihe. Während die<br />

meisten Planeten Feeds <strong>für</strong> die Öffentlichkeit<br />

zentral versammeln möchten,<br />

kommt dieser Kandidat mit Zugangsbeschränkung<br />

und Benutzerverwaltung<br />

daher. Das in PHP geschriebene Programm<br />

steht unter der GPLv3 und benötigt<br />

im Hintergrund eine MySQL- oder<br />

PostgreSQL-Datenbank. Die Entwickler<br />

empfehlen in ihrem Wiki PostgreSQL, da<br />

dies performanter sein soll. Version 1.9,<br />

die sich die Tester auf dem LAMP-System<br />

anschauten, benötigt PHP 5.3 oder<br />

neuer sowie »php5‐cli«, »php5‐xmlrpc«<br />

und »php5‐curl«.<br />

Vor der Installation erzeugen Admins<br />

zunächst eine neue Datenbank. Danach<br />

entpacken sie das Quelltextarchiv im Verzeichnis<br />

des Webservers, öffnen das Unterverzeichnis<br />

»install« im Browser und<br />

geben den Namen der Datenbank und<br />

die Planeten-URL an. Danach ist Tiny<br />

Tiny RSS bereit und erlaubt die Anmeldung<br />

an der Weboberfläche mit »admin«<br />

und »password«. Das Kennwort ändert<br />

der Admin in den Einstellungen auf dem<br />

Reiter »Benutzer«, wo er auch weitere<br />

Zugänge erstellen kann. Tiny Tiny RSS<br />

unterscheidet dabei Benutzer, erfahrene<br />

Benutzer und Administratoren.<br />

Die Feeds fügt der Verwalter ebenfalls<br />

über die Konfigurationsoberfläche hinzu.<br />

Die komfortablen Dialoge ermöglichen<br />

auch den Import einer ganzen Liste;<br />

sogar passwortgeschützte Quellen und<br />

OPML-Dateien wandern per Mausklick in<br />

den Planeten. Der Import und die Funktion<br />

zum Export einer eigenen OPML-<br />

Datei sind gut versteckt. Benutzer finden<br />

sie im Adminbereich der Webseite unter<br />

»Feeds«, wenn sie den Bereich »OPML«<br />

ausklappen (Abbildung 7).<br />

Tiny Tiny RSS bringt <strong>einen</strong> Update-<br />

Daemon mit, der sich um die Aktualisierung<br />

der Inhalte kümmert. Admins rufen<br />

ihn unter der Benutzerkennung des<br />

Webservers (zum Beispiel »apache« oder<br />

»www‐data«) und nicht als Root auf. Das<br />

Skript »update.php« startet nur <strong>einen</strong> Prozess,<br />

»update_daemon2.php« mehrere:<br />

su www‐data ‐c "php update.php ‐‐daemon"<br />

Der Dienst wandert nicht in den Hintergrund.<br />

Wer den Prozess nicht händisch<br />

Bitparade 10/2013<br />

Software<br />

www.linux-magazin.de<br />

69


Software<br />

www.linux-magazin.de Bitparade 10/2013<br />

70<br />

starten möchte, der fügt <strong>einen</strong> Crontab-<br />

Eintrag hinzu:<br />

*/30 * * * * /usr/bin/php /var/www/U<br />

tinytinyrss/update.php ‐‐feeds ‐‐quiet<br />

Wer diese Automatismen nicht wünscht,<br />

kann den Planeten so konfigurieren, dass<br />

ein Reload immer nur stattfindet, wenn<br />

ein Benutzer die Webseite besucht. Dazu<br />

setzt er in der Datei »config.php« die<br />

Option »SIMPLE_UPDATE_MODE« auf<br />

»true«. Diese Methode funktioniert nur,<br />

wenn Tiny Tiny RSS im Browser geöffnet<br />

ist, nicht aber, wenn externe Clients über<br />

das API darauf zugreifen.<br />

Klein, aber oho!<br />

Tiny Tiny RSS arbeitete im Test mit allen<br />

Feedsorten klaglos zusammen. Für jede<br />

Quelle dürfen Admins gezielt festlegen,<br />

wie oft sie aktualisiert wird und ob der<br />

Planet Bilder anzeigt. Plugins [14] betten<br />

Videos verschiedener Anbieter ein. In den<br />

allgem<strong>einen</strong> Einstellungen auf dem ersten<br />

Reiter definiert der Benutzer das Standardintervall<br />

<strong>für</strong> die Updates und wann<br />

die Software alte Beiträge löscht. Wie<br />

viel Text Tiny Tiny RSS <strong>für</strong> die einzelnen<br />

Artikel anzeigt, hängt vom Feed selbst ab.<br />

Steht der Volltext zur Verfügung, so zeigt<br />

der Planet diesen auch an; die Länge der<br />

Teaser ist nicht einstellbar.<br />

Das Projekt-Wiki listet unter [15] verschiedene<br />

Themes samt <strong>Vorschau</strong>bild<br />

auf. Um <strong>einen</strong> neuen Look einzurichten,<br />

laden Anwender die CSS-Datei und das<br />

Bilderverzeichnis herunter und speichern<br />

alles im Unterverzeichnis »themes«. Anschließend<br />

wählen sie in den Einstellungen<br />

der Weboberfläche die CSS-Datei aus<br />

dem Dropdown-Menü »Theme« aus. Im<br />

Bereich »Benutzerdefiniertes Stylesheet«<br />

dürfen Benutzer sich auch selbst kreativ<br />

austoben – allerdings in einem einfachen<br />

Dialogfenster ohne Syntax Highlighting<br />

oder ähnlichen Komfort.<br />

Von allen Kandidaten ist Tiny Tiny RSS<br />

das einzige Tool, das es erlaubt, Feeds<br />

in Kategorien zu organisieren (siehe Abbildung<br />

8). Ein weiteres <strong>Alle</strong>instellungsmerkmal<br />

ist die Option, bereits gelesene<br />

Nachrichten zu markieren und auszublenden.<br />

Anwender dürfen zudem Einträge<br />

favorisieren, archivieren und mit<br />

Tags versehen. Verknüpfungen zu sozialen<br />

Netzen sind über Plugins möglich.<br />

Abbildung 8: Tiny Tiny RSS sortiert nach Kategorien, filtert gelesene oder ungelesene Feeds und erlaubt das<br />

Archivieren von Beiträgen. Der Reader zeigt zudem an, wie viele Beiträge in den Abteilungen warten.<br />

Als Sahnehäubchen bietet die Projektseite<br />

außerdem eine Android-App [16] an, die<br />

auf Tiny-Tiny-RSS-Planeten zugreift.<br />

Ausgelesen<br />

Planet Venus und Tiny Tiny RSS sind<br />

eindeutig die Gewinner des Tests. Beide<br />

Feed-Aggregatoren zeigten alle Feeds<br />

ohne Probleme an – anders als Planet<br />

Planet und Moon Moon. Der Ur-Planet<br />

holpert auch sonst eher durchs Universum,<br />

denn die Konfiguration ist zwar einfach,<br />

aber auch nicht besonders flexibel.<br />

Moon Moon bietet mehr Komfort und<br />

eine recht aufgeräumte Umgebung, über<br />

die Admins die Grundfunktionen einstellen.<br />

Wer aber am Design oder an der Konfiguration<br />

drehen möchte, der sollte sich<br />

auf Ausflüge in schlecht kommentierten<br />

PHP-Code vorbereiten.<br />

Es bleibt die Frage, ob Tiny Tiny RSS tatsächlich<br />

ein Planet ist. Die Zugangskontrolle<br />

stellt ihn ins Abseits, eine öffentlich<br />

zugängliche Feedsammlung ist bei<br />

diesem Programm nicht vorgesehen. Der<br />

Verwalter kann s<strong>einen</strong> Benutzern keine<br />

Vorauswahl von Quellen zusammenstellen,<br />

denn jeder Account hat immer nur<br />

Zugriff auf jene Feeds, die er selbst eingetragen<br />

hat. Damit ist Tiny Tiny RSS<br />

eher ein Google-Reader-Ersatz. Geht es<br />

also darum, <strong>einen</strong> klassischen Planeten<br />

bereitzustellen, ist Planet Venus das Tool<br />

der Wahl. (hej)<br />

n<br />

Infos<br />

[1] Flipboard: [https:// flipboard. com]<br />

[2] Inoreader: [https:// inoreader. com]<br />

[3] Pulse: [https:// www. pulse. me]<br />

[4] Planet Planet:<br />

[http:// www. planetplanet. org]<br />

[5] Moon Moon: [http:// moonmoon. org]<br />

[6] Planet Venus:<br />

[http:// intertwingly. net/ code/ venus]<br />

[7] Tiny Tiny RSS: [http:// tt‐rss. org]<br />

[8] Sage <strong>für</strong> Firefox: [http:// sagerss. com]<br />

[9] Python-Bibliothek Feedparser:<br />

[http:// code. google. com/ p/ feedparser]<br />

[10] Htmltmpl:<br />

[http:// htmltmpl. sourceforge. net]<br />

[11] Hackergotchi:<br />

[https:// planet. gnome. org/ heads]<br />

[12] Beautiful Soup: [http:// www. crummy. com/​<br />

software/ BeautifulSoup]<br />

[13] XSLT <strong>für</strong> Gnome: [http:// xmlsoft. org/ XSLT]<br />

[14] Tiny-Tiny-RSS-Plugins: [http:// tt‐rss. org/​<br />

redmine/ projects/ tt‐rss/ wiki/ Plugins]<br />

[15] Themes <strong>für</strong> Tiny Tiny RSS: [http:// tt‐rss.​<br />

org/ redmine/ projects/ tt‐rss/ wiki/ Themes]<br />

[16] Android-App <strong>für</strong> Tiny Tiny RSS:<br />

[https:// play. google. com/ store/ apps/​<br />

details? id=org. fox. ttrss]


Software<br />

www.linux-magazin.de Tooltipps 10/2013<br />

72<br />

Werkzeuge im Kurztest<br />

Tooltipps<br />

Cputool 0.0.6<br />

Prozessorauslastung steuern<br />

Quelle: [http:// devlabs. linuxassist. net/​<br />

projects/ cputool]<br />

Lizenz: GPLv3<br />

Alternativen: Nice, Likwid<br />

Finit 1.8<br />

Schneller Init-Ersatz<br />

Quelle: [http:// troglobit. com/ finit. html]<br />

Lizenz: LGPL<br />

Alternativen: Init<br />

Fossil 1.26<br />

Schlanke Versionsverwaltung<br />

Quelle: [http:// www. fossil‐scm. org]<br />

Lizenz: BSD<br />

Alternativen: Git, Subversion<br />

Nice steuert rechenintensive Prozesse<br />

und ändert deren Priorität im Scheduler.<br />

Cputool beeinflusst direkt die CPU-<br />

Nutzung von Prozessen und sendet<br />

SIGSTOP- und SIGCONT-Signale. Anwender<br />

definieren dazu Grenzwerte, die<br />

ein Prozess nicht überschreiten darf. Ist<br />

das Limit erreicht, dann legt Cputool ihn<br />

kurzzeitig auf Eis. Die Informationen bezieht<br />

das Tool aus »/proc«.<br />

Die Steuerung erfolgt über Kommandozeilen-Parameter.<br />

Um Schwellenwerte<br />

<strong>für</strong> ein Programm zu bestimmen, starten<br />

sie es zusammen mit Cputool und geben<br />

dabei über »‐l« ein Load- und über<br />

»‐c« ein CPU-Limit in Prozent an. Bei<br />

Mehrkernprozessoren berücksichtigen<br />

sie außerdem die Anzahl der Kerne. Ein<br />

Quadcore-Prozessor bietet beispielsweise<br />

maximal 400 Prozent Leistung. Es ist außerdem<br />

möglich, <strong>einen</strong> bereits aktiven<br />

Prozess zu beschränken. Dabei hilft die<br />

Option »‐p PID«.<br />

Cputool stellt den Dienst automatisch<br />

ein, wenn der kontrollierte Prozess beendet<br />

ist. Wer wissen möchte, was das<br />

Tool im Hintergrund treibt, kann mit »‐v«<br />

Auskünfte einholen, »‐vv« zeigt Statistikinformationen<br />

an und »‐vvv« gibt Aufschluss<br />

über gesendete Signale.<br />

★★★★★ Cputool eignet sich gut, um die<br />

Auslastung von Systemen zu steuern. Die<br />

Bedienung ist intuitiv.<br />

n<br />

Obwohl Prozessoren und Festplatten<br />

immer schneller werden, dauert manchen<br />

Anwendern der Bootvorgang zu<br />

lange. Abhilfe verspricht Finit, das Fast<br />

Init Replacement. Die Entwickler haben<br />

sich vom Fastinit-Daemon der Eee-PCs<br />

inspirieren lassen und ihre Variante um<br />

Funktionen ergänzt. Dazu zählt etwa das<br />

Servicemonitoring, das beendete Dienste<br />

neu startet. Andere Erweiterungen implementieren<br />

I/​O-Dienste oder Servicecalls<br />

zum Starten von Daemons.<br />

Die Konfigurationsdatei »/etc/finit.conf«<br />

ist übersichtlich aufgebaut, Beispiele und<br />

Erklärungen liefert die Dokumentation.<br />

Der Befehl »check« leitet <strong>einen</strong> Dateisystemcheck<br />

ein, »module« lädt Kernelmodule,<br />

»run« startet Prozesse, »service«<br />

initialisiert die Programme als Daemon.<br />

Wie Init kennt Fastinit Runlevel. Die Anweisung<br />

»runlevel N« bestimmt, in welchem<br />

Level ein Dienst oder Programm die<br />

Arbeit aufnimmt, »N« ersetzen Benutzer<br />

durch eine Zahl von 1 bis 9, wobei 6<br />

<strong>für</strong> den Reboot reserviert ist. Wer Fastinit<br />

testen möchte, der kann in der Bootloader-Konfiguration<br />

den Kerneleintrag<br />

um »init=/sbin/finit« erweitern.<br />

★★★★★ Finit startet zügig, arbeitet<br />

aber nicht mit allen Distributionen zusammen.<br />

Unter Ubuntu gab es Probleme<br />

mit Upstart. Anwender sollten <strong>für</strong> die<br />

Konfiguration Geduld mitbringen. n<br />

Die schlanke Versionsverwaltung Fossil<br />

ist schnell installiert, besitzt kaum<br />

Abhängigkeiten zu anderen Programmen<br />

und benötigt wenig Ressourcen. Sie unterstützt<br />

eine verteilte Verwaltung, speichert<br />

die Projektinformationen in einer SQlite-<br />

Datenbank und enthält eine Weboberfläche<br />

mit Bugtracker und Wiki.<br />

Anwender bedienen Fossil über Kommandos<br />

und Parameter, die sie beim Aufruf<br />

übergeben. So erzeugt »fossil init lm« ein<br />

neues Projekt mit dem Namen »lm«. Die<br />

Befehle »info«, »status«, »changes« und<br />

»diff« geben Aufschluss über den aktuellen<br />

Status. Um neue Daten ins Repository<br />

einzuchecken, verwenden Nutzer »add«,<br />

»delete« entfernt sie. »push«, »pull« und<br />

»sync«, gefolgt von einer URL, gleichen<br />

mit externen Repositories ab.<br />

Für den Zugang zur Weboberfläche<br />

starten Anwender Fossil mit »ui« oder<br />

»server«. Ersteres stellt die Schnittstelle<br />

lediglich auf dem Loopback-Interface bereit<br />

und öffnet sie im Standardbrowser.<br />

Die zweite Variante bindet Fossil an alle<br />

Schnittstellen und erlaubt auch externen<br />

Zugriff. Eine Liste aller Fossil-Kommandos<br />

mit Beispielen finden interessierte<br />

Nutzer auf der Projektseite.<br />

★★★★★ Fossil braucht sich nicht hinter<br />

den großen Versionsverwaltungen zu verstecken.<br />

Das Tool ist schnell einsatzbereit<br />

und benötigt wenig Ressourcen. n


Software<br />

www.linux-magazin.de Tooltipps 10/2013<br />

74<br />

Cscope 15.8a<br />

Suche in Quelltextdateien<br />

Quelle: [http:// cscope. sourceforge. net]<br />

Lizenz: BSD<br />

Alternativen: Grep<br />

Keybox 1.08.50<br />

SSH-Schlüsselmanager<br />

Quelle: [http:// sshkeybox. com]<br />

Lizenz: Apache 2.0<br />

Alternativen: Toska<br />

Playshell 0.2<br />

Shellwrapper <strong>für</strong> Mediaplayer<br />

Quelle: [http:// playshell. sourceforge. net]<br />

Lizenz: GPLv2<br />

Alternativen: Cmus<br />

Das Ncurses-basierte Tool Cscope durchsucht<br />

C-, C++- und Java-Quelltexte<br />

nach Referenzen, globalen Definitionen,<br />

Funktionen, Strings und regulären Ausdrücken.<br />

Beim ersten Aufruf im Projektverzeichnis<br />

untersucht es die Quelltexte,<br />

erkennt Code- und Headerdateien, sucht<br />

selbstständig nach Include-Files und generiert<br />

die Datenbank »cscope.out«. Danach<br />

startet das Ncurses-Frontend und<br />

wartet auf Benutzereingaben.<br />

Im unteren Bereich zeigt Cscope verschiedene<br />

Suchoptionen, die Anwender<br />

mit den Cursortasten ansteuern und mit<br />

[Enter] aufrufen. So suchen sie etwa nach<br />

C-Symbolen, globalen Definitionen oder<br />

Funktionsaufrufen. Ergebnisse schreibt<br />

Cscope in den oberen Bereich, den Nutzer<br />

per Druck auf die Tabulatortaste<br />

erreichen. Jede Zeile listet genau <strong>einen</strong><br />

Treffer und zeigt den Dateinamen, die<br />

Zeilennummer und <strong>einen</strong> Textauszug der<br />

Fund stelle an. In der Voreinstellung blendet<br />

das Tool die ersten neun Treffer ein;<br />

mit der Leertaste blättert man zur nächsten<br />

Seite. Die Pfeiltasten führen dann<br />

zum gewünschten Treffer, ein Druck auf<br />

die Eingabetaste öffnet die entsprechende<br />

Datei im Standardeditor.<br />

Cscope bietet außer der Ncurses-Oberfläche<br />

<strong>einen</strong> r<strong>einen</strong> Kommandozeilenmodus<br />

und eignet sich damit <strong>für</strong> den Einsatz in<br />

Skripten. Die Projektseite enthält neben<br />

der allgem<strong>einen</strong> Dokumentation auch Tutorials<br />

zur Zusammenarbeit von Cscope<br />

mit Vim und (X)Emacs.<br />

★★★★★ Cscope ist eine praktische<br />

Spürnase und erleichtert die Suche und<br />

Analyse von langen oder vielen Quelltexten<br />

spürbar. Insbesondere Entwickler, die<br />

fremden Sourcecode durchforsten, dürften<br />

das Tool schätzen.<br />

n<br />

Keybox verwaltet öffentliche SSH-Schlüssel<br />

und verteilt Shellskripte an mehrere<br />

Systeme. Anwender steuern das Tool<br />

über eine Weboberfläche und benötigen<br />

dazu ein Java JDK 1.6 oder neuer sowie<br />

Open SSH 2. Unter <strong>Linux</strong>, OS X und anderen<br />

Unix-Systemen starten sie es entweder<br />

über das Skript »./startKeyBox.<br />

sh« im Jetty-Webserver (»http://localhost:8090«)<br />

oder kompilieren die Quellen<br />

selbst. Für Letzteres benötigt Keybox<br />

Maven. Seine Daten legt das Tool in einer<br />

H2-Datenbank ab.<br />

Beim ersten Start melden sich die Benutzer<br />

als »admin« mit dem Passwort<br />

»change me« an und ändern dann die Zugangsdaten.<br />

Danach erzeugen sie in Keybox<br />

<strong>einen</strong> eigenen SSH-Schlüssel, richten<br />

die Zugänge zu den entfernten Systemen<br />

samt Verbindungsparametern ein und<br />

konfigurieren die Zugangsdaten oder erstellen<br />

Skripte zur Ausführung auf mehreren<br />

Systemen. Mehrere Rechner fasst<br />

Keybox auf Wunsch in Profilen zusammen.<br />

Über »Composite SSH Term« bauen<br />

Nutzer SSH-Verbindungen zu einem oder<br />

mehreren Computern auf. Falls sie k<strong>einen</strong><br />

Schlüssel hinterlegt haben, authentifizieren<br />

sie sich per Passwort. Die Terminals<br />

laufen als Fenster in der Weboberfläche<br />

im Browser.<br />

Um das SSH-Schlüsselpaar <strong>für</strong> Keybox zu<br />

erneuern, beenden Anwender das Tool,<br />

entfernen die Dateien »id_rsa« und »id_<br />

rsa.pub« aus dem Verzeichnis »classes/<br />

com/keybox/common/db« und starten<br />

es neu. In dem Ordner befindet sich auch<br />

die Datenbank »keybox.h2.db«, die Benutzer<br />

selbst regelmäßig sichern.<br />

★★★★★ Keybox ist ein praktischer Helfer<br />

<strong>für</strong> alle, die mehr als <strong>einen</strong> Rechner<br />

administrieren.<br />

n<br />

Playshell steuert Abspielprogramme und<br />

Playlisten auf der Konsole. Das Tool arbeitet<br />

mit einer Vielzahl von externen Programmen<br />

zusammen, darunter Mplayer,<br />

Gst123, Mpg123, Sox und VLC. Die Liste<br />

der Dateitypen sowie die Konfiguration<br />

der jeweiligen Mediaplayer erwartet der<br />

Wrapper in »/etc/playshell«. Persönliche<br />

Einstellungen wie Caches oder Wiedergabelisten<br />

speichern Anwender im Verzeichnis<br />

»~./playshell«.<br />

Nach dem Start steuern Benutzer das<br />

Programm über die Tastatur. So fügt [A]<br />

<strong>einen</strong> neuen Eintrag zur aktuellen Playlist<br />

hinzu, [L] zeigt die Wiedergabeliste im<br />

Fenster und [Umschalt]+[L] den vollen<br />

Pfadnamen zu den Songs oder Filmen<br />

an. [Umschalt]+[4] (also »$«) und [Umschalt]+[5]<br />

(»%«) sortieren die Stücke.<br />

Ein Druck auf [E] startet den Standardeditor,<br />

mit dem Anwender ihre Liste bearbeiten<br />

können. Einen alternativen Editor<br />

definieren sie entweder über die Variable<br />

»$EDITOR« oder beim Aufruf über »‐e«.<br />

Als Hilfe blendet [H] alle Shortcuts und<br />

Optionen ein.<br />

Neben den Standardfunktionen wie Abspielen,<br />

Vor- und Zurückspulen bietet das<br />

Tool <strong>einen</strong> Shuffle-Modus, Repeat- und<br />

Loop-Funktionen sowie die Möglichkeit,<br />

einzelne Einträge der Playlist temporär<br />

zu deaktivieren. Über [M] starten Nutzer<br />

den Alsamixer, um die Lautstärke der<br />

einzelnen Ausgänge zu regeln. Die Gesamtlautstärke<br />

regulieren die Plus- und<br />

Minus-Tasten in Playshell.<br />

★★★★★ Wer den Lieblings-Mediaplayer<br />

über die Konsole steuern möchte, sollte<br />

sich Playshell anschauen. Die Bedienung<br />

erfordert eine gewisse Einarbeitungszeit<br />

und gründliches Lesen der Onlinehilfe.<br />

(U. Vollbracht/​hej)<br />

n


Aus dem Alltag eines Sysadmin: Mosh<br />

Shell <strong>für</strong> den Strand<br />

Einführung 10/2013<br />

Sysadmin<br />

Die Beine im Meer und ein Strohhut gegen die südliche Sonne auf dem Kopf verringern oft die Aussicht auf<br />

eine gute Internetverbindung. <strong>Magazin</strong>-Kolumnist Charly, der sich gerade selbst mit derart tragischen Umständen<br />

konfrontiert sieht, weiß Rat. Charly Kühnast<br />

Inhalt<br />

76 Xenserver 6.2<br />

Citrix hat Ende Juni die neueste Version<br />

seiner Xen-basierten Enterprise-Virtualisierung<br />

als Open-Source-Software<br />

freigegeben.<br />

82 Jelastic<br />

Das PaaS-Angebot ermöglicht den Betrieb<br />

von Java- und PHP-Anwendungen<br />

und zeichnet sich durch das automatische<br />

Skalieren je nach Ressourcenbedarf<br />

aus.<br />

Ich schreibe diese Kolumne an der Costa<br />

Brava und bade gerade meine Füße darin.<br />

Die Küste trägt ihren Namen zu Recht,<br />

„brava“ lässt sich mit „wild, unwirtlich“<br />

übersetzen. Das trifft abseits der Touristenstrände<br />

zu, leider auch <strong>für</strong> die Netzabdeckung.<br />

Zwar ist WLAN in Hotels, auf<br />

Campingplätzen und Bars allgegenwärtig<br />

– im Moment benutze ich das Netz der<br />

Strandbar „Xiringuito“ bei den malerischen<br />

Ruinen der ehemaligen griechischen<br />

Handelsexklave Empúries.<br />

Doch die Verbindung ist ziemlich brava.<br />

Das versaut mir aber nicht den sonnigen<br />

Nachmittag, denn ich ziehe Mosh [1] als<br />

Ass aus der Badetasche. Der SSH-Ersatz<br />

besteht aus einer Client- und einer Server-<br />

Komponente plus Wrapperskript. Initial<br />

verbindet Mosh Client und Server klassisch<br />

per SSH auf Port 22. Dann übergibt<br />

der Server dem Client <strong>einen</strong> Schlüssel,<br />

Abbildung 1: Die Zeichen, die wegen einer stockenden Verbindung noch nicht<br />

übertragen sind, stellt Mosh unterstrichen dar.<br />

mit dem er sich fortan ausweist, und<br />

Mosh kappt die TCP-Verbindung.<br />

Ab jetzt unterhalten sich Client und Server<br />

nur noch per UDP, serienmäßig im<br />

Bereich zwischen Port 60000 und 61000.<br />

Mit dem Parameter »‐‐port=Portnummer«<br />

kann ich Mosh zwingen <strong>einen</strong> Port zu<br />

bevorzugen. Die UDP-Verbindungen sind<br />

ausgesprochen robust, sie überleben sogar<br />

Suspend-Phasen des Clients.<br />

Noch besser und in der Praxis extrem<br />

nervenschonend: Weil sich der Client mit<br />

dem anfangs vom Server empfangenen<br />

Schlüssel ausweist, darf er zwischendurch<br />

sogar die IP-Adresse wechseln. Wenn mir<br />

also das Strandcafé-WLAN abreißt und<br />

der Laptop auf das Tethering des Mobiltelefons<br />

umschwenkt, läuft meine Mosh-<br />

Session völlig unbeeindruckt weiter.<br />

Zeichen der Wert-Schätzung<br />

Wenn die einzig greifbare Verbindung<br />

instabil ist, führt das bei SSH bekanntlich<br />

dazu, dass das Terminal getippte<br />

Buchstaben nicht anzeigt, solange sich<br />

die TCP-Verbindung nicht wieder fängt.<br />

Zwar kann auch Mosh in solchen Fällen<br />

nicht hexen, aber es stellt schlaue Vermutungen<br />

darüber an, was das Terminal<br />

anzeigen sollte, und schickt die Zeichen<br />

prophylaktisch zur Ausgabe. Die Synchronisierung<br />

per UDP läuft dabei im Hintergrund<br />

weiter. Mit Moshs Vorhersage-Mechanismus<br />

wirkt <strong>für</strong><br />

mich das Arbeiten auf<br />

der Kommandozeile<br />

wesentlich flüssiger<br />

als mit SSH.<br />

Außerdem lässt Mosh<br />

mich nicht im Unklaren<br />

darüber, was nun<br />

tatsächlich übertragen<br />

wurde und welche<br />

Bytes nur vorhergesagt<br />

sind: Die Zeichen, welche die Mobile<br />

Shell per Vorhersage anzeigt, stellt sie<br />

unterstrichen dar (Abbildung 1). Wenn<br />

ich nur die ganze Wahrheit sehen will,<br />

schalte ich die Vorhersagefunktion mit<br />

»‐‐predict=never« ab. Ebenso kann ich<br />

sie mit »‐‐predict=always« erzwingen.<br />

Das Default-Verhalten ist ein Kompromiss:<br />

Mosh misst im Hintergrund die Latenz<br />

der UDP-Verbindungen und schaltet<br />

die Vorhersagefunktion ein, sobald die<br />

Verbindungsqualität nachlässt.<br />

Unterwegs ist Mosh <strong>für</strong> mich inzwischen<br />

unverzichtbar. Völlig ersetzen wird es<br />

SSH jedoch erst einmal nicht, denn zurzeit<br />

beherrscht es weder X11- noch Portforwarding<br />

und nur IPv4. Zumindest an<br />

IPv6 arbeiten die Entwickler aber und<br />

auch eine App <strong>für</strong> Android-Mobiltelefone<br />

soll es eines Tages geben. (jk) n<br />

Infos<br />

[1] Mosh: [http:// mosh. mit. edu]<br />

Der Autor<br />

Charly Kühnast administriert<br />

Unix-Syste me im Rechenzentrum<br />

Niederrhein. Zu s<strong>einen</strong><br />

Aufgaben gehören Sicherheit<br />

und Verfügbarkeit der<br />

Firewalls und der DMZ.<br />

www.linux-magazin.de<br />

75


Sysadmin<br />

www.linux-magazin.de Xenserver 10/2013<br />

76<br />

Citrix Xenserver 6.2 wird Open Source<br />

Endlich frei!<br />

Citrix hat Ende Juni die neueste Version seiner Xen-basierten Enterprise-Virtualisierung Xenserver komplett<br />

als Open-Source-Software freigegeben. Der Hersteller erhofft sich Input von der Community, mehr Kundschaft<br />

<strong>für</strong> seine Desktop-Virtualisierung und <strong>einen</strong> besseren Stand auf dem Markt. Holger Gantikow<br />

nen Lizenz [4] stehenden Komponenten<br />

übernimmt künftig die Xenserver.org-<br />

Community [5], der Hersteller bietet bei<br />

Bedarf kommerziellen Support an.<br />

Zwar weist Citrix tapfer darauf hin, diese<br />

Freigabe käme gar nicht so überraschend,<br />

schließlich stünden wesentliche Komponenten<br />

wie der Xen-Hypervisor selbst<br />

lange schon quelloffen zur Verfügung,<br />

doch die Vermutung liegt nahe, dass die<br />

Wahrheit ein wenig anders aussieht.<br />

© George Tsartsianidis, 123RF.com<br />

Open Source – endlich, und zwar komplett!<br />

In der Ankündigung [1] der neuen<br />

Xenserver-Version 6.2 sticht ein nicht<br />

technisches Merkmal aus der üblichen<br />

Liste der Verbesserungen heraus: Citrix<br />

hat Xenserver, sein kommerzielles Produkt<br />

rund um den quelloffenen Hypervisor<br />

Xen, zur freien Software erklärt.<br />

Mit diesem Paukenschlag macht der<br />

Hersteller seine bisherige Unterteilung in<br />

Free, Advanced, Enterprise und Platinum<br />

Edition obsolet. Für Kunden gibt es nur<br />

noch eine einzige, kostenfreie Version,<br />

die zudem auch noch wesentlich mehr<br />

kann als die alte Gratisausgabe.<br />

Auseinandergenommen und<br />

neu zusammengebaut<br />

Bereits kurz nach der Veröffentlichung<br />

des Quellcodes begann die Community,<br />

die Komponenten, die aus einem darunterliegenden<br />

Red-Hat-Derivat den Citrix<br />

Xenserver machen, vom Betriebssystem<br />

zu entkoppeln. Das erklärte Ziel ist es,<br />

ein Xenserver-Core-Metapaket <strong>für</strong> eine<br />

möglichst große Vielfalt an <strong>Linux</strong>-Distributionen<br />

anbieten zu können.<br />

Wie der Kasten „Xen, Libvirt und Ceph“<br />

zeigt, ist diese Arbeit <strong>für</strong> Cent OS 6.4<br />

bereits erledigt, weitere Distributionen<br />

werden folgen. Das Konzept <strong>für</strong> »xenserver‐core«<br />

sieht dabei drei Ebenen vor<br />

(Abbildung 1). Wahrscheinlich werden<br />

in naher Zukunft auch viele fertig vorbereitete<br />

Appliances entstehen, die in<br />

Form von Iso-Image-Dateien speziell<br />

angepasste Abbilder bereitstellen. (Abbildung<br />

2).<br />

Dabei hat Citrix nicht nur den Hypervisor<br />

und sein Management veröffentlicht:<br />

Auch den Windows-Client Xencenter,<br />

der die einfache grafische Verwaltung<br />

ermöglicht, hat der Hersteller gleich mit<br />

freigegeben. Die Weiterentwicklung der<br />

unter GPL, BSD- und einer Citrix-eige-<br />

Abschied von der Server-<br />

Virtualisierung?<br />

Xen, das ab 2003 lange Jahre als Synonym<br />

<strong>für</strong> Virtualisierung mit <strong>Linux</strong> galt<br />

und damals den einzigen ernstzunehmenden<br />

Konkurrenten zu VMware stellte,<br />

entstand ursprünglich an der Universität<br />

Cambridge, kommerziell vermarktet von<br />

der Firma Xensource, die im Jahr 2007 <strong>für</strong><br />

stolze 500 Millionen Dollar den Besitzer<br />

wechselte. Der Käufer? Citrix.<br />

Was folgte, war eine ganze Reihe von<br />

Freigaben über die letzten Jahre hinweg.<br />

So gab die Company 2009 das Xen Management<br />

API (XAPI) und die Xen Cloud<br />

Platform (XCP) frei, eine Xenserver-Variante,<br />

die nur aus Open-Source-Komponenten<br />

besteht. 2011 kamen freie XAPI-<br />

Pakete <strong>für</strong> Debian und Ubuntu hinzu,<br />

2013 folgte die Aufnahme von XAPI und<br />

Xen.org unter das Dach des Xen-Projekts,<br />

das mittlerweile von der <strong>Linux</strong> Foundation<br />

betreut wird.<br />

Doch angesichts der Tatsache, dass Citrix<br />

selbst bei s<strong>einen</strong> Fans nicht unbedingt als<br />

ein Hort der Open-Source-Idee gilt, riecht<br />

die jüngste Ankündigung trotz allem ein<br />

wenig nach Exit-Strategie aus einem nicht<br />

mehr lukrativen Markt. Realistisch betrachtet<br />

spiegelt sie den aktuellen Markt


»xenserver-core«-Modell<br />

»xenserver-core« (mit XAPI & Co.)<br />

Virtualisierungs-Basispakete<br />

(Xen 4.3, Qemu, Libvirt)<br />

<strong>Linux</strong>-Distribution<br />

der Enterprise-Virtualisierung wieder:<br />

KVM hat in vielen Bereichen zu Xen aufgeschlossen,<br />

es oft sogar überholt, auch<br />

wenn neben Red Hats Enterprise Virtualization<br />

[6] die wirklich schlüsselfertigen<br />

Lösungen <strong>für</strong> den Unternehmenseinsatz<br />

noch fehlen.<br />

Am Thron des Marktführers VMware ist<br />

scheinbar nicht zu rütteln und Microsoft<br />

baut seine Hyper-V-Marktanteile kontinuierlich<br />

aus, auch im Cloudbereich, der<br />

sonst traditionell von <strong>Linux</strong> und Open<br />

Stack besetzt ist [7]. Zu allem Überfluss<br />

bietet auch der Datenbankriese Oracle<br />

eine eigene Virtualisierungslösung an,<br />

die ebenfalls auf Xen basiert.<br />

Auch wenn Xenserver als eigenständiges<br />

Produkt nie der signifikante Umsatzbringer<br />

<strong>für</strong> Citrix war, sondern eher ein<br />

Addon zu den anderen Produkten der<br />

Firma, so bietet er doch eine Basistechnologie<br />

speziell <strong>für</strong> die Virtual Desktop Infrastructure<br />

(VDI) Xendesktop. Die stellt<br />

virtuelle Windows-Desktops bereit und<br />

ist einer der Umsatzbringer von Citrix. Da<br />

dies am besten mit einem effizienten und<br />

angepassten Hypervisor funktioniert, tut<br />

Citrix gut daran, das Interesse an Xen am<br />

Köcheln zu halten – und offensichtlich<br />

verspricht man sich genau das von der<br />

Open-Source-Strategie.<br />

Flucht in die Cloud<br />

Citrix Xenserver auf Cent OS<br />

»xenserver-core« (mit XAPI & Co.)<br />

Virtualisierungs-Basispakete<br />

»Xen4CentOS«-Extrapakete<br />

(Xen 4.2.2, Qemu, Libvirt)<br />

Cent OS 6.4<br />

Abbildung 1: Ein erster Erfolg der Open-Source-Strategie ist das Cent-OS-Paket <strong>für</strong> Xenserver.<br />

findet er hier eine gute und vor allem<br />

günstige Alternative zu Hyper-V.<br />

So ist der Xenserver – wie auch viele<br />

Enterprise-<strong>Linux</strong>-Distributionen oder<br />

VMwares V-Sphere – seit vielen Versionen<br />

unter dem Microsoft Server Virtualization<br />

Validated Program (SVVP, [8])<br />

zertifiziert, sodass Kunden, die <strong>einen</strong><br />

Windows-Server virtualisiert betreiben<br />

wollen, vollen Support aus Redmond<br />

erhalten. Rackspace setzt beispielsweise<br />

seit Langem auf Xenserver <strong>für</strong> seine Windows-Cloud<br />

[9].<br />

Lizenzen und Konsequenzen<br />

Citrix hat das Lizenzmodell im Zuge der<br />

Veröffentlichung der 6.2er Version von<br />

einem Per-Server- auf ein Pro-Sockel-<br />

Modell umgestellt, das mit 460 Euro pro<br />

Sockel und Jahr zu Buche schlägt. Preislich<br />

entspricht das ungefähr den Kosten<br />

der bisherigen Enterprise-Edition, wobei<br />

inzwischen Subscription Advantage und<br />

Premier-Support im Preis enthalten sind.<br />

Diese Optionen mussten Kunden bislang<br />

separat erwerben. Alternativ bietet Citrix<br />

eine dauerhafte Lizenz <strong>für</strong> 1150 Euro an,<br />

bei der der Kunde aber jedes Jahr <strong>für</strong> gut<br />

200 Euro den Vertrag <strong>für</strong> Softwarewartung<br />

erneuern muss.<br />

Wer bislang eine Server-Lizenz hatte,<br />

kann diese gegen eine Lizenz <strong>für</strong> zwei<br />

Xenserver-Appliance<br />

Xencenter<br />

»xenserver-core«<br />

Sockel eintauschen. Boten bisherige Versionen<br />

je nach eingesetzter Lizenz unterschiedlichen<br />

Funktionsumfang, so gibt<br />

es nun nur noch eine Version, die alle<br />

Funktionen beherrscht.<br />

Neben der Berechtigung, Supportanfragen<br />

stellen zu können, besteht das einzige<br />

Unterscheidungsmerkmal, ob Xenserver<br />

mit oder ohne Lizenz betrieben wird, im<br />

Patch-Management mit dem grafischen<br />

Client Xencenter. Dieser ermöglicht es bei<br />

vorhandener Lizenz, aus der grafischen<br />

Oberfläche heraus auf allen Hosts eines<br />

Pools Hotfixes und Sicherheitsupdates<br />

automatisiert einzuspielen.<br />

Manuelles Update<br />

Windows-PV-Treiber<br />

Virtualisierungs-Basispakete<br />

(Xen 4.3, Qemu, Libvirt)<br />

<strong>Linux</strong>-Distribution,<br />

zum Beispiel Cent OS 6.4<br />

Abbildung 2: So stellen sich die Entwickler eine Xenserver-Appliance<br />

vor: Auf einer Basisdistribution<br />

bauen schichtweise Virtualisierungsebenen auf.<br />

Wer nun be<strong>für</strong>chtet, seine unlizenzierte<br />

Xenserver-Installation stünde ohne Updates<br />

im Regen, liegt falsch. Es ist auch<br />

weiterhin möglich, die Patches per Kommandozeile<br />

einzuspielen. Dies ist zwar<br />

nicht ganz so elegant, funktioniert aber<br />

trotzdem und ist auch so seitens Citrix<br />

vollständig dokumentiert (siehe Kasten<br />

„Patchen ohne GUI“).<br />

Ein Mischbetrieb aus lizenzierten und<br />

unlizenzierten Hosts in einem (Ressourcen-)Pool<br />

ist jedoch nicht möglich – der<br />

Xenserver 10/2013<br />

Sysadmin<br />

www.linux-magazin.de<br />

77<br />

Ein weiteres potenzielles Einsatzgebiet<br />

<strong>für</strong> den Xenserver stellt die Cloud dar. Da<br />

viele Admins diese traditionell eher auf<br />

Basis kostenfreier Distributionen bauen,<br />

hat Citrix erst durch die umfassende Freigabe<br />

eine funktionsreiche, flexible und<br />

vor allem kostengünstige Alternative im<br />

Angebot. Wer hingegen seine Cloud mit<br />

kommerziellen Distributionen und entsprechenden<br />

Supportverträgen aufbaut,<br />

der sollte sich die Citrix-Tools anschauen.<br />

Will er eine Windows-Cloud hosten, dann<br />

Xen, Libvirt und Ceph<br />

Auch wenn die Freigabe noch vergleichsweise<br />

neu ist, so zeigt es sich recht schnell, dass<br />

sie der Entwicklung von Xenserver gut tut.<br />

Nur eine Woche dauerte es bis zum ersten<br />

Vorschlag [2], wie sich die neue Freiheit<br />

dazu nutzen lässt, um den Xenserver an <strong>einen</strong><br />

bestehenden Ceph-Storage [3] anzubinden.<br />

<strong>Alle</strong>rdings verwenden die Setups hier<strong>für</strong> keine<br />

normale Citrix-Xenserver-Installation, sondern<br />

eine Basis von Cent OS 6.4 und Upstream-Versionen<br />

von Qemu und Libvirt.<br />

Der Autor der Anleitung hat jedoch gute<br />

Vorarbeit geleistet. Nach dem Import eines<br />

zusätzlichen Repository genügen ein »yum<br />

install xenserver‐core« und der Aufruf eines<br />

Setup-Wizards. Danach ist das System in einem<br />

Zustand, in dem sich der Ceph-Storage-Pool an<br />

der Konsole einbinden und als Storage-Repository<br />

konfigurieren lässt. So kann der Admin<br />

ganz normal mit dem Xencenter weiterarbeiten<br />

und virtuelle Maschinen anlegen, die er auf<br />

dem Ceph-Storage-Pool ablegt.


Sysadmin<br />

www.linux-magazin.de Xenserver 10/2013<br />

78<br />

Wer sie mit anderen Tools weiterbearbeiten<br />

will, muss sie mit »rrd2csv« umwandeln.<br />

Darüber hinaus gibt es eine Reihe von<br />

Detailverbesserungen, etwa die Unterstützung<br />

neuer CPU-Typen, ein auf Robustheit<br />

hin überarbeitetes Powershell-<br />

SDK und Optimierungen, die vermeiden<br />

sollen, dass sich die Dom 0 durch exzessives<br />

Logging in die Knie zwingen lässt.<br />

Auch setzt Citrix nun eine aktuellere Version<br />

des Xen-Hypervisors ein (4.1.5).<br />

Raus mit dem Ballast!<br />

Abbildung 3: Neue Monitoring-Metriken erlauben eine noch detailliertere Überprüfung der Leistungsparameter<br />

von Hosts und virtuellen Maschinen.<br />

komplette Pool verhält sich dann, als<br />

wäre er unlizenziert.<br />

Technische Neuerungen<br />

Neben den signifikanten lizenzrechtlichen<br />

Änderungen bringt die neue Xenserver-Version<br />

auch eine Reihe technischer<br />

Verbesserungen mit, die zwar nicht<br />

sonderlich bahnbrechend sind, aber von<br />

einer kontinuierlichen Weiterentwicklung<br />

des Produkts zeugen. Zum <strong>einen</strong> hat sich<br />

die Skalierbarkeit weiter verbessert. Bei<br />

entsprechender Hardware sind nun bis<br />

zu 500 virtuelle Maschinen mit Windows<br />

oder gar 650 mit <strong>Linux</strong> pro Host möglich<br />

[11], was vor allem der Desktop-Virtualisierung<br />

zugutekommt. Zum anderen hat<br />

der Hersteller die Liste der unterstützten<br />

Betriebssysteme erweitert. So werden<br />

neben neuen Versionen der wichtigsten<br />

<strong>Linux</strong>-Distributionen auch Windows 8<br />

und Server 2012 unterstützt, was bisher<br />

als experimentell galt.<br />

Das so genannte „Performance Monitoring<br />

Enhancements Pack for Xenserver<br />

6.1“, das in der alten Xenserver-Version<br />

zusätzliche RRD-Metriken brachte und<br />

nachinstalliert werden musste, gehört<br />

in der neuen Version zum festen Lieferumfang<br />

und bietet nun <strong>einen</strong> deutlich<br />

besseren Einblick in den I/​O-Durchsatz.<br />

Abbildung 3 zeigt <strong>einen</strong> kurzen Überblick<br />

über die <strong>für</strong> eine Festplatte auswählbaren<br />

Metriken. Xenserver speichert<br />

entsprechende Performance-Indikatoren<br />

ein Jahr lang in einer mit zunehmendem<br />

Alter gröber werdenden RRD-Datenbank.<br />

Citrix hat aber vor allem den Besen geschwungen<br />

und einige Features aus der<br />

aktuellen Release ausgekehrt, die nach<br />

Meinung der Firma obsolet sind, da nicht<br />

ausreichend verbreitet oder weil sie bereits<br />

<strong>einen</strong> würdigen Nachfolger in Form<br />

von erfolgreicheren Konkurrenzprodukten<br />

gefunden haben.<br />

So müssen sich die Freunde eines virtualisierten<br />

Solaris nun nach einer anderen<br />

Plattform umschauen. Auch der Web Self<br />

Service ist nicht mehr dabei – eine Webschnittstelle,<br />

mit der Anwender einzelne,<br />

ihnen zugeordnete virtuelle Maschinen<br />

steuern konnten, ohne über vollständige<br />

administrative Rechte zu verfügen – quasi<br />

ein kleines Cloudportal.<br />

Vom Ausmisten ist auch Xenconvert betroffen,<br />

das Werkzeug <strong>für</strong>s Umwandeln<br />

physikalischer Maschinen in virtuelle.<br />

Und mangels Nachfrage wurde auch das<br />

Work load Balancing (WLB) eingestellt. Es<br />

ermöglichte auf Basis historischer Daten<br />

Entscheidungen über die automatische<br />

Platzierung von virtuellen Maschinen<br />

und gestattete es damit, Hosts gleichmäßig<br />

auszulasten.<br />

Patchen ohne GUI<br />

Die Kommandozeile von Citrix Xenserver ist<br />

ein mächtiges Tool <strong>für</strong> Admins, die sich damit<br />

auskennen. Exemplarisch zeigt sich das beim<br />

Einspielen eines Hotfix, im Folgenden am Critical<br />

Hotfix XS62E002 [10]. Nachdem der Admin<br />

das Patch auf <strong>einen</strong> Rechner mit installiertem<br />

Xencenter heruntergeladen hat, kann er es über<br />

die »xe«-Kommandozeile installieren.<br />

Bademeister oder nicht?<br />

Im ersten Schritt muss das Patch auf den Poolmaster<br />

gelangen. Ob ein Host in der Rolle des<br />

Poolmasters ist, stellt der Admin über die Eigenschaft<br />

»Pool master« in den »General«-<br />

Eigenschaften eines Hosts fest. Das Kommando<br />

gibt eine UUID aus, die der Admin im Folgenden<br />

braucht:<br />

xe patch‐upload ‐s Poolmaster ‐u root U<br />

‐pw Passwort file‐name=U<br />

Basis-Pfad/XS62E002.xsupdate<br />

59128f15‐92cd‐4dd9‐8fbe‐a0115d1b07a2<br />

Danach muss der Hotfix auf alle Maschinen im<br />

Pool gelangen:<br />

xe ‐s Poolmaster ‐u root ‐pw PasswortU<br />

patch‐pool‐apply U<br />

uuid=59128f15‐92cd‐4dd9‐8fbe‐a0115d1b07a2<br />

Nun kann der Admin den Erfolg der Aktion überprüfen:<br />

Das folgende Kommando sollte den Hotfix<br />

auf allen Hosts (gelistet nach ihrer UUID) als<br />

»installiert« oder »installed« anzeigen:<br />

xe patch‐list ‐s Poolmaster ‐u root U<br />

‐pw Passwort name‐label=XS62E001<br />

Diese kritische Aktualisierung benötigt <strong>einen</strong><br />

Neustart aller Maschinen, da sie den Xen-Hypervisor<br />

und die zugehörigen Tools aktualisiert.<br />

Laufende virtuelle Maschinen sollte der Admin<br />

also vorher auf andere Gastgeber migrieren. Im<br />

Erfolgsfall erscheint in den Pool-Eigenschaften<br />

hinter XS62E001 »fully applied«.


Abbildung 4: Einrichten der Neustart-Priorität: »Restart« ist ausgegraut, da die VMs lokal liegen und somit<br />

nicht auf einem anderen Host neu gestartet werden können.<br />

Böse Zungen behaupten, Citrix habe in<br />

der aktuellen Version jetzt schon mehr<br />

Features entfernt als neue hinzugefügt,<br />

doch die Firma will auch in Zukunft den<br />

Lieferumfang weiter „auf das Wesentliche“<br />

reduzieren. Auf dem Prüfstand steht<br />

auch die Unterstützung <strong>für</strong> Microsofts<br />

System Center Virtual Machine Manager<br />

(SCVMM).<br />

Trotzdem bringt der VMware-Konkurrent<br />

immer noch alle Features mit, die Admins<br />

von einer gestandenen Enterprise-Virtualisierung<br />

erwarten: Das Netzwerk lässt<br />

sich <strong>für</strong> Failover und Link-Aggregation<br />

bündeln, die Speicherverteilung dynamisieren,<br />

Xenserver unterstützt eine<br />

Vielzahl von Storage-Backends und lässt<br />

sich per Xe-Kommandozeile oder per<br />

Windows-GUI (Dotnet) administrieren.<br />

Exemplarisch zeigt das der Kasten „Patchen<br />

ohne GUI“.<br />

Auch lassen sich recht einfach virtuelle<br />

Maschinen hochverfügbar bereitstellen.<br />

Dieses Feature fand bereits 2009 Eingang<br />

in Xenserver 5 [12] und stammt vom HA-<br />

Spezialisten Marathon. Die HA-Funktion<br />

ist schnell konfiguriert: Die einzelnen<br />

Host-Systeme mit Xenserver werden zuerst<br />

in <strong>einen</strong> gemeinsamen Ressourcen-<br />

Pool aufgenommen, auf dem der Admin<br />

dann die Hochverfügbarkeit aktiviert.<br />

Wer die Xencenter-Oberfläche verwendet<br />

und nicht von den Vorgabewerten<br />

abweicht, hat dies in deutlich weniger<br />

als zehn Klicks erledigt. Zur Ermittlung<br />

des Zustands der Hosts im Pool dient<br />

ein Heartbeat-Storage-Repository als<br />

Quorum, das allen Hosts zur Verfügung<br />

stehen muss.<br />

Danach kann der Admin <strong>für</strong> die virtuellen<br />

Maschinen in diesem Ressourcen-<br />

Pool die Neustart-Strategie auswählen,<br />

unwichtige VMs bei einem Ausfall ihres<br />

Hosts links liegen lassen und wichtige<br />

auf einem anderen Host neu starten. Der<br />

automatische Neustart lässt sich allerdings<br />

nur konfigurieren, wenn die virtuelle<br />

Maschine auf einem von allen Hosts<br />

gemeinsam genutzten Speicherbereich<br />

liegt, beispielsweise einem zentralen<br />

NFS-Share.<br />

Lokale virtuelle Maschinen starten auf<br />

Wunsch automatisch neu, wenn ihr Host<br />

nach einer Störung wieder zum Leben erwacht.<br />

Auch eine definierte Startreihenfolge<br />

ist möglich (Abbildung 4). Nicht<br />

minder praktisch sind die Funktionen,<br />

mit denen sich die Disk-Images durch<br />

die Gegend schieben lassen, bei Bedarf<br />

auch über Pool-Grenzen hinweg, was<br />

eine deutlich flexiblere Nutzung freier<br />

Ressourcen ermöglicht.<br />

Xenmotion<br />

Xenmotion, also die seit Version 6.1 bestehende<br />

Möglichkeit, virtuelle Maschinen<br />

im laufenden Betrieb auf <strong>einen</strong> ande-


Sysadmin<br />

www.linux-magazin.de Xenserver 10/2013<br />

80<br />

Abbildung 5: Inzwischen ist dank Xenmotion auch eine „Shared Nothing“-Live-Migration von virtuellen<br />

Maschinen möglich, deren Images nicht auf einem gemeinsamen Speicherbereich liegen.<br />

ren Host zu verschieben, auch wenn die<br />

Gastgeber k<strong>einen</strong> gemeinsamen Storage-<br />

Bereich nutzen, erweist sich besonders in<br />

sehr kl<strong>einen</strong> Setups als nützlich. Damit<br />

kann der Admin – etwa aus Kostengründen<br />

– die Infrastruktur klein halten und<br />

auf teuren zentralen Storage verzichten<br />

(Abbildung 5).<br />

Auch der Umzug in <strong>einen</strong> anderen<br />

Ressourcen-Pool ist ohne Betriebsunterbrechnung<br />

möglich [13]. <strong>Alle</strong>rdings lassen<br />

sich auf lokalen Platten vorgehaltene<br />

Maschinen im Falle einer Störung nicht<br />

auf einem anderen Host neu starten.<br />

VDI und virtuelle 3-D-<br />

Anwender im Fokus<br />

Wer auf virtuelle Desktops mit entsprechender<br />

3-D-Grafikleistung angewiesen<br />

ist, wie es beispielsweise im CAD-Bereich<br />

der Fall ist, der will vielleicht eine leistungsfähige<br />

3-D-Grafikkarte in die virtuelle<br />

Maschine durchreichen – entsprechende<br />

„VT for direct I/​O“-Unterstützung<br />

im Bios vorausgesetzt. Das Ganze nennt<br />

sich dann „Multi GPU Pass-Through“.<br />

Auch wenn sich damit die Packungsdichte<br />

der virtuellen Maschinen pro<br />

Host reduziert (jeder Gast reserviert eine<br />

GPU exklusiv) lassen sich doch High-<br />

Performance-Desktops und deutlich anspruchslosere<br />

Desktops auf einem Host<br />

konsolidieren.<br />

Citrix scheint eingesehen zu haben, dass<br />

Xenserver nicht auf allen Hochzeiten<br />

tanzen kann, und besinnt sich auf zwei<br />

Kernmärkte, in denen es die Rolle des<br />

Preis-Leistungs-Siegers anstrebt. Einerseits<br />

den VDI-Markt, bei dem ein auf<br />

hohe VM-Packungsdichte optimierter<br />

Hypervisor von Vorteil ist und wo Citrix<br />

<strong>für</strong> nach 3-D-Leistung gierenden Kunden<br />

Speziallösungen anbietet, die sich dann<br />

auch mit ihrer bestehenden VDI-Umgebung<br />

kombinieren lassen.<br />

An zweiter Stelle zielt Citrix auf den<br />

Cloudmarkt, wo eine quelloffene Hypervisor-Lösung<br />

klar von Vorteil ist. Auch<br />

wenn Xenserver auf dem offenen Xen-<br />

Hypervisor aufsetzt, der eh schon auf<br />

einem großen Prozentsatz von Cloudinstallationen<br />

arbeitet, so gibt es hier durchaus<br />

Szenarien, in denen eine Lösung mit<br />

kommerziellem Support Chancen hat.<br />

Hier verspricht sich Citrix durch die Veröffentlichung<br />

der Quellen eine deutlich<br />

bessere Positionierung sowie mehr Input<br />

und Upstream aus der Community.<br />

Einfach, ausgereift, stabil<br />

und gut <strong>für</strong> Windows<br />

Wer noch nicht in der Cloud angekommen<br />

ist und eigentlich nur <strong>einen</strong> einfach<br />

zu bedienenden Virtualisierer sucht, wird<br />

beim aktuellen Xenserver schnell fündig.<br />

Dort erhält er eine ausgereifte, seit<br />

Jahren flott und stabil arbeitende Virtualisierungslösung,<br />

die sich hinter der<br />

Konkurrenz nicht verstecken muss. Dann<br />

bietet der Xenserver auch ähnlich viele<br />

Features wie die Konkurrenz – zu einem<br />

attraktiven Preis. (mfe) <br />

n<br />

Infos<br />

[1] Release Notes zu Xenserver 6.2.0:<br />

[http:// support. citrix. com/ article/​<br />

CTX137826]<br />

[2] Tech-Preview von Xenserver mit Libvirt<br />

und Ceph:<br />

[http:// www. xenserver. org/ component/​<br />

easyblog/ entry/ tech‐preview‐of‐xenserver<br />

‐libvirt‐ceph. html? Itemid=179]<br />

[3] Udo Seidel, „Speicher satt“:<br />

<strong>Linux</strong>-<strong>Magazin</strong> 02/​2013, S. 30<br />

[4] Lizenzen der Xenserver-Komponenten:<br />

[http:// xenserver. org/ about‐xenserver<br />

‐open‐source/ gplv2‐license. html/]<br />

[5] Xenserver-Community:<br />

[http:// www. xenserver. org]<br />

[6] Andrej Radonic, „Aufholjagd“: <strong>Linux</strong> <strong>Magazin</strong><br />

04/​2013, S. 68<br />

[7] Martin Loschwitz, „Gestapelte Fenster“:<br />

<strong>Linux</strong>-<strong>Magazin</strong> 09/​2013, S. 68<br />

[8] Microsoft Server Validation Program:<br />

[http:// windowsservercatalog. com/ svvp.​<br />

aspx? svvppage=svvp. htm]<br />

[9] Rackspace Cloud FAQ: [http:// www.​<br />

rackspace. com/ cloud/ cloud_hosting_faq/]<br />

[10] Hotfix XS62E002: [http:// support. citrix.​<br />

com/ article/ CTX138349]<br />

[11] Xenserver Blog, „How did we increase VM<br />

density in Xenserver 6.2?“: [http:// www.​<br />

xenserver. org/ component/ easyblog/ entry/<br />

how‐did‐we‐increase‐vm‐density‐in<br />

‐xenserver‐6‐2. html? Itemid=179/]<br />

[12] Markus Feilner, „Neu im Haus“:<br />

<strong>Linux</strong>-<strong>Magazin</strong> 03/​2009, S. 42<br />

[13] Live-Migration von Disks und Storage mit<br />

Xenmotion: [http:// blogs. citrix. com/ 2012/​<br />

08/ 24/ storage_xenmotion/]<br />

Der Autor<br />

Holger Gantikow hat an der<br />

Hochschule Furtwangen Informatik<br />

studiert und ist bei<br />

der Science + Computing AG<br />

in Tübingen als Senior Systems<br />

Engineer tätig. Dort<br />

beschäftigt er sich mit der Komplexität heterogener<br />

Systeme im CAE-Berechnungsumfeld und<br />

betreut Kunden aus dem technisch-wissenschaftlichen<br />

Bereich.


Sysadmin<br />

www.linux-magazin.de Jelastic 10/2013<br />

82<br />

Jelastic: Java und PHP as a Service<br />

Fantastisch elastisch<br />

Jelastic nennt sich das PaaS-Angebot einer Dortmunder Firma speziell zum Betreiben von Java- und PHP-<br />

Anwendungen. Beim Test fiel der Dienst durch technische Finesse und durch sofortiges, lastabhängiges<br />

Skalier verhalten ohne Admin-Eingriff auf. Martin Loschwitz<br />

tai ner, also abgetrennte Bereiche auf dem<br />

Hostsystem, die eigene, beschränkte Ressourcen<br />

bereitgestellt bekommen. Eine<br />

Jelastic-Appliance ist somit zwar keine<br />

echte virtuelle Maschine, wohl aber eine<br />

gekapselte Applikation, die nicht selbstständig<br />

auf die Ressourcen der anderen<br />

Container zugreifen darf. Das verhindert,<br />

dass sich Applikationen gegenseitig beeinflussen,<br />

um Ressourcen streiten oder<br />

Daten stehlen.<br />

© Melinda Nagy, 123RF.com<br />

Ob nur wegen eines unguten Bauchgefühls<br />

oder wegen harter Forderungen an<br />

die Compliance: Firmen tun sich schwer,<br />

externe Cloudleistungen zu buchen, bei<br />

denen ihre Daten auf Servern im Ausland<br />

landen. Prism & Co. sind sicher nicht<br />

geeignet diese Skepsis zu zerstreuen. Im<br />

Umkehrschluss wächst das Angebot an<br />

As-a-Service-Leistungen einheimischer<br />

Dienstleister, auch kleinerer mit pfiffigen<br />

Ideen. Der als Platform-as-a-Service einzuordnende<br />

Dienst Jelastic [1] beispielsweise<br />

hostet <strong>für</strong> seine Nutzer die gesamte<br />

Infrastruktur, die sie <strong>für</strong> PHP- und Java-<br />

Anwendungen benötigen.<br />

Das deutsche Unternehmen Dogado behauptet,<br />

mehr als Webhosting zu bieten,<br />

insbesondere bewerben die Dortmunder<br />

das Feature, dass die auf diese Weise<br />

gehosteten Sites automatisch skalieren,<br />

also regelmäßig ihren Ressourcenbedarf<br />

ermitteln und anpassen. Die öffentliche<br />

Jelastic-Cloud [1] lagert im TÜV-zertifizierten<br />

Rechenzentrum von Host Europe<br />

[2] in Köln, was Bedenken hinsichtlich<br />

des Datenschutzes entgegenwirken soll,<br />

da allein der Rechtsraum der Bundesrepublik<br />

Deutschland gilt.<br />

Wer – wie das <strong>Linux</strong>-<strong>Magazin</strong> – den Jelastic-Dienst<br />

zu testen beginnt, merkt, dass<br />

der Hersteller die Kundenerwartungen<br />

an Public Cloud Computing verstanden<br />

hat: Nach dem Anlegen eines Accounts<br />

auf der Jelastic-Website kommen die Zugangsdaten<br />

per Mail, bezahlt wird per<br />

Überweisung oder Kreditkarte. Dann darf<br />

es bereits losgehen. Selfservicing spielt<br />

bei Jelastic offenbar eine große Rolle.<br />

Mit dem freigeschalteten Account erhält<br />

der Kunde Zugang zum Jelastic Dashboard,<br />

über das er die von ihm genutzten<br />

Dienste innerhalb von Jelastic steuert.<br />

Containerbahnhof verstehen<br />

Das Fundament <strong>für</strong> den Dienst bildet<br />

Technik von Parallels. Der Hersteller<br />

nennt die Appliances, die er hostet, Con-<br />

Skalierbarkeit als<br />

Kernfunktion<br />

Ein Dienst lässt sich auf zweierlei Weise<br />

skalieren: in der Höhe und in der Breite.<br />

Das Skalieren in der Höhe erweitert oder<br />

verringert vorhandene Systeme entweder<br />

um weitere Ressourcen oder ersetzt sie<br />

durch leistungsstärkere oder ‐schwächere<br />

Systeme. Die Zahl der Systeme ändert sich<br />

nicht. Das Skalieren in die Breite dagegen<br />

passt die Anzahl der bereitstehenden Systeme<br />

dem Workload an. Das Skalieren in<br />

der Höhe stößt naturgemäß früher oder<br />

später an seine Grenzen – nämlich dann,<br />

wenn ein Rechner nicht mehr zu erweitern<br />

ist. Skalieren in der Breite hingegen<br />

funktioniert, bis der ganze Rechnerpool<br />

überlastet ist.<br />

Laut Dogado skaliert die Jelastic-Plattform<br />

sowohl in der Höhe als auch in der<br />

Breite. On the Fly bekommt ein Container<br />

zusätzliche Container zur Seite gestellt<br />

und/​oder der Hypervisor des Hosts<br />

Abbildung 1: Der Assistent mit der Sonnebrille führt<br />

durchs Setup. Auch die klassische Dokumentation<br />

ist komplett und hilfreich.


Abbildung 2: Über <strong>einen</strong> Wizard begleitet Jelastic<br />

das Aufsetzen der ersten Umgebung im Jelastic-<br />

Dashboard, die auch eine Datenbank enthalten soll.<br />

passt lediglich die Menge der verfügbaren<br />

Ressourcen an. Der Unterschied <strong>für</strong> den<br />

Kunden macht sich auch bei der Abrechnung<br />

bemerkbar, weil der Kunde bei PaaS<br />

meist die tatsächlich genutzte Leistung<br />

zahlt. Container kosten bei Jelastic eine<br />

Art Grundgebühr, die beim Starten einer<br />

Instanz einmalig anfällt. Der Kunde bestimmt<br />

daher, wie viele virtuelle Server<br />

eine Appliance umfassen soll.<br />

Das Skalieren der Breite übernimmt die<br />

Plattform im laufenden Betrieb dann<br />

selbst: Merkt eine Appliance, dass ihr<br />

die Ressourcen knapp werden, fordert<br />

sie vom Hypervisor automatisch mehr<br />

Power an. De facto muss sich der Kunde<br />

keine Sorgen um die Performance machen,<br />

solange er die maximale Containeranzahl<br />

nicht unterdimensioniert hat.<br />

Die Plattform federt Lastspitzen über das<br />

beschriebene Skalieren der Breite automatisch<br />

ab.<br />

Im Test funktionierte das Ganze prima,<br />

wie mehrere parallele Wget-Prozesse in<br />

der Endlosschleife zeigten, die die Tester<br />

auf eine Jelastic-Testsite losließen. Mit<br />

der anschwellenden Last stieg die Zahl<br />

der genutzten so genannten Cpulets bis<br />

zu den Grenzen, die die Tester zuvor im<br />

Dashboard festgelegt hatten.<br />

Zunächst muss sich der Kunde entscheiden,<br />

welche Art von Appliance er möchte:<br />

<strong>für</strong> Java- oder <strong>für</strong> PHP-Projekte. Für beide<br />

Varianten kann der Admin obendrein eine<br />

SQL- oder No-SQL-Datenbank anfordern.<br />

Ein einzelner Container mit MySQL-Datenbank<br />

und Tomcat kommt auf eine<br />

Grundgebühr von rund 28,50 Euro (24<br />

Euro netto) pro Monat (Abbildung 2).<br />

Am Ende des Einrichtungsvorgangs, der<br />

keine zwei Minuten dauert, erhält der<br />

Kunde eine komplette MySQL-Tomcat-<br />

VM, in der bereits das Beispielprojekt<br />

„Hello World“ deployt ist.<br />

Softwaretechnisch<br />

durchgängig top<br />

Bei den unterstützten Programmen<br />

braucht Jelastic sich definitiv nicht zu<br />

verstecken: Wer die Plattform <strong>für</strong> Java-<br />

Anwendungen nutzt, erhält wahlweise<br />

<strong>einen</strong> Tomcat, der Java 6 oder Java 7 unterstützt<br />

(Abbildung 3), alternativ Jetty<br />

oder Glassfish 3. Für PHP-Anwendungen<br />

stehen PHP 5.3 und PHP 5.4 in Kombination<br />

mit Apache bereit.<br />

Bei den Datenbanken haben Nutzer<br />

die Wahl zwischen MySQL, Maria DB,<br />

PostgreSQL, Counch DB und Mongo DB.<br />

Vorbildlich: Der Anwender kann ein Clustering<br />

mit MySQLs eingebauter Master-<br />

Slave-Funktion direkt im Dashboard<br />

aktivieren. Load Balancing realisiert die<br />

Plattform auf Wunsch per Nginx.<br />

Nach dem ersten Setup steht eine komplette<br />

Java- oder PHP-Appliance in einer<br />

funktionierenden Standardkonfiguration<br />

bereit (Abbildung 4). Doch wer <strong>für</strong> sein<br />

Projekt besondere MySQL- oder PHP-<br />

Einstellungen benötigt, kann diese über<br />

das Jelastic-Dashboard vornehmen. Beachtlich<br />

ist das schon allein deshalb, weil<br />

Jelastic auf diese Art ein wirklich breites<br />

Spektrum an Anwendungen in einem<br />

Container abzubilden vermag.<br />

Management per Mausklick<br />

Für Begeisterung bei den Tests sorgten<br />

die Managementfunktionen. Auf dem<br />

Spielfeld der PHP- und Java-Anwendungen<br />

gibt es praktisch keine Funktion, die<br />

sich nicht in wenigen Mausklicks aktivieren<br />

oder wieder deaktivieren ließe<br />

(Abbildung 5). Wer beispielsweise das<br />

Standardsetup im Anschluss an den ersten<br />

Log in gern hochverfügbar machen<br />

möchte, wählt in der Umgebung über<br />

den Button »Umgebungstopologie ändern«<br />

einfach die Option »HA«. Nach<br />

einem Mausklick und ein paar Sekunden<br />

Wartezeit startet Jelastic eine zweite Instanz<br />

mit identischer Konfiguration – und<br />

erweitert das Setup um <strong>einen</strong> Nginx-basierten<br />

Load Balancer.<br />

Konfigurationsdateien per<br />

Webinterface ändern<br />

Soll die Seite über eine öffentliche IP<br />

von außen zugänglich sein, genügt ein<br />

weiterer Haken bei der IPv4-Funktion,<br />

der <strong>für</strong> die Zuweisung einer zugänglichen<br />

Adresse sorgt. Soll die Appliance schneller<br />

werden, ist vielleicht ein Memcached<br />

hilfreich: Mausklick – fertig. SSL-Zertifikate<br />

sind genauso wenig ein Problem wie<br />

das Einrichten eines Hosts <strong>für</strong> Maven,<br />

also das Java-Build-Werkzeug.<br />

Jelastic 10/2013<br />

Sysadmin<br />

www.linux-magazin.de<br />

83<br />

Hello World<br />

Wer sich bei Jelastic anmeldet, bekommt<br />

nach dem ersten Login über das Dashboard<br />

<strong>einen</strong> Assistenten zur Seite gestellt<br />

(Abbildung 1), der mehr oder minder<br />

hilfreiche Tipps und Tricks von sich gibt.<br />

Sowohl während der Ersteinrichtung als<br />

auch beim normalen Arbeiten bleibt dieser<br />

Ratgeber nicht die einzige Handreichung<br />

der Plattform. Denn es existiert<br />

auch eine ausführliche Dokumentation<br />

in auffallend guter Qualität.<br />

Abbildung 3: Sieht zwar so aus wie ein Tomcat, ist in Wirklichkeit aber ein Nginx, das der Anwender übers<br />

Dashboard zur Instanz hinzugeklickt hat.


Sysadmin<br />

www.linux-magazin.de Jelastic 10/2013<br />

84<br />

Pfiffig ist auch das Editieren von Konfigurationsdateien<br />

gelöst. Dienste, die<br />

Kunden <strong>für</strong> ihre Jelastic-Umgebungen<br />

aktivieren, ersch<strong>einen</strong> in einer Liste, die<br />

spezifisch <strong>für</strong> jede Umgebung existiert.<br />

Dort gibt es dann eine kleine Toolbar<br />

mit einigen Icons, eins davon führt zu<br />

»Dienst konfigurieren«. Dann öffnet sich<br />

ein Editorfenster, in dem Admins die<br />

Konfiguration nach ihren Vorstellungen<br />

ändern (Abbildung 6).<br />

Ein Klick auf »Speichern« beendet den<br />

Vorgang und führt zurück zum Dashboard-Hauptfenster.<br />

Auf diese Weise<br />

gelingt es dem Admin, die Konfigurationsdateien<br />

aller betroffenen Dienste zu<br />

ändern – ein eigener Shellzugang ist jedoch<br />

nicht vorgesehen.<br />

Ausgestaltung zielt<br />

zweifellos auf Firmen<br />

My Home is my Castle: Der Anbieter<br />

Dogado weist darauf hin, dass er eine<br />

Jelastic-Variante <strong>für</strong> eine Private Cloud<br />

anbietet, bei der die Kontrolle über die<br />

Hardware beim Kunden liegt. Weitere Informationen<br />

zu dem Angebot, das einiges<br />

technische Know-how voraussetzt, gibt<br />

es auf Anfrage beim Hersteller.<br />

Auch im Hinblick auf Servicelevel lassen<br />

sich die Dortmunder nicht lumpen,<br />

indem sie mehrere Wege anbieten, um<br />

gegen Aufpreis aus den Standard- <strong>einen</strong><br />

Premium-Support mit 24/​7-SLA zu machen.<br />

Dogado stellt hier offenbar auf<br />

Geschäftskunden ab, die auf der Suche<br />

Abbildung 5: Applikationen lassen sich im Dashboard per Mausklick verändern und erweitern. Diese Funktion<br />

fanden die Tester großartig, weil absolut leicht zu bedienen.<br />

nach einer Plattform <strong>für</strong> ihre Applikation<br />

sind, Support nach Enterprise-Maßstäben<br />

brauchen, aber selbst nicht unbedingt<br />

IT-affin sind.<br />

Wahrlich kein Schnäppchen<br />

Dogado hat sich <strong>für</strong> Jelastic ein cleveres<br />

Tarifsystem ausgedacht, bei dem jede<br />

Computing-Dienstleistung einem Gegenwert<br />

in Cloudlets besitzt. Ein Cloudlet<br />

entspricht 128 MByte RAM und 200 MHz<br />

CPU-Leistung und reichlich 14 Euro pro<br />

Monat. Das nach dem ersten Login im<br />

Webinterface angelegte System mit Tomcat<br />

7 und MySQL beziffert der Hersteller<br />

zum Beispiel auf zwei Cloudlets.<br />

Mit dem laufenden Betrieb beginnt<br />

dann ein etwas komplexes Rechenspiel,<br />

bei dessen Verständnis zum Glück das<br />

Dashboard zur Seite steht. Das Dogado-<br />

Versprechen, Ressourcen nur nach tatsächlichem<br />

Verbrauch zu verrechnen,<br />

wird teilweise dadurch ausgehöhlt, dass<br />

Jelastic <strong>für</strong> bestimmte Dienste Cloudlets<br />

reserviert, die der Kunde auf jeden Fall zu<br />

zahlen hat – beispielsweise beim Aktivieren<br />

der Lastverteilung. Wer <strong>für</strong> eine (!)<br />

Instanz alle Funktionen aktiviert, reserviert<br />

elf Cloudlets fix und zahlt mindestens<br />

82 Euro da<strong>für</strong>. Lediglich die Cloudlets,<br />

die im Rahmen der automatischen<br />

Skalierbarkeit in der Höhe anfallen, sind<br />

tatsächlich wie vom Hersteller angekündigt<br />

dynamisch.<br />

Damit das Ganze nicht zur Kostenfalle<br />

gerät, lässt sich im Dashboard eine Obergrenze<br />

festlegen, die Jelastics automatische<br />

Skalierfunktion nicht überschreiten<br />

wird. Für die zuvor beschriebene Instanz<br />

Abbildung 4: Auch wenn die Farbgebung wohl einige Gewöhnung erfordert – das Jelastic-Dashboard ist durchgängig übersichtlich gestaltet und in wirklich vorbildlicher<br />

Weise funktional, sodass von Klickibunti hier nicht die Rede sein darf.


Jelastic 10/2013<br />

Sysadmin<br />

Abbildung 6: Wer mit der MySQL-Standardkonfiguration nichts anfangen kann, editiert über das Jelastic-Dashboard direkt »my.cnf«.<br />

in der vollständigen Konfiguration liegt<br />

sie ab Werk bei rund 340 Euro brutto und<br />

ist damit schon nicht mehr ganz billig.<br />

Enthalten darin sind allerdings auch die<br />

fixen Gebühren <strong>für</strong> die im Setup genutzten<br />

IPv4-Adressen, die pauschal anfallen,<br />

sobald die IPs in Nutzung sind.<br />

Die Frage, ob sich Jelastic <strong>für</strong> ein Unternehmen<br />

lohnt, hängt insofern von der<br />

erwarteten tatsächlichen Last ab. Wenn<br />

die Jelastic-Applikation aber nicht dauernd<br />

unter Volllast steht, rechnet sich die<br />

Nutzung <strong>für</strong> eine Java- oder PHP-Seite im<br />

Gegensatz zur Wartung und Pflege eines<br />

eigenen Servers zumindest dann, wenn<br />

ein 08/​15-Webhosting-Angebot nicht die<br />

gewünschte Funktionalität mitbringt.<br />

Fazit und Wertung<br />

Die Dienste, die die Firma Jelastic hostet,<br />

ließen sich zwar auch auf einem eigenen<br />

Server betreiben, sei dieser virtualisiert<br />

oder echtes Blech. Doch der wäre lange<br />

nicht so flexibel nutzbar und brächte<br />

obendrein die unangenehme Aufgabe<br />

mit, dass sich jemand um das System<br />

kümmern muss. Wer PaaS-Dienste in<br />

Anspruch nimmt, will ein System, das<br />

„einfach nur funktioniert“. Und tatsächlich<br />

zeichnet sich Jelastic durch eine immense<br />

Flexibilität aus.<br />

Fast wichtiger noch: Jelastic skaliert bei<br />

unerwarteten Lastspitzen automatisch<br />

in den vom Benutzer bestimmten Grenzen.<br />

Wer eine Website oder vielleicht<br />

Onlineshops betreibt, die eine Tages im<br />

Fernsehen gezeigt und anschließend von<br />

Interessenten überrannt werden, fährt<br />

mit einer solchen Skalierungsautomatik<br />

vermutlich deutlich besser als mit einem<br />

dedizierten System.<br />

Auch die technische Umsetzung der<br />

Lösung erwies sich im Test als beinahe<br />

makellos. Es gab nichts, das nicht auf<br />

Anhieb wie erwartet funktioniert hätte.<br />

Die PaaS-Container-Setups <strong>für</strong> PHP und<br />

Java waren leicht aufzusetzen und per<br />

Mausklick um öffentliche IPv4-Adressen,<br />

Hochverfügbarkeit oder auch Load<br />

Balancer schnell und einfach erweitert.<br />

Die ordentliche Dokumentation und der<br />

Umstand, dass alle Daten auf deutschen<br />

Servern liegen, runden den technischen<br />

Gesamteindruck ab.<br />

Weniger Begeisterungsstürme löst dagegen<br />

die Preispolitik von Jelastic aus.<br />

Denn wer die pfiffige Umgebung ernsthaft<br />

nutzt, steigt trotz der Mengenrabatte<br />

schnell in finanzielle Höhen, <strong>für</strong> die sich<br />

auch ein, zwei gemanagte Server mieten<br />

lassen. (jk)<br />

n<br />

Infos<br />

[1] Jelastic: [http:// www. jelastic. com]<br />

[2] Host Europe: [http:// www. hosteurope. de/​<br />

Host‐Europe/ Technologie/ # Datacenter]<br />

Der Autor<br />

Martin Gerhard Loschwitz arbeitet als Principal<br />

Consultant bei Hastexo. Er beschäftigt sich dort<br />

intensiv mit Distributed-Storage-Lösungen sowie<br />

Open Stack. Außerdem ist er Entwickler beim<br />

Debian-Projekt.<br />

www.linux-magazin.de<br />

85


Forum<br />

www.linux-magazin.de Recht 10/2013<br />

88<br />

Brüssel verabschiedet eine EU-Richtlinie zum Open Government<br />

Halbherzige Transparenz<br />

Auf den ersten Blick scheint die EU inzwischen besser da<strong>für</strong> sorgen zu wollen, dass ihre Bürger jetzt wirklich<br />

<strong>einen</strong> rechtlichen Anspruch auf den Zugang zu Informationen und Dokumenten des öffentlichen Sektors<br />

bekommen. Doch leider hält das einer tieferen Betrachtung nicht stand. Fred Andresen<br />

© Achim Baque, 123RF.com<br />

Die EU hat eine neue Open-Data-Richtlinie<br />

[1] erlassen: Eigentlich ist sie nur<br />

eine Änderung der bereits seit 2003 bestehenden<br />

Regelung [2], dennoch verblüfft<br />

das neue Werk vor allem durch ein explizit<br />

genanntes, individuelles Recht auf<br />

Zugang zu öffentlichen Informationen.<br />

Manch ein Beobachter spricht gar von<br />

einem Meilenstein auf dem Weg zum<br />

Open Government. Doch bei genauerem<br />

Hinsehen bleibt davon nicht viel übrig.<br />

Was lange währt<br />

Bereits <strong>für</strong> Ende 2011 war die Neuregelung<br />

versprochen, doch es hat ein<br />

wenig länger gedauert, bis die EU die<br />

neue Open-Data-Regelung auf den Weg<br />

gebracht hat. Sie setzt Änderungen der<br />

bereits seit 2003 existierenden „Richtlinie<br />

über die Weiterverwendung von Informationen<br />

des öffentliche Sektors“ um.<br />

In den Blickpunkt des Interesses rückt<br />

sie, weil die Änderung – anders als noch<br />

die Vorgängerversion – erstmalig auch<br />

<strong>einen</strong> unmittelbaren Rechtsanspruch auf<br />

Zugang und Weiterverwendung der Daten<br />

gewährt.<br />

Und weil EU-Richtlinien höherrangiges<br />

Recht sind als einfache nationale Gesetze,<br />

kommt es nicht darauf an, ob die<br />

Mitgliedsstaaten die Richtlinie in vollem<br />

Umfang oder fristgerecht in eigenes Recht<br />

umsetzen – geschieht dies nicht, dann<br />

gelten die in der Richtlinie enthaltenen<br />

Rechtsansprüche auch unmittelbar zugunsten<br />

des Bürgers.<br />

Open Data<br />

Open Data steht <strong>für</strong> den freien Zugang zu<br />

Informationen aller Art, die der Verwaltung<br />

zur Verfügung stehen. Ausgenommen<br />

bleiben personenbezogene Daten<br />

der Bürger. Dieses Prinzip treiben die Regierungen<br />

und Behörden der EU bereits<br />

seit einigen Jahren voran. Dahinter steht<br />

der Open-Government-Gedanke – also<br />

das Bestreben, die Verwaltung <strong>für</strong> den<br />

Bürger transparenter zu machen.<br />

Seit der ersten Open-Government-Definition<br />

im Oktober 2007 legen zehn Prinzipien<br />

offener Regierungsinformation<br />

den Charakter von Open Government<br />

fest [3]. Hierzu gehört die Vollständigkeit<br />

der Daten, die neben den Rohdaten<br />

auch Metadaten und zum Verständnis<br />

erforderliche Erläuterungen einschließt,<br />

ebenso das Primärdatenprinzip, demzufolge<br />

auch der Erhebungsprozess nachvollziehbar<br />

dokumentiert sein soll.<br />

Open Data selbst setzt auf drei Säulen:<br />

Die erste bilden Verfügbarkeit und freier<br />

Zugang, was zumutbare Kosten und<br />

zweckmäßige, möglichst maschinenlesbare<br />

Datenformate einschließt. Die<br />

zweite Säule sind Wiederverwendbarkeit<br />

und Weitergabemöglichkeit, die dritte<br />

Säule ist die universelle Beteiligung –<br />

ohne Benachteiligung oder Bevorzugung<br />

einzelner Gruppen.<br />

Leichter Zugang und Maschinenlesbarkeit<br />

gehören ebenso zu den Prinzipien<br />

wie Diskriminierungsfreiheit und die<br />

Verwendung offener Standards. Unter<br />

dem Prinzip der Lizenzierung wird im<br />

Wesentlichen die Forderung zusammengefasst,<br />

die von der Verwaltung erstellte<br />

oder zusammengetragene Information<br />

Mailen Sie uns Ihre Fragen!<br />

Im monatlichen Wechsel mit aktuellen Fachbeiträgen<br />

lässt das <strong>Linux</strong>-<strong>Magazin</strong> in der Serie<br />

„Rechts-Rat“ Leserfragen durch <strong>einen</strong><br />

Rechtsanwalt kompetent beantworten. Was<br />

immer Sie beschäftigt oder ärgert, oder was<br />

Sie einfach nur wissen möchten: Schreiben<br />

Sie eine entsprechende E-Mail an die Adresse<br />

[rechtsrat@linux-magazin. de].<br />

Die Themen dürfen von Software lizenzen bis<br />

zum Hardwarekauf reichen. Die Redaktion<br />

behält es sich vor, abgedruckte Zuschriften<br />

zu kürzen und eventuell enthaltene persönliche<br />

Daten zu ändern.


solle gemeinfrei sein und sei damit uneingeschränkter<br />

privater oder unternehmerischer<br />

Weiterverwendung zuzuführen.<br />

Der Anspruch, die Daten sollten dauerhaft<br />

frei sein, zieht ein nachvollziehbares<br />

Versionskontrollsystem als Konsequenz<br />

nach sich. Auch die Kosten <strong>für</strong> eine Datenabfrage<br />

werden, selbst wenn sie sehr<br />

gering ausfallen sollten, faktisch eine<br />

Einschränkung der öffentlichen Verfügbarkeit<br />

bedeuten.<br />

Data ist nicht Government!<br />

Open Government und Open Data stehen<br />

einander meist recht nahe, werden<br />

oft in einem Atemzug genannt, klaffen<br />

aber bisweilen deutlich auseinander.<br />

Open Data will zwei Fliegen mit einer<br />

Klappe schlagen: Zum <strong>einen</strong> entspricht<br />

die Ausdehnung des Open-Government-<br />

Ansatzes dem immer lauter geäußerten<br />

Wunsch der Staatsbürger nach Zugang zu<br />

allen nur denkbaren Informationen, die<br />

der Staat vorhält – man will schließlich<br />

wissen, was Ämter und Behörden alles<br />

speichern, was man als Bürger durch<br />

eigene, oft auch umgewollte Preisgabe<br />

beitrug oder durch Steuern und Abgaben<br />

mitfinanziert.<br />

Zum anderen gibt’s auch <strong>einen</strong> wirtschaftlichen<br />

Ansatz: Weil die gewerbliche<br />

Verknüpfungs- und Nutzungsmöglichkeit<br />

der künftig frei zugänglichen Informationen<br />

bewusst gestattet, also gefördert<br />

wird, zeigt sich als Ziel der Maßnahme<br />

die Schaffung einer zusätzlichen Umsatz-<br />

Maschinerie. Bataillone von Dienstleistern<br />

könnten, so die Hoffnung der EU,<br />

entstehen, die mit geschickt verknüpften,<br />

passend auf den jeweiligen Interessenten<br />

zusammengestellten Informationen<br />

die Wirtschaft ankurbeln und die Steuererträge<br />

steigern.<br />

Gemeinfrei?<br />

© Marc Dietrich, 123RF.com<br />

Abbildung 1: Verfügbarkeit und freier Zugang, Wiederverwendbarkeit<br />

und Weitergabe sowie universelle<br />

Beteiligung: Open Data baut auf drei Säulen.<br />

So weit die Theorie, doch wer die Begründung<br />

der Richtlinienänderungen durchliest,<br />

dem fällt vor allem ein Ziel auf:<br />

Bibliotheken, insbesondere Hochschulbibliotheken,<br />

Museen und vergleichbare<br />

staatliche Archive sind im Besitz von<br />

Dokumenten und Werken, deren urheberrechtliche<br />

Schutzdauer abgelaufen ist,<br />

die daher gemeinfrei sind und darüber<br />

hinaus aufgrund fortgeschrittener Digitalisierung<br />

auch noch leicht verfügbar<br />

gemacht werden können.<br />

Das schließt auch Geoinformationsdaten<br />

ein. Für andere, „außerkulturelle“ Bereiche,<br />

so die Begründung der Richtlinie,<br />

solle die Ausweitung nicht gelten. Wer<br />

also darauf hofft, endlich die geheimen<br />

Statistiken der Bundesbehörden – so es<br />

denn solche gibt – auswerten oder diese<br />

gar als Grundstock <strong>für</strong> eigenes Wirtschaften<br />

heranziehen zu dürfen, muss sich<br />

diesen Zahn wohl ziehen lassen.<br />

Was bleibt, ist dennoch die ganze Spannweite<br />

unterschiedlicher Projekte, vom virtuellen<br />

Museumsrundgang samt Standortinformationen<br />

<strong>für</strong> Mobilgeräte bis zur<br />

„Promotionsberatungs-App“ samt Literaturrecherche<br />

und Plagiatsvermeidungs-<br />

Algorithmus.<br />

Freier Zugang? Ja!<br />

Auch wenn die vielleicht erhoffte Vollbeschäftigung<br />

bundesdeutscher Arbeitnehmer<br />

mit dieser Form von Open Data<br />

wohl nicht in beengende Nähe springen<br />

wird, stellt sich das Konzept zumindest<br />

<strong>für</strong> Software-Anbieter und System-Dienstleister<br />

gerade aus dem Open-Source-Bereich<br />

interessant und zukunftsträchtig<br />

dar. Open Source und Open Data passen<br />

schließlich nicht nur dem Namen nach<br />

prächtig zusammen.<br />

Gerade weil die Interoperabilität bei der<br />

Definition von Open Data groß geschrieben<br />

ist, was nichts anderes als den weitestgehenden<br />

Verzicht auf proprietäre Datei-<br />

und Datenformate zugunsten offener<br />

Standards bedeutet, haben auch jene, die<br />

auf freie Software setzen, große Chancen<br />

auf ein Stück vom Kuchen.<br />

Voraussetzung da<strong>für</strong> ist natürlich ein<br />

gesetzlich gewährter Anspruch, den es<br />

durchzusetzen gilt. So ein Anspruch<br />

muss auf zwei Aspekte gerichtet sein: einerseits<br />

auf den Zugang zur Information<br />

selbst, andererseits auf deren Bereitstellung.<br />

Die Änderungen der EU-Richtline<br />

aus dem Jahre 2003 [2] enthalten nun<br />

<strong>einen</strong> unmittelbaren gesetzlichen Anspruch<br />

auf Zugang und Nutzbarkeit.<br />

Lost in Translation?<br />

Kein unmittelbarer Anspruch besteht hingegen<br />

in Bezug auf das Datenaustauschformat:<br />

Laut Änderung in Artikel 5 der<br />

neuen Richtlinie „sollen“ Einrichtungen<br />

der öffentlichen Verwaltung Informationen<br />

nur dann mittels offener und maschinenlesbarer<br />

Formate zur Verfügung<br />

stellen – wenn dies „possible and appropriate“<br />

ist. Es kommt auf die Übersetzung<br />

an, wie die Frage nach den Dateiformaten<br />

in der Praxis zeigen wird. Während sich<br />

„possible“ noch als „möglich“ übersetzen<br />

ließe, variiert die Vokabel „appropriate“<br />

zwischen angebracht, geeignet und<br />

sachdienlich.<br />

Wer jedoch an die Intention hinter der<br />

Richtlinie denkt, nämlich keine Gruppen<br />

von der Verwendung der Informationen<br />

auszuschließen oder einzuschränken,<br />

landet hier zwingend bei dem Paradigma<br />

der traditionellen Verwaltungsrechtsprechung:<br />

„Sollen heißt müssen,<br />

wenn können!“ Das bedeutet: Nur dann<br />

freie Formate, wenn nicht irgendwelche<br />

„zwingenden Gründe“ eine Konvertierung<br />

ausschließen!<br />

Leider recht ungezwungen<br />

Dieser fehlende Zwang zum offenen<br />

Austauschformat ist jedoch nur ein Nebenkriegsschauplatz,<br />

der von den eigentlichen<br />

Problemen ablenkt: Erstens<br />

enthält die Richtlinie eine Klausel, nach<br />

der jeweils nationale Gesetze den gesamten<br />

Inhalt ad absurdum führen können.<br />

Zweitens geht es hier keinesfalls um Informationen<br />

aus beziehungsweise über<br />

die Verwaltung, sondern ausschließlich<br />

um die digitale Veröffentlichung von<br />

Recht 10/2013<br />

Forum<br />

www.linux-magazin.de<br />

89


Forum<br />

www.linux-magazin.de Recht 10/2013<br />

90<br />

© Nagy-Bagoly Ilona, 123RF.com<br />

Abbildung 2: Die neue Regelung erweist sich als ein zahnloser Tiger, der erst noch einige Jahre reifen muss.<br />

Werken aus den genannten Kulturbereichen,<br />

also nur um digitalisierte Bücher,<br />

Bilder, Museen und Ähnliches.<br />

Und weil schließlich nur Werke, deren<br />

Schutzdauer abgelaufen ist, gemeinfrei<br />

sind und in digitalisierter Form ohne Einwilligung<br />

der Urheber beziehungsweise<br />

Rechte-Inhaber veröffentlicht werden<br />

dürfen, sind auch Werke der darstellenden<br />

Künste oder musikalische Aufführungen<br />

ausgeschlossen. Wer also darauf<br />

spekuliert, die Opernaufführung künftig<br />

im Schlafanzug vom heimischen Sofa<br />

aus besuchen zu können, der irrt. Auch<br />

Konzerte wird’s nicht so einfach online<br />

wählbar geben – auch wenn die Philharmoniker<br />

noch so sehr durch öffentliche<br />

Mittel finanziert werden.<br />

Konzert nein, Rundgang ja<br />

Der Rundgang durchs Museum, durch<br />

Galerien oder romantische Schlösser<br />

könnte allerdings möglich werden. Nach<br />

der Intention der Richtlinie sogar so<br />

kostengünstig, dass Abertausende von<br />

Besuchern königlicher Prunkschlösser<br />

nicht mehr vor Ort ersch<strong>einen</strong> müssen,<br />

um etwa Neuschwanstein oder Sanssouci<br />

zu bewundern. Was natürlich auch dazu<br />

führen könnte, dass der Region wertvoller<br />

Tourismus entgeht oder dass Museen<br />

und Galerien einfach weniger teure Kataloge<br />

verkaufen.<br />

So werden die <strong>einen</strong> wohl die neue Richtlinie<br />

als wegweisenden Schritt zu einer<br />

transparenten öffentlichen Verwaltung<br />

verkaufen – was sie nicht ist –, während<br />

andere das Ding als nichts anderes als<br />

den Ausverkauf staatlicher Kultur entlarven<br />

wollen – was auch nicht der dahinter<br />

stehenden Absicht entspricht.<br />

Offen bleibt, inwieweit die Mitgliedsstaaten<br />

die Richtlinie in Kraft treten lassen<br />

und inwieweit sie den Zugriff von Bürgern<br />

und Wirtschaftstreibenden auf die<br />

Kulturdaten sogar einschränken werden<br />

– denn das ist mit speziell zu diesem<br />

Zweck erlassenen nationalen Vorschriften<br />

möglich: Der Rechtsanspruch auf<br />

kulturelle Teilhabe entsteht nur, wenn<br />

der Zugang nicht durch nationales Recht<br />

eingeschränkt ist.<br />

Private Partner<br />

Aber möglicherweise stehen auch Interessen<br />

hinter der Richtlinie, die offiziell<br />

gar nicht genannt wurden: Nach dem Erwägungsgrund<br />

unter Ziffer 30 der neuen<br />

Richtlinie spricht die EU von zahlreichen<br />

bereits bestehenden Kooperationspartnerschaften<br />

mit privaten Partnern, die<br />

bereits jetzt vereinzelt in den Genuss der<br />

Einräumung von Ausschließlichkeitsrechten<br />

bezüglich der Digitalisierung<br />

von Werken gekommen sind – und was<br />

sich nach Ansicht der EU offensichtlich<br />

„bewährt“ hat.<br />

Jedenfalls insoweit, dass sie auch <strong>für</strong> die<br />

künftige Digitalisierung entsprechende<br />

enge Zusammenarbeit mit privaten Partnern<br />

be<strong>für</strong>wortet, die zur Sicherung der<br />

Amortisierung ihrer Investitionen im<br />

Allgem<strong>einen</strong> auf zehn Jahre befristete<br />

Ausschließlichkeitsrechte gewährt bekommen.<br />

Es wird sich zeigen, welche privaten<br />

Partner hier die Zuschläge erhalten<br />

und ob die Kulturverwaltung eventuell<br />

transparenter, freizügiger und vielleicht<br />

sogar auf eigene Kosten digitalisierte<br />

Werke zugänglich macht.<br />

Auch ohne den Verwaltungsbehörden Böses<br />

zu unterstellen, scheint es fraglich, ob<br />

sie freiwillig mehr als unbedingt nötig herausrücken.<br />

Das liegt jedoch nicht daran,<br />

dass ihre Interessen gegen die Bürger gerichtet<br />

sind, sondern dass die Verwaltung<br />

regelmäßig die Interessen aller Bürger,<br />

nicht eines Einzelnen, im Auge hat.<br />

Daher ist auch nach Umsetzung der<br />

Richtlinie in nationales Recht mit einer<br />

Zunahme an Klagen zu rechnen, die auf<br />

Erteilung der gewünschten Information<br />

und eventuell auch im gewünschten Format<br />

gerichtet sind. Erst wenn die höheren<br />

Instanzen eine hoffentlich weitreichend<br />

der Intention hinter Open Data entsprechende<br />

Rechtsprechung gefestigt haben,<br />

könnte der Informationszugang tatsächlich<br />

liberalisiert sein.<br />

Zahn- und mutlos<br />

Wer die neue EU-Richtline <strong>für</strong> den machtvollen<br />

Dämon hält, der die Verwaltungsbehörden<br />

kräftig aufmischt und sie zur<br />

Umsetzung wahrhaft „offener Verwaltung“<br />

zwingt, sieht sich enttäuscht und<br />

stattdessen nur <strong>einen</strong> zahnlosen Tiger,<br />

der allenfalls ein paar kulturelle Einrichtungen<br />

anmiaut, damit hier und dort ein<br />

klassisches Werk online geht.<br />

Was bleibt, ist die Aufforderung an Museen,<br />

Bibliotheken und staatliche Archive,<br />

ihre Bestände möglichst online zu<br />

stellen. Was nichts anderes bedeutet, als<br />

der Öffentlichkeit, die den überwiegenden<br />

Anteil davon im Rahmen öffentlicher<br />

Mittel finanziert haben dürfte, den<br />

Zugang so zu erleichtern, dass er dem<br />

digitalen Zeitalter entspricht. Und das ist<br />

ja immerhin schon etwas. (mfe) n<br />

Infos<br />

[1] Richtlinie 2013/​37/​EU: [http:// eur‐lex.​<br />

europa. eu/ LexUriServ/ LexUriServ. do?<br />

uri=OJ:L:2013:175:0001:0008:DE:PDF]<br />

[2] Richtlinie 2003/​98/​EG: [http:// eur‐lex.​<br />

europa. eu/ LexUriServ/ LexUriServ. do?<br />

uri=OJ:L:2003:345:0090:0096:DE:PDF]<br />

[3] Konferenzbericht der Sunlight Foundation:<br />

[http:// sunlightfoundation. com/ policy/​<br />

documents/ ten‐open‐data‐principles/]


Forum<br />

www.linux-magazin.de Bücher 10/2013<br />

92<br />

Bücher über C und über Programmierer-Gesundheit<br />

Tux liest<br />

Das <strong>Linux</strong>-<strong>Magazin</strong> bespricht zwei englischsprachige Bücher: Das erste will frischen Wind in die C-Entwicklung<br />

bringen, das zweite mehr Gesundheit in den Alltag von Programmierern. Jürgen Quade, Mathias Huber<br />

Der Autor, Soziologe und Programmierer<br />

Ben Klemens hat nach Jahren der Abstinenz<br />

die Programmiersprache C wiederentdeckt.<br />

Das Resümee seines englischsprachigen<br />

Buches „21st Century C“: In<br />

Kombination mit den passenden Werkzeugen<br />

lässt sich damit außerordentlich<br />

effizient entwickeln.<br />

C – neu entdeckt<br />

Dementsprechend vermittelt Klemens<br />

nicht nur die mit den Standards C99 und<br />

C11 eingeführten Neuerungen, sondern<br />

widmet sich in fünf von zwölf Buchkapiteln<br />

der (Entwicklungs-)Umgebung<br />

vornehmlich unter Unix. Dabei thematisiert<br />

er Shellprogrammierung ebenso wie<br />

Make, Autoconf, die Versionsverwaltung<br />

mit Git sowie Debugging und den Umgang<br />

mit Bibliotheken.<br />

In den übrigen sieben Kapiteln geht es<br />

um Pointer, Datenstrukturen, Unicode,<br />

das objektorientierte Programmieren mit<br />

C oder spezifische Bibliotheken, zum Beispiel<br />

<strong>für</strong> den Datenbankzugriff. Eines der<br />

Kapitel widmet sich C-Konstrukten, die<br />

man nach Meinung von Klemens besser<br />

außen vor lassen sollte.<br />

Das „C-Buch des 21. Jahrhunderts“ ist<br />

kein Einsteigertitel. Es richtet sich vielmehr<br />

an Programmierer, die ihre C-<br />

Kenntnisse auffrischen und erweitern<br />

wollen. Der eigentliche Wert des Buches<br />

Info<br />

Ben Klemens:<br />

21st Century C<br />

O’Reilly, 2012<br />

292 Seiten<br />

25 Euro (E-Book 20 Euro)<br />

ISBN 978-1-4493-2714-9<br />

liegt in den vielen Anwendungsbeispielen<br />

und Tipps. <strong>Alle</strong>rdings offenbart es<br />

genau da auch Defizite: Switch-Case-<br />

Anweisungen durch If-else-Konstrukte<br />

zu ersetzen (Seite 123) stößt sicherlich<br />

nicht auf allgemeine Zustimmung. Das<br />

Weglassen von »return 0« am Ende der<br />

»int main()«-Funktion (Seite 116) quittiert<br />

der GCC unter Ubuntu mit einer berechtigten<br />

Warnung.<br />

Das Buch hinterlässt <strong>einen</strong> ambivalenten<br />

Eindruck: „21st Century C“ ist eine<br />

interessante Lektüre, die nicht nur dem<br />

Wiedereinsteiger, sondern auch dem<br />

versierten Programmierer immer wieder<br />

Aha-Erlebnisse vermittelt. Um Gewinn<br />

aus dem Buch zu ziehen, bedarf es allerdings<br />

eines kritischen Lesers.<br />

Gesünder arbeiten<br />

Neben Zeitmanagement- und Karriere-<br />

Büchern ersch<strong>einen</strong> nun auch Gesundheitsratgeber<br />

<strong>für</strong> IT-Angestellte. Das hat<br />

gute Gründe, denn den Bildschirmarbeitern<br />

drohen Rücken- und Kopfschmerzen,<br />

überlastete Maus-Arme und Herz-<br />

Kreislauf-Erkrankungen. Davor möchte<br />

sie das englischsprachige Buch „The<br />

Healthy Programmer“ bewahren.<br />

Bevor sich der Autor Joe Kutner den einzelnen<br />

Problemen widmet, erörtert er in<br />

einem eigenen Kapitel, wie der PC-Arbeiter<br />

ungesunde Gewohnheiten ablegt und<br />

zu einem gesünderen Lebensstil findet.<br />

Dabei verwendet er Entwickler-taugliches<br />

Vokabular wie iterativ, Unittest und Bootstrapping.<br />

Dann geht es aber schon los<br />

mit den Veränderungen: Der Leser soll<br />

öfter stehen, zu Fuß gehen, <strong>einen</strong> Schrittzähler<br />

kaufen und die Einhaltung seiner<br />

Gesundheitsziele mittels Checkliste oder<br />

der kostenlosen iPhone-App zum Buch<br />

kontrollieren.<br />

Das nächste Kapitel behandelt Probleme<br />

von im Sitzen arbeitenden Menschen.<br />

Sein Rat: alle 20 Minuten die Haltung<br />

ändern, stündlich fünf Minuten bewegen<br />

und über ein Stehpult als Ergänzung<br />

nachdenken – aber nur, wer nicht an<br />

Diabetes oder Bluthochdruck leidet.<br />

Ein weiterer Themenkomplex, den Kutner<br />

ausführlich behandelt, ist die Ernährung,<br />

denn viele Entwickler leiden an Übergewicht.<br />

Seine Ratschläge entsprechen der<br />

gängigen Ernährungslehre: mehr Obst<br />

und Gemüse essen und die Kalorien zählen,<br />

außerdem nicht aus Stress oder Langeweile<br />

futtern. Zur Illustration erzählt<br />

er Fallgeschichten von Entwicklern, die<br />

erfolgreich abgenommen haben.<br />

Im weiteren Verlauf lernt der Leser, dass<br />

die Bildschirmarbeit unter Umständen<br />

eine spezielle Brille erfordert, welche<br />

Ursachen Kopfschmerzen haben können<br />

und welche Übungen den Rücken stärken.<br />

Bei den geplagten Handgelenken beschränkt<br />

sich der Autor leider ausschließlich<br />

auf das Karpaltunnel-Syndrom.<br />

In die Arbeit eingeplante Pausen und<br />

Übungen, Tipps <strong>für</strong> weitere sportliche<br />

Aktivitäten sowie Fitness-Tests vervollständigen<br />

das Buch. Wer Anregungen <strong>für</strong><br />

<strong>einen</strong> gesünderen (und damit zufriedeneren)<br />

Arbeitsalltag am PC sucht, ist mit<br />

diesem Buch gut beraten. Wer jedoch bereits<br />

Beschwerden oder Schmerzen hat,<br />

sollte besser zum Arzt gehen. n<br />

Info<br />

Joe Kutner:<br />

The Healthy Programmer<br />

Pragmatic Programmers,<br />

2013, 255 Seiten<br />

27 Euro (E-Book 24 US-<br />

Dollar)<br />

ISBN 978-1-93778-531-4


Forum<br />

www.linux-magazin.de Leserbriefe 10/2013<br />

94<br />

Auf den Punkt gebracht<br />

Leserbriefe<br />

Haben Sie Anregungen, Statements oder Kommentare? Dann schreiben Sie an [redaktion@linux-­magazin.­de].<br />

Die Redaktion behält es sich vor, die Zuschriften und Leserbriefe zu kürzen. Sie veröffentlicht alle Beiträge mit<br />

Namen, sofern der Autor nicht ausdrücklich Anonymität wünscht.<br />

Bacula<br />

07/​13, S. 22: Zur Ressourcen-Verschwendung<br />

durch ungenutzte Indizes am Beispiel<br />

von Bacula: Ob die erwähnten<br />

Indizes zum Einsatz kommen, hängt<br />

von der Nutzung ab. Aktuelle Versionen<br />

legen den Index »file_pathid_idx«<br />

standardmäßig nicht mehr an. Das Skript<br />

»make_postgresql_tables« enthält jedoch<br />

den Hinweis, dass man diesen sowie »file<br />

_filenameid_idx« anlegen sollte, wenn<br />

man Verify-Jobs verwendet.<br />

Interessanter ist der Index »file_jpfid_<br />

idx«, ihn haben wir uns im Bareos-Projekt<br />

(einem Bacula-Fork) etwas genauer<br />

angesehen. Sinnvoll wird dieser, sobald<br />

ein Restore basierend auf einer Liste von<br />

absoluten Pfaden zum Selektieren der<br />

wiederherzustellenden Dateien laufen<br />

soll. Ohne den Index wird ein solcher<br />

Restore so langsam, dass er praktisch<br />

nicht nutzbar ist.<br />

Stephan Dühr, Bareos GmbH & Co. KG,<br />

per E-Mail<br />

Sie haben Recht: Wer <strong>einen</strong> Index löscht,<br />

sollte die Anwendung sehr gut kennen<br />

und sicher sein, dass es k<strong>einen</strong> gravierenden<br />

Anwendungsfall gibt, in dem er<br />

ihn schmerzlich vermissen wird. (Marc<br />

Schiffbauer)<br />

E-Book-Kosten<br />

08/​13, S. 79: Zur Rezension des Buches<br />

„Scypi and Numpi“. Sie schreiben am<br />

Ende: „Der Preis von rund 11 Euro erscheint<br />

<strong>für</strong> ein 60 Seiten dünnes Büchlein<br />

gerade noch akzeptabel, wenn man<br />

die reicht kleine Zielgruppe bedenkt.“<br />

Grundsätzlich finde ich es gut, dass Sie<br />

damit indirekt eine Lanze da<strong>für</strong> brechen,<br />

exotische Fachinhalte auch mal etwas<br />

teurer zu verkaufen. Abgesehen davon,<br />

dass sie nicht leicht zu schreiben sind,<br />

generieren sie nämlich ohnehin nur geringe<br />

oder gar keine Einnahmen.<br />

Ich möchte aber darauf hinweisen, dass<br />

wir sämtliche Hefte dieser Art wie auch<br />

viele andere Titel auch als E-Book anbieten,<br />

das deutlich billiger kommt – in<br />

diesem Fall kostet es 7,99 Euro.<br />

Alexander Plaum, Verlag O’Reilly, per<br />

E-Mail<br />

Vielen Dank <strong>für</strong> den Hinweis. Ab dieser<br />

<strong>Linux</strong>-<strong>Magazin</strong>-Ausgabe wird die Redaktion<br />

auf der Bücherseite auch E-Book-<br />

Preise angeben, sofern verfügbar. (mhu)<br />

Embedded-Bootloader<br />

08/​13, S. 86: Ich verfolge mit großem<br />

Interesse die „Kern-Technik“. Den Raspberry<br />

Pi kenne ich nur aus der Literatur,<br />

ich arbeite aber mit einer anderen<br />

Embedded-ARM-Hardware. Dort nutze<br />

ich ebenfalls Cross-Kompilierung, starte<br />

das System aber direkt von NFS. Das<br />

wird durch den Bootloader U-Boot möglich.<br />

Ich kann dabei das Bootkommando<br />

auch so setzen, dass U-Boot bei einem<br />

Neustart von NFS oder TFTP bootet. Ist<br />

das mit dem Pi nicht möglich?<br />

Johann Schäuble, per E-Mail<br />

Das von Ihnen skizzierte Vorgehen ist im<br />

Embedded-Bereich insbesondere dann<br />

praktisch, wenn es um das Generieren der<br />

Systemsoftware geht. Der proprietäre Bootloader<br />

des Pi kennt diese Funktionalität<br />

leider nicht. <strong>Alle</strong>rdings können Sie auf der<br />

Flashkarte auch U-Boot ablegen und diesen<br />

anstelle des Kernels aktivieren. U-Boot<br />

bootet dann per Bootp und TFTP oder NFS<br />

übers Netzwerk – theoretisch. Praktisch<br />

habe ich das Szenario bei m<strong>einen</strong> Versuchen<br />

allerdings noch nicht ganz durchgespielt<br />

bekommen. (Jürgen Quade)<br />

Mailheader<br />

09/​13, S. 60: Ein paar Anmerkungen zum<br />

Mailserver-Artikel „Talking Heads“: Die<br />

Regular Expressions sind zwar korrekt,<br />

aber Ausdrücke wie »/^something.*$/«<br />

schreibt man besser in der Form »/^something/«.<br />

Der Artikel erwähnt mit<br />

keinem Wort, dass die Regeln auch <strong>für</strong><br />

eingehende Mail gelten. Doch es ist ungünstig,<br />

wenn man aus diesen Mails<br />

Header entfernt und dabei möglicherweise<br />

DKIM-Signaturen zerstört. Die Alternative<br />

»smtp_header_checks« [http://​<br />

­www.​­postfix.​­org/​­postconf.​­5.​­html#​­smtp<br />

_header_checks] findet leider gar keine<br />

Erwähnung.<br />

Ralf Hildebrandt, per E-Mail n<br />

Errata<br />

06/​13, S. 34: Im Artikel zu den Ein-Platinen-<br />

Computern haben sich zwei Fehler eingeschlichen.<br />

Korrekt ist: Das Beagleboard ist<br />

unter [http:// beagleboard. org] erhältlich.<br />

Das Wandboard von Denx CS bilden wir hier<br />

in Abbildung 1 richtig ab.<br />

Abbildung 1: So sieht ein Wandboard aus.


Hardware<br />

www.linux-magazin.de Leap Motion 10/2013<br />

96<br />

Freihändige Gestensteuerung mit dem Leap-Motion-Controller<br />

Fingerspitzengefühl<br />

Hollywood präsentierte sie in dem Film „Minority Report“, Microsofts Kinect brachte sie ins Wohnzimmer:<br />

eine Computersteuerung über Gesten. Schon bald versprachen Projekte, sie auch auf gängige PCs zu bringen.<br />

Jetzt gibt es <strong>für</strong> wenig Geld ein sehr sensibles Eingabegerät mit <strong>Linux</strong>-Treibern: Leap Motion. Valentin Höbel<br />

© Leap Motion<br />

Abbildung 1: Leap Motion kommt mit einer Anleitung und einem USB-Kabel beim Käufer an.<br />

Kinect überwacht den ganzen Raum, der<br />

Leap-Motion-Controller [1] nur den unmittelbaren<br />

Bereich vor dem USB-Sensor.<br />

Während Microsoft eine Auflösung von<br />

wenigen Zentimetern genügt, strebt der<br />

kleine USB-Sensor mit den zwei Kameras<br />

und drei Infrarotsensoren nach mehr:<br />

Eine Bewegung über <strong>einen</strong> 100stel-Quadratmillimeter<br />

reicht, damit Leap Motion<br />

reagiert – und diese Empfindlichkeit<br />

spürt der Benutzer deutlich und nicht<br />

immer angenehm.<br />

Mehr als zwei Jahre lang arbeitete das<br />

amerikanische Unternehmen mehr oder<br />

weniger geheim an einem Controller,<br />

der sich vor <strong>einen</strong> Computer legen lässt<br />

und es gestattet, innerhalb eines halbkugelförmigen<br />

Bereichs alle Hand- und<br />

Fingerbewegungen, ja sogar die der Fingerspitzen,<br />

mit extrem hoher Genauigkeit<br />

zu erfassen.<br />

Wer 2011 <strong>für</strong> knapp 70 US-Dollar vorbestellte,<br />

hielt frühestens am 22. Juli 2013<br />

s<strong>einen</strong> Leap-Motion-Controller in Händen.<br />

Den Versand an Europäer wickelte<br />

eine Partnerfirma in Tschechien ab, die<br />

aber mit deutschen Umlauten in der Adresse<br />

etwas überfordert schien.<br />

Ausgepackt ist Leap Motion gerade mal<br />

doppelt so groß wie ein USB-Stick (Abbildung<br />

1) und tastet – via USB mit dem<br />

Computer verbunden – den Raum über<br />

dem Gerät mit Sensoren und Kameras<br />

ab. Während aber Microsofts Kinect auf<br />

die Erfassung des gesamten Körpers im<br />

Raum ausgelegt ist und erst auf eher<br />

grobe Bewegungen der Nutzer reagiert,<br />

bemerkt Leap Motion schon das geringste<br />

Zucken mit dem kl<strong>einen</strong> Finger.<br />

Windows, Mac – aber <strong>Linux</strong>?<br />

Der Hersteller kündigte schon früh die<br />

Unterstützung von Windows- und Mac-<br />

Plattformen an; doch <strong>Linux</strong> bleibt bis<br />

heute offiziell außen vor. Erst auf Druck<br />

der Community erschien im Frühjahr<br />

2013 ein SDK <strong>für</strong> <strong>Linux</strong>. Aber eine rich-<br />

tige Unterstützung mit Software <strong>für</strong> Leap<br />

Motion, die aus dem Gerät etwa <strong>einen</strong><br />

Mausersatz macht, fehlt.<br />

Windows- und Mac-User hingegen verwöhnt<br />

der Hersteller gleich nach der Inbetriebnahme<br />

mit diversen Programmen.<br />

Mit Airspace existiert ein App-Store, der<br />

zum Zeitpunkt der Artikelentstehung<br />

über 80 Apps anbot. Von simplen Experimenten<br />

und Spielen bis hin zu Plugins<br />

<strong>für</strong> 3-D-Modelling-Software ist alles<br />

vertreten, was man sich als sinnvolles<br />

Anwendungsszenario <strong>für</strong> eine berührungslose<br />

Steuerung vorstellen kann (Abbildung<br />

2). Einige der angebotenen Apps<br />

sind nur <strong>für</strong> eine bestimmte Plattform<br />

verfügbar, andere hingegen decken beide<br />

Betriebssysteme ab.<br />

Die Preise der Apps reichen bis zu 12<br />

US-Dollar, bezahlen soll der Anwender<br />

mit Kreditkarte. Leider funktionierten einige<br />

Programme im Test nicht auf allen<br />

Systemen – umso ärgerlicher, dass der<br />

Kunde vergeblich nach einem Button <strong>für</strong><br />

die Rückgabe der App sucht.<br />

Unter Windows 8 zeigt der Leap-Motion-<br />

Controller seine Stärken: Mit Hilfe einer<br />

kostenlosen App aus Airspace kann der<br />

User ihn als Mausersatz verwenden, auch<br />

wenn die viel zu sensible Einstellung und<br />

diverse Probleme bei der Erkennung von<br />

Fingerbewegungen schnell frustrieren.<br />

Ebenso kommt dem Anwender immer<br />

wieder das Windows-8-Dashboard in die<br />

Quere. Hier zeigt sich, dass das Produkt<br />

noch in den Kinderschuhen steckt.<br />

Immerhin: Einige Spiele machen richtig<br />

Spaß, darunter beispielsweise das<br />

Flugzeugspiel Solar Warfare, in dem der<br />

Spieler mit seiner Hand die Geschwindigkeit<br />

und Neigung eines Fliegers bestimmt<br />

(Abbildung 3). Doch unreife Software,<br />

viel zu sensible Standardeinstellungen


Leap‐0.8.0‐x64.deb Leap« entpacken.<br />

Anschließend geht es ans Kopieren der<br />

Dateien in die richtigen Pfade im »usr«-<br />

Verzeichnis:<br />

cp ‐ir usr/bin/* /usr/bin/<br />

Leap Motion 10/2013<br />

Hardware<br />

Abbildung 2: Airspace begrüßt den Anwender mit den bereits per Kreditkarte erstandenen Apps.<br />

und zu hohe Sensitivität bei der Fingererkennung<br />

machen die Steuerung in vielen<br />

Fällen nahezu unmöglich.<br />

Nicht selten hat das Gerät die Bewegungen<br />

der Tester entweder gar nicht oder<br />

erst viel zu spät erkannt. Manche Anwendungen<br />

starteten nicht und gaben unerklärbare<br />

Ausnahmefehler zurück. Nicht<br />

zu unterschätzen ist auch ein gänzlich<br />

untechnisches ergonomisches Problem:<br />

Spätestens nach einer Stunde ermüden<br />

die Arme, womit sich der Spaß bei der<br />

Bedienung in Grenzen hält.<br />

Experimente mit <strong>Linux</strong><br />

Unter <strong>Linux</strong> angeschlossen erkennt<br />

»dmesg« den Controller erst mal als ein<br />

USB Video Class Device, also als Kamera<br />

(Abbildung 4). An dieser Stelle sind<br />

Gesten noch völlig sinnlos: <strong>Linux</strong> kann<br />

Handbewegungen noch nicht erkennen<br />

oder gar in Aktionen umsetzen. Der<br />

Druck der <strong>Linux</strong>-Community ermöglichte<br />

es jedoch, dass Leap Motion immerhin<br />

ein <strong>Linux</strong>-SDK als Beta bereitstellt. Das<br />

Development Kit <strong>für</strong> <strong>Linux</strong> ist aber nur<br />

<strong>für</strong> registrierte Benutzer im Developer-<br />

Bereich zugänglich [2] und umfasst etwas<br />

mehr als 93 MByte.<br />

Nach Eingabe des Befehls »tar xzvf DeveloperSdk_LM_0.8.0.5300_<strong>Linux</strong>.gz«<br />

findet<br />

der Tester ein Unterverzeichnis mit<br />

dem zunächst verblüffenden Inhalt von<br />

zwei Debian-Paketen. Leap Motion bestätigte<br />

auf Anfrage im Developer-Forum,<br />

dass sich der <strong>Linux</strong>-Support vorerst auf<br />

Ubuntu-Systeme mit Unity beschränkt.<br />

Nur so sei im <strong>Linux</strong>-Bereich eine große<br />

Anwenderzahl erreichbar. Hinweise auf<br />

Support <strong>für</strong> andere Distributionen oder<br />

die ARM-Architektur sowie Android und<br />

Raspberry Pi fehlen.<br />

Mit ein paar Tricks lässt sich das SDK<br />

dennoch auf anderen <strong>Linux</strong>-Varianten<br />

ausprobieren: Die Anwendungen, die sich<br />

in den Debian-Paketen verstecken, liefen<br />

im Test auch erfolgreich unter Fedora 17,<br />

und im Web mehren sich Berichte von<br />

Bloggern, wonach die Binaries auch auf<br />

anderen Distributionen funktionieren.<br />

Nicht nur Ubuntu<br />

Unter Ubuntu und Debian installiert das<br />

Kommando »sudo dpkg ‐i Paketname«<br />

die Pakete. Benutzer<br />

von Distributionen,<br />

die nicht das Paketsystem<br />

von Debian<br />

verwenden, müssen<br />

sich hingegen mit dem<br />

Konverter-Tool »alien«<br />

behelfen.<br />

Auf einem Testsystem<br />

konnten die Tester<br />

über »yum ‐y install<br />

dpkg« Debians Paketmanager<br />

nachinstallieren<br />

und das Paket<br />

dann mit »mkdir<br />

Leap« sowie »dpkg ‐x<br />

cp ‐ir usr/lib/* /usr/lib/<br />

cp ‐ir usr/share/* /usr/share/<br />

cp ‐ir lib/udev/rules.d/25‐com‐leapmotion‐U<br />

leap.rules /lib/udev/rules.d/<br />

Wer nun s<strong>einen</strong> Leap-Motion-Controller<br />

aus- und wieder einsteckt, kann als<br />

Root den Daemon Leapd aufrufen. Für<br />

Ubuntu- und Mint-User wird an dieser<br />

Stelle aufgrund von Rechteproblemen<br />

beim Zugriff auf USB-Geräte ein Neustart<br />

notwendig. <strong>Alle</strong> folgenden Schritte sollte<br />

dann Root ausführen.<br />

Nach dem Aufruf von Leapd meldet das<br />

Programm im Erfolgsfall, dass es den Gesten-Controller<br />

erkennt (Abbildung 5). In<br />

einer zweiten Terminalsitzung kann der<br />

Benutzer nun den Inhalt des SDK unter<br />

die Lupe nehmen und die darin befindlichen<br />

Anwendungen starten.<br />

Ein Blick in das Verzeichnis »LeapSDK«<br />

offenbart die Unterordner »docs«, »include«,<br />

»lib«, »samples« und »util«. Das<br />

»docs«-Verzeichnis enthält Dokumentationen<br />

und kleine Beispiele <strong>für</strong> das<br />

Leap-API, das sich mit diversen Programmiersprachen<br />

ansprechen lässt. Die<br />

Dokumentation geht auf C++, C#, Java,<br />

Abbildung 3: Flugsimulator mit Gestensteuerung: Unter Windows 8 läuft<br />

Solar Warfare, der Anwender steuert den Gleiter mit der Hand.<br />

Abbildung 4: Die Ausgabe von »dmesg« bei Erkennung des Leap Motion.<br />

www.linux-magazin.de<br />

97


Hardware<br />

www.linux-magazin.de Leap Motion 10/2013<br />

98<br />

Abbildung 5: Der Leap-Motion-Daemon Leapd startet und erkennt den eingesteckten<br />

Controller ohne Probleme.<br />

Python, Objective C und Javascript ein<br />

und macht deutlich, dass der Treiber des<br />

Leap-Motion-Controllers dem Entwickler<br />

viel Arbeit abnimmt. In selbst geschriebenen<br />

Applikationen muss er lediglich<br />

abfragen, ob das Gerät Gesten oder Fingerbewegungen<br />

entdeckt hat.<br />

Das »include«-Verzeichnis stellt einige<br />

Headerdateien bereit, die sich in eigene<br />

Anwendungen einbinden lassen, während<br />

der Ordner »lib« Laufzeitbibliotheken<br />

enthält. Den Inhalt von »LeapSDK/<br />

libs/x86« und »LeapSDK/libs/x64« sollte<br />

der Tester <strong>für</strong> die Ausführung von Drittanwendungen<br />

nach »/usr/lib« kopieren.<br />

In »samples« findet man Beispieldateien<br />

<strong>für</strong> die oben angesprochenen Programmiersprachen,<br />

während »utils« einige<br />

nützliche Anwendungen zeigt, die jedoch<br />

noch kompiliert sein wollen. Das<br />

Leap-SDK-Verzeichnis bietet so eine gute<br />

Grundlage <strong>für</strong> das Basteln eigener Apps<br />

mit Fingersupport.<br />

Auf die Plätze, fertig, los!<br />

Wer zwar keine eigenen Anwendungen<br />

schrei ben, aber trotzdem loslegen<br />

möchte, kann <strong>einen</strong> Blick auf die mitgelieferten<br />

und bereits funktionstüchtigen<br />

Applikationen werfen. Das Leap-SDK<br />

bringt neben dem Leapd-Daemon auch<br />

den »ScreenLocator«<br />

mit, der den Controller<br />

<strong>für</strong> die Wahl des<br />

richtigen Bildschirms<br />

kalibrieren soll. Obwohl<br />

– oder vielleicht<br />

gerade weil – im Test<br />

nur ein Bildschirm<br />

Verwendung fand, funktionierte dieses<br />

Programm allerdings nicht.<br />

Das Leap-Control-Panel ist ebenfalls im<br />

Lieferumfang enthalten und bietet einige<br />

Möglichkeiten <strong>für</strong> die Konfiguration des<br />

Controllers (Abbildung 6). In den Tests<br />

blieben aber die meisten Einstellungsmöglichkeiten<br />

ausgegraut und damit<br />

nicht benutzbar.<br />

Das wohl eindrucksvollste Tool aus dem<br />

SDK ist der »Visualizer«. Aus dem Terminal<br />

heraus gestartet, zeigt es (Abbildung<br />

7) die Hand des Autors mit allen fünf<br />

Fingern an. Mit dem Button [H] (Help)<br />

ruft der Nutzer zudem eine Übersicht der<br />

vorhandenen Einstellungsmöglichkeiten<br />

auf, mit [J] stellt er die Hintergrundfarbe<br />

auf „hell“ um. Nach dem Betätigen der<br />

Hotkeys [T] und [N] zeigt der Visualizer<br />

nur noch die von den Kameras erkannten<br />

Finger an (Abbildungen 8 und 9).<br />

Umschaltbare Modi<br />

Mit den weiteren Schaltern lassen sich<br />

nützliche Zusatzoptionen und interessante<br />

Modi schalten. Tabelle 1 stellt<br />

die wichtigsten Hotkeys vor. Besonders<br />

interessant: Hält man <strong>einen</strong> Stift oder<br />

<strong>einen</strong> ähnlichen Gegenstand in den Erkennungsbereich<br />

des Leap-Motion-Controllers,<br />

wechselt dieser automatisch in<br />

<strong>einen</strong> anderen Modus. Er blendet dann,<br />

soweit möglich, alle anderen Finger aus<br />

und stellt nur noch das Zeigegerät dar –<br />

besonders sinnvoll <strong>für</strong> Zeichner oder Präsentatoren,<br />

die auf eine klassische Maus<br />

verzichten wollen.<br />

Sensibler als eine Maus<br />

Wie erwähnt können Anwender das<br />

Eingabegerät auf <strong>Linux</strong>-Systemen noch<br />

nicht als Mausersatz verwenden. In der<br />

Community gibt es seit Kurzem jedoch<br />

erste Bemühungen, genau <strong>für</strong> diesen<br />

Zweck Anwendungen zu schreiben. Ein<br />

Benutzer aus dem Devel-Forum namens<br />

Sirik etwa hat eine Java-App veröffentlicht,<br />

die schon jetzt den Mauscursor mit<br />

Leap Motion steuern lässt. Klicks, Zooms<br />

und gängige Desktopbedienung sind damit<br />

aber noch nicht möglich.<br />

Mehr Erfolg hat bisher der Entwickler von<br />

Py Leap Mouse [3] erzielen können. Einmal<br />

heruntergeladen und entsprechend<br />

präpariert fungiert das Python-Skript<br />

in Zusammenarbeit mit dem Daemon<br />

Leapd und dem Leap-Motion-Controller<br />

als Mauszeiger. Im <strong>Linux</strong>-<strong>Magazin</strong>-Test<br />

gestaltete sich die Bedienung allerdings<br />

noch sehr schwerfällig und umständlich,<br />

<strong>einen</strong> Blick ist die Software jedoch definitiv<br />

wert.<br />

Web-Apps: Browsergesten<br />

Wer noch weitere Einsatzgebiete <strong>für</strong> s<strong>einen</strong><br />

Leap-Motion-Controller sucht, darf<br />

sich über Web-Apps freuen. Die kl<strong>einen</strong><br />

Javascript-Helfer greifen auf die Javascript-Bibliothek<br />

von Leap Motion zur<br />

Tabelle 1: Hotkey-Übersicht <strong>für</strong> den Visualizer<br />

Abbildung 6: Das Control-Panel von Leap Motion bietet unter <strong>Linux</strong> nicht besonders<br />

viele Auswahlmöglichkeiten.<br />

Schalter Funktion<br />

C Ansicht zentrieren<br />

= Ansicht vergrößern<br />

- Ansicht verkleinern<br />

- Zeigt Koordinaten und Latenzen an<br />

J Schaltet zwischen dunkler und heller Farbgebung hin und her<br />

T Blendet Finger ein und aus<br />

Y Verlängert die Spur der gezeichneten Striche<br />

N Wechselt durch verschiedene Handdarstellungen<br />

P Pausiert die Aufzeichnung<br />

D Blendet das Gitter aus<br />

Pfeiltasten<br />

Lassen die Kamera automatisch schwenken


Leap Motion 10/2013<br />

Hardware<br />

Abbildung 7: Der Visualizer stellt Bewegungen ohne<br />

merkbare Verzögerungen dar.<br />

Abbildung 8: Auch Fingerkuppen identifiziert Leap<br />

Motion ohne Probleme.<br />

Abbildung 9: Der Visualizer hat <strong>einen</strong> Stift erkannt<br />

und blendet die anderen Finger automatisch aus.<br />

www.linux-magazin.de<br />

99<br />

Umsetzung von Fingerbewegungen zurück<br />

und funktionieren auch unter <strong>Linux</strong>.<br />

Die einzigen Voraussetzungen bestehen<br />

in einem angeschlossenen Controller sowie<br />

einem laufenden Leap-Daemon.<br />

Die meisten Web-Apps konzentrieren<br />

sich aber noch auf die technischen Seiten<br />

im Umgang mit der Leap-Motion-<br />

Hardware selbst. Unter [4] jedoch finden<br />

sich gleich 24 Apps, die mögliche Anwendungsszenarien<br />

<strong>für</strong> Web-Apps andeuten.<br />

Eine davon heißt Draw (Abbildung 10)<br />

und erlaubt das gleichzeitige Zeichnen<br />

mit fünf Fingern.<br />

Beim Testen der Web-Apps stellte allerdings<br />

der Leap-Daemon öfter den Dienst<br />

ein und verlangte <strong>einen</strong> Neustart. Die Unterstützung<br />

von Web GL und der Besitz<br />

einer schnellen Grafikkarte sind sicher<br />

auch Voraussetzungen, die nicht jeder<br />

Nutzer erfüllt. Wem jedoch die offiziellen<br />

Web-Apps nicht ausreichen, der findet im<br />

Web zahlreiche gleichgesinnte Leap-Fans,<br />

die zum Teil eigene Demos ins Netz stellen<br />

– mit überaus kreativen Ideen.<br />

<strong>Vorschau</strong> <strong>für</strong> <strong>Linux</strong><br />

Wer sich mit dem SDK und den Web-<br />

Apps nicht zufriedengeben möchte, kann<br />

unter [5] weitere Demo-Anwendungen<br />

<strong>für</strong> <strong>Linux</strong> herunterladen. Hier lädt Pohung<br />

Chen, selbst Mitglied des Ent-


Hardware<br />

www.linux-magazin.de Leap Motion 10/2013<br />

100<br />

Abbildung 10: Mit der ganzen Hand gleichzeitig<br />

malen? Kein Problem mit Draw, einer Web-App <strong>für</strong><br />

den Leap-Motion-Controller.<br />

wicklungsteams von Leap Motion, seine<br />

Eigenkreationen hoch. Besonders interessant<br />

sind Anwendungen, die „Leap-<br />

FirstPerson“ im Namen tragen. In diesen<br />

Spielen läuft man in der Egoperspektive<br />

durch eine Sandbox und kann entweder<br />

fingergesteuert in alle Richtungen blicken<br />

oder tatsächlich durch das Greifen von<br />

Objekten Einfluss auf seine Umwelt nehmen<br />

(Abbildung 11).<br />

Die meisten Apps sind <strong>für</strong> <strong>Linux</strong> fertig<br />

kompiliert und ausführbar. Sie setzen<br />

nur Leapd und die »libGLU.so.1«-Datei<br />

voraus, eine Bibliothek, die unter Fedora<br />

das Paket »mesa‐libGLU« mitbringt. Die<br />

getesteten Apps sind allesamt auf 32-Bit-<br />

Plattformen kompiliert, »libGLU.so.1«<br />

muss also ebenfalls aus einem 32-Bit-<br />

Paket stammen.<br />

Linus als Hardware-Tester<br />

Die Erfahrungen der <strong>Linux</strong>-<strong>Magazin</strong>-<br />

Tester mit Leap Motion wurden kurz vor<br />

Redaktionsschluss prominent bestätigt.<br />

Linus Torvalds höchstselbst postete auf<br />

Google+ mit gewohnter Deutlichkeit<br />

seine Enttäuschung über den Stand des<br />

Projekts. [6]. Damit spricht der oberste<br />

Kernelentwickler aus, was viele denken:<br />

Der Leap-Motion-Controller könnte so<br />

cool sein, wenn Hard- und Software etwas<br />

ausgereifter wären.<br />

Auch die Elektronik spielt nämlich nicht<br />

immer mit: Seit dem letzten Firmware-<br />

Upgrade mehren sich im Leap-Motion-<br />

Forum die Berichte zu Überhitzungen;<br />

auch in <strong>Linux</strong>-<strong>Magazin</strong>-Tests wurde der<br />

Controller bereits nach wenigen Minuten<br />

der Benutzung richtig heiß, kühlte dann<br />

aber im Laufe der nächsten zwei Stunden<br />

wieder etwas ab.<br />

Bei normaler Beleuchtung durch Deckenlampen<br />

oder hereinfallendes Sonnenlicht<br />

lässt sich Leap Motion übrigens nur noch<br />

schwer bedienen, unter Windows 8 weist<br />

dann ein Tooltip darauf hin, dass eine<br />

externe Infrarotquelle die Erfassung der<br />

Bewegungen erschwert. Im Dunkeln, mit<br />

heruntergelassenen Rollos und ausgeschalteter<br />

Lampe funktioniert das Gerät<br />

hingegen tadellos.<br />

Das Erkennen von Finger- und Gestenbewegungen<br />

klappt sowohl unter Windows<br />

als auch unter <strong>Linux</strong> teils sehr gut, teils<br />

komplett unzureichend. Es scheint, dass<br />

Leap Motion die Bewegungen in einem<br />

Moment vollständig fließend umsetzt,<br />

im nächsten hingegen überhaupt nicht<br />

mehr. Ein Grund <strong>für</strong> die Aussetzer ließ<br />

sich nicht ausmachen.<br />

Der <strong>Linux</strong>-Support kann sich nach dem<br />

gegenwärtigen Stand nur verbessern:<br />

Zwar bietet das SDK eine ausgezeichnete<br />

Grundlage <strong>für</strong> eigene Entwicklungsprojekte,<br />

doch <strong>Linux</strong>-Nutzer müssen lange<br />

nach Anwendungen suchen, die schon<br />

jetzt gut funktionieren. Es bleibt also<br />

abzuwarten, wie wichtig Leap Motion<br />

die <strong>Linux</strong>-Nutzer nimmt und ob mehr<br />

Ressourcen in den Ausbau des <strong>Linux</strong>-<br />

Supports fließen.<br />

Aber dass <strong>Linux</strong>er sogar <strong>für</strong> selbstverständliche<br />

Anwendungszwecke in den<br />

Devel-Bereich der Leap-Motion-Webseite<br />

müssen, zeigt, dass der Hersteller sie<br />

nicht besonders ernst nimmt. Auch hier<br />

bietet das SDK eine gute Grundlage, aber<br />

fertige Software sucht man vergebens.<br />

OEM-Hardware?<br />

Die Chance wäre da: Leap Motion führt<br />

bereits seit Längerem Gespräche mit<br />

großen Hardwareherstellern und will<br />

den Einbau seiner Controller in fertige<br />

PC-Produkte erwirken. Asus und HP haben<br />

bereits verlauten lassen, dass die<br />

Gestensteuerung noch Ende 2013 Einzug<br />

in Notebooks und PCs halten kann.<br />

Spätestens bis dahin werden sowohl das<br />

Leap-Motion-Projekt als auch die Hersteller<br />

von Hard- und Software die Technik<br />

perfektionieren müssen. (mfe) n<br />

Infos<br />

[1] Leap Motion: [http:// www. leapmotion. com]<br />

[2] Developer-Bereich:<br />

[https:// www. leapmotion. com/ developers]<br />

[3] Python Leap Mouse: [https:// github. com/​<br />

openleap/ PyLeapMouse]<br />

[4] Web-Apps <strong>für</strong> Leap Motion:<br />

[http:// js. leapmotion. com/ examples]<br />

[5] Web-Apps von Pohung Chen:<br />

[https:// bitbucket. org/ pohung]<br />

[6] Linus ist not amused: [https:// plus. google.​<br />

com/ +LinusTorvalds/ posts/ 6TUjyBV7yuh]<br />

Abbildung 11: Obwohl der Fenstertitel etwas anderes suggeriert, läuft gerade »LeapFirstPersonLook«.<br />

Der Autor<br />

Valentin Höbel arbeitet<br />

bei LIS-<strong>Linux</strong>land als<br />

Technischer Projektleiter.<br />

Wenn er dort nicht gerade<br />

Kunden zu <strong>Linux</strong> migriert,<br />

bastelt er in seiner Freizeit<br />

am Raspberry Pi oder probiert die neusten Gimmicks<br />

aus.


Know-how<br />

www.linux-magazin.de Kern-Technik 10/2013<br />

102<br />

Kernel- und Treiberprogrammierung mit dem <strong>Linux</strong>-Kernel – Folge 70<br />

Kern-Technik<br />

Der <strong>Linux</strong>-Kernel abstrahiert und verwaltet die Zugriffe auf GPIOs, also jene Ein- und Ausgabekanäle, die beispielsweise<br />

auf dem Raspberry Pi zu finden sind. Wer sich mit einem eigenen Treiber dort einklinkt, kann mit<br />

erheblich schnelleren Peripheriezugriffen rechnen. Jürgen Quade, Eva-Katharina Kunst<br />

© psdesign1, Fotolia<br />

01 #!/bin/bash<br />

02 <br />

Es ist einfacher als gedacht und macht<br />

Spaß, den Raspberry Pi zum Ansteuern<br />

von Hardware zu verwenden. Die<br />

26-polige Steckerleiste des preiswerten<br />

Kleincomputers stellt dazu insgesamt 17<br />

von den 54 Ein- und Ausgabeleitungen<br />

03 trap "echo \"4\" >/sys/class/gpio/unexport" EXIT<br />

04 <br />

05 echo "4" >/sys/class/gpio/export<br />

06 echo "out" >/sys/class/gpio/gpio4/direction<br />

07 <br />

08 while true<br />

09 do<br />

10 echo "1" >/sys/class/gpio/gpio4/value<br />

11 sleep 1<br />

12 echo "0" >/sys/class/gpio/gpio4/value<br />

13 sleep 1<br />

14 done<br />

70<br />

Listing 1: Zugriff per Shellskript<br />

des Prozessors zur<br />

Verfügung, die so genannten<br />

GPIOs (General<br />

Purpose Input<br />

Output).<br />

Jeder GPIO-Pin ist flexibel<br />

konfigurierbar:<br />

Er kann als Ausgabeleitung<br />

dienen, an<br />

der programmgesteuert<br />

entweder 3,3 V<br />

(logisch 1) oder 0 V<br />

(logisch 0) anliegen.<br />

Als Eingabe konfiguriert,<br />

übernimmt der<br />

Prozessor nach Aufforderung<br />

eine 1, falls<br />

Spannung anliegt, ansonsten<br />

eine 0.<br />

Wer eine gelbe, grüne<br />

oder rote Leuchtdiode<br />

(LED), <strong>einen</strong> Widerstand<br />

um die 300 Ohm und ein paar<br />

Kabel zur Hand hat, kann schon mit den<br />

ersten Versuchen loslegen.<br />

Bastelzeit<br />

Wie in Abbildung 1 zu sehen ist, sind<br />

Widerstand und LED in Serie geschaltet<br />

und mit der Steckerleiste auf dem<br />

Raspberry Pi verbunden. Die Seite der<br />

Reihenschaltung, an der die Kathode der<br />

LED (die Seite mit dem kürzeren Beinchen<br />

beziehungsweise mit der abgeflachten<br />

Unterkante) liegt, wird mit GND (Pin<br />

6) verbunden; die andere Seite mit GPIO<br />

4 (Pin 7). Hilfreich <strong>für</strong> den Aufbau ist ein<br />

so genanntes Breadboard, in das man die<br />

Drähte der Bauteile steckt.<br />

Ein einfacher Test der Schaltung ist über<br />

das »/sys«-Dateisystem mit einem Shellskript<br />

möglich. Bevor dieses den Wert<br />

der Ausgabeleitung GPIO 4 auf 0 oder 1<br />

setzen kann, muss es die Leitung reservieren<br />

und konfigurieren (Abbildung 2).<br />

Zur Reservierung schreibt das Skript die<br />

Nummer der GPIO-Leitung (aus Sicht der<br />

CPU, also nicht die Nummer des Pins an<br />

der Doppelstiftleiste) in die Datei »/sys/<br />

class/gpio/export«. Dazu sind allerdings<br />

Rootrechte notwendig. Daraufhin legt<br />

der Kernel ein neues Verzeichnis an, <strong>für</strong><br />

GPIO 4 beispielsweise »gpio4«.<br />

In diesem Verzeichnis gibt es eine Datei<br />

»direction«, in der man mit den Schlüsselworten<br />

»out« und »in« festlegt, ob es sich<br />

um eine Ausgabe- oder eine Eingabeleitung<br />

handelt. Das Kommando<br />

echo "1" >/sys/class/gpio/gpio4/value<br />

setzt die Spannung auf 3,3 V – die LED<br />

leuchtet. Eine 0 in diese Datei geschrieben<br />

stellt eine Spannung von 0 V ein und<br />

schaltet die LED wieder aus.<br />

Listing 1 zeigt ein Skript, das aus der<br />

LED ein Blinklicht macht. Dazu schaltet<br />

es die LED ein, schläft eine Sekunde,<br />

schaltet sie aus und schläft nochmals<br />

eine Sekunde. Der Befehl »trap« dient übrigens<br />

dazu, beim Abbrechen des Skripts,<br />

beispielsweise per [Strg]+[C], den Pin<br />

wieder freizugeben.<br />

250-mal schneller<br />

Eine Messung ergibt, dass sich eine solche<br />

Ein-​Aus-Sequenz per Sys-Filesystem<br />

(ohne die Sleep-Befehle) abhängig vom<br />

Kernel und dessen Konfiguration 1000-<br />

bis 1500-mal pro Sekunde (mit 1 kHz bis<br />

1,5 kHz) auf dem Raspberry Pi ausführen<br />

lässt. Wer die GPIOs jedoch über <strong>einen</strong><br />

dedizierten Treiber im Kernel anspricht,<br />

kann Steigerungen dieser Frequenz um<br />

den Faktor 250 erreichen.


Ein normaler, zeichenorientierter Gerätetreiber<br />

implementiert typischerweise<br />

Schnittstellenfunktionen, die der Kernel<br />

beim Laden des Treibers (»mod_init()«)<br />

aufruft, beim Entladen (»mod_exit()«),<br />

beim Öffnen der zugeordneten Gerätedatei<br />

(»driver_open()«), beim Schließen<br />

derselben (»driver_close()«), beim Lesen<br />

von der Gerätedatei (»driver_read()«)<br />

und beim Schreiben auf die Gerätedatei<br />

(»driver_write()«).<br />

Ein bisschen abgekupfert<br />

Wer <strong>einen</strong> Treiber schreiben möchte, der<br />

die Ein- und Ausgabeleitungen nutzt,<br />

kann die Funktionen »mod_init()« und<br />

»mod_exit()« einfach von einem anderen<br />

Treiber abkupfern. Im Rahmen dieser<br />

Funktionen meldet sich der Treiber beim<br />

Kernel mit einem Namen an und übergibt<br />

dabei eine Tabelle mit den Funktionen<br />

(»driver_open()«, »driver_read()«, »driver_write()«<br />

und »driver_close()«), die<br />

bei einem Zugriff durch eine Applikation<br />

aufgerufen werden.<br />

Diese Funktionen sind auch relevant,<br />

wenn es um den Hardwarezugriff geht.<br />

Dabei muss der Treiber logischerweise<br />

die gleichen Schritte (Reservieren, Einoder<br />

Ausgabe festlegen, eigentlicher<br />

Zugriff und die Freigabe, Abbildung 2)<br />

durchführen wie beim<br />

Zugriff über das Sys-<br />

Filesystem.<br />

Zum Reservieren (Export)<br />

eines GPIO im<br />

Kernel dient die Funktion<br />

»gpio_request()«<br />

(Tabelle 1), <strong>für</strong> die<br />

Freigabe (Unexport)<br />

»gpio_free()«. Soll die<br />

Leitung als Ausgabe<br />

dienen, wird »gpio_direction_output()«,<br />

als<br />

Eingabe »gpio_direction_input()«<br />

aufgerufen.<br />

Um die Spannung<br />

auf 3,3 V oder<br />

0 V zu setzen, wird<br />

»gpio_set_value()« mit<br />

den Parametern GPIO-<br />

Nummer und auszugebender<br />

Wert (1 oder<br />

0) abgesetzt [1].<br />

Listing 2 zeigt das<br />

Einbinden dieser<br />

Funktionen in <strong>einen</strong> minimalistischen<br />

Treiber, sodass dieser GPIO 4 auf 0 V<br />

setzt, wenn eine Applikation eine 0 auf<br />

die Gerätedatei »/dev/fastgpio4« schreibt,<br />

und auf 3,3 V bei jedem anderen Wert. In<br />

»driver_open()« findet dazu das Reservieren<br />

(Zeile 18) und Festlegen der Ein-<br />

© fritzing.org<br />

Abbildung 1: Mit Breadboard, Kabeln und Widerstand: Schaltung zum<br />

Ansteuern einer LED über die GPIOs eines Raspberry Pi.<br />

und Ausgaberichtung (Zeile 23) statt.<br />

Die Freigabe erfolgt in »driver_close()«<br />

(Zeile 37), also wenn die Anwendung die<br />

Ressource nicht mehr benötigt und den<br />

Systemcall »close()« aufruft.<br />

Die eigentlichen Hardwarezugriffe sind in<br />

»driver_write()« kodiert (Zeile 41). Diese<br />

Kern-Technik 10/2013<br />

Know-how<br />

www.linux-magazin.de<br />

103<br />

Tabelle 1: Kernelinterne Funktionen <strong>für</strong> GPIO (Auswahl)<br />

Managementfunktionen<br />

int gpio_request(unsigned gpio, const char *label)<br />

void gpio_free(unsigned gpio)<br />

int gpio_direction_input(unsigned gpio)<br />

int gpio_direction_output(unsigned gpio, int value)<br />

int gpio_set_debounce(unsigned gpio, unsigned debounce)<br />

int gpio_cansleep(unsigned gpio)<br />

Zugriffsfunktionen<br />

inline bool gpio_is_valid(int number)<br />

int gpio_get_value(unsigned gpio)<br />

Reserviert GPIO mit der Nummer »gpio« unter dem Namen »label«.<br />

Gibt den reservierten GPIO-Pin »gpio« frei.<br />

Konfiguriert den Pin »gpio« als Eingabe.<br />

Konfiguriert den Pin »gpio« als Ausgabe.<br />

Setzt die Entprell-Zeit (in Mikrosekunden), in der der Pin nach einem Zustandswechsel<br />

den gleichen Wert haben muss.<br />

Die Funktion gibt <strong>einen</strong> Wert ungleich null zurück, falls Kommits auf <strong>einen</strong> Bus<br />

warten (schlafen) können. In diesem Fall darf kein Zugriff aus einem Interrupt-<br />

Kontext heraus erfolgen.<br />

Überprüft, ob »number« existiert.<br />

Liest GPIO-Pin »gpio« ein.<br />

void gpio_set_value(unsigned gpio, int value) Falls »value« gleich 0 ist, »gpio« auf 0 V setzen, andernfalls auf 3,3 V.<br />

int gpio_get_value_cansleep(unsigned gpio)<br />

void gpio_set_value_cansleep(unsigned gpio, int value)<br />

Integrationsfunktionen<br />

int gpio_export(unsigned gpio, bool direction_may_change)<br />

void gpio_unexport(unsigned gpio)<br />

extern int gpio_export_link(struct device *dev, const char *name,<br />

unsigned gpio)<br />

extern int gpio_sysfs_set_active_low(unsigned gpio, int value)<br />

Liest den GPIO-Pin aus einem Nicht-Interrupt-Kontext heraus ein.<br />

Setzt den GPIO-Pin aus einem Nicht-Interrupt-Kontext heraus auf »value«.<br />

Gibt die Reservierung von »gpio« <strong>für</strong> den Zugriff über das Sys-Filesystem frei.<br />

Hebt den Zugriff über das Sys-Filesystem auf.<br />

Die Funktion dient dazu, <strong>einen</strong> symbolischen Link zwischen Treiber und ins Sys-<br />

Filesystem exportierten Links herzustellen.<br />

Markiert »gpio« als Active-Low-Signal.


Know-how<br />

www.linux-magazin.de Kern-Technik 10/2013<br />

104<br />

Sys-Filesystem<br />

/sys/class/gpio/export<br />

.../gpio/gpioN/direction<br />

.../gpio/gpioN/value<br />

/sys/class/gpio/unexport<br />

Aktionen<br />

Reservieren<br />

Festlegen, ob<br />

Ein- oder Ausgabe<br />

Zugriff<br />

(wiederholbar)<br />

Freigabe<br />

Kernelfunktionen<br />

gpio_request()<br />

gpio_direction_output()<br />

gpio_direction_input()<br />

gpio_set_value()<br />

gpio_get_value()<br />

gpio_free()<br />

Abbildung 2: Aktionen und Zugriffsmöglichkeiten auf GPIOs unter <strong>Linux</strong>.<br />

Abbildung 3: Das Oszilloskop zeigt, wie schnell der Treiberzugriff ist.<br />

Funktion kommt zum Einsatz, wenn<br />

eine Applikation »write()« verwendet.<br />

Die Schreibfunktion im Kernel kopiert<br />

dank der Minimum-Funktion die richtige<br />

Menge Daten zwischen Anwendung und<br />

Kernel. So darf der Treiber nicht mehr<br />

Bytes kopieren, als die Applikation anfor-<br />

dert, und auch nicht mehr Daten, als im<br />

Kernel überhaupt zur Verfügung stehen.<br />

Die nachfolgende Zeile kopiert schließlich<br />

per »copy_from_user()« die Daten<br />

von der Applikation in den Kernel und<br />

schreibt sie per »gpio_set_value()« (Zeilen<br />

52 und 54) auf die Hardware.<br />

Leider ist das Übersetzen des Treibers<br />

<strong>für</strong> den Raspberry Pi nicht ganz so einfach<br />

wie <strong>für</strong> <strong>einen</strong> herkömmliche PC.<br />

Hier<strong>für</strong> sind nämlich vorkompilierte Kernelquellen<br />

notwendig. Die vorige „Kern-<br />

Technik“ [2] hat die erforderlichen Vorbereitungen<br />

beschrieben, sowohl <strong>für</strong> eine<br />

Listing 2: Kernel-Treiber »fastgpio.c«<br />

001 #include <br />

002 #include <br />

003 #include <br />

004 #include <br />

005 #include <br />

006 #include <br />

007 <br />

008 static dev_t gpio_dev_nr;<br />

009 static struct cdev *driver_object;<br />

010 static struct class *gpio_class;<br />

011 static struct device *gpio_dev;<br />

012 <br />

013 static int driver_open( struct inode<br />

014 *geraete_datei,struct file *instanz)<br />

015 {<br />

016 int err;<br />

017 <br />

018 err = gpio_request( 4, "rpi‐gpio‐4" );<br />

019 if (err) {<br />

020 printk("gpio_request %d\n",err);<br />

021 return ‐1;<br />

022 }<br />

023 err = gpio_direction_output( 4, 0 );<br />

024 if (err) {<br />

025 printk("gpio_dir_output %d\n", err);<br />

026 gpio_free( 4 );<br />

027 return ‐1;<br />

028 }<br />

029 printk("gpio 4 configured\n");<br />

030 return 0;<br />

031 }<br />

032 <br />

033 static int driver_close( struct inode<br />

034 *geraete_datei, struct file *instanz)<br />

035 {<br />

036 printk( "driver_close called\n" );<br />

037 gpio_free( 4 );<br />

038 return 0;<br />

039 }<br />

040 <br />

041 static ssize_t driver_write( struct file<br />

042 *instanz, const char __user *user,<br />

043 size_t count, loff_t *offset )<br />

044 {<br />

045 unsigned long not_copied, to_copy;<br />

046 u32 value=0;<br />

047 <br />

048 to_copy = min( count, sizeof(value) );<br />

049 not_copied=copy_from_user(&value,user,<br />

050 to_copy);<br />

051 if (value==1)<br />

052 gpio_set_value(4,1);<br />

053 else<br />

054 gpio_set_value(4,0);<br />

055 //gpio_set_value( 4, value?0:1 );<br />

056 return to_copy‐not_copied;<br />

057 }<br />

058 <br />

059 static struct file_operations fops = {<br />

060 .owner= THIS_MODULE,<br />

061 .write= driver_write,<br />

062 .open= driver_open,<br />

063 .release= driver_close,<br />

064 };<br />

065 <br />

066 static int __init mod_init( void )<br />

067 {<br />

068 if( alloc_chrdev_region(&gpio_dev_nr,<br />

069 0,1,"fastgpio4")owner = THIS_MODULE;<br />

075 driver_object‐>ops = &fops;<br />

076 if( cdev_add(driver_object,<br />

077 gpio_dev_nr,1) )<br />

078 goto free_cdev;<br />

079 gpio_class = class_create( THIS_MODULE,<br />

080 "fastgpio4" );<br />

081 if( IS_ERR( gpio_class ) ) {<br />

082 pr_err("fastgpio4:no udev support\n");<br />

083 goto free_cdev;<br />

084 }<br />

085 gpio_dev=device_create(gpio_class,NULL,<br />

086 gpio_dev_nr,NULL,"%s","fastgpio4");<br />

087 dev_info(gpio_dev, "mod_init");<br />

088 return 0;<br />

089 free_cdev:<br />

090 kobject_put( &driver_object‐>kobj );<br />

091 free_device_number:<br />

092 unregister_chrdev_region(gpio_dev_nr,1);<br />

093 return ‐EIO;<br />

094 }<br />

095 <br />

096 static void __exit mod_exit( void )<br />

097 {<br />

098 dev_info(gpio_dev, "mod_exit");<br />

099 device_destroy(gpio_class,gpio_dev_nr);<br />

100 class_destroy( gpio_class );<br />

101 cdev_del( driver_object );<br />

102 unregister_chrdev_region(gpio_dev_nr,1);<br />

103 return;<br />

104 }<br />

105 <br />

106 module_init( mod_init );<br />

107 module_exit( mod_exit );<br />

108 MODULE_LICENSE("GPL");


Cross-Entwicklung als auch <strong>für</strong> die Entwicklung<br />

direkt auf dem Mini-Computer<br />

selbst. <strong>Alle</strong>rdings ist dort ein Fehler zu<br />

berichtigen: Zum Generieren des Kernels<br />

ist »make bcmrpi_defconfig« (mit Unterstrich)<br />

aufzurufen.<br />

Das Makefile (Listing 3) übersetzt den<br />

Treiber beim Aufruf von »make«, das<br />

Kommando »insmod fastgpio.ko« lädt ihn<br />

auf dem Raspberry Pi in den Kernel. Geht<br />

alles gut, existiert danach die Gerätedatei<br />

»/dev/fastgpio4«. Für <strong>einen</strong> effizienten<br />

Zugriff bietet sich eine eigene Applikation<br />

an, wie in Listing 4 vorgestellt. Zum<br />

Übersetzen der im Heimatverzeichnis des<br />

Users Pi liegenden Quelltextdatei »appl.c«<br />

eignet sich das folgende Kommando:<br />

$ cc ‐g ‐Wall appl.c ‐lrt ‐o appl<br />

Da das Programm auf die Funktion<br />

»clock_nanosleep()« – die moderne Art<br />

des Schlafens [3] – zurückgreift, benötigt<br />

sie die Realtime-Bibliothek. Dazu dient<br />

der Parameter »‐lrt« (<strong>für</strong> „lib realtime“).<br />

Falls der Treiber geladen ist, kann Root<br />

die Applikation »appl« starten:<br />

GPFSEL0<br />

GPFSEL1<br />

GPFSEL5<br />

28<br />

GPIO- 09 08 07 06 05 04 03 02 01 00<br />

28 24 20 16 12 8 7 6 5 4 3 2 1 0<br />

Wer die Funktion »clock_nanosleep()«<br />

weglässt, kann grob die mit einem Treiber<br />

maximal erreichbare Frequenz messen.<br />

Auf einem Raspbian der Version 2013-<br />

07-25 [4] waren das bei einem Versuch<br />

der Autoren immerhin 280 kHz, auf einem<br />

Raspbian 3.6.11 waren per Digital-<br />

Oszilloskop sogar knapp 380 kHz zu<br />

messen. Anders ausgedrückt: Jede Ein-<br />

Aus-Sequenz war nur 2,6 Mikrosekunden<br />

lang (Abbildung 3).<br />

<strong>Alle</strong>rdings muss dabei die Treiberfunktion<br />

»driver_write()« auf das hier abgedruckte<br />

Minimum reduziert bleiben.<br />

Bereits eine Debugmeldung per »printk«<br />

verschlechtert das Zeitverhalten deutlich.<br />

Und noch ein Hinweis: Mit Realzeitpriorität,<br />

also mit Hilfe des Kommandos<br />

»chrt 50« gestartet, kann das Programm<br />

nur abbrechen, wer entweder die Funktion<br />

»clock_nanosleep()« eingebaut lässt<br />

oder der Shell eine noch höhere Priorität<br />

zuweist.<br />

Hinter den Kulissen<br />

Am Beispiel des Zugriffs auf die GPIOs des<br />

Raspberry Pi lässt sich erläutern, welche<br />

komplexen Aufgaben der <strong>Linux</strong>-Kernel<br />

dem Programmierer abnimmt. Hardware-<br />

24<br />

20<br />

16<br />

12<br />

8<br />

7 6 5 4<br />

3 2 1 0<br />

GPIO- 19 18 17 16 15 14 13 12 11 10<br />

28<br />

24<br />

20<br />

7 6 5 4<br />

3 2 1 0<br />

GPIO- 53 52 51 50<br />

Abbildung 4: Das Konfigurationsregister des Raspberry Pi fasst <strong>für</strong> jede GPIO-Leitung drei Bits zusammen.<br />

16<br />

12<br />

8<br />

affine Entwickler wissen bereits, dass<br />

sich die Funktionen der Hardware durch<br />

Lesen und Schreiben auf spezifische Adressen<br />

ansprechen lassen. So adressierte<br />

Speicherzellen heißen Register.<br />

Beim Raspberry Pi kann der stolze Besitzer<br />

dem Handbuch [5] entnehmen,<br />

dass die Register <strong>für</strong> den GPIO-Zugriff<br />

im Adressraum ab 0xF2200000 angesiedelt<br />

sind (Tabelle 2). Abbildung 4 zeigt<br />

Kern-Technik 10/2013<br />

Know-how<br />

www.linux-magazin.de<br />

105<br />

# chrt 50 ./appl<br />

Ist die Schaltung korrekt aufgebaut, blinkt<br />

nun die LED. Das Kommando »chrt 50«<br />

sorgt übrigens da<strong>für</strong>, dass das Programm<br />

die Realzeit-Priorität 50 erhält und sich<br />

auf diese Weise besser <strong>für</strong> zeitgesteuerte<br />

Aufgaben eignet.<br />

In Kilohertz ausgedrückt<br />

Listing 3: Makefile zum Fastgpio-Treiber<br />

01 ARCH := arm<br />

02 UNAME := $(shell uname ‐m)<br />

03 ifeq ($(UNAME),armv6l)<br />

13 else<br />

14 <br />

15 default:<br />

04 KDIR := /usr/src/linux/<br />

16 $(MAKE) ARCH=$(ARCH) CROSS_COMPILE=<br />

05 else<br />

$(CROSS_COMPILE) ‐C $(KDIR) M=$(PWD) modules<br />

06 CROSS_COMPILE:=arm‐linux‐gnueabi‐<br />

17 endif<br />

07 KDIR := /usr/src/linux/arm<br />

18 <br />

08 endif<br />

09 <br />

10 ifneq ($(KERNELRELEASE),)<br />

19 clean:<br />

20 rm ‐rf *.ko *.o .*.cmd .tmp_versions<br />

11 obj‐m := fastgpio.o<br />

Module.symvers<br />

12 <br />

21 rm ‐rf modules.order *.mod.c<br />

Listing 4: Effizienter Zugriff mit C-Programm »appl.c«<br />

01 #include <br />

02 #include <br />

03 #include <br />

04 #include <br />

05 <br />

16 }<br />

17 <br />

18 sleeptime.tv_sec = 0;<br />

19 sleeptime.tv_nsec= 500000000;<br />

20 while (1) {<br />

06 int main( int argc, char **argv )<br />

21 value = 1;<br />

07 {<br />

22 write(fd_gpio,&value,sizeof(value));<br />

23 clock_nanosleep( CLOCK_MONOTONIC, 0,<br />

08 int fd_gpio;<br />

24 &sleeptime, NULL );<br />

09 int value;<br />

25 value = 0;<br />

10 struct timespec sleeptime;<br />

26 write(fd_gpio,&value,sizeof(value));<br />

11 <br />

27 clock_nanosleep( CLOCK_MONOTONIC, 0,<br />

12 fd_gpio=open("/dev/fastgpio4",O_WRONLY);<br />

28 &sleeptime, NULL );<br />

13 if (fd_gpio


Know-how<br />

www.linux-magazin.de Kern-Technik 10/2013<br />

106<br />

Direkte Hardwarezugriffe Abstraktion der Adressumsetzung Schutz vor Reordering<br />

A B C<br />

u32 *ptr = (u32 *)0xF2200000;<br />

u32 old_value;<br />

// Wert auslesen<br />

old_value = *ptr;<br />

// Bits <strong>für</strong> GPIO−4 löschen<br />

old_value = old_value & 0xffff8fff;<br />

// Bits setzen und Wert zurückschreiben<br />

*ptr = old_value | 0x00001000;<br />

u32 *ptr = (u32 *)0xF2200000;<br />

u32 old_value;<br />

old_value = readl( ptr );<br />

old_value = old_value & 0xffff8fff;<br />

writel( old_value | 0x00001000, ptr );<br />

Abbildung 5: Im Vergleich zu früher (A) sind Hardwarezugriffe unter <strong>Linux</strong> heute komplexer (C).<br />

u32 *ptr = (u32 *)0xF2200000;<br />

u32 old_value;<br />

old_value = readl( ptr );<br />

rmb(); // ist nach dem Lesen notwendig<br />

old_value = old_value & 0xffff8fff;<br />

wmb(); // ist vor dem Schreiben notwendig<br />

writel( old_value<br />

zusätzlich den Aufbau der Konfigurationsregister.<br />

Leicht lässt sich da erkennen,<br />

dass einzelnen Bits spezifische Funktionen<br />

zugeordnet sind. Im Fall des GPIO-<br />

Konfigurationsregisters sind <strong>für</strong> jede<br />

GPIO-Leitung drei Bits zusammengefasst.<br />

Tabelle 3 zeigt hier<strong>für</strong> eine Auswahl relevanter<br />

Codes.<br />

Der Dokumentation kann der Leser<br />

weiterhin entnehmen, dass GPIO 4 als<br />

Ausgang fungiert, falls im Register »GPF-<br />

SEL0«, also an der Adresse 0xF2200000,<br />

die Bits 12, 13 und 14 den Bitcode »001«<br />

aufweisen. Da das Register aber immer<br />

nur als Ganzes geschrieben werden kann,<br />

würde das plumpe Schreiben des Hexwerts<br />

dazu führen, dass GPIO 4 zwar als<br />

Ausgang, die GPIOs 0 bis 3 und 5 bis 9<br />

aber als Eingang konfiguriert sind. Das ist<br />

natürlich nicht gewollt.<br />

Um den Zustand der übrigen GPIOs<br />

beim Schreiben nicht zu ändern, liest<br />

der Bastler daher zunächst das komplette<br />

Register aus. Danach setzt er per bitweiser<br />

Und-Verknüpfung die relevanten<br />

Tabelle 2: Die GPIO-Register des Raspberry Pi<br />

(Auswahl, [5], Seite 90)<br />

Bits auf Null, anschließend mit der Konfigurations-Bitfolge<br />

»001« per bitweiser<br />

Oder-Verknüpfung neu. Die in Kasten A<br />

in Abbildung 5 dargestellte Befehlsfolge<br />

realisiert dieses Vorgehen.<br />

Der Programmierer kann im Fall des<br />

Rasp berry Pi zwar per Zeiger direkt auf<br />

die Hardware-Adressen zugreifen, erhält<br />

dann aber k<strong>einen</strong> portierbaren Code. Die<br />

in der Software verwendeten Adressen<br />

entsprechen nämlich nicht auf jeder<br />

Plattform auch den physischen Adressen.<br />

Dazwischen liegt noch die Memory-<br />

Management-Unit, die je nach Plattform<br />

auch <strong>für</strong> I/O-Bereiche eine Adressenumsetzung<br />

durchführt.<br />

Linus sei Dank<br />

Register Adresse Beschreibung<br />

GPFSEL0 0xF2200000 Konfiguration GPIO 0-9<br />

GPFSEL1 0xF2200004 Konfiguration GPIO 10-19<br />

GPFSEL2 0xF2200008 Konfiguration GPIO 20-29<br />

GPFSEL3 0xF220000C Konfiguration GPIO 30-39<br />

GPFSEL4 0xF2200010 Konfiguration GPIO 40-49<br />

GPFSEL5 0xF2200014 Konfiguration GPIO 50-53<br />

GPSET0 0xF220001c Ausgang 0 bis 31 auf 1 setzen<br />

GPSET1 0xF2200020 Ausgang 32 bis 53 auf 1 setzen<br />

GPCLR0 0xF2200028 Ausgang 0 bis 31 auf 0 setzen<br />

GPCLR1 0xF220002C Ausgang 32 bis 53 auf 0 setzen<br />

GPLEV0 0xF2200034 Eingang 0 bis 31 einlesen<br />

GPLEV1 0xF2200038 Eingang 32 bis 53 einlesen<br />

Um den Programmierer davon abzuschirmen<br />

und diesen Vorgang transparent zu<br />

gestalten, hat Linus Torvalds Zugriffsfunktionen<br />

eingeführt: »read[bwl]()«<br />

und »write[bwl]()«. »b« steht dabei <strong>für</strong><br />

Byte, »w« <strong>für</strong> Word und »l« <strong>für</strong> long.<br />

»readb()« führt <strong>einen</strong><br />

Byte-Zugriff, »readw()«<br />

<strong>einen</strong> Zwei-Byte-Zugriff<br />

und »readl()« <strong>einen</strong><br />

Vier-Byte-Zugriff durch.<br />

Die damit zum obigen<br />

Code funktional identische,<br />

<strong>Linux</strong>-konforme<br />

Implementierung zeigt<br />

der Kasten B in Abbildung<br />

5.<br />

Bei der Kodierung gibt<br />

es noch <strong>einen</strong> weiteren<br />

Fallstrick. So sortieren<br />

moderne CPUs schon<br />

mal gerne aus Optimierungsgründen<br />

die Reihenfolge<br />

der programmierten<br />

Befehle um. Das machen sie,<br />

wenn die neue Reihenfolge aus Sicht der<br />

CPU funktional identisch zur programmierten<br />

Reihenfolge ist. Da der Prozessor<br />

aber nicht zwischen normalen Speicherzellen<br />

und Registern unterscheidet, kann<br />

ein Reordering von Registeradressen zu<br />

unvorhersehbaren Ergebnissen (Race<br />

Conditions) führen.<br />

Barrieren<br />

Hiergegen helfen so genannte Memory<br />

Barriers [6], die vor Lese- beziehungsweise<br />

nach Schreibzugriffen einzusetzen<br />

sind. Je nach Plattform aktiviert der<br />

Entwickler die Memory Barriers unterschiedlich.<br />

<strong>Linux</strong> abstrahiert das mit vier<br />

Funktionen: »rmb()« ist <strong>für</strong> Lesezugriffe,<br />

»wmb()« <strong>für</strong> Schreibzugriffe, »mb()« <strong>für</strong><br />

Lese- und Schreibzugriffe zuständig. Die<br />

Funktion »barrier()« schaltet das Umsortieren<br />

durch den Compiler ab. Um das<br />

Reordering programmtechnisch zu berücksichtigen,<br />

muss man also noch, wie<br />

in Abbildung 5 (Kasten C) dargestellt,<br />

die Barrier-Funktionen einfügen.<br />

Atomar<br />

Noch ein weiteres Problem erfordert<br />

dringend die Hilfestellung durch den<br />

Kernel. Angenommen zwei unabhängige<br />

Programme konfigurieren jeweils <strong>einen</strong><br />

anderen GPIO, Programm A etwa GPIO<br />

Tabelle 3: Bitcodierung <strong>für</strong> die<br />

GPIO-Konfiguration<br />

Bitcodierung Bedeutung<br />

»000« GPIO-Pin als Eingabe<br />

»001« GPIO-Pin als Ausgabe<br />

»010« bis »111« sonstige Funktion


4 als Input und Programm B GPIO 7 als<br />

Output. Dazu lesen beide Tasks den gegenwärtigen<br />

Konfigurationswert ein, jede<br />

führt die Änderungen aus und speichert<br />

die Werte zurück.<br />

Da aber beide Programme ihre Änderungen<br />

ausgehend vom gemeinsamen<br />

Grundwert unabhängig voneinander<br />

ausgeführt haben, überschreibt das Programm,<br />

das s<strong>einen</strong> Wert zuletzt abspeichert,<br />

die Änderungen des anderen. Eine<br />

klassische Race Condition. Daher muss<br />

die Befehlssequenz (Lesen, Löschen, Setzen,<br />

Zurückschreiben) atomar, also ohne<br />

Unterbrechung beziehungsweise ohne<br />

Parallelität, abgearbeitet werden. Ohne<br />

Verankerung im Betriebssystemkern ist<br />

dieses Problem nicht zu lösen.<br />

Es lohnt sich<br />

Es ist also nicht nur praktisch, sondern<br />

auch technisch notwendig, dass der <strong>Linux</strong>-Kernel<br />

ein GPIO-Interface anbietet.<br />

Es empfiehlt sich daher, k<strong>einen</strong> Code<br />

zu verwenden, der das GPIO-Interface<br />

umgeht und direkt auf die Hardware zugreift,<br />

auch wenn derlei Software gelegentlich<br />

im Raspberry-Pi-Forum zu finden<br />

ist [7].<br />

Das GPIO-Subsystem ist übrigens vergleichweise<br />

jung. Daher sollte es niemanden<br />

überraschen, wenn es in den<br />

kommenden <strong>Linux</strong>-Versionen noch<br />

grundsätzliche Änderungen an dessen<br />

Kernel-Interface gibt. Unabhängig davon<br />

lohnt es sich, den GPIO-Zugriff über <strong>einen</strong><br />

Gerätetreiber zu realisieren. Gerade<br />

der eher leistungsschwache Raspberry Pi<br />

trumpft dann richtig auf. (mhu) n<br />

Infos<br />

[1] Dokumentation zu GPIO im Kernelquellcode:<br />

[https:// www. kernel. org/ doc/​<br />

Documentation/ gpio. txt]<br />

[2] Quade, Kunst, „Kern-Technik“: <strong>Linux</strong>-<br />

<strong>Magazin</strong> 08/​13, S. 86<br />

[3] Quade, Mächtel, „Moderne Realzeitsysteme<br />

kompakt“: Dpunkt-Verlag, 2012<br />

[4] Raspbian: [http:// www. raspbian. org]<br />

[5] Broadcom Corporation, „BCM2835 ARM<br />

Peripherals“: [http:// www. raspberrypi. org<br />

/ wp‐content/ uploads/ 2012/ 02/​<br />

BCM2835‐ARM‐Peripherals. pdf]<br />

[6] Quade, Kunst, „<strong>Linux</strong>-Treiber entwickeln“,<br />

3. Auflage: Dpunkt-Verlag, 2011, S. 220<br />

[7] Raspberry-Pi-Forum, „RaspiUtils GPIO<br />

using a device driver“:<br />

[http:// www. raspberrypi. org/ phpBB3/​<br />

viewtopic. php? f=33& t=32152]<br />

[8] Listings zum Artikel:<br />

[http:// www. linux‐magazin. de/ static/​<br />

listings/ magazin/ 2013/ 10/ kern‐technik/]<br />

Die Autoren<br />

Eva-Katharina Kunst, Journalistin, und Jürgen<br />

Quade, Professor an der Hochschule Niederrhein,<br />

sind seit den Anfängen von <strong>Linux</strong> Fans von Open<br />

Source. In der Zwischenzeit ist die dritte Auflage<br />

ihres Buches „<strong>Linux</strong> Treiber entwickeln“<br />

erschienen.<br />

Kern-Technik 10/2013<br />

Know-how<br />

www.linux-magazin.de<br />

107


Programmieren<br />

www.linux-magazin.de C++11 10/2013<br />

Modernes C++ in der Praxis – Folge 12<br />

Suchen und ersetzen<br />

regex_replace(log,rgxIPs,"XXX.XXX.XXX.XXX")<br />

enthält den String »log«, den regulären<br />

Ausdruck »rgxIPS«, der die zu ersetzende<br />

Zeichenmuster im Text identifiziert, sowie<br />

108<br />

Eine Logdatei anonymisieren, Fließkommazahlen oder Datumsangaben lokalisieren: Das alles lässt sich mit<br />

der C++11-Funktion »std::regex_replace()« in einem Rutsch umsetzen. Rainer Grimm<br />

C++11<br />

asynchrone Aktionen<br />

override<br />

decltype Programmierer den Schrägstrich nicht zu<br />

schützen braucht. Zeile 23 vollzieht die<br />

Move-Semantik<br />

Neue Container<br />

auto<br />

Ersetzung und damit das Anonymisieren<br />

Variadic Templates<br />

der Daten. Das Ergebnis landet im String<br />

bind »anonymizeLog«.<br />

Type Traits<br />

Zugegeben, das war ein besonders einfacher<br />

Anwendungsfall <strong>für</strong> »std::regex_re-<br />

C++11<br />

Alias Templates<br />

Tuple<br />

place()«. Bestand doch seine Aufgabe<br />

default<br />

function<br />

lediglich darin, die erkannten Textmus-<br />

Range-basierte<br />

C++11<br />

ter zu überschreiben. Oft sind aber zwei<br />

nullptr<br />

For-Schleife<br />

Schritte beim Modifizieren eines Textes<br />

Zufallszahlen<br />

Zeitbibliothek notwendig: Der erste identifiziert das<br />

delete<br />

final<br />

Textmuster, der zweite modifiziert <strong>einen</strong><br />

Benutzerdefinierte Literale<br />

Smart Pointer Teil des gefundenen Textes. Dank der<br />

Hashtabellen<br />

static_assert<br />

reguläre Ausdrücke<br />

so genannten Erfassungsgruppen stellt<br />

Threads das keine große Herausforderung <strong>für</strong><br />

Lambda-Funktionen<br />

Array<br />

»std::regex_replace()« dar.<br />

Fließkommazahlen<br />

Der Sprachstandard C++11 hat endlich<br />

reguläre Ausdrücke eingeführt. Wie die die Stelle der identifizierten Zeichen-<br />

die Zeichenkette »XXX.XXX.XXX.XXX«,<br />

lokalisieren<br />

moderner C++-Code damit Texte gegen<br />

Ein typisches Einsatzgebiet <strong>für</strong> Erfassungsgruppen<br />

ist das (Um-)Formatieren<br />

Muster prüft oder Passagen findet, zeigte<br />

die vorige Folge dieser Artikelreihe [1].<br />

von Daten. Im Beispiel liegen die Fließkommazahlen<br />

des String »germanDoub-<br />

Daneben kann der Programmierer die<br />

leistungsstarken Ausdrücke aber auch<br />

les{"+0,85 ‐13,2 1,0 ,45 ‐13,7 1,03425<br />

nutzen, um Strings zu verändern.<br />

10134,25"}« in deutscher Lokalisierung<br />

vor. Um die Kommata in jeder Zahl des<br />

Logdatei anonymisieren<br />

String durch die im Englischen üblichen<br />

Punkte zu ersetzen, kommt der reguläre<br />

Als einfaches Beispiel soll ein Webserver-Log<br />

dienen, in dem die aufrufenden<br />

Dieser zerlegt jede Zahl in ihre zwei Kom-<br />

Ausdruck in Abbildung 1 zum Einsatz.<br />

IP-Adressen anonymisiert werden sollen.<br />

ponenten vor und nach dem Komma. Das<br />

Dabei kommt die Funktion »std::regex_<br />

tut er mittels zweier Erfassungsgruppen,<br />

replace()« zum Einsatz, die die verräterischen<br />

Zahlen durch »XXX.XXX.XXX.<br />

mern einschließen.<br />

die Teile des Ausdrucks in runde Klam-<br />

XXX« ersetzt. Sie benötigt in ihrer einfachsten<br />

Form drei Dinge, um ihre Arbeit<br />

wie ein regulärer Ausdruck seine Treffer<br />

Die Erfassungsgruppen beeinflussen nicht,<br />

zu erledigen: Der Aufruf<br />

muster einnehmen soll. Dabei tauscht<br />

die Funktion »std::regex_replace()« alle<br />

Vorkommen des Zeichenmusters im Text<br />

aus und gibt den neuen String als Ergebnis<br />

zurück (Listing 1).<br />

Das Programm beginnt in bekannter Manier<br />

mit den Anpassungen an die Boost-<br />

Bibliothek [2], da weder Clang- noch<br />

GCC-Compiler die Bibliothek <strong>für</strong> reguläre<br />

Ausdrücke derzeit vollständig unterstützen.<br />

Der »log«-String in den Zeilen 15<br />

und 16 enthält die zu anonymisierenden<br />

Daten. Anonymisieren bedeutet in<br />

diesem konkreten Fall, die IP-Adressen<br />

zu verschleiern. Dazu kommt der reguläre<br />

Ausdruck in Zeile 21 zum Einsatz:<br />

»rgxIPs« beschreibt vier Zahlen, die jeweils<br />

durch <strong>einen</strong> Punkt getrennt sind.<br />

Dabei kann jede der Zahlen eine bis drei<br />

Stellen aus den Ziffern von 0 bis 9 enthalten:<br />

»[0‐9]{1,3}«.<br />

Der Gesamtstring erhält die Form eines<br />

Raw-String (mit »R"« markiert), damit der<br />

([-+]?[0-9]*),?([0-9]+)<br />

Abbildung 1: Der Ausdruck <strong>für</strong> deutsche Fließkommazahlen<br />

verwendet zwei Erfassungsgruppen.


([0-9]{1,2})/([0-9]{1,2})/([0-9]{1,2})<br />

verwenden lassen. Die<br />

Funktion »regex_replace()«<br />

ersetzt jedes<br />

Abbildung 3: Die drei Erfassungsgruppen <strong>für</strong> Jahr, Monat und Tag kennzeichnen<br />

Textmuster in dem<br />

den Ausdruck <strong>für</strong> Datumsangaben.<br />

Text »germanDoub-<br />

Abbildung 2: Mit regulären Ausdrücken kann C++<br />

das Format von Fließkommazahlen lokalisieren.<br />

findet, sondern erlauben es, einzelne Teile<br />

eines Treffers explizit zu adressieren. So<br />

lassen sich die Vor- und Nachkommastellen<br />

einer Fließkommazahl, durch <strong>einen</strong><br />

Punkt verbunden, wieder zusammensetzen<br />

– ein Format, das der englischen Lokalisierung<br />

der Zahlen entspricht. Listing<br />

2 setzt die skizzierten Ideen in konkreten<br />

C++-Code um.<br />

Double,"$1.$2")« (Zeile 21). Zuerst zum<br />

regulären Ausdruck. Er besteht aus einem<br />

Teil vor und einem nach dem Komma.<br />

Dabei ist das Komma optional »,?«. Vor<br />

dem Komma kann ein Minus- oder Plus-<br />

Zeichen stehen, auf das beliebig viele<br />

Ziffern von 0 bis 9 folgen »[0‐9]*«.<br />

Während die Komponenten des regulären<br />

Ausdrucks vor dem Komma optional<br />

sind, sind die nach dem Komma obligatorisch.<br />

Der Nachkomma-Bestandteil der<br />

Fließkommazahl besteht ebenfalls aus<br />

les« durch den String<br />

»$1.$2«. Dabei stehen »$1« und »$2«<br />

<strong>für</strong> die erste und die zweite Erfassungsgruppe<br />

des identifizierten Textmusters.<br />

Abbildung 2 zeigt die Ausgabe des kl<strong>einen</strong><br />

Programms.<br />

Erfassungsgruppen in regulären Ausdrücken<br />

sind ein leicht verständliches<br />

Konzept, das dennoch interessante Anwendungsfälle<br />

abdeckt. So lässt sich mit<br />

ihnen beispielsweise die Reihenfolge von<br />

Gruppen in einem zu ersetzenden String<br />

vertauschen.<br />

109<br />

Zwei Stellen in Listing 2 verdienen größere<br />

Aufmerksamkeit. Das ist zum <strong>einen</strong><br />

in Zeile 19 der reguläre Ausdruck<br />

den Ziffern von 0 bis 9 und muss mindestens<br />

eine Stelle aufweisen.<br />

Den Vorkomma- und Nachkomma-Anteil<br />

»([‐+]?[0‐9]*),?([0‐9]+)«, zum anderen der Fließkommazahl adressiert je eine<br />

Datumsangaben<br />

international<br />

die Anwendung der Erfassungsgruppen<br />

in »regex_replace(germanDoubles,rgxder<br />

beiden Erfassungsgruppen, die sich<br />

anschließend in der Replace-Funktion<br />

Welches Datum verbirgt sich hinter dem<br />

Ausdruck »01/02/03«? Die meisten Leser<br />

C++11 10/2013<br />

Programmieren<br />

www.linux-magazin.de


Programmieren<br />

www.linux-magazin.de C++11 10/2013<br />

110<br />

Abbildung 4: Ein kleines C++11-Programm formatiert<br />

Datumsangaben <strong>für</strong> unterschiedliche Regionen.<br />

Abbildung 5: Diskret: Mit regulären Ausdrücken und Erfassungsgruppen anonymisiert C++11 gezielt den Hostanteil<br />

von Adressen im Webserverprotokoll.<br />

dürften das als den 1. Februar 2003 interpretieren.<br />

So einfach ist es aber nicht,<br />

denn die richtige Antwort hängt von der<br />

Lokalisierung der Datumsangabe ab, die<br />

nach Land und Region verschieden ist.<br />

Fast jede Komponente von »01/02/03«<br />

lässt sich als Tag, Monat oder Jahr interpretieren.<br />

Wer’s nicht glaubt, kann auf<br />

der Wikipedia-Seite zum Datumsformat<br />

[3] nachsehen. Listing 3 stellt ein paar<br />

01 // replace #include with<br />

02 // #include <br />

03 // and<br />

04 // std::tr1:: with std:: in the source code<br />

05 <br />

06 #include <br />

07 <br />

08 #include <br />

09 #include <br />

10 <br />

11 int main(){<br />

12 <br />

13 std::cout


([0-9]{1,3})\.[0-9]{1,3})\.([0-9]{1,3})\.[0-9]{1,3}<br />

Abbildung 6: Der reguläre Ausdruck zum Anonymisieren des Hostanteils einer IP-Adresse.<br />

– nach der bekannten Vorgehensweise<br />

der Standard Template Library – auf<br />

Iteratoren. Ruft der Programmierer die<br />

Funktionen mit dem Flag »std::regex_<br />

constants::format_no_copy« auf, so enthält<br />

die Ausgabe nur die modifizierten<br />

Treffer. So kann er in einem Durchlauf<br />

alle Treffer extrahieren, modifizieren und<br />

ausgeben.<br />

Listing 4 wendet diese Ideen an: Das<br />

Programm extrahiert die IP-Adressen aus<br />

dem String, anonymisiert den Hostanteil<br />

und gibt das Ergebnis (Abbildung 5) aus.<br />

Der Einfachheit halber nimmt der Code<br />

an, dass der Hostanteil der IP-Adresse<br />

aus den letzten 8 Bits besteht. Abbildung<br />

6 zeigt den regulären Ausdruck, der eine<br />

Erfassungsgruppe <strong>für</strong> den Netzanteil der<br />

IP-Adresse verwendet. Zeile 22 definiert<br />

den regulären Ausdruck<br />

([0‐9]{1,3}\.[0‐9]{1,3}\.[0‐9]{1,3})\.[0‐9]U<br />

{1,3}«<br />

der in Zeile 26 zum Einsatz kommt.<br />

»std::regex_replace()« schiebt durch<br />

Der Autor<br />

Rainer Grimm arbeitet seit<br />

1999 als Software-Entwickler<br />

bei der Science + Computing<br />

AG in Tübingen. Insbesondere<br />

hält er Schulungen <strong>für</strong><br />

das hauseigene Produkt SC<br />

Venus. Im Dezember 2011 ist sein Buch „C++11: Der<br />

Leitfaden <strong>für</strong> Programmierer zum neuen Standard“<br />

im Verlag Addison-Wesley erschienen.<br />

»std::back_inserter(allIPs)« die modifizierten<br />

Strings »$1.XXX\n« auf »allIps«.<br />

Wie geht’s weiter?<br />

Die hier behandelten regulären Ausdrücke<br />

besitzen eine Gemeinsamkeit mit dem<br />

Datentyp Hashtabelle: Beide vermissten<br />

die Entwickler lange in der Sprache C++.<br />

Hashtabellen, in anderen Communities<br />

auch bekannt unter dem Namen Dictionary<br />

oder assoziatives Array, fühlen sich<br />

sehr ähnlich an wie die klassischen, assoziativen<br />

Container »std::map«. Unter der<br />

Oberfläche existieren aber gravierende<br />

Listing 3: Datumsformate international<br />

01 // replace #include with<br />

02 // #include <br />

03 // and<br />

04 // std::tr1:: with std:: in the source code<br />

05 <br />

06 #include <br />

07 <br />

08 #include <br />

09 #include <br />

10 #include <br />

11 <br />

12 int main(){<br />

13 <br />

14 std::cout


Programmieren<br />

www.linux-magazin.de Perl-Snapshot 10/2013<br />

112<br />

Perl-Skripte werten aufgezeichnete Aktivitäten aus<br />

Bewegte Reife<br />

Der elektronische Armreif Up misst die Armbewegungen seines Trägers und schließt daraus auf tags zurückgelegte<br />

Wege und nächtliche Schlafrhythmen. Wen die offizielle Smartphone-App langweilt, der lässt<br />

eigene Perl-Skripte auf das inoffizielle Web-API zugreifen. Michael Schilli<br />

nen-Batterie inklusive Ladechips, einem<br />

Vibrator und Komponenten zum Andocken<br />

an den Audioport des Smartphones<br />

kommt nichts zutage.<br />

Der Armreif schickt also lediglich die<br />

zeitlich aufbereiten Beschleunigungsdaten<br />

an ein Machine-Learning-System, das<br />

aus dem Bewegungsmuster errät, welche<br />

Art von Bewegung die Person ausführt<br />

(Gehen, Laufen, Fitnesstrainer), wie viele<br />

Schritte der Träger geschafft und welche<br />

Wegstrecke er dabei zurückgelegt hat.<br />

© Aliaksei Smalenski, 123RF<br />

Um der verbreiteten Tendenz zu übermäßigem<br />

Körperfett entgegenzuwirken,<br />

tragen viele Smartphonebesitzer heutzutage<br />

kleine Gadgets mit sich herum,<br />

die sie an ihre Trägheit erinnern. Wer<br />

stundenlang regungslos vor dem Bildschirm<br />

sitzt, soll so motiviert werden, öfter<br />

ums Karree zu gehen oder die Toilette<br />

im falschen Stockwerk aufzusuchen. Der<br />

Trend zur Selbstvermessung kommt aus<br />

den USA und rangiert unter dem Namen<br />

„Quantify Yourself“.<br />

Ein elektronischer Armreif wie das Up-<br />

Band ([2], Abbildung 1) von der Firma<br />

Jawbone misst die gegangenen Schritte<br />

und zeigt später über die zugehörige App<br />

<strong>für</strong>s Smartphone die zurückgelegte Wegstrecke<br />

und die verbrauchten Kalorien<br />

Online PLUS<br />

In einem Screencast demonstriert<br />

Michael Schilli das Beispiel: [http://​<br />

www.linux-magazin.de/​plus/​2013/10]<br />

an. Das Accessoire gibt es in drei Größen,<br />

mehreren Farben und ist auch in Europa<br />

<strong>für</strong> rund 130 Euro leicht erhältlich. Das<br />

Gerät scheint funktional nur momentane<br />

Beschleunigungswerte zu erfassen und<br />

sie zeitlich zu kumulieren. Die geografische<br />

Position des Trägers ließe sich mit<br />

einem GPS-Chip ermitteln, aber ein solcher<br />

würde die kleine Batterie des Geräts<br />

wohl in kürzester Zeit leersaugen.<br />

Entblößtes Innenleben<br />

Da die auf Lifestyle-Gadgtes spezialisierte<br />

Firma Jawbone in Sachen Open Hardware<br />

unverdächtig ist, schlitzt in einem<br />

Video ([3], Abbildung 3) ein neugieriger<br />

Elektronik-Freak kurzerhand die äußere<br />

Gummihülle des Armbands auf und zeigt<br />

die wasserdicht eingeschweißten Komponenten.<br />

Er findet bei seiner Operation ein<br />

halbes Dutzend kleinerer Platinchen mit<br />

SMD-Komponenten, aber außer einem<br />

Beschleunigungsmesser, der Lithium-Io-<br />

Schlaf der Gerechten<br />

Wer den Reif auch nachts trägt, kann am<br />

Morgen über seine Schlafmuster staunen.<br />

Die App zeigt grafisch an, wann der Träger<br />

zu Bett ging, wann er eingeschlafen<br />

ist, wie oft er aufgewacht oder aufgestanden<br />

ist. Auf Wunsch weckt die App den<br />

Schläfer mit sanftem Vibrieren innerhalb<br />

eines 20 Minuten langen Intervalls zu<br />

einem Zeitpunkt, an dem das Aufwachen<br />

am wenigsten nervig ist.<br />

Zum Erfassen der Schlafrhythmen muss<br />

der User das Gerät allerdings vor dem<br />

Einschlafen manuell per Knopfdruck in<br />

den Schlafmodus versetzen. Bewegt sich<br />

der Träger dann lange Zeit nicht, ist er<br />

wohl tief eingeschlafen, liegen kleinere<br />

Abbildung 1: Der Armreif Jawbone Up schließt aus<br />

den Bewegungen des Trägers auf dessen Aktivität.


organisieren. Wer den eigenen Arbeitskollegen<br />

nicht auf die Nase binden möchte,<br />

dass er sich nächtelang schlaflos im Bett<br />

hin und her gewälzt hat, spart diese heiklen<br />

Informationsbissen im Bereich »Sharing«<br />

von der Publikation aus.<br />

Perl-Snapshot 10/2013<br />

Programmieren<br />

Offene Daten<br />

Nun liegen die Schritt- und Schlafdaten<br />

nicht nur über die App, sondern auch<br />

in etwas roherer Form vor. Dazu nutzt<br />

das Skript in Listing 1 das CPAN-Modul<br />

WWW::Jawbone::Up und damit indirekt<br />

ein inoffizielles Web-API, das Bewegungsdaten<br />

in Perl-Skripte importiert. Mit<br />

»./uptest« auf der <strong>Linux</strong>-Kommandozeile<br />

fragt der experimentierfreudige Fitness-<br />

Enthusiast schnell mal seine bisher hochgeladenen<br />

Daten ab:<br />

www.linux-magazin.de<br />

113<br />

Abbildung 2: Das Smartphone beweist: Nicht<br />

genügend Schlaf, aber sein Fitness-Ziel von 10 000<br />

Schritten pro Tag hat der Träger fast erreicht.<br />

Bewegungen vor, gleitet er in eine leichtere<br />

Schlafphase hinüber.<br />

Der im Band verbaute Akku hält ungefähr<br />

eine Woche ohne Nachladen durch.<br />

Um die Daten auszulesen, zieht der User<br />

ein Stöpselchen an einem Ende des Bandes<br />

ab und legt dabei <strong>einen</strong> Audiostecker<br />

frei. Den führt er in den Audioport seines<br />

Smartphones ein (Abbildung 5) und<br />

startet die Up-App. Das Band morst die<br />

Bewegungsdaten an die App und damit<br />

an den Server in der Jawbone-Cloud. Von<br />

dort erhält die App die aufbereiteten Daten<br />

zurück und zeigt sie grafisch ansprechend<br />

an (Abbildungen 2 und 4).<br />

Läufer können Freunde in ihr „Team“<br />

einladen und <strong>einen</strong> Fitnesswettbewerb<br />

Abbildung 3: Auf Youtube zeigt ein Bastler, wie er <strong>einen</strong> Up-Armreif aufschlitzt,<br />

und erklärt die Komponenten.<br />

Mike Schilli walked 8.597km today<br />

Mike Schilli slept for 6h19m last night<br />

Listing 1 zieht zu Anfang das CPAN-<br />

Modul herein und loggt sich dann mit<br />

der »connect()«-Methode in der Up-Cloud<br />

ein. Die E-Mail-Adresse und das Passwort<br />

in den Zeilen 6 und 7 ersetzt der User<br />

durch den Up-Account, den er bei dem<br />

Aktivieren seines Bandes angelegt hat.<br />

Die Methode »user()« holt die persönlichen<br />

Daten des Eingeloggten ein. Aus<br />

diesen extrahiert »name()« den registrierten<br />

Vor- und Nachnamen.<br />

Die Methode »score()« erhält die aufbereiteten<br />

Bewegungsdaten vom Up-Server.<br />

Die in den letzten 24 Stunden vom Träger<br />

zurückgelegte Wegstrecke in Kilometern<br />

kommt mit »move()‐>distance()« zutage.<br />

Die Schlafdauer liefert »sleep()‐>asleep()«<br />

in Sekunden. Die nachfolgende Zeile teilt<br />

den Wert durch 60, erhält so die Minuten,<br />

und das CPAN-Modul DateTime::Duration<br />

errechnet daraus die<br />

vollen Stunden und<br />

überbleibenden Minuten.<br />

Bei Sekunden<br />

stellt es sich stur, da<br />

dies wegen Schaltsekunden<br />

in Sonderfällen<br />

fehlerhaft wäre.<br />

Schön bunt<br />

Mit der Fülle der verfügbaren<br />

Daten lassen<br />

sich nun allerhand<br />

Abbildung 4: Erst um 1:20 Uhr ins Bett, dann um<br />

halb sieben kurz aufgewacht und gelesen, dann wieder<br />

eingeschlummert und um zehn aufgestanden.<br />

Experimente anstellen. Ansprechende<br />

Diagramme erfordern lediglich ein Grafikpaket<br />

wie Chart::Clicker (erhältlich auf<br />

dem CPAN, Dokumentation auf [4]), das<br />

sie ohne viel Handarbeit, aber trotzdem<br />

ästethisch vollwertig generiert. Abbildung<br />

6 zeigt zwei Graphen in einem<br />

Schaubild, lila die während der letzten 24<br />

Stunden kumulierte Wegstrecke und gelb<br />

die in dynamisch festgelegten Intervallen<br />

gemessenen Schritte.<br />

Um Speicherplatz im Gerät zu sparen,<br />

legt das Band Daten nämlich in unterschiedlich<br />

langen Messintervallen ab:<br />

Rührt sich lange nichts, wenn der Träger<br />

schläft oder zum Beispiel vor dem Fernseher<br />

verharrt, beträgt das Zeitfenster<br />

mit dem Zählwert <strong>für</strong> die registrierten<br />

Bewegungen schon mal eine Stunde oder<br />

mehr. In vollem Lauf hingegen schreibt<br />

der Armreif jede Minute <strong>einen</strong> Eintrag in<br />

den Speicher, der die Anzahl der Schritte<br />

festlegt. Der Up-Server schätzt daraus die<br />

zurückgelegte Strecke des Bandbesitzers,<br />

seine durchschnittliche Geschwindigkeit,<br />

die bei der Aktivität verbrannten Kalorien<br />

und die Anzahl der Sekunden, in denen<br />

der User im Zeitintervall aktiv war.<br />

<strong>Alle</strong> Informationen greift das Skript aus<br />

Listing 2 über Methoden ab und stellt<br />

sie mit Hilfe des Chart-Pakets grafisch


Programmieren<br />

www.linux-magazin.de Perl-Snapshot 10/2013<br />

114<br />

dar. Das Paket Chart::Clicker [4] vom<br />

CPAN malt formschöne Kurven und ist<br />

so flexibel, dass es sogar – wie Abbildung<br />

6 zeigt – zwei Arten von Graphen<br />

in ein Schaubild packt: Die über die<br />

Zeitachse bislang zurückgelegten Meter<br />

platziert eine Render-Engine namens<br />

Chart::Clicker::Renderer::Area in eine<br />

ausgemalte Fläche (lila in Abbildung 6),<br />

die Schübe mit Step-Zählwerten zeigt die<br />

Grafik mit dünnen Bars in Gelb, ebenfalls<br />

über die Zeitachse.<br />

<strong>Alle</strong> Tage 24 Stunden<br />

auf Achse<br />

Von Haus aus stellt Chart::Clicker Daten<br />

in Form von x-y-Koordinaten dar. Bestehen<br />

die x-Werte aus Datumsangaben<br />

in Unix-Sekunden, sorgt das Modul<br />

01 #!/usr/local/bin/perl ‐w<br />

02 use strict;<br />

03 use WWW::Jawbone::Up;<br />

04 use DateTime::Duration;<br />

05<br />

06 my $email = 'user@isp.com';<br />

07 my $pass = 'changeme';<br />

08<br />

09 my $up = WWW::Jawbone::Up‐>connect(<br />

10 $email, $pass );<br />

11<br />

12 my $user<br />

Abbildung 5: Steckt der Audiostecker des Armbands<br />

in der Buchse des Smartphones, während die Up-App<br />

läuft, überträgt sie die Daten.<br />

Listing 1: »uptest«<br />

= $up‐>user();<br />

Abbildung 6: Zurückgelegte Wegstrecke in den letzten 24 Stunden (lila), in<br />

dynamisch gewählten Messintervallen gezählte Schritte (gelb).<br />

Chart::Clicker::Axis::DateTime da<strong>für</strong>,<br />

dass sie als schöne Tagesdaten oder Uhrzeiten<br />

auf der x-Achse ersch<strong>einen</strong>.<br />

Das Skript holt sich in Zeile 19 die Rohdaten<br />

des Bandes während der letzten 24<br />

Stunden mit der Methode »band()« ab.<br />

Wahlweise ließe sich ein beliebiger Zeitraum<br />

festlegen. Zurück kommt ein Array<br />

von Einträgen, von denen jeder eine<br />

Referenz auf <strong>einen</strong> Hash enthält – unter<br />

»steps« die Anzahl der pro Zeitperiode<br />

abgespulten Schritte, unter »distance«<br />

die zurückgelegte Distanz, unter »speed«<br />

die Durchschnittsgeschwindigkeit während<br />

der Messperiode. In »time« steht<br />

der Zeitstempel, in »active_time« der Teil<br />

des Zeitfensters, in dem der User sich<br />

bewegt hat, und in »calories« die Anzahl<br />

der verbrannten Kalorien.<br />

Mit den abgeholten Werten füllt das<br />

Skript dann drei Arrays: »@time« mit den<br />

Zeitstempeln im Unix-Format, »@steps«<br />

mit der Schrittzahl zu diesen Zeitpunkten<br />

und »@distance« mit der bis zur jeweiligen<br />

Zeit zurückgelegten Gesamtstrecke.<br />

Die Zeilen 40 und 47 erzeugen aus den<br />

13 my $score = $up‐>score();<br />

14<br />

15 print $user‐>name . ' walked ' .<br />

16 $score‐>move‐>distance . 'km today', "\n";<br />

17<br />

18 my $dtd = DateTime::Duration‐>new(<br />

19 minutes => $score‐>sleep‐>asleep()/60 );<br />

20<br />

21 print $user‐>name . " slept for ",<br />

22 $dtd‐>hours(), "h", int( $dtd‐>minutes() ),<br />

23 "m", " last night\n";<br />

Zeit-Step- beziehungsweise<br />

Zeit-Distanz-<br />

Kombinationen je eine<br />

Datenserie vom Typ<br />

Data::Series.<br />

Ein Datensatz vom<br />

Typ Data::DataSet <strong>für</strong><br />

<strong>einen</strong> Graphen darf in<br />

Chart::Clicker mehrere<br />

Datenserien speichern,<br />

aber die Zeilen 54 und<br />

57 erzeugen jeweils <strong>einen</strong><br />

Datensatz mit nur<br />

einer Serie <strong>für</strong> die zwei<br />

Graphen. Das Skript<br />

will beide verschieden<br />

darstellen, <strong>einen</strong> als<br />

Area-Graphen und den<br />

anderen als Balkengrafik, wenngleich im<br />

selben Diagramm.<br />

Rendern im Kontext<br />

Chart::Clicker arbeitet zum Rendern der<br />

Graphen in so genannten Kontexten, von<br />

Haus aus ist »default« eingestellt, und<br />

Zeile 37 holt das gleichnamige Objekt.<br />

Zum Darstellen des zweiten Datensatzes<br />

definiert Zeile 61 <strong>einen</strong> weiteren Kontext<br />

namens »steps«, Zeile 64 nimmt ihn<br />

ins System auf. Mit »add_to_datasets()«<br />

fügen dann die Zeilen 68 und 69 beide<br />

Datensätze zum Clicker-Objekt hinzu,<br />

und die Methode »domain_axis()« weist<br />

beiden über den Kontext die Zeitachse<br />

Axis::DateTime zu, die die x-Werte von<br />

Datenreihen als Datumsangaben interpretiert<br />

und ebenso darstellt.<br />

Die Angabe »%H:%M« weist den Formatierer<br />

an, vom Unix-Datum jeweils nur<br />

die Stunde und die Minute in die Achse<br />

einzuzeichnen. Die Zeitzone »America/<br />

Los_Angeles« gilt beispielsweise <strong>für</strong> San<br />

Francisco und Umgebung und ist entsprechend<br />

auf die lokalen Gegebenheiten<br />

anzupassen. Der Name der Zeitzone entspricht<br />

der dem Datumsmodul zugrunde<br />

liegenden Olson-Datenbank; die Wikipedia-Seite<br />

[5] listet die Werte <strong>für</strong> Europa<br />

und den Rest der Welt auf.<br />

Auf Abwegen<br />

Der Zaubertrick mit den zwei Graph-Typen<br />

gelingt über den Kontext – Zeile 87<br />

weist dem Default-Kontext den Area-Renderer<br />

zu, während der Steps-Kontext in


Zeile 88 den Bar-Renderer bekommt. Der<br />

Parameter »opacity« bestimmt in beiden<br />

Fällen die Durchsichtigkeit des Graphen:<br />

Bei Werten um 0 sind die gemalten Linien<br />

und Flächen praktisch blickdicht, um 1<br />

herum vollkommen durchsichtig.<br />

Die grafisch aufpolierten Bewegungsdaten<br />

in Abbildung 6 enthüllen, dass ich<br />

nach der Arbeit zum nahe gelegenen<br />

Dolores-Park hinuntergelaufen bin, um<br />

einige Kilometer auf den Armreif zu spulen.<br />

Denn mit einem normalen Bürotag<br />

schafft kaum jemand die empfohlenen<br />

10 000 Schritte. Mein abendliches Lungern<br />

vor der Glotze würdigte das Armband<br />

dagegen nicht.<br />

Nach einer ausgiebigen Bettruhe bis 8<br />

Uhr morgens ging ich die 500 Meter bis<br />

zur privaten Bushaltestelle des Yahoo-<br />

Shuttles in San Francisco. Untertags<br />

erhöhte sich die gemessene Laufstrecke<br />

gemächlich, während ich zwischen<br />

Meetings in unterschiedlichen Räumen<br />

oder gar Gebäuden mäanderte. Auf dem<br />

Weg von der Bushaltestelle zurück zur<br />

Wohnung ging's den Berg rauf, und<br />

die Anzahl der zurückgelegten Schritte<br />

wuchs weiter, um am Ende des Tages<br />

etwa 10 000 zu erreichen.<br />

Kein Band der Sympathie<br />

Wer das Up-Band von Jawbone erwirbt,<br />

bekommt kein 100-prozentig ausgereiftes<br />

Produkt. In Diskussionsforen berichten<br />

nicht wenige Besitzer, dass ihr schlanker<br />

Armreif den Geist aufgegeben habe. Insbesondere<br />

die ersten Versionen wiesen<br />

offenbar katastrophale Fehlerraten auf,<br />

neuere arbeiten zuverlässiger, einzelne<br />

Exemplare laden gleichwohl ihre Batterie<br />

nicht richtig oder hängen sich oft<br />

auf. Dass dann der Kundenservice der<br />

Firma Jawbone nicht immer wie erhofft<br />

reagiert, flößt kein Vertrauen ein.<br />

Eine Konkurrenz zum Up-Band bietet das<br />

schon länger auf dem Markt erhältliche<br />

Fitbit „The One“ [6]. Das kleine Teil im<br />

Format eines USB-Sticks stecken Bewegte<br />

tagsüber in die Hosentasche, nachts binden<br />

sie das Gadget in einem relativ breiten<br />

Stoffband am Arm fest. (jk) n<br />

Infos<br />

[1] Listings zu diesem Artikel:<br />

[ftp:// www. linux‐magazin. de/ pub/ listings/​<br />

magazin/ 2013/ 10/ Perl]<br />

[2] Jawbone Up: [https:// jawbone. com/ up]<br />

[3] „Jawbone UP Pedometer Teardown“, EEV<br />

Blog #412: [http:// www. youtube. com/​<br />

watch? v=sRjHAGsl6ws]<br />

[4] Chart Clicker:<br />

[http:// gphat. github. io/ chart‐clicker/]<br />

[5] Zeitzonen in der Olson-Datenbank:<br />

[http:// en. wikipedia. org/ wiki/ List_of_tz_<br />

database_time_zones]<br />

[6] Fitbit: [http:// www. fitbit. com/ de]<br />

Der Autor<br />

Michael Schilli arbeitet<br />

als Software-Engineer bei<br />

Yahoo in Sunnyvale, Kalifornien.<br />

In seiner seit 1997<br />

laufenden Kolumne forscht<br />

er jeden Monat nach praktischen<br />

Anwendungen der Skriptsprache Perl.<br />

Unter [mschilli@perlmeister. com] beantwortet<br />

er gerne Fragen.<br />

Perl-Snapshot 10/2013<br />

Programmieren<br />

www.linux-magazin.de<br />

115<br />

Listing 2: »bandchart«<br />

01 #!/usr/local/bin/perl ‐w<br />

02 use strict;<br />

03 use Chart::Clicker;<br />

04 use Chart::Clicker::Renderer::Area;<br />

05 use Chart::Clicker::Renderer::Bar;<br />

06 use Chart::Clicker::Axis::DateTime;<br />

07 use Chart::Clicker::Data::DataSet;<br />

08 use Chart::Clicker::Data::Series;<br />

09<br />

10 use WWW::Jawbone::Up;<br />

11 use DateTime::Duration;<br />

12<br />

13 my $email = 'user@isp.com';<br />

14 my $pass = 'changeme';<br />

15<br />

16 my $up = WWW::Jawbone::Up‐>connect(<br />

17 $email, $pass );<br />

18<br />

19 my @band = $up‐>band( );<br />

20<br />

21 my @time = ();<br />

22 my @steps = ();<br />

23 my @distance = ();<br />

24 my $total = 0;<br />

25<br />

26 for my $band ( @band ) {<br />

27 push @time, $band‐>time();<br />

28 push @steps, $band‐>steps();<br />

29<br />

30 $total += $band‐>distance();<br />

31 push @distance, $total;<br />

32 }<br />

33<br />

34 my $cc = Chart::Clicker‐>new(<br />

35 width => 1000, height => 800 );<br />

36<br />

37 my $def_ctx = $cc‐>get_context('default');<br />

38<br />

39 my $steps =<br />

40 Chart::Clicker::Data::Series‐>new(<br />

41 values => \@steps,<br />

42 keys => \@time,<br />

43 name => "Steps",<br />

44 );<br />

45<br />

46 my $distance =<br />

47 Chart::Clicker::Data::Series‐>new(<br />

48 values => \@distance,<br />

49 keys => \@time,<br />

50 name => "Distance",<br />

51 );<br />

52<br />

53 my $ds =<br />

54 Chart::Clicker::Data::DataSet‐>new(<br />

55 series => [ $distance ] );<br />

56 my $ds_steps =<br />

57 Chart::Clicker::Data::DataSet‐>new(<br />

58 series => [ $steps ] );<br />

59<br />

60 my $steps_ctx =<br />

61 Chart::Clicker::Context‐>new(<br />

62 name => 'steps'<br />

63 );<br />

64 $cc‐>add_to_contexts( $steps_ctx );<br />

65<br />

66 $ds_steps‐>context( "steps" );<br />

67<br />

68 $cc‐>add_to_datasets( $ds );<br />

69 $cc‐>add_to_datasets( $ds_steps );<br />

70<br />

71 my $dtaxis =<br />

72 Chart::Clicker::Axis::DateTime‐>new(<br />

73 format => "%H:%M",<br />

74 time_zone => "America/Los_Angeles",<br />

75 position => "bottom",<br />

76 orientation => "horizontal"<br />

77 );<br />

78<br />

79 $def_ctx‐>domain_axis( $dtaxis );<br />

80 $steps_ctx‐>domain_axis( $dtaxis );<br />

81<br />

82 my $ren =<br />

83 Chart::Clicker::Renderer::Area‐>new(<br />

84 opacity => .7,<br />

85 );<br />

86 $ren‐>brush‐>width( 5 ) ;<br />

87 $def_ctx‐>renderer( $ren );<br />

88 $steps_ctx‐>renderer(<br />

89 Chart::Clicker::Renderer::Bar‐>new(<br />

90 opacity => .6, bar_width => 1 )<br />

91 );<br />

92<br />

93 $cc‐>write_output( "chart.png" );


Service<br />

www.linux-magazin.de IT-Profimarkt 10/2013<br />

116<br />

PROFI<br />

MARKT<br />

Sie fragen sich, wo Sie maßgeschneiderte<br />

<strong>Linux</strong>-Systeme und kompetente<br />

Ansprechpartner zu Open-Source-Themen<br />

finden? Der IT-Profimarkt weist Ihnen<br />

als zuverlässiges Nachschlagewerk<br />

den Weg. Die hier gelisteten Unternehmen<br />

beschäftigen Experten auf ihrem<br />

Gebiet und bieten hochwertige Produkte<br />

und Leistungen.<br />

Die exakten Angebote jeder Firma entnehmen<br />

Sie deren Homepage. Der ersten<br />

Orientierung dienen die Kategorien<br />

Hardware, Software, Seminaranbieter,<br />

Systemhaus, Netzwerk/TK und Schulung/Beratung.<br />

Der IT-Profimarkt-Eintrag<br />

ist ein Service von <strong>Linux</strong>-<strong>Magazin</strong><br />

und <strong>Linux</strong>User.<br />

Online-Suche<br />

Besonders bequem finden Sie <strong>einen</strong><br />

<strong>Linux</strong>-Anbieter in Ihrer Nähe über die<br />

neue Online-Umkreis-Suche unter:<br />

[http://www.it-profimarkt.de]<br />

Informationen<br />

fordern Sie bitte an bei:<br />

Medialinx AG<br />

Anzeigenabteilung<br />

Putzbrunner Str. 71<br />

D-81739 München<br />

Tel.: +49 (0)89/99 34 11-23<br />

Fax: +49 (0)89/99 34 11-99<br />

E-Mail: anzeigen@linux-magazin.de<br />

IT-Profimarkt – Liste sortiert nach Postleitzahl<br />

1 = Hardware 2 = Netzwerk/TK 3 = Systemhaus<br />

4= Fachliteratur 4= Seminaranbieter 5 = Software 5 = Software 6 = Schulung/Beratung 6 = Firma Anschrift Telefon Web 1 2 3 4 5 6<br />

Schlittermann internet & unix support 01099 Dresden, Tannenstr. 2 0351-802998-1 www.schlittermann.de √ √ √ √<br />

imunixx GmbH UNIX consultants<br />

01468 Moritzburg,<br />

Heinrich-Heine-Str. 4<br />

0351-83975-0 www.imunixx.de √ √ √ √ √<br />

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

TUXMAN Computer 10369 Berlin, Anton-Saefkow-Platz 8 030-97609773 www.tuxman.de √ √ √ √ √<br />

Compaso GmbH 10439 Berlin, Driesener Strasse 23 030-3269330 www.compaso.de √ √ √ √ √<br />

elego Software Solutions GmbH 13355 Berlin, Gustav-Meyer-<strong>Alle</strong>e 25 030-2345869-6 www.elegosoft.com √ √ √ √<br />

verion GmbH 16244 Altenhof, Unter den Buchen 22 e 033363-4610-0 www.verion.de √ √ √<br />

Logic Way GmbH 19061 Schwerin, Hagenower Str. 73 0385-39934-48 www.logicway.de √ √ √ √<br />

Sybuca GmbH 20459 Hamburg, Herrengraben 26 040-27863190 www.sybuca.de √ √ √ √ √<br />

iTechnology GmbH 22083 Hamburg, Osterbekstrasse 90b 040 / 69 64 37 20 www.itechnology.de √ √ √ √<br />

JEL Ingenieurbuero 23911 Einhaus, Hauptstr. 7 04541-8911-71 www.jeltimer.de √<br />

beitco - Behrens IT-Consulting 26197 Ahlhorn, Lessingstr. 27 04435-9537330-0 www.beitco.de √ √ √ √ √<br />

talicom GmbH<br />

primeLine Solutions GmbH<br />

30169 Hannover,<br />

Calenberger Esplanade 3<br />

32549 Bad Oeynhausen,<br />

Dornenbreite 18a<br />

0511-123599-0 www.talicom.de √ √ √ √ √<br />

05731/​86940 www.primeline-solutions.de √ √ √ √<br />

teuto.net Netzdienste GmbH 33602 Bielefeld, Niedenstr. 26 0521-96686-0 www.teuto.net √ √ √ √ √<br />

MarcanT GmbH<br />

33602 Bielefeld,<br />

Ravensberger Str. 10 G<br />

0521-95945-0 www.marcant.net √ √ √ √ √ √<br />

LINET Services GmbH 38118 Braunschweig, Cyriaksring 10a 0531-180508-0 www.linet-services.de √ √ √ √ √ √<br />

OpenIT GmbH 40599 Düsseldorf, In der Steele 33a-41 0211-239577-0 www.OpenIT.de √ √ √ √ √<br />

<strong>Linux</strong>-Systeme GmbH 45277 Essen, Langenbergerstr. 179 0201-298830 www.linux-systeme.de √ √ √ √ √<br />

<strong>Linux</strong>hotel GmbH 45279 Essen, Antonienallee 1 0201-8536-600 www.linuxhotel.de √<br />

OpenSource Training Ralf Spenneberg 48565 Steinfurt, Am Bahnhof 3-5 02552-638755 www.opensource-training.de √<br />

Intevation GmbH 49074 Osnabrück, Neuer Graben 17 0541-33508-30 osnabrueck.intevation.de √ √ √ √<br />

Sigs Datacom GmbH 53842 Troisdorf, Lindlaustraße 2c 02241-2341-201 sigs-datacom.de √<br />

uib gmbh 55118 Mainz, Bonifaziusplatz 1b 06131-27561-0 www.uib.de √ √ √ √<br />

LISA GmbH 55411 Bingen, Elisenhöhe 47 06721-49960 www.lisa-gmbh.de √ √ √ √ √<br />

GONICUS GmbH 59755 Arnsberg, Moehnestr. 55 02932-9160 www.gonicus.com √ √ √ √ √<br />

saveIP GmbH<br />

LAMARC EDV-Schulungen u. Beratung<br />

GmbH<br />

<strong>Linux</strong>Haus Stuttgart<br />

64283 Darmstadt,<br />

Schleiermacherstr. 23<br />

65193 Wiesbaden,<br />

Sonnenberger Straße 14<br />

70565 Stuttgart,<br />

Hessenwiesenstrasse 10<br />

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

06151-666266 www.saveip.de √ √ √ √ √<br />

0611-260023 www.lamarc.com √ √ √ √<br />

0711-2851905 www.linuxhaus.de √ √ √ √ √<br />

(S.118)


Markt<br />

Embedded <strong>Linux</strong><br />

Beratung - Schulung - Entwicklung<br />

Imagery: Earth by NASA / The Blue Marble Project - http://visibleearth.nasa.gov | Penguin Variant by Larry Ewing, Simon Budig & Anja Gerwinski<br />

<strong>Linux</strong> Portierung - Web - AJAX - Qt - Echtzeit<br />

www.pengutronix.de<br />

+49 (5121) 20 69 17 - 0<br />

Communityedition<br />

32 Seiten der aktuellen auSgabe gratiS im PdF-Format<br />

Kostenlos als<br />

newsletter oder<br />

❱<br />

zum downloaden<br />

Easy<strong>Linux</strong> erscheint 4x im<br />

Jahr – neben der gedruckten<br />

Ausgabe <strong>für</strong> e 9,80 erhalten<br />

Sie gratis eine 32-seitige<br />

Auswahl der Artikel im<br />

PDF-Format.<br />

Jetzt<br />

informieren!<br />

archiv und bestellseite:<br />

www.easylinux.de/Ce/<br />

EL_1-4DIN_Community_Edition_2703-2013.indd 1<br />

04.07.2013 12:34:39 Uhr


Service<br />

www.linux-magazin.de Markt 10/2013<br />

118<br />

IT-Profimarkt/Markt<br />

IT-Profimarkt – Liste sortiert nach Postleitzahl (Fortsetzung von S. 116)<br />

Firma Anschrift Telefon Web 1 2 3 4 5 6<br />

Manfred Heubach EDV und Kommunikation<br />

73728 Esslingen, Hindenburgstr. 47 0711-4904930 www.heubach-edv.de √ √ √ √<br />

Waldmann EDV Systeme + Service 74321 Bietigheim-Bissingen, 07142-21516 www.waldmann-edv.de √ √ √ √ √<br />

Pleidelsheimer Str. 25<br />

in-put Das <strong>Linux</strong>-Systemhaus 76133 Karlsruhe, Moltkestr. 49 0721-6803288-0 www.in-put.de √ √ √ √ √ √<br />

Bodenseo 78224 Singen, Pomeziastr. 9 07731-1476120 www.bodenseo.de √ √ √<br />

<strong>Linux</strong> Information Systems AG 81739 München, Putzbrunnerstr. 71 089-993412-0 www.linux-ag.com √ √ √ √ √<br />

<strong>Linux</strong>Land International GmbH 81739 München, Putzbrunnerstr. 71 089-99341441 www.linuxland.de √ √ √ √ √ √<br />

Synergy Systems GmbH 81829 München, Konrad-Zuse-Platz 8 089-89080500 www.synergysystems.de √ √ √ √ √<br />

B1 Systems GmbH 85088 Vohburg, Osterfeldstrasse 7 08457-931096 www.b1-systems.de √ √ √ √ √<br />

ATIX AG 85716 Unterschleißheim, Einsteinstr. 10 089-4523538-0 www.atix.de √ √ √ √ √ √<br />

Tuxedo Computers GmbH 86343 Königsbrunn , Zeppelinstr. 3 0921 / 16 49 87 87 - 0 www.linux-onlineshop.de √ √ √ √<br />

OSTC Open Source Training and 90425 Nürnberg, Waldemar-Klink-Str. 10 0911-3474544 www.ostc.de √ √ √ √ √ √<br />

Consulting GmbH<br />

Dipl.-Ing. Christoph Stockmayer GmbH 90571 Schwaig, Dreihöhenstr. 1 0911-505241 www.stockmayer.de √ √ √<br />

pascom - Netzwerktechnik GmbH & 94469 Deggendorf, Berger Str. 42 0991-270060 www.pascom.net √ √ √ √ √<br />

Co.KG<br />

RealStuff Informatik AG CH-3007 Bern, Chutzenstrasse 24 0041-31-3824444 www.realstuff.ch √ √ √<br />

CATATEC CH-3013 Bern, Dammweg 43 0041-31-3302630 www.catatec.ch √ √ √<br />

Syscon Systemberatungs AG CH-8003 Zürich, Zweierstrasse 129 0041-44-4542010 www.syscon.ch √ √ √ √ √<br />

Würth Phoenix GmbH IT-39100 Bozen, Kravoglstraße 4 0039 0471 56 41 11 www.wuerth-phoenix.com √ √ √ √<br />

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

n<br />

MAGAZIN<br />

ONLINE<br />

<strong>Linux</strong>-<strong>Magazin</strong> newsLetter<br />

Nachrichten rund um die Themen <strong>Linux</strong> und Open Source lesen Sie täglich<br />

im Newsletter des <strong>Linux</strong>-<strong>Magazin</strong>s.<br />

Newsletter<br />

informativ<br />

kompakt<br />

tagesaktuell<br />

www.linux-magazin.de/newsletter


u<br />

Seminare<br />

IT-Onlinetrainings<br />

Mit Experten lernen.<br />

LPIC-1 / LPIC-2 Training<br />

LPIC-1 (LPI 101 + 102)<br />

mit Ingo Wichmann,<br />

<strong>Linux</strong>hotel<br />

499 €<br />

LPIC-2 (LPI 201 + 202)<br />

mit Marco Göbel,<br />

Com Computertraining GmbH<br />

499 €<br />

www.medialinx-academy.de<br />

IT-Academy_1-9_LPIC-Schulungen.indd 1<br />

IT-Onlinetrainings<br />

Mit Experten lernen.<br />

MEDIALINX<br />

IT-ACADEMY<br />

02.08.2013 11:53:58 Uhr<br />

MEDIALINX<br />

IT-ACADEMY<br />

Python <strong>für</strong><br />

Systemadministratoren<br />

mit Rainer Grimm,<br />

science + computing AG<br />

199 €<br />

Vereinfachen Sie Ihren Sysadmin-Alltag<br />

mit Skripting-Know-How <strong>für</strong> Profis!<br />

www.medialinx-academy.de<br />

Teststudium<br />

ohne Risiko!<br />

DiD you<br />

know?<br />

Fernstudium<br />

IT-Sicherheit<br />

Aus- und Weiterbildung zur Fachkraft <strong>für</strong><br />

IT-Sicherheit. Ein Beruf mit Zukunft. Kostengünstiges<br />

und praxisgerechtes Studium<br />

ohne Vorkenntnisse. Beginn jederzeit.<br />

NEU:PC-Techniker, Netzwerk-Techniker,<br />

<strong>Linux</strong>-Administrator LPI, Webmaster<br />

Teststudium ohne Risiko.<br />

GRATIS-Infomappe<br />

gleich anfordern!<br />

FERNSCHULE WEBER<br />

-seit 1959-<br />

Postfach 21 61<br />

Abt. C25<br />

26192 Großenkneten<br />

Tel. 0 44 87 / 263<br />

Fax 0 44 87 / 264<br />

www.fernschule-weber.de<br />

UNIX-C-C++ Java<br />

Seminare<br />

in Nürnberg<br />

(oder inhouse)<br />

UNIX/<strong>Linux</strong><br />

UNIX/<strong>Linux</strong>-Aufbau<br />

C, C-Aufbau<br />

C++<br />

OOA/OOD (mit UML)<br />

Java<br />

Perl, XML<br />

weitere Kurse auf Anfrage, Telephonhotline<br />

Dipl.-Ing.<br />

Christoph Stockmayer GmbH<br />

90571 Schwaig/Nbg • Dreihöhenstraße 1<br />

Tel.: 0911/505241 • Fax 0911/5009584<br />

EMail: sto@stockmayer.de<br />

http://www.stockmayer.de<br />

tl<br />

a<br />

ta<br />

s<br />

•<br />

n<br />

c<br />

i<br />

e<br />

h<br />

g<br />

e<br />

p<br />

rü<br />

Fernstudium<br />

s<br />

s<br />

a<br />

el<br />

g<br />

f<br />

t<br />

n<br />

d<br />

z<br />

u<br />

IT-Academy_1-9_Python-Schulung.indd 1<br />

02.08.2013 11:54:11 Uhr<br />

IT-Onlinetrainings<br />

Mit Experten lernen.<br />

MEDIALINX<br />

IT-ACADEMY<br />

– die offiziellen Trainings<br />

mit Marco Welter,<br />

Zarafa Deutschland GmbH<br />

Zarafa Administrator<br />

249 €<br />

Zarafa Engineer<br />

249 €<br />

www.medialinx-academy.de<br />

WusstEn siE’s?<br />

<strong>Linux</strong>-<strong>Magazin</strong> und <strong>Linux</strong>User haben<br />

ein englisches Schwester magazin!<br />

Am besten, Sie informieren gleich<br />

Ihre <strong>Linux</strong>-Freunde in aller Welt...<br />

www.linux-magazine.com<br />

IT-Onlinetrainings<br />

MEDIALINX<br />

Mit Experten lernen. IT-ACADEMY<br />

IT-Sicherheit Grundlagen<br />

mit Prof. Dr.<br />

Tobias Eggendorfer,<br />

Hochschule<br />

Ravensburg-Weingarten<br />

299 €<br />

www.medialinx-academy.de<br />

IT-Academy_1-9_Zarafa-Schulung.indd 1<br />

02.08.2013 11:55:03 Uhr<br />

LMI_german_2-9h_black_1908-2013.indd 1<br />

1-9-Anzeige-IT-Sicherheit-Grundlagen.indd 1<br />

19.08.2013 10:11:51 Uhr<br />

02.08.2013 11:52:51 Uhr


Service<br />

www.linux-magazin.de Inserenten 10/2013<br />

120<br />

Inserentenverzeichnis<br />

1&1 Internet AG http://​www.einsundeins.de 7<br />

1blu AG http://​www.1blu.de 25<br />

ADMIN http://​www.admin-magazin.de 91, 95<br />

Android Apps & Tipps http://​www.android-user.de 27<br />

Android User GY http://​www.android-user.de 107<br />

CANDAN THE WEB COMPANY http://​www.canhost.de 69<br />

ConSol Software GmbH http://​www.consol.de 9<br />

Deutsche Python Konferenz - PyCon http://​de.pycon.org 37<br />

Easy<strong>Linux</strong> http://​www.easylinux.de 117<br />

Embedded projects GmbH http://​www.embedded-projects.net 117<br />

Fernschule Weber GmbH http://​www.fernschule-weber.de 119<br />

Heinlein Support GmbH http://​www.heinlein-support.de 57, 59<br />

Heise Zeitschriften Verlag GmbH & Co. KG http://www.heise.de 81<br />

Host Europe GmbH http://​www.hosteurope.de 17<br />

Ico Innovative Computer GmbH http://​www.ico.de 45<br />

IT-Security Messe http://​www.it-sa.de 123<br />

KITZ Kieler <strong>Linux</strong> Tage http://​www.kielux.de 13<br />

<strong>Linux</strong> <strong>Magazin</strong>e http://www.linux-magazine.com 119<br />

<strong>Linux</strong>-Hotel http://​www.linuxhotel.de 11<br />

<strong>Linux</strong>-<strong>Magazin</strong> http://​www.linux-magazin.de 2, 99<br />

<strong>Linux</strong>-<strong>Magazin</strong> Online http://​www.linux-magazin.de 118<br />

<strong>Linux</strong>User http://​www.linuxuser.de 109<br />

Mailstore Software GmbH http://www.mailstore.com 15<br />

Medialinx IT-Academy<br />

http://​www.medialinx-academy.de<br />

19, 51, 61, 119<br />

Netways GmbH http://​www.netways.de 55, 79<br />

Open Source Press GmbH http://​www.opensourcepress.de 67<br />

Pengutronix e.K. http://​www.pengutronix.de 117<br />

PlusServer AG http://​www.plusserver.de 43, 47, 71,<br />

73, 86, 93, 101<br />

Raspberry Pi Geek http://​www.raspberry-pi-geek.de 29, 85<br />

Schlittermann internet & unix support http://​schlittermann.de 117<br />

Spenneberg Training & Consulting http://​www.spenneberg.com 119<br />

Stockmayer GmbH http://​www.stockmayer.de 119<br />

Thomas Krenn AG http://​www.thomas-krenn.com 124<br />

Webtropia http://​www.webtropia.com 35, 39<br />

Einem Teil dieser Ausgabe liegen Beilagen der Firmen 1&1 Internet AG (http://​www.<br />

einsundeins.de) und European IT Storage Ltd. (http://www.eurostor.com) bei. Wir<br />

bitten unsere Leser um freundliche Beachtung.<br />

Veranstaltungen<br />

09.09.2013<br />

2013 High Performance Computing for Wall Street<br />

New York, NY, USA<br />

http://www.flaggmgmt.com/hpc/<br />

16.-18.09.2013<br />

CloudOpen North America 2013<br />

New Orleans, LA, US<br />

http://events.linuxfoundation.org/events/cloudopennorth-america<br />

16.-18.09.2013<br />

<strong>Linux</strong>Con North America 2013<br />

New Orleans, LA, US<br />

http://events.linuxfoundation.org/events/linuxconnorth-america<br />

23.-24.09.2013<br />

Data Modeling Zone Europe<br />

Hannover, Deutschland<br />

http://www.datamodelingzone.com<br />

23.-27.09.2013<br />

DrupalCon Prague<br />

Prague, Tschechische Republik<br />

https://prague2013.drupal.org<br />

01.-03.10.2013<br />

PBS Works Users Group<br />

Garden Grove, California, USA<br />

http://www.altair.com/pbsworksug13<br />

08.-10.10.2013<br />

Data Modeling Zone America<br />

Baltimore, MD<br />

http://www.datamodelingzone.com<br />

11.-13.10.2013<br />

Ubucon 2013<br />

Heidelberg, Deutschland<br />

http://www.ubucon.de<br />

14.-19.10.2013<br />

PyCon.DE 2013<br />

Köln, Deutschland<br />

https://2013.de.pycon.org<br />

16.-18.10.2013<br />

Medientage München<br />

München , Deutschland<br />

http://www.medientage.de<br />

21.-23.10.2013<br />

CloudOpen Europe 2013<br />

Edinburgh, UK<br />

http://events.linuxfoundation.org/events/cloudopeneurope<br />

21.-23.10.2013<br />

<strong>Linux</strong>Con Europe 2013<br />

Edinburgh, UK<br />

http://events.linuxfoundation.org/events/linuxconeurope<br />

24.-25.10.2013<br />

Embedded <strong>Linux</strong> Conference Europe 2013<br />

Edinburgh, UK<br />

http://events.linuxfoundation.org/events/embeddedlinux-conference-europe<br />

28.-30.10.2013<br />

JAXConf London 2013 with Big Data Con<br />

London, UK<br />

http://jaxlondon.com<br />

02.-03.11.2013<br />

Blendiberia 2013<br />

Málaga, Spain<br />

http://3dschool.ihman.com/informacionblendiberia-2013/<br />

03.-08.11.2013<br />

USENIX LISA ’13<br />

Washington, D.C.<br />

https://www.usenix.org/conference/lisa13<br />

17.-22.11.2013<br />

Supercomputing Conference SC13<br />

Denver, CO, USA<br />

http://sc13.supercomputing.org


Impressum<br />

<strong>Linux</strong>-<strong>Magazin</strong> eine Publikation der <strong>Linux</strong> New Media, einem<br />

Geschäftsbereich der Medialinx AG<br />

Redaktionsanschrift Putzbrunner Str. 71<br />

81739 München<br />

Tel.: 089/993411-0<br />

Fax: 089/993411-99 oder -96<br />

Internet<br />

www.linux-magazin.de<br />

E-Mail<br />

redaktion@linux-magazin.de<br />

Geschäftsleitung<br />

Chefredakteur<br />

stv. Chefredakteure<br />

Redaktionsltg. Online<br />

Brian Osborn (Vorstand), bosborn@medialinx-gruppe.de<br />

Hermann Plank (Vorstand), hplank@medialinx-gruppe.de<br />

Jan Kleinert (V.i.S.d.P.), jkleinert@linux-magazin.de (jk)<br />

Markus Feilner, mfeilner@linux-magazin.de (mfe)<br />

Mathias Huber, mhuber@linux-magazin.de (mhu)<br />

Mathias Huber, mhuber@linux-magazin.de (mhu)<br />

Print- und Onlineredaktion<br />

Aktuell, Forum, Software, Kristian Kissling, kkissling@linux-magazin.de (kki)<br />

Programmierung Mathias Huber, mhuber@linux-magazin.de (mhu)<br />

Sysadmin, Know-how Markus Feilner, mfeilner@linux-magazin.de (mfe)<br />

Ständige Mitarbeiter Fred Andresen, Zack Brown, Mela Eckenfels, Heike Jurzik (hej),<br />

Charly Kühnast, Martin Loschwitz, Michael Schilli, Tim<br />

Schürmann, Mark Vogelsberger, Uwe Vollbracht, Arnold<br />

Zimprich (azi)<br />

Schlussredaktion<br />

Grafik<br />

Bildnachweis<br />

DELUG-DVD<br />

Chefredaktionen<br />

International<br />

Produktion<br />

Onlineshop<br />

Abo-Infoseite<br />

Abonnenten-Service<br />

ISSN 1432 – 640 X<br />

Jürgen Manthey<br />

Mike Gajer, Judith Erb (Art Director)<br />

xhoch4, München (Titel-Illustration)<br />

123RF.com, Fotolia.de, Photocase.com, Pixelio.de und andere<br />

Thomas Leichtenstern, tleichtenstern@linux-magazin.de (tle)<br />

<strong>Linux</strong> <strong>Magazin</strong>e International<br />

Joe Casad (jcasad@linux-magazine.com)<br />

<strong>Linux</strong> <strong>Magazin</strong>e Poland<br />

Artur Skura (askura@linux-magazine.pl)<br />

<strong>Linux</strong> <strong>Magazin</strong>e Spain<br />

Paul C. Brown (pbrown@linux-magazine.es)<br />

<strong>Linux</strong> <strong>Magazin</strong>e Brasil<br />

Rafael Peregrino (rperegrino@linuxmagazine.com.br)<br />

Christian Ullrich, cullrich@linux-magazin.de<br />

www.medialinx-shop.de<br />

www.linux-magazin.de/Produkte<br />

A.B.O. Verlagservice GmbH<br />

Gudrun Blanz (Teamleitung)<br />

abo@medialinx-gruppe.de<br />

Tel.: +49-(0)7131-2707-274<br />

Fax: +49-(0)7131-2707-78-601<br />

Preise Print Deutschland Österreich Schweiz Ausland EU<br />

No-Media-Ausgabe 4 6,40 4 7,05 Sfr 12,80 (siehe Titel)<br />

DELUG-DVD-Ausgabe 4 8,50 4 9,35 Sfr 17,— (siehe Titel)<br />

Jahres-DVD (Einzelpreis) 4 14,95 4 14,95 Sfr 18,90 4 14,95<br />

Jahres-DVD (zum Abo 1 ) 4 6,70 4 6,70 Sfr 8,50 4 6,70<br />

Mini-Abo (3 Ausgaben) 4 3,— 4 3,— Sfr 4,50 4 3,—<br />

Jahresabo No Media 4 65,20 4 71,90 Sfr 107,50 4 84,60<br />

Jahresabo DELUG-DVD 4 87,90 4 96,90 Sfr 142,80 4 99,90<br />

Preise Digital Deutschland Österreich Schweiz Ausland EU<br />

Heft-PDF Einzelausgabe 4 6,40 4 6,40 Sfr 8,30 4 6,40<br />

DigiSub (12 Ausgaben) 4 65,20 4 65,20 Sfr 84,80 4 65,20<br />

DigiSub (zum Printabo) 4 12,— 4 12,— Sfr 12,— 4 12,—<br />

HTML-Archiv (zum Abo 1 ) 4 12,— 4 12,— Sfr 12,— 4 12,—<br />

Preise Kombiabos Deutschland Österreich Schweiz Ausland EU<br />

Mega-Kombi-Abo 2 4 143,40 4 163,90 Sfr 199,90 4 173,90<br />

Profi-Abo 3 4 136,60 4 151,70 Sfr 168,90 4 165,70<br />

1<br />

nur erhältlich in Verbindung mit einem Jahresabo Print oder Digital<br />

2<br />

mit <strong>Linux</strong>User-Abo (DVD) und beiden Jahres-DVDs, inkl. DELUG-Mitgliedschaft (monatl.<br />

DELUG-DVD)<br />

3<br />

mit ADMIN-Abo und beiden Jahres-DVDs<br />

Schüler- und Studentenermäßigung: 20 Prozent gegen Vorlage eines Schülerausweises<br />

oder einer aktuellen Immatrikulationsbescheinigung. Der aktuelle Nachweis ist bei<br />

Verlän gerung neu zu erbringen. Andere Abo-Formen, Ermäßigungen im Ausland etc.<br />

auf Anfrage.<br />

Adressänderungen bitte umgehend mitteilen, da Nachsendeaufträge bei der Post nicht<br />

<strong>für</strong> Zeitschriften gelten.<br />

Pressemitteilungen<br />

Marketing und Vertrieb<br />

Mediaberatung D, A, CH<br />

presse-info@linux-magazin.de<br />

Petra Jaser, pjaser@linux-magazin.de<br />

Tel.: +49 (0)89 / 99 34 11 – 24<br />

Fax: +49 (0)89 / 99 34 11 – 99<br />

Michael Seiter, mseiter@linux-magazin.de<br />

Tel.: +49 (0)89 / 99 34 11 – 23<br />

Mediaberatung USA Ann Jesse, ajesse@linux-magazine.com<br />

und weitere Länder Tel.: +1 785 841 8834<br />

Darrah Buren, dburen@linux-magazine.com<br />

Tel.:+1 785 856 3082<br />

Pressevertrieb<br />

Druck<br />

Es gilt die Anzeigen-Preisliste vom 01.01.2013.<br />

MZV Moderner Zeitschriften Vertrieb GmbH & Co. KG<br />

Ohmstraße 1, 85716 Unterschleißheim<br />

Tel.: 089/31906-0, Fax: 089/31906-113<br />

Vogel Druck GmbH, 97204 Höchberg<br />

Der Begriff Unix wird in dieser Schreibweise als generelle Bezeichnung <strong>für</strong> die Unixähnlichen<br />

Betriebssysteme verschiedener Hersteller benutzt. <strong>Linux</strong> ist eingetragenes<br />

Marken zeichen von Linus Torvalds und wird in unserem Markennamen mit seiner<br />

Erlaubnis verwendet.<br />

Eine Haftung <strong>für</strong> die Richtigkeit von Veröffentlichungen kann trotz sorgfältiger Prüfung<br />

durch die Redaktion vom Verlag nicht übernommen werden. Mit der Einsendung von<br />

Manus kripten gibt der Verfasser seine Zustimmung zum Abdruck. Für unverlangt<br />

eingesandte Manuskripte kann keine Haftung übernommen werden.<br />

Das Exklusiv- und Verfügungsrecht <strong>für</strong> angenommene Manuskripte liegt beim Verlag. Es<br />

darf kein Teil des Inhalts ohne ausdrückliche schriftliche Genehmigung des Verlags in<br />

irgendeiner Form vervielfältigt oder verbreitet werden.<br />

Copyright © 1994 – 2013 Medialinx AG<br />

Impressum 10/2013<br />

Service<br />

www.linux-magazin.de<br />

121<br />

Krypto-Info<br />

GnuPG-Schlüssel der <strong>Linux</strong>-<strong>Magazin</strong>-Redaktion:<br />

pub 1024D/44F0F2B3 2000-05-08 Redaktion <strong>Linux</strong>-<strong>Magazin</strong><br />

<br />

Key fingerprint = C60B 1C94 316B 7F38 E8CC E1C1 8EA6 1F22 44F0 F2B3<br />

Public-Key der DFN-PCA:<br />

pub 2048R/7282B245 2007-12-12,<br />

DFN-PGP-PCA, CERTIFICATION ONLY KEY (DFN-PGP-Policy: 2008-2009)<br />

<br />

Key fingerprint = 39 D9 D7 7F 98 A8 F1 1B 26 6B D8 F2 EE 8F BB 5A<br />

PGP-Zertifikat der DFN-User-CA:<br />

pub 2048R/6362BE8B (2007-12-12),<br />

DFN-PGP-User-CA, CERTIFICATION ONLY KEY (DFN-PGP-Policy: 2008-2009)<br />

<br />

Key fingerprint = 30 96 47 77 58 48 22 C5 89 2A 85 19 9A D1 D4 06<br />

Root-Zertifikat der CAcert:<br />

Subject: O=Root CA, OU=http://www.cacert.org, CN=CA Cert Signing Authority/<br />

Email=support@cacert.org<br />

SHA1 Fingerprint=13:5C:EC:36:F4:9C:B8:E9:3B:1A:B2:70:CD:80:88:46:76:CE:8F:33<br />

MD5 Fingerprint=A6:1B:37:5E:39:0D:9C:36:54:EE:BD:20:31:46:1F:6B<br />

GPG-Schlüssel der CAcert:<br />

pub 1024D/​65D0FD58 2003-07-11 [expires: 2033-07-03]<br />

Key fingerprint = A31D 4F81 EF4E BD07 B456 FA04 D2BB 0D01 65D0 FD58<br />

uid CA Cert Signing Authority (Root CA) <br />

Autoren dieser Ausgabe<br />

Fred Andresen Halbherzige Transparenz 88<br />

Zack Brown Zacks Kernel-News 18<br />

Mela Eckenfels Klasse Konstellationen 64<br />

Holger Gantikow Endlich frei! 76<br />

Rainer Grimm Suchen und ersetzen 108<br />

Eva-Katharina Kunst Kern-Technik 102<br />

Charly Kühnast Shell <strong>für</strong> den Strand 75<br />

Martin Loschwitz Fantastisch elastisch 82<br />

Martin Loschwitz Unter einem Dach 40<br />

Martin Loschwitz Parallel entwickelt 44<br />

Jürgen Quade Kern-Technik 102<br />

Jürgen Quade Tux liest 92<br />

Michael Schilli Bewegte Reife 112<br />

Tim Schürmann Freier Übersetzer 36<br />

Dr. Udo Seidel Alteingesessene Familie 52<br />

Uwe Vollbracht Tooltipps 72<br />

Valentin Höbel Fingerspitzengefühl 96


Service<br />

www.linux-magazin.de <strong>Vorschau</strong> 02/2013 11/2013 01/2013 10/2013<br />

122<br />

<strong>Vorschau</strong><br />

11/2013 Dachzeile<br />

Volatility<br />

© Andrey Prokhorov, Fotolia.com<br />

Websites selbst erweitern<br />

Wer eine Website aufsetzt, fängt nicht mehr mit einem leeren<br />

File und einer HTML-Syntax-Referenz an: Zahlreiche Con tent<br />

Management Systems und Webframeworks sorgen <strong>für</strong> schnelle<br />

Erfolge und ein frisches Look & Feel. Die langen Featurelisten<br />

der Projekte und Produkte täuschen aber darüber hinweg, dass<br />

viele Website-Betreiber Spezialfälle abzudecken haben, <strong>für</strong> die<br />

weit und breit kein fertiges Plugin zu finden ist.<br />

Das <strong>Linux</strong>-<strong>Magazin</strong> arbeitet die teils gravierenden Unterschiede<br />

bei der Unterstützung eigener Erweiterungen heraus, indem es<br />

Programmierern <strong>für</strong> Magnolia, Joomla, Django und Ruby on<br />

Rails die Aufgabe stellt, eine Open-Data-Quelle anzuzapfen und<br />

die gewonnenen Daten <strong>für</strong>s Web Style-gerecht aufzubereiten.<br />

MAGAZIN<br />

Überschrift<br />

Das Memory-Forensik-Framework liest die Speicherabzüge von<br />

PCs aus, mit der anstehenden Version 2.3 auch die von Android-<br />

und Apple-Geräten. Der passende <strong>Magazin</strong>-Artikel wird<br />

zeigen, wie die Analyse eines Memory-Dump dabei hilft, erfolgreichen<br />

Einbrechern die Maske herunterzureißen.<br />

Klingende Brücke<br />

Audio-Video-Bridging soll die Ouvertüre <strong>für</strong> die durchgängige<br />

Digitalisierung in Tonstudios und Konferenzräumen spielen.<br />

Die Multimedia-Netzwerknorm sorgt <strong>für</strong> einheitliche Taktung,<br />

unterbrechungsfreie Übertragung und Geräte-Discovery. Erste<br />

Hardware gibt es schon, eine <strong>Linux</strong>-Implementierung bald.<br />

Leichtgewichtige Archive<br />

Ohne die Inhalte selbst in die Versionskontrolle einzuchecken,<br />

speichert Git-Annex die Metadaten großer Dateien in Git. Auf<br />

diese Weise verwaltete Datei-Archive lassen sich zum Beispiel<br />

unterwegs sehr gut nutzen. Das System kennt unterschiedliche<br />

Speicherbackends und verschlüsselt Daten, wenn nötig.<br />

Die Ausgabe 11/2013<br />

erscheint am 2. Oktober 2013<br />

© Arinas74, sxc.hu<br />

<strong>Vorschau</strong><br />

auf 10/2013<br />

Die nächste Ausgabe erscheint am 19.09.2013<br />

Optimale Office-Tools<br />

Die Arbeit mit Büroprogrammen gehört zu den ureigensten<br />

Tätigkeiten am PC. Von der Textverarbeitung über das Komplettpaket<br />

mit Tabellenkalkulation und Präsentationsprogramm<br />

bis hin zu ausgefeilten Formeleditoren verfügt ein<br />

Rechner unter <strong>Linux</strong> heute über eine ansehnliche Palette an<br />

ausgefeilten Werkzeugen.<br />

Unser Schwerpunkt in der kommenden Ausgabe nimmt nicht<br />

nur die beiden Platzhirsche Libre Office und Open Office unter<br />

die Lupe, sondern wirft zudem ein Schlaglicht auf die kl<strong>einen</strong>,<br />

aber nicht minder nützlichen Programme.<br />

<strong>Alle</strong>s im Paket<br />

Nur eine Minute dauert es im günstigsten Fall, bis der Effing<br />

Package Manager aus einem Quelltext ein fertiges RPM- oder<br />

Debian-Paket geschnürt hat – eine willkommene Hilfe <strong>für</strong> geplagte<br />

Main tainer und experimentierfreudige User.<br />

Desktop im Eigenbau<br />

<strong>Linux</strong> bietet Desktops, bei denen alles nahtlos ineinandergreift.<br />

Diese bringen jedoch unerwünschten Overhead mit sich. Mit<br />

etwas Know-how stellen Sie <strong>einen</strong> schlanken Desktop zusammen,<br />

der s<strong>einen</strong> großen Brüdern kaum nachsteht.

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!