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.