26.02.2014 Aufrufe

Linux-Magazin Packende Story (Vorschau)

Erfolgreiche ePaper selbst erstellen

Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.

06/11<br />

Anzeige:<br />

JeTzT<br />

<strong>Linux</strong> DeDicateD Server<br />

beSteLLen unD einen<br />

DynamiSchen <strong>Linux</strong> v-Server<br />

gratiS Dazu erhaLten!<br />

STRATO PRO<br />

Server-Technik, die begeistert!<br />

strato-pro.de siehe Seite 31<br />

STR0511_TKS_Dedi_Server_120x17.indd 1<br />

15.04.2011 19:21:48 Uhr<br />

Dateisysteme<br />

verschlüsseln<br />

Datenschutz für jedermann: Truecrypt,<br />

DM-Crypt oder Ecryptfs. S. 50<br />

Wochenanfang<br />

Sysadmin Charly und Cron<br />

haben so ihre Differenzen<br />

über den Montag S. 59<br />

Firmenpolitik<br />

Nutzen bringende Freiheit:<br />

Wie man ein Open-Source-<br />

Unternehmen steuert S. 72<br />

<strong>Packende</strong> <strong>Story</strong><br />

Wie aus einem wirren Software-Haufen<br />

ein dauerhaft wartbares System entsteht<br />

■ Signierte RPMs – die behüteten Schlüsselkinder S. 26<br />

■ Seit Squeeze vereinfacht Debians Source-<br />

Format 3.0 den Paketbau und die -pflege S. 32<br />

■ Conary, Zero Install Injector, Portable <strong>Linux</strong> Apps S. 38<br />

■ Need for Speed: Einzelne Gentoo-Pakete<br />

mit dem ICC statt mit GCC übersetzen S. 42<br />

■ Bei hohen Sicherheitsanforderungen geht<br />

ohne Quellcode und Audits nichts S. 46<br />

■ Archipel verwaltet Xen, KVM,<br />

Open VZ und VMware S. 66<br />

■ Haskell als Code-<br />

Musterschüler S. 94<br />

Open Search Server: Blitzschnelle Indexer-Suite mit Management-GUI und XML-API S. 60<br />

www.linux-magazin.de<br />

Deutschland Österreich Schweiz Benelux Spanien Italien<br />

4 5,95 4 6,70 sfr 11,90 4 7,00 4 7,95 4 7,95<br />

4 192587 305954 06


Professionelles<br />

Hosting<br />

Managed<br />

Server<br />

Clustersysteme<br />

Hochverfügbarkeit<br />

Disaster Recovery<br />

Zuverlässige, rund um die Uhr<br />

betreute Hostinglösungen.<br />

Vom einzelnen Server bis zum Cluster-<br />

System an verteilten Standorten.<br />

Protieren Sie von über 10 Jahren<br />

Erfahrung und unserem kompetenten<br />

Support für mehr Performance, Sicherheit<br />

und Verfügbarkeit.<br />

hostserver.de/hosting<br />

Berlin Marburg Frankfurt am Main<br />

Kontakt:<br />

030/420 200 24<br />

info@hostserver.de


Einfach entsorgt<br />

Login 06/2011<br />

Editorial<br />

Auf dem Weg zum Altpapiercontainer werden meine Arme unter der Last eines<br />

Stapels alter Softwareschachteln immer länger. Das hat auch sein Gutes, denn<br />

dann kann ich die Treppe besser sehen, die ich heruntertappe. Wer wie ich letztens<br />

umziehen will, mistet vorher schweren Herzens und schweren Schrittes aus.<br />

Einziger Trost: Beim nächsten Umzug wird alles besser, denn dank Downloads und<br />

Subscriptions stehen Softwareboxen auf der Liste der akut vom Aussterben bedrohten<br />

Alltagsutensilien. Kulturell ist das haptische Erlebnis des Brechen eines<br />

Kunststoffsiegels zu verkraften („Mit dem Öffnen der Verpackung erkennen Sie<br />

die Lizenzbedingungen…“). Zudem fallen die oft voluminösen Handbücher weg.<br />

Ich bin kein Nostalgiker, mein Leben als Anwender könnte auch ohne gedruckte<br />

Handbücher gelingen, die ich Jahre später sowieso zu einem Papiercontainer<br />

bugsieren muss. Die Praxis zeigt jedoch, dass Hersteller und freie Projekte gleichermaßen<br />

die digitale Form von Dokumentation als Einladung zum Reduzieren<br />

Jan Kleinert, Chefredakteur<br />

bis zur Unkenntlichkeit verstehen. Damit kommen die Anbieter durch, weil die Kunden keine Softwareschachtel<br />

mehr zur Kasse tragen. Früher signaliserten Größe und Gewicht der Box noch etwas über die Bereitschaft des<br />

Produzenten, seine Anwender beim Benutzen des Programms zu unterstützen – heute nicht.<br />

Nach dem Wegfall ausführlicher Handbücher geht es mir nicht mal darum, wie der viel beschworene Einsteiger<br />

seine ersten Schritte hinbekommt – die Hauptfunktionen vieler GUIs sind heute einigermaßen selbsterklärend.<br />

Das wahre Elend lauert jenseits der ausgetretenen Wege – auch für technisch fittere Anwender. Letztens wollte<br />

ich Maßlinien in Open Office Draw benutzen. Allein um herauszufinden, wie ich eine 3 mal 1 Meter große Zeichenfläche<br />

anlege, habe ich fünf Minuten gebraucht.<br />

RTFM, Read the fucking Manual, hätte man mir früher beschieden, wenn ich mich in einem Forum beschwert<br />

hätte. Heute ist „RTFM“ zu posten außer Mode – zurecht: Read the fucking what?! Die Erklärungen zu den<br />

Bemaßungsfunktionen in der Open-Office-Hilfe beginnen thematisch irgendwo und enden kurz danach. Wie<br />

die zugehörige Ebene funktioniert, hat sich mir auch nach einer Stunde nicht erschlossen. Dann habe ich das<br />

Projekt „Jan macht am PC eine einfache technische Zeichnung“ aufgegeben, die Sache mit Stift und Lineal in<br />

wenigen Minuten auf Papier erledigt und das Ergebnis eingescannt.<br />

Ich bezweifle nicht, dass „man“ in Open Office diese Arbeit ganz passabel erledigen kann – aber eben nicht<br />

„jedermann“. Vielleicht wird diese Funktion so selten benutzt, dass es nicht lohnt, ihre Usability perfekt zu<br />

gestalten. Aber genau hier entsteht die Notwendigkeit einer verständlichen und vor allem vollständigen Dokumentation!<br />

„Stiefmütterlich“ behandeln viele Projekte ihre Hilfetexte, ist oft zu lesen. Wer das schreibt, tut<br />

angesichts des lieblos-verknappten Geschreibsels Millionen Stiefmüttern tiefes Unrecht, die ihren angeheirateten<br />

Kindern jeden Morgen das Pausenbrot in den Schulranzen stecken.<br />

Ich meine, die Tendenz Programmbeschreibungen bis zur oder unter die Wahrnehmungsgrenze zu schrumpfen,<br />

führt geraden Weges in die Sackgasse: Wozu noch Dutzende neuer Features, die als Stichworte in Changelog-<br />

Dateien und sonst nirgends auftauchen?! Kaum jemand wird sie nutzen. Mit ein bisschen Weitsicht ist eine<br />

gute Dokumentation kein disponibler Kostentreiber, sondern ein Marketingmittel, das Kunden den eigentlichen<br />

Entwicklungsaufwand am Produkt erst verdeutlicht. Darum: Doku statt Produktflyer!<br />

Solche Gedanken kommen einem, der eine gefühlte Zehn-Kilo-Dbase-Schachtel drei Etagen nach unten schleppt<br />

und Handbuch für Handbuch in den Schlitz eines Altpapiercontainers plumpsen lässt.<br />

www.linux-magazin.de<br />

3


Inhalt<br />

www.linux-magazin.de 06/2011 06/2011<br />

4<br />

Windows-Anwender könnten gelb vor Neid werden: Moderne <strong>Linux</strong>-Distributionen verfügen<br />

über ein durchgängiges Update-, Abhängigkeits- und Konfliktmanagement für Programme,<br />

Bibliotheken, Treiber und den Kernel. Zum Leidwesen der Konkurrenz legen die <strong>Linux</strong>-Distributionen<br />

dauernd nach, zum Beispiel Debian Squeeze mit dem Source-Format 3.0.<br />

Aktuell<br />

Titelthema: <strong>Packende</strong> <strong>Story</strong><br />

6 News<br />

n Gnome 3 in neuem Gewand<br />

n Firefox Mobile 4 auch für Android<br />

n Zenwalk 7 mit Libre Office<br />

n Viel Neues in GCC 4.6<br />

26 RPM-Signaturen<br />

Red Hats Format im Detail: Zertifikate,<br />

GPG und MD5-Hashes ermöglichen<br />

verifizierbare Pakete im Eigenbau.<br />

32 Neues Debian-Paketformat<br />

Admins profitieren von wichtigen Neuerungen<br />

in Deb-Source 3.0, die Bau und<br />

Pflege von Software vereinfachen.<br />

42 Gentoo-Software per ICC<br />

Alles aus den zu Sourcen kompilieren,<br />

das ist die Gentoo-Idee. Bringt ein anderer<br />

Compiler als GCC mehr Performance?<br />

Meego UX: Seit dem MWC in Barcelona hat<br />

die Tablet-Ausgabe auch ein SDK.<br />

14 Zahlen & Trends<br />

n Das Ende von Groklaw<br />

n IDC: Android wird die Nummer 1<br />

n <strong>Linux</strong>tag 2011: Das Vortragsprogramm<br />

n Ubuntu lehnt unfreie Pakete ab<br />

Die FSFE zeichnet Tagesschau.de für den<br />

Einsatz freier Software aus.<br />

22 Zacks Kernel-News<br />

n Bufferbloat: Latenzprobleme im Netz<br />

n Dokumentation für Overlay-Filesysteme<br />

n Ath6kl: Bessere Aetheros-Treiber<br />

24 10 Jahre Radio Tux<br />

Shuttleworth, Maddog und mehr: Radio<br />

Tux begleitet <strong>Linux</strong> seit einer Dekade.<br />

Kein Aprilscherz:<br />

Am<br />

1.4.2001<br />

produzierte<br />

Radio Tux<br />

seine erste<br />

Sendung.<br />

Debian-Entwickler lieben das neue Format. Es<br />

bringt mehr Sicherheit und neue Möglichkeiten.<br />

38 Exotische Paketmanager<br />

Conary, Zero Install und Portable <strong>Linux</strong>.<br />

Ungewohnt, aber nicht unhandlich:<br />

Paketformate abseits des Mainstream.<br />

Service<br />

3 Editorial<br />

108 IT-Profimarkt<br />

109 Stellenanzeigen<br />

111 Seminare<br />

112 Inserenten, Veranstaltungen<br />

113 Impressum, Autoren<br />

114 <strong>Vorschau</strong><br />

PostgreSQL im Portage-System.<br />

46 Schritte zur sicheren IT<br />

Oft lohnt es sich, aus Sicherheitsgründen<br />

die komplette Unter nehmenssoftware<br />

aus den Quellen zu bauen.<br />

Software<br />

49 Einführung<br />

Auf der DELUG-DVD: Gnome 3, eine<br />

Suchmaschine, Cebit-Videos, das Beste<br />

von Radio Tux und ein O’Reilly-E-Book.<br />

50 Bitparade<br />

Titel<br />

Drei Festplattenverschlüsseler im Test:<br />

Truecrypt, DM-Crypt und Ecryptfs.<br />

56 Tooltipps<br />

Adsuck, Xchainkeys, der bessere<br />

Filemanager Pfm, Vidma und Weborf.<br />

Partclone kopiert komplette Partitionen.


Komponententyp<br />

proprietäre<br />

Open Source<br />

Community<br />

Open Source<br />

06/2011 06/2011<br />

Inhalt<br />

66 Reif für die Inseln<br />

Wer unterschiedliche Virtualisierungsserver<br />

in einem gemeinsamen Web-<br />

GUI verwalten will, sollte sich über<br />

den Newcomer Archipel informieren.<br />

72 Konzertiert<br />

Firmen, die auf freie Software setzen,<br />

müssen wissen, wie sie Com munities<br />

dirigieren. Wichtig dabei: Soziale Kompetenz<br />

und Führungspersonal.<br />

102 Heiße Rhythmen<br />

Perl liest die Datenbank des Medienplayers<br />

aus, repariert sie bei Bedarf<br />

und ermittelt den richtigen Beatsper-Minute-Wert.<br />

www.linux-magazin.de<br />

5<br />

Sysadmin<br />

Forum<br />

Know-how<br />

59 Einführung<br />

Titel<br />

Wann fängt die Woche an und was hat<br />

Napoleon damit zu tun? Sys admin Charly<br />

und Cron zählen die Wochentage.<br />

60 Open Search Server<br />

Titel<br />

Die Lucene-basierte Suchmaschine<br />

durchsucht das Web, Datenbanken und<br />

Files und überzeugt mit einem umfangreichen<br />

Webinterface.<br />

72 Freie Projekte steuern<br />

Titel<br />

Welche Möglichkeiten Softwareherstellern<br />

bleiben, um Open-Source-<br />

Projekte in die gewünschte Richtung<br />

zu lenken.<br />

Entwicklungskosten<br />

reduzieren<br />

soziale<br />

Führung<br />

soziale<br />

Führung<br />

Geschäftsziele<br />

möglichst viele<br />

Kunden erreichen<br />

Wettbewerb<br />

minimieren<br />

<br />

Eigentum an<br />

der Domain<br />

Kontrolle über<br />

Copyright,<br />

Marke,<br />

Entwicklung<br />

soziale Führung,<br />

Eigentum an<br />

Domain, strategische<br />

Positionierung<br />

Kontrolle über<br />

Marke,<br />

Entwicklung,<br />

Strategie<br />

<br />

Closed-Source-Firma Single-Vendor-OSS-Firma Open-Source-Distributor<br />

86 Kern-Technik 57<br />

Das Crypto-API des Kernels verschlüsselt<br />

Dateien und berechnet sichere Hashes.<br />

DM-Crypt IPsec<br />

...<br />

Hash-Transform<br />

Compress-Transform<br />

Festplattenverschlüsselung<br />

Verschlüsselte Kommunikation<br />

»/usr/src/linux/crypto/api.c«<br />

Crypto-API<br />

»/usr/src/linux/crypto/algapi.c«<br />

Asynchronous-Blockcipher-Transform<br />

AEAD-Transform<br />

Cipher-Transform<br />

Blockcipher-Transform<br />

AES 3DES MD5 Zlib ...<br />

Verschlüsselung<br />

Kompression<br />

Hashsummen<br />

Sonstiges (Zufallszahlen)<br />

Abstrahierte Verschlüsselungsalgorithmen<br />

im Crypto-Layer des <strong>Linux</strong>-Kerns.<br />

Der richtige Hebel: Kontrollpunkte und<br />

Steuer mechanismen für OSS-Hersteller.<br />

78 Rechtsrat<br />

Leser fragen, der <strong>Linux</strong>-<strong>Magazin</strong>-<br />

Ratgeber antwortet: Urheberrecht,<br />

Verträge und Lizenzen.<br />

Programmieren<br />

94 Haskell<br />

Titel<br />

Die funktionale Programmiersprache<br />

macht den Code kurz und knackig.<br />

Monitoring-Tools zeigen, wie der Open<br />

Search Server die <strong>Linux</strong>-<strong>Magazin</strong>-Webseite<br />

aussaugt und indiziert.<br />

66 Archipel<br />

Titel<br />

Ganz auf Jabber-XMPP setzt Archipels<br />

Cloud-Management. Via Chatprotokoll<br />

steuert der Admin seine Xen-, KVM,- oder<br />

VMware-Hypervisoren und -Instanzen..<br />

82 Bücher<br />

Zwei umfassende Werke<br />

über die ungewöhnliche<br />

Programmiersprache<br />

Haskell.<br />

83 Leserbriefe<br />

Auf den Punkt gebracht.<br />

Kann seinen Ursprung in der Mathematik nicht<br />

verleugnen: Haskell glänzt durch Kürze.<br />

102 Perl-Snapshot<br />

Perlmeister Schillis Skripte analysieren<br />

und archivieren Musik und kollaborieren<br />

mit dem Mediaplayer Banshee.<br />

Eine 1-Hz-Sinuskurve mit einer Abtastrate<br />

von 44 100 Hz im Zweikanal-Rohformat.


Aktuell<br />

www.linux-magazin.de News 06/2011<br />

6<br />

News<br />

Gnome 3 im neuen Gewand<br />

Die Release von Gnome 3<br />

bedeutet für das Projekt den<br />

bislang größten Umbau der<br />

vergangenen neun Jahre,<br />

heißt es bedeutungsschwer<br />

in der Ankündigung des Projekts.<br />

Das Nutzerinterface sei<br />

ebenso revolutionär wie die<br />

neuen Features, schreiben die<br />

Entwickler. Die Gnome-Shell<br />

sei komplett für die jeweilige<br />

Aufgabenstellung angepasst,<br />

so das Gnome-Designteam.<br />

Der Nutzer soll sich damit<br />

weitgehend ungestört von Benachrichtigungen<br />

und Hintergrundfenstern<br />

seiner Aufgabe<br />

widmen können.<br />

Ein damit verknüpftes Feature<br />

ist der Schnellzugriff über die<br />

Gnome in neuen Kleidern mit übersichtlicher Anordnung und App-Anmutung.<br />

[Windows]-Taste der Tastatur.<br />

Ein verbesserter Dateimanager,<br />

geteilte Fensteransichten<br />

und ein komplettes Redesign<br />

der Systemeinstellungen zählen<br />

zu den weiteren Änderungen<br />

des <strong>Linux</strong>-Desktops.<br />

Gnome 3 bringe darüber hinaus<br />

bessere Anbindung an<br />

die Hardware, ein neues API,<br />

Verbesserungen der Suche,<br />

der Messaging-Funktionen<br />

und verschlankte Bibliotheken<br />

mit. Miguel de Icaza, einer<br />

der Gnome-Gründer, ist<br />

begeistert: „Ich könnte mit<br />

dem Resultat nicht glücklicher<br />

sein.“<br />

In Gnome 3 stecken fünf Jahre<br />

Arbeit, und Jon McCann, einer<br />

der Gnome-Shell-Designer<br />

lobt daran besonders, dass die<br />

ganze Entwicklung offen abgelaufen<br />

sei. Jede Entscheidung,<br />

gute und auch schlechte,<br />

sei transparent gewesen.<br />

McCann hält dieses offene<br />

Entwicklungsmodell für den<br />

richtigen Weg, um in einer<br />

großen Community die besten<br />

Resultate zu erzielen. Download<br />

und Einblick in Gnome 3<br />

gibt es auf der eigenen Seite:<br />

[http://​www.​gnome3.​org] n<br />

Firefox Mobile 4 für Android<br />

Mit der mobilen Ausgabe des<br />

Firefox-Browsers für Android-<br />

Geräte und Maemo-Handys<br />

hat Mozilla die nächste große<br />

Release nach dem Desktop-<br />

Browser Firefox 4 auf den<br />

Weg gebracht. Der ehemals<br />

als Fennec bekannte Browser<br />

für mobile Geräte bringt laut<br />

den Entwicklern die überarbeitete<br />

Javascript-Engine Jägermonkey<br />

mit.<br />

Firefox Mobile synchronisiert<br />

nach dem Vorbild des großen<br />

Bruders auf Wunsch Bookmarks,<br />

Tabs und Passwörter<br />

mit anderen Firefox-Instanzen.<br />

Die Zahl verfügbarer Add ons<br />

liegt bei über 100, deren Auswahl<br />

im Addon-Manager soll<br />

bereits auf Kompatibilität mit<br />

dem jeweiligen Android-Gerät<br />

getrimmt sein.<br />

Mozilla verspricht Bedienkomfort,<br />

den die Entwickler<br />

strikt an den kleinen Displays<br />

der Smartphones ausgerichtet<br />

haben. Vollbilddarstellungen,<br />

Zoom und im Hintergrund<br />

verschwindende Menüs sind<br />

ein sichtbarer Teil davon. Der<br />

Awesome-Screen mit der Möglichkeit,<br />

wie bei einer Suchmaschine<br />

bereits beim Eintippen<br />

von URLs Vorschläge aus<br />

der History, den Favoriten und<br />

Bookmarks zu bekommen,<br />

zählt ebenso dazu wie das<br />

Setzen von Bookmarks mit<br />

einem einzigen Touch.<br />

Firefox Mobile bringt keine<br />

Unterstützung für Adobe<br />

Flash. Entwickler Matt Brubeck<br />

erklärt, dass die Flash-<br />

Integration für eine spätere<br />

Version geplant sei. Zuvor<br />

müsse man sich mit Adobe<br />

abstimmen, denn<br />

das Flash-Plugin<br />

für Android nutze<br />

einige nicht standardmäßige<br />

Interfaces,<br />

die speziell<br />

für die Webkit-Bibliothek<br />

ab Android<br />

2.2 entwickelt<br />

seien. Die übrigen<br />

Features von Firefox Mobile 4<br />

sind unter [http://www.mozilla.<br />

com/en-US/mobile/features/]​ zusammengefasst.<br />

Den Download<br />

gibt es mit dem Smartphone<br />

über den Android-Market<br />

oder die Mozilla-Firefox-<br />

Seite: [http://​www.​mozilla.​com/​<br />

​en-US/​mobile/​download/] n<br />

Funktioniert im Quer- wie im Hochformat: Der<br />

mobile Firefox 4 auf Android.


Texmaker 3.0 mit umgebautem GUI<br />

Texmaker, ein freier GUI-<br />

Editor für den Textsatz mit<br />

Latex, ist in Version 3.0 mit<br />

neuen Features erhältlich.<br />

Die Benutzeroberfläche hat<br />

sich merklich verändert: Der<br />

Editor verwendet keine Tabs<br />

mehr und der PDF-Betrachter<br />

ist nun in das Hauptfenster<br />

integriert. Ebenfalls neu: Die<br />

Tastenkombination [Strg]+<br />

[Leertaste] schaltet zwischen<br />

Editor und PDF-Viewer um.<br />

Zudem ist die Präambel eines<br />

Latex-Dokuments nun einklappbar<br />

und der Anwender<br />

kann jetzt die automatische<br />

Vervollständigung von Kommandos<br />

mit eigenen Einträgen<br />

erweitern. Eine detaillierte<br />

Liste der Änderungen findet<br />

sich im Changelog.<br />

Texmaker ist in C++ und Qt<br />

umgesetzt und bietet Codevervollständigung,<br />

Rechtschreibprüfung,<br />

Code Folding,<br />

eine Strukturansicht, Unicode-<br />

Unterstützung sowie Wizards<br />

für Tabellen und ähnliche<br />

Layout-Bestandteile. Die Software<br />

ist GPL-lizenziert und<br />

steht auf der Homepage [http://​<br />

​www.​xm1math.net/texmaker/]​ in<br />

mehreren <strong>Linux</strong>-Paketformaten<br />

sowie für Windows und<br />

Mac OS X bereit.<br />

n<br />

Zenwalk 7.0 – ohne HAL, mit Libre Office<br />

Die Desktop-Distribution Zenwalk<br />

bietet in Version 7.0 neue<br />

Pakete und verzichtet dafür<br />

auf den Hardware Abstraction<br />

Layer (HAL) zugunsten von<br />

Udev/ GIO. Zudem haben die<br />

Macher Libre Office 3.3.1 als<br />

Büroprogramm gewählt. Begründung:<br />

Libre Office habe<br />

sich beim Testen als zuverlässiger<br />

gezeigt als Open Office.<br />

Der Xfce-Desktop ist in der<br />

neuen Version 4.8.1 enthalten,<br />

der Kernel trägt die Versionsnummer<br />

2.6.37.4. Icecat<br />

3.6.15 und Icedove 3.0.4 zählen<br />

ebenfalls zur aufgefrischten<br />

Software.<br />

Die Entwickler verzichten zudem<br />

auf das Current-Repository.<br />

Um einer Zenwalk-Ausgabe<br />

die passenden Pakete und<br />

Aktualisierungen zu liefern,<br />

hat das Team stattdessen ein<br />

neues, auf die jeweilige Version<br />

zugeschnittenes Repository<br />

eingeführt, das Extrapakete<br />

vorhält, die dort angebotenen<br />

Anwendungen tragen das<br />

Siegel „Certified compatible“.<br />

Experimentellen Charakter<br />

behält aber nach wie vor das<br />

Snapshot-Repository.<br />

In der Ankündigung für Version<br />

7.0 von Zenwalk unter<br />

[http://​www.​zenwalk.​org/​modules/​<br />

​news/​article.​php?​storyid=126] sind<br />

auch die Download-Links und<br />

die Liste der Änderungen enthalten.<br />

n<br />

News 06/2011<br />

Aktuell<br />

www.linux-magazin.de<br />

7<br />

Ubuntu GNU/<strong>Linux</strong><br />

<strong>Linux</strong>-Server<br />

Texmaker im neuen Layout für breite Bildschirme. Der PDF-Viewer ist rechts ins<br />

Hauptfenster eingebettet.<br />

1.150 S., 6. Auflage, mit 2 DVDs, 39,90 €<br />

» www.GalileoComputing.de/2751<br />

815 S., 2011, 49,90 €<br />

» www.GalileoComputing.de/2205<br />

Jboss Developer Studio 4<br />

Version 4 des neu vorgestellten<br />

Jboss Developer Studio<br />

von Red Hat versteht sich besser<br />

mit den Funktionen der<br />

Java Server Faces 2.0. Red Hat<br />

passte zu dem Zweck sein Developer<br />

Studio an den Visual<br />

Page Editor der Java Server<br />

Faces an. Die Basis der Entwicklersoftware<br />

bildet Eclipse<br />

3.6 Helios. Eine Technologievorschau<br />

von Java Contexts<br />

and Dependency Injection<br />

(CDI) zeigt das Entwicklerstudio<br />

ebenfalls.<br />

Eine kostenlose Version steht<br />

nach vorheriger Registrierung<br />

unter [http://​devstudio.​jboss.​com/​<br />

​download/] zum Download bereit.<br />

Zusammengepackt mit<br />

Red Hat Enterprise <strong>Linux</strong> und<br />

der Jboss Enterprise Application<br />

Platform kostet die Portfolio<br />

Edition von Jboss Developer<br />

Studio dann rund 100<br />

US-Dollar.<br />

n<br />

<strong>Linux</strong>-Know-how<br />

<strong>Linux</strong>-Server einrichten<br />

und administrieren<br />

900 S., mit DVD, 39,90 €<br />

» www.GalileoComputing.de/2443<br />

www.GalileoComputing.de<br />

Debian GNU/<strong>Linux</strong><br />

Ende Juni<br />

im Handel!<br />

820 S., 4. Auflage, mit DVD, 39,90 €<br />

» www.GalileoComputing.de/2510<br />

Wissen, wie’s geht.


Aktuell<br />

www.linux-magazin.de News 06/2011<br />

8<br />

Fusion Directory forkt Gosa2<br />

Einige Entwickler von Gosa2,<br />

einer LDAP-basierten<br />

Verwaltungssoftware für IT-<br />

Infrastrukturen, haben ein<br />

eigenes Projekt abgezweigt.<br />

Die Software namens Fusion<br />

Directory ist nun in der Version<br />

1.0 verfügbar, sie basiert<br />

auf dem Quellcode von Gosa2<br />

2.6.12. Fusion Directory 1.1<br />

soll dann später mit Gosa2 2.7<br />

gleichziehen.<br />

Die Gründer des Fork möchten<br />

die Entwicklung der Software<br />

in geringerer Abhängigkeit<br />

von der Gonicus GmbH,<br />

die maßgeblich hinter dem<br />

GPLv2-lizenzierten Gosa2<br />

steht, fortführen.<br />

Übersichtlich: Die Hauptmenü-Ansicht von Fusion Directory.<br />

Wie das Mutterprojekt verwaltet<br />

Fusion Directory Benutzer<br />

und Gruppen für Unix und<br />

Samba, Dienste wie SMTP,<br />

IMAP, POP, DHCP und DNS<br />

sowie die Ausstattung von<br />

Desktop-Clients. Die Software<br />

arbeitet mit den Deployment-<br />

Lösungen FAI und Opsi zusammen.<br />

Die Version 1.0 von Fusion<br />

Directory steht jetzt auf der<br />

Projekt-Homepage [http://www.<br />

fusiondirectory.org/doku.php?id=​<br />

en:dl_install]​ als Quelltext-Tarball<br />

sowie als Paket für Debian<br />

Squeeze bereit. Der Quellcode<br />

wird in einem Github-Repository<br />

gepflegt.<br />

n<br />

Meego für Tablets samt SDK<br />

Meego in der Tablet-Ausgabe.<br />

Beim Mobile World Congress<br />

in Barcelona zunächst vorgestellt,<br />

ist Meego Tablet UX<br />

nun dem geschlossenen Alphatest<br />

entwachsen und steht<br />

samt SDK zum Download bereit.<br />

Die freie Software Meego<br />

ist unter dem Dach der <strong>Linux</strong><br />

Foundation angesiedelt. Intel<br />

fördert das Projekt.<br />

Die auf Meego 1.2 (<strong>Linux</strong>-<br />

Kernel 2.6.37) aufsetzende<br />

Oberfläche Tablet UX ist noch<br />

immer in der Testphase, dient<br />

nun aber als Technologievorschau.<br />

Sie ordnet den Desktop<br />

in Spalten und bietet dem<br />

Nutzer von dort aus Zugriff<br />

auf die Anwendungen. Der<br />

Meego-Tablet-Ansatz besteht<br />

darin, dem Nutzer Objekte<br />

wie Fotos und Musikdateien<br />

zu präsentieren und ihm beim<br />

Berühren die Auswahl der dazu<br />

passenden Anwendungen<br />

zu zeigen.<br />

Das Meego-Projekt hat laut<br />

Ankündigung [http://meego.<br />

com/downloads/releases/1.2/meego​<br />

-tablet-developer-preview]​ die<br />

Programme für die Touch-<br />

Oberfläche optimiert. Als unterstützte<br />

Hardware ist das<br />

Exo-PC-Tablet genannt, das<br />

auf der Pinetrail-Plattform<br />

von Intel aufbaut. Den Download<br />

und Hinweise zur Installation<br />

gibt es bei der <strong>Linux</strong><br />

Foundation auf den Seiten des<br />

Meego-Projekts.<br />

n<br />

Skype-Beta verbindet mit Hotspots<br />

Mit der Integration des kostenpflichtigen<br />

Hotspot-Service<br />

Skype Access wartet die Testversion<br />

von Skype 2.2 für<br />

<strong>Linux</strong> auf. Laut Anbieter ermöglicht<br />

sie es, auf potenziell<br />

rund 500 000 WLAN-Hotspots<br />

weltweit zuzugreifen, deren<br />

Nutzungsgebühren über das<br />

Skype-Guthaben abgerechnet<br />

werden. Wie gewohnt hinkt<br />

die <strong>Linux</strong>-Ausgabe bei diesem<br />

Feature der Windows-Version<br />

hinterher.<br />

Die Skype-Entwickler haben<br />

sich zudem der Beseitigung<br />

einiger Fehler gewidmet. So<br />

sollen Ubuntu-Nutzer mit der<br />

2.2 keine Probleme mehr mit<br />

konkurrierenden Einstellungen<br />

von Pulseaudio haben,<br />

bei <strong>Linux</strong>en mit KDE wiederum<br />

funktioniere jetzt der<br />

voreingestellte Oxygen-Style.<br />

Möglich sind nun auch parallele<br />

Anrufe – der Benutzer<br />

kann damit weitere Anrufe<br />

bei einer bereits bestehenden<br />

Verbindung annehmen, wenn<br />

er den aktuellen Gesprächspartner<br />

solange auf „hold“<br />

stellt. Es sind auch Dreier-<br />

Telefonkonferenzen mit den<br />

beiden Anrufern möglich.<br />

Durch aufgefrischte Bibliotheken<br />

sollen sich allgemein<br />

die Audio- und Videoqualität<br />

verbessert haben.<br />

Die Änderungen, aber auch<br />

die bestehenden Bugs, sind bei<br />

Skype unter [http://​blogs.​skype.​<br />

​com/​garage/​2011/​04/​skype_22_beta​<br />

_for_linux_with_s.​html]​nachzulesen,<br />

was sich auch dringend<br />

empfiehlt, weil einige Distributionen<br />

spezifische Probleme<br />

mit Skype haben.<br />

Dazu zählt, dass Skype sich<br />

bislang nicht auf dem kommenden<br />

Ubuntu 11.04 installieren<br />

lässt. Skype verweist<br />

bei diesem Fehler aber auf<br />

die Mängelliste von Ubuntu,<br />

wo das Problem – auch mit<br />

Programmen wie Dropbox –<br />

bereits diskutiert wird. n


1&1 DSL<br />

INTERNET<br />

UND TELEFON<br />

19, 99<br />

€/Monat *<br />

Sparpreis für volle 24 Monate,<br />

danach 24,99 €/Monat.<br />

TOP LEISTUNG<br />

MIT VIELEN<br />

EXTRAS!<br />

✓<br />

1&1 HomeServer<br />

inklusive<br />

0,– €*<br />

✓<br />

4 SIM-Karten<br />

inklusive<br />

✓ Jetzt starten und<br />

120,– € sparen<br />

0,– €* www.1und1.de<br />

Jetzt informieren und bestellen: 0 26 02 / 96 90<br />

* 120,–€ Startguthaben als Sparpreis z.B.: 1&1 Surf-Flat 6.000: 24 Monate 19,99 €/Monat, danach 24,99 €/Monat. In den meisten Anschlussbereichen verfügbar. Inklusive Internet-Flat. Inklusive Telefonie<br />

(Privatkunden): rund um die Uhr für 2,9 ct/Min. ins dt. Festnetz. Anrufe in alle dt. Mobilfunknetze 19,9 ct/Min. 1&1 HomeServer für 0,– € (Versand 9,60 €). Bis zu vier 1&1 SIM-Karten: für 0,- €/Monat,<br />

kostenlos ins dt. Festnetz und zu 1&1 Mobilfunkkunden telefonieren, in andere dt. Mobilfunknetze nur 9,9 ct/Min. (Aktivierungsgebühr: 9,60 €/SIM-Karte). 24 Monate Mindestvertragslaufzeit.


Aktuell<br />

www.linux-magazin.de News 06/2011<br />

10<br />

E-Café – ARM-Netbooks mit <strong>Linux</strong><br />

Mit dem Hercules E-Café<br />

Slim HD bringt die Guillemot<br />

Corporation ein Netbook mit<br />

10-Zoll-Display (1024 mal 600<br />

Pixel) auf den Markt, das mit<br />

2 Zentimetern in der Höhe<br />

schlank und mit 860 Gramm<br />

auch leicht ist. Das zweite<br />

Gerät, E-Café HD EX, ist bei<br />

gleicher Bildschirmdiagonale<br />

ein wenig dicker und wiegt<br />

1100 Gramm.<br />

Guillemot [http://www.hercules.<br />

com/de/ecafe/]​setzt für die Geräte<br />

sein Netbook OS genanntes<br />

<strong>Linux</strong> ein. In beiden lüfterlosen<br />

Netbooks hat der Hersteller<br />

einen ARM-Cortex-A8-<br />

Prozessor mit 800 MHz und<br />

512 MByte RAM verbaut. Die<br />

interne Speicherkapazität liegt<br />

beim Slim bei 8 GByte und<br />

beim HD bei 16 GByte. Über<br />

Speicherslots sind beide Geräte<br />

aufrüstbar. Den Netbooks<br />

gemeinsam sind drei USB-<br />

Anschlüsse, ein Mini-USB-<br />

Port, Ethernet-Anschluss,<br />

WLAN, Kopfhörer- und Mikrofonanschluss,<br />

Webcam (0,3<br />

Megapixel) mit Mikrofon und<br />

Kartenlesegerät. Die Maße:<br />

300 mal 171 mal 21 beziehungsweise<br />

28 Millimeter in<br />

der Höhe beim HD EX.<br />

Das EX besitzt zusätzlich<br />

einen HDMI-Ausgang und<br />

Multimedia-Steuertasten an<br />

den Seitenteilen und ist wegen<br />

des leistungsfähigeren<br />

Akkus mit 6800 Milliamperstunden<br />

dicker und schwerer.<br />

Die Laufzeit des Akkus gibt<br />

Hercules mit optimistischen<br />

13 Stunden an, der des Slim<br />

soll 4,5 Stunden seinen Dienst<br />

verrichten. Zur Software-Ausstattung<br />

zählen Open Office,<br />

Empathy für Instant Messaging,<br />

Gwibber für soziale<br />

Netze, Totem als Videoplayer<br />

und Rhythmbox für Audiodateien<br />

und der Firefox-Browser.<br />

Spiele und weitere Multimedia-Applikationen<br />

seien ebenfalls<br />

bereits vorinstalliert. Ein<br />

Bis zu 13 Stunden soll der Akku des HD EX durchhalten.<br />

Downloadcenter für Applikationen<br />

lässt sich als kostenfreies<br />

Repository für weitere<br />

Anwendungen nutzen. Slim<br />

HD und EX HD sollen 2011<br />

mit Erscheinen dieses Hefts<br />

für 200 Euro beziehungsweise<br />

250 Euro erhältlich sein. n<br />

Collectd 5.0.0 – neue Plugins<br />

GCC 4.6<br />

Centos 5.6<br />

Collectd, ein Daemon zum<br />

Einsammeln von Systemstatistiken,<br />

ist in Version 5.0.0<br />

mit neuen Features verfügbar<br />

und bricht zum ersten Mal<br />

seit 2007 die Rückwärtskompatibilität.<br />

Für Anwender, die<br />

ein Upgrade von Version 4.x<br />

vornehmen, gibt es daher eine<br />

Migrationsanleitung.<br />

Daneben gibt es neue Erweiterungen<br />

für die Software: Das<br />

AMQP-Plugin dient zum Austausch<br />

von Daten mit anderen<br />

Collectd-Instanzen sowie externer<br />

Software. Dabei kommt<br />

das Advanced Message Queuing<br />

Protocol ins Spiel, das unter<br />

anderem auch die Pointto-Multipoint-Kommunikation<br />

erlaubt. Das LPAR-Plugin<br />

bietet Daten über die virtuellen<br />

CPUs von IBM-Power-<br />

Systemen, das Redis-Plugin<br />

sammelt Nutzungsdaten über<br />

den Key-Value-Speicher Redis,<br />

der in Web-2.0-Anwendungen<br />

zum Einsatz kommt. Ebenfalls<br />

neu ist das Varnish-Plugin,<br />

das Statistiken über den<br />

gleichnamigen Reverse-Proxy<br />

einholt. Das Apache-Plugin<br />

eignet sich nun auch für IBMs<br />

HTTP-Server.<br />

Daneben gibt es mit Collecttg<br />

einen Traffic-Generator, der<br />

für Stresstests größerer Collectd-Setups<br />

und der Storage-<br />

Plugins gedacht ist. Die Auflösung<br />

der Statistiken ist nun<br />

nicht mehr auf den Sekundentakt<br />

beschränkt und praktisch<br />

nur noch durch die Hardware<br />

begrenzt. Weitere Details finden<br />

sich bei Collectd: [http://​<br />

​collectd.​org/​news.​shtml] n<br />

Die GNU Compiler Collection<br />

(GCC) 4.6 hat nach einem<br />

Jahr Entwicklungszeit mannigfache<br />

Änderungen erfahren.<br />

Der Compiler verspricht<br />

nun einen verbesserten Check<br />

für die Kommandozeilen-Optionen,<br />

wenn es um das Linken<br />

geht. Die Bibliothek Libquadmath<br />

hat Einzug gehalten und<br />

verspricht präzise mathematische<br />

Funktionen.<br />

Verschlankend ist die Unterstützung<br />

einiger Systeme und<br />

Ports entfallen, etwa für die<br />

Prozessor-Architekturen National<br />

Semiconductor CRX und<br />

Motorola 68HC11/ 68HC12. In<br />

den Release Notes [http://​gcc.​<br />

​gnu.​org/​gcc-4.​6/​changes.​html] finden<br />

Entwickler Näheres zu<br />

ihrer bevorzugten Sprache<br />

oder Zielplattform. n<br />

Mit Version 5.6 hat das freie<br />

Enterprise-<strong>Linux</strong> Centos zu<br />

seiner Basis Red Hat Enterprise<br />

<strong>Linux</strong> 5.6 aufgeschlossen.<br />

Centos führt nun mit dem<br />

»CentOS-Debuginfo.repo« sowie<br />

dem »CentOS-Vault.repo«<br />

zwei neue Repositories ein,<br />

die es bisher separat herunterzuladen<br />

galt. Dafür fehlt in<br />

Version 5.6 nun das Centos-<br />

Extra-Repository, das die Vorversionen<br />

noch als Menü-Eintrag<br />

und Installationsoption<br />

anboten.<br />

An neuen Paketen zählen<br />

die Release Notes [http://wiki.<br />

centos.org/Manuals/ReleaseNotes/<br />

CentOS5.6] unter anderem Bind<br />

9.7, HPlip 3 und PHP 5.3 auf.<br />

Daneben sind viele Fehlerbereinigungen<br />

in die Release<br />

eingeflossen.<br />

n


Jetzt zuschlagen!<br />

Homepage Go<br />

1blu-Homepage „Go“<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

2, 89<br />

¤/Monat*<br />

Preis gilt dauerhaft!<br />

1blu-Homepage „Go“<br />

<br />

<br />

<br />

<br />

<br />

* Preis/Monat inkl. 19% MwSt. Es fällt keine Einrichtungsgebühr an. Vertragslaufzeit jeweils 6 Monate, jederzeit<br />

kündbar mit einem Monat Frist zum Vertragsende. Bei Software-Bestellung 7,90 € Versandkosten.<br />

030 - 20 18 10 00 | nur unter www.1blu.de/go


Aktuell<br />

www.linux-magazin.de News 06/2011<br />

12<br />

Kurznachrichten<br />

LLVM-Compiler 2.8:​LLVM​lässt​sich​als​vollwertiger​Compiler​verwenden,​<br />

dient​aber​vielen​Projekten​als​Tool,​um​Code​just​in​time​zu​übersetzen,​<br />

beispielsweise​auf​Mac​OS​X​zum​Kompilieren​von​Open-GL-Shadern.​Neu:<br />

Das​LLVM-Compiler-Framework​erfüllt​nun​die​ISO-1998-​und​-2003-Standards​für​C++.​Lizenz:​BSD-artig​[http://​llvm.​org]<br />

Libvirt 0.9.0:​Die​Virtualisierungsbibliothek​legt​auf​dem​Weg​zur​1.0​einen​<br />

letzten​Zwischenstopp​ein.​Neu: Ein​neuer​VM-Treiber​macht​Gebrauch​<br />

von​der​Libxenlight,​einer​Bibliothek​zum​Zugriff​auf​Xen-VMs.​Das​neue​<br />

Feature​»cputune«​implementiert​CPU-Tuning.​Lizenz: LGPL​[ftp://​libvirt.​<br />

​org/​libvirt/]<br />

Rekonq 0.7.0:​Freier​Browser​auf​Webkit-Basis​für​KDE-Desktops.​Neu:<br />

Unterstützung​für​das​Open​Search​Framework​zur​Einbindung​von​Sitespezifischen​Websuchen.​Der​Browser​merkt​sich​die​Vergrößerungsstufen​<br />

für​jeden​Host.​Verbessertes​Cache-Management.​Lizenz:​GPLv3​[http://<br />

sourceforge.net/projects/rekonq/files/0.7.0/0.7.0/]<br />

Freeseer 2.0.0:​ Freeseer​ nimmt​ Videos​ vom​ <strong>Linux</strong>-Desktop​ sowie​ von​<br />

USB-​oder​Firewire-Geräten​auf​und​mischt​sie​mit​Klängen,​beispielsweise​<br />

von​ einem​ Mikrofon.​ Neu: Die​ Release​ speichert​ Videodaten​ in​<br />

einer​SQLite-Datenbank,​kodiert​sie​aber​auch​ins​Video.​Zum​Starten​und​<br />

Stoppen​der​Aufnahme​gibt​es​jetzt​Tastaturkürzel.​Lizenz: GPLv3​[https://<br />

github.com/fosslc/freeseer]<br />

Highlight 3.4: Highlight​erzeugt​farbige​Ausgaben​auf​dem​Terminal,​in​<br />

HTML,​RTF,​Latex,​SVG​und​in​weiteren​Formaten.​Neu: Zu​den​Neuzugängen​der​unterstützten​Sprachen​zählen​ABC,​Algol,​AS/​400-CL,​Gambas,​<br />

Transact-SQL​und​Java​FX.​Daneben​hat​der​Entwickler​Andre​Simon​die​<br />

Plugins​repariert,​die​seine​Software​in​Dokuwiki​und​die​Blogs​Wordpress​<br />

und​Serendipity​einbinden.​Lizenz: GPLv3​[http://​www.​andre-simon.​de/​<br />

​doku/​highlight/​highlight.​html]<br />

Quartz 2.0: Job-Scheduler​für​Java-Anwendungen.​Neu: Das​API​wurde​<br />

modernisiert,​es​verwendet​nun​Collections​und​Generics.​Daneben​haben​<br />

die​ Entwickler​ einige​ Methoden​ verborgen​ und​ eine​ Domain​ Specific​<br />

Language​(DSL)​für​die​Arbeit​mit​Jobs​und​Triggers​geschaffen.​Lizenz:<br />

Apache-2.0-Lizenz​[http://​www.​quartz-scheduler.​org/]<br />

Xwiki 3.0:​In​Java​umgesetztes​Open-Source-Wiki​mit​Skins​und​Plugins.​<br />

Neu: Ein​Activity-Stream​publiziert​kurze​Statusmeldungen​der​Nutzer​im​<br />

Twitter-Stil.​Ein​grafischer​Dashboard-Editor​erleichtert​die​Gestaltung.​<br />

Lizenz:​LGPLv2.1​[http://​www.​xwiki.​org/​xwiki/​bin/​view/​Main/​Download]<br />

LM-Sensors 3.3.0:​LM-Sensors​überwacht​Hardwaredaten​und​besteht​<br />

aus​ der​ Bibliothek​ Libsensors,​ dem​ Kommandozeilentool​ Sensors​ und​<br />

dem​Daemon​Sensord.​Neu: Stellt​auch​das​Öffnen​des​Gehäuses​sowie​<br />

Feuchtigkeitssensoren​ unter​ Überwachung.​ Für​ bestehende​ Sensoren​<br />

gibt​es​neue​Attribute,​Coretemp​findet​nun​alle​CPUs​im​System.​Lizenz:​<br />

LGPLv2.1​[http://​lm-sensors.​org/]<br />

Foresight <strong>Linux</strong> 2.5.0: Foresight​<strong>Linux</strong>​verwendet​das​Rolling-Release-<br />

Modell,​ nach​ dem​ sich​ die​ Distribution​ fortlaufend​ aktualisiert.​ Neu:<br />

Aktuelle​Desktopumgebungen​mit​Gnome​2.32.1,​KDE​4.6.1​und​Xfce​4.8.​<br />

Als​Kernel​kommt​die​Version​2.6.35.11​zum​Einsatz​Lizenz:​GPL​[http://​<br />

​www.​foresightlinux.​org/]<br />

Lin-Habu 11.1 – Druckfunktion repariert und Elster jetzt ohne Java<br />

In Version 11.1 des Buchhaltungs-<br />

und Fakturierungsprogramms<br />

Lin-Habu hat der<br />

Hersteller einen Fehler in der<br />

Druckfunktion behoben. <strong>Linux</strong>-Nutzer<br />

können nun dank<br />

der überarbeiteten Bibliothek<br />

die Standarddruckfunktionen<br />

nutzen, so heißt es in der<br />

Ankündigung zur überarbeiteten<br />

Version. Außerdem bereitet<br />

sich Lin-Habu auf die<br />

für 2012 von den deutschen<br />

Steuerbehörden angekündigte<br />

Änderung vor. Eric ersetzt das<br />

dann nicht mehr unterstützte<br />

Übertragungsverfahren Coala<br />

(auch als Elster 2 bekannt).<br />

<strong>Linux</strong>-Nutzer können dieses<br />

Verfahren bereits jetzt alternativ<br />

nutzen. Vorteil von Eric<br />

sei es, dass die Bibliotheken<br />

nativ vorliegen, was den bisher<br />

nötigen Umweg über Java<br />

erspare.<br />

Der Hersteller MC Richter präsentiert<br />

unter [http://​mcrichter.​<br />

​macbay.​de/​Seiten/​Deutsch/​Pro​gram-​<br />

me/​HaBu/​Allgemein.​html] seine<br />

Buchhaltungssoftware in verschiedenen<br />

Kategorien und<br />

mit unterschiedlichen Ausstattungen.<br />

Das kleinste Softwarepaket<br />

mit dem Namen<br />

Bronze enthält lediglich die<br />

Finanzbuchhaltungssoftware<br />

und kostet rund 40 Euro. Die<br />

Habu-Software steht auch für<br />

Mac OS X und Windows zur<br />

Verfügung.<br />

n<br />

Firebug 1.7 für Firefox 4<br />

Die Macher des Webentwickler-Addon<br />

Firebug für den<br />

Mozilla-Browser haben mit<br />

Version 1.7 nicht nur die<br />

Kompatibilität mit Firefox 4<br />

hergestellt.<br />

In Firebug sind auch diverse<br />

neue Features und Verbesserungen<br />

eingeflossen, die Entwickler<br />

Jan Odvarko „Honza“<br />

in seinem Blog [http://​hacks.​<br />

​mozilla.​org/​2011/​03/​firebug-1-7-new​<br />

-features/] beschreibt.<br />

Er hebt die leichte Nutzbarkeit<br />

des DOM-Panels hervor<br />

sowie die History des Kommandozeilentools,<br />

die auf<br />

Klick ein Popup mit vorher<br />

eingegebenen Befehlen zeigt.<br />

Zudem präsentiert das Panel<br />

nun Attribute von Elementen<br />

übersichtlicher. Die Summe<br />

dieser Verbesserungen sei es,<br />

die Firebug für Webentwickler<br />

nützlich mache, schreibt Odvarko.<br />

(ofr/mhu/uba) n<br />

Die Eingabe »#Zeilennummer« springt zur gewünschten Codezeile.


WEBHOSTING · SCHULUNGEN · SUPPORT<br />

Webhosting 5.0<br />

Professionelle Hostinglösungen<br />

für maximale Leistung und Sicherheit<br />

Optimiert für TYPO3, Magento, Joomla!, ...<br />

Ihre Vorteile bei Mittwald CM Service:<br />

Unterstützung zahlreicher CMS- und E-Commerce-Lösungen<br />

Versionsupdates Ihrer Anwendungen per Mausklick<br />

Umfangreicher Sicherheitsservice für Ihre Webprojekte<br />

Nahtlose Skalierbarkeit Ihres Hostingtarifs<br />

Jetzt<br />

kostenlos<br />

30 Tage<br />

testen!<br />

Schnelle, freundliche und kompetente Unterstützung<br />

Business Hosting 5.0 Profi Hosting 5.0<br />

Managed Server 5.0<br />

Der kostengünstige Einstieg:<br />

ideal geeignet für kleine und<br />

mittlere Webseiten<br />

Bis zu 10 GB Speicherplatz<br />

und 100 GB Transfervolumen<br />

Einfache Installation und Updates<br />

Ihrer Webseiten und Onlineshops<br />

Über 20 Content Management<br />

Systeme, Onlineshops und<br />

Webanwendungen verfügbar<br />

Tägliche Datensicherung:<br />

bis zu 1 Woche verfügbar<br />

Garantierte Hostingleistung für<br />

professionelle Webprojekte:<br />

optimal für Unternehmen,<br />

Institutionen und Vereine<br />

Bis zu 4 Prozessorkerne<br />

und 2 GB Arbeitsspeicher<br />

Bis zu 100 GB Speicherplatz<br />

und 500 GB Transfervolumen<br />

Höchste Sicherheit durch eigene<br />

IP-Adresse und SSL-Zertifikat<br />

Tägliche Datensicherung:<br />

bis zu 4 Wochen verfügbar<br />

NEU: Jetzt mit 300%<br />

Magento<br />

Performance für Ihr E-Commerce<br />

Maximale Leistung durch<br />

dedizierte Markenhardware<br />

von Hewlett Packard und Intel<br />

Bis zu 16 Prozessorkerne<br />

und 128 GB Arbeitsspeicher<br />

Umfangreiche Managed-Services:<br />

Monitoring, Administration,<br />

Optimierung, Sicherheitsupdates<br />

Tägliche Datensicherung:<br />

bis zu 4 Wochen verfügbar<br />

bereits ab 4,99 € netto pro Monat* bereits ab 34,99 € netto pro Monat* bereits ab 129,- € netto pro Monat*<br />

Alle Angebote richten sich ausschließlich an Gewerbetreibende.<br />

*Die einmalige Einrichtungsgebühr für die Business und Profi Hostingpakete 5.0 beträgt 29,- € zzgl. MwSt., für die Managed Server 5.0 149,- € zzgl. MwSt. Die Vertragslaufzeiten und Abrechnungszeiträume betragen für<br />

die Business Hostingpakete 5.0 zwischen 6 und 12 Monate, für die Profi Hostingpakete 5.0 zwischen 3 und 6 Monate und für die Managed Server 5.0 zwischen 12 und 36 Monate. Automatische Vertragsverlängerung um die<br />

jeweilige Vertragslaufzeit, wenn der Vertrag nicht mit einer Frist von 30 Tagen zum Ende der jeweiligen Vertragslaufzeit gekündigt wird. Alle Angebote richten sich ausschließlich an Gewerbetreibende. Alle genannten Preise<br />

verstehen sich monatlich zzgl. MwSt.<br />

Wir beraten Sie gerne! Rufen Sie uns an.<br />

✆ 0800 / 440 3000 oder besuchen Sie uns im Internet: www.mittwald.de


Aktuell<br />

www.linux-magazin.de Zahlen & Trends 06/2011<br />

14<br />

Zahlen & Trends<br />

Quartalsmeldung: Oracle legt kräftig zu<br />

Oracle hat Ende März seine<br />

Zahlen für das dritte Quartal<br />

des Geschäftsjahres 2011 vorgelegt<br />

und meldet darin gegenüber<br />

dem Vorjahresquartal<br />

ein Umsatzwachstum von 37<br />

Prozent auf 8,8 Milliarden US-<br />

Dollar. Der Gewinn stieg um<br />

78 Prozent auf 2,1 Milliarden<br />

US-Dollar.<br />

Seit Oracle im Vorjahr Sun<br />

Microsystems geschluckt hat,<br />

werden ihre Quartalszahlen<br />

mit Spannung erwartet und<br />

nach möglichen Verdauungsproblemen<br />

durchleuchtet. Die<br />

scheint es allerdings nicht zu<br />

geben. Oracle-Präsident Safra<br />

Catz ist mit dem Quartal sehr<br />

zufrieden und zeigt sich zuversichtlich,<br />

dass die Umsatzziele,<br />

die sich das Unternehmen<br />

für das Sun-Business gesetzt<br />

hat, erreichbar sind. 1,5<br />

Milliarden Umsatz erwartet<br />

Oracle von den zugekauften<br />

Sun-Besitztümern im gesamten<br />

Geschäftsjahr 2011.<br />

Oracles Chef Larry Ellison<br />

hebt bei seiner Quartalsbilanz<br />

die besonders lukrativen<br />

mehrjährigen Verträge hervor,<br />

die Oracle in Sachen Cloud<br />

Computing mit Kunden abgeschlossen<br />

habe. Salesforce.<br />

com sei ein Beispiel für ein gewichtiges<br />

Unternehmen, das<br />

sich beim Cloud Computing<br />

komplett auf Oracle-Lösungen<br />

verlasse.<br />

n<br />

Red Hat hofft auf den Milliarden-Umsatz<br />

Das vierte Quartal mit rund<br />

245 Millionen US-Dollar Umsatz<br />

lässt Red Hat von einem<br />

Geschäftsjahr träumen, in<br />

dem der Umsatz die Milliarden-Dollar-Grenze<br />

knackt.<br />

Mit 25 Prozent mehr Umsatz<br />

im vierten Quartal und mit<br />

903 Millionen US-Dollar Umsatz<br />

im gesamten Geschäftsjahr<br />

2011 sieht CEO Jim<br />

Whitehurst Red Hat auf einem<br />

guten Weg, als erste reine<br />

Open-Source-Firma die Milliarde<br />

zu machen. Der Gewinn<br />

im vierten Quartal stieg im<br />

Vergleich zum Vorjahresquartal<br />

von 26 Millionen US-Dollar<br />

auf 33,5 Millionen an. Im gesamten<br />

Geschäftsjahr 2011 hat<br />

Red Hat 107 Millionen US-<br />

Dollar verdient, verglichen<br />

mit 87 Millionen im vorigen<br />

Geschäftsjahr.<br />

Whitehurst glaubt den Anstieg<br />

beim Jahresumsatz mit<br />

Subskriptionen um 21 Prozent<br />

auf 773 Millionen US-Dollar<br />

und die gestiegene Nachfrage<br />

in allen Segmenten jenen Kunden<br />

zuordnen zu können, die<br />

ihre IT modernisieren und für<br />

Cloud Computing umrüsten.<br />

Der personelle Ausbau der<br />

Vertriebsmannschaft und der<br />

Entwicklung habe sich ausgezahlt.<br />

Die Major-Releases<br />

von Red Hat <strong>Linux</strong> seien gut<br />

angekommen, so Finanzchef<br />

Charlie Peters.<br />

n<br />

Das Vortragsprogramm des <strong>Linux</strong>tags 2011<br />

Clouds, Virtualisierung, Technik<br />

und Fakten für Administratoren,<br />

so überschreiben die<br />

Veranstalter das Programm<br />

des <strong>Linux</strong>tags 2011. Mit über<br />

200 Vorträgen und Workshops<br />

verspricht die Konferenz in<br />

Berlin Themenvielfalt.<br />

Vom 11. bis 14. Mai gehört<br />

das Berliner Messegelände<br />

unter dem Funkturm wieder<br />

der <strong>Linux</strong>- und Open-Source-<br />

Szene. Bei den nun im Web<br />

angekündigten Vorträgen unterscheidet<br />

das neunköpfige<br />

<strong>Linux</strong>tag-Team unter anderem<br />

zwischen den Bereichen Open<br />

Source im Data Center, beim<br />

Cloud Management und bei<br />

Unternehmensapplikationen.<br />

Security, IPv6, Datenbanken<br />

und Virtualisierung sind<br />

Schwerpunkte für den Admin,<br />

Java, Software Development<br />

und Webframeworks bedienen<br />

thematisch die Entwicklergemeinde.<br />

Die Vorstellung von Projekten<br />

zum von Google ausgelobten<br />

Lunar X-Prize, bei dem es um<br />

die Entwicklung eines unbemannten<br />

Fahrzeugs für eine<br />

Mondmission geht, zählt zu<br />

den außergewöhnlichen Programmpunkten.<br />

Unter den<br />

Sprechern finden sich Wim<br />

Coekaerts, Oracles Vice President<br />

of <strong>Linux</strong> Engineering,<br />

und Bradley M. Kuhn, Executive<br />

Director der Software<br />

Feedom Conservancy, sowie<br />

Steve Coast, Gründer von<br />

Openstreetmap. Das Programm<br />

sowie Informationen<br />

zu den Sprechern und zur<br />

Messe gibt es auf der Webseite<br />

des <strong>Linux</strong>tags 2011: [http://​<br />

​www.​linuxtag.​org/​2011/] n<br />

Das üppig gefüllte Programm des <strong>Linux</strong>tags in Berlin lockte im vergangenen Jahr<br />

zahlreiche Besucher in die Vortragssäle.


Zweite Beta für Mozillas neue Lizenz<br />

Die Mozilla Foundation überarbeitet<br />

derzeit ihre Softwarebedingungen.<br />

Die Mozilla Public<br />

License (MPL) 2.0 steht nun<br />

in der zweiten Betaversion zur<br />

Diskussion. Nach zehn Jahren<br />

MPL 1.1 möchte die Organisation<br />

die Lizenz vereinfachen<br />

und modernisieren.<br />

Zu den wichtigsten Zielen der<br />

Überarbeitung gehört die Kompatibilität<br />

zur Apache-2.0-Lizenz.<br />

Sie soll den Einsatz von<br />

Apache-lizenziertem Code in<br />

Mozilla-Software vereinfachen.<br />

Daneben soll die Reform die<br />

MPL in vielen Rechtssystemen<br />

weltweit verwendbar machen<br />

und die moderne Entwicklungspraxis<br />

berücksichtigen.<br />

Um den Betrieb von Webdiensten<br />

mit freier Software<br />

wird sich die neue MPL aber<br />

nicht kümmern, anders als etwa<br />

die Affero-GPL.<br />

Kommentare aus der Community ausdrücklich erwünscht. Die Entwicklung der<br />

MPL 2.0 erfolgt in einem offenen Prozess.<br />

Die Beta 2 steht als Text,<br />

HTML und PDF unter [http://<br />

mpl.mozilla.org/participate/beta/]<br />

zur Einsicht bereit. Die Mozilla<br />

Foundation entwickelt die Lizenz-Novelle<br />

in einem offenen<br />

Prozess. Daher steht den<br />

Interessierten eine Kommentarseite<br />

zur Verfügung.<br />

Der Gnome-Entwickler und<br />

Jurist Luis Villa ist an der Revision<br />

der MPL beteiligt. Als<br />

Experiment hat er eine Version<br />

des Lizenzentwurfs geschrieben,<br />

die als FAQ [http://<br />

tieguy.org/blog/2011/03/31/mpl-beta<br />

-2-as-faq/] für Entwickler formuliert<br />

ist.<br />

n<br />

IDC-Prognose: Android wird Nummer 1<br />

Der weltweite Smartphonemarkt<br />

wächst im Jahr 2011<br />

um rund 50 Prozent, sagt der<br />

US-Marktforscher IDC voraus.<br />

In Geräten ausgedrückt sollen<br />

das rund 450 Millionen sein,<br />

verglichen mit 303 Millionen<br />

im Jahr 2010. Das Wachstum<br />

des Smartphonemarkts nimmt<br />

damit laut den Auguren rasant<br />

Fahrt auf und schlägt die<br />

erwarteten Zuwächse für herkömmliche<br />

Handys um das<br />

Vierfache.<br />

Android dürfte das führende<br />

Smartphone-OS im Jahr 2011<br />

werden, nachdem es sich im<br />

Vorjahr auf Platz zwei vorgearbeitet<br />

hat, orakelt IDC-Analyst<br />

Ramon Llamas. Dem Zusammenschluss<br />

von Nokia<br />

mit Microsoft und der daraus<br />

folgenden Verbindung von<br />

Nokia-Hardware mit dem Betriebssystem<br />

Windows Phone<br />

Smartphones mit Android – hier das<br />

Nexus S – sagt IDC eine glänzende<br />

Zukunft voraus.<br />

räumen die Analysten mittelfristig<br />

Chancen ein. Bis 2015,<br />

so IDC, könnte Windows<br />

Phon e auf Platz zwei hinter<br />

Android liegen.<br />

Um diesen prognostizierten<br />

zweiten Platz zu erreichen,<br />

sollten aber vorab Geräte auf<br />

den Markt kommen. Derzeit<br />

gibt es noch kein Nokia-Windows-Smartphone.<br />

IDC erwartet<br />

die erste entsprechende<br />

Hardware im Jahr 2012.<br />

Das Apple-Handysystem I-OS<br />

und damit auch das I-Phone<br />

sieht IDC bei etwa 15 Prozent<br />

Anteilen verharren. Symbian<br />

stirbt bis zum Jahr 2015 gänzlich<br />

aus, RIMs Blackberry-OS<br />

verliert leicht und landet in<br />

vier Jahren dann bei knapp<br />

14 Prozent. n


Aktuell<br />

www.linux-magazin.de Zahlen & Trends 06/2011<br />

16<br />

FSFE zeichnet Tagesschau.de aus<br />

Im Zeichen des Document<br />

Freedom Day haben die Free<br />

Software Foundation Europe<br />

(FSFE) und die Foundation for<br />

a Free Information Infrastructure<br />

e.V. (FFII) die Webseite<br />

der ARD-Nachrichtensendung<br />

„Tagesschau“ für den Einsatz<br />

freier Formate ausgezeichnet.<br />

Sabine Klein, stellvertretende<br />

Redaktionsleiterin von Tagesschau.de<br />

nahm die Auszeichnung<br />

in Form eines Zertifikats<br />

und einer Torte mit der Aufschrift<br />

„rOgg on!“ im ARD-<br />

Landesfunkhaus in Hamburg<br />

entgegen.<br />

Die für den Einsatz von freier<br />

Software engagierten Stiftungen<br />

loben die ARD für<br />

die Verwendung des freien<br />

Videocodecs Ogg-Theora, der<br />

wiederum den freien Zugang<br />

Einsatz von freier Software versüßt. Die FSFE überreicht Sabine Klein, der stellvertretenden<br />

Redaktionsleiterin von Tagesschau.de, die Auszeichnung.<br />

zu den Medien ermögliche.<br />

Matthias Kirschner von der<br />

FSFE wünschte sich in seiner<br />

Laudatio, dass andere Medienanstalten<br />

diesem Schritt<br />

folgen mögen.<br />

Bei Tagesschau.de seien die<br />

Videos als Ogg-Dateien vorhanden,<br />

bei Tagesschau24<br />

seien sie mittels HTML-5-Tag<br />

eingebunden. In einigen Bereichen<br />

der Website müsse<br />

der Nutzer allerdings immer<br />

noch manuell vorgehen, um<br />

eine Ogg-Datei herunterladen<br />

und mit seinem Player anschauen<br />

zu können. n<br />

Canonical stoppt kostenlosen CD-Versand<br />

Open Suse 11.2 geht in den Ruhestand<br />

Canonicals Marketingmanager<br />

Gerry Carr hat die Einstellung<br />

des Ship-It-Programms und<br />

der CD-Distributionsprogramme<br />

für Ubuntu verkündet. Im<br />

Rahmen der im Jahr 2005<br />

gestarteten Programme hat<br />

Canonical kostenlos Ubuntu-<br />

CDs verschickt, um die neue<br />

Distribution bekannt zu machen.<br />

Millionen CDs seien so<br />

in die Welt gegangen, resümiert<br />

Carr in seinem Blog. Canonical<br />

begründet den Stopp<br />

der Ship-It-Aktionen mit der<br />

inzwischen verbreiteten breitbandigen<br />

Internetanbindung<br />

der Nutzer.<br />

Mit Ubuntu 11.04 hört der CD-<br />

Versand auf. Es werde aber<br />

weiterhin CDs geben, diese allerdings<br />

will Canonical an die<br />

lokalen Ubuntu-Communities<br />

verschicken. Die so genannten<br />

Ubuntu Local Communities<br />

(Locos) können die Ubuntu-<br />

CDs dann nach eigenem Gusto<br />

an den Mann bringen oder<br />

sich kreative Wege überlegen,<br />

wie dies geschehen soll. Die<br />

örtlichen Communities, so<br />

Carr, wüssten besser, wo Bedarf<br />

an CDs sei.<br />

Canonical will eine Online-<br />

Testversion von Ubuntu aufbauen.<br />

Das Cloud-Angebot<br />

für Ubuntu sei besonders für<br />

Windows-Umsteiger gedacht,<br />

die damit einen ersten Blick<br />

auf Ubuntu werfen können. n<br />

Ladenschluss: Canonical gibt den subventionierten CD-Versand auf.<br />

Im Mai 2011 drehen die Entwickler<br />

von Open Suse der<br />

Version 11.2 den Update-Hahn<br />

zu und versorgen die <strong>Linux</strong>-<br />

Distribution nicht länger mit<br />

Security-Updates. Nach dem<br />

Fahrplan, eine Release so lange<br />

zu pflegen, bis zwei weitere<br />

Versionen veröffentlicht und<br />

weitere zwei Monate verstrichen<br />

sind, endet der Security-<br />

Support am 12. Mai. Aktuell<br />

ist Version Open Suse 11.4.<br />

James Gosling geht zu Google<br />

Im Mai verschwindet Open<br />

Suse 11.2 dann auch aus dem<br />

Buildservice in Richtung „discontinued“<br />

und von den Distributionsverzeichnissen<br />

der<br />

Open-Suse-Server, heißt es in<br />

der Ankündigung.<br />

Um Verwirrungen vorzubeugen<br />

schreibt das Projekt: Das<br />

Support-Ende betreffe nicht<br />

das von Novell mit kommerziellem<br />

Support angebotene<br />

Suse <strong>Linux</strong> Enterprise. n<br />

James Gosling, Java-Erfinder,<br />

hat bei Google angeheuert.<br />

Gosling hatte kurz nach der<br />

Übernahme von Sun Microsystems<br />

durch Oracle das<br />

Unternehmen verlassen. In<br />

seinem Blog [http://​nighthacks.​<br />

​com/​roller/​jag/​entry/​next_step_on_<br />

the_road]​meldet Gosling, dass<br />

er ab sofort bei Google arbeitet.<br />

Zuvor habe er schon einige<br />

tolle Angebote abgelehnt,<br />

schreibt er weiter, nun habe er<br />

einen etwas ausgetreteneren<br />

Pfad eingeschlagen.<br />

Eine Stellenbeschreibung<br />

scheint es für ihn nicht zu geben,<br />

er werde wohl von allem<br />

ein bisschen machen, denkt<br />

er – und ab und zu einen mürrischen<br />

Griesgram geben, fügt<br />

er augenzwinkernd an. n


Ubuntu lehnt unfreie Pakete ab<br />

Virtuelle Server<br />

Top-Performance zum Tiefpreis!<br />

Das Ubuntu Technical Board<br />

hat einstimmig einen Vorstoß<br />

abgelehnt, Software von<br />

Drittanbietern aus dem Restricted-Repository<br />

zur Standardinstallation<br />

von Ubuntu<br />

hinzuzufügen. Der Vorschlag<br />

unter [https://​bugs.​launchpad.​<br />

​net/​ayatana-design/​+bug/​723831],<br />

den Ubuntu-Installer entsprechend<br />

anzupassen, kam vom<br />

Projekt Ayatana Design. Die<br />

fünf anwesenden Mitglieder<br />

des Technical Board haben mit<br />

5:0 Stimmen gegen den Vorschlag<br />

gestimmt, der Ubuntu-<br />

Installer bleibt diesbezüglich<br />

also unverändert.<br />

Das Ansinnen der Antragsteller<br />

macht der Satz „Make Youtube<br />

work“ konkreter. Wenn<br />

sich Open-Source-Software<br />

weltweit durchsetzen solle,<br />

was das Ziel sei, hatte Ayatana<br />

Design zur Begründung<br />

angeführt, dann sei es aus<br />

Usability-Gründen nötig, den<br />

Nutzern vergleichbare Möglichkeiten<br />

wie bei proprietärer<br />

Software zu bieten. Open-<br />

Source-Software solle auch<br />

für nicht versierte User einsetzbar<br />

sein und dazu zähle,<br />

dass beispielsweise Youtube<br />

auf Anhieb funktioniere, so<br />

Ayatana Design.<br />

Das technische Gremium war<br />

aber anderer Auffassung: „A<br />

great day for freedom“, kommentiert<br />

ein Board-Mitglied<br />

und ein anderes weist darauf<br />

hin, dass die Forderung „Making<br />

Youtube just work“ sich<br />

von selbst erledigen werde,<br />

wenn HTML 5 sich durchgesetzt<br />

habe.<br />

n<br />

Pamela Jones gibt Groklaw auf<br />

Als Begleiterin und Begutachterin<br />

der jahrelangen, von<br />

SCO angetriebenen Rechtsstreitigkeiten<br />

um Unix-Rechte<br />

hat sich die von Pamela Jones<br />

gegründete Website Groklaw<br />

einen internationalen Namen<br />

gemacht. Nun stellt Groklaw<br />

die Arbeit ein.<br />

SCO habe verloren, heißt es<br />

zur Begründung, <strong>Linux</strong> habe<br />

die Krise überstanden, die<br />

SCO in die Community getragen<br />

habe. Mit dem achtjährigen<br />

Bestehen am 16. Mai<br />

sollen keine weiteren Artikel<br />

mehr auf Groklaw erscheinen,<br />

so Jones. Zwar werde es weitere<br />

juristische Schlachten zu<br />

schlagen geben – und einige<br />

seien bereits in Gange –, Groklaw<br />

werde bei diesen Auseinandersetzungen<br />

aber weniger<br />

gebraucht als im Fall SCO gegen<br />

<strong>Linux</strong>, schreibt Jones. Sie<br />

weist auch darauf hin, dass<br />

sie nicht erwartet habe, dass<br />

Groklaw eine solch große Resonanz<br />

finden würde. Der Betrieb<br />

von Groklaw habe dazu<br />

geführt, dass sie viele für sie<br />

wichtige Dinge habe hintanstellen<br />

müssen. Jetzt wolle sie<br />

wieder ein normales Leben<br />

außerhalb des öffentlichen<br />

Rampenlichts führen.<br />

Sie habe nie zuvor in ihrem<br />

Leben so hart gearbeitet wie<br />

in der Zeit für Groklaw, so<br />

Jones weiter, und es habe<br />

Spaß gemacht, nun aber fehle<br />

teilweise die Motivation. In<br />

den derzeit laufenden Gefechten<br />

zwischen Microsoft und<br />

Google/Android sei Groklaw<br />

nicht als Helfer vonnöten.<br />

Google könne so viel Beistand<br />

kaufen wie nötig.<br />

n<br />

Virtuelle Server von netclusive<br />

• bis zu 3 CPU-Kerne und 8 GB RAM<br />

• bis zu 95 GB Festplatte (RAID 10)<br />

• 5 TB Traffic inklusive<br />

• SSL-Zertifikat inklusive<br />

• voller Root-Zugriff (SSH)<br />

• 100 % Backup-Speicher<br />

• 99,9 % garantierte Verfügbarkeit<br />

• auch als Managed Server erhältlich<br />

• viele 64-Bit-Betriebssysteme nach Wahl<br />

6 Monate<br />

kostenlos<br />

danach ab 12,99 €*<br />

Jetzt kostenlos informieren unter:<br />

0800 638 2587<br />

www.netclusive.de/linux<br />

* Aktion „6 Monate kostenlos“ nur gültig bis 31.05.2011. Nach 6 Monaten regulärer monatlicher Grundpreis:<br />

VPS L 12,99 €, VPS XL 16,99 €, VPS XXL 29,99 €. Die Mindestvertragslaufzeit beträgt wahlweise 12 Monate<br />

(Aktion 6 Monate kostenlos entfällt) oder 24 Monate (6 Monate kostenlos). Abrechnung vierteljährlich.<br />

Einmalige Einrichtungsgebühr 9,99 €. Preise inkl. MwSt. Preisänderungen und Irrtümer vorbehalten.


Aktuell<br />

www.linux-magazin.de Zahlen & Trends 06/2011<br />

18<br />

Mozilla holt Thunderbird in die Labs<br />

Mitchell Baker vereinfacht die Unternehmensstruktur.<br />

Spezifikation von ODF 1.2 steht<br />

Mit der Anfang April erfolgten<br />

Anerkennung des zuständigen<br />

technischen Komitees bei Oasis<br />

hat die Spezifikation 1.2<br />

des Open-Document-Formats<br />

nun nur noch die abschließende<br />

Zustimmung von Oasis<br />

vor sich. Unter anderem will<br />

Spezifikation 1.2 den bisher<br />

ungeregelten Umgang mit Formeln<br />

und Berechnungen in<br />

Tabellen festlegen. Die Spezifikation<br />

des Komitees ist unter<br />

[http://​docs.​oasis-open.​org/​office/​<br />

​v1.​2/​cs01/​OpenDocument-v1.​2-cs01.​<br />

​html]​zu finden.<br />

Die Zustimmung des „Oasis<br />

Open Document Format for<br />

Office Applications Technical<br />

Committee“ gilt gewissermaßen<br />

als Ritterschlag für die<br />

Die Abspaltung von Mozilla<br />

Messaging in ein eigenes Unternehmen<br />

wird rückgängig<br />

gemacht. Die Mozilla-Firma<br />

werde in die Mozilla Labs integriert<br />

und nach Vollzug des<br />

Umbaus die Firma Mozilla<br />

Messaging aufgelöst, erläutert<br />

Mozillas Stiftungsvorsitzende<br />

Mitchell Baker.<br />

Messaging, Kommunikation<br />

und soziale Netze hätten zu<br />

weitreichenden Veränderungen<br />

der Webnutzung in den<br />

vergangenen Jahren geführt,<br />

resümiert Baker. Um mit diesen<br />

rasanten Entwicklungen<br />

Schritt zu halten, sei es sinnvoll,<br />

die Mozilla Labs und<br />

Mozilla Messaging zu kombinieren.<br />

Beide Teams seien im<br />

Bereich Kommunikation tätig,<br />

die Labs verstärkt in Sachen<br />

Kontaktsoftware und Identity,<br />

Mozilla Messaging maßgeblich<br />

mit dem Mailclient Thunderbird,<br />

aber auch mit Innovationen<br />

wie der Kommunikationsplattform<br />

Raindrop und der<br />

Browser-Extension F1, die dem<br />

Linktausch dient.<br />

Beim Zusammenschluss wird<br />

David Ascher in den Mozilla<br />

Labs ein Team leiten, das sich<br />

auf Online-Kommunikation<br />

und soziale Netze konzentriert.<br />

Ascher soll daneben wie<br />

bisher das Thunderbird-Team<br />

leiten, so Baker.<br />

n<br />

Verabschiedung der neuen<br />

Spezifikation des freien Dokumentenformats.<br />

Das technische<br />

Komitee hat damit seine<br />

Arbeit erledigt. Die Techniker<br />

würden sich nun Version 1.3<br />

zuwenden und auch noch einige<br />

Korrekturen an Version<br />

1.1 erledigen, schreibt der<br />

Komitee-Vorsitzende Rob Weir<br />

in einem Blogbeitrag [http://​<br />

​www.​robweir.​com/​blog/​2011/​03/​odf​<br />

-1-2-committee-specification.​html].<br />

Das Open Document Format<br />

ist dank XML-Basis von der<br />

Plattform und der jeweiligen<br />

Anwendung unabhängig. Ein<br />

erster Entwurf der Version 1.2<br />

liegt bereits seit Anfang 2009<br />

in den Händen des zuständigen<br />

Komitees.<br />

n<br />

Neues Schema für Open-Suse-Versionen<br />

Kurzfristig lädt das Unternehmen<br />

des Nagios-Gründers<br />

Ethan Galstad nach Italien<br />

ein: Zur ersten Nagios World<br />

Conference Europe am 12.<br />

Mai in Bozen. Würth Phoenix,<br />

deutsch-italienischer Spezialist<br />

für Business-Software auf<br />

Microsoft-Basis, unterstützt<br />

die Veranstaltung und ist Nagios-Partnerunternehmen.<br />

Auf<br />

dem Kongress werden neben<br />

dem Nagios-Gründer auch der<br />

Harmony für Codebeiträge<br />

Das Projekt Harmony will<br />

sich der Erstellung von einheitlichen<br />

Contributor License<br />

Agreements (CLA) widmen.<br />

Freie Software soll von den<br />

CLAs in mehrerer Hinsicht<br />

profitieren.<br />

Zum einen können Organisationen<br />

und Firmen das Angebot<br />

an vorgefertigten Agreements<br />

zur einheitlichen Regelung<br />

der Urheberrechte nutzen.<br />

Zum anderen sollen es auch<br />

Entwickler leichter haben,<br />

ihre Softwarebeiträge durch<br />

Die Distribution Open Suse<br />

führt ein neues Schema zur<br />

Nummerierung ihrer Distributions-Releases<br />

ein. Das<br />

hat der IT-Consultant Bryen<br />

Yunashko aus dem Open Suse<br />

Community Board bekannt<br />

gegeben. Bisher stand nur<br />

fest, dass das Projekt alle acht<br />

Monate eine neue Release herausgibt,<br />

also in den Monaten<br />

November, Juli und März.<br />

Unter anderem um Missverständnisse<br />

auszuräumen („Ist<br />

11.0 eine Major-Version?“) hat<br />

das Projekt über ein neues<br />

Schema abgestimmt.<br />

Der Beschluss: Version x.0<br />

entfällt, die November-Release<br />

heißt künftig x.1, jene im Juli<br />

x.2, und die März-Version<br />

bekommt die Nummer x.3.<br />

Die nächste Open Suse, die<br />

im November 2011 erscheint,<br />

wird demnach die Nummer<br />

12.1 tragen. n<br />

Nagios World Conference Europe<br />

Koordinator der Nagios-Plugin-Entwicklung<br />

Ton Voon und<br />

Michael Medin, der Schöpfer<br />

der NSCLient++-Erweiterung,<br />

erwartet.<br />

Die Agenda der Konferenz unter<br />

[http://www.wuerth-phoenix.<br />

com/en/company/event/the-agenda/]​weist<br />

außerdem Beiträge<br />

zu OTRS und DRBD aus. Die<br />

Teilnahme ist kostenlos, eine<br />

Anmeldung allerdings erforderlich.<br />

n<br />

den Dschungel der jeweiligen<br />

Vorschriften zu lotsen.<br />

Amanda Brock, Canonicals<br />

Rechtsexpertin, hat Harmony<br />

ins Leben gerufen. Erste Vorschläge<br />

für die Vereinbarungen<br />

sind unter [http://www.harmonyagreements.org]​online<br />

und<br />

stehen dort zur Diskussion.<br />

Das Projekt betont, dass es<br />

mit Apache und Eclipse große<br />

Projekte gäbe, die CLAs nutzen,<br />

mit <strong>Linux</strong> und Mozilla<br />

aber auch solche, die darauf<br />

verzichten.<br />

n


Berlin: Wettbewerb zu Open Source<br />

Der sechste Ideenwettstreit<br />

der Initiative „Berlin – Made<br />

to Create“ sucht Ideen und<br />

Lösungen auf Basis von Open<br />

Source und Open Standards.<br />

Veranstalter des Wettbewerbs<br />

sind die TSB Innovationsagentur<br />

und die Berliner Landesinitiative<br />

Projekt Zukunft. Der<br />

Wettbewerb ist mit 12 000<br />

Euro dotiert.<br />

Die Bewerbung ist ab sofort<br />

möglich, aber lokal auf die<br />

Hauptstadt begrenzt. Gesucht<br />

sind Unternehmen, Gründer<br />

sowie öffentliche und private<br />

Forschungseinrichtungen und<br />

Projekte mit Sitz in Berlin. Die<br />

Bewerbung ist bis Ende Juni<br />

möglich.<br />

Das Preisgeld teilt sich in die<br />

Kategorien „Beste Ideen“ und<br />

„Beste Praxisbeispiele“. Weitere<br />

Informationen und die<br />

Teilnahmebedingungen sind<br />

online bei der Berliner Landesinitiative<br />

Projekt Zukunft<br />

abrufbar: [http://​www.​berlin.​de/​<br />

​projektzukunft/​wettbewerbe/​berlins​<br />

-zukunft-ist-offen/]<br />

n<br />

Server-Specs von Facebook<br />

Facebook veröffentlicht im<br />

Rahmen des Open-Compute-<br />

Projekts die Spezifikationen<br />

seiner Server und lädt zum<br />

Nachbauen ein. Oberstes<br />

Design ziel war die Einsparung<br />

von Energie und damit<br />

letztlich von Kosten. Gleichzeitig<br />

sollten die Server aber<br />

auch in der Herstellung nicht<br />

zu teuer sein. Das neue Data<br />

Center verbrauchte nun 38<br />

Prozent weniger Energie bei<br />

24 Prozent geringeren Herstellungskosten.<br />

Das sei allerdings nicht nur<br />

den neuen Serverdesigns zu<br />

verdanken, sondern auch der<br />

elektrischen Infrastruktur, die<br />

mit einem Grundspannungspegel<br />

von 480 Volt deutlich<br />

weniger Energieverlust verzeichnet.<br />

Die Spezifikationen<br />

der Server sind online bei<br />

Open Compute [http://opencompute.org]​frei<br />

verfügbar. n<br />

Video-Contest der <strong>Linux</strong> Foundation<br />

Im Jahr des 20. Jubiläums von<br />

<strong>Linux</strong> lobt die <strong>Linux</strong> Foundation<br />

einen Videowettbewerb<br />

aus. Bis Anfang Juli müssen<br />

die Beiträge eingereicht sein.<br />

Um der Bedeutung des Jubiläums<br />

gerecht zu werden,<br />

sucht Linus Torvalds dann<br />

persönlich die Gewinner aus.<br />

Die Videos sollten sich mit der<br />

20-jährigen Geschichte von<br />

<strong>Linux</strong> befassen und dies in 60<br />

Sekunden.<br />

Dem Gewinner winkt eine<br />

Flugreise nebst Unterkunft<br />

zu einer <strong>Linux</strong>-Veranstaltung.<br />

Alle weiteren Details hat die<br />

<strong>Linux</strong> Foundation online<br />

[http://opencompute.org/​ auf einer<br />

Webseite zusammengetragen.<br />

Torvalds hatte im August<br />

1991 seine inzwischen legendäre<br />

Mitteilung zum späteren<br />

<strong>Linux</strong> im Usenet veröffentlicht.<br />

(jcb/ofr/mhu/uba) n


1&1. DOPPELT HOSTET BESSER.<br />

1&1 DUAL H<br />

&DOPPELT SICHER DURCH GEO-REDUNDANZ!<br />

Niemand kann sich Ausfallzeiten seiner Website leisten … Darum bietet 1&1<br />

Dual Hosting jetzt die ultimative Sicherheit der Geo-Redundanz: Ihre Website<br />

wird parallel in zwei unserer Hightech-Rechenzentren an verschiedenen Orten<br />

gehostet. Fällt Ihre Internet-Präsenz im ersten Rechenzentrum unerwartet aus,<br />

läuft sie automatisch im zweiten Rechenzentrum weiter. Selbstverständlich ohne<br />

Datenverlust.


OSTING<br />

Kein anderer Webhoster überzeugt durch so viel<br />

Kompetenz, Know-how und Qualität wie 1&1:<br />

Bei 1&1 treffen über 20 Jahre Webhosting-Erfahrung auf modernste Technik in<br />

deutschen Hochleistungs-Rechenzentren. Mehr als 1.000 IT-Profis entwickeln<br />

unsere hochwertigen Lösungen permanent weiter. NEU: Jetzt bietet Ihnen 1&1<br />

mit 1&1 Dual Hosting als weltweit erster Webhoster die doppelte Sicherheit der<br />

Geo-Redundanz. Und das alles zu unschlagbar günstigen Preisen!<br />

Doppelt sicher:<br />

Redundante Rechenzentren!<br />

Top-Performance:<br />

High-End Server!<br />

Superschnell:<br />

210 GBit/s Anbindung!<br />

Umweltschonend:<br />

Grüner Strom!<br />

NEU!<br />

1&1 DUAL UNLIMITED<br />

■ 12 Domains inklusive<br />

■ UNLIMITED Webspace<br />

■ UNLIMITEDTr a f fi c<br />

■ UNLIMITED FTP-Accounts<br />

■ UNLIMITED MySQL Datenbanken (je 1 GB)<br />

■ UNLIMITED E-Mail Postfächer (je 2 GB)<br />

■ UNLIMITED 1&1 Click & Build Apps<br />

(freie Wahl aus 65 Applikationen)<br />

■ 1&1 WebAnalytics<br />

■ 1&1 Online Office<br />

■ PHP5, PHP Dev, Zend Framework,<br />

Ruby, SSI, SSH-Zugang,<br />

git Versionsmanagement<br />

■ NEU: 99,99% Verfügbarkeit<br />

■ NEU: Geo-redundante Infrastruktur<br />

1&1 DUAL<br />

UNLIMITED<br />

14, 99<br />

€/Monat*<br />

29, 99<br />

€/Monat<br />

50% Rabatt:<br />

6 Monate 14,99 €/Monat,<br />

danach 29,99 €/Monat*<br />

Weitere Pakete auf der nächsten Seite.<br />

Alle Hosting-Lösungen im Überblick<br />

sowie viele weitere Sparangebote unter:<br />

Zukunftssicher:<br />

1.000 eigene Entwickler!<br />

0 26 02 / 96 91 0800 / 100 668 www.1und1.info<br />

* Mindestvertragslaufzeit 12 Monate. Einrichtungsgebühr 14,90 €.<br />

Preise inkl. MwSt.


Aktuell<br />

www.linux-magazin.de Kernel-News 06/2011<br />

22<br />

Zacks Kernel-News<br />

Kampf den vollen Netzwerkpuffern<br />

Unter dem Schlagwort Bufferbloat<br />

(aufgeblähte Puffer)<br />

beschäftigen sich gegenwärtig<br />

zahlreiche Entwickler mit<br />

Latenzproblemen. Manche<br />

vermuten, dass unüberlegt<br />

eingesetzte RAM-Puffer sogar<br />

das Internet als Ganzes verlangsamen.<br />

Ist eine Netzwerkverbindung<br />

völlig ausgelastet, kann ein<br />

Programmierer den Datenfluss<br />

aufrechterhalten, indem er<br />

ihn in Puffer umleitet. Sobald<br />

wieder Kapazitäten frei werden,<br />

schickt das Programm<br />

den Pufferinhalt nach.<br />

Da dieses Verfahren so praktisch<br />

und da Arbeitspeicher<br />

leicht verfügbar ist, haben<br />

auch die Entwickler von Internet-Hardware<br />

möglicherweise<br />

allzu häufig mit Puffern gearbeitet,<br />

statt sich ordentlich<br />

um das richtige Queueing<br />

und Dispatching der Pakete<br />

zu kümmern.<br />

Der Kernelentwickler John<br />

W. Linville macht nun Werbung<br />

für einen neuen Git-<br />

Zweig, der eigens für Patches<br />

und Algorithmen zur Lösung<br />

der Bufferbloat-Misere gedacht<br />

ist: [git://​git.​infradead.​org/​<br />

​debloat‐testing.​git].<br />

Theoretisch lässt sich das<br />

Problem durch entsprechend<br />

Volle Puffer, langsames Netzwerk: Dem so genannten Bufferbloat-Problem widmet<br />

sich mittlerweile eine eigene Website.<br />

geänderte Firm- und Software<br />

für Internetgeräte lösen, die<br />

die Puffer nicht mehr bis<br />

zum Anschlag füllt. Daneben<br />

könnte auch der <strong>Linux</strong>-Kernel<br />

anders mit diesen Zwischenspeichern<br />

umgehen.<br />

Auf Johns Nachricht gab es<br />

zahlreiche Reaktionen, die<br />

viele technische Details erörterten.<br />

Das Bufferbloat-Problem<br />

wird dadurch verschärft,<br />

dass die daran beteiligten<br />

Hersteller von Netzwerk-<br />

Hardware nicht gerne Fehler<br />

zugeben. Das macht es<br />

für Open-Source-Entwickler<br />

schwierig, etwas dagegen zu<br />

unternehmen. Auf jeden Fall<br />

gibt es eine Gruppe innerhalb<br />

der Kernel-Community, die<br />

hier ein ernstes Problem sieht<br />

und es beheben möchte. n<br />

Dokumentation für gestapelte Dateisysteme<br />

Atheros-Treiber<br />

Der ungarische Entwickler<br />

Miklos Szeredi hat ein Patch<br />

eingereicht, das die Overlay-<br />

Dateisysteme des Kernels dokumentiert.<br />

Diese Systeme,<br />

auch als transluzente, stapelbare<br />

oder Union-Dateisysteme<br />

bezeichnet, legen zwei Partitionen<br />

übereinander und präsentieren<br />

sie dem Anwender<br />

als eine einzige.<br />

Enthalten etwa die Partitionen<br />

A und B beide ein Verzeichnis<br />

»/home/«, so findet sich im<br />

Overlay-Dateisystem ein einziges<br />

Verzeichnis mit diesem<br />

Namen. Enthält A »/home/<br />

zbrown/« und B »/home/<br />

zacharyb/«, ergibt das im<br />

Overlay ein Homeverzeichnis,<br />

indem sich sowohl »zbrown/«<br />

als auch »zacharyb/« befinden<br />

– als lägen beide auf derselben<br />

Partition.<br />

Interessant wird es allerdings,<br />

wenn beide Partitionen je eine<br />

Datei mit dem gleichen Namen<br />

und Pfad enthalten, beispielsweise<br />

»/home/zbrown/<br />

Datei.txt«. Welche Version soll<br />

das Dateisystem dann dem<br />

Anwender präsentieren? Die<br />

Lösung besteht darin, eine<br />

der Partitionen als quasi obere<br />

und die andere als untere<br />

zu definieren. Bei Namenskonflikten<br />

zeigt das Overlay<br />

dem Benutzer dann immer<br />

die Datei der oberen Partition<br />

an, schreibt Szeredi in seinem<br />

Dokument.<br />

Randy Dunlap regte einige<br />

kleinere Korrekturen an, die<br />

Miklos in sein Patch aufnahm.<br />

Die Dokumentation findet<br />

sich unter »Documentation/<br />

filesystems/overlayfs.txt« im<br />

Kernel-Quelltext.<br />

n<br />

Der Atheros-Mitarbeiter Luis<br />

R. Rodriguez hat Verbesserungen<br />

und Bereinigungen<br />

am WLAN-Treiber »ath6kl«<br />

angekündigt. Diese können<br />

aber zu Konflikten mit anderem<br />

Code führen.<br />

Daher gibt es zur Koordination<br />

den IRC-Kanal »#ath6kl«<br />

auf Freenode und eine Wiki-<br />

Seite bei [http://​wireless.​kernel.​<br />

​org/​en/​users/​Drivers/​ath6kl]. Das<br />

Ziel besteht darin, dem Staging-Maintainer<br />

Greg Kroah-<br />

Hartman möglichst gute Patches<br />

zu schicken.<br />

n


Überarbeitete Online-Informationen<br />

Der bei Parallels beschäftigte<br />

Entwickler Rob Landley hat<br />

die Onlinedokumentation des<br />

Kernels unter [http://​kernel.​org/​<br />

​doc/] überarbeitet. Seine neue<br />

Festanstellung habe es ihm<br />

ermöglicht, die Sache anzugehen,<br />

schreibt er.<br />

Die Webseiten enthalten alle<br />

Dokumente, die er aus dem<br />

Kernel-Quelltext extrahieren<br />

konnte, sowie Informationen<br />

zum Kernel außerhalb des<br />

Quellcode, daneben Links zu<br />

relevanten Standards. Auf der<br />

Mailingliste bat er um Verbesserungsvorschläge.<br />

Rob erläutert in seiner Mitteilung,<br />

wie er die Seiten<br />

erzeugt. Unter anderem verwendet<br />

er »make htmldocs«,<br />

das Dokumentations-Target<br />

des Kernels. Unschön sei ihm<br />

dabei aufgefallen, dass viele<br />

Kernelentwickler das Erzeugen<br />

der Dokumentation offenbar<br />

vernachlässigen: Es gäbe<br />

immer wieder Patches, die das<br />

Target unbrauchbar machen,<br />

besonders in den jüngsten<br />

»-rc«-Versionen.<br />

Daneben weist Rob Landley<br />

darauf hin, dass seine Seiten<br />

die »00-INDEX«-Dateien der<br />

Dokumentationsverzeichnisse<br />

verwenden. Diese seien aber<br />

gelegentlich veraltet und gäben<br />

den Inhalt nicht korrekt<br />

an, beklagt er. Die Liste der<br />

dort fehlenden Einträge sei<br />

„wahnsinnig lang“.<br />

Er selbst finde seine Überarbeitung<br />

gut, befürchtet<br />

aber andererseits, sie könne<br />

„hübscher aussehen, als sie<br />

eigentlich ist“. Rob möchte jedenfalls<br />

weiter an den verbliebenden<br />

Problemen arbeiten.<br />

Dabei wird ihn Randy Dunlap<br />

unterstützen, der zudem<br />

gerne Patches für die Onlinedokumentation<br />

annimmt. n<br />

Chinesische Lösung<br />

Ein <strong>Linux</strong>-Liebhaber namens<br />

Harry Wei hat angeboten,<br />

die Kernel-Dokumentation<br />

in chinesischer Sprache zu<br />

pflegen. Er schreibt, er habe<br />

bereits einige Dateien übersetzt<br />

und möchte der offizielle<br />

Maintainer der Dokumentation<br />

werden. Zu diesem<br />

Zweck hat er ein Patch für die<br />

»MAINTAINERS«-Datei eingeschickt.<br />

Harry gibt in seinem Eintrag<br />

die Gruppe »xiyoulinuxkernelgroup«<br />

auf Google Groups als<br />

offizielle Mailingliste an. Ein<br />

chinesischer Diskussionsteilnehmer<br />

merkte dazu an, dass<br />

mit »linux-kernel@zh-kernel.<br />

org« bereits eine Liste existiere.<br />

Harry bestätigte das, berichtete<br />

aber, die Mailingliste<br />

sei so gut wie tot. Schließlich<br />

entschlossen sie sich, beide<br />

Listen anzugeben.<br />

Danach meldete sich Tao Ma<br />

zu Wort, der fragte, ob Harry<br />

einfach den Maintainer-Posten<br />

besetzen könne. Er habe<br />

schließlich noch nicht unter<br />

Beweis gestellt, dass er die<br />

Beiträge anderer begutachten<br />

könne.<br />

Die Betreuer-Posten in der<br />

Kernel-Community beruhen<br />

jedoch zum Großteil auf freiwilligen<br />

Meldungen. Daher<br />

antwortete Harry Wei, er sei<br />

nicht sicher, ob er ein guter<br />

Maintainer werde, wolle aber<br />

auf jeden Fall sein Bestes geben.<br />

(Zack Brown/ mhu) n


Aktuell<br />

www.linux-magazin.de Radio Tux 06/2011<br />

24<br />

Dachzeile Radio Tux feiert zehnjähriges Jubiläum<br />

Überschrift<br />

Die perfekte Welle<br />

Als vor zehn Jahren zwei Science-Fiction-Fans mit Hang zu <strong>Linux</strong> ihr eigenes Internetradio gründeten, wählten<br />

sie ausgerechnet den 1. April für die erste Sendung. Was viele für einen Scherz hielten, ist mit Höhen und Tiefen<br />

inzwischen eine feste Instanz im Open-Source-Kosmos: Radio Tux. Ulrich Bantle<br />

gart (HoRadS) produzierten wöchentlichen<br />

Format „RadioTux@HoRadS“ nahm<br />

die Produktion Fahrt auf. Interviews und<br />

News aus der Open-Source-Welt landen<br />

im „Ether Radio“. Erst im Jahr 2010 weicht<br />

die „HoRadS“-Sendung dem neuen Talk-<br />

Format.<br />

Kurz vor dem zehnjährigen Jubiläum verzeichnet<br />

Radio Tux einen Mitgliederzulauf,<br />

schafft mit Mauspet und PPP (Playing<br />

Pinguin Podcast) neue Formate und<br />

besucht so viele <strong>Linux</strong>-Events wie nie<br />

zuvor. Der Sendeplan [1] umfasst zudem<br />

die Weekly News, die themenbezogene<br />

Gesprächsrunde Binärgewitter und das<br />

Radio Tux <strong>Magazin</strong>.<br />

Abbildung 1: Thomas Steinbrecher in seinem Element: Am Mikrofon mit Interviewpartnern.<br />

Steffen Zörnig und Ingo Ebel heißen die<br />

Gründerväter, die sich nach dem Start<br />

vor zehn Jahren einem damals nicht ungewöhnlichen<br />

Problem stellen mussten:<br />

Bandbreite. Der Traffic, den die über 3000<br />

Hörer verursachten, konnte der Radio-<br />

Tux-Server nicht stemmen. Dass auch der<br />

redaktionelle Aufwand für ein Duo belastend<br />

ist, spürten die beiden ebenfalls<br />

und taten sich für die nun 14-tägig angebotenen<br />

Sendungen mit Maurice Renck<br />

zusammen, der die Website <strong>Linux</strong>4us.de<br />

mitbrachte. Neben dem Radioprogramm<br />

gab es nun eine Website, es folgte ein<br />

Printmagazin, das die Radio-Tuxer 2002<br />

aber einstampften.<br />

Devise, und die Sendungen erschienen<br />

jetzt im Monatsrhythmus. Ende 2004<br />

kam es zur Auflösung der Fusion mit<br />

<strong>Linux</strong>4us. Renck wandte sich anderen<br />

Aufgaben zu und Ingo Ebel übernahm<br />

das Ruder.<br />

Dass das Projekt in Folge von Mitarbeiterfluktuation<br />

unter chronischem Personalmangel<br />

litt, mit Qualitätsproblemen<br />

kämpfte und es trotzdem schaffte, Interviews<br />

mit Richard Stallman und Mark<br />

Shuttleworth zu produzieren, zeugt vom<br />

Durchhaltevermögen der Radiomacher.<br />

Bis 2006 dauerte die Dürreperiode.<br />

Format beweisen<br />

Geburtstagsfeier<br />

Mit einem 20-köpfigen Team um Redaktionsleiter<br />

Tobias Scholze und der Seele<br />

von Radio Tux – Ingo Ebel – gehen die<br />

Radiomacher [2] jetzt ins zehnte Jahr.<br />

Henrik Heigl, Moderator, Interviewer und<br />

für die Öffentlichkeitsarbeit zuständig,<br />

weist auf das professionell eingerichtete<br />

mobile Sendestudio hin, das – ausgerüstet<br />

mit freier Software – für Events und<br />

Veranstaltungen anfragbar ist. n<br />

Infos<br />

[1] Sendeplan Radio Tux:<br />

[http:// blog. radiotux. de/ sendeplan/]<br />

[2] Redaktion:<br />

[http:// blog. radiotux. de/ redaktion/]<br />

Wellenbewegungen<br />

Maurice Renck lotste dann als Chefredakteur<br />

die <strong>Linux</strong>4us/ Radio-Tux-Kombination<br />

durch schwierige Zeiten. Konzentration<br />

auf das Radioprogramm lautetet die<br />

Dann richtete das Projekt wieder eine Mailingliste<br />

ein, es meldeten sich Mitstreiter<br />

und Tobias Luther übernahm die Chefredaktion,<br />

Ingo Ebel und Mario Schroeder<br />

teilten sich die Gesamtleitung. Mit dem<br />

von Ingo Ebel beim Hochschulradio Stutt-<br />

Radioschnipsel<br />

DELUG-DVD<br />

Auf der Delug-DVD finden sich<br />

einige Radiobeiträge von Radio Tux, darunter<br />

die erste Sendung, ein Interview mit Mark<br />

Shuttleworth und eins mit Jon Maddog Hall.


Wie schnell<br />

können Sie Ihr<br />

Hosting ändern?<br />

JETZT NEU!<br />

MONATLICHE KÜNDIGUNGSFRIST<br />

Innerhalb von Minuten können sich die Anforderungen<br />

an einen Internetauftritt ändern. Deshalb sollte sich auch<br />

das Hosting individuell anpassen und nicht durch lange<br />

Vertragslaufzeiten unflexibel bleiben.<br />

Wir setzen unsere eigene Thomas-Krenn Serverhardware ein.<br />

Im Rechenzentrum sind alle Komponenten sofort verfügbar<br />

und schaffen somit eine Hosting-Umgebung, die sich individuell<br />

Ihren Bedürfnissen anpasst. So können wir Ihnen eine VMware<br />

VM innerhalb einer Stunde freischalten. Sie bestimmen, wo es<br />

langgeht, entscheiden über Laufzeit und Performance und das<br />

bei 99.99% Verfügbarkeit und einem 24/7 Service in deutscher<br />

Marco Escher<br />

Director Hosting . Thomas-Krenn.AG<br />

mescher@thomas-krenn.com<br />

Tel: 08551/9150-170<br />

Sprache.<br />

Hochverfügbarkeit<br />

und Flexibilität durch<br />

ab sofort<br />

IPv6<br />

Alle Infos erhalten Sie in unserer<br />

Videodokumentation auf unserer<br />

neuen Hosting-Homepage<br />

Die Thomas-Krenn.AG läßt Ihre Wünsche Wirklichkeit werden!<br />

- www.thomas-krenn.com/hosting -<br />

www.thomas-krenn.com<br />

EU: +49 (0) 8551 9150-0 · AT: +43 (0) 7282 20797-3600 · CH: +41 (0) 848 207970<br />

Made in Germany!


Titelthema<br />

www.linux-magazin.de RPMs signieren 06/2011<br />

26<br />

Signierte Pakete mit Red Hats Paketmanagement<br />

Sicher paketiert<br />

Sichere Software entwickeln ist das eine. Genauso wichtig ist es, die Programme auf verlässlichen, nachvollziehbaren<br />

Wegen zum Anwender zu bringen. Dieser Artikel zeigt, wie Entwickler RPMs erstellen, signieren, in<br />

ein Repository stellen und sie vor Fehlern oder Manipulationen durch Dritte schützen. Christoph Wickert<br />

© Kostyantine Pankin, 123RF.com<br />

<strong>Linux</strong> lebt von seiner Vielfalt, aber genau<br />

die macht es den Entwicklern bisweilen<br />

auch schwer, ihre Programme an<br />

die Besonderheiten und Unterschiede der<br />

einzelnen Distributionen anzupassen.<br />

Traditionell veröffentlichen Programmierer<br />

deshalb einfach den Quellcode und<br />

überlassen es dem Nutzer, diesen auf seinem<br />

Computer zu übersetzen, üblicherweise<br />

mit dem berühmten Dreisprung<br />

»configure; make; sudo make install«.<br />

Dabei passen die Build-<br />

Tools die Software - zumindest<br />

im Idealfall - automatisch<br />

an das jeweilige<br />

System an.<br />

Unhandlich:<br />

Source Code<br />

Das Vorgehen hat jedoch<br />

ein paar Haken: Es ist<br />

zeit- und rechenintensiv,<br />

erfordert einiges Wissen<br />

und funktioniert leider<br />

nicht immer problemlos.<br />

Deshalb setzten<br />

sich in den Neunziger<br />

Jahren vorgefertigte Binärpakete<br />

durch. Auf<br />

Suse- und Red-Hat-Systemen liegen die<br />

im RPM-Format [1] vor, was ehemals für<br />

Red Hat Paketmanagement stand, heute<br />

das rekursive Akronym „RPM Paketmanagement“<br />

abkürzt.<br />

Pakete haben viele Vorteile: Sie sind optimal<br />

auf die Distribution abgestimmt und<br />

lassen sich jederzeit per Knopfdruck installieren,<br />

aktualisieren oder auch wieder<br />

restlos entfernen. Die Ersteller können<br />

Abhängigkeiten definieren, die Paketver-<br />

waltung löst diese auf und installiert alles<br />

Notwendige, auf Wunsch auch komfortabel<br />

über das Internet.<br />

Trügerische Sicherheit<br />

In der Praxis hat dieser Komfort dazu<br />

geführt, dass sich viele Nutzer nur mehr<br />

wenig Gedanken um die Sicherheit der<br />

von ihnen installierten Pakete machen.<br />

Angesichts der umfangreichen Features,<br />

die das Paketmanagement bietet, ist das<br />

jedoch fahrlässig: Die Paketverwaltung<br />

ermöglicht es dem Softwareentwickler,<br />

bei der Installation Skripte auszuführen,<br />

um beispielsweise einen Daemon vor der<br />

Deinstallation herunterzufahren oder ihn<br />

nach einer Aktualisierung automatisch<br />

neu zu starten.<br />

Deshalb verlangen diese Skripte volle<br />

Rootrechte und lassen sich zu schädlichen<br />

Manipulationen missbrauchen. Immer<br />

wieder gab es Angriffe, wo Nutzer<br />

Pakete untergeschoben bekamen, die<br />

neben dem eigentlichen Inhalt auch böswillige<br />

Skripte enthielten.<br />

Bei Dateien aus dem Internet ist also eine<br />

gewisse Skepsis angebracht, erst recht,<br />

wenn sie nicht über die Paketverwaltung<br />

aufs System kommen, sondern via Down-<br />

Listing 1: »gpg ‐‐gen‐key«<br />

01 [...]<br />

02 gpg: enabled debug flags: memstat<br />

03 Bitte wählen Sie, welche Art von Schlüssel Sie möchten:<br />

04 (1) RSA und RSA (voreingestellt)<br />

05 (2) DSA und Elgamal<br />

06 (3) DSA (nur signieren/beglaubigen)<br />

07 (4) RSA (nur signieren/beglaubigen)<br />

08 Ihre Auswahl? 2<br />

09 DSA‐Schlüssel können zwischen 1024 und 3072 Bit lang sein.<br />

10 Welche Schlüssellänge wünschen Sie? (1024)<br />

11 Die verlangte Schlüssellänge beträgt 1024 Bit<br />

12 Bitte wählen Sie, wie lange der Schlüssel gültig bleiben soll.<br />

13 0 = Schlüssel verfällt nie<br />

14 = Schlüssel verfällt nach n Tagen<br />

15 w = Schlüssel verfällt nach n Wochen<br />

16 m = Schlüssel verfällt nach n Monaten<br />

17 y = Schlüssel verfällt nach n Jahren<br />

18 Wie lange bleibt der Schlüssel gültig? (0) 365<br />

19 Key verfällt am Mi 18 Apr 2012 05:37:07 CEST<br />

20 [...]<br />

21 gpg: Schlüssel C6B8BAFB ist als uneingeschränkt vertrauenswürdig<br />

gekennzeichnet<br />

22 Öffentlichen und geheimen Schlüssel erzeugt und signiert.<br />

23 [...]


load und lokaler Installation. Mit dem<br />

Kommando »rpm -qp --scripts Paket.rpm«<br />

einen Blick auf die Skripte zu werfen, die<br />

das Paket bei Installation ausführen will,<br />

ist da Pflicht, aber auch nur eine erste.<br />

Prüfsummen und<br />

Signaturen<br />

Nahezu alle Distributionen haben die Gefahr<br />

erkannt und treffen entsprechende<br />

Schutzvorkehrungen. Dabei geht es nicht<br />

nur um absichtliche Manipulationen,<br />

sondern in erster Linie darum, ein viel<br />

häufiger auftretendes Problem zu verhindern:<br />

Die Installation beschädigter<br />

Pakete, beispielsweise durch einen fehlerhaften<br />

Download.<br />

Per Definition enthalten RPM-Pakete in<br />

ihrem Header Prüfsummen in den Formaten<br />

SHA1 und MD5 sowie Informationen<br />

über die Dateigröße. Damit kann der<br />

Admin die Integrität eines heruntergeladenen<br />

Paketes wirkungsvoll überprüfen.<br />

Eine Authentifizierung des Herausgebers<br />

ist damit jedoch noch nicht möglich, die<br />

Quelle des Paketes bleibt vorerst im Unklaren.<br />

Die Integrität eines RPMs prüft<br />

das Kommando:<br />

$ rpm ‐‐checksig beaver‐0.4.1‐1.x86_64.rpm<br />

beaver‐0.4.1‐1.x86_64.rpm: sha1 md5 OK<br />

Wer sicherstellen will, dass ein Paket auch<br />

wirklich vom angegebenen Herausgeber<br />

stammt, greift auf dessen Signatur zurück<br />

– seriöse Entwickler signieren ihre Pakete.<br />

Genau wie bei E-Mail oder Dateien<br />

kommt hier das freie Kryptographiesystem<br />

GPG zum Einsatz. Der Entwickler<br />

erstellt als erstes ein GPG-Schlüsselpaar,<br />

mit dem er seine Pakete anschließend<br />

digital signiert. Das Erstellen des Schlüssels<br />

erledigt der Befehl »gpg --gen-key«<br />

(Listing 1).<br />

Der Anwender wählt Algorithmen, Länge<br />

und Verwendungszweck des Schlüssel<br />

aus und definiert ein Verfallsdatum. Das<br />

ist wichtig, damit Keys, die verloren gehen,<br />

automatisch inaktiv werden und<br />

nicht für immer als eigentlich nicht mehr<br />

Online PLUS<br />

Eine Anleitung zur Integration signierter<br />

Pakete mit dem Open Suse<br />

Build Service finden Sie unter: [http://www.<br />

linux-magazin.de/plus/2011/06]<br />

gültige Authentifizierungsquelle durchs<br />

Web geistern. GPG erstellt anschließend<br />

eine User-ID, die den Schlüssel identifizierbar<br />

macht, wofür es einige Zufallsdaten<br />

benötigt. Dazu verlangt es zufälligen<br />

Input an der Konsole oder mit der Maus,<br />

bevor es abschließend die Kerndaten des<br />

Keys ausgibt.<br />

Den erzeugten öffentlichen Schlüssel<br />

lädt der Entwickler mit »gpg --send-key«<br />

auf einen der offiziellen Schlüsselserver<br />

hoch (Listing 2). Welchen Server<br />

er hier verwendet, spielt keine Rolle, da<br />

die Server ihre Schlüssel untereinander<br />

austauschen.<br />

Die Buildumgebung<br />

Im nächsten Schritt geht es daran, eine<br />

passende Umgebung für den Bau der<br />

RPM-Pakete durch das Kommando Rpmbuild<br />

zu schaffen. Entwickler sollten dabei<br />

ihre Pakete niemals als Root bauen,<br />

denn ein Fehler in einer ».spec«-Datei<br />

oder einem Makefile könnten böse Folgen<br />

haben. Ganz Vorsichtige legen sogar einen<br />

dezidierten Benutzer zum Paketbau<br />

an, um ihre Dateien zu schützen.<br />

Ein »mkdir -p ~/rpmbuild/{BUILD,RPMS,<br />

SOURCES,SPECS,SRPMS}« erzeugt die<br />

passende Verzeichnisstruktur. Wer davon<br />

abweichen und beispielsweise ein anderes<br />

Directory als »~/rpmbuild« verwenden<br />

möchte, muss Rpmbuild dessen Pfad<br />

übergeben. Das erledigt am Einfachsten<br />

das Makro »%_topdir« in der Datei<br />

»~/.rpmmacros« (Listing 3). Wer will,<br />

erweitert bei dieser Gelegenheit seine<br />

Konfiguration gleich um nützliche und<br />

zum Signieren notwendige Makros [2]<br />

Ein Paket bauen<br />

In der Build-Umgebung zimmert der Entwickler<br />

jetzt sein erstes Paket, beispielsweise<br />

eines für den Editor Beaver [3],<br />

der hier auch als Beispiel für ein einfaches<br />

Programm dient. Die Spec-Datei, die<br />

den Paketbau steuert, legt der Paketierer<br />

dazu in das Verzeichnis »SPECS« und das<br />

Quellarchiv, das er von der Homepage<br />

heruntergeladen hat, in das Verzeichnis<br />

»SOURCES«. Dann startet »rpm --ba<br />

SPECS/beaver.spec« den Bau des Paketes<br />

(Abbildung 1).<br />

Das Paket lässt sich anschießend mit Rpm<br />

problemlos installieren. Leider warnt das<br />

Meine Top-Prio’s:<br />

1. Spannende Technologie-Projekte<br />

mit Open-Source-Lösungen.<br />

2. Ein starkes, kompetentes und<br />

sympathisches Team.<br />

3. Klare Perspektiven für die Zukunft.<br />

Wir suchen Leute<br />

mit den gleichen Prioritäten.<br />

Systems Engineer<br />

<strong>Linux</strong> (m/w)<br />

Daniel Bäurer<br />

Systems Engineer<br />

bei inovex<br />

Sie sind technologiebegeistert,<br />

haben mindestens 2 Jahre Erfah rung<br />

als Systems Engineer (GNU/<strong>Linux</strong> in<br />

Verbindung mit Hochverfügbarkeit,<br />

Data Center Management, Automatisierung,<br />

Virtualisierung etc.)<br />

und Spaß daran, Engineering-Projekte<br />

von A bis Z umzusetzen. Wir arbeiten<br />

u. a. für: 1&1, buch.de, Daimler,<br />

EnBW, GMX, maxdome, Porsche und<br />

WEB.DE<br />

Interessiert? Dann möchten wir<br />

Sie kennenlernen. Wir freuen uns<br />

auf Ihre Bewerbung per E-Mail<br />

an jobs@inovex.de<br />

Ihre Ansprechpartnerin ist Slavka<br />

Stofikova, Tel. 089 451 51 95 401.<br />

Mehr über uns: www.inovex.de<br />

inovex<br />

live!<br />

Besuchen Sie uns<br />

auf dem <strong>Linux</strong>Tag<br />

in Berlin<br />

11. – 14. Mai !


Titelthema<br />

www.linux-magazin.de RPMs signieren 06/2011<br />

28<br />

Konsolentool nicht wegen der fehlenden<br />

Signatur, wohl aber die Paketverwaltungen<br />

moderner Distributionen wie Yum<br />

(Listing 4), Yast oder Packagekit (Abbildung<br />

2). Während Packagekit immerhin<br />

den Anwender noch einmal um Eingabe<br />

des Rootpasswort bittet, verweigert Yum<br />

die Installation kategorisch, sofern die<br />

Überprüfung des GPG Schlüssels nicht<br />

mit der Option »--nogpgcheck« deaktiviert<br />

ist.<br />

Um diese Warnung loszuwerden, sind<br />

zwei Schritte notwendig: Der Paketbaumeister<br />

muss das Paket signieren [4] und<br />

der Benutzer den öffentlichen Schlüssel<br />

in sein System integrieren. Als erstes signiert<br />

der Ersteller das Paket mit dem<br />

Befehl »rpm --addsign«.<br />

$ rpm ‐‐addsign rpmbuild/RPMS/x86_64/U<br />

beaver‐0.4.1‐1.x86_64.rpm<br />

Bitte das Passwort eingeben:<br />

Das Passwort ist richtig.<br />

rpmbuild/RPMS/x86_64/beaver‐0.4.1‐1.U<br />

x86_64.rpm:<br />

Listing 2: »gpg ‐‐send‐key«<br />

01 $ gpg ‐‐keyserver hkp://pgp.mit.edu ‐‐send‐key<br />

C6B8BAFB<br />

02 gpg: enabled debug flags: memstat<br />

03 gpg: sende Schlüssel C6B8BAFB auf den hkp‐Server<br />

pgp.mit.edu<br />

04 random usage: poolsize=600 mixed=0 polls=0/0<br />

added=0/0 outmix=0 getlvl1=0/0 getlvl2=0/0<br />

06 secmem usage: 0/32768 bytes in 0 blocks<br />

Listing 3: »~.rpmmacros«<br />

03 %_topdir %(echo $HOME)/linux/rpmbuild<br />

04 %packager Max Mustermann <br />

05 %vendor Max Mustermann<br />

06 %_signature gpg<br />

07 %_gpg_name C6B8BAFB<br />

08 %_hkp_keyserver http://pgp.mit.edu<br />

Der Befehl akzeptiert auch Wildcards,<br />

was es möglich macht, mehrere Pakete<br />

gleichzeitig kryptografisch zu unterzeichnen,<br />

ohne das Passwort erneut von Hand<br />

eingeben zu müssen.<br />

Im Prinzip reicht ein einzelner Ordner<br />

mit signierten Paketen für Downloads<br />

aus, aber erst wenn dazu eine bestimmte<br />

Verzeichnisstruktur kommt, sprechen<br />

Entwickler von einem Repository. Vor<br />

dem Aufsetzen des „Repos“ sollte sich<br />

der Admin Gedanken darüber machen,<br />

welche Distributionen und Versionen er<br />

bedienen will. Das folgende Beispiel bietet<br />

Pakete in 32 und 64 Bit für Fedora 14<br />

an und veröffentlicht auch die passenden<br />

Quellpakete dazu. »mkdir -p repo/<br />

fedora/14/{i386,x86_64,sources}« erstellt<br />

die Ordnerstruktur, in der die fertigen<br />

Pakete landen.<br />

Repository bauen<br />

Damit die Paketverwaltung die Pakete<br />

erkennt, extrahiert »createrepo« einige<br />

Metadaten aus dem RPMs, zum Beispiel<br />

den Namen, die Version oder die Abhängigkeiten.<br />

Creatrepo ruft der Entwickler<br />

einfach im Verzeichnis mit den Paketen<br />

auf, es legt die Metadaten in dem Unterordner<br />

»repodata« ab:<br />

$ cd ~/repo/fedora/14<br />

$ for i in i386 x86_64 sources ; do<br />

> cd $i<br />

> createrepo .<br />

> cd ..<br />

> done<br />

Createrepo darf der Admin aber erst nach<br />

dem Signieren des Paketes ausführen,<br />

weil sich das Paket durch die Signatur<br />

natürlich verändert, ebenso wie seine<br />

Metadaten. Im Wurzelverzeichnis des<br />

Repositorys hinterlegt er zusätzlich zwei<br />

Dateien, die Repository-Beschreibung<br />

und den Schlüssel.<br />

Damit ein Benutzer das Lager in seine Paketverwaltung<br />

einbinden kann, braucht<br />

es eine ».repo«-Datei. Landet die auf dem<br />

Client, zum Beispiel mit Yum im Ordner<br />

»/etc/yum.repos.d/«, kann der Admin<br />

dort sofort Pakete aus dem Repository<br />

installieren. Listing 5 zeigt die ersten<br />

Zeilen einer solchen Datei. Dank des Eintrags<br />

»gpgkey« weiß die Paketverwaltung<br />

nun, welcher Schlüssel zum Signieren<br />

der Pakete diente und wo der passende<br />

Public Key zu finden ist. Der Paketersteller<br />

exportiert ihn mit dem Kommando:<br />

$ gpg ‐‐export ‐‐armor max.mustermann@U<br />

example.net > RPM‐GPG‐KEY‐Mustermann<br />

Damit die in der Repo-Datei angegebene<br />

URL auch nach dem Upload auf den Server<br />

noch stimmt, landet die Schlüsseldatei<br />

»RPM-GPG-KEY-Mustermann« direkt<br />

im Wurzelverzeichnis des Repository.<br />

Unsichere Schlüssel-<br />

Automatik für die Clients<br />

Jetzt können Clients Pakete von hier installieren.<br />

Beim ersten Versuch lädt die Paketverwaltung<br />

automatisch den Schlüssel<br />

herunter und fordert den Benutzer auf,<br />

diesen zu prüfen und fragt, ob er ihn<br />

installieren will (Abbildung 3). Manuell<br />

geht das mit:<br />

$ rpm ‐‐import http://example.net/repo/U<br />

RPM‐GPG‐KEY‐Mustermann<br />

Komfortabler, aber auch unsicherer, ist<br />

es, ein Paket zu bauen, das Konfiguration<br />

und Signaturschlüssel schon enthält.<br />

Das hat den Vorteil, dass Anwender den<br />

Listing 4: »yum localinstall«<br />

01 # yum localinstall /home/chris/rpmbuild/RPMS/x86_64/beaver‐0.4.1‐1.<br />

x86_64.rpm<br />

02 Geladene Plugins: langpacks, presto, refresh‐packagekit,<br />

03 Adding de_DE to language list<br />

04 Einrichten der lokalen Paketverarbeitung<br />

05 Untersuche /home/chris/rpmbuild/RPMS/x86_64/beaver‐0.4.1‐1.x86_64.rpm:<br />

beaver‐0.4.1‐1.x86_64<br />

06 Markiere /home/chris/rpmbuild/RPMS/x86_64/beaver‐0.4.1‐1.x86_64.rpm<br />

zum Installieren<br />

07 Löse Abhängigkeiten auf<br />

08 ‐‐> Führe Transaktionsprüfung aus<br />

09 ‐‐‐> Paket beaver.x86_64 0:0.4.1‐1 markiert, um installiert zu werden<br />

10 ‐‐> Abhängigkeitsauflösung beendet<br />

11 Abhängigkeiten aufgelöst<br />

12 =====================================================================<br />

13 Paket Arch Version Repository Grösse<br />

14 =====================================================================<br />

15 Installieren:<br />

16 beaver x86_64 0.4.1‐1 /beaver‐0.4.1‐1.x86_64 448 k<br />

17 Vorgangsübersicht<br />

18 =====================================================================<br />

19 Install 1 Package(s)<br />

20 Gesamtgrösse: 448 k<br />

21 Installed size: 448 k<br />

22 Ist dies in Ordnung? [j/N] :j<br />

23 Lade Pakete herunter:<br />

24 Paket beaver‐0.4.1‐1.x86_64.rpm ist nicht unterschrieben


RPMs signieren 06/2011<br />

Titelthema<br />

Abbildung 1: Rpmbuild baut ein Softwarepaket aus einer Spec-Datei. Die lässt<br />

sich einfach anpassen und bietet viele Möglichkeiten.<br />

Abbildung 2: Package Kit warnt den Anwender eindringlich davor, unsignierte<br />

Pakete zu verwenden, und verlangt erneut das Admin-Passwort.<br />

www.linux-magazin.de<br />

29<br />

Schlüssel nicht mehr über das Internet<br />

herunterladen müssen. Zwar stellt das<br />

RPM-Paket jetzt die Datei-Integrität sicher,<br />

und der Benutzer ist gegen DNS-<br />

Manipulationen gewappnet, aber prinzipiell<br />

kann so auch jedermann ein signiertes<br />

Paket bauen und veröffentlichen, die<br />

Signatur ist praktisch wertlos.<br />

Trotzdem kann das Vorgehen auch nützlich<br />

sein: Der Anwender bekommt automatisch<br />

Aktualisierungen für die Repository-Konfiguration,<br />

zum Beispiel wenn<br />

neue Softwareversionen auftauchen. Wer<br />

das einrichten will, ersetzt<br />

gpgkey=http://example.net/repo/RPM‐GPG‐KEY‐U<br />

Max‐Mustermann<br />

in der Repository-Definition durch:<br />

gpgkey=file:///etc/pki/rpm‐gpg/RPM‐GPG‐KEY‐U<br />

Max‐Mustermann<br />

Auch das Spec-File für dieses Paket ist<br />

recht trivial, wie Listing 6 zeigt. Der Entwickler<br />

könnte sogar noch einen Schritt<br />

weiter gehen und den Schlüssel ebenfalls<br />

automatisch durch das Paket installieren<br />

lassen. Dazu fügt er folgenden Abschnitt<br />

zur Spec-Datei hinzu:<br />

%post<br />

rpm ‐‐import etc/pki/rpm‐gpg/RPM‐GPG‐KEY‐U<br />

Max‐Mustermann || :<br />

1. Lernen Sie!<br />

Ja, ã training-on-the-jobÒ , oft praktiziert, aber nicht<br />

Ÿ berzeugend. Denn die Kollegen haben nie Zeit<br />

fŸ r echte ErklŠ rungen, au§ erdem werden ã NeueÒ<br />

sofort von dem vereinnahmt, was im Unternehmen<br />

schon seit Ewigkeiten tradiert wird. Warum gibt's<br />

seit 2000 Jahren Schulen und UniversitŠ ten?<br />

ã LERNENÒ ist eine vollwertige TŠ tigkeit, auf die<br />

man sich konzentrieren mu§ , die man nicht 'mal<br />

eben so nebenbei tun kann, und die immer auch<br />

eine Prise ã ErneuerungÒ beinhalten sollte!<br />

2. Ineffiziente Arbeit nicht akzeptieren!<br />

Je spezialisierter Sie arbeiten, desto weniger<br />

echte, fachliche Kollegen haben Sie in Ihrem eigenen<br />

Unternehmen. Wir stellen deshalb Gruppen<br />

zusammen, in denen Sie neben hilfsbereiten<br />

Kollegen mit Š hnlichen Kenntnissen an IHREM<br />

Projekt arbeiten. Und stŠ ndig ist ein fachlicher Berater<br />

anwesend.<br />

ã Guided CoworkingÒ nennen wir das, und es<br />

kš nnte DIE Lš sung fŸ r so manches Projekt sein,<br />

das in Ihrer Firma ã haktÒ .<br />

3. Hintergrund<br />

Wer den riesigen OpenSource-Baukasten schnell<br />

beherrschen mu§ , geht zu einer unserer Ÿ ber 100<br />

Schulungen. Wer das bereits kann, aber schneller<br />

mit seinen Projekten vorankommen will, der<br />

kommt mit seiner Arbeit zum Guided Coworking.<br />

Wir sind eine der erfolgreichsten Schulungseinrichtungen<br />

im gesamten Bereich ã OpenSourceÒ<br />

- sowohl fŸ r Admins, als auch fŸ r Entwickler.<br />

Siehe www.linuxhotel.de


Titelthema<br />

www.linux-magazin.de RPMs signieren 06/2011<br />

30<br />

Der vollautomatische Import des Schlüssels<br />

ist aber nicht immer erwünscht, eigentlich<br />

sollte der Benutzer den Schlüssel<br />

ja prüfen und bestätigen, ansonsten hält<br />

sich der Sicherheitsgewinn in Grenzen.<br />

Bitte bestätigen<br />

Wenn jetzt der Entwickler noch die Authentizität<br />

des Paketes garantiert, das den<br />

Schlüssel enthält, ist der Anwender auf<br />

der sicheren Seite. Dafür gibt es leider<br />

nur den altmodischen Weg über eine<br />

Prüfsumme aus beispielsweise SHA1 sum,<br />

wiederum per GPG-Schlüssel signiert:<br />

$ sha1sum mustermann‐release‐1.0‐1.fc14U<br />

.noarch.rpm > SHA1SUM<br />

$ gpg ‐‐textmode ‐‐detach‐sign ‐‐local‐userU<br />

C6B8BAFB SHA1SUMS<br />

Auch die beiden Dateien »SHA1SUMS«<br />

und »SHA1SUMS.sig« muss der Admin<br />

jetzt zum Download bereitstellen.<br />

Damit wäre theoretisch die Kette des Vertrauens<br />

komplett: Ein garantiert authentisches<br />

Paket installiert die Konfiguration,<br />

01 [...]<br />

05 [max‐mustermann]<br />

06 name=Max Mustermann's RPM packages<br />

07 baseurl=http://example.net/repo/fedora/<br />

$releasever/$basearch/<br />

08 enabled=1<br />

09 skip_if_unavailable=1<br />

10 gpgcheck=1<br />

11 gpgkey=http://example.net/repo/<br />

RPM‐GPG‐KEY‐Mustermann<br />

12<br />

die es ermöglicht,<br />

weitere authentische<br />

Pakete zu installieren.<br />

Fazit<br />

Listing 5: »/etc/yum.repos.d/mustermann.repo«<br />

Mit RPM sichere Pakete<br />

zu erzeugen ist<br />

keine Hexerei. Mit<br />

ein paar zusätzlichen Handgriffen lassen<br />

sich Pakete signieren und vor Manipulationen<br />

auf dem Weg zum Client schützen.<br />

Das Verfahren ist einfach und lässt sich<br />

mit wenig Aufwand automatisieren.<br />

Enterprise-Distributionen wie SLES und<br />

RHEL mit ihren Signaturen bieten hier<br />

prinzipiell die gleiche Sicherheit wie<br />

die Community-Distributionen, weil die<br />

verwendeten Tools identisch sind. Jeder<br />

Admin, der selbst Pakete baut, kann<br />

– eine gewisse Umsicht vorausgesetzt –<br />

ebenso sichere Software bauen wie ein<br />

Distributor, solange er die Grundregeln<br />

beachtet. Die Qualität und Länge der<br />

Schlüssel liegt beim Eigenbau vollständig<br />

13 [max‐mustermann‐sources]<br />

14 name=Max Mustermann's RPM packages ‐ Sources<br />

15 baseurl=http://example.net/repo/fedora/<br />

$releasever/sources/<br />

16 enabled=1<br />

17 skip_if_unavailable=1<br />

18 gpgcheck=1<br />

19 gpgkey=http://example.net/repo/<br />

RPM‐GPG‐KEY‐Mustermann<br />

20 [...]<br />

Abbildung 3: Die neue Paketquelle ist dem System noch nicht bekannt, beim<br />

ersten Zugriff muss der Admin deshalb die Echtheit der Signatur bestätigen.<br />

in der Hand des Admins, ebenso ist es<br />

sein Job, sichere und vertrauenswürdige<br />

Kanäle bereit zu stellen, über die die Dateien<br />

an den Anwender gelangen.<br />

Genau da liegt aber der größte Vorteil, den<br />

die Enterprise-Distributionen für sich verbuchen<br />

können: Sie haben zertifizierte<br />

und signierte Pakete schon an Bord. Wem<br />

die nicht reichen, der muss das Risiko<br />

selbst schultern. (mfe)<br />

n<br />

Infos<br />

[1] RPM Trac: [http://www.rpm.org]<br />

[2] RPM Macros : [http://fedoraproject.org/<br />

wiki/Packaging/ RPMMacros]<br />

[3] Beaver:<br />

[http://beaver‐editor.sourceforge.net]<br />

[4] Pakete signieren:<br />

[http://www. rpm. org/max‐rpm/<br />

s1‐rpm‐pgp‐signing‐packages.html]<br />

Der Autor<br />

Christoph Wickert ist aktiver Mitarbeiter verschiedener<br />

<strong>Linux</strong>‐ und FOSS‐Projekte. Dazu gehören<br />

Fedora, die „One Laptop Per Child“‐Initiative,<br />

XFCE und LXDE. Seit 2010 arbeitet er als Release‐<br />

Manager bei der Kolab Systems AG.<br />

Listing 6: »mustermnn‐release.spec«<br />

01 Name: mustermann‐release<br />

02 Version: 1.0<br />

03 Release: 1%{?dist}<br />

04 Summary: Max Mustermann's RPM packages<br />

05 Summary(de): Max Mustermanns RPM Pakete<br />

06<br />

07 Group: System Environment/Base<br />

08 License: GPLv2<br />

09 URL: http://example.net/repo<br />

10 Source0: mustermann.repo<br />

11 Source1: RPM‐GPG‐KEY‐Mustermann.asc<br />

12 BuildRoot: %{_tmppath}/%{name}‐<br />

%{version}‐%{release}‐root‐%(%{__id_u} ‐n)<br />

13 BuildArch: noarch<br />

14<br />

15 %description<br />

16 This package contains the repository<br />

definiton and signing keys for Max<br />

17 Mustermann's RPM packages.<br />

18<br />

19 %description ‐l de<br />

20 Dieses Pakete enthält die Informationen und<br />

GPG Schlüssel für Max Mustermanns<br />

21 RPM Pakete.<br />

22<br />

23 %prep<br />

24 # nichts zu entpacken<br />

25<br />

26 %build<br />

27 # nichts zu bauen<br />

28<br />

29 %install<br />

30 rm ‐rf %{buildroot}<br />

31 install ‐Dpm 0644 %{SOURCE0} %{buildroot}%<br />

{_sysconfdir}/yum.repos.d/mustermann.repo<br />

32 install ‐Dpm 0644 %{SOURCE1} %{buildroot}<br />

%{_sysconfdir}/pki/rpm‐gpg/<br />

RPM‐GPG‐KEY‐Mustermann<br />

33<br />

34 %clean<br />

35 rm ‐rf %{buildroot}<br />

36<br />

37 %files<br />

38 %defattr(‐,root,root,‐)<br />

39 %doc<br />

40 %{_sysconfdir}/pki/rpm‐gpg/<br />

RPM‐GPG‐KEY‐Mustermann<br />

41 %{_sysconfdir}/yum.repos.d/mustermann.repo<br />

42<br />

43 %changelog<br />

44 * Sun Apr 17 2011 Max Mustermann ‐ 1.0‐1<br />

45 ‐ Initial release


STRATO PRO<br />

Server-Technik, die begeistert!<br />

Jetzt noch mehr Flexibilität und<br />

Unabhängigkeit für Ihre Projekte:<br />

Jetzt <strong>Linux</strong> Dedicated<br />

Server bestellen und einen<br />

dynamischen <strong>Linux</strong> V-Server<br />

gratis dazu erhalten!<br />

Aktion nur bis 31.05.2011<br />

BUY<br />

1 GET<br />

FREE<br />

Dedicated-Server<br />

V-Server<br />

Schon ab 29 € * monatlich<br />

Telefon: 0 18 05 - 00 76 77<br />

(0,14 €/Min. aus dem dt. Festnetz, Mobilfunk max. 0,42 €/Min.)<br />

strato-pro.de<br />

*Mindestvertragslaufzeit 12 Monate, einmalige Einrichtungsgebühr 49 €, Preise inkl. MwSt.


Titelthema<br />

www.linux-magazin.de Debian Src 3.0 06/2011<br />

32<br />

Dachzeile Das neue Sourceformat für Debian-Pakete<br />

Überschrift<br />

Zusammenpacken!<br />

Debian 6.0 enthält neben vielen angenehmen Features für Endnutzer auch eine wichtige Neuerung für Entwickler:<br />

das Source-Paketformat 3.0. Admins profitieren vom 3.0-Format durch neue Funktionen, die Bau und<br />

Pflege ihrer Pakete vereinfachen. Martin Loschwitz<br />

enthält dann alle Veränderungen, die<br />

der Paketbauer am originalen Quelltext<br />

während des Paketierungsvorgangs vorgenommen<br />

hat.<br />

Zu den beiden Dateien gesellt sich eine<br />

dritte mit der Endung ».dsc«, die den<br />

Namen des Quellpakets sowie Informationen<br />

wie etwa die MD5- und SHA-Checksummen<br />

und zusätzlich die Größe der<br />

beiden zuvor erwähnten Dateien enthält.<br />

Sie ist vom Paketbauer zu signieren und<br />

landet bei offiziellen Paketen mit den<br />

zwei anderen Dateien auf dem Debian-<br />

FTP-Server.<br />

© Helder Almeida, 123RF.com<br />

Die Veröffentlichung von Debian GNU/<br />

<strong>Linux</strong> 6.0 (Squeeze) ist für Admins von<br />

Debian-Systemen ein freudiges Ereignis.<br />

Denn Squeeze bringt neben Verbesserungen<br />

für den laufenden Betrieb auch<br />

essenzielle Neuerungen für all jene mit,<br />

die von der eigenen Software Debian-Pakete<br />

erstellen oder als Debian-Entwickler<br />

fertige Software für Debian vorbereiten:<br />

Dpkg in Squeeze beherrscht das Source-<br />

Paketformat 3.0 und bietet damit eine<br />

ganze Latte an Funktionen und Gimmicks,<br />

die das Verpacken von Software<br />

bequem machen. Der folgenden Artikel<br />

berichtet, welche Vorteile das neue Paketformat<br />

bringt.<br />

Was noch immer gilt<br />

Die Änderungen an Dpkg in Squeeze betreffen<br />

nur das Format der Sourcen eines<br />

Debian-Pakets. An den Binärpaketen ändert<br />

sich wenig: Noch immer handelt es<br />

sich bei ».deb«-Dateien um Ar-Archive<br />

der Version 2, die mit »ar x« ihren Inhalt<br />

preisgeben. Sie bestehen wie gewohnt<br />

aus den TGZ-Archiven »binary.tar.gz«<br />

und »control.tar.gz« und einer Textdatei<br />

namens »debian-binary«.<br />

Zwar sind im Lauf der Jahre ein paar optionale<br />

Felder im »control«-File eines Pakets<br />

dazugekommen, wer nachschauen<br />

möchte, findet sie in »control.tar.gz«.<br />

Diese Optionen betreffen die meisten<br />

Entwickler aber nicht.<br />

Maßgeblich sind die Veränderungen an<br />

den Dateien, aus denen später fertige<br />

».deb« entstehen. Wer sich schon mit<br />

dem Debian-Paketing befasst hat, weiß:<br />

Die Quellen eines Pakets umfassen die<br />

originalen Quellen eines Programms. Sie<br />

liegen in Form eines TGZ-Archivs mit der<br />

Endung ».orig.tar.gz« vor. Dazu gehört<br />

eine Datei, die auf ».diff.gz« endet – sie<br />

Eine geht, eine kommt<br />

So war es bisher, und an dieser Stelle<br />

treffen Paketbauer auf die erste handfeste<br />

Neuerung im 3.0-Format: Statt der ».diff.<br />

gz-Datei« gibt es nun eine ».debian.tar.<br />

gz«-Datei, die die Debian-eigenen Veränderungen<br />

enthält. Der Grund für die Änderung:<br />

Die ».diff.gz«-Dateien waren normale<br />

Patches, die »dpkg-buildpackage«<br />

auf den entpackten Original-Quelltext<br />

mittels »patch« anwendeten.<br />

Diese Prozedur stößt bei Binärdateien<br />

jedoch schnell an ihre Grenzen: Patches<br />

sind Textdateien, in denen sich Binaries<br />

nur über Umwege wie »uuencode« und<br />

»uudecode« unterbringen lassen. PNG-<br />

Icons sind ein gutes Beispiel: Ein im<br />

Debian-Unterverzeichnis existierendes<br />

PNG-Bild hat »dpkg-buildpackage« bisher<br />

einfach ignoriert. Der Maintainer musste<br />

es deshalb erst in Base64 enkodieren und<br />

später beim Paketbau per »rules«-Anweisung<br />

wieder zurückwandeln.<br />

Im Sourceformat 3.0 ist dieser Umweg<br />

nicht mehr nötig: Die ».debian.tar.gz«-<br />

Datei entpackt der Ersteller des Pakets in<br />

das »debian«-Unterverzeichnis. Alle Da-


Wissbegierig?<br />

Schulungen von Profis für Profis<br />

LAST MINUTE MAI/JUNI<br />

Firewalls mit iptables / fwbuilder<br />

Konfliktmanagement in IT-Projekten<br />

Dovecot IMAP-Server<br />

OTRS<br />

http://www.heinlein-support.de/akademie<br />

Abbildung 1: Das Paket »bzr« nutzt das 3.0-(quilt)-Format, hier zu erkennen am ».debian.tar.gz«-File.<br />

teien, die im TGZ-Archiv liegen, landen<br />

im Quelltext und sind von dort aus weiter<br />

verwendbar.<br />

Mehrere Upstream-Tarballs<br />

Eine weitere Neuerung im Sourceformat<br />

3.0 erlaubt es, mehrere Tarballs für Originalsourcen<br />

zu verwenden. Bisher gab es<br />

lediglich das eine schon erwähnte ».orig.<br />

tar.gz«-File, künftig können die Paketbauer<br />

noch zusätzliche verwenden. Die<br />

neue Funktion ist besonders in jenen<br />

Fällen praktisch, wenn der Programmierer<br />

des zu paketierenden Werkzeugs ein<br />

Hauptprogramm und viele Zusatzmodule<br />

herausgibt.<br />

In dem neuen Format Deb-Src 3.0 lassen<br />

sich all diese Komponenten in einem Paket<br />

verteilen, ohne die Upstream-Tarballs<br />

erneuern zu müssen. Dazu benennt der<br />

Paketbauer ein TGZ-Archiv nach dem<br />

folgenden Schema: »paketname_version.<br />

orig-Komponente.tar.gz«. Der unter »Komponente«<br />

angegebene Wert ist wichtig,<br />

denn er bestimmt, in welchem Ordner<br />

dieser Tarball später im entpackten Quelltext<br />

landet.<br />

Steht hier der Wert »test«, müssen sich<br />

die Dateien dieses Tarball im Quelltext<br />

später auch in dem Ordner »test« befinden.<br />

Beim ersten Bauen wird also zunächst<br />

händisch der Ordner »test« angelegt<br />

und dann mittels »tar -C test -xvzf ../<br />

(Paketname_Version).orig-test.tar.gz« der<br />

Inhalt des TGZ-Archivs in diesen Ordner<br />

hinein entpackt.<br />

Beim nächsten Anlauf zu einem Paketbau<br />

mit »dpkg-buildpackage« erkennt das<br />

Programm die Zusatzquellen und integriert<br />

dann den zweiten Tarball in die<br />

».dsc«-Datei. Weitere Informationen zu<br />

diesem Vorgehen liefert eine ausführli che<br />

Anleitung von Raphael Hertzog, der als<br />

Mastermind hinter dem 3.0-Source format<br />

3.0 [1] steht.<br />

Neue Kompressionsformate<br />

Quelltext-Tarballs konnten bisher ausschließlich<br />

das Gzip-Format verwenden,<br />

sollte »dpkg-source« damit umgehen<br />

können. Das ist im neuen Format für<br />

Sourcepakete anders: In 3.0 ist auch<br />

Bzip2 unterstützt. Als Dreingabe steht<br />

sogar LZMA zur Verfügung, ist aber mit<br />

Vorsicht zu genießen: Besteht der Plan,<br />

das Paket irgendwann in das offizielle<br />

Debian-Archiv hochzuladen, dann ist<br />

LZMA keine Option, zumindest fehlt im<br />

Augenblick dafür der Support auf Debians<br />

Haupt-FTP-Server.<br />

Sowohl Bzip2- als auch LZMA-Tarballs<br />

sind genauso zu verwenden wie bisher<br />

Gzip-Tarballs, es ist aber – auch wenn<br />

es trivial klingt – darauf zu achten, dass<br />

die Dateien nicht auf ».orig.tar.gz« enden,<br />

sondern auf ».orig.tar.bz2« oder auf<br />

».orig.tar.lzma«.<br />

Keine blinden Passagiere<br />

Die Urheber von Software meinen es häufig<br />

gut mit ihren Benutzern und packen<br />

in ihren Programmquelltext ein »debian«-<br />

Verzeichnis, mit dem Endanwender dann<br />

schnell und leicht zu einem ».deb«-Paket<br />

kommen. Für Debian-Entwickler war<br />

das ärgerlich: Mit dem zuvor schon beschriebenen<br />

Diff-Verfahrens war es nicht


Titelthema<br />

www.linux-magazin.de Debian Src 3.0 06/2011<br />

34<br />

Abbildung 2: Wenn ein Programm es regelmäßig mit Patches zu tun bekommt, macht das neue Sourceformat<br />

das Leben des Betreuers bedeutend einfacher.<br />

sinnvoll möglich, Files im Debian-Ordner<br />

zu entfernen, »dpkg-source« hat fehlende<br />

Dateien beim Erstellen des ».diff«-<br />

File einfach ignoriert. Das Resultat war,<br />

dass selbst nach dem Erstellen des Pakets<br />

durch einen Debian-Entwickler im<br />

»debian«-Verzeichnis oft noch Altlasten<br />

des gleichen Ordners vom Programmautor<br />

vorhanden waren.<br />

Deb-Source 3.0 löst das Problem: Erkennt<br />

»dpkg-source« im Tarball der originalen<br />

Quellen ein Debian-Verzeichnis, löscht<br />

es den Ordner, und zwar bevor es die Debian-Änderungen<br />

auf den Quelltext anwendet.<br />

Wer Pakete gebaut hat, in denen<br />

er sich auf vorhandene Files in »debian«<br />

verlässt, muss beim Umstieg auf Deb-<br />

Source 3 Anpassungen vornehmen.<br />

Unter Debian-Entwicklern ist es verpönt,<br />

Veränderungen außerhalb des Debian-<br />

Ordners einfach in das ».diff«-File zu<br />

übernehmen. Die herrschende Auffassung<br />

lautetet, dass das ».diff.gz«-File nur<br />

und ausschließlich Veränderungen in<br />

»debian/ « vornehmen darf. Wer diesem<br />

ungeschriebenen Gesetz folgte, stand aber<br />

vor einem Problem: Wie ist mit unvermeidbaren<br />

Änderungen im Quelltext umzugehen?<br />

Viele Autoren verwenden zum<br />

Beispiel für ihre Software hartkodierte<br />

Pfade. Wenn diese nicht dem Filesystem<br />

Hierarchy Standard (FHS) entspre chen,<br />

muss ein Debian-Entwickler die Pfade<br />

ändern, wenn er nicht gegen die Debian-<br />

Policy [2] verstoßen will. Abhilfe schafft<br />

nur eine Lösung, bei der im Debian-<br />

Ordner Patches liegen, die während des<br />

Bauvorgangs quasi on the Fly auf den<br />

Quelltext angewendet werden.<br />

Allerdings wäre es mühsam, für jedes<br />

einzelne Paket die Logik, die ein solches<br />

System braucht, separat zu implementieren.<br />

So kursierten bereits fertige Lösungen:<br />

Dpatch [3] war eine davon, »dbs«<br />

hatte ebenso eine eigene Patchlogik, aber<br />

die bekannteste Lösung der letzten Jahre<br />

heißt Quilt [4]. All diese Systeme beruhen<br />

auf dem Prinzip, dass im »debian/<br />

patches«-Ordner Diff-Dateien liegen, die<br />

beim Bauen des Pakets dynamisch angewendet<br />

und beim Aufrufen des »clean«-<br />

Target in »debian/ rules« wieder entfernt<br />

werden. Für jedes einzelne System waren<br />

dabei in »debian/ rules« andere Einstellungen<br />

zu treffen.<br />

Einer für alle<br />

Deb-Source 3.0 macht Schluss mit Patch-<br />

Wildwuchs und hat das Patchsystem<br />

Quilt bereits integriert. Für Paketbauer<br />

heißt das vor allem, dass sie weniger<br />

Problemfall Patches<br />

Die Vorgehensweise, damit »dpkg-source«<br />

die Bestimmungen von Deb-Source 3 für<br />

ein Paket einsetzt, ist einfach: Es genügt,<br />

»3.0 (quilt)« in das File »debian/ source/<br />

format« zu schreiben, fertig. Zumindest<br />

in der Theorie, denn wer im Paket Patches<br />

verwendet, muss Umbauarbeiten<br />

auf sich nehmen.<br />

Für das Sourceformat 3.0 sind zwei<br />

Namen im Umlauf, auf der einen Seite<br />

„3.0 (native)“ und auf der anderen „3.0<br />

(quilt)“. Letzteres hat das Patchsystem<br />

Quilt implementiert, eine wichtige Neuerung<br />

in Source 3.0 (Abbildung 1).<br />

Abbildung 3: Ansteigende Beliebtheit: Eine Grafik von Enrico Zini zeigt, wie viele Entwickler ihre Debian-<br />

Pakete schon auf das neue Sourceformat umgebaut haben.


Klimmzüge machen müssen, um Patches<br />

mit Quilt zu nutzen (Abbildung 2). Kam<br />

in einem Paket bisher ein anderes Patchsystem<br />

als Quilt zum Einsatz und ist der<br />

Umstieg geplant, bedeutet dies, alles aus<br />

den Dateien im Debian-Ordner zu entfernen,<br />

was mit dem alten Patchsystem<br />

zu tun hat.<br />

Dazu gehören besonders der Eintrag im<br />

Feld »Build-Depends« in »debian/ control«<br />

sowie die Regeln in »debian/ rules«, die<br />

die Patch- und Unpatch-Funktionen des<br />

Patchsystems aufrufen. Letzteres gilt auch<br />

für alle, die Quilt zuvor bereits als separates<br />

Patchsystem nutzten. Die Patches<br />

in »debian/ patches« können bleiben, es<br />

sind aber eventuell vorhandene Header<br />

aus ihnen zu entfernen – insbesondere<br />

Dpatch sah solche Patch-Header vor. Die<br />

Patches sollten den Level 1 verwenden,<br />

also mittels »patch -p1« händisch anwendbar<br />

sein.<br />

Die Vorgehensweise: Nutzer erstellen eine<br />

Datei namens »debian/ patches/ series«<br />

und legen für jedes Patch in »debian/<br />

patches« eine Zeile an, die die Syntax »+<br />

Patchname« hat. Heißt das Patch »test.<br />

diff«, lautet die passende Zeile »+ test.<br />

diff«. Damit ist Quilt einsatzbereit. Beim<br />

nächsten Bauvorgang wendet es alle<br />

Patches in »debian/ patches/ series« an,<br />

und beim Aufruf des »clean«-Target in<br />

»debian/ rules« macht es die Änderungen<br />

der Patches rückgängig.<br />

Übrigens: »Dpkg-Source« ist nicht tolerant,<br />

wenn es darum geht, dass Patches<br />

korrekt sind. Lässt sich ein Patch nur<br />

mit Fuzz anwenden, verweigert »Dpkg-<br />

Source« die Arbeit. Entsprechende Patches<br />

sind also neu zu erstellen. Tipp:<br />

Weil das Verändern von Dateien außerhalb<br />

des Debian-Ordners nicht mehr<br />

möglich ist, legt das neue »dpkg-source«<br />

von erkannten Änderungen zu Beginn<br />

des Bauprozesses ein eigenes Quilt-Patch<br />

an. Wer die Ursprungsquellen angefasst<br />

hat, tut gut daran, für diese Änderungen<br />

Patches händisch und aufgesplittet zu<br />

erstellen – im Nachhinein ist es sonst<br />

schwierig, Veränderungen zu verstehen.<br />

Blick in die Werkzeugkiste<br />

Die maßgeblichen Umbauarbeiten für<br />

den Umstieg auf Deb-Src 3.0 mit Quilt<br />

sind damit beendet. Wie sieht es mit den<br />

anderen Werkzeugen aus dem Package-<br />

Universum aus? Für die Pakete, die ohnehin<br />

überwiegend mit Binärdateien hantieren,<br />

ändert sich nichts. Verschiedene<br />

Systeme zur Pflege eines eigenen Debian-<br />

FTP-Repository – darunter auch Reprepro<br />

– werten für ihre Arbeit die ».dsc-Files«<br />

aus, die beim Deb-Src 3.0 logischerweise<br />

die Dateinamen der neuen Sourcedateien<br />

enthalten. Auch hier sind beim Umstieg<br />

keine Probleme zu erwarten.<br />

Etwas hakeliger sind die Helferlein, die<br />

Git, SVN oder Bazaar und das Paketbauen<br />

verbinden: Git funktioniert zwar<br />

einwandfrei und ist wie immer der Musterschüler,<br />

aber bei »svn-buildpackage«<br />

fehlt noch die Unterstützung für mehrere<br />

Quelltext-Tarbälle. Bazaar hat bis zum<br />

3.0-Format noch einen längeren Weg vor<br />

sich, aber in Colin Watson findet sich<br />

ein prominenter Debian-Developer, der<br />

das System verwendet und die Weiterentwicklung<br />

von »bzr-builddeb« in nächster<br />

Zeit vorantreiben will.<br />

Lintian [5], das unbedingt zu verwenden<br />

ist, um die (Source-)Pakete auf ihre<br />

Konformität mit der Debian-Policy zu<br />

überprüfen, funktioniert größtenteils.<br />

Allerdings klappt das Testen von mehreren<br />

Tarballs im Quelltext nicht. Lintian<br />

überprüft jeweils nur den ersten Tarball<br />

im ».dsc«-File und ignoriert alle weiteren.<br />

Im schlimmsten Fall würde es also Fehler<br />

in Zusatz-Tarballs übersehen.<br />

Fazit<br />

Für den Bau von Debian-Paketen sei der<br />

Einsatz des neuen Sourceformats wärmstens<br />

empfohlen. Es erleichtert und erspart<br />

viele Schritte, besonders die Patchverwaltung<br />

profitiert davon. Die Entwickler akzeptieren<br />

(Abbildung 3) das neue System<br />

bereits. (uba)<br />

n<br />

Infos<br />

[1] Raphael Hertzog, „Mehrere Source-Tarballs“:<br />

[http:// raphaelhertzog. com/ 2010/<br />

09/ 07/ how-to-use-multiple-upstream<br />

-tarballs-in-debian-source-packages/]<br />

[2] Debians Policy-Manual für Pakete: [http://<br />

www. debian. org/ doc/ debian-policy/]<br />

[3] Dpatch: [http://packages.debian.org/<br />

squeeze/dpatch]<br />

[4] Quilt in Debian:<br />

[http://wiki.debian.org/UsingQuilt]<br />

[5] Lintian: [http://lintian.debian.org]<br />

E-Mails<br />

sorgenfrei<br />

Server von Heinlein Elements<br />

DIE ARBEITEN HAND IN HAND<br />

Die modulare Appliance-Familie aus einem<br />

Guß, verfügbar in Hardware oder virtuell<br />

http://www.heinlein-support.de/elements<br />

MAIL-ARCHIV<br />

Gesetzeskonform<br />

und revisionssicher<br />

ANTI-SPAM<br />

Blocken statt<br />

verwalten<br />

IMAP-SERVER<br />

Es muss nicht immer<br />

Groupware sein<br />

MAILTRACE<br />

E-Mail-Recherche<br />

für Helpdesks


Titelthema<br />

www.linux-magazin.de Alternativen 06/2011<br />

38<br />

Dachzeile Conary, Zero Install und Portable <strong>Linux</strong> Apps<br />

Überschrift<br />

Exotische Päckchen<br />

Die Open-Source-Welt ist für ihre Vielfalt bekannt. Da überrascht es kaum, dass sich kluge Köpfe auch für das<br />

Installieren und Aktualisieren von Software originelle Alternativen ausgedacht haben – von der Versionskontrolle<br />

für das ganze Betriebssystem bis zur Instant-Anwendung auf dem USB-Stick. Mathias Huber<br />

© Yvonne Bogdanski, 123RF.com<br />

Die meisten <strong>Linux</strong>-Distributionen verwenden<br />

RPM oder Dpkg, um Software<br />

zu installieren und zu warten. Die Alternative<br />

Gentoo hat mit ihrem Quelltextbasierten<br />

System einen eigenen Weg beschritten<br />

(siehe den Beitrag in diesem<br />

Schwerpunkt). Daneben existieren aber<br />

noch weitere reizvolle Ansätze. Dieser<br />

Artikel stellt drei von ihnen vor.<br />

Alles versioniert<br />

Software-Entwickler pflegen ihren Quellcode<br />

in einem Versionskontrollsystem.<br />

Warum sollten Packager und Sysadmins<br />

nicht auch die Vorteile solcher Systeme<br />

nutzen, um installierte Programme und<br />

Systeme zu verwalten? Diese Überlegung<br />

steht hinter der Software Conary [1]. Erik<br />

Troan, zuvor bei Red Hat an RPM beteiligt,<br />

veröffentlichte sie erstmals 2004,<br />

inspiriert von der verteilten Versionskontrolle<br />

Mercurial. Conary steht unter der<br />

Open-Source-Lizenz CPL und dient als<br />

Basistechnologie für die Produkte der von<br />

Troan gegründeten Firma Rpath.<br />

Das in Python umgesetzte Conary stellt<br />

das gesamte Betriebssystem unter Versionskontrolle.<br />

Auf diese Weise lassen sich<br />

nicht nur einzelne Pakete, sondern auch<br />

Gruppen, ja ganze Systemimages versionieren.<br />

So können große Anwender beispielsweise<br />

maßgeschneiderte Systeme<br />

für einen Mail- oder Webserver auf einer<br />

bestimmte Hardware auschecken.<br />

Die unterschiedlichen Varianten eines<br />

Pakets für bestimmte Prozessorarchitekturen<br />

oder mit besonderen Compile-Optionen<br />

verwaltet Conary als so genannte<br />

Flavors (Geschmacksrichtungen). Das<br />

erspart es den Distributionsbauern, mehrere<br />

Zweige parallel zu pflegen.<br />

Diese Technologie steckt im Systembaukasten<br />

Rbuilder, der in einer öffentlichen<br />

Instanz [2] für Open-Source-Projekte<br />

kostenlos bereitsteht. Dort entsteht auch<br />

das Conary-basierte Foresight <strong>Linux</strong> [3].<br />

Ein kommerzieller Kunde ist EMC, der<br />

damit komplette Systeme für RSA-Datensicherheits-Appliances<br />

baut.<br />

Auch für den Maintainer, der ausgewählte<br />

Software für eine <strong>Linux</strong>-Distribution paketiert,<br />

hat das System einiges zu bieten.<br />

Die als Recipe (Rezept) bezeichneten Dateien,<br />

die das Bauen aus den Quelltexten<br />

steuern, sind in einer Domain Specific<br />

Language (DSL) auf Python-Basis formuliert.<br />

Für viele Arten von Builds existieren<br />

fertige Superklassen, beispielsweise<br />

»AutoPackageRecipe« in Listing 1, das<br />

C-Software mit den Autotools baut. Daneben<br />

gibt es eine ganze Bibliothek solcher<br />

Klassen, unter anderem für C++-<br />

Programme, Java, Gnome-Anwendungen<br />

und CPAN-Module.<br />

Deep Inspection<br />

Es fällt auf, dass das Rezept in Listing 1<br />

keine expliziten Abhängigkeiten nennt.<br />

Deren Auflösung automatisiert Conary<br />

weitgehend. Deep Inspection nennt<br />

sich der Vorgang, bei dem Conary den<br />

Quellcode inspiziert und die benötigten<br />

Bibliotheken ermittelt. Das funktioniert<br />

unter anderem für Java, PHP und Ruby.<br />

Rpath-CTO Brett Adam bezeichnet dieses<br />

Feature als Alleinstellungsmerkmal. Es<br />

erfasse rund 90 Prozent der Abhängigkeiten,<br />

schätzt er. Der Anwender ergänzt<br />

etwaige unerkannte Abhängigkeiten in<br />

der Recipe-Datei und kann auf Wunsch<br />

die automatisch ermittelten Einstellungen<br />

manuell überschreiben.<br />

Für alles, was sich nicht in der DSL regeln<br />

lässt, kann er zu Python greifen. In<br />

Listing 1 geschieht das in den Zeilen 9


Alternativen 06/2011<br />

Titelthema<br />

Abbildung 1: Da Rpaths Paketmanager Conary fremde Binärpakete einkapseln kann, eignet er sich auch zur<br />

Verwaltung eigentlich RPM-basierter Enterprise-Distributionen wie Suse und Red Hat.<br />

Abbildung 2: Zero Install legt die Software-Installation<br />

in die Hand des einfachen Anwenders.<br />

www.linux-magazin.de<br />

39<br />

und 10, um in dem Namen des Quelltext-<br />

Tarball einen Bindestrich zu ersetzen, der<br />

bei Conary nicht erlaubt ist.<br />

Sparsam<br />

Bei der Aktualisierung von installierter<br />

Software verhält sich Conary ebenfalls<br />

wie ein Versionskontrollsystem: Es überträgt<br />

lediglich ein Changeset, überspielt<br />

also nicht sämtliche Binärdateien, wenn<br />

sich nur eine Konfigurationsdatei ändert<br />

– laut Brett Adam ein großer Vorteil gegenüber<br />

RPM. Dabei lässt er allerdings<br />

außer Acht, dass Suse und Red Hat ein<br />

ähnliches Feature bieten (siehe Kasten<br />

„Delta-RPM“). Immerhin berichtet der<br />

Rpath-CTO von einem großen Kunden,<br />

der zu Conary gewechselt habe, um seine<br />

Anwendungen zur Kreditkartenabrechnung<br />

schneller und effizienter auf seinen<br />

zahlreichen und weltweit verteilen Servern<br />

zu aktualisieren.<br />

Besagter Kunde nutze zudem ein Feature,<br />

das Conary seit rund eineinhalb<br />

Jahren bietet. Das System kann RPM-<br />

Pakete von Suse <strong>Linux</strong> Enterprise, RHEL<br />

und Centos einkapseln (Abbildung 1). So<br />

erhielt das Unternehmen eine Conary-<br />

Systemverwaltung aus einem Guss und<br />

Delta-RPM<br />

kann dennoch weiterhin bei seiner bevorzugten<br />

Enterprise-Distribution bleiben.<br />

Die Subskriptionsverträge bleiben davon<br />

unberührt, da Conary die Original-Binärpakete<br />

des Herstellers unverändert lässt<br />

und lediglich einpackt.<br />

Wer Conary kennenlernen möchte, kann<br />

als Alternative zu Rpaths kommerziellen<br />

Angeboten zum freien Foresight <strong>Linux</strong><br />

greifen, das alle erforderlichen Tools enthält.<br />

Unter [4] hat Rpath eine Community-Website<br />

eingerichtet, die zum Austausch<br />

von Recipes dient, derzeit aber<br />

nicht besonders üppig befüllt ist. Ein<br />

Artikel im „<strong>Linux</strong>User“ [5] beschreibt<br />

die Conary-Kommandos sowie das Bauen<br />

eigener Pakete und Appliances.<br />

Endanwender-Installation<br />

Während Conary ganze Betriebssysteme<br />

versioniert, bedient der Zero Install Injector,<br />

kurz 0install [6], das andere Extrem:<br />

Die Software ermöglicht es Normalanwendern<br />

ohne Superuser-Rechte,<br />

einzelne Programme nach Wunsch zu<br />

installieren. Dabei ist sie distributionsneutral<br />

– ein Paket lässt sich auf allerlei<br />

<strong>Linux</strong>en installieren, sofern dort die Zero-<br />

Install-Tools vorhanden sind.<br />

Bereits seit Version 9.2 verwendet Suse <strong>Linux</strong><br />

so genannte Delta-RPMs, um Software zu aktualisieren.<br />

Dabei handelt es sich um Pakete, die<br />

zwar einen vollständigen RPM-Header enthalten,<br />

als Payload aber nur einen Binär-Diff zur<br />

Vorgängerversion des Pakets.<br />

Das Patchen übernimmt nicht RPM selbst, sondern<br />

die darüberliegende Schicht Libzypp –<br />

beziehungsweise Yum, denn seit 2009 setzen<br />

auch Red Hat und Fedora auf Deltas. Als Resultat<br />

kommt ein normales RPM-Paket heraus, das<br />

sich wie gewöhnlich installieren lässt.<br />

Als jüngste Entwicklung hat die LZMA/ XZ-<br />

Komprimierung bei Delta-RPM Einzug gehalten,<br />

daneben haben die Entwickler eine<br />

Option eingebaut, die den tendenziell hohen<br />

Speicherverbrauch des Tools in Grenzen hält.<br />

Die Delta-RPM-Werkzeuge stehen unter BSD-<br />

Lizenz, den Quellcode pflegen die Entwickler<br />

in einem Gitorious-Repository [11].<br />

Zero Install ist einer von mehreren Versuchen,<br />

die Software-Installation unter<br />

<strong>Linux</strong> ähnlich anwenderfreundlich zu gestalten<br />

wie unter Windows oder Mac OS X,<br />

und verwendet dabei ein übersichtliches<br />

GUI (Abbildung 2). Im Gegensatz zu eingeschlafenen<br />

Projekten wie Autopackage<br />

und Klik erfreut es sich aktiver Pflege und<br />

Entwicklung. Das Projekt möchte noch<br />

2011 die Version 1.0 publizieren, derzeit<br />

ist 0.54 aktuell.<br />

Software-Entwickler profitieren von Zero<br />

Install, da sie ihre Programme dezentral<br />

auf der eigenen Website in einem<br />

installierbaren Format publizieren können,<br />

ohne auf die Arbeitsabläufe und<br />

Repositories der <strong>Linux</strong>-Distributionen<br />

angewiesen zu sein. Thomas Leonard,<br />

der Erfinder des Zero Install Injector,<br />

legt solche Gedanken in einem online<br />

verfügbaren Artikel dar [7]. Der Brite<br />

entwickelt das Installationssystem seit<br />

2003 und verwendet es unter anderem<br />

für seine Desktopumgebung Rox und deren<br />

Anwendungen.<br />

Zum Installieren eines Softwarepakets<br />

benötigt der Anwender einen Zero Install<br />

Feed. Dabei handelt es sich um<br />

Listing 1: Conary-Recipe<br />

01 class Goom(AutoPackageRecipe):<br />

02<br />

03 name = 'goom'<br />

04 version = '2k4_0'<br />

05<br />

06 buildRequires = []<br />

07<br />

08 def unpack(r):<br />

09 r.macros.upstreamVersion = r.macros.version.<br />

replace('_','‐')<br />

10 r.addArchive('mirror://sourceforge/%(name)<br />

s/%(name)s‐%(upstreamVersion)s‐src.tar.gz')


Titelthema<br />

www.linux-magazin.de Alternativen 06/2011<br />

40<br />

Abbildung 3: Was hier als XML-Quelltext sichtbar gemacht ist, erlebt der Anwender als schlichten Weblink zum Anklicken: Die so<br />

genannten Feeds enthalten die Metadaten, die Zero Install zum Herunterladen und Einspielen von Software benötigt.<br />

eine im Web veröffentlichte XML-Datei<br />

mit Meta-Informationen zum Paket. Sie<br />

enthält unter anderem die Adresse des<br />

Installationsarchivs und den Hashwert,<br />

der das Paket identifiziert (Abbildung<br />

3). Eine ständig aktualisierte Sammlung<br />

zahlreicher Feeds bietet [8].<br />

Zieht der Benutzer die Feed-Adresse aus<br />

dem Webbrowser in das Zero-Install-Fenster,<br />

starten Download und Installation.<br />

Dabei landen alle Dateien eines Pakets<br />

unterhalb von »~/.cache/0install.net/<br />

implementations/Hashwert/« im Homeverzeichnis<br />

des Anwenders. Dort findet<br />

sich für jedes installierte Programm ein<br />

Baum von Systemverzeichnissen wie auf<br />

einem ganz gewöhnlichen Unix-System<br />

(Abbildung 4).<br />

Zero Install löst Abhängigkeiten automatisch<br />

auf und lädt die benötigten Dateien<br />

herunter. Befindet sich eine Bibliothek<br />

bereits im Installationsverzeichnis des<br />

Benutzers, wird sie nicht neu geladen.<br />

Daneben können optional auch verschiedene<br />

Benutzer auf einem Rechner<br />

vorhandene Bibliotheken teilen, wofür<br />

das Installationssystem diese in »/var/<br />

cache/0install.net/« bereithält.<br />

Interessanterweise kennt Zero Install im<br />

Grunde nur das Ausführen von Programmen.<br />

Das Kommando<br />

»0launch« und seine<br />

GUI-Entsprechung führen<br />

eine Anwendung<br />

aus, wenn sie bereits installiert<br />

ist. Andernfalls<br />

lädt es die Software zur<br />

Installation herunter. Ist<br />

ein Programm bereits<br />

länger als einen Monat<br />

nicht gelaufen, sucht<br />

Zero Install automatisch<br />

nach Updates. Aktualisierungen<br />

lassen sich<br />

auch von Hand im GUI<br />

des Installationssystems<br />

veranlassen.<br />

Dazu gesellen sich Features,<br />

die einer Softwareverwaltung<br />

gut<br />

zu Gesicht stehen: GPG-signierte Feeds<br />

stellen Herkunft und Unversehrtheit sicher.<br />

Daneben kann der Anwender Policies<br />

vorgeben, die beispielsweise nur die<br />

Installation stabiler Programmversionen<br />

erlauben. Versionen mit Sicherheitsproblemen<br />

werden in den Web-Feeds als<br />

»insecure« gebrandmarkt.<br />

Ohne Root<br />

Bei Zero Install kommt nicht nur der Benutzer<br />

ohne Rootrechte aus, das System<br />

verwendet auch keine Pre- oder Post-<br />

Install-Skripte, die mit den Berechtigungen<br />

des Superusers laufen. Kombiniert<br />

mit entsprechenden Policies könnte es<br />

für den Sysadmin ein Möglichkeit bieten,<br />

Anwender administrierter Rechner zusätzlich<br />

gewünschte Software installieren<br />

zu lassen – unter Umständen aus einer<br />

im lokalen Netzwerk vorgehaltenen, vertrauenswürdigen<br />

Quelle.<br />

Software-Entwickler und Packager finden<br />

auf der 0install-Website umfangreiche<br />

Anleitungen und einige Tools, um<br />

eigene Pakete zu bauen und Feeds zu<br />

publizieren. Es gibt auch Utilities, die<br />

Zero-Install-Feeds aus Dpkg- oder RPM-<br />

Repositories generieren.<br />

Einstecken statt<br />

installieren<br />

Abbildung 4: Innerhalb eines Zero-Install-Pakets befindet sich ein Unix-Verzeichnisbaum. Bereits heruntergeladene<br />

Bibliotheken kommen bei der Installation weiterer Software erneut zur Verwendung.<br />

Noch weiter treiben es die Portable <strong>Linux</strong><br />

Apps [9]: Was seit Jahren unter Windows<br />

funktioniert, gibt es seit April 2010 auch


opensourcepress.de<br />

Bücher<br />

unter <strong>Linux</strong>: Binärdateien auf USB-Speicher<br />

kopieren, einstecken und ausführen.<br />

Die Sammlung tragbarer Programme<br />

für den Speicherstick ist beträchtlich und<br />

reicht von Libre Office über den Videoplayer<br />

VLC bis zum Security-Tool Wireshark<br />

(Abbildung 5).<br />

Ein beliebter Tipp empfiehlt, die Lieblingsanwendung<br />

in <strong>Linux</strong>- und Windows-<br />

Version auf einen USB-Stick zu spielen.<br />

So kann man unter den verschiedenen<br />

Betriebssystemen als Gast in vertrauter<br />

Umgebung arbeiten. Möchten die Programme<br />

allerdings Einstellungen oder<br />

andere Daten speichern, ist es nicht besonders<br />

schön, wenn sie auf dem fremden<br />

Rechner landen, insbesondere bei<br />

Passwörtern. Zumindest unter <strong>Linux</strong> lässt<br />

sich das mit einer auf den Stick zeigenden<br />

»HOME«-Variablen beheben, wie der<br />

„<strong>Linux</strong>User“ [10] empfiehlt.<br />

Hindernisse<br />

Das alles funktioniert derzeit allerdings<br />

nur auf 32-Bit-Systemen, womit viele<br />

neuere Computer ausscheiden. Daneben<br />

funken neuere Udisks-Versionen auch<br />

noch dazwischen: Beim automatischen<br />

Mounten des eingesteckten Speichers<br />

hängen sie FAT-formatierte Sticks mit der<br />

Option »showexec« ein. Diese erlaubt<br />

nur das Ausführen von Dateien mit der<br />

Endung ».exe« ».com« oder ».bat«. Allerdings<br />

lässt sie sich auch austricksen:<br />

Ist das Executable passend umbenannt<br />

und der Stick erneut eingesteckt, funktioniert<br />

die Portable-App. Dem absurden<br />

Vorschlag aus einem Ubuntu-Forum, das<br />

Udisks-Binary mit Sed zu traktieren, sollten<br />

man auf keinen Fall folgen. n<br />

Infos<br />

[1] Conary:<br />

[http:// wiki. rpath. com/ wiki/ Conary]<br />

[2] Rbuilder: [http:// www. rpath. org/ ui/]<br />

[3] Foresight <strong>Linux</strong>:<br />

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

[4] Community-Seite mit Conary-Rezepten:<br />

[http:// www. conaryrecipes. com]<br />

[5] Christian Meyer, „Packstation“: <strong>Linux</strong>User<br />

01/ 08, Seite 76<br />

[6] Zero Install Injector: [http:// 0install. net]<br />

[7] Thomas Leonard, „Decentralised Installation<br />

Systems“:<br />

[http:// www. osnews. com/ story/ 16956/<br />

Decentralised_Installation_Systems]<br />

[8] Zero Install Feeds:<br />

[http:// roscidus. com/ 0mirror/]<br />

[9] Portable <strong>Linux</strong> Apps:<br />

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

[10] Florian Effenberger, „Apps to Go“:<br />

<strong>Linux</strong>User 11/ 10, Seite 67<br />

[11] Quelltext der Delta-RPM-Suite: [http://<br />

www. gitorious. org/ deltarpm/ deltarpm]<br />

Kurse<br />

NEU<br />

ISBN 978-3-941841-34-5<br />

592 Seiten · brosch. · 39,90 [D]<br />

ISBN 978-3-941841-23-9<br />

248 Seiten · brosch. · 19,90 [D]<br />

NEU<br />

ISBN 978-3-941841-24-6<br />

214 Seiten · brosch. · 34,90 [D]<br />

Mai<br />

2011<br />

ISBN 978-3-941841-36-9<br />

ca. 370 Seiten · brosch. · 34,90 [D]<br />

04.-08. & 11.-15. Juli 2011<br />

Vorbereitung auf LPIC-1& LPIC-2<br />

Diese Kurse bereiten Sie auf die Prüfungen<br />

101 und 102 bzw. 201 und 202 des <strong>Linux</strong><br />

Professional Institute vor. Am letzten Kurstag<br />

können Sie die Prüfungen bei uns ablegen!<br />

Dozent:<br />

Michael<br />

Gisbers<br />

Abbildung 5: Portable <strong>Linux</strong> Apps bringt eine große Software-Auswahl auf den USB-Stick. Der Einsatz ist<br />

allerdings auf 32-Bit-Systeme beschränkt und kann an Mount-Optionen scheitern.<br />

Auswahl Kurstermine Mai – Juli 2011<br />

C++: STL und Boost<br />

Python<br />

Applikationsentwicklung für Android<br />

Git<br />

IPv6<br />

Virtualisierung mit KVM<br />

TCP/IP-Analyse mit Wireshark<br />

Bacula Grundlagen<br />

Apache Webserver<br />

FAI<br />

OTRS::ITSM Change Builder<br />

Nagios Advanced<br />

opensourceschool.de<br />

23. – 24.05.<br />

23. – 25.05.<br />

25. – 27.05.<br />

06. – 07.06.<br />

06. – 08.06.<br />

06. – 09.06.<br />

08. – 10.06.<br />

14. – 16.06.<br />

20. – 22.06.<br />

04. – 06.07.<br />

11. – 12.07.<br />

20. – 22.07.<br />

Sonderpreise<br />

für Studierende


Titelthema<br />

www.linux-magazin.de ICC für Gentoo 06/2011<br />

42<br />

Gentoo-Software optimiert übersetzen<br />

Schneller, schneller<br />

Das Software-Management von Gentoo <strong>Linux</strong> fußt auf dem Sourcecode der Programme. Damit eignet sich die<br />

Distribution im besonderen Maße für Performance-Experimente mit Compileroptionen. Teile von Gentoo lassen<br />

sich sogar mit der ICC übersetzen. Ein Praxistest. Kay Königsmann<br />

gewählten Kategorie. Ein »search«-Feld<br />

besitzt Portage auch. Die Abbildung 1<br />

zeigt als Beispiel die verfügbare Versionen<br />

zum Paket »postgresql«.<br />

Emerge und Ebuilds<br />

© Christophe Schmid, 123RF.com<br />

Gentoo <strong>Linux</strong> [1],[2] verwaltet seine<br />

Software grundsätzlich anders als andere<br />

Distributionen. Der Administrator<br />

installiert keine kompilierten Programme<br />

als Deb- oder RPM-Pakete, sondern kompiliert<br />

Sourcen, wobei er auf einfache<br />

Weise zur Hardware passende Compilerflags<br />

setzt. Das versteht dieser Artikel als<br />

Einladung zu dem Experiment, die Sourcen<br />

von PostgreSQL mit verschiedenen<br />

Compilern optimiert zu übersetzen und<br />

die entstehenden Binarys einem Benchmark<br />

zu unterziehen.<br />

Daniel Robbins hatte Gentoo 1999 gegründet.<br />

Robbins, der zwischenzeitlich<br />

Listing 1: PostgreSQL-Ebuild (Auszug)<br />

auch bei Free BSD mitmischte, veröffentlichte<br />

im Jahr 2002 Gentoo 1.0. Diese<br />

Version besaß bereits ein Free-BSD-ähnliches<br />

Autobuild-System, das Programmequellen<br />

aus dem Internet holt und<br />

auf dem Zielsystem lokal kompiliert. In<br />

Anlehnung an den Free-BSD-Terminus<br />

„Ports“ nannte Robbins die Gentoo-Paketdatenbank<br />

Portage.<br />

Diese sortiert ihre Programmpakete in<br />

Kategorien [3]. Wählt der Nutzer eine<br />

aus, so zeigt eine Übersicht zunächst die<br />

nachgefragtesten Programmpakete. Erst<br />

die Auswahl von »category-full« in den<br />

»Links« listet alle Programmpakete der<br />

01 src_compile() {<br />

02 local bd<br />

03 for bd in . contrib $(use xml && echo contrib/xml2); do<br />

04 PATH="${EROOT%/}/usr/$(get_libdir)/postgresql‐${SLOT}/bin:${PATH}" \<br />

05 emake ‐C $bd ‐j1 || die "emake in $bd failed"<br />

06 done<br />

07 }<br />

Die Gentoo-Maintainer liefern zu jedem<br />

Programm Paketbeschreibungen, genannt<br />

Ebuilds. Diese Dateien beinhalten<br />

Informationen über den Paketnamen, die<br />

Programmversion, den Status des Pakets<br />

(stabil, instabil), die erlaubten Rechnerarchitekturen,<br />

Abhängigkeiten zu anderen<br />

Programmen und so weiter. Zurzeit<br />

(April 2011) verfügt Gentoo über 27 201<br />

Ebuilds zu 14 605 Paketen in 154 Kategorien.<br />

Die Mehrheit der Ebuilds sind Bash-<br />

Skripte, die das System mit Informationen<br />

zur Kompilierung und Installation<br />

der Quellen versorgen. Ebuilds enthalten<br />

somit im Unterschied zu »src.rpm«-Paketen<br />

nicht den eigentlichen Sourcecode,<br />

sondern die URL zum Download.<br />

Für die Installation der Sourcen dient<br />

Gentoos Paketmanager-Frontend<br />

»emerge«. Der Emerge-Prozess durchläuft<br />

nacheinander mehrere Stufen, die in den<br />

Ebuilds als Funktionen eingetragen sind.<br />

Die Hauptphasen im Installationsprozess<br />

jedes Programms spiegeln die Teile<br />

»setup«, »unpack«, »compile«, »test« und<br />

»install« wider. Vor diesen Phasen führt<br />

der Installationsprozess gegebenenfalls<br />

die »/etc/portage/bashrc« aus.<br />

Das Ebuild zu PostgreSQL, zu finden in<br />

der Kategorie »dev-db«, zeigt auszugsweise<br />

Listing 1. Hier dient »emake« als<br />

Wrapper innerhalb der Compile-Phase.<br />

Es ruft »make« mit den Optionen »-C«<br />

(Verzeichniswechsel) sowie »-j1« (nur einen<br />

Prozessor-Thread nutzen) auf. Make<br />

bedient sich des installierten »gcc«. Glo-


Abbildung 1: Stabile Programmversionen erhalten in Portage ein »+«. Die Tilde »~« kennzeichnet den Status<br />

Unstable. Als Vorgabe installiert der Gentoo-Paketmanager nur die jeweils neueste als stabil gekennzeichnete<br />

Version eines Programms.<br />

bale Compilerflags setzt der Anwender<br />

in der Datei »/etc/make.conf«, zum Beispiel<br />

»-march=core2« für die Intel-CPU<br />

Core2Duo.<br />

PostgreSQL kompiliert und installiert der<br />

Administrator durch<br />

USE="perl python tcl" LINGUAS="de" emergeU<br />

‐v postgresql‐server<br />

Der Paketmanager wertet die Angaben<br />

im zugehörigen Ebuild aus, stellt dabei<br />

Abhängigkeiten fest und installiert darum<br />

das Paket »postgresql-base«. Die »USE«-<br />

Angaben stellen optionale »./configure«-<br />

Parameter dar, »LINGUAS« wählt neben<br />

der englischen die deutsche Sprachunterstützung<br />

aus. Weitere Hinweise gibt der<br />

Kasten „PostgreSQL installieren“.<br />

Testlauf mit der GCC<br />

Die Basis für die folgenden Optimierungsexperimente<br />

stellte ein Intel-E6300-Core-<br />

2-Duo-System mit 2 GByte RAM und einem<br />

unmodifizierten Gentoo-64-Bit-Kernel<br />

im Server-Profil, den »genkernel all«<br />

übersetzt hatte. Vor der PostgreSQL-Installation<br />

brachten »emerge --sync«, »emerge<br />

portage« sowie »emerge -uND world«,<br />

»dispatch-conf«, »emerge --depclean« das<br />

System auf den neuesten Stand.<br />

Sämtliche Pakete waren anfangs mit der<br />

GCC 4.4.5 übersetzt. In diesem Zustand<br />

erfolgten die ersten Performancemessungen<br />

am PostgreSQL-Server, um eine Vergleichsgrundlage<br />

zu erhalten. Als Benchmark<br />

diente »pgbench«, den PostgreSQL<br />

per se im Gepäck hat. Vor der Messung<br />

legt ein »createdb dbtest && pgbench -i<br />

-s 100 dbtest« die Datenbank »dbtest« an,<br />

initialisiert und füllt sie mit 10 Millionen<br />

Tupeln (»-s« beinhaltet den Skalierungsfaktor<br />

100).<br />

pgbench ‐t 100 ‐c 10 ‐M prepared dbtest<br />

startet den Benchmark. Der Prozess<br />

vollführt bei jeder der simulierten zehn<br />

Verbindungen (Connections) je 100 nichttriviale<br />

(»-M«) Transaktionen. Im Ergebnis<br />

erscheinen unter anderem die gemessenen<br />

Transaktionen pro Sekunde (tps).<br />

ICC in Gentoo einrichten<br />

Als alternativer Closed-Source-Compiler<br />

soll hier Intels Compiler-Collection dienen,<br />

für die mehrere Ebuilds vorliegen.<br />

PostgreSQL installieren<br />

Vor dem »emerge«-Befehl setzt der Gentoo-<br />

Admin nach Bedarf seine Configure-Optionen,<br />

zum Beispiel: »USE="perl python tcl"<br />

LINGUAS="de"«. Nach der PostgreSQL-Installation<br />

führt er folgende Schritte aus:<br />

n In »/etc/conf.d/postgresql-server-9.0« gegebenenfalls<br />

»locale« auf »de_DE.UTF-8«<br />

setzen,<br />

n »emerge --config =dev-db/postgresql-server-9.0.3«<br />

ausführen sowie<br />

n »/var/lib/postgresql/9.0/data/postgresql.<br />

conf« passend zum eigenen Anforderungsprofil<br />

modifizieren, zum Beispiel:<br />

Ein »emerge -v icc« installiert die Version<br />

10.0.026, die für den nicht-kommerziellen<br />

Gebrauch kostenfrei ist [4]. Die Lizenzen<br />

von Intels „C++ Composer XE for<br />

<strong>Linux</strong>“ decken auch die älteren in Portage<br />

aufgeführten ICC-Versionen ab. Die per<br />

E-Mail von Intel erhaltene Lizenzdatei<br />

mit Endung ».lic« speichert der Anwender<br />

unter dem manuell anzulegendem<br />

Verzeichnis »/opt/intel/licenses/«.<br />

Nun muss er in die Datei »/opt/intel/<br />

cce/10.0.026/bin/icc.cfg« die Zeile »-idirafter<br />

/usr/include/linux« aufnehmen.<br />

Andernfalls tritt beim Kompilieren von<br />

Programmen, die die Datei »limits.h«<br />

inkludieren, ein »catastrophical error«<br />

auf. Auch ist es erforderlich, die Gentoo-Datei<br />

»/etc/make.conf« mit Umgebungsvariablen<br />

für die ICC erweitern:<br />

»ICCCFLAGS="-O2 -xT -ip"«. Das »-xT«<br />

veranlasst die ICC Code zu erzeugen, der<br />

die SSSE3-Einheit des Core 2 Duo heranzieht.<br />

Zum Abschluss führt der Admin<br />

»env-update« sowie »source /etc/profile«<br />

aus, um die Umgebungsvariablen an die<br />

neuen Gegebenheiten anzupassen.<br />

Lost in Compilation<br />

Dem ersten Impuls, Gentoo nun komplett<br />

per »emerge world« mit ICC zu übersetzen,<br />

sollte man nicht nachkommen.<br />

Denn die Quellen der Bash, von Sed, Binutils,<br />

GCC, Glibc, Ncurses, Libstdc++v3,<br />

Zlib oder Procps enthalten GCC-spezifischen<br />

Code. Als Lösung bietet sich<br />

an, den Paketmanager über eine manuell<br />

anzulegende und mit ausführbaren<br />

Rechten versehene Datei »/etc/portage/<br />

bashrc« zu beeinflussen. Der Installationsprozess<br />

führt in der genannten Datei<br />

vorhandenen Code in jeder Ebuilds-Stufe<br />

temp_buffers = 8MB<br />

work_mem = 1MB<br />

maintenance_work_mem = 16MB<br />

checkpoint_segments = 12<br />

autovacuum = off<br />

Die letzte Zeile ist nötig für alle, die beabsichtigen<br />

Benchmarks laufen zu lassen – so wie in<br />

diesem Artikel geschehen.<br />

Jetzt richtet Root noch ein Passwort für den<br />

Benutzer »postgres« ein. Der Befehl »/usr/<br />

lib64/postgresql-9.0/bin/postgres -D /var/lib/<br />

postgresql/9.0/data« startet schließlich die<br />

Datenbank.<br />

ICC für Gentoo 06/2011<br />

Titelthema<br />

www.linux-magazin.de<br />

43


Titelthema<br />

www.linux-magazin.de ICC für Gentoo 06/2011<br />

44<br />

aus. Auf [5] gibt es entsprechende Code-<br />

Beispiele.<br />

Für diesen Artikel reicht es aber, nur die<br />

Software mit dem ICC zu übersetzen,<br />

die der Benchmark vermessen soll. Der<br />

Administrator hinterlegt dazu die mit der<br />

ICC zu kompilierenden Programme ohne<br />

Versionsnummern, jedoch einschließlich<br />

ihrer Portage-Kategorie in der Datei<br />

»/etc/portage/bashrc/package.icc«:<br />

dev‐db/postgresql‐base<br />

dev‐db/postgresql‐server<br />

Bei allen anderen Programmen nutzt der<br />

Installationsprozess GCC weiter. Um die<br />

PostgreSQL-GCC-Binarys aus dem System<br />

zu kicken, deinstalliert der Admin jetzt<br />

»postgresql-base« sowie »postgresql-server«<br />

und installiert sie gleich wieder. Nun<br />

übersetzt die ICC die Datenbank.<br />

Um noch einen weiteren Benchmark-<br />

Vergleichswert zu erheben, installierten<br />

die Tester in der Folge noch die in Portage<br />

eingetragene, als instabil gekennzeichnete<br />

ICC-Version 11.1.072-r1 (Abbildung<br />

2). Der Befehl »autounmask >=<br />

dev-lang/icc-11.1.072-r1« kennzeichnet<br />

die instabile Version intern als installierbar<br />

und ermöglicht so das Ausprobieren.<br />

Die Sourcen haben übrigens eine beachtliche<br />

Größe: 770 MByte. (Inoffizielle<br />

12er-Versionen der ICC für Gentoo gibt es<br />

übrigens auch bereits [6].)<br />

Egal, ob man Programmpakete mit der<br />

stabilen oder der instabilen ICC kompiliert,<br />

linkt der Compiler den Code dynamisch<br />

gegen ICC-Bibliotheken. Das will<br />

dann beachtet sein, wenn der Administrator<br />

die ICC wieder deinstalliert: Denn<br />

nun finden die Binarys ihre Bibliotheken<br />

nicht mehr – das Neuübersetzen mit der<br />

GCC steht somit an.<br />

Benchmark-Ergebnisse<br />

Die im Rahmen dieses Artikels durchgeführten<br />

Benchmarks zeigen recht un-<br />

terschiedliche Ergebnisse<br />

(Abbildung 3). Zur Bildung<br />

eines aussagekräftigen<br />

Mittelwerts dienten<br />

die jeweils zehn besten<br />

Ergebnisse der einzelnen<br />

Durchläufe. Die ICC 10.<br />

0.026 zeitigte im Mittelwert<br />

eine 25 bis 29 Prozent<br />

schnelleren Code als<br />

die GCC, im Einzelfall sogar<br />

deutlich mehr. Die ICC<br />

11.0.072-r1 erreichte im<br />

Mittelwert nur rund 10<br />

Prozent mehr Durchsatz<br />

als die GCC und fällt somit im Vergleich<br />

zum älteren Bruder stark ab.<br />

Die Ergebnisse zeigen natürlich nur eine<br />

Tendenz auf und sind nicht auf jeden<br />

Einzelfall übertragbar – das Spielen mit<br />

Compilerflags, das Optimie ren auf andere<br />

CPUs und ein Tu ning der PostgreSQL-<br />

Konfiguration führ ten sicher zu anderen<br />

Ergebnissen. Andererseits fällt der Gewinn<br />

der stabilen ICC-Version so deutlich<br />

aus, dass er Beachtung verdient.<br />

Fazit<br />

Abbildung 3: Die bei PostgreSQL-Benchmark zur Mittelwertbildung herangezogenen<br />

Einzelwerte der beiden Intel-Compiler liegen durchgehend<br />

über dem erreichbaren Durchsatz der GCC. Insbesondere das Kompilat<br />

der stabilen ICC-Version überzeugt.<br />

Gentoo verfolgt mit dem Herunterladen<br />

der Sourcen und deren anschließendes<br />

Kompilieren einen gänzlich anderen Ansatz<br />

als der <strong>Linux</strong>-Mainstream mit seinen<br />

Deb- oder RPM-Binärpaketen. Der<br />

erfahrene Gentoo-Anwender wählt dabei<br />

die Compilervorgaben genau passend zu<br />

seiner Hardware aus. Ob das Ganze in<br />

der Praxis vor- oder nachteilig ist, mag<br />

jeder selbst entscheiden. Zumindest<br />

zum Testen der Wirksamkeit von Compilern<br />

eignet sich Gentoo <strong>Linux</strong> offenbar<br />

prima. Auch weil das Portage-System die<br />

Möglichkeit einräumt, nur einzelne Programmpakete<br />

zum Übersetzen mit einem<br />

alternativen Compiler auszuwählen.<br />

Im Rahmen dieses Artikels geschah das<br />

für einen PostgreSQL-Server. Der gemessene<br />

Geschwindigkeitsvorteil von rund<br />

25 Prozent ist so relevant, dass bei einer<br />

Datenbank, deren Antwortzeiten unter<br />

Last anschwellen, das Neukompilieren<br />

mit der ICC die Investition in neue Hardware<br />

hinauszögern kann. So betrachtet,<br />

sind Testläufe mit variierten Compilerflags<br />

und alternativen Übersetzern keine<br />

Spielerei, sondern helfen Kosten zu sparen.<br />

Das gilt tendenziell für alle Serverapplikationen.<br />

Die auf auf Desktopsystemen<br />

erzielbare Performancesteigerung<br />

wird zwar auch in dieser Größenordnung<br />

ausfallen, jedoch spüren PC-Anwender<br />

einen Geschwindigkeitsgewinn subjektiv<br />

erst ab rund 30 Prozent. (jk) n<br />

Infos<br />

[1] Gentoo-Projekt: [http://www.gentoo.org]<br />

[2] Deutschsprachiges Gentoo-Portal:<br />

[http://www. gentoo.de]<br />

[3] Gentoo-Software-Katego rien:<br />

[http://packages. gentoo.org/categories/]<br />

[4] Intel-Compiler zum nicht-kommerziellen<br />

Gebrauch:<br />

[http://software. intel.com/en-us/articles/n<br />

on-commercial-software-development/]<br />

[5] Anleitung zur ICC-Konfiguration auf Gentoo-Systemen:<br />

[http://www.gentoo-wiki.<br />

info/HOWTO_ICC_and_Portage]<br />

[6] Inoffizielles Portage-Archiv mit Ebuilds zu<br />

den ICC-Versionen 12.X:<br />

[http://gpo. zugaina.org/dev-lang/icc]<br />

Abbildung 2: Der Griff zu »autounmask« ermöglicht instabile Programmpakete zu installieren.<br />

Der Autor<br />

Kay Königsmann arbeitet seit 1999 im IT-Bereich,<br />

zunächst als Datenbank- und Java-Dozent, später<br />

auch im Projektmanagement. Debian sowie IT-<br />

Security bilden die Schwerpunkte seiner heutigen<br />

Tätigkeit. Er ist Autor zahlreicher Fernlehrgänge<br />

für die Erwachsenenweiterbildung.


STRATO ist der Spot<br />

für meine Website.<br />

Hier funktioniert alles so,<br />

wie ich will!<br />

Marius Hoppensack<br />

www.marius-hoppensack.de<br />

Erstellt mit dem PowerPlus-Paket<br />

Marius<br />

Hoppensack<br />

STRATO Hosting<br />

Für Anwender mit hohen Ansprüchen<br />

Ihre Website mit echten Profi-Features:<br />

8 Domains und 5 GB Speicher inklusive<br />

10 MySQL-Datenbanken und unlimited Traffic<br />

Unterstützung von CMS (Joomla!, WordPress etc.)<br />

Profi-Features: PHP, Perl, Python, Ruby u.v.m.<br />

Hosting PowerPlus L<br />

Ohne Risiko testen!<br />

FREE<br />

TRIAL<br />

*<br />

Aktionsangebot nur<br />

bis zum 31.05.2011<br />

(Leserwahl Ausgabe 6/11)<br />

Jetzt bestellen unter: s trato.de / hosting<br />

Servicetelefon: 0 18 05 - 055 055<br />

(0,14 €/Min. aus dem dt. Festnetz, Mobilfunk max. 0,42 €/Min.)<br />

* 30 Tage kostenlos testen, danach 14,90 €/Monat, Mindestvertragslaufzeit 6 Monate. Preise inkl. MwSt.


Titelthema<br />

www.linux-magazin.de Quellenanalyse 06/2011<br />

46<br />

Wann es sich lohnt, Softwarequellen zu inspizieren<br />

An der Quelle<br />

Open Source sei sicherer, weil jedermann jederzeit nachvollziehen könne, was die Software alles treibt – so<br />

lautet ein gängiges Urteil. Doch wie sieht das in Unternehmen wirklich aus? Wer sich nicht auf die Peer Review<br />

der Community verlassen kann oder darf, steht vor einer Herausforderung. Markus Rothmeyer, Markus Feilner<br />

© Tom Grundy, 123RF.com<br />

Am Tag der offenen Tür der Raumfahrtagentur<br />

ESA im bayerischen Oberpfaffenhofen<br />

steht der aktuelle Status des<br />

Galileo-Projekts im Mittelpunkt. Bei der<br />

Führung durch die Satellitenkontrollzentrale<br />

stellt ein Teilnehmer die auf der<br />

Hand liegende Frage: „Warum setzen Sie<br />

hier eigentlich <strong>Linux</strong> auf den Arbeitsplätzen<br />

ein?“ In der Tat überwachen die<br />

Mitarbeiter der Raumfahrtagentur an<br />

KDE-Desktops die Flugbahnen der ersten<br />

beiden Testsatelliten des europäischen<br />

GPS-Programms. Die kurze Antwort des<br />

Spezialisten sitzt, überrascht aber doch<br />

einige der Besucher: „Für unsere Ansprüche<br />

an Ausfallsicherheit haben sich gängige<br />

Closed-Source-Betriebssysteme als<br />

ungeeignet erwiesen.“<br />

Die Aussage ist typisch für Unternehmen<br />

oder Institutionen, die höhere Ansprüche<br />

an Security oder Stabilität der eingesetzten<br />

Software haben.<br />

Aber mit Open- und<br />

Closed-Source konkurrieren<br />

nur zwei<br />

Entwicklungsmodelle,<br />

die für IT-Leiter in<br />

den kritischen Einsatzszenarien<br />

nicht<br />

unbedingt das Maß<br />

aller Dinge sind. Viel<br />

wichtiger ist es für<br />

sie, überhaupt Zugriff<br />

auf den Quelltext<br />

zu erhalten, weil<br />

ohne diesen gründliche<br />

Audits und Analysen<br />

kaum möglich<br />

sind.<br />

Dabei spielt es nur<br />

eine untergeordnete<br />

Rolle, ob der Code<br />

im Rahmen eines<br />

Partneragreements wie etwa Microsofts<br />

Shared-Source-Initiative für Regierungsbehörden<br />

[1] oder als vollständig freie<br />

Software verfügbar ist. Wer von seinem<br />

Closed-Source-Lieferanten per Vertrag<br />

vollen Zugriff auf den Code erhält und<br />

somit seine Software fortlaufend selbst<br />

überprüfen kann, ist zumindest theoretisch<br />

auf der sichereren Seite.<br />

Hauptsache Sourcecode<br />

Aber ist der Quelltext wirklich so bedeutsam<br />

für die IT-Sicherheit eines Unternehmens?<br />

Zahllose Firmen verwenden<br />

doch Open-Source-Programme in Routern,<br />

Firewalls und Servern, ohne jemals<br />

die Sourcen heruntergeladen und eines<br />

Blickes gewürdigt zu haben. Für viele Anwender<br />

und Admins ist das Versprechen<br />

ausreichend, dass eine Community mit<br />

gemeinsamer Anstrengung, Peer Review<br />

und verteiltem Debugging Fehler und Lücken<br />

deutlich schneller findet als eine<br />

Firma, die exklusiv über ihre Programmierleistungen<br />

herrscht, auch wenn sie<br />

Millionen Entwickler beschäftigt.<br />

Dieser Ansatz ist jedoch eher pragmatisch,<br />

entscheidend ist der Anspruch, den<br />

ein Unternehmen an seine IT-Security hat.<br />

Denn der Aufwand, den eine Firma bereit<br />

ist zu leisten, wächst nahezu exponentiell<br />

mit dem Schutzbedürfnis oder den zu<br />

erwartenden Gefahren und Risiken.<br />

Paranoiker-Leitfaden<br />

Für den, der mit sehr hoher Wahrscheinlichkeit<br />

Sicherheitsprobleme in der von<br />

ihm verwendeten Software ausschließen<br />

will, stellt auch das BSI-Grundschutzhandbuch<br />

[2] nur einen – wenn auch<br />

durchaus sinnvollen – Einstieg dar. Darüber<br />

hinaus muss die IT-Leitung mindestens<br />

folgende Punkte umsetzen:<br />

n KIS-Prinzip (Keep it simple): Alle unternehmenskritischen<br />

Bestandteile der<br />

IT müssen so einfach und übersichtlich<br />

wie nur möglich gestaltet sein.<br />

Funktionen, Hard- und Softwarekomponenten,<br />

die nicht unternehmensrelevant<br />

sind, sind zu entfernen.<br />

n Zugriff auf den Quellcode: Regelmäßige<br />

Analysen und Säuberungsaktionen<br />

vermindern das Risiko von Softwarefehler<br />

oder Backdoors.<br />

n Experten-Audits: Zusätzlich prüfen externe<br />

Spezialisten kritische Teile der<br />

Quellcodes.<br />

n Definierte Build-Prozeduren: Nur Binärcode,<br />

der nachvollziehbar mit einer<br />

dokumentierten Build-Prozedur aus<br />

den geprüften Quellen kompiliert ist,<br />

darf Verwendung finden.


n Test Harness: Ein automatisiertes Test-<br />

Framework [3] gibt Admins die Möglichkeit,<br />

sicherheitskritische Funktionen<br />

zu prüfen, ohne die eigene IT zu<br />

gefährden.<br />

n Quellcode-Repository: Ein eigenes<br />

Repository ist unverzichtbar. Es hilft<br />

Admins den Überblick zu bewahren<br />

und die Software transparent zu verwalten.<br />

Seine Versionskontrolle stellt<br />

die Nachvollziehbarkeit der Änderungen<br />

(Wer hat wann was geändert?)<br />

sicher und hilft bei der Softwareverteilung.<br />

n Updates: Jedes Patch, jedes Update<br />

oder Upgrade muss den kompletten<br />

Zyklus der oben beschriebenen Maßnahmen<br />

durchlaufen. Aktualisierungen<br />

und Bugfixes sind nur erlaubt,<br />

wenn sie im Quelltext vorliegen und<br />

die IT-Abteilung sie selbst kompiliert,<br />

testet und verteilt.<br />

Dem vom Controlling gegängelten IT-<br />

Leiter dürfte sich jetzt angesichts der<br />

zu erwartenden Kosten für diese Vorgehensweise<br />

die Stirn in Falten legen. Die<br />

meisten Unternehmen wägen hier den im<br />

Katastrophenfall zu erwartenden finanziellen<br />

Schaden mit dem notwendigen<br />

Aufwand an IT-Personal ab und entscheiden<br />

danach, welche der Punkte sie in<br />

welchem Maß umsetzen.<br />

Wer nicht ganz so lax vorgehen will,<br />

weicht die Vorgaben für einzelne Bereiche<br />

auf, zum Beispiel bei den (hoffentlich)<br />

unkritischeren Gerätetreibern wie<br />

Grafikkarten oder Druckern. Wichtig ist<br />

dabei jedoch fast immer ein externer IT-<br />

Dienstleister, der im Ernstfall die Verantwortung<br />

übernimmt.<br />

Für Firmen mit speziellen Risikoszenarien<br />

ergeben sich manchmal sogar rechtliche<br />

Vorgaben, etwa durch die US-Börsenaufsicht<br />

SEC oder als Voraussetzung für die<br />

Kreditvergabe durch Banken (Basel II,<br />

[4]). Typische Situationen, die es notwendig<br />

machen, die oben beschriebenen<br />

Maßnahmen umzusetzen, sind:<br />

n Aufträge mit sehr hohem Volumen,<br />

zum Beispiel im Bereich dreistelliger<br />

Millionen-Euro-Beträge.<br />

n Sehr hohe Vertragsstrafen, die den Bestand<br />

des Unternehmens gefährden.<br />

n Unternehmenskritisches Know-how<br />

auf IT-Systemen.<br />

n Nicht vermeidbare Speicherung sehr<br />

sensibler Personendaten (Steuerberatung,<br />

Anwälte, Health Care, …).<br />

n Einsatz in Gefahrenbereichen, zum<br />

Beispiel Nukleartechnik, Waffentechnik,<br />

Militär, Chemische Industrie.<br />

n In der IT von Nachrichtendiensten.<br />

n Ausgeprägte Wettbewerbssituationen,<br />

vor allem mit ausländischen Konkurrenten<br />

(Stichwort Echelon, [5]).<br />

Immerhin bewegt sich der laufende Aufwand<br />

in einem akzeptablen Rahmen,<br />

wenn das KIS-Prinzip in IT-Sicherheitsrelevanten<br />

Bereichen umgesetzt ist, also<br />

beispielsweise für die Identifikation<br />

der unternehmenskritischen Daten, IT-<br />

Systeme, Funktionen, Prozesse und Be-<br />

Quellenanalyse 06/2011<br />

Titelthema<br />

www.linux-magazin.de<br />

47<br />

Das <strong>Linux</strong>-Jahr 2010<br />

auf einer scheibe<br />

• Zwölf ausgaben komplett<br />

als hTML und PDf<br />

• ausgeklügelte navigation<br />

in jedem browser<br />

• b litzschnelle Volltextsuche<br />

mit Javascript<br />

• inklusive adobe reader<br />

JETZT NEU!<br />

12 Ausgaben<br />

auf DVD nur<br />

14,95 E!<br />

MAGAZIN<br />

Auf der 2. Seite der doppelseitigen DVD<br />

finden Sie die Live-Distribution Backtrack<br />

4r2 in der überall Exklusiv-Edition<br />

bootfähigen 32-Bit-Version.<br />

Backtrack eignet sich hervorragend für<br />

Penetrationstests im eigenen Netzwerk.<br />

back track<br />

JeTZT schneLL besTeLLen:<br />

• Telefon: 07131 / 2707 274 • fax 07131 / 2707 78 601<br />

• e-Mail: info@linux-magazin.de • internet: http://www.linux-magazin.de/DVD2010<br />

Ihr Widerrufsrecht: Sie können Ihre Bestellung innerhalb von 14 Tagen beim <strong>Linux</strong>-<strong>Magazin</strong>-Leserservice, Putzbrunner Straße 71, D-81739 München, widerrufen. Zur Wahrung der Frist genügt die rechtzeitige Absendung des Widerrufs.


Titelthema<br />

www.linux-magazin.de Quellenanalyse 06/2011<br />

48<br />

nutzer. Konkret bringt die Reduktion der<br />

Anzahl von Datenbanken, Repositories,<br />

Servern, Benutzern, Softwarefunktionen<br />

und alternativen Zugriffsmöglichkeiten<br />

viele Vereinfachungen.<br />

Migration<br />

Die langwierigste und arbeitsintensivste<br />

Phase einer Migration hin zu einer sicheren<br />

IT umfasst die Bestandsaufnahme,<br />

Klassifikation und Dokumentation der<br />

IT-Prozesse und ihrer Gefährdungsszenarien.<br />

Dabei helfen die Migrationsleitfäden<br />

des Innenministeriums [6] oder<br />

von IBM [7].<br />

Nach der Überlegung, welche der Prozesse<br />

redundant auszulegen sind, folgt<br />

die Prüfung der Dateiformate, auch mit<br />

der Bewertung, ob an der jeweiligen<br />

Stelle Lese- oder Schreibzugriff nötig ist<br />

– getreu dem KIS-Prinzip. Dann stellt sich<br />

die Frage nach dem zu verwendenden<br />

Open-Source-Betriebssystem.<br />

Da nur wenige Anwender in Unternehmen<br />

Zugriff auf Microsofts Sourcen erhalten<br />

werden, scheiden das Redmonder OS<br />

wie auch die Serverprodukte in sensiblen<br />

Umgebungen von vornherein aus – siehe<br />

Galileo bei der ESA. Typischer ist eher,<br />

dass Firmen mit großen Umgebungen<br />

mehrere freie Systeme parallel verwenden,<br />

meist sind dies <strong>Linux</strong>, BSD oder<br />

Open Solaris.<br />

Aus den benötigten Dateiformaten ergibt<br />

sich zwangsläufig die Liste erforderlicher<br />

Open-Source-Anwendungen. Proprietäre<br />

Dateiformate, die keine freie Software<br />

unterstützt, müssen die IT-Strategen hier<br />

Abbildung 1: Zarafas freie Groupware unterstützt<br />

den Simko2-Standard für sichere Telefonie, der bisher<br />

aber nur in wenigen HTC-Geräten funktioniert.<br />

einer besonderen Prüfung unterziehen:<br />

Ist das Dateiformat wirklich operationell<br />

notwendig? Unterstützt die Software, die<br />

das Format erzwingt, alle kritischen Prozesse<br />

des Unternehmens? Gibt es kostengünstige<br />

Alternativen?<br />

Wer nicht um die ungewollten Formate<br />

herumkommt, muss auf Virtualisierung<br />

und Terminalserver setzen. So lassen<br />

sich auch unsichere proprietäre Umgebungen<br />

wie MS Windows mit installierten<br />

Closed-Source-Anwendungen in einer<br />

Art Sandbox betreiben. Die setzt der<br />

Server automatisch (beispielsweise mit<br />

VM-Image-Templates) auf einen sicheren<br />

Ausgangszustand zurück, sobald sich der<br />

Anwender abmeldet.<br />

Ebenfalls prüfen muss die IT-Leitung,<br />

inwieweit für kritische Funktionen<br />

Hardwareverschlüsselung zum Einsatz<br />

kommen soll, etwa in Mobiltelefonen.<br />

Certgate zeigt das anhand der Sprachverschlüsselung<br />

in sicheren Smartcards<br />

für das „Merkel-Smartphone“ (Abbildung<br />

1, [8]). Den gleichen Stellenwert sollten<br />

Pass wort-Policies (Länge, Gültigkeitsdauer,<br />

Sonderzeichen, lexikalische Überprüfung),<br />

Arten der Authentifizierung<br />

(Token, Smartcards, Zertifikate) und Stellvertreter<br />

definitionen genießen.<br />

Eine Single-Sign-on-Struktur erweist sich<br />

in vielen Fällen als schwierig, vor allem<br />

mit Open-Source-Mitteln. Hier hat die<br />

Community abseits von LDAP-Kerberos<br />

noch einige Entwicklungsarbeit zu leisten,<br />

vor allem bei der Integration mit<br />

gängigen Desktop-Utilities.<br />

Auch für die Verteilung der nach den<br />

beschriebenen Vorgaben erstellten und<br />

verifizierten Software gelten klare Regeln.<br />

Ein eigenes Repository ist Pflicht,<br />

Binärpakete müssen unbedingt mit Hashcodes<br />

abgesichert und verifizierbar sein.<br />

Downloads über ungesicherte Protokolle<br />

wie HTTP oder FTP sind tabu, für die<br />

stattdessen ausschließlich verwendeten<br />

HTTPS und SFTP bedarf es signierter Zertifikate.<br />

Eine eigene PKI ist spätestens<br />

dann nötig, wenn Mitarbeiter Zugang<br />

über ein VPN erhalten.<br />

Viel Arbeit – die sich lohnt<br />

Egal ob es sich um den eigenen LDAP-<br />

Server, das VPN-Gateway, die Kernel der<br />

im Unternehmen verwendeten Betriebssysteme<br />

oder die Office-Suite handelt: Im<br />

Extremfall muss dieser Leitfaden für jede<br />

Softwarekomponente Anwendung finden.<br />

Admins mit hohem Sicherheitsanspruch<br />

kommen nicht umhin, jede x-beliebige<br />

Software, die sie im Unternehmen einsetzen,<br />

von der Quelle bis zum Desktop des<br />

Mitarbeiters zu verfolgen, zu analysieren<br />

und abzusichern.<br />

An offener Software, freien Standards und<br />

vollständig dokumentierten APIs führt<br />

da kein Weg vorbei. Dabei gilt immer<br />

der KIS-Grundsatz „Weniger ist mehr“:<br />

Schon im Quelltext lassen sich unnötige<br />

Komponenten entfernen, nicht verwendete<br />

Optionen und Funktionen rauswerfen<br />

und so das potenzielle Angriffsziel<br />

minimieren.<br />

In den meisten Fällen ist das nur mit<br />

freier Software möglich, weil nur wenige<br />

große Hersteller ihren Kunden Einblick<br />

in ihre proprietären Produkte gewähren.<br />

Hier schließt sich ein Kreis: Das berechtigte<br />

Sicherheitsbedürfnis der Software-<br />

Entwickler, die ihr geistiges Eigentum vor<br />

der Konkurrenz schützen wollen, verhindert<br />

häufig den Einsatz in Umgebungen<br />

mit hohem Sicherheitsanspruch. n<br />

Infos<br />

[1] Microsofts Shared-Source-Initiative:<br />

[http://www. microsoft.com/resources/<br />

sharedsource/ default.mspx]<br />

[2] BSI-Grundschutzhandbuch:<br />

[http://www. bsi. de/gshb/]<br />

[3] Test Harness:<br />

[http:// en. wikipedia. org/ wiki/Test_harness]<br />

[4] Basel II:<br />

[http://de. wikipedia.org/wiki/Basel_II]<br />

[5] Echelon: [http://en.wikipedia.org/wiki/<br />

Echelon_(signals_intelligence)]<br />

[6] Migrationsleitfaden BMI: [http://www.cio.<br />

bund.de/DE/ IT-Methoden/Migrationsleitfaden/migrationsleitfaden_inhalt.html]<br />

[7] Migrationsleitfaden IBM:<br />

[http://www. redbooks.ibm.com/redbooks/<br />

pdfs/sg246380. pdf]<br />

[8] Certgate: [http://www.certgate.com]<br />

Der Autor<br />

Dr. Markus Rothmeyer ist als Unternehmensberater<br />

tätig und Geschäftsführer<br />

von Maxxel Software.<br />

Seine Spezialgebiete sind<br />

die IT-Strategien, Geo-Data-<br />

Warehouses, Mobilfunkplanung<br />

und GIS.


In eigener Sache: DELUG-DVD<br />

Gnome 3, Suchmaschine, Radio Tux<br />

Einführung 12/2010 06/2011<br />

Software<br />

Auch diesen Monat bekommen die DELUG-Käufer die doppelte Datenmenge zum einfachen Preis: Auf der DVD<br />

finden sich eine virtuelle Appliance mit einem Index der kompletten <strong>Linux</strong>-<strong>Magazin</strong>-Webseite, sechs Vi deos,<br />

das Beste von Radio Tux, ein E-Book und viel Software. Von der DVD bootet das brandneue Gnome 3. Markus Feilner<br />

www.linux-magazin.de<br />

49<br />

Inhalt<br />

50 Bitparade<br />

Drei Werkzeuge zur Datenverschlüsselung<br />

im Vergleich: Wofür eignen sich<br />

Truecrypt, DM-Crypt und Ecryptfs? Wer<br />

hat unter <strong>Linux</strong> die Nase vorn?<br />

56 Tooltipps<br />

Adsuck bremst Werbung aus, Partclone<br />

hilft beim Partitionieren, und Pfm ist der<br />

bessere Filemanager. Vidma verwaltet<br />

Virtualbox-Images, Xchainkeys die<br />

Tastaturbelegung unter X11. Dazu der<br />

schlanke Webserver Weborf.<br />

Neben einem normalen <strong>Linux</strong>-<strong>Magazin</strong><br />

und dem Abonnement ohne Datenträger<br />

gibt es die DELUG-Ausgabe mit Monats-<br />

DVD, bei der die Redaktion den Datenträger<br />

nach einem speziellen Konzept<br />

zusammenstellt: In einer Art modularem<br />

System enthält er Programme und Tools,<br />

die in der jeweiligen <strong>Magazin</strong>-Ausgabe<br />

getestet und besprochen sind. Zudem<br />

gibt es nicht im Heft abgehandelte Software,<br />

die die Redaktion besonders emp-<br />

Abbildung 2: Komplett als E-Book auf der DVD:<br />

O’Reillys „<strong>Linux</strong>-Schnellkurs für Administratoren“.<br />

fiehlt, alles gebündelt unter<br />

einer HTML-Oberfläche. Wer<br />

den Silberling einlegt, findet<br />

in den Webseiten gleich als<br />

Erstes den Menüpunkt »Exklusiv«,<br />

der zu einer virtuellen<br />

Appliance von Open Search<br />

Server und einem E-Book von<br />

O’Reilly führt.<br />

DVD-Boot: Suse 11.4<br />

mit Gnome 3<br />

Von der DVD bootet Open<br />

Suse mit der nagelneuen<br />

Gnome-3-Oberfläche (Abbildung<br />

1). Hier zeigt sich<br />

nach fünf Jahren harter Entwicklungsarbeit<br />

das neueste<br />

Desktop-Design, das die Entwickler stolz<br />

als „revolutionär“ bezeichnen. Mit der <strong>Linux</strong>-<strong>Magazin</strong>-DVD<br />

lässt sich ein eigener<br />

Eindruck gewinnen, ohne die zahlreichen<br />

Softwarepakete installieren zu müssen.<br />

Open Search Server<br />

Im virtuellen Image auf der DVD liegt eine<br />

Suchmaschine, deren Crawler bereits den<br />

gesamten Webserver des <strong>Linux</strong>-<strong>Magazin</strong>s<br />

durchforstet und daraus einen schnell<br />

durchsuchbaren lokalen Index erzeugt<br />

hat. Mit dem klappen Suchanfragen auch<br />

offline – meist in wenigen Millisekunden.<br />

Open Search Server (siehe Artikel auf<br />

Seite 60) basiert auf Tomcat und Lucene,<br />

die Entwickler haben ihn erst vor Kurzem<br />

unter die GPL gestellt.<br />

Wem das noch nicht reicht, der schaut<br />

sich Jon „Maddog“ Hall in der Keynote<br />

auf der Cebit an – als Video direkt von der<br />

DVD, zusammen mit fünf weiteren Open-<br />

Source-Experten. Oder er lauscht Maddog<br />

per Offline-Audiostream: Die Macher<br />

Abbildung 1: Die Gnome-Shell in Version 3 der Desktop-Oberfläche<br />

bringt eine komplett überarbeitete Umgebung.<br />

von Radio Tux haben zum zehnten<br />

Geburtstag des Senders ihre besten Sendungen<br />

zusammengetragen, zum Beispiel<br />

ein Interview mit Mark Shuttleworth.<br />

Admin-Schnellkurs<br />

Damit nicht genug, neben den vielen<br />

Werkzeugen aus den Tooltipps, der Bitparade<br />

und dem Archipel-Artikel aus der<br />

Sysadmin-Rubrik findet sich auf der DVD<br />

auch das komplette E-Book (Abbildung<br />

2, [1]) „<strong>Linux</strong>-Schnellkurs für Administratoren“<br />

mit umfangreichem Grundlagenwissen.<br />

Auf 350 Seiten bringen die Autoren<br />

Tom Adelstein und Bill Lubanovic<br />

dem Leser <strong>Linux</strong>-Know-how nahe, von<br />

der Administration einzelner Rechner bis<br />

zur virtualisierten Umgebung. n<br />

Infos<br />

[1] Tom Adelstein, Bill Lubanovic, „<strong>Linux</strong>-<br />

Schnellkurs für Administratoren“: [http://<br />

www. oreilly.de/catalog/linuxsysadminger/]


Software<br />

www.linux-magazin.de Bitparade 06/2011<br />

50<br />

Vier freie Verschlüsselungstools für <strong>Linux</strong> und Windows im Vergleich<br />

Sicher weggeschlossen<br />

Wer die eigenen Datenbestände vor unbefugtem Zugriff schützen will, verschlüsselt seine Festplatten oder<br />

einzelne Partitionen. Außer dem plattformübergreifenden Truecrypt empfiehlt sich DM-Crypt, aber auch<br />

Ecryptfs oder das Windows-Tool Disk Cryptor haben einiges zu bieten. Markus Feilner, Norbert Graf<br />

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

Das Verschlüsseln von Dateien, Verzeichnissen<br />

und ganzen Partitionen ist<br />

ein probates Mittel, um Unbefugten den<br />

Zugriff auf die eigenen Daten zu verwehren.<br />

Mit DM-Crypt, Truecrypt und<br />

Ecryptfs haben die Anwender mächtige<br />

Werkzeuge an der Hand, die nicht nur<br />

unter <strong>Linux</strong>, sondern auch unter Windows<br />

und Mac OS X sensible Daten<br />

wegsperren. Darüber hinaus integrieren<br />

fast alle Distributoren diverse Verschlüsselungsoptionen<br />

bereits in die Installationsroutinen<br />

(Debian, Ubuntu, Centos,<br />

Open Suse) beziehungsweise in die Partitionierungstools<br />

(Abbildung 1).<br />

Dieser Artikel vergleicht drei Verschlüsselungstools<br />

miteinander, die recht unterschiedliche<br />

Ansätze verfolgen. Tabelle 1<br />

zeigt die wichtigsten Features von Truecrypt,<br />

DM-Crypt und Ecryptfs. Außer<br />

Konkurrenz treten zwei Windows-Tools<br />

im Test an: das zu DM-Crypt kompatible<br />

Free OTFE und Disk Cryptor. Im<br />

Test durfte sich die Software auf einem<br />

Rechner mit AMD Phenom II X4 sowie<br />

8 GByte RAM und einer 80-GByte-Intel-<br />

SSD (SSDSA2M080G2GC) unter Open<br />

Suse 11.4, Ubuntu 10.10 und Windows<br />

XP beweisen.<br />

E Truecrypt<br />

Truecrypt [1] ist der wohl bekannteste<br />

Vertreter der Festplattenverschlüsseler.<br />

Die Software läuft auf neueren Windows-<br />

Systemen (2000, 7, Vista, XP, Server 2003<br />

und 2008), unter Mac OS X ab Version<br />

10.4 und auch auf <strong>Linux</strong>-Rechnern mittels<br />

Fuse. Der Quellcode des Programms<br />

ist zwar erhältlich, dennoch unterliegen<br />

einzelne Komponenten nach wie vor Lizenzen,<br />

die nicht GPL-kompatibel sind:<br />

Das Tool steht unter der Truecrypt-License-Version<br />

3.0, ist kostenlos erhältlich,<br />

aber keine freie Software.<br />

Als einziger Testkandidat bietet Truecrypt<br />

ein GUI und einen grafischen Einrichtungsassistenten<br />

– beide sehen auf allen<br />

Betriebssystemen ähnlich aus und haben<br />

einen vergleichbaren Funktionsumfang.<br />

Truecrypt verschlüsselt per Mausklick<br />

entweder ein ganzes Gerät oder eine bestehende<br />

Partition. Außerdem kennt es<br />

so genannte Container, innerhalb derer<br />

es ein Dateisystem verwaltet.<br />

Container eignen sich vor allem dazu,<br />

auf einer nicht verschlüsselten Partition<br />

einen sicheren Bereich anzulegen. Zum<br />

Lesen und Schreiben mountet Truecrypt<br />

diese Containerdatei. Unter Windows erstellt<br />

es für die sichere Aufbewahrung ein<br />

neues virtuelles Laufwerk, unter Mac OS<br />

X und <strong>Linux</strong> hängt es den Container in<br />

einen beliebigen Ordner ein.<br />

Die Ver- und Entschlüsselung übernimmt<br />

der Truecyrypt-Treiber im Hintergrund<br />

on the Fly. Als Algorithmen unterstützt<br />

die Software AES, Twofish und Serpent.<br />

Es ist möglich, mehrere Algorithmen zu<br />

kaskadieren. Die Windows-Variante hat<br />

gegenüber den <strong>Linux</strong>- und Mac-OS-X-<br />

Versionen die Nase vorn, da sie auch<br />

die Systempartition verschlüsselt (siehe<br />

Abbildung 2).<br />

Insgesamt punktet Truecrypt mit seiner<br />

intuitiven Oberfläche, und der Umgang<br />

ist auch für sicherheitsbewusste Nutzer,<br />

Verschlüsselungstools<br />

DELUG-DVD<br />

Auf der Delug-DVD dieses <strong>Magazin</strong>s<br />

befinden sich die in diesem Artikel<br />

beschriebenen Programme Truecrypt, Free<br />

OTFE, Ecryptfs, DM-Crypt sowie Disk Cryptor,<br />

ein GPL-Tool für Windows.


www.linux-magazin.de<br />

Bitparade 06/2011<br />

Software<br />

51<br />

Abbildung 1: Schon lange bietet Yast an, während der Installation oder danach<br />

Partitionen zu verschlüsseln, hier unter Gnome 3 auf Open Suse 11.4.<br />

Abbildung 2: Truecrypt unter Windows erlaubt es dem Admin sogar, die Systempartition<br />

selbst zu verschlüsseln.<br />

die sich nicht mit Kryptographie auskennen,<br />

leicht zu erlernen (siehe Abbildung<br />

4). Die Defaultwerte im GUI sind in der<br />

Regel sinnvoll gewählt. Wer unsicher ist,<br />

findet in der vorbildlichen Onlinehilfe<br />

umfangreiche und sinvoll gegliederte Informationen.<br />

Besonderes Lob verdient die Automount-<br />

Funktion: Mit einem Klick erkennt das<br />

Programm alle mit Truecrypt verschlüsselten<br />

Volumes und bindet sie – das richtige<br />

Keyfile oder Passwort vorausgesetzt<br />

– automatisch ein.<br />

E DM-Crypt<br />

Einen anderen Ansatz verfolgt DM-Crypt<br />

([2], [3]). Das „DM“ im Namen steht für<br />

Device Mapper – die Software greift auf<br />

das Crypto-API des Kernels (siehe Seite 86)<br />

zu und arbeitet damit auf einer ganz anderen<br />

Ebene als Truecrypt.<br />

Das Kryptographiemodul verschlüsselt<br />

beliebige Gerätedateien mit den Algorithmen<br />

AES und Twofish und fungiert<br />

als zusätzliche Schicht zwischen den<br />

Rohdaten und dem Dateisystem. Diverse<br />

Installationsroutinen und Management-<br />

Tools der Distributoren nutzen DM-Crypt,<br />

um schon bei der Installation etwa das<br />

Home verzeichnis eines Nutzers oder eine<br />

andere Partition zu verschlüsseln.<br />

Das Kommandozeilentool »cryptsetup«<br />

(aus dem gleichnamigen Paket) dient<br />

dazu, nachträglich eine Partition zu verschlüsseln.<br />

Abbildung 5 zeigt die Syntax<br />

und einen typischen Ablauf – vom Erstellen<br />

über das Mounten bis zum Aushängen<br />

und Entschlüsseln. Als ersten Parameter<br />

erwartet »cryptsetup« eine Anweisung<br />

wie »create« oder »luksOpen«, als zweite<br />

Option das Blockdevice (im Beispiel<br />

»/dev/sdb7«) und als dritte den Namen,<br />

unter dem der Mapper das verschlüsselte<br />

Gerät zur Verfügung stellen soll.<br />

Anschließend hängt der Nutzer die verschlüsselte<br />

Partitionen wie gewohnt mit<br />

»mount« ein und mit »umount« wieder<br />

aus. Wer lieber mit einem GUI arbeitet,<br />

verwendet die Partitionierungstools der<br />

Distributoren.<br />

LUKS (<strong>Linux</strong> Unified Key Setup) erweitert<br />

die verschlüsselten Daten um einen<br />

identifizierbaren, standardisierten Header<br />

und speichert in diesem Metadaten<br />

sowie bis zu acht Schlüssel. Auf diese<br />

Weise macht LUKS DM-Crypt skript- und<br />

automatisierbar. Das gestaltet es einerseits<br />

recht einfach, auch die System- und<br />

Außer Konkurrenz: Disk Cryptor<br />

Zwar unter der GPL, aber dennoch ganz auf<br />

Windows beschränkt, präsentiert sich Disk<br />

Cryptor [4]. Das Tool wartet mit einer ähnlich<br />

intuitiven Oberfläche wie Truecrypt auf (siehe<br />

Abbildung 3) und erschließt sich dem Anwender<br />

durch einfaches Ausprobieren. Die umfangreiche<br />

Dokumentation auf der Webseite erklärt<br />

zudem die Integration mit <strong>Linux</strong>-Bootloadern<br />

für Dual-Boot-Systeme oder<br />

auch für Windows-Live-CDs mit<br />

Bart PE.<br />

Bis einschließlich Version 0.4<br />

war Disk Cryptor sogar kompatibel<br />

zu Truecrypt, doch dann<br />

schlugen die Entwickler einen<br />

anderen Weg ein – laut eigener<br />

Aussagen wegen einiger „Unzulänglichkeiten<br />

des Truecrypt-<br />

Formats“. Damit verabschiedeten<br />

sie sich leider aber auch von<br />

der Plattformunabhängigkeit.<br />

Heute hängt Disk Cryptor der<br />

Swap-Partitionen zu verschlüsseln, wenn<br />

der Benutzer dafür sorgt, dass die benötigten<br />

Module wie »dm-crypt« in der Initial<br />

Ramdisk vorhanden sind. Anders als<br />

Truecrypt, das seinen eigenen Bootloader<br />

mitbringt, braucht DM-Crypt andererseits<br />

ein unverschlüsseltes »/boot«-Verzeichnis<br />

in einer eigenen Partition oder auf einem<br />

USB-Stick.<br />

Im Gegensatz zu reinem DM-Crypt sind<br />

LUKS-DM-Crypt-Partitionen beispielsweise<br />

durch den Header als solche erkennbar.<br />

Bei Truecrypt findet die Software<br />

verschlüsselte Partitionen zwar<br />

auch automatisch, ermöglicht aber trotzdem<br />

Hidden Volumes.<br />

Auch für Wanderer zwischen den Betriebssystemwelten<br />

hat DM-Crypt etwas<br />

Konkurrenz, vor allem dem Rivalen Truecrypt,<br />

im Funktionsumfang deutlich hinterher. Das<br />

Tool beherrscht keine Containerverschlüsselung<br />

und liest verschlüsselte Partitionen nur,<br />

wenn diese mit FAT oder NTFS formatiert sind.<br />

Überraschenderweise bietet Disk Cryptor jedoch<br />

eine Konsolenversion (»dccon.exe«) für<br />

den ambitionierten Windows-User.<br />

Abbildung 3: Das GPL-Tool Disk Cryptor punktet ebenfalls mit einer<br />

übersichtlichen Oberfläche.


Software<br />

www.linux-magazin.de Bitparade 06/2011<br />

52<br />

Abbildung 4: Truecrypt gilt für viele Anwender als das Desktop-Verschlüsselungstool schlechthin. Die Oberfläche<br />

ist selbsterklärend; detaillierte Informationen verrät das Terminal im Hintergrund.<br />

Bordmittel. Listing 1 zeigt eine typische<br />

Ecryptfs-Sitzung. Beim erstmaligen Einbinden<br />

mit »mount -t ecryptfs« fragt<br />

die Software den Anwender nach den<br />

möglichen Parametern für die Verschlüsselung,<br />

zum Beispiel nach Cipher, Key<br />

oder Passwort, nach Key-Typ und -Länge.<br />

Bei jedem weiteren Mountvorgang dieses<br />

Verzeichnisses verlangt es nur mehr die<br />

Legitimation.<br />

Eine konzeptionelle Schwachstelle darf<br />

nicht unerwähnt bleiben: Jeder Benutzer<br />

mit Administrator-Rechten kann die verschlüsselten<br />

Verzeichnisse der anderen<br />

Anwender auslesen, da die Passphrase<br />

für die verschlüsselten Daten an das Benutzerkennwort<br />

gebunden ist. Ein möglicher<br />

Ausweg ist, die Passphrase auf ein<br />

externes Medium wie einen USB-Stick<br />

oder eine SSD-Karte auszulagern [8].<br />

Benchmarks<br />

zu bieten. Das GPL-Projekt Free OTFE<br />

[5] stellt ein Windows-Programm bereit,<br />

das unter <strong>Linux</strong> verschlüsselte Volumes<br />

auch auf dem Redmonder Betriebssystem<br />

liest und schreibt (siehe Abbildung 6).<br />

E Ecryptfs<br />

Im Gegensatz zu den beiden ersten Testkandidaten<br />

verschlüsselt Ecryptfs [6]<br />

auf Dateiebene, nicht auf der Ebene der<br />

Blockdevices. Ecryptfs setzt im Hintergrund<br />

auf Cryptfs und den Fist-Standard<br />

mit seinen Stackable Filesystems [7]. Das<br />

Enterprise Cryptographic Filesystem ist<br />

fester Bestandteil des <strong>Linux</strong>-Kernels seit<br />

Version 2.6.19. Ubuntu setzt seit 9.04,<br />

Jaunty Jackalope, auf Ecryptfs und bietet<br />

schon im Installer an, das eigene Homeverzeichnis<br />

zu verschlüsseln.<br />

Das Tool unterstützt keine Container<br />

oder Partitionen, und obwohl es ein eigenes<br />

Werkzeug für die Verschlüsselung<br />

von Swap-Partitionen mitbringt, kann es<br />

keine Systempartitionen absichern. Wer<br />

»/swap« mit Ecryptfs sichert, sollte beachten,<br />

dass auf vielen <strong>Linux</strong>-Systemen<br />

danach das Schlafenlegen beziehungsweise<br />

Aufwachen (Hibernate/Resume)<br />

nicht mehr funktionieren.<br />

Wie DM-Crypt verzichtet auch Ecryptfs<br />

auf ein GUI und setzt ganz auf <strong>Linux</strong>-<br />

Tabelle 1 zeigt die drei für <strong>Linux</strong> verfügbaren<br />

Tools in einem direkten Vergleich.<br />

Beim Bonnie++-Benchmark<br />

überraschte Ecrypt fs mit deutlich höherem<br />

Lesedurchsatz als die beiden Konkurrenten.<br />

Der Preis dafür ist klar: Die<br />

CPU war beim Schreiben zu 86 Prozent,<br />

beim Lesen sogar zu 96 Prozent ausgelastet<br />

– das ist deutlich mehr Last als<br />

bei den anderen beiden. Wer Durchsatz<br />

braucht, sollte sich Ecryptfs anschauen,<br />

allerdings bieten die beiden Konkurrenten<br />

mehr Features.<br />

Truecrypt und DM-Crypt sind zwar etwas<br />

langsamer, gehen aber dafür auch schonender<br />

mit der CPU um. Truecrypt glänzt<br />

Listing 1: »ecryptfs«-Sitzung<br />

01 # mount ‐t ecryptfs Quellverzeichnis<br />

verschlüsseltes Verzeichnis<br />

02 Select key type to use for newly created files:<br />

03 1) pkcs11‐helper<br />

04 2) tspi<br />

05 3) passphrase<br />

06 4) openssl<br />

07 Selection: 3<br />

08 Passphrase:<br />

09 Select cipher:<br />

10 1) aes: blocksize = 16; min keysize = 16;<br />

max keysize = 32 (loaded)<br />

11 2) blowfish: blocksize = 16; min keysize =<br />

16; max keysize = 56 (not loaded)<br />

12 3) des3_ede: blocksize = 8; min keysize =<br />

24; max keysize = 24 (not loaded)<br />

13 4) cast6: blocksize = 16; min keysize = 16;<br />

max keysize = 32 (not loaded)<br />

14 5) cast5: blocksize = 8; min keysize = 5;<br />

max keysize = 16 (not loaded)<br />

15 Selection [aes]: 1<br />

16 Select key bytes:<br />

17 1) 16<br />

18 2) 32<br />

19 3) 24<br />

20 Selection [16]: 1<br />

21 Enable plaintext passthrough (y/n) [n]:<br />

22 Enable filename encryption (y/n) [n]:<br />

23 Attempting to mount with the following options:<br />

24 ecryptfs_unlink_sigs<br />

25 ecryptfs_key_bytes=16<br />

26 ecryptfs_cipher=aes<br />

27 ecryptfs_sig=d395309aaad4de06<br />

28 WARNING: Based on the contents of [/root/.<br />

ecryptfs/sig‐cache.txt],<br />

29 it looks like you have never mounted with<br />

this key<br />

30 before. This could mean that you have typed<br />

your<br />

31 passphrase wrong.<br />

32<br />

33 Would you like to proceed with the mount<br />

(yes/no)? : yes<br />

34 Would you like to append sig<br />

[d395309aaad4de06] to<br />

35 [/root/.ecryptfs/sig‐cache.txt]<br />

36 in order to avoid this warning in the future<br />

(yes/no)? : yes<br />

37 Successfully appended new sig to user sig<br />

cache file<br />

38 Mounted eCryptfs


Bitparade 06/2011<br />

Software<br />

www.linux-magazin.de<br />

53<br />

Abbildung 5: Wer braucht schon ein GUI, wenn er eine Kommandozeile hat? So<br />

sieht eine typische DM-Crypt-Sitzung aus.<br />

Abbildung 6: Die GPL-Software Free OTFE erlaubt es, mit DM-Crypt verschlüsselte<br />

Datenträger unter Windows einzubinden.<br />

mit seinem vorbildlichen GUI, DM-Crypt<br />

mit nahezu perfekter <strong>Linux</strong>-Integration,<br />

die flexible Setups mit nahezu beliebigen<br />

Filesystemen ermöglicht.<br />

Wer sein <strong>Linux</strong>-System komplett verschlüsseln<br />

will, greift zu DM-Crypt. Dagegen<br />

setzt der Windows-Anwender auf<br />

Truecrypt, das für derartige Setups einen<br />

eigenen Bootloader mit Pre-Boot-Authentication<br />

mitbringt, der als Chainloader<br />

auch <strong>Linux</strong> startet. Für Anwender tragbarer<br />

Geräte, die <strong>Linux</strong> und Windows als<br />

Dual-Boot-System betreiben, führt daher<br />

kein Weg an einer Doppellösung vorbei,<br />

auch wenn die unfreie Lizenz einige vielleicht<br />

dabei stört.<br />

Auch wer seinen verschlüsselten USB-<br />

Stick an einen Windows- oder Mac-OS-X-<br />

Rechner anstöpseln will, sollte Truecrypt<br />

wegen seiner Plattformunabhängigkeit<br />

bevorzugen. In Szenarien, wo nur <strong>Linux</strong><br />

im Einsatz ist, eignet sich die Kernelbasierte<br />

DM-Crypt-Variante meist besser<br />

– und falls doch einmal ein Windows-<br />

System ins Spiel kommt, hilft das GPL-<br />

Tool Free OTFE. (hej)<br />

n<br />

Infos<br />

[1] Truecrypt: [http://www.truecrypt.org]<br />

[2] DM-Crypt:<br />

[http://www. saout. de/misc/dm-crypt]<br />

[3] Michael Nerb, „Mobiler Datentresor“:<br />

<strong>Linux</strong>-<strong>Magazin</strong> 10/ 06, S. 46<br />

[4] Disk Cryptor: [http://diskcryptor.net]<br />

[5] Free OTFE: [http://www.freeotfe.org]<br />

[6] Ecryptfs: [https://launchpad.net/ecryptfs]<br />

[7] Fist: [http:// www.filesystems.org]<br />

[8] Bruce Byfield, Kristian Kißling, „Gut versteckt“:<br />

Ubuntu User 4/10, S. 46<br />

Tabelle 1: Verschlüsselungstools für <strong>Linux</strong> im Vergleich<br />

Truecrypt DM-Crypt Ecryptfs<br />

Version 7.0a Kernel 2.6.37 86<br />

Lizenz TCL 3.0 GPL GPL<br />

Plattform <strong>Linux</strong>, Windows, Mac OS X <strong>Linux</strong> <strong>Linux</strong><br />

Testsysteme Open Suse 11.4, Ubuntu 10.10,<br />

Windows XP<br />

Open Suse 11.4, Ubuntu 10.10 Open Suse 11.4, Ubuntu 10.10<br />

Features<br />

Algorithmen AES, Serpent, Twofish AES, Twofish (je nach Kernel) AES, Blowfish, Des3_ede, Twofish,<br />

Cast5, Cast6<br />

Container ja ja nein<br />

Systempartition ja (nur Windows) ja nein<br />

Partitionen ja ja nein<br />

Container-Dateisystem FAT, NTFS, Ext 2, Ext 3, Ext 4<br />

(im GUI, weitere am CLI)<br />

alle gängigen <strong>Linux</strong>-Dateisysteme nur Dateiverschlüsselung<br />

GUI ja nein nein<br />

Bechmark-Ergebnisse (Bonnie++)<br />

Sequenzielles Schreiben 57 MByte/ s 58 MByte/ s 76 MByte/ s<br />

CPU-Last dabei 8 Prozent 16 Prozent 86 Prozent<br />

Sequenzielles Lesen 67 MByte/ s 64 MByte/ s 197 MByte/ s<br />

CPU-Last dabei 10 Prozent 10 Prozent 96 Prozent<br />

Random Seeks 2200 pro Sekunde 2900 pro Sekunde 1490 pro Sekunde


Software<br />

www.linux-magazin.de Tooltipps 06/2011<br />

56<br />

Werkzeuge im Kurztest<br />

Tooltipps<br />

Partclone 0.2.21<br />

Partitionen klonen<br />

Quelle: [http:// www.partclone.org]<br />

Lizenz: GPLv2<br />

Alternativen: G4u, Clonezilla<br />

Personal File Manager 2.11.2<br />

Schlanker Dateimanager für die Konsole<br />

Quelle: [http:// p‐f‐m.sourceforge.net]<br />

Lizenz: GPLv2<br />

Alternativen: Midnight Commander, Last File<br />

Manager<br />

Vidma 0.0.3a<br />

Virtual Disk Images manipulieren<br />

Quelle: [http:// wiki.przemoc.net/projects/<br />

start#vidma]<br />

Lizenz: GPLv2<br />

Alternativen: Vboxmanage<br />

Partclone unterstützt den Anwender<br />

beim Sichern und Wiederherstellen von<br />

Partitionen. Das Tool erfasst dazu die<br />

benutzten Blöcke und speichert sie in<br />

einer Datei. Zusätzlich zu dieser blockweisen<br />

Sicherung bietet Partclone Optimierungsfunktionen<br />

für gängige Dateisysteme<br />

wie Ext 4, Btrfs, NTFS, FAT, HFS<br />

Plus und UFS2.<br />

Alle Einstellungen übergibt der Anwender<br />

in Form von Aufrufparametern auf<br />

der Shell. Um das Image einer Partition<br />

zu erstellen, definiert er das Device und<br />

gibt den Namen der Ausgabedatei an. Mit<br />

der Option »­­clone« fasst das Programm<br />

nur die belegten Blöcke einer Partition<br />

in einem speziellen Imageformat zusammen.<br />

Um beschädigte Partitionen zu<br />

sichern, ruft der Nutzer das Tool zusammen<br />

mit »­­rescue« auf. Partclone überspringt<br />

dann nicht lesbare Blöcke.<br />

Befinden sich Quell­ und Zielpartition auf<br />

demselben Rechner, sorgt der Parameter<br />

»­­dev­to­dev« dafür, dass Partclone ohne<br />

Umweg über ein Image die Daten direkt<br />

in die Zielpartition schreibt. Mit Partclone<br />

erstellte Imagedateien überprüft das mitgelieferte<br />

Tool »partclone.chkimg« auf<br />

Fehler – eine gute Idee, falls der Anwender<br />

sie nicht selbst erstellt hat.<br />

★★★★★ Partclone klont Partitionen<br />

ohne großen Aufwand, bezieht auf<br />

Wunsch nur die belegten Blöcke mit ein<br />

und erzeugt so wesentlich schlankere<br />

Images als der Klassiker »dd«. n<br />

Der Personal File Manager, kurz PFM, ist<br />

die Reinkarnation des DOS­Dateimanagers<br />

»PFM.COM«. Das in Perl geschriebene<br />

Tool bietet eine klar strukturierte Ncurses­<br />

Oberfläche und zahlreiche Shortcuts, sodass<br />

alle wichtigen Funktionen mit einer<br />

oder zwei Tasten erreichbar sind.<br />

Etwas gewöhnungsbedürftig sind die<br />

Case­sensitiven Tastenkombinationen.<br />

Hilfe erhält der Anwender über die am<br />

oberen und unteren Rand eingeblendeten<br />

Statuszeilen. Da der Platz meist nicht<br />

für alle Shortcuts ausreicht, besteht die<br />

Möglichkeit, mit den Tasten []<br />

nach rechts und links zu blättern.<br />

Neben den klassischen Aufgaben wie dem<br />

Kopieren, Löschen, Suchen oder Verschieben<br />

von Dateien erstellt PFM auch Links<br />

und Named Pipes und verändert Zugriffsund<br />

Benutzerrechte. In der Voreinstellung<br />

wendet PFM alle Aktionen nur auf die<br />

Datei unter dem Auswahlbalken an. Mit<br />

[F10] wechselt der Nutzer auf Wunsch<br />

in den Multi­File­Modus und markiert<br />

dann mehrere Objekte. Wer sich zusätzlich<br />

Mausunterstützung wünscht, schaltet<br />

diese mit [F12] hinzu.<br />

★★★★★ PFM ist ein leistungsfähiger Dateimanager<br />

für die Konsole. Da alle wichtigen<br />

Funktionen über höchstens zwei<br />

Tasten erreichbar sind, überzeugt das Tool<br />

vor allem durch schnelle Bedienung. n<br />

Oracles Virtualbox zählt neben VMware<br />

zu den beliebtesten Virtualisierungs­Lösungen<br />

im Desktopbereich. Zusammen<br />

mit dem grafischen Frontend bringt Virtualbox<br />

das Tool Vboxmanage mit, das virtuelle<br />

Maschinen auf der Kommandozeile<br />

erstellt, wartet und modifiziert. Vidma<br />

erlaubt es dem Admin, auch ohne Virtualbox­Installation<br />

die Größe von Virtualbox<br />

Disk Images (VDI) zu verändern.<br />

Das Tool, das sich noch im Entwicklungsstadium<br />

befindet, arbeitet sowohl mit dynamisch<br />

wachsenden als auch mit Images<br />

fester Größe zusammen. Übergibt der<br />

Anwender beim Aufruf eine VDI­Datei<br />

ohne weitere Parameter, erhält er eine<br />

Liste mit deren Konfigurationsdateien.<br />

Hier findet er unter anderem Informationen<br />

zur Größe und zur UUID und erfährt,<br />

wie viele Sektoren, Leseköpfe und Zylinder<br />

die virtuelle Festplatte hat.<br />

Um die Größe zu verändern, gibt es zwei<br />

Ansätze. Bei der In­Place­Modifikation<br />

definiert der Nutzer beim Aufruf die<br />

Imagedatei und die neue Größe in MByte<br />

und überschreibt das VDI. Sicherer ist der<br />

zweite Weg, bei dem Vidma alle Daten in<br />

eine neue Imagedatei kopiert.<br />

★★★★★ Vidma manipuliert die Größe<br />

von VDI­Dateien und hilft damit Anwendern,<br />

die keinen Zugriff auf eine Virtualbox­Installation<br />

haben.<br />

n


MAGAZIN<br />

5. Mailserver-Konferenz<br />

Sie waren<br />

26. und 27. Mai 2011 in Berlin<br />

noch nie auf der Mailserver-<br />

Konferenz? Da haben<br />

Sie aber was verpasst. Was<br />

genau, das zeigt Ihnen unser<br />

Doku-Film vom letzten mal.<br />

http://www.heinlein-support.de/mk-film<br />

Mailserver-Spezialist Peer Heinlein lädt zur 5. Mailserver-Konferenz<br />

mit zahlreichen ausführlichen Vorträgen nach Berlin.<br />

Postfix Dovecot Spamhaus<br />

Groupware-Wettstreit Amavis<br />

Spamhaus<br />

E-Mail-Clouds DE-Mail<br />

Archivierung<br />

Rechtsfragen Botnetze<br />

...und weitere Themen!<br />

Vorträge mit:<br />

Timo Sirainen (Dovecot)<br />

Wietse Venema (Postfix)<br />

Mark Martinec (Amavis)<br />

Special Guests von Spamhaus und anderen...<br />

Jetzt anmelden:<br />

http://www.heinlein-support.de/mk<br />

Mit freundlicher Unterstützung von


Software<br />

www.linux-magazin.de Tooltipps 06/2011<br />

58<br />

Adsuck 2.2<br />

Kleiner DNS‐Server mit Filterfunktion<br />

Quelle: [http:// opensource.conformal.com/<br />

wiki/Adsuck]<br />

Lizenz: BSD Revised<br />

Alternativen: Rbldnsd, Dnsmasq<br />

Weborf 0.13<br />

Schlanker Webserver für den Datenaustausch<br />

Quelle: [http:// galileo.dmi.unict.it/wiki/<br />

weborf]<br />

Lizenz: GPLv3<br />

Alternativen: Ashd, Darkhttpd<br />

Xchainkeys 0.9<br />

Verwaltung von Tastenkürzeln für X11<br />

Quelle: [http:// code.google.com/p/<br />

xchainkeys]<br />

Lizenz: GPLv3<br />

Alternativen: Xbindkeys, Arq Key<br />

Adsuck ist ein kompakter Domain Name<br />

Server, dessen Schwerpunkt im Gegensatz<br />

zu ISC Bind nicht bei der Verwaltung<br />

von DNS­Zonen liegt, sondern bei der<br />

Filterung fragwürdiger Domains.<br />

Für den Client läuft das transparent ab:<br />

Der Nutzer trägt den Rechner, auf dem<br />

Adsuck aktiv ist, wie einen gewöhnlichen<br />

DNS­Server in die Datei »resolv.conf« des<br />

Clients ein. Adsuck agiert dann wie ein<br />

„Man in the middle“ und fängt zunächst<br />

alle DNS­Anfragen ab. Diese vergleicht<br />

das Tool mit seiner Blacklist.<br />

Dabei handelt es sich um eine einfache<br />

Textdatei, die ähnlich wie die »resolv.<br />

conf« aufgebaut ist und je einen Domaineintrag<br />

pro Zeile enthält. Findet Adsuck<br />

in der Blacklist einen Treffer, antwortet<br />

das Programm auf die Anfrage mit einem<br />

DNS­Paket, in dem das »NXDOMAIN«­<br />

Flag gesetzt ist. Damit gaukelt das Tool<br />

dem Client vor, es gäbe keine Domain<br />

mit diesem Namen. Anfragen an nicht<br />

gelistete Domains leitet Adsuck hingegen<br />

an einen geeigneten DNS­Server weiter,<br />

der diese dann beantwortet.<br />

Aus Sicherheitsgründen läuft Adsuck in<br />

einer Chroot­Umgebung mit den Rechten<br />

eines unprivilegierten Benutzers. Über<br />

Parameter legt der Nutzer eine IP­Adresse<br />

und einen Port fest, auf dem Adsuck<br />

eingehende Verbindungen erwartet. Die<br />

Blacklist und den DNS­Server für gültige<br />

Anfragen übergibt der Anwender ebenfalls<br />

beim Aufruf per Option; eine Konfigurationsdatei<br />

besitzt das Tool nicht.<br />

★★★★★ Adsuck unterbindet den Zugriff<br />

auf Domains schon auf DNS­Ebene. Die<br />

mitgelieferte Blacklist ist sehr umfangreich,<br />

der Anwender erweitert sie problemlos<br />

um eigene Einträge.<br />

n<br />

Weborf ist ein minimalistischer Webserver,<br />

der dazu dient, schnell Verzeichnisse<br />

freizugeben. Das Tool kommt auch<br />

mit größeren Datenmengen zurecht und<br />

überträgt auf Wunsch Verzeichnisse als<br />

»tar.gz«­Archive. Um ein Verzeichnis freizuschalten,<br />

übergibt der Nutzer es beim<br />

Start als »basedir«. Weborf stellt es dann<br />

inklusive aller Unterverzeichnisse auf allen<br />

Interfaces an Port 8080 bereit.<br />

In der Voreinstellung erzeugt der Webserver<br />

eine Liste aller Dateien in einem<br />

Ordner und wertet eventuell enthaltene<br />

Indexdateien nicht aus. Das Verhalten<br />

ändert der Nutzer über den Parameter<br />

»­­index« und legt damit fest, welche Dateien<br />

Weborf als Index interpretiert. Mehrere<br />

Dateien sind möglich, zum Beispiel<br />

»­­index index.html,index.php«. Weborf<br />

zeigt deren Inhalt dann anstelle des Dateiverzeichnisses.<br />

Wer gleich mehrere Verzeichnisse freigeben<br />

möchte, kann dies über virtuelle<br />

Hosts erledigen. Die Option »­V« erwartet<br />

eine Liste virtueller Hosts, die neben den<br />

Namen auch jeweils ein »basedir« enthält.<br />

Weitere Beispiele hierfür und zu anderen<br />

Startoptionen bietet die Manpage.<br />

Alle Einstellungen nimmt der Nutzer<br />

wahlweise über Parameter auf der Shell<br />

vor oder trägt sie in die Einrichtungsdatei<br />

»weborf.conf« ein. Für den Dauereinsatz<br />

des Servers empfiehlt sich eine Kombination<br />

mit einem Daemon wie Inetd oder<br />

Xinetd, um Ressourcen zu sparen. Die<br />

Zusammenarbeit mit einem Superserver<br />

erlaubt bei Weborf der Parameter »­T«.<br />

★★★★★ Weborf ist ein leistungsfähiger<br />

kleiner Webserver, der sich ideal zur<br />

Datenfreigabe in lokalen oder Ad­hoc­<br />

Netzen eignet.<br />

n<br />

Mit Hilfe von Xchainkeys definiert der<br />

Anwender unabhängig von der grafischen<br />

Oberfläche Tastenkürzel. Somit<br />

eignet sich das Tool nicht nur für Nutzer<br />

schlanker Windowmanager, sondern<br />

auch für jene, die öfter die grafische Umgebung<br />

wechseln.<br />

Alle Shortcuts und die zugehörigen Ereignisse<br />

legt der Anwender in der Konfigurationsdatei<br />

(»~/.config/xchainkeys«) fest.<br />

Alternativ gibt er beim Start über »­f« eine<br />

andere Einrichtungsdatei an. Ein grafisches<br />

Tool zum Erstellen der Konfigurationsdatei<br />

liefert Xchainkeys nicht mit,<br />

sodass der Anwender diese im Texteditor<br />

bearbeitet. Die Syntax ist eingängig – jede<br />

Zeile enthält genau ein Tastenkürzel und<br />

eine Aktion mitsamt ihrer jeweiligen Argumente.<br />

Für komplexere Aufgaben ist<br />

es möglich, mehrere Shortcuts mit dem<br />

»group«­Parameter zusammenzufassen.<br />

Dieser deaktiviert den Timeout­Wert,<br />

damit Kombinationen, zwischen denen<br />

mehr als drei Sekunden liegen, als zusammengehörig<br />

gelten.<br />

Darüber hinaus ist es möglich, über<br />

den Parameter »load« Tastenkürzel aus<br />

einer externen Datei nachzuladen. Die<br />

Manpage zeigt für alle Einsatzgebiete<br />

Beispiele. Wer dennoch unsicher ist,<br />

wie eine gewünschte Kombination in<br />

der Xchainkeys­Konfiguration aussehen<br />

muss, startet das Tool mit der Option<br />

»­k« im interaktiven Modus. Xchainkeys<br />

fängt nun alle Eingaben ab und gibt den<br />

zugehörigen Shortcut aus.<br />

★★★★★ Wer einen Windowmanager<br />

ohne vorgefertigte Tastaturshortcuts einsetzt<br />

oder öfter die grafische Umgebung<br />

wechselt, findet in Xchainkeys den idealen<br />

Helfer. (U. Vollbracht/ hej) n


Aus dem Alltag eines Sysadmin: Kalendarische Crontab-Probleme<br />

Tag eins, tagaus<br />

Einführung 12/2010 06/2011<br />

Sysadmin<br />

Diesmal beschränkt sich Sysadmin Charly thematisch auf Gott, die Herrschaft der Jakobiner, den neuen Konservatismus<br />

Napoleon Bonapartes, die jüdische und islamische Tradition sowie einen Cronjob, der fast nicht<br />

funktioniert hätte. Charly Kühnast<br />

Inhalt<br />

60 Open Search Server<br />

Was die recht junge Version der Indexer-<br />

Suite mit Management-GUI und XML-API<br />

zu bieten hat, sucht seinesgleichen.<br />

66 Archipel<br />

Das Management-Tool landet ein<br />

schickes GUI an und kommunziert mit<br />

den virtuellen Instanzen, die Server mit<br />

Xen, KVM, Open VZ und VMware bereitstellen.<br />

„Aber am siebenten Tag ruhte Er von<br />

allen seinen Werken“ [1]. „Und nirgends<br />

steht geschrieben, dass er am achten<br />

Tage wieder anfing“ (Konrad Beikircher,<br />

Kabarettist).<br />

Kurz nach der Französischen Revolution<br />

führte Frankreich ein neues Kalendersystem<br />

ein. Es sollte die Trennung<br />

von Kirche und Staat manifestieren und<br />

das Dezimalsystem als „Prinzip der Vernunft“<br />

feiern. Ab dem Jahr 1792 dauerte<br />

eine Woche 10 Tage. Der neue Kalender<br />

war einigermaßen unbeliebt, denn er bescherte<br />

den Franzosen deutlich längere<br />

Arbeitswochen. Napoleon machte dem<br />

Kalenderspuk 13 Jahre später ein Ende<br />

und repatriierte die 7-Tage-Woche. Zurück<br />

blieb eine gewisse Verunsicherung<br />

der Bürger gegenüber der Institution<br />

Woche, beispielsweise in der Frage, an<br />

welchem Tag sie beginnt.<br />

Zwar gibt es eine Norm der International<br />

Organization for Standardization (ISO)<br />

mit der Ziffer 8601, die festlegt, dass eine<br />

Kalenderwoche mit dem Montag beginnt.<br />

Diese Regelung besteht im europäischen<br />

Raum seit dem 1.1.1976. Allerdings ist in<br />

vielen Ländern der erste Tag der Woche<br />

nicht automatisch auch der erste Arbeitstag<br />

der Woche. Gemäß der jüdischen,<br />

christlichen und islamischen Tradition<br />

beginnt die Woche nämlich mit dem<br />

freien Sonntag. Der Montag als erster Arbeitstag<br />

ist bereits<br />

der zweite Tag der<br />

Woche. Das praktizieren<br />

zum Beispiel<br />

die USA und<br />

Aus tralien so und<br />

auch viele arabische<br />

Länder.<br />

Ich erzähle das alles,<br />

weil ich (a)<br />

gern klugscheiße<br />

und mir (b) ein<br />

wichtiges Cronskript<br />

um ein Haar<br />

auf den Fuß gefallen<br />

wäre – nur ein<br />

Blick in die Manpage<br />

hat mich im letzten Moment gerettet.<br />

Mein Skript sollte an jedem Montag<br />

um 03:00 Uhr nachts laufen. Mein Cron-<br />

Eintrag sah so aus:<br />

0 3 * * 0 /Pfad/Skript.sh<br />

Ich wusste zwar, dass die Wochentage in<br />

der Crontab von 0 bis 6 und nicht von 1<br />

bis 7 durchnummeriert sind. Allerdings<br />

ist der Autor des Cron-Daemon, Paul<br />

Vixie, US-Amerikaner. Der erste Tag der<br />

Woche, der Tag »0«, ist für ihn der Sonntag.<br />

Mein Skript wäre am falschen Tag<br />

gelaufen, denn ich hätte im fünften Feld<br />

eine »1« setzen müssen.<br />

Entziffert<br />

Allerdings lässt sich das Wochentagsfeld<br />

in der Crontab auch so füllen, dass<br />

es eindeutig ist, denn Cron akzeptiert<br />

an Stelle der Ziffern von Null bis Sechs<br />

auch die englischen Drei-Buchstaben-<br />

Abkürzungen der Wochentage:<br />

0 3 * * Mon /Pfad/Skript.sh<br />

Wie von den Ziffern gewohnt, darf ich<br />

auch hier Zeiträume definieren. Wenn<br />

mein Skript täglich von Montag bis Freitag<br />

laufen soll, lautet der Eintrag:<br />

0 3 * * Mon‐Fri /Pfad/Skript.sh<br />

Cron kennt übrigens auch ein paar<br />

Schleichwege: Soll mein Skript täglich<br />

um Mitternacht laufen, genügt der Eintrag<br />

»@daily /Pfad/Skript.sh«. Ähnlich<br />

verhalten sich »@hourly« (zu jeder<br />

vollen Stunde), »@monthly« (um Mitternacht<br />

am Monatsanfang), »@yearly«<br />

(zum Silvesterfeuerwerk) und »@reboot«<br />

(bei jedem Neustart). (jk) n<br />

Infos<br />

[1] Die Bibel, 2. Mose, 10<br />

Der Autor<br />

Charly Kühnast administriert Unix-Syste me im<br />

Rechenzentrum Niederrhein in Kamp-Lintfort.<br />

Zu seinen Aufgaben gehören die Sicherheit und<br />

Verfügbarkeit der Firewalls<br />

und der DMZ. Im heißen Teil<br />

seiner Freizeit frönt er dem<br />

Ko chen, im feuchten Teil der<br />

Süßwasseraquaristik und im<br />

östlichen lernt er Japanisch.<br />

© Kellerbrandt, Photocase.com<br />

www.linux-magazin.de<br />

59


Sysadmin<br />

www.linux-magazin.de Open Search Server 06/2011<br />

60<br />

Open Search Server durchsucht das Web, Datenbanken und Files<br />

Gut sortiert<br />

Freie Suchmaschinen gibt es viele, doch was der Open Search Server zu bieten hat, sucht seinesgleichen. Dieser<br />

Artikel nimmt die noch recht junge Version der Indexer-Suite mit Management-GUI und XML-API unter die<br />

Lupe und zeigt, wie sich die Suche mit PHP in Webseiten integriert. Markus Feilner, Thomas Pfeiffer, Markus Heller<br />

© Paweł Szpytma, 123RF.com<br />

Paris, Februar 2010. Das französische<br />

Startup Jaeksoft nimmt seine Arbeit auf.<br />

Ein Jahr später veröffentlicht der Hersteller<br />

bereits Version 1.2 seiner Such- und<br />

Indizierungssuite Open Search Server [1].<br />

Das jugendliche Stadium zeigt sich zwar<br />

noch an einigen ärgerlichen Ecken und<br />

Kanten, doch der üppige Funktionsumfang<br />

überrascht. Da zeigt sich dann, dass<br />

Entwickler bereits seit 2007 an dem Projekt<br />

arbeiten – bis 2010 allerdings hinter<br />

verschlossenen Türen.<br />

Freies Indizieren<br />

Der Open Search Server (OSS) scannt<br />

Webseiten, lokale Dateisysteme und Datenbanken.<br />

Sein Indexer versteht eine<br />

lange Liste von Dateiformaten, ein API<br />

ermöglicht den unkomplizierten und<br />

schnellen Zugriff auf die Ergebnisse<br />

sowie auf die meisten der zahlreichen<br />

Funktionen (Abbildung 1). Im Hintergrund<br />

werkelt Java in einem Tomcat-Server<br />

[2]. Dazu kommt die Lucene-Search-<br />

Engine [3], deren Query-Parser-Syntax<br />

und Score-Funktionen Admins und<br />

Entwickler nicht nur im Management-<br />

Interface nutzen können (siehe Kasten<br />

„Lucene“). Als Scheduler setzt OSS auf<br />

Quartz [4]. Das flotte und flexible GUI<br />

(Abbildung 2) ist mit Zkoss [5] implementiert<br />

und funktioniert mit allen Ajaxfähigen<br />

Browsern.<br />

Enterprise-Support<br />

Über die freie Variante hinaus, die ihrer<br />

modularen Natur gemäß auf einem<br />

ganzen Bündel von Lizenzen (darunter<br />

Open Search Server<br />

DELUG-DVD<br />

Auf der Delug-DVD findet sich<br />

der Open Search Server sowohl als Installationspaket<br />

als auch als virtuelle Maschine mit<br />

einem vorbereiteten Index von über 50 000<br />

Seiten von [http:// www.linux-magazin.de].<br />

auch AGPL und GPLv3) aufbaut, bietet<br />

Hersteller Jaeksoft auch eine Enterprise-<br />

Version mit optionalem Support, SLAs<br />

und erweiterten Funktionen in Form von<br />

Zusatzmodulen an.<br />

Ab 3600 Euro pro Jahr erhalten Kunden<br />

Basissupport (Silver), das „Enterprise<br />

Pack Platinum“ kostet mehr als 6000<br />

Euro, bietet aber neben kürzeren Reaktionszeiten<br />

auch Remote-Wartung, Monitoring<br />

und Weiterbildung in Form von<br />

vierteljährlichen Webinaren. Und natürlich<br />

hat der Hersteller auch Entwicklung,<br />

Implementierung und Optimierung von<br />

Zusatzmodulen im Angebot.<br />

Voraussetzung sind ein funktionierender<br />

Webserver mit PHP5, »php5-curl« und einem<br />

Java Runtime Environment. Die Community-Edition<br />

ist schnell installiert: Von<br />

der Webseite lädt sich der Admin ein Tar.<br />

gz-File herunter (dieser Artikel testet die<br />

Version »open-search-server-1.2.1-r987.<br />

tar.gz« vom 30.3.2011), entpackt es auf<br />

einem Webserver und ruft an der Shell<br />

das Skript »start.sh« auf. Auf Windows<br />

erledigt dies »start.bat«.<br />

Ein Init-Skript fehlt dem Paket, wer den<br />

Server permanent laufen lassen möchte,<br />

muss dafür noch selbst Hand anlegen.<br />

Leider gibt’s nur wenig mehr Details zur<br />

Installation im noch recht spärlichen<br />

Wiki von OSS [6].<br />

Erster Start<br />

Im Unterverzeichnis »apache-tomcat<br />

-6.0.32« des ausgepackten Archivs finden<br />

sich alte Bekannte: Hier liegt der vorkonfigurierte<br />

Tomcat-Applikationsserver<br />

mit seinen Binaries, Logfiles und Config-<br />

Dateien. Wenn etwas nicht funktioniert,<br />

lohnt sich ein Blick in die Protokolldatei<br />

»catalina.out«. Hier hinterlässt der Ka-


Zusatzmodule<br />

Dateisysteme<br />

Externe Applikationen<br />

ter deutliche Kratzspuren, wenn ihm etwas<br />

nicht passt. Die Indexe liegen unter<br />

»data«, dort findet sich auch ein Unterverzeichnis<br />

mit der Index-Konfiguration<br />

in Klartext-XML-Dateien. Hier lassen sich<br />

per Skript URLs und Patterns hinzufügen,<br />

aber danach ist ein Restart des OSS<br />

notwendig.<br />

Voller Features: Das Web-<br />

Interface<br />

Nach dem Start lauscht Tomcat auf dem<br />

Standardport 8080. Diesen Port sollte eine<br />

Firewall vor unbefugtem Zugriff schützen<br />

und ihn nur lokalen Diensten verfügbar<br />

machen. Wer mit seinem Browser auf die<br />

URL [http://localhost:8080] zugreift,<br />

Open Search Server 1.2<br />

Webseiten<br />

Datenbanken<br />

File-Crawler Web-Crawler Datenbank-Crawler<br />

Dokument-Parser (HTML, MS Office, RTF, XML, MP3,...)<br />

OSS Enterprise<br />

Indexer<br />

Community Edition<br />

Lucene<br />

Enterprise Edition<br />

Abbildung 1: Lucene, Tomcat und ein flexibles API ergeben den Open Search Server.<br />

Zusatzmodule<br />

Client<br />

Library<br />

(PHP,<br />

Dotnet,<br />

Java)<br />

Applikationen<br />

bekommt das Management-Interface<br />

zu Gesicht, vorerst nur mit den Reitern<br />

»Index« und »Privileges«. Hier legt der<br />

Admin zunächst einen neuen Index oder<br />

einen privilegierten Benutzer an. Für Indexe<br />

stehen drei Templates zur Verfügung<br />

(»Empty index«, »file crawler« und<br />

»web crawler«). Später kann er aus der<br />

Liste unten einen existierenden Index<br />

zum Bearbeiten auswählen. Mit geladenem<br />

Index bevölkern zahlreiche Reiter<br />

das Menü des OSS, ganz ähnlich wie in<br />

Abbildung 2.<br />

Mangels Dokumentation ist der Admin<br />

mit den zahlreichen Tabs, Konfigurationsoptionen<br />

und Untereinträgen recht allein<br />

gelassen, doch die Templates und (meist)<br />

selbsterklärenden Funktionen erleichtern<br />

das Einarbeiten. Unter »Schema« editiert<br />

er Details der Suchfunktionen, in »Query«<br />

setzt er eigene Anfragen ab oder koordiniert<br />

beispielsweise die Form der Ergebnisausgabe.<br />

OSS kann die Ergebnisse<br />

zusammenfassen (»Query | Collapsing«),<br />

wenn bestimmte Kriterien darauf schließen<br />

lassen, dass beispielsweise identische<br />

Webseiten vorliegen.<br />

Als Modi dafür stehen »full«, »cluster«<br />

und »optimized« zur Verfügung. Welcher<br />

sich für ein Projekt besser eignet, lässt<br />

sich mangels Dokumentation nur durch<br />

individuelles Ausprobieren herausfinden.<br />

Die »Snippet fields« (bei einer aktiven<br />

Abfrage ebenfalls im Reiter »Query«) bestimmen<br />

das Format der Ausgabe. Sowohl<br />

die Felder als auch deren Länge<br />

kann der Admin hier festlegen und so die<br />

Ergebnislisten konfigurieren.<br />

Im Reiter »Crawler« trägt er das Ziel seiner<br />

Suchmaschine ein: Webseiten, Datenbanken<br />

oder ein Filesystem, wobei ihm<br />

zahlreiche Filter bei der Anpassung helfen.<br />

Abbildung 2 zeigt das Unterfenster<br />

»Crawl process« einer Maschine, welche<br />

die komplette <strong>Linux</strong>-<strong>Magazin</strong>-Webseite<br />

indiziert.<br />

Dabei erwies sich eine Einstellung als<br />

irreführend: Wer hier glaubt, für einen<br />

umfangreichen Webserver müsse er die<br />

maximale Anzahl der Webseiten pro Host<br />

erhöhen, tappt in die Falle. Der Wert<br />

sagt nur, wie viele Seiten OSS in einer<br />

Session holen soll, bevor er diese seinem<br />

Index hinzufügt. Wer das zu hoch<br />

dreht, braucht viel RAM oder bekommt<br />

irgendwann die Fehlermeldung aus Abbildung<br />

3, häufig blieben OSS oder der<br />

Java-Prozess auch einfach hängen, wenn<br />

ihnen der Speicher ausging.<br />

Wer große Webseiten indizieren will,<br />

sollte also genug Speicherriegel im System<br />

vorhalten oder etwas Zeit einplanen.<br />

Um die Java Virtual Machine mit<br />

2 GByte RAM zu versorgen, braucht es<br />

im Startskript zusätzlich die beiden folgenden<br />

Zeilen:<br />

CATALINA_OPTS="‐Xms2G ‐Xmx2G ‐server"<br />

export CATALINA_OPTS<br />

Open Search Server 06/2011<br />

Sysadmin<br />

www.linux-magazin.de<br />

61<br />

Abbildung 2: Der OSS durchforstet die Webseite des <strong>Linux</strong>-<strong>Magazin</strong>s. Als irreführend erweist sich das Eingabefeld<br />

»Maximum number of URLs per host«: Wer hier zu hohe Werte eingibt, dem geht schnell der RAM aus.<br />

Online PLUS<br />

Zwei einfache, aber vollständige<br />

PHP-Skripte für den Open Search<br />

Server finden Sie unter dieser URL:<br />

[http://www. linux-magazin.de/plus/2011/06]


Sysadmin<br />

www.linux-magazin.de Open Search Server 06/2011<br />

62<br />

Abbildung 3: Zkoss meldet »Java heap space« –<br />

meist deutet diese Fehlermeldung auf zu wenig<br />

Arbeitsspeicher für die JVM hin.<br />

Mehr als 2 GByte sind nur mit 64-Bit-<br />

Betriebssystem und 64-Bit-Java möglich.<br />

Dann aktivieren die folgenden Optionen<br />

6 GByte Arbeitspeicher für Java:<br />

CATALINA_OPTS="‐d64 ‐Xms6G ‐Xmx6G ‐server"<br />

export CATALINA_OPTS<br />

Monitoring-Tools wie das simple Darkstat<br />

(Abbildung 4, [7], in den Debian-Repositories)<br />

überwachen gleichzeitig den<br />

erzeugten Traffic. Manche Firewalls oder<br />

Webserver klassifizieren allzu häufige<br />

systematische Anfragewellen als DoS-<br />

Angriff und weisen den Client ab.<br />

Beim Indizieren unterstützt OSS laut<br />

Hersteller 16 Sprachen, Wörter kann es<br />

sowohl komplett als auch in Fragmenten<br />

oder Varianten der Grundform erkennen<br />

(Lemmata, [8]). Die Liste der Dokumentformate<br />

umfasst XML, HTML/ XHTML,<br />

PDF, Microsoft Word, Powerpoint, Open<br />

Office, RTF, Plaintext, Torrent, Audio files<br />

(MP3/ MP4, OGG, FLAC, WMA) und viele<br />

andere. Die komplette Liste der jeweiligen<br />

Installation findet sich unter »Schema |<br />

Parser List«.<br />

| Edit | Query« eine Eingabemaske (»Pattern<br />

Query«), mit der der Admin im<br />

Index suchen kann. Listing 1 zeigt die<br />

Default-Vorgabe der früheren Versionen,<br />

sie funktioniert aber auch in 1.2 und lässt<br />

sich leicht erweitern. »$$« steht dabei für<br />

den Suchbegriff, ein »^« gefolgt von einer<br />

Zahl definiert die Gewichtung, Schlüsselbegriffe<br />

wie »title« oder »urlSplit« bestimmen,<br />

wo und wie genau der Suchbegriff<br />

vorkommen soll.<br />

Der Teufel steckt dabei oft im Detail:<br />

Während Urlsplit die URL [http://www.<br />

open‐search‐server.com] auf »http«,<br />

»www«, »ope«, »search« und »serv« reduziert<br />

(lemmatisiert), interpretiert Urlexakt<br />

die gleiche URL auf »http«, »www«,<br />

»open«, »search« und »server«. Laut den<br />

Entwicklern verwendet OSS dabei verschiedene<br />

Analyzer: Der »text«-Analyzer<br />

erkennt auch ähnliche Schreibweisen,<br />

während »urlExact«, »titleExact« und<br />

»contentExact« auf den Standard-Analyser<br />

zurückgreifen.<br />

Unter dem Reiter »Scheduler« trägt der<br />

Admin Cronjobs ein, die den OSS steuern,<br />

zum Beispiel für die empfehlenswerten<br />

Rebuilds des Indexes (»Optimize«). In<br />

»Runtime« erhält er wertvolles Feedback<br />

über und Zugriff auf den Zustand von<br />

Index, Cache und System. Auch für HA-<br />

Setups ist OSS vorbereitet: Auf dem Reiter<br />

»Replication« finden sich Eingabefelder<br />

für URLs und Indexnamen weiterer OSS-<br />

Instanzen.<br />

API und PHP<br />

In den Unterverzeichnissen »open-searchserver/examples/php/OSSquery«<br />

und<br />

»open-search-server/php/example« liegen<br />

einige Beispiele für simple PHP-<br />

Skripte, die sich in eigene Webseiten integrieren<br />

lassen und so die Suchfunktion<br />

aus dem Management-Interface in den<br />

Browser des Clients bringen.<br />

In »webSearch.php« beispielsweise trägt<br />

der Admin seinen Index als Standard ein,<br />

und schon hat er ein (zumindest teilweise)<br />

funktionierendes Suchfrontend.<br />

Allerdings hatte es im Test schon mit<br />

Umlauten Probleme und konnte die Parameter<br />

der Lucene-Query-Language nur<br />

bedingt umsetzen. Das gelingt der Query<br />

Query und Lemma<br />

Abfragen lassen sich übers XML-Interface<br />

via HTTP-Queries abwickeln und<br />

mit einer PHP-Client-Library in eigene<br />

Webseiten integrieren. Doch auch das<br />

Management-Interface hat unter »Query<br />

Listing 1: OSS Query<br />

01 title:($$)^10 OR title:("$$")^10<br />

02 OR<br />

03 titleExact:($$)^10 OR titleExact:("$$")^10<br />

04 OR url:($$)^5 OR<br />

05 url:("$$")^5<br />

06 OR urlSplit:($$)^5 OR urlSplit:("$$")^5<br />

07 OR<br />

08 urlExact:($$)^5<br />

09 OR urlExact:("$$")^5<br />

10 OR content:($$) OR<br />

11 content:("$$")<br />

12 OR<br />

13 contentExact:($$) OR contentExact:("$$")<br />

Abbildung 4: Das Monitoring-Tool Darkstat zeigt: Schön vorsichtig, mit deutlich unter 100 KByte/ s saugt<br />

der lokale Open Search Server den zu crawlenden Webserver aus, weil der Admin in der Konfiguration unter<br />

anderem die maximale Thread-Anzahl und die Abfragefrequenz beschränkt hat.


Open Search Server 06/2011<br />

Sysadmin<br />

www.linux-magazin.de<br />

63<br />

Abbildung 5: Wer direkt in der Query versucht<br />

speziellere Lucene-Parameter zu verwenden (im<br />

Beispiel die unscharfe Suche mit »~« ), der scheitert<br />

bisweilen an der OSS-Implementierung.<br />

Abbildung 6: Schon im GUI formatiert der geplante Renderer in künftigen Versionen die Suchergebnisse.<br />

im Web-GUI besser, aber auch nicht immer<br />

(Abbildung 5).<br />

Zu empfehlen ist dafür das XML-API. Mit<br />

ihm können Programmierer in nahezu jeder<br />

beliebigen Sprache den Index durchsuchen<br />

und die Ergebnisse darstellen. An<br />

den passenden HTTP-Request hängen sie<br />

einfach via »GET«-Request die erforderlichen<br />

Parameter:<br />

optional. Das Query-Template »search«<br />

steht von Anfang an im Open Search<br />

Server zur Verfügung und bietet eine sehr<br />

einfache Abfrage für den Index.<br />

Jetzt gibt der Admin im Backend des<br />

OSS im Reiter »Query | Returned Fields«<br />

an, welche Felder er in der XML-Antwort<br />

zurückgeliefert haben will. In dem einfachen<br />

Beispiel oben sind das die beiden<br />

Felder »url« und »host«. Die drei Parameter<br />

für das Collapsing geben an, ob<br />

OSS Treffer zusammenfassen soll. Das<br />

maßgebliche Feld ist frei wählbar, zum<br />

Beispiel der Host oder der Titel einer<br />

Seite. Auf diese Weise lassen sich im Ergebnis<br />

ähnliche Treffer auch erst nach<br />

einem weiteren Klick anzeigen, was die<br />

Übersichtlichkeit deutlich erhöht.<br />

http://localhost:8080/select?use=Index<br />

&qt=Query&q=Suchbegriff.<br />

Auf derlei Anfragen liefert der Server eine<br />

XML-Datei zurück, welche die Treffer<br />

und die entsprechenden <strong>Vorschau</strong>texte<br />

(die Snippets) enthält. Ein Programmierer<br />

braucht also nur<br />

n die Usereingaben zu filtern und zu<br />

prüfen (Vorsicht, das API erlaubt auch<br />

das Löschen von Dokumenten aus<br />

dem Index!),<br />

n den String für die Abfrage des API<br />

zusammenzubauen,<br />

n das zurückgelieferte XML-Dokument<br />

zu parsen und formatiert auszugeben.<br />

Listing 2 zeigt einen Auszug aus einem<br />

einfachen PHP-Skript, das die Query für<br />

das API zusammenstellt. In den Zeilen<br />

4 und 20 enthält es einen minimalen<br />

Schutz vor schädlichem Code. Gegen<br />

Cross Site Scripting hilft Zeile 4, Zeile<br />

20 löscht den Parameter »delete«, falls<br />

es einem Angreifer dennoch gelungen<br />

ist, ihn einzuschleusen. Der assoziative<br />

Array »Params« stellt alle Parameter für<br />

die API-Abfrage zusammen, »use«, »qt«<br />

und »q« sind verpflichtend, die anderen<br />

Listing 2: »build-query.php«<br />

01 function build_query($q){<br />

02 $params=array(); // Für alle Parameter<br />

03 // Entferne Tags<br />

04 $this‐>q=substr(trim(strip_tags($q),0,80));<br />

05 // Grund‐Parameter<br />

06 $params['use']='meinIndex'; // verwendeter<br />

Index<br />

07 $params['qt']='search'; // verwendetes<br />

Query‐Template<br />

08 // Collapsing<br />

09 $params['collapse.mode']='cluster';<br />

10 $params['collapse.field']='host';<br />

11 $params['collapse.max']=1;<br />

12 // Pagination<br />

13 if(isset($_GET['page'])) $params['start']=<br />

Listing 3: XML-Antwort<br />

01 <br />

02 <br />

03 <br />

04 0<br />

05 Query_Name<br />

06 <br />

07 <br />

08 <br />

((int) $_GET['page']*10)‐9;<br />

14 else $params['start']=1;<br />

15 $params['rows']=$this‐>rpp;<br />

16 $params['query']=trim($q); // der eigentliche<br />

Suchbegriff<br />

17 $params['sort']='score'; // für umgekehrte<br />

Reihenfolge Minuszeichen voranstellen<br />

18 $host='http://127.0.0.1:8080/select'; // URL<br />

des OSS‐Host<br />

19 // Falls jemand den Parameter "Delete" eingeschmuggelt<br />

hat:<br />

20 unset($params['delete']);<br />

21 $this‐>query=$host.'?'.http_build_query<br />

($params);<br />

22 }<br />

09 http://www.meinserver.de/<br />

Pfad/Datei.html<br />

10 www.meinserver.de<br />

11 Titel der Seite<br />

12 Kurze Voransicht des Treffers und seiner<br />

Nachbarschaft...<br />

13 <br />

14


Sysadmin<br />

www.linux-magazin.de Open Search Server 06/2011<br />

64<br />

In Listing 2 passiert das in den Zeilen 9<br />

bis 11. Beim Modus »cluster« ist als Maximalanzahl<br />

nur eine 1 möglich, gleichwohl<br />

darf dieser Parameter aber nicht<br />

fehlen. Die vorletzte Zeile verknüpft<br />

schließlich die Query-Parameter mit der<br />

Host-URL und kodiert sie. Um die so erstellte<br />

API-Abfrage auszuführen, genügt<br />

ein einfacher Aufruf mittels »simplexml_<br />

load_file($this->query)«. Er liefert ein<br />

XML-Dokument zurück, zum Beispiel<br />

das aus Listing 3.<br />

Die eigentlichen Ergebnisse stehen hier<br />

innerhalb von »result« als »doc« zur Verfügung.<br />

Eine »foreach ($hits->result->doc<br />

as $doc)«-Schleife geht Eintrag für Eintrag<br />

durch. Mit den beiden Beispiel-PHP-<br />

Dateien vom Online-Plus des <strong>Linux</strong>-<strong>Magazin</strong>s<br />

funktionieren dann auch Lucene-<br />

Features wie die unscharfe Suche mit<br />

»~«, die bisher – wie in Abbildung 5<br />

– noch Probleme bereitete.<br />

Neu in 1.2 und Roadmap<br />

In die jüngste Version 1.2 halten einige<br />

lobenswerte Features Einzug. Der Web-<br />

Crawler zeigt jetzt, wann er eine Seite im<br />

Index aktualisiert hat, merkt sich anhand<br />

von Unique Keys, welche Seiten identisch<br />

sind, und erlaubt das Ignorieren von »robots.txt«-Dateien.<br />

Der Datenbank-Crawler<br />

versteht jetzt auch SQL-Querys, sowohl<br />

Pattern- als auch Exklusion-Listen lassen<br />

sich deaktivieren und die Abfragen erkennen<br />

ähnliche Dokumente besser.<br />

Das »modified«-Tag stellt aktuell noch ein<br />

mittleres Problem dar. Es erkennt bisher<br />

nur, ob eine Seite verändert wurde, nicht<br />

aber, ob vielleicht nur die Anzeige darin<br />

ausgetauscht wurde oder der Text sich<br />

verändert hat, weil beispielsweise ein<br />

RSS-Feed integriert ist. Bei eigenen Webservern<br />

lässt sich das mit CSS verbessern,<br />

indem ein Div-Tag Menüs, Werbung und<br />

Feeds vor dem Indexer verbirgt:<br />

<br />

Zahlreiche Features sind in Arbeit: Eine<br />

Art Pagerank (basierend auf Lucenes<br />

Score-Funktion) ist laut Entwickler Emmanuel<br />

Keller schon teilweise integriert.<br />

Fertig sind wohl die Funktionen<br />

»score«, »ord«, »rord«, »byte«, »float«,<br />

»int« und »short«. Ein gültiges Beispiel<br />

in einer Query wäre demnach »score()<br />

+ rord('modified_date')«. Die nächste<br />

Version bekommt außerdem eine Screenshot-Funktion<br />

und bringt eine Rendering-<br />

Extension (Abbildung 6) mit.<br />

Darauf zu warten mag sich lohnen, vor<br />

allem die Roadmap macht Lust auf mehr.<br />

Der Open Search Server ist sicherlich<br />

noch nicht perfekt, aber auf einem guten<br />

Weg. Und er ist schnell: Auf einem<br />

Desktop-PC gestartet, beantwortet er<br />

Suchanfragen im alle 25 000 Webseiten<br />

des <strong>Linux</strong>-<strong>Magazin</strong>s umfassenden Index<br />

sehr schnell. Nur selten braucht er mehr<br />

als eine halbe Sekunde, was auch ein Test<br />

mit zwei Millionen zufällig ausgewählten<br />

HTML-Seiten im Index bestätigte. n<br />

Infos<br />

[1] Open Search Server:<br />

[http://www. open-search-server.com]<br />

[2] Peter Roßbach, „Reicher schwarzer Kater“:<br />

ADMIN-<strong>Magazin</strong> 03/ 08, S.38<br />

[3] Lucene bei Apache: [http://lucene.apache.<br />

org/java/ docs/ index.html]<br />

[4] Quartz-Scheduler:<br />

[http://www. quartz-scheduler.org]<br />

[5] Carsten Zerbst, Nils Magnus, „Allzweckmittel“:<br />

<strong>Linux</strong>-<strong>Magazin</strong> 05/ 10, S. 104<br />

[6] OSS-Wiki: [http://www.open-search-server.<br />

com/wiki/ en/ index. php/Main_Page]<br />

[7] Darkstat: [http://dmr.ath.cx/net/darkstat/]<br />

[8] Lemma: [http://de.wikipedia.org/wiki/<br />

Lemma_(Lexikografie)]<br />

Lucene<br />

Der Kern jeder modernen Suchmaschine ist der<br />

Indexer. Mit der freien Java-Bibliothek Lucene<br />

gebaute, skalierbare Indexer brauchen sich<br />

hinter kommerziellen Suchmaschinenprodukten<br />

nicht zu verstecken.<br />

Analyzer, Indexer und Felder<br />

Das Grundprinzip ist einfach: Ein Analyzer<br />

zerpflückt die Dokumente und verteilt deren<br />

Metadaten und Textkomponenten auf vorgegebene<br />

Felder. Anschließend erstellt daraus ein<br />

Index-Builder den eigentlichen Index. Der ist<br />

üblicherweise im Kern ein Transduktor-Automat,<br />

der über die Eingabe eines Terms zu einer<br />

Liste von Links führt. Das nennen Experten<br />

dann „Inverted Files“, weil ein Index zwar mehr<br />

oder weniger dem Originalkorpus entspricht,<br />

aber die Wörter nicht mehr in ihrer natürlichen<br />

Reihenfolge gespeichert sind, sondern in einer<br />

alphabetischen Ordnung mit einem Vermerk<br />

ihrer Originalposition.<br />

Die Erstellung und Pflege des Automaten während<br />

der Laufzeit und die kompakte Ablage der<br />

Links im Dateisystem ist normalerweise eine<br />

trickreiche Aufgabe, die Lucene sehr elegant<br />

löst. Indexierungsleistungen von 30 MByte pro<br />

Sekunde auf einem modernen Rechner schafft<br />

es spielend, ebenso die Reduktion der Ausgangstexte<br />

im Index auf etwa 20 Prozent ihrer<br />

Größe. Dies hängt natürlich davon ab, wie sehr<br />

der Suchmaschinenentwickler ein Dokument<br />

zerpflückt und auf Felder verteilt.<br />

Boost und Pagerank<br />

Anhand der Felder von Lucene kann der Programmierer<br />

beispielsweise dem Titel einen besonderen<br />

Boost verpassen, etwa indem er Überschriften<br />

bevorzugt oder externe Metadaten<br />

wie den Dateinamen oder den Autor als besonders<br />

relevante Textdeskriptoren nutzt. Kommt<br />

der Suchbegriff in diesen Feldern vor, dann erhält<br />

der Treffer einen höheren Wert im Ranking,<br />

als wenn er nur irgendwo im Body erscheint. Die<br />

richtige Gewichtung dieser Felder zueinander<br />

ergibt dann das (hoffentlich richtige) Ranking,<br />

das sich der User wünscht.<br />

Trotzdem lassen sich auch bei Lucene gezielt<br />

einzelne Felder befragen oder die Suchergebnisse<br />

nach ihnen sortieren. Dabei sind nicht nur<br />

Textfelder, sondern auch Range-Abfragen mit<br />

verschiedensten Feldtypen möglich.<br />

Neben vergleichsweise langweiligen booleschen<br />

Abfragen sind so auch Wildcard- oder fehlertolerante<br />

Suchen möglich. Dabei geht es nicht nur<br />

darum, Treffer mit einem identischen Prefix zu<br />

finden (wie in SQL mit »'<strong>Linux</strong>-Mag%'«), sondern<br />

auch unterschiedliche Schreibweisen. Über<br />

das Levenshtein-Distanz-Verfahren lassen sich<br />

mit einer eigenen Syntax ohne nennenswerte<br />

Geschwindigkeitseinbußen beispielsweise alle<br />

Schreibweisen von »Schmie?[dt]+« oder »M[ae]<br />

[iy]e?r« finden.<br />

Distanz bitte!<br />

Eine andere Form von Distanzabfragen erlaubt<br />

der Proximity-Operator (»~«) bei Multiword-<br />

Queries. Er findet alle Abschnitte von Texten,<br />

bei denen mehrere Wörter innerhalb eines definierbaren<br />

Maximalabstands erscheinen. Als<br />

Kontrast zu den eher statischen Dokumentenoder<br />

Feldgewichten lassen sich während der<br />

Abfragezeit auch Terme höher gewichten als<br />

andere. Der Termboost-Operator (»^«) erlaubt<br />

es, bei Multiword-Queries einzelne Suchbegriffe<br />

wichtiger einzustufen als den Rest.<br />

Doch bei der idealen Suchmaschine braucht sich<br />

der Anwender damit gar nicht zu beschäftigen,<br />

weil die den relevantesten Treffer ohnehin an<br />

erster Stelle liefert, auch ohne Operatoren. Der<br />

Indexer von Lucene bringt dafür schon sehr<br />

viele Hausmittel mit.


Open Source<br />

mobilisiert.<br />

Security-Day by Astaro plus Hacking Contest (13. Mai)<br />

LPI-Zertifizierungen und Vorbereitungstutorien by Egilia<br />

Academy-Day: Weiterbildung und Recruitment (14. Mai)<br />

»Die Zukunft ist offen.« sagen:<br />

-› Wim Coekaerts, Oracle‘s Vice President of<br />

<strong>Linux</strong> Engineering<br />

-› Bradley M. Kuhn, Executive Director Software<br />

Feedom Conservancy<br />

-› Daniel Walsh, Principal Software Engineer, Red Hat<br />

Open Source ist Geschäftsmodell, Arbeitgeber<br />

und Trendsetter.<br />

Komm vorbei. Mach dich schlau. Tausch dich aus.<br />

11. –14. Mai 2011 in Berlin<br />

EUROPE‘S LEADING<br />

OPEN SOURCE EVENT<br />

CONFERENCE | EXHIBITION | PROFESSIONAL DEVELOPMENT<br />

www.linuxtag.org<br />

Medienpartner: Official Certification Partner: Bronze Partner:<br />

MAGAZIN


Sysadmin<br />

www.linux-magazin.de Archipel 06/2011<br />

66<br />

Das VM-Orchestration-Tool Archipel verwaltet Hypervisoren<br />

Reif für die Inseln<br />

Das Hypervisor-übergreifende Management-Tool Archipel landet ein schickes GUI an und kommunziert mit den<br />

virtuellen Instanzen, die Server mit Xen, KVM, Open VZ und VMware bereitstellen. Dazu nutzt es das Jabber-<br />

Protokoll und erweist sich als ausgesprochen unterhaltsam. Andrej Radonic<br />

Die Open-Source-Welt hat Virtualisierungstechnologien<br />

vom Allerfeinsten hervorgebracht<br />

– darunter die Hypervisoren<br />

Xen und KVM, APIs und Schnittstellen<br />

wie die Libvirt [1] und viele mehr. Allein<br />

an wirklich gut gestalteten und Hypervisor-übergreifenden<br />

Management-Tools<br />

für virtualisierte Umgebungen fehlt es<br />

bisher noch.<br />

Die wenigen Vertreter dieser Gattung sind<br />

entweder auf eine bestimmte Ober fläche<br />

festgelegt wie zum Beispiel die X11-Applikation<br />

Virt-manager [2] oder sehr umfassende<br />

Werkzeuge mit Cloud-Ambitionen<br />

wie Xens Enomalism [3], die für<br />

normale Hypervisor-Administrationsaufgaben<br />

überdimensioniert sind.<br />

Gefragt bei Administratoren sind mehr<br />

und mehr intuitive Web-GUIs, die den<br />

üblichen Zoo von virtuellen Systemen –<br />

von Xen über KVM bis hin zu VMware<br />

– komplett und zentral verwalten und<br />

den Überblick auch bei Tausenden von<br />

virtuellen Maschinen herstellen.<br />

Hier springt Archipel [4] mit frischen<br />

Ansätzen in die Bresche. Das kleine französische<br />

Entwicklerteam beansprucht für<br />

sich, es besser als Enomalism oder Proxmox<br />

[5] machen zu wollen, und greift<br />

dazu tief in die Open-Source-Toolbox:<br />

Das Web-GUI bedient sich des Cappuccino-Javascript-Framework<br />

[6], um eine<br />

Desktop-ähnliche Benutzer-Erfahrung zu<br />

bieten. Im Kern nutzt das System das<br />

Libvirt-API, um die Steuerung aller bekannten<br />

Hypervisoren wie KVM, Xen,<br />

Open VZ und VMware zu ermöglichen.<br />

Vor Kurzem erschien die zweite Beta von<br />

Archipel, dieser Artikel zeigt, ob das System<br />

hält, was es verspricht.<br />

Plausch mit dem Hypervisor<br />

Beim intern verwendeten Protokoll zum<br />

Anbinden des Hypervisors beschreitet<br />

Archipel mit XMPP neue Wege. Das von<br />

Jabber bekannte Instant Messaging Protokoll<br />

dient dem internen Nachrichten-<br />

verkehr für Steuerung und Information<br />

in Realtime. Dies ermöglicht sogar die<br />

Nutzung von Jabber-Clients, um Statusinformationen<br />

von VMs abzurufen oder<br />

ihnen Kommandos zu schicken.<br />

Archipel besteht im Kern aus drei Komponenten<br />

(Abbildung 1):<br />

n Der Archipel-Client (Testclients unter<br />

[7]) stellt ein stark an I-Tunes erinnerndes,<br />

optisch ansprechendes Web-<br />

GUI zur Verfügung, das dank Javascript<br />

in den meisten Browsern läuft.<br />

n Pro Hypervisor-Instanz kommt Serverseitig<br />

ein Archipel-Agent zum Einsatz.<br />

Der ist in Python geschrieben und<br />

modular aufgebaut. Der Administrator<br />

nutzt Shellkommandos, um ihn zu<br />

installieren und zu aktualisieren.<br />

n Über XMPP kommuniziert der Agent<br />

via Libvirt mit virtuellen Maschinen.<br />

Das macht das Aufsetzen eines Jabber-Servers<br />

erforderlich.<br />

Archipel empfiehlt den Einsatz von Ejabberd<br />

[8], andere Implementierungen<br />

sollten aber auch funktionieren. Die Anweisung,<br />

eine VM zu starten, durchläuft<br />

der Reihe nach Jabber-XMPP auf dem Archipel-Client,<br />

dann den XMPP-Server, erreicht<br />

die Libvirt (Libvirt-create) und endlich<br />

den Hypervisor (etwa KVM-create).<br />

Installation<br />

Schon bei der Installation zeigt sich einer<br />

der größten Nachteile von Archipel, die<br />

äußerst magere Dokumentation. Immerhin<br />

ist das korrekte Setup recht ordentlich<br />

beschrieben [9], auch wenn dort noch<br />

ein paar Bugs lauern. Zunächst installiert<br />

der Archipel-Interessent Ejabberd, mindestens<br />

in der Version 2.1.6, am besten<br />

über den Binärinstaller. Den XMPP-Server<br />

muss er danach um die Module »ejab-


Archipel-Agent<br />

VM<br />

Mit der UUID geht es nun an den eigentlichen<br />

Import (Listing 4). Die VM er-<br />

Archipel-<br />

Client<br />

Rechner A<br />

Libvirt<br />

VM<br />

berd_xmlrpc« und »mod_admin_extra«<br />

erweitern. Dann holt er sich die Quellen,<br />

kompiliert die Erlang-Sourcen und kopiert<br />

die resultierenden »*.beam«-Dateien<br />

ins »ebin«-Verzeichnis des Ejabberd-<br />

Daemon (Listings 1 und 2).<br />

Anschließend ist die Anpassung von<br />

»/opt/ejabberd-2.1.6/conf/ejabberd.cfg«<br />

(je nach Distribution vielleicht »/etc/<br />

ejabberd/ejabberd.cfg«) an der Reihe:<br />

Hier aktiviert der Administrator die neu<br />

erstellten Module und setzt vor allem den<br />

vollqualifizierten Domainnamen (FQDN)<br />

seines Servers ein. Leider führt der vom<br />

Archipel-Projekt dokumentierte Konfigurationsvorschlag<br />

an mehreren Stellen in<br />

die Irre, daher sollte sich der Admin besser<br />

an Listing 3 orientieren.<br />

Das Erstellen eines Administratorkontos<br />

schließt die Ejabberd-Einrichtung ab:<br />

ejabberdctl register admin FQDN Passwort<br />

Das Einrichten des Archipel-Agenten geht<br />

etwas schneller von der Hand, am Anfang<br />

steht der Check der Abhängigkeiten.<br />

Nötig sind Python ab Version 2.5, Libvirt<br />

ab Version 0.8.7 sowie ein Hypervisor<br />

wie KVM mit Qemu ab Version 0.12.5.<br />

Zudem sollten auch Qemu-img sowie die<br />

Python Setup Tools an Bord sein. Die<br />

folgende Befehlssequenz installiert den<br />

Archipel-Agenten:<br />

easy_install archipel‐agent<br />

archipel‐initinstall<br />

XMPP-Server A<br />

In »/etc/archipel/archipel.conf« setzt<br />

der Admin nun die Server-FQDN ein und<br />

Archipel-Agent<br />

VM<br />

Rechner B<br />

Libvirt<br />

VM<br />

startet Archipel mit dem mitgelieferten<br />

Init-Skript:<br />

/etc/init.d/archipel start<br />

Archipel-Agent<br />

VM<br />

Rechner C<br />

Libvirt<br />

XMPP-Server B<br />

Abbildung 1: Die Archipel-Architektur mit Hypervisoren, virtuellen Maschinen, Archipel-Agenten und redundant<br />

ausgelegten XMPP-Servern.<br />

Abschließend bedarf es noch zweier<br />

Ejabberd-Pubsub-Nodes, damit das Berechtigungssystem<br />

sowie die Tag-Verwaltung<br />

funktionieren:<br />

archipel‐tagnode ‐‐jid=admin@FQDN U<br />

‐‐password=Passwort ‐‐create<br />

SUCCESS: pubsub node /archipel/tags created!<br />

archipel‐rolesnode ‐‐jid=admin@FQDN U<br />

‐‐password=Passwort ‐‐create<br />

SUCCESS: pubsub node /archipel/roles U<br />

created!<br />

Auf das im Archipel-Wiki ausführlich beschriebene<br />

eigenhändige Kompilieren des<br />

Clients kann der Administrator getrost<br />

verzichten, stattdessen besorgt er sich<br />

unter [10] eine aktuelle Archipel-Client-<br />

Distribution. Diese entpackt er einfach<br />

in ein lokales Verzeichnis und öffnet die<br />

Datei »index.html« in einem Browser.<br />

Bei dem folgenden Login ist es wichtig,<br />

die Jabber-ID fully qualified einzugeben,<br />

also mit dem kompletten Servernamen<br />

(Abbildung 2). Als Passwort dient das<br />

beim Erstellen des Administratorkontos<br />

definierte Credential. Die URL für das<br />

Feld »Service BOSH« folgt dem Schema<br />

»http://FQDN:5280/ http-bind«.<br />

Wo laufen sie denn?<br />

VM<br />

Archipel präsentiert sich dem VM-Verwalter<br />

aufgeräumt und bis ins Detail liebevoll<br />

gestaltet. Doch ohne Bewohner<br />

– also Hypervisor-Hosts und VMs – taugt<br />

der schönste Archipel nicht viel. Der erste<br />

Schritt zur Population erschließt sich dabei<br />

nicht unbedingt von selbst: Der Administrator<br />

muss zunächst den Hypervisor<br />

in Archipel anmelden. Hierzu klickt er<br />

unten links auf das »+«-Zeichen, um einen<br />

neuen (Jabber-)Kontakt im Archipel-<br />

XMPP-System anzulegen.<br />

Als Kontakt-ID gibt er »Hypervisor@<br />

FQDN« an und bestätigt mit »Ok«. Der Hypervisor<br />

taucht in der Kontaktleiste links<br />

mit seinem Avatar auf. Die Hauptansicht<br />

des Hosts zeigt direkt die so genannte<br />

»Health«-View mit allen wichtigen Informationen<br />

in Echtzeit (Abbildung 3).<br />

Die VMs des Hypervisors sind Archipel<br />

damit aber leider noch nicht bekannt. Der<br />

Administrator hat nun zwei Möglichkeiten:<br />

Er kann bereits existierende VMs der<br />

Archipel-Verwaltung hinzufügen, wobei<br />

ihm das Skript »archipel-importvirtualmachine«<br />

hilfreich zur Seite steht. Dieses<br />

benötigt zwei Argumente, die vorab zu<br />

ermitteln sind: Zum einen die SQLite-3-<br />

Datenbank-Beschreibungsdatei des lokalen<br />

Hypervisors, zu finden unter »/var/<br />

lib/archipel/hypervisor.sqlite3.2«), und<br />

zum anderen die UUID der zu importierenden<br />

VM. Die ermittelt am einfachsten<br />

das Libvirt-Tool Virsh:<br />

virsh ‐‐connect qemu:///system<br />

list<br />

dominfo ID_der_VM<br />

UUID<br />

Listing 1: »ejabberd_xmlrpc«<br />

kompilieren und installieren<br />

01 wget http://www.ejabberd.im/files/contributions/<br />

xmlrpc‐1.13‐ipr2.tgz<br />

02 tar ‐xzvf xmlrpc‐1.13‐ipr2.tgz<br />

03 cd xmlrpc‐1.13/src<br />

04 make<br />

05 cd ../../<br />

06 cp ebin/*.beam /opt/ejabberd‐2.1.6/lib/<br />

ejabberd‐2.1.6/ebin<br />

Listing 2: »mod_admin_extra«<br />

kompilieren und installieren<br />

01 cd /usr/local/src/ejabberd‐modules/mod_admin_extra/<br />

trunk/<br />

02 ./build.sh<br />

03 cp ebin/mod_admin_extra.beam /opt/ejabberd‐2.1.6/lib/<br />

ejabberd‐2.1.6/ebin<br />

Archipel 06/2011<br />

Sysadmin<br />

www.linux-magazin.de<br />

67


Sysadmin<br />

www.linux-magazin.de Archipel 06/2011<br />

68<br />

Abbildung 2: Ein Archipel-Login auf dem Client<br />

verlangt den kompletten Login-Namen (inklusive<br />

Domain) auch im Feld »Jabber ID«.<br />

scheint nun ebenfalls in der Kontaktliste<br />

links. Von hier aus kann der Archipel-Verwalter<br />

ihren Status einsehen sowie alle<br />

Lifecycle-Kommandos wie Start, Stop,<br />

Pause bis hin zur Migration auf einen<br />

anderen Hypervisor-Host ausführen oder<br />

Snapshots erstellen.<br />

Die zweite Möglichkeit, die VM-Population<br />

in Archipel wachsen zu lassen,<br />

besteht darin, virtuelle Maschinen direkt<br />

im Archipel-GUI anzulegen. Auch das ist<br />

in wenigen Schritten erledigt. Zunächst<br />

Listing 3: »ejabberd.cfg«<br />

01 {hosts, ["jabber.deutschewolke.datenwerk‐it.de"]}.<br />

02 [...]<br />

03 {listen,<br />

04 [<br />

05 {4560, ejabberd_xmlrpc, []},<br />

06 {5280, ejabberd_http, [<br />

07 http_bind,<br />

08 http_poll,<br />

09 web_admin<br />

10 ]}<br />

11 ]}.<br />

12 [...]<br />

13 {modules,<br />

14 [<br />

15 {mod_adhoc, []},<br />

16 {mod_http_bind,[]},<br />

17 [...]<br />

18 {mod_admin_extra, []}<br />

19 ]}.<br />

20 [...]<br />

legt der Verwalter das gewünschte Installations-ISO<br />

in das Verzeichnis »/vm/<br />

iso«. Im GUI klickt er dann auf »New<br />

VM«, wechselt zum Reiter »Definition«<br />

und setzt die gewünschten Einstellungen<br />

wie RAM, Festplattenlaufwerke und<br />

Netzwerk (Abbildung 4).<br />

Anschließend legt er eine neue (virtuelle)<br />

CD-ROM an und stellt den Bootvorgang<br />

von CD ein. Ein Klick auf »Play«<br />

erweckt die VM und damit den Installationsvorgang<br />

zum Leben. Ihre grafische<br />

Oberfläche bedient der VM-DJ in einer<br />

sehr schlanken und ansehnlichen, in<br />

Javascript verfassten VNC-Implementierung,<br />

zu finden auf dem Reiter »VNC« .<br />

Mit einer virtuellen<br />

Maschine reden<br />

Ein originelles Detail, das zugleich zeigt,<br />

wie konsequent Archipel auf dem XMPP-<br />

Protokoll aufbaut, ist der integrierte Chat.<br />

Der taugt zwar auch zur Kommunikation<br />

zwischen den Administratoren der Umgebung,<br />

überrascht aber vor allem durch<br />

die Möglichkeit, direkt und verbal mit<br />

seinen Hypervisoren und VMs zu kommunizieren<br />

(Abbildung 5).<br />

Das natürlich klingende sprachliche Vokabular<br />

von Archipel ist zwar sehr begrenzt,<br />

die Kommunikation bereitet aber<br />

Spaß und ist durchaus praxistauglich.<br />

Ein »how are you« quittiert eine VM zum<br />

Beispiel mit einer komprimierten Statusmeldung<br />

in der ersten Person Singular.<br />

Konsequenterweise funktioniert dies von<br />

jedem Jabber-Client aus.<br />

Auch darüber hinaus zeigt sich Archipel<br />

auskunftsfreudig. Logs aller Systeme und<br />

Aktionen können Admins zur Echtzeit<br />

im GUI einsehen, ausgewählte Benachrichtigungen<br />

empfangen sie per Push-<br />

Notification auf dem Smartphone. Dafür<br />

lädt sich der Sysadmin zum Beispiel die<br />

»App Notifications«-App auf sein I-Phone<br />

und trägt den privaten API-Key in »archipel.conf«<br />

ein.<br />

Rollenkonzepte,<br />

Deployment, Tagging<br />

Archipel bringt als ambitionierter VM-<br />

Verwalter mächtige Deployment-Werkzeuge<br />

mit: Das integrierte VM Casting<br />

Protocol (ursprünglich von Enomalism<br />

entwickelt) stellt via RSS-Feeds Appliance-Downloads<br />

für die Hypervisoren<br />

bereit. Damit sind auch automatisch installierbare,<br />

auf definierten Appliances<br />

basierende Instanzen und Updates von<br />

VMs möglich.<br />

Archipel-Admins können zudem Appliances<br />

direkt aus vorhandenen virtuellen<br />

Maschinen selbst erstellen, sie quasi als<br />

Templates ablegen und für neue VMs<br />

nutzen. Archipel unterstützt dabei das<br />

XVM2-Templateformat (ebenfalls eingeführt<br />

von Enomalism, bekannt auch von<br />

Xen Server) und demnächst den verbreiteten<br />

OVF-Standard.<br />

An diesem Punkt hören viele Verwaltungstools<br />

auf, nicht jedoch Archipel, das<br />

mit einer ganzen Reihe weiterer Enterprise-Features<br />

aufwartet. Dazu gehört ein<br />

ausgefeiltes Rollenkonzept für das Definieren<br />

feingranularer Berechtigungen für<br />

unterschiedliche User und Rollen.<br />

Für Admins sehr großer Umgebungen mit<br />

vielen VMs bringt es ein Tagging-System<br />

Listing 4: VMs importieren<br />

01 /etc/init.d/archipel stop # Archipel Agent stoppen<br />

02 archipel‐importvirtualmachine ‐‐file=/var/lib/<br />

archipel/hypervisor.sqlite3 ‐‐uuid=UUID<br />

‐‐xmppserver=FQDN ‐‐name=vm1<br />

03 /etc/init.d/archipel start # Archipel Agent stoppen<br />

Abbildung 3: Der Gesundheitszustand eines Hypervisors in Archipels »Health«-Übersicht.


Abbildung 4: Die Konfiguration einer virtuellen Maschine in Archipel erschließt sich dem Admin von selbst.<br />

in Verbindung mit einer entsprechenden<br />

Suche mit sowie die Möglichkeit, Kontakte,<br />

also Hypervisoren und virtuelle<br />

Maschinen, logisch zu gruppieren.<br />

Elegant ist auch die Fähigkeit, mittels<br />

Massen-Kommandos ganze Gruppen von<br />

VMs mit einem einzigen Klick zu steuern,<br />

zum Beispiel mehrere gleichzeitig<br />

zu starten, zu stoppen oder zu migrieren.<br />

Den Administratoren steht außerdem ein<br />

Scheduler zur Verfügung, um VM-orientierte<br />

Aktionen im Voraus zu planen und<br />

automatisiert ablaufen zu lassen.<br />

Clustern, geografische<br />

Migration und Billing<br />

Damit kein Single Point of Failure durch<br />

den Einsatz eines einzelnen XMPP-Servers<br />

entsteht, sieht Archipel Clustering<br />

vor. Es unterstützt Multisite-Setups und<br />

ist in der Lage, die Hypervisor-Hosts und<br />

zugehörigen VMs grafisch in einer integrierten<br />

Google-Map zu visualisieren und<br />

diese auf der Weltkarte zu verschieben,<br />

de facto zu migrieren. Auf der Roadmap<br />

stehen außerdem eine modulare Erweiterung<br />

um Cloud-Computing-Fähigkeiten<br />

inklusive Billing.<br />

Sobald das angekündigte SDK erscheint,<br />

dürfte der eigenen, modularen Weiterentwicklung<br />

nichts mehr im Wege stehen.<br />

Schade nur, dass die finale Version vermutlich<br />

noch bis Ende 2011 auf sich warten<br />

lässt. Wer gern experimentiert und ein<br />

wenig Zeit erübrigen kann, dem sei ein<br />

Test ans Herz gelegt. Etwas Geduld muss<br />

der Interessent aber mitbringen und sich<br />

derzeit auch mit sehr knapper Dokumentation<br />

begnügen. Bleibt zu hoffen, dass<br />

die aufkeimende Archipel-Community<br />

schnell wächst und durch entsprechende<br />

Beiträge auch die typischen Kinderkrankheiten<br />

behebt.<br />

Archipel ist aber jetzt schon weit mehr<br />

als ein schickes GUI für Open-Source-<br />

Hypervisoren. Ambitionierte Administratoren<br />

heterogener virtueller Umgebungen<br />

finden hier eine sehr interessante<br />

und leistungsfähige Alternative zu anderen<br />

Web-basierten Verwaltungstools.<br />

Kontakt freudige Administratoren können<br />

sich über den IRC-Chat rasch Rat und<br />

Unterstützung aus der Community und<br />

von den Entwicklern selbst holen, diese<br />

haben sich auch bei den ersten Versuchen<br />

des <strong>Linux</strong>-<strong>Magazin</strong>-Autors als sehr<br />

hilfsbereit herausgestellt. (mfe) n<br />

Infos<br />

[1] Thorsten Scherf, „Dienste aus der Wolke“:<br />

ADMIN-<strong>Magazin</strong> 05/ 10, S. 64<br />

[2] Virt-manager:<br />

[http:// virt-manager. et. redhat. com]<br />

[3] Enomalism: [http:// wiki. xensource. com/<br />

xenwiki/ Enomalism]<br />

[4] Archipel: [http:// archipelproject. org]<br />

[5] Proxmox VE: [http:// www. proxmox. com]<br />

[6] Cappuccino-Framework:<br />

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

[7] Testclients für Archipel:<br />

[http:// app. archipelproject. org]<br />

[8] Ejabberd: [http:// www. ejabberd. im]<br />

[9] Archipel-Wiki: [https:// github. com/<br />

primalmotion/ archipel/ wiki]<br />

[10] Nightly Builds:<br />

[http:// nightlies. archipelproject. org]<br />

Der Autor<br />

Der Autor Andrej Radonic ist<br />

IT-Journalist und außerdem<br />

Vorstand der Intersales AG in<br />

Köln sowie Autor des Buches<br />

„Xen 3.2“. Seine Spezialgebiete<br />

sind Virtualisierung,<br />

Open-Source-Unternehmenslösungen und E-<br />

Commerce.<br />

Archipel 06/2011<br />

Sysadmin<br />

www.linux-magazin.de<br />

69<br />

Pro und Kontra Archipel<br />

‚ Ausgefeiltes und ansprechendes Web-GUI<br />

‚ Auch für große Umgebungen geeignet<br />

‚ Umfassendes Feature-Set<br />

‚ Unterstützt viele gängige Hypervisor-<br />

Plattformen<br />

„ Dürftige Dokumentation<br />

„ Noch nicht bereit für den Produktiveinsatz<br />

„ Health-Auskunft nur global je Hypervisor,<br />

nicht für einzelne VMs (zum Beispiel für<br />

Speicher- oder CPU-Auslastung)<br />

Abbildung 5: Auf Chat-Anfragen antwortet Archipel in der Ich-Form und gibt bereitwillig Auskunft über den<br />

Gesundheitszustand der Hypervisoren und der VMs.


ADMIN-MAgAzIN<br />

für ALLe IT-AdmInISTrAToren<br />

von WIndoWS und LInux<br />

AdmIn erscheint alle zwei<br />

monate und bietet IT-Admins:<br />

■ Schwerpunktthemen zu<br />

Storage, Backup, netzwerk,<br />

monitoring, virtualisierung<br />

und Security<br />

■ Howtos und Tutorials für alle<br />

IT-Administratoren von <strong>Linux</strong>,<br />

Windows und unix<br />

■ Hilfe bei der täglichen<br />

Systemverwaltung<br />

heterogener netze<br />

TesTen sie Admin<br />

im mini-Abo!<br />

Lesen Sie 2 Ausgaben für<br />

zusammen nur 9,80 E!<br />

2 Hefte<br />

NUR<br />

e9,80<br />

So können Sie beStellen:<br />

• Web: www.admin-magazin.de/abo<br />

• Telefon 07131 / 2707 274 • fax 07131 / 2707 78 601<br />

• e-mail: abo@admin-magazin.de • Shop: Shop.<strong>Linux</strong>newmedia.de<br />

Gleich hier bestellen:<br />

www.admin-magazin.de/<br />

miniabo<br />

Abovorteile<br />

• Preisvorteil gegenüber Kioskkauf<br />

• kostenlose & sichere Zustellung<br />

• Zustellung vor dem offiziellen<br />

verkaufstermin<br />

Globusillustration: Rafa Irusta Machin, 123RF


SIe wolleN keIN Heft MeHr verpASSeN?<br />

Abonnieren sie Admin im Prämienabo!<br />

Lesen Sie das AdmIn-magazin für<br />

nur E 49,90 im Jahr statt E 58,80<br />

im einzelkauf am Kiosk!<br />

Als Prämie erhalten Sie einen Yubikey<br />

www.admin-magazin.de/jahresabo<br />

sichern sie sich<br />

ihren gratis YubikeY!<br />

Sicher unterwegs: uSB-Crypto-Key für einmal-<br />

Passwörter mit AeS-128. funktioniert ohne spezielle Treiber<br />

mit allen Betriebssystemen. Weitere Applikationen unter www.yubico.com<br />

JetZt auch<br />

als PDF und/oder<br />

als Online-archiv<br />

erhältlich!<br />

Mehr inFOrMatiOnen unter<br />

www.aDMin-MagaZin.De<br />

Jetzt beStellen:<br />

versandkostenfrei!<br />

• www.admin-magazin.de/einzelheft<br />

• Telefon 07131 / 2707 274 • fax 07131 / 2707 78 601<br />

• e-mail: abo@admin-magazin.de • Shop: Shop.<strong>Linux</strong>newmedia.de


Forum<br />

www.linux-magazin.de OSS-Projekte steuern 06/2011<br />

72<br />

Kontrollpunkte und Steuerungsmechanismen in Open-Source-Projekten<br />

Konzertiert<br />

Eine Firma, die auf freie Software setzt, sollte darauf achten, dass sich das Open-Source-Projekt in eine Richtung<br />

entwickelt, die dem Unternehmen nutzt. Dieser Artikel zeigt, wie kommerzielle Hersteller freie Communities<br />

steuern und beeinflussen können. Dirk Riehle, Markus Feilner<br />

Die Marktforscher sind sich einig: Open<br />

Source ist längst zum integralen Bestandteil<br />

von Unternehmen geworden. Spätestens<br />

2012 läuft laut einer Gartner-Studie<br />

freie Software bei über 80 Prozent aller<br />

Softwarehersteller [1], Forrester Research<br />

interpretiert die Ergebnisse seiner Befragungen<br />

ähnlich: 2009 gab fast die Hälfte<br />

aller Firmen an, freie Software zu verwenden<br />

oder zu implementieren [2].<br />

Wie steuern?<br />

Doch diese gestiegene Bedeutung in<br />

Unternehmen macht Manager und Controller<br />

unruhig. Wie steuert man ein<br />

Open-Source-Software-Produkt? Welche<br />

Kontrollmechanismen lassen sich von<br />

Firmen instrumentalisieren? Wie verhindern<br />

sie, dass die freien Komponenten<br />

in unerwünschte Richtungen davoneilen<br />

und so die Unternehmensziele in Gefahr<br />

bringen? Mit zunehmender Bedeutung<br />

von freier Software wächst auch das<br />

Interesse an der gezielten Lenkung der<br />

Community und dem Verständnis für die<br />

zugrunde liegenden Prozesse.<br />

Für den folgenden Artikel dienen drei<br />

Kategorien von Unternehmen als Maßstab:<br />

Traditionelle Softwarefirmen, Single-Vendor-Open-Source-Firmen<br />

[3] und<br />

Distributoren:<br />

n Closed-Source-Firmen besitzen alle<br />

Softwarekomponenten, die ihr Produkt<br />

vom Wettbewerb unterscheiden.<br />

Die Softwarequellen bleiben unveröffentlicht.<br />

Typische Beispiele hierfür<br />

sind Microsoft Windows, Oracles Datenbank<br />

oder SAPs Business Suite.<br />

n Die Single-Vendor-Open-Source-Firmen<br />

besitzen ebenfalls alle Rechte an<br />

den zentralen Softwarekomponenten,<br />

aber sie haben diese unter Freigabe<br />

der Quelltexte öffentlich gemacht [4].<br />

Typische Beispiele dafür sind Alfrescos<br />

Contentmanagement-System, Jaspersofts<br />

Business Intelligence Tools [5]<br />

und (zumindest früher) MySQL.<br />

© Yuri Arcurs, 123RF.com<br />

n Open-Source-Distributoren integrieren<br />

eine große Anzahl freier Komponenten<br />

und vertreiben das Gesamtpaket gegen<br />

Gebühr. Sie besitzen kein Eigentum an<br />

den Komponenten. Typische Vertreter<br />

dieser Riege sind Suse und Red Hat,<br />

aber auch Acquias Drupal [6].<br />

Allen drei Typen gemeinsam ist, dass<br />

die Firmen dahinter exklusiv über eine<br />

Art von geistigem Eigentum (Intellectual<br />

Property) verfügen und es zu Geld<br />

machen. Die ersten beiden erzeugen<br />

Software, die Distributoren eine vorkonfigurierte<br />

Zusammenstellung mit Wiedererkennungswert<br />

und eigener Marke.<br />

Eigentum<br />

Auch wenn freie Software gemäß einer<br />

Open-Source-Lizenz beliebig verfügbar<br />

ist, existieren dennoch Eigentumsrechte<br />

daran. Bei Single Vendor Open Source ist<br />

die Sachlage sehr einfach: Ein einzelnes<br />

Unternehmen ist der rechtliche Eigentümer<br />

und wird aggressiv seine Eigentumsrechte<br />

verteidigen.<br />

Doch bei Community Open Source liegen<br />

die Rechte bei einer diffusen Masse<br />

von Einzelpersonen (den Entwicklern<br />

und Code-Kontributoren), bestenfalls<br />

bei einer Stiftung, die stellvertretend für<br />

ihre vielen Mitglieder deren Rechte wahrnimmt<br />

([7], [8], [9]).<br />

Die Lizenzen selbst lassen sich im Wesentlichen<br />

in reziproke (virale) und liberale<br />

(permissive) Lizenzen kategorisieren.<br />

Eine Firma, die Software einbaut, die<br />

einer reziproken Lizenz wie der GPL oder<br />

der AGPL unterstellt ist, kann sich dazu<br />

gezwungen sehen, den eigenen Sourcecode<br />

ebenfalls zu offenbaren. Liberalere<br />

Lizenzen wie die Apache- oder die<br />

BSD-Lizenz gestatten es dagegen, auch


Community<br />

Open Source<br />

Komponententyp<br />

proprietäre<br />

Open Source<br />

Closed<br />

Open<br />

Owned Closed Source<br />

Licensed Closed Source<br />

Single Vendor Open Source<br />

Community Open Source<br />

Entwicklungskosten<br />

reduzieren<br />

soziale<br />

Führung<br />

soziale<br />

Führung<br />

Geschäftsziele<br />

möglichst viele<br />

Kunden erreichen<br />

Wettbewerb<br />

minimieren<br />

<br />

Eigentum an<br />

der Domain<br />

Kontrolle über<br />

Copyright,<br />

Marke,<br />

Entwicklung<br />

soziale Führung,<br />

Eigentum an<br />

Domain, strategische<br />

Positionierung<br />

Kontrolle über<br />

Marke,<br />

Entwicklung,<br />

Strategie<br />

<br />

OSS-Projekte steuern 06/2011<br />

Forum<br />

www.linux-magazin.de<br />

73<br />

Plattform<br />

Closed-Source-Firma Single-Vendor-OSS-Firma Open-Source-Distributor<br />

Abbildung 1: Open oder Closed Source, Community-eigen oder im vollständigen<br />

Besitz der Entwicklerfirma? In modernen Softwarefirmen findet sich all das.<br />

Abbildung 2: Bei den Kontrollpunkten und Steuermechanismen ist für die Hersteller<br />

von freier Software viel soziale Führung gefragt.<br />

proprietäre Closed-Source-Produkte als<br />

Derivate zu erstellen.<br />

In der Regel finden sich in jeder modernen<br />

Software zahlreiche Einzelkomponenten<br />

mit divergierenden Lizenzen,<br />

die unterschiedliche Nutzungsvarianten<br />

erlauben oder verbieten.<br />

Produkttypen und Ziele<br />

Abbildung 1 zeigt schematisch die vier<br />

möglichen Typen. Das vereinfacht dargestellte<br />

Produkt enthält sowohl einen<br />

Closed-Source- als auch einen Open-<br />

Source-Anteil. Im ersten Teil finden sich<br />

Komponenten, die im vollständigen Besitz<br />

der Firma sind. Meist verwenden<br />

Entwickler diese in ihren Produkten, die<br />

sich im Idealfall dadurch von der Konkurrenz<br />

abheben.<br />

Das Unternehmen hat außerdem Closed-<br />

Source-Software von Dritten lizenziert,<br />

um das Produkt zu vervollständigen.<br />

Bei klassischen Softwarefirmen ist das<br />

Produkt damit abgeschlossen, doch bei<br />

Open-Source-Herstellern kommen offene<br />

Bestandteile hinzu: Der Single-Vendor-<br />

Open-Source-Anbieter hat vielleicht auch<br />

Closed-Source-Komponenten dabei, vor<br />

allem um sein Produkt von einer ebenfalls<br />

existierenden freien Community-Version<br />

zu differenzieren (Open-Core-Modell).<br />

Open-Source-Distributoren haben normalerweise<br />

keinerlei proprietären Code<br />

in ihren Produkten.<br />

Ein Single-Vendor-Open-Source-Anbieter<br />

besitzt seine Software, macht sie aber<br />

trotzdem aus strategischen Gründen unter<br />

einer freien Lizenz der Welt zugänglich.<br />

Community Open Source dagegen<br />

ist im Besitz einer Entwicklergemeinschaft,<br />

nicht einer einzelnen Rechtsperson.<br />

Reine Closed-Source-Firmen erstellen<br />

keine freie Software, aber alle drei<br />

Firmentypen nutzen sie.<br />

Closed-Source- und Single-Vendor-Hersteller<br />

bevorzugen liberale Lizenzen, weil<br />

sie so die proprietären Anteile ihres Code<br />

nicht gefährden oder offenlegen müssen.<br />

Distributoren dagegen nutzen alle Typen<br />

von freier Software, unabhängig von der<br />

Natur der Lizenz. Das gründet in der<br />

Tatsache, dass ihre Stärke im Wettbewerb<br />

nicht in der Software selbst liegt, sondern<br />

in ihrer (bewährten) Konfigurations- und<br />

Integrationsleistung.<br />

Ein gutes Beispiel hierfür ist Jaspersoft<br />

[5], eine Open-Source-Firma, die unter<br />

anderem Software für Business-Intelligence-Produkte<br />

herstellt, zum Beispiel<br />

den Reportgenerator Jasper Server. In<br />

dessen Enterprise-Produkte integriert<br />

sie eigenen Closed-Source-Code. Der<br />

wiederum baut auf der Open Source<br />

Community Edition auf, die vollständig<br />

Jaspersoft gehört, aber auch freie Komponenten<br />

wie den relationalen Datenbank-Mapper<br />

Hibernate [9] integriert.<br />

Als Plattform darunter dient Jaspersoft<br />

sowohl Windows als auch <strong>Linux</strong>.<br />

Es existieren drei typische strategische<br />

Ziele für den Einsatz freier Software:<br />

n Minimieren der Entwicklungskosten<br />

n Maximieren der Verbreitung<br />

n Minimieren des Wettbewerbs<br />

Community Open Source und lizenzierte<br />

Closed-Source-Produkte helfen die Entwicklungskosten<br />

im Griff zu behalten.<br />

Die Software als Open-Source-Projekt<br />

zu veröffentlichen und zu verbreiten<br />

lässt den Hersteller ein besseres Produkt<br />

schneller, günstiger und deutlich breiter<br />

auf den Markt bringen – was wohl die<br />

wesentliche Belohnung dafür ausmacht,<br />

dass eine Firma ihr geistiges Eigentum<br />

freigibt. Nebenbei erhält das Unternehmen<br />

im Idealfall so auch eine aktive selfsupporting<br />

Community.<br />

Gleichzeitig kann kein Hersteller, der<br />

den Mut zur GPL aufbringt, verhindern,<br />

dass die neu geschaffene Öffentlichkeit<br />

der Quelltexte auch den Wettbewerbern<br />

nützt. Deshalb achten sowohl Single-<br />

Vendor-Firmen als auch Distributoren<br />

penibel auf die Konkurrenz. Eine aktive<br />

Steuerung des neugeschaffenen Open-<br />

Source-Projekts wird notwendig.<br />

Kontrollpunkte<br />

Softwarehersteller nutzen eine ganze<br />

Reihe von Werkzeugen, um freie Projekte<br />

zu managen, von denen ihr Business-<br />

Erfolg abhängt. Kontrollpunkte sind dabei<br />

Hebel, die helfen, die eigenen Ziele<br />

zu erreichen, und die sich über rechtliche<br />

Schritte erzwingen lassen. Dem stehen<br />

Steuermechanismen gegenüber, die<br />

zwar demselben Ziel dienen, aber nicht<br />

erzwingbar sind, sondern über soziale<br />

Faktoren und entsprechendes Verhalten<br />

wirken.<br />

Abbildung 2 stellt die oben genannten<br />

Ziele den Kontrollpunkten und Steuermechanismen<br />

gegenüber und zeigt, in welchen<br />

Firmentypen und Lizenzmodellen<br />

sie angebracht sind. Drei Kontrollpunkte


Forum<br />

www.linux-magazin.de OSS-Projekte steuern 06/2011<br />

74<br />

Für Distributoren stehen vielmehr die<br />

Markenrechte im Vordergrund, die aber<br />

auch Single-Vendor-Firmen helfen können.<br />

Auch Closed-Source-Unternehmen<br />

nutzen sie, aber nicht in OSS-Projekten.<br />

In der Regel dienen eingetragene Markenzeichen<br />

dazu, den Wettbewerb im Zaum<br />

zu halten. Distributoren investieren viel<br />

in ihren „Brand“, weil der das wichtigste<br />

Unterscheidungsmerkmal zur Konkurrenz<br />

ausmacht.<br />

Zwar bieten häufig Dienstleister Produkte<br />

rund um die Open-Source-Produkte aus<br />

den Distributionen an, doch Wettbewerber<br />

könnten diese nur dann nutzen,<br />

wenn sie zuerst die fremden Markenzeichen<br />

entfernen. Das wiederum kann<br />

der ursprüngliche Hersteller erschweren<br />

und so den Markteintritt der Konkurrenz<br />

verzögern.<br />

Darüber hinaus stehen Kunden diesem<br />

Entfernen der wohlbekannten Symbole<br />

häufig skeptisch gegenüber, weil in ihren<br />

Augen jetzt nicht mehr der verlässliche,<br />

erfahrene Distributor hinter dem<br />

Produkt steht. Diesen Effekt suchen Hersteller<br />

meist noch mit intelligenten Zertifizierungsprogrammen<br />

zu verstärken, die<br />

den gefühlten Wert des Originals deutlich<br />

über den der Kopie heben. Single-Vendor-Firmen<br />

kennzeichnen ihre Produkte<br />

mittlerweile in sehr ähnlicher Weise und<br />

stärken ihre Position mit der Androhung<br />

von Klagen gegen Wettbewerber, die die<br />

Markenzeichen nicht entfernen.<br />

Auch der dritte Kontrollpunkt, die Internetdomäne<br />

eines Open-Source-Projekts,<br />

spiegelt in der Regel das oder die Progarantieren<br />

einem Unternehmen signifikante<br />

Kontrolle über ein OSS-Projekt:<br />

n Copyright: Während eine Firma einem<br />

Dritten Nutzungsrechte über eine<br />

Open-Source-Lizenz einräumen kann,<br />

mag sie das Eigentum des Copyrights<br />

für sich allein reservieren. Als Eigner<br />

kann sie so verhindern, dass Dritte die<br />

Software unter abweichenden Lizenzen<br />

verwenden.<br />

n Marken: Logos, Slogans, Namen – darüber<br />

definieren sich viele Softwarepakete<br />

auf dem Markt. Faktisch kann der<br />

Besitzer einer Marke verhindern, dass<br />

Wettbewerber derart geschützte Produkte<br />

verwenden. Bei Open-Source-<br />

Software etwa lässt sich verhindern,<br />

dass Dritte mit der Marke werben. Der<br />

Hersteller kann verlangen, alle verwendeten<br />

Markenzeichen zu entfernen,<br />

was sich durchaus als kostspielige<br />

Aktion erweisen kann.<br />

n Eigentum der Domain: Wer die Domain<br />

besitzt, auf der Entwickler und<br />

Kunden nach Informationen suchen,<br />

hat einen klaren Vorteil. Mit dieser Informationshoheit<br />

lassen sich Anwender<br />

benachrichtigen und ihre Wahrnehmung<br />

des Produkts beeinflussen.<br />

Marken helfen die Domains zu schützen<br />

und halten Wettbewerber davon<br />

ab, ähnlich oder gleich klingende Domains<br />

zu verwenden.<br />

Überraschenderweise finden sich Patente<br />

nicht in der Liste der Kontrollpunkte. Vor<br />

Gericht dienen Patente häufig dazu, es<br />

anderen Firmen, meist Wettbewerbern,<br />

zu untersagen, eine bestimmte Software<br />

zu verwenden, weil diese die Rechte des<br />

Patentinhabers verletzt.<br />

Patente eignen sich aber in der Regel<br />

nicht dazu, ein Open-Source-Projekt zu<br />

steuern. Vielmehr finden sich in zahlreichen<br />

freien Lizenzen mehr und mehr<br />

Klauseln, die Patente und Patentklagen<br />

zurückweisen.<br />

So genannte Vergeltungsklauseln (Retaliation<br />

Clauses) entziehen dem Kläger<br />

dabei schlagartig alle Nutzungsrechte an<br />

der freien Software, was mit zunehmender<br />

Verbreitung freier Software in Unternehmen<br />

beträchtliche finanzielle Folgen<br />

mit sich bringen kann.<br />

Copyright<br />

Abbildung 3: Markenrechte und Patente dienen kommerziellen Herstellern<br />

zur Eindämmung der Konkurrenz, meist setzen sie diese erst vor Gericht<br />

durch. In OSS-Firmen spielen Patente dagegen keine Rolle.<br />

Das Urheberrecht bietet Single-Vendor-<br />

Anbietern den besten Hebel, um den<br />

Wettbewerb zu minimieren. Zwar haben<br />

sie der ganzen Welt Nutzungsrechte an<br />

der Software eingeräumt, doch meist<br />

nehmen diese Hersteller zentrale Teile<br />

der Software, die sie als Vorsprung vor<br />

der Konkurrenz ansehen, davon aus und<br />

lizenzieren sie unter einer kommerziellen<br />

Lizenz. Das dient zum einen der Gewinnmaximierung,<br />

zum anderen dem Schutz<br />

vor den Wettbewerbern. Dabei gelten für<br />

Hersteller zwei gängige Regeln:<br />

n Jeder Beitrag von Dritten zum Sourcecode<br />

erfordert zwingend einen Copyright-Transfer<br />

an den Hersteller. In<br />

der Praxis muss der Contributor ein<br />

Copyright Transfer Agreement (CTA)<br />

unterzeichnen, das nicht selten auch<br />

Patente und andere Rechtsfragen<br />

gleich mit abdeckt.<br />

n Die gewählte Open-Source-Lizenz<br />

für das freie Projekt sollte aggressiv<br />

reziprok sein. Jede Software, die auf<br />

dem Projekt aufbaut,<br />

muss wiederum OSS<br />

sein, damit kein Mitbewerber<br />

die Software<br />

für eigene, proprietäre<br />

Produkte nutzen kann.<br />

Gleichwohl kann der<br />

Hersteller als Inhaber<br />

des Urheberrechts jederzeit<br />

eine identische<br />

Version unter einer für<br />

Closed Source geeigneten<br />

Lizenz veröffentlichen<br />

und so auch Kunden<br />

bedienen, die keine<br />

OSS-Produkte einsetzen<br />

können oder wollen.<br />

© Sam Aronov, 123RF.com<br />

Details der CTAs und die Wahl einer<br />

bestimmten Open-Source-Lizenz hängen<br />

von den Gegebenheiten der Softwarefirma<br />

ab. Meist verwenden diese die<br />

GPL, doch auch der Bestand an AGPL-<br />

Software wächst derzeit stark.<br />

Closed-Source-Compagnies brauchen sich<br />

mit dieser Thematik naturgemäß nicht zu<br />

beschäftigen, aber auch Distribu toren interessiert<br />

das wenig. Die Kontrolle über<br />

einzelne Komponenten spielt bei ihnen<br />

eine eher untergeordnete Rolle, sie tragen<br />

mit ihrer Arbeit einfach zur OSS-<br />

Community bei, ohne viel über Copyright<br />

nachdenken zu müssen.<br />

Trademark und Domains<br />

schützen Produkte


dukte der Firma dahinter wieder. Hier<br />

erreicht der Hersteller das Gros seiner<br />

existierenden und potenziellen Kunden.<br />

Ähnlich wie die eingetragenen Markenzeichen<br />

betrifft dies alle drei Typen von<br />

Firmen, aber nur Single-Vendor-Firmen<br />

und Distributoren nutzen es, um ihre<br />

Intellectual Property zu schützen.<br />

Über ihren Internetauftritt bestimmen<br />

sie, welche Aspekte der Software Dritte<br />

kennenlernen und in welchem Maß. Im<br />

Idealfall spiegeln sich hier die Geschäftsziele<br />

wieder. Und Trademarks helfen, den<br />

Wettbewerber von ähnlichen Domainnamen<br />

fernzuhalten, was wiederum potenzielle<br />

Kunden eher zu den eigenen<br />

Produkten lenkt.<br />

Steuermechanismen<br />

Neben den Kontrollpunkten stehen einem<br />

Unternehmen drei wichtige Steuermechanismen<br />

zur Verfügung, mit denen<br />

es die Richtung eines Softwareprojekts<br />

beeinflussen kann:<br />

n Soziale Führung: Die Leiter eines<br />

OSS-Projekts sind ein wichtiger Hebel.<br />

Das fängt bei der Lizenzwahl an,<br />

erstreckt sich über Projektkultur und<br />

Führungsstil bis hin zur Umsetzung<br />

von Releaseplänen, Featurelisten und<br />

Roadmaps.<br />

n Entwicklungsprozess: Eine Firma, die<br />

einen Contributor eines Projekts einstellt,<br />

kann damit den Entwicklungsprozess<br />

signifikant beeinflussen. Die<br />

eigentliche Entwicklung muss dabei<br />

nicht öffentlich sein, Codebeiträge lassen<br />

sich verzögern und die Software<br />

nur in (un)regelmäßigen Snapshots<br />

veröffentlichen.<br />

n Strategische Positionierung: Manche<br />

Marketingkanäle funktionieren besser<br />

als andere. Gerade Open-Source-<br />

Stiftungen bieten wichtige Marketing-<br />

Gelegenheiten.<br />

Die soziale Führung der Community hat<br />

verschiedene Aspekte, je nach Firma und<br />

Entwicklungsweise lässt sie sich sehr<br />

unterschiedlich instrumentalisieren. Im<br />

Single-Vendor-Modell beschäftigt der<br />

Hersteller alle oder viele der wichtigsten<br />

Entwickler. Zumindest einige von ihnen<br />

können auch Führungsrollen in der<br />

Community einnehmen und so das Interesse<br />

freier Developer anstoßen oder nach<br />

dem Geschmack des Herstellers leiten.<br />

Der Sun-Vize Mårten<br />

Mickos rechnet vor, dass<br />

nur ein kleiner Teil der<br />

Entwicklungskosten auf<br />

das Konto des eigentlichen<br />

Programmierens<br />

geht [11]. Mindestens<br />

genauso viel, nicht<br />

selten mehr Aufwand<br />

verursachen Qualitätssicherung<br />

und das Testen,<br />

also Arbeiten, bei<br />

denen die OSS-Community<br />

große Hilfestellung<br />

leisten kann.<br />

Auch eine Firma, die<br />

Entwickler dafür bezahlt,<br />

ein Community-Projekt voranzubringen,<br />

kann davon profitieren und an<br />

Einfluss gewinnen. Indem die Entwickler<br />

darauf achten, dass die freie Variante mit<br />

den Produkten des Herstellers funktioniert,<br />

helfen auch sie Kosten sparen. Je<br />

einflussreicher die Entwickler sind, umso<br />

mehr sind sie auch in der Lage, das freie<br />

Projekt in die von der Firma gewünschte<br />

Richtung zu bewegen und durch Community-Code<br />

kostspielige Eigenentwicklungen<br />

unnötig zu machen.<br />

Alter Adel<br />

Der Einfluss eines Entwicklers wächst<br />

aber erst mit der Zeit. Ein wichtiger Erfolgsfaktor<br />

mag es sein, einer der Gründer<br />

gewesen zu sein. Nach zwanzig Jahren<br />

gilt etwa Linus Torvalds immer noch als<br />

oberster Schiedsrichter über den <strong>Linux</strong>-<br />

Kernel, seine Stimme hat Gewicht wie<br />

wenige andere. Bei weniger hierarchisch<br />

organisierten Projekten wie PostgreSQL<br />

oder Apache spielt dieser Faktor jedoch<br />

eine geringere Rolle.<br />

Die Führungsfiguren in einem Projekt<br />

nutzen ihre Position, um eine bestimmte<br />

Kultur zu installieren, die im Idealfall<br />

Menschen anzieht und motiviert, manchmal<br />

aber auch abschreckt, und die sich<br />

für ihren Arbeitgeber nutzen lässt. Überraschenderweise<br />

ist diese Einflussnahme<br />

in der Community nicht verpönt, sondern<br />

meist allseitig als unvermeidbarer Interessenkonflikt<br />

verstanden.<br />

Die Führungspersönlichkeit stellt sich in<br />

den Dienst des Projekts und erwirbt damit<br />

auch ein gewichtiges Mitspracherecht<br />

bei Entscheidungen, zum Beispiel über<br />

Abbildung 4: Das Finetuning der Community erledigt der OSS-Hersteller<br />

am besten mit viel Gespür für die Entwicklergemeinde. Soziale Führung,<br />

die passende Strategie und die richtigen Entwickler helfen dabei.<br />

die Richtung der weiteren Entwicklung.<br />

Über sozial kompetente Leader erweitern<br />

Single-Vendor-Firmen und Distributoren<br />

auch ihren Kundenkreis.<br />

Prominente Vertreter von Open-Source-<br />

Projekten (und gleichzeitig auch der<br />

Firma dahinter) stehen nicht selten im<br />

Licht der Öffentlichkeit und verfügen<br />

über einen guten Draht zu den Anwendern.<br />

Ihr Wort zählt und wenn sie die<br />

Enterprise-Produkte und deren Interoperabilität<br />

mit der freien Variante loben,<br />

erhalten sie meist viel Aufmerksamkeit.<br />

Quasi Huckepack landen so Informationen<br />

vom Hersteller mit gutem Leumund<br />

direkt bei den Kunden, egal ob via Mailingliste,<br />

Vortrag auf einer Konferenz oder<br />

über die Medien.<br />

Der Entwicklungsprozess<br />

Sowohl Single-Vendor-Firmen als auch<br />

Distributoren nutzen spezielle Entwicklungsprozesse,<br />

um die Konkurrenz auszusperren.<br />

Typischerweise findet viel Entwicklung<br />

hinter verschlossen Türen statt,<br />

sodass Wettbewerber nicht wissen, was<br />

für neue Features demnächst kommen –<br />

und so hoffentlich länger brauchen, um<br />

ihre Codebasis dahingehend anzupassen.<br />

Auch das Veröffentlichen von Snapshots<br />

anstelle einer vollständigen History oder<br />

verzögerte Sourcecode-Releases (erst<br />

nach den Binaries) dienen dazu, sich einen<br />

Zeitvorsprung vor Wettbewerbern zu<br />

erarbeiten.<br />

In vielen Fällen wünschen Firmen nicht,<br />

dass die Konkurrenz einen Einblick in die<br />

aktuelle Entwicklung erhält. Greg Kroah-<br />

Hartman kritisiert beispielsweise in sei-<br />

© Sam Aronov, 123RF.com<br />

OSS-Projekte steuern 06/2011<br />

Forum<br />

www.linux-magazin.de<br />

75


Forum<br />

www.linux-magazin.de OSS-Projekte steuern 06/2011<br />

76<br />

Abbildung 5: Gemeinsam stärker: Eine Stiftung erweist sich häufig als die<br />

richtige Partnerschaft für eine Firma, die mit Open-Source-Software Geld<br />

verdienen will. Die Foundation hilft dabei nicht nur vor Gericht.<br />

nem viel diskutierten Blogeintrag [12]<br />

die Haltung der Entwickler von Hardwareherstellern,<br />

die binäre Kerneltreiber<br />

entwickeln, um Konkurrenten keine Firmengeheimnisse<br />

preiszugeben. Wie viele<br />

Stimmen aus der Community wirbt auch<br />

Hartmann für das <strong>Linux</strong> Kernel Driver<br />

Interface und Open-Source-Treiber. Doch<br />

offener Code würde allzu viele Rückschlüsse<br />

auf die Neuheiten der nächsten<br />

Hardwaregeneration geben und so technischen<br />

Vorsprung gefährden.<br />

Aber Community-Open-Source-Projekte<br />

lassen sich auch vollständig blockieren,<br />

wenn eine Firma alle wichtigen Entwickler<br />

anstellt und so verhindert, dass neues<br />

Personal (Anwender, Entwickler, Committer)<br />

in diesen Kreis vordringt. Bisher<br />

hat sich solches Verhalten jedoch meist<br />

als schädlich für das Projekt erwiesen,<br />

außer wenn der Hersteller entscheidende<br />

strategische Weichen richtig gestellt hat<br />

(siehe unten). Auf jeden Fall ist das Einstellen<br />

von Entwicklern aus Schlüsselpositionen<br />

von Open-Source-Projekten<br />

ein zentraler Faktor für Unternehmen,<br />

die einen erfolgreichen und dauerhaften<br />

Entwicklungsprozess etablieren wollen,<br />

der zu den Firmenzielen passt.<br />

Die richtigen Strategien<br />

Mit den richtigen Strategien lässt sich die<br />

Kundenbasis erweitern und gleichzeitig<br />

der Wettbewerb verringern. Doch weil<br />

Open-Source-Firmen mit der Community-<br />

Edition kein Geld verdienen, bedarf es<br />

einer anderen, erweiterten oder zusätzlichen<br />

Einnahmequelle. Als Beispiel kann<br />

da Actuate dienen, der<br />

Hersteller des Report-<br />

Designers BIRT [13].<br />

Abseits des Eclipse-<br />

Projekts verdankt die<br />

Firma den Großteil ihrer<br />

Einnahmen einem<br />

kommerziellen Report-<br />

Generator.<br />

Auch ist es eine gute<br />

Idee, Community-Open-<br />

Source-Projekte unter<br />

dem Dach einer etablierten<br />

Stiftung zu gründen.<br />

Die Stiftung steht<br />

für Glaubwürdigkeit<br />

und verleiht dem Projekt<br />

öffentliches Ansehen.<br />

Indem ein Closed-Source- oder Single-Vendor-Hersteller<br />

zwei oder drei Erweiterungen<br />

ebenfalls als freie Software<br />

freigibt, kann er sich die Unterstützung<br />

der Foundation sichern und diese als<br />

Marketingkanal benutzen.<br />

Wenn die Stiftung erlaubt, kann die Firma<br />

auch das Projekt in Beschlag nehmen und<br />

die Konkurrenz der Community aussperren.<br />

Damit das funktioniert, bedarf es<br />

aber der Herrschaft über das Projekt, was<br />

wiederum durch das Einstellen aller oder<br />

zumindest einer Mehrheit der Core-Developer<br />

erfolgen kann. Derartiges Vorgehen<br />

liegt natürlich nur selten im Interesse der<br />

Foundation, die ihm normalerweise auch<br />

entgegenwirken wird. Die Apache Foundation<br />

beispielsweise erlaubt konkurrierende<br />

Projekte ausdrücklich und erwartet<br />

eine ausreichende Diversität unter den<br />

Kernentwicklern.<br />

Einer Stiftung beizutreten kann eine Softwarefirma<br />

auch schützen, beispielsweise<br />

in Gerichtsverfahren. Gehört das Projekt<br />

zur Foundation, dann wird diese es und<br />

die Hersteller dahinter auch gegen Klagen<br />

und vergleichbare Angriffe schützen.<br />

Nicht zu verachten ist dabei auch die<br />

Wirkung in der Öffentlichkeit und das<br />

schlechte Licht, das solche Aktionen auf<br />

den Kläger werfen. Nicht selten schrecken<br />

da Konkurrenten zurück, wo sie gegen<br />

eine Firma hart vorgehen würden.<br />

Fazit<br />

© Dmitriy Shironosov, 123RF.com<br />

Softwarehersteller, die über Open-Source-<br />

Projekte Gewinne erzielen möchten, verfolgen<br />

drei Ziele: Sie wollen Entwick-<br />

lungskosten minimieren, mehr neue Kunden<br />

anwerben und die Konkurrenz durch<br />

freie Software verringern. Um dies zu erreichen,<br />

nutzen sie eine ganze Reihe von<br />

Einflussmöglichkeiten, teils mit rechtlichen<br />

Mitteln durchsetzbar, teilweise aber<br />

eher weiche soziale Steuermechanismen.<br />

Sozial kompetente Führungspersonen,<br />

Marken, Copyright und die richtigen Domains<br />

spielen eine große Rolle, Patente<br />

dagegen nicht.<br />

n<br />

Infos<br />

[1] Mark Driver, „Key Issues for Open Source<br />

Software 2010“: Gartner Research, 2010<br />

[2] Jeffrey S. Hammond, „Open Source<br />

Software Goes Mainstream“: Forrester<br />

Research, 2009<br />

[3] Dirk Riehle, Markus Feilner, „Fest vernetzt“:<br />

<strong>Linux</strong>-<strong>Magazin</strong> 05/ 11, S. 78<br />

[4] Das kommerzielle OSS-Modell:<br />

[http:// dirkriehle.com/publications/2009/<br />

the-commercial-open-source-businessmodel/]<br />

[5] Jaspersoft: [http:// www. jaspersoft. com]<br />

[6] Acquias Drupal Distribution:<br />

[http:// acquia. com/ products-services/<br />

acquia-drupal]<br />

[7] Fred Andresen, „Recht einfach – Stiftungen“:<br />

<strong>Linux</strong>-<strong>Magazin</strong> 05/ 11, S. 84<br />

[8] Stiftungen und OSS: [http:// dirkriehle.<br />

com/publications/2010/the-economiccase-for-open-source-foundations/]<br />

[9] Die ökonomische Motivation: [http://<br />

dirkriehle.com/computer-science/research/2007/computer-2007-article.html<br />

[10] Hibernate: [http:// www. hibernate. org]<br />

[11] Marten Mickos, „Open for Business“: Präsentation<br />

bei der PARC am 8. April 2010<br />

[12] Greg Kroah-Hartman, „The <strong>Linux</strong> Kernel<br />

Driver Interface“: [http:// www. kroah.<br />

com/ log/ linux/ stable_api_nonsense. html]<br />

[13] BIRT: [http:// www. actuate. com],<br />

[http:// www. eclipse.org/birt]<br />

Der Autor<br />

Dr. Dirk Riehle ist Professor<br />

für Open Source Software an<br />

der Friedrich-Alexander-Universität<br />

Erlangen-Nürnberg.<br />

Seine Interessen sind die<br />

Open-Source-Software-Entwicklung<br />

sowie agile Methoden, komplexe adaptive<br />

Systeme, Computer-unterstütze menschliche<br />

Zusammenarbeit und Software-Entwurf. Er bloggt<br />

regelmäßig auf [http:// dirkriehle. com].


MAGAZIN<br />

SondErAkTion<br />

Testen Sie jetzt<br />

3 Ausgaben<br />

für 3 Euro!<br />

JETZT<br />

MiT dVd!<br />

Jetzt schnell bestellen:<br />

• Telefon 07131 / 2707 274<br />

• Fax 07131 / 2707 78 601<br />

• E-Mail: abo@linux-magazin.de<br />

• Web:<br />

www.linux-magazin.de/probeabo<br />

Mit großem Gewinnspiel<br />

(Infos unter: www.linux-magazin.de/probeabo)<br />

GEwinnEn SiE... EinEn MulTiMEdiA-PlAyEr MiT doPPElTEM<br />

dVB-T-TunEr Von wyPlAyEr iM wErT Von 300,- Euro (uVP)<br />

Einsendeschluss ist der 15.06.2011


Forum<br />

www.linux-magazin.de Rechts-Rat 06/2011<br />

78<br />

Dachzeile Leser fragen, der <strong>Linux</strong>-<strong>Magazin</strong>-Ratgeber antwortet<br />

Überschrift<br />

Recht einfach<br />

Urheberrecht, Verträge, Lizenzen und so weiter: In der Serie „Rechts-Rat“ erhalten <strong>Linux</strong>-<strong>Magazin</strong>-Leser verständliche<br />

Auskünfte zu Rechtsproblemen des <strong>Linux</strong>-Alltags. Fred Andresen<br />

©BarbaraReddoch,123RF.com<br />

Abbildung1:DergrenzüberschreitendeVersandvonWarenmitrichtiger<br />

BesteuerungkanneinenervenaufreibendeSachesein.<br />

In dieser Ausgabe geht’s um die Umsatzsteuer<br />

in Auslandsgeschäften, GUI-Plagiate,<br />

Facebook-Links, Widerrufsrechte im<br />

Fernabsatz und den urheberrechtlichen<br />

Erschöpfungsgrundsatz.<br />

i Umsatzsteuerim<br />

Internet-Vertrieb<br />

Welche Umsatzsteuer fällt an, wenn man Softwaretools<br />

und Programme wie auch Server- und<br />

Wartungsdienste online in andere Länder vertreibt<br />

oder von dort bezieht?<br />

Hans-Werner P.<br />

Das kommt zunächst darauf an, ob der<br />

Empfänger selbst Unternehmer ist oder<br />

ob es sich bei ihm um einen Verbraucher<br />

handelt: Unternehmer ist, wer eine gewerbliche<br />

oder berufliche Tätigkeit selbstständig<br />

ausübt, Verbraucher sind alle anderen.<br />

Das und Weiteres<br />

regelt in Deutschland<br />

das Umsatzsteuergesetz<br />

[1]. Außerdem kommt es<br />

darauf an, ob der Kunde<br />

innerhalb der EU oder<br />

außerhalb sitzt.<br />

Im Umsatzsteuergesetz<br />

ist auch definiert, dass<br />

es sich beim Onlinevertrieb<br />

von Software um<br />

eine sonstige Leistung<br />

handelt. Es kommt für<br />

die umsatzsteuerliche<br />

Behandlung auch darauf<br />

an, ob es sich um eine<br />

Lieferung handelt oder<br />

sonstige Leistung (alles,<br />

was nicht Lieferung ist).<br />

Also – aus traditioneller<br />

Sicht – ob Güter versandt<br />

werden oder etwas<br />

anderes passiert.<br />

So genannte Katalogleistungen sind in<br />

Paragraf 3a UStG aufgeführt, um klarzustellen,<br />

dass diese Tätigkeiten unter die<br />

Umsatzsteuerpflicht fallen, um aber auch<br />

explizit zu regeln, welche Umsatzsteuer<br />

dafür anfällt: Im grenzüberschreitenden<br />

Wirtschaftsverkehr kommt es auf den Ort<br />

an, an dem eine Lieferung oder sonstige<br />

Leistung als ausgeführt gilt, um daran<br />

festzumachen, wer wie viel Umsatzsteuer<br />

bezahlen muss.<br />

Der Grundsatz ist einfach: Die Umsatzsteuer<br />

ist eine Konsum- oder Verbrauchssteuer,<br />

die nur den Endverbraucher treffen<br />

soll. Jeder Unternehmer, der Lieferungen<br />

durchführt oder sonstige Leistungen erbringt,<br />

für die Umsatzsteuer anfällt, muss<br />

sich darum kümmern: Er muss die Steuer<br />

auf den eigentlichen Preis der Ware oder<br />

Dienstleistung (netto) ermitteln und<br />

aufschlagen (dann brutto), die Gesamt-<br />

summe einziehen und an die Finanzkasse<br />

abführen. Bezahlen müssen sie zunächst<br />

alle, doch Unternehmer dürfen die von<br />

ihnen bezahlten Umsatzsteuerbeträge in<br />

Abzug bringen.<br />

Es wird also nur der Konsum besteuert,<br />

aber faktisch fällt die Steuer beim Unternehmer<br />

an. Weil die beiden Orte dafür<br />

nicht notwendigerweise die gleichen<br />

sind, kann es im grenzüberschreitenden<br />

Verkehr Probleme geben: Landesspezifische<br />

Steuersätze und unterschiedliche Finanzämter<br />

erfordern exakte Regelungen<br />

zu den Fragen, wofür wo, wann, welche<br />

Steuer anfällt und wer diese einbehalten<br />

und zahlen muss.<br />

In den Mitgliedsstaaten der EU ist freier<br />

Waren- und Dienstleistungsverkehr vereinbart,<br />

das macht die Sache komplizierter:<br />

Ohne echte Grenzen lässt sich der<br />

Warenverkehr faktisch nicht mehr kontrollieren,<br />

der (elektronische) Dienstleistungsverkehr<br />

ohnehin nicht. Sollen sich<br />

doch die Unternehmer darum kümmern<br />

(Abbildung 1).<br />

Der Grundsatz, dass Verbrauchssteuern<br />

dort besteuert werden, wo etwas verbraucht<br />

wird (Bestimmungslandprinzip),<br />

ist damit schon durchbrochen. Weil den<br />

Unternehmern außerdem nicht zuzumu-<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 einen<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.


ten ist, für jeden privaten Kunden in jedem<br />

EU-Mitgliedsstaat die jeweils unterschiedliche<br />

Steuer auszurechnen und an<br />

dessen zuständige Behörden abzuführen,<br />

bietet sich an, in diesen Fällen den nationalen<br />

Steuersatz anzuwenden und alles<br />

ans eigene Finanzamt zu zahlen.<br />

Nach Paragraf 3 UStG setzt die Lieferung<br />

stets einen Gegenstand voraus, also eine<br />

körperliche Sache. Damit kann alles, was<br />

jemand auf elektronischem Wege verbreitet<br />

oder durchführt, nur mehr eine<br />

sonstige Leistung sein. Paragraf 3a UStG<br />

regelt, wo der Umsatz anfällt (Leistungsort)<br />

und damit auch, wer sich um die<br />

Umsatzsteuer kümmern muss: Der erste<br />

Absatz stellt den Grundsatz auf, dass<br />

bei sonstigen Leistungen der Sitz beziehungsweise<br />

die Betriebsstätte des Unternehmers<br />

der Leistungsort sei.<br />

Im zweiten Absatz steckt die erste und<br />

wichtigste Ausnahme: Wird die Leistung<br />

für einen (weiteren) Unternehmer<br />

erbracht, gilt dessen Sitz oder Betriebsstätte<br />

als Leistungsort. Von den folgenden<br />

Ausnahmeregelungen sind im Internetverkehr<br />

gerade die genannten Katalogleistungen<br />

entscheidend.<br />

Nach Paragraf 3a Absatz 4 UStG gelten<br />

als so genannte Katalogleistungen die<br />

Einräumung und Übertragung von Urheber-<br />

und ähnlichen Rechten, die Datenverarbeitung,<br />

die Vermietung beweglicher<br />

körperlicher Gegenstände und auf<br />

elektronischem Weg erbrachte sonstige<br />

Leistungen. Für diese Katalogleistungen<br />

gilt: Ist der Leistungsempfänger ein Privater,<br />

gilt sein Standort als Leistungsort, bei<br />

Unternehmern sowieso. Für die Katalogleistungskategorie<br />

der auf elektronischem<br />

Weg erbrachten sonstigen Leistungen gilt<br />

zudem: Sitzt der Unternehmer in einem<br />

Drittland, gilt der Ort des Empfängers als<br />

Leistungsort.<br />

Das führt zu folgender Situation: Für<br />

einen deutschen Unternehmer unterliegen<br />

alle reinen Inlandsgeschäfte sowie<br />

die Geschäfte mit privaten EU-Kunden<br />

dem normalen Umsatzsteuersatz, der<br />

aufzuschlagen und abzuführen ist. Bei<br />

Geschäften mit privaten Kunden außerhalb<br />

der EU fallen alle genannten Geschäfte<br />

unter die Katalogleistungen und<br />

unterliegen daher nicht der hiesigen<br />

Umsatzsteuerpflicht: Softwareverkauf<br />

(urheberrechtlich relevante Geschäfte),<br />

Serververmietung (beweglich trotz Rack-<br />

Mount), (Auftrags-)Datenverarbeitung<br />

oder auf elektronischem Wege erbrachte<br />

sonstigen Leistungen. Hier müssen Sie<br />

weder aufschlagen noch abführen. Allerdings<br />

sind diese Geschäfte in einer so<br />

genannten zusammenfassenden Meldung<br />

dem zuständigen Finanzamt mitzuteilen,<br />

so viel Kontrolle muss sein.<br />

i Oberflächenvon<br />

Softwareabkupfern<br />

Ist es zulässig, die Oberflächen bestimmter kommerzieller<br />

Anwendungsprogramme für eigene<br />

Open-Source-Projekte nachzubauen oder in sehr<br />

ähnlicher Form zu übernehmen?<br />

Anja<br />

Die Gestaltung grafischer Oberflächen<br />

ist nach neuester Rechtsprechung des<br />

Europäischen Gerichtshofs (EuGH, [2])<br />

keine Ausdrucksform eines Computerprogramms,<br />

mithin stellt sie keine eigenständige<br />

Software dar. Diese Oberflächen<br />

sind damit nicht vom urheberrechtlichen<br />

Softwareschutz umfasst. Das ist im Hinblick<br />

auf die typische MVC-Abstraktion<br />

(Model-View-Controller) entscheidend,<br />

da sich damit ein modularer Anteil quasi<br />

frei nachprogrammieren lässt.<br />

Diese Entscheidung konkretisiert die Auslegung<br />

der EU-Richtline über den Rechtsschutz<br />

von Computerprogrammen [3]<br />

und wirkt sich unmittelbar auf die Anwendung<br />

des deutschen Urheberrechts<br />

aus. Der Gerichtshof will lediglich den<br />

Quell- und Objektcode geschützt wissen<br />

und deklariert die grafische Oberfläche<br />

der Programme als „notwendige“ Bedienungshilfe.<br />

Zwar sind grundsätzlich auch grafische<br />

Oberflächen wie jede Art grafischer Gestaltung<br />

dann schützenswert, wenn sie<br />

eine bestimmte Schöpfungshöhe aufweisen,<br />

also wenn sie individueller Ausdruck<br />

und Ausfluss der persönlichen<br />

Gestaltung<br />

des „programmierenden<br />

Grafikers“ sind.<br />

Der Gerichtshof hat<br />

aber klargestellt, dass<br />

dies nicht anzunehmen<br />

ist, wenn die Komponenten<br />

und deren Anordnung<br />

durch die<br />

technische Funktion<br />

bedingt seien. Nach Industriestandard<br />

oder ähnlich sachlichneutrale<br />

Oberflächen-Nachbauten sind<br />

damit in der Regel unbedenklich.<br />

i Dasmagich,andere<br />

abernicht<br />

Wir möchten zur Bewerbung unserer Produkte<br />

auf unserer Homepage gerne Verknüpfungen<br />

zu Social Networks nutzen. Bestehen rechtliche<br />

Bedenken dagegen, den »Like«-Button in unsere<br />

Seiten aufzunehmen?<br />

Christoph P.<br />

Aus datenschutzrechtlicher Sicht ist<br />

das Einbinden solcher »Like«-Buttons<br />

bedenklich, selbst wenn Sie als Seitenbetreiber<br />

keine Daten für sich oder ihr<br />

Unternehmen erheben. Es besteht die<br />

begründete Befürchtung, dass der Betreiber<br />

des Social Network über die Daten<br />

Ihrer Website und der in seinem Nutzerbestand<br />

angemeldeten Personen hinaus<br />

auch Daten weiterer Personen erhebt,<br />

die – mittelbar oder unmittelbar – aus<br />

Ihrer Website hervorgehen, und diese<br />

Daten zudem aus dem Schutzbereich<br />

des deutschen Datenschutzgesetzes [4]<br />

verschiebt.<br />

Sie erheben damit Daten für Dritte, was<br />

nach den deutschen Datenschutzbestimmungen<br />

der Einwilligung bedarf, die<br />

nicht ohne explizite und ausführliche<br />

Belehrung darüber erfolgen darf. Doch<br />

selbst wenn eine solche Einwilligung<br />

über gesonderte Hinweistexte, Links oder<br />

die Erweiterung der bereits vorhandenen<br />

Datenschutzerklärungen wirksam wäre,<br />

könnten sie gegenüber den Betroffenen<br />

für deren Löschungs- und Auskunftsansprüche<br />

verantwortlich sein.<br />

Wenn Sie derartige Ansprüche der Betroffenen<br />

im Fall des Falles nicht gegenüber<br />

dem Betreiber des Social Network (Abbildung<br />

2) durchsetzen können, haften Sie<br />

Abbildung2:FacebookistwegendermöglichenDatensammlungdes<br />

Betreibersjuristischumstritten.<br />

Rechts-Rat 06/2011<br />

Forum<br />

www.linux-magazin.de<br />

79


Forum<br />

www.linux-magazin.de Rechts-Rat 06/2011<br />

80<br />

eventuell als „Veranlasser“; gleichzeitig<br />

drohen Buß- und Ordnungsgelder in erheblicher<br />

Höhe nach den Bestimmungen<br />

unter anderem des Telemediengesetzes<br />

(TMG, [4]).<br />

i Softwarevermieten<br />

undzurückkaufen<br />

Die Weiterverkauf von Software auf Originaldatenträgern<br />

ist zulässig. Darf ich auf diese Weise<br />

auch Software vermieten? Denn wenn keine lokalen<br />

Kopien bestehen, kann sonst niemand die<br />

Software nutzen und das Ergebnis ist das gleiche.<br />

Und wenn das nicht gestattet ist, könnte<br />

man die Software verkaufen und dann wieder<br />

zurückkaufen!<br />

Tom L.<br />

Das Recht zur Weiterveräußerung von<br />

Software folgt aus dem urheberrechtlichen<br />

Erschöpfungsgrundsatz: Der besagt,<br />

dass sich das Verbreitungsrecht des Urhebers<br />

an einem konkreten Werkstück<br />

mit dem Inverkehrbringen erschöpft.<br />

Das ansonsten ausschließlich dem Urheber<br />

zustehende Recht, zu bestimmen,<br />

ob und wie sein Werk verbreitet, also<br />

weitergegeben werden darf, erstreckt<br />

sich damit nicht mehr auf dieses eine<br />

konkrete Werkstück. Daher gilt der Erschöpfungsgrundsatz<br />

nur für Originaldatenträger.<br />

Das „Inverkehrbringen“ ist<br />

nichts anderes, als der erstmalige Verkauf<br />

dieses Datenträgers.<br />

In letzter Zeit war es wieder sehr umstritten,<br />

ob man den Erschöpfungsgrundsatz<br />

auch auf nicht körperliche „Vervielfältigungsstücke“,<br />

also etwa Downloads erstrecken<br />

kann oder soll: Derzeit beschäftigt<br />

sich der Europäische Gerichtshof mit<br />

Abbildung3:BeimHandelmitgebrauchterWareisteinWertverlustdurch<br />

dieIngebrauchnahmeschwerzuermitteln.<br />

dieser Frage. Für die Vermietung gilt jedenfalls<br />

nach dem Urheberrechtsgesetz<br />

ein Ausschluss: Das Verbreitungsrecht,<br />

das sich erschöpft, umfasst nicht das Vermietrecht<br />

[5].<br />

Wenn nun ein findiger Kopf meint, dieses<br />

Verbot dadurch umgehen zu können,<br />

dass er die Originaldatenträger verkauft<br />

und wieder zurückkauft – womöglich<br />

noch gleich zusammen in einem einzigen<br />

Vertrag vereinbart –, ist Vorsicht angebracht:<br />

Dergleichen gilt üblicherweise als<br />

reines Umgehungsgeschäft und lässt sich<br />

im Falle eines Rechsstreits sehr leicht entdecken<br />

– mit den negativen Folgen einer<br />

erkannten Urheberrechtsverletzung.<br />

i Rücknahmeund<br />

Wertersatz<br />

Ich möchte gebrauchte Notebooks mit vorinstalliertem<br />

<strong>Linux</strong> über einen Webshop und auf einer<br />

Internet-Auktionsplattform anbieten. Nun ist es<br />

aber so, dass private Käufer ohne Grund die Waren<br />

zurücksenden können und ich den Kaufpreis<br />

zurückerstatten müsste. Andererseits heißt es,<br />

dass ich einen Wertersatz für den Gebrauch abziehen<br />

könnte. Wie hoch ist so ein Betrag? Gibt<br />

es dafür irgendwelche Listen?<br />

Tobias M.<br />

Ich fürchte, die geplante Zurückbehaltung<br />

oder Aufrechnung ist in diesen<br />

Fällen nicht rechtmäßig: Grundsätzlich<br />

muss der Käufer, der sein Widerrufsrecht<br />

ausübt, für die Wertverschlechterung einer<br />

Sache einstehen, die durch deren Ingebrauchnahme<br />

entsteht. Hiervon gibt es<br />

aber einige Ausnahmen und auch die Berechnung<br />

dieses Wertverlustes wäre bei<br />

dem geplanten Geschäft mit gebrauchter<br />

Ware wohl ohnehin<br />

schwierig.<br />

Einerseits besteht ein<br />

gesetzlich normierter<br />

Ausschluss des Widerrufsrechts<br />

bei entsiegelter<br />

Software – was<br />

in Ihrem Fall bereits<br />

deswegen unerheblich<br />

wäre, weil das Betriebssystem<br />

und die Anwendungsprogramme<br />

auf<br />

Festplatte vorinstalliert<br />

sind. Das würde in diesem<br />

Fall jedoch auch<br />

wirtschaftlich ins Leere<br />

©cxflyer,photocase.com<br />

laufen, da Sie für die <strong>Linux</strong>-Systeme ja<br />

ohnehin keine Lizenzgebühren verlangen<br />

könnten, sondern nach den Bestimmungen<br />

der GPL allenfalls eine Gebühr für<br />

das Anfertigen der Kopie. Diese fiele aber<br />

im Falle der Rückgabe kaum unter einen<br />

Wertverlust.<br />

Darüber hinaus ist auch der Wertverlust<br />

nicht zu ersetzen, der durch die Prüfung<br />

der Ware entsteht: Selbst bei einem<br />

fabrikneuen Notebook wäre der Käufer<br />

daher berechtigt, das Gerät in Betrieb zu<br />

nehmen, um die Funktionsfähigkeit zu<br />

überprüfen – ohne den dadurch eintretenden<br />

Wertverlust ersetzen zu müssen.<br />

Gerade dieses Inbetriebnehmen macht<br />

aber aus einem fabrikneuen Notebook<br />

ein gebrauchtes und bewirkt damit erst<br />

den in diesem Fall erheblichen Wertverlust<br />

(Abbildung 3).<br />

Bei Ihrem Geschäftsmodell handelt es<br />

sich um gebrauchte Ware, bei der ein<br />

Wertverlust durch eine erneute Ingebrauchnahme<br />

noch schwerer zu ermitteln<br />

ist, allerdings auch wesentlich geringer<br />

ausfällt. So gesehen gibt es zwar<br />

keine Möglichkeit, eine Wertminderung<br />

bei der Rückerstattung in Abzug zu<br />

bringen, allerdings müssen Sie keine solche<br />

befürchten – jedenfalls keine wirklich<br />

messbare.<br />

Zu beachten sind dabei allerdings auch<br />

die gesetzlichen Gewährleistungsbestimmungen:<br />

Während Verbraucher bei der<br />

privaten Veräußerung von Waren die<br />

gesetzliche Gewährleistung von zwei<br />

Jahren ausschließen dürfen, können gewerblicher<br />

Händler selbst bei Gebrauchtwaren,<br />

die sie an Verbraucher verkaufen,<br />

lediglich auf zwölf Monate verkürzen.<br />

Die Verkürzung muss dann aber auch<br />

explizit geschehen. (uba)<br />

n<br />

Infos<br />

[1] Umsatzsteuergesetz: [http://bundesrecht.<br />

juris.de/ustg_1980/ index.html]<br />

[2] Homepage des Europäischen Gerichtshofs:<br />

[http://curia. europa.eu/jcms/jcms/j_6/]<br />

[3] Bundesdatenschutzgesetz (BDSG):<br />

[http://www. gesetze-im-internet.de/<br />

bundesrecht/ bdsg_1990/index. html]<br />

[4] Paragraf 16 Telemediengesetz:<br />

[http://www. gesetze-im-internet.de/<br />

bundesrecht/ tmg/ index.html]<br />

[5] Paragraf 69c Ziff. 3 UrhG: [http://www.<br />

gesetze.juris. de/ urhg/index.html]


<strong>Linux</strong>-<strong>Magazin</strong><br />

ACADEMY<br />

... wir qualifizieren Ihre Mitarbeiter!<br />

IT Trainings Online<br />

<strong>Linux</strong> und Open Source<br />

Nutzen Sie die Vorteile<br />

der <strong>Linux</strong>-<strong>Magazin</strong> Academy!<br />

✓<br />

✓<br />

✓<br />

✓<br />

✓<br />

Kompetent: Unsere Dozenten sind ausge wiesene<br />

Profis mit lang jähriger Schulungserfahrung.<br />

Flexibel: Der Schulungsteilnehmer lernt, wann,<br />

wo und sooft er möchte.<br />

Kosteneffizient: Nutzen Sie Einsparungen<br />

gegenüber Vor-Ort-Schulungen.<br />

Übersichtlich: Die komfortable Web- Oberfläche<br />

zeigt gleich zeitig den Trainer und dessen<br />

Arbeitsfläche<br />

Individuell: Jeder Teilnehmer folgt seinem eigenen<br />

Lerntempo.<br />

Trainingspakete:<br />

Monitoring mit Nagios<br />

• WordPress 3.0<br />

www.lpi.org<br />

LPIC-1- / LPIC-2-Training<br />

IT-Sicherheit Grundlagentraining<br />

OpenOffice – Arbeiten mit Vorlagen<br />

Was Teilnehmer über die<br />

<strong>Linux</strong>-<strong>Magazin</strong> Academy sagen:<br />

„Mit den Videos haben Sie ins Schwarze<br />

getroffen. Es gibt nichts Vergleichbares.“<br />

„Eine hervorragende Anleitung zum<br />

praktischen Arbeiten“<br />

Testen Sie unsere Demovideos:<br />

academy.linux-magazin.de/demo<br />

Präsentiert von:<br />

www.linux-magazin.de<br />

www.linuxhotel.de<br />

Weitere Infos: academy.linux-magazin.de


Forum<br />

www.linux-magazin.de Bücher 06/2011<br />

82<br />

Bücher über die Programmiersprache Haskell<br />

Tux​liest<br />

Passend zum Haskell-Artikel in dieser Ausgabe bespricht das <strong>Linux</strong>-<strong>Magazin</strong> zwei Bücher über die funktionale<br />

Programmiersprache. Das erste ist auf Deutsch erschienen und kommt als Intensivkurs schnell zur Sache, das<br />

zweite ist englischsprachig und besticht durch seine Originalität. Rainer Grimm<br />

Das Buch „Haskell Intensivkurs“ von<br />

Marco Block und Adrian Neumann wird<br />

seinem Namen voll gerecht: Die Autoren<br />

bieten eine kompakte Einführung in Haskell<br />

auf knapp 300 Seiten.<br />

Flottes Haskell-Abc<br />

Info<br />

Marco Block,<br />

Adrian Neumann<br />

Haskell Intensivkurs<br />

Springer 2011<br />

300 Seiten<br />

30 Euro<br />

ISBN: 978-3-642-04717-6<br />

gorithmen auf die bekannten Verfahren<br />

wie Bubblesort, Quicksort und Mergesort<br />

ein, um nur einige zu nennen.<br />

Bei der Lektüre des Buchs muss der Leser<br />

das eine oder andere Mal Hintergrundinformationen<br />

nachschlagen, darüber hinaus<br />

dienen Übungsbeispiele zum Selbststudium.<br />

Block und Neumann bieten alle<br />

Listings unter [http://​page.​mi.​fu‐berlin.​<br />

​de/​block/​publications.​html] an.<br />

„Haskell Intensivkurs“ ist ein besonderes<br />

Buch. Es gelingt den Autoren, den vor<br />

allem an der Problemlösung orientierten<br />

Programmierer für das Nachdenken über<br />

das Programm zu gewinnen. Wer den<br />

etwas anderen Einstieg in die Informatik<br />

sucht, der findet in diesem Buch eine<br />

Lektüre, die Appetit auf mehr macht.<br />

Erfrischende Alternative<br />

Das Buch „Learn You a Haskell for Great<br />

Good!“ von Miran Lipovaca ist ein alternatives,<br />

englischsprachiges Einsteigerbuch<br />

in Haskell. Auf gut 400 Seiten stellt<br />

der Autor anhand vieler beeindruckender<br />

Beispiele die Mächtigkeit der funktionalen<br />

Programmiersprache vor.<br />

Lipovacas erfrischender Schreibstil und<br />

seine vielen, witzigen Grafiken machen<br />

Lust aufs Haskell-Lernen. Es gelingt dem<br />

Autor, nicht nur die grundlegenden Konzepte<br />

von Haskell und der funktionalen<br />

Programmierung leicht verständlich zu<br />

vermitteln, sondern auch die deutlich<br />

anspruchsvolleren.<br />

Haskells Syntax, Rekursion als Strukturelement<br />

funktionaler Programmierung,<br />

Funktionen höherer Ordnung fürs Schreiben<br />

von kompaktem Code, Module zur<br />

Organisation des Sourcecode, Typklassen<br />

und eigene Typen oder auch der Umgang<br />

mit der Kommandozeile und Dateien –<br />

Gut 100 Seiten des Bandes widmen sich<br />

den Grundlagen von Haskell, der Rest<br />

beschäftigt sich mit fortgeschrittenen<br />

Themen der Informatik. Ein mutiges<br />

Unterfangen, das gelungen ist. Einfache<br />

Datentypen und Datenstrukturen, Funktionen,<br />

Operatoren, Rekursion, Funktionen<br />

höherer Ordnung, eigene Datentypen,<br />

Typklassen und letztlich Module und<br />

Schnittstellen – der erste Teil stellt das<br />

Haskell-Abc im Stakkato-Takt vor.<br />

Auf die Pflicht folgt die Kür in Form der<br />

fortgeschrittenen Konzepte von Haskell.<br />

Hier finden sich Implementierungen der<br />

klassischen Datenstrukturen wie Listen,<br />

Warteschlangen, Bäume und Graphen in<br />

Haskell. Aber auch theoretische Themen<br />

wie die Laufzeitanalyse von Algorithmen,<br />

das Verifizieren von Programmen, die<br />

Berechenbarkeit und der Lambda-Kalkül<br />

finden im zweiten Teil neben den Monaden<br />

ihren Platz.<br />

Block und Neumann präsentieren diese<br />

Themen anschaulich. Beispielsweise gehen<br />

sie bei ihrer Laufzeitanalyse von Aldas<br />

sind die Konzepte, die das Buch auf<br />

den ersten gut 200 Seiten vorstellt.<br />

Auf die Suche in der Breite folgt die in<br />

der Tiefe: Der Autor führt Monaden über<br />

applikative Funktoren und Monoiden ein.<br />

Das klingt komplizierter, als es ist, denn<br />

dieser Ansatz macht Haskells Monaden<br />

deutlich leichter verdaulich.<br />

Neben den bekannten Monaden »Maybe«<br />

und »Either« für die Fehlerbehandlung,<br />

den Monaden »Reader« für das Lesen<br />

der Umgebung beziehungsweise »Writer«<br />

zum Loggen von Aktionen und »State« für<br />

die zustandsbehaftete Ausführung eines<br />

Haskell-Programms entwickelt Lipovaca<br />

die Zipper-»Monade«, die eine direkte<br />

Manipulation von Datenstrukturen adressiert.<br />

Spätestens bei seiner Vorstellung<br />

der List Comprehension ist dem Leser<br />

klar, dass der Umgang mit Monaden in<br />

Haskell sehr intuitiv sein kann<br />

Das Werk ist schon länger online unter<br />

[http://​learnyouahaskell.​com] verfügbar.<br />

Leider liegt die Druckversion nur<br />

schwarz-weiß vor, das E-Book ist farbig.<br />

„Learn You a Haskell for Great Good!“ ist<br />

ein absolut erfrischendes Einsteigerbuch<br />

in Haskell, das aber durchaus auch für<br />

den erfahrenen Haskell-Programmierer<br />

einen großen Reiz besitzt. Seine mutige<br />

Andersartigkeit zeichnet es aus. Besser<br />

kann man nicht für die Programmiersprache<br />

Haskell werben. (mhu) n<br />

Info<br />

Miran Lipovaca<br />

Learn You a Haskell for<br />

Great Good!<br />

No Starch Press 2011<br />

400 Seiten<br />

36 Euro<br />

ISBN 978-1-59327-283-8


Auf den Punkt gebracht<br />

Leserbriefe<br />

Leserbriefe 06/2011<br />

Forum<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 />

www.linux-magazin.de<br />

83<br />

Paket-Déjà-vu<br />

12/ 2008, S. 102: Ich hatte neulich ein<br />

Déjà-vu-Erlebnis in Bezug auf Tobias Eggendorfers<br />

Artikel „Wie DHL Kundendaten<br />

preisgibt“: Ich bekam von DPD eine<br />

Sendung zugestellt. Eigentlich sollte die<br />

aus zwei Teilen bestehen, es kam aber<br />

nur ein Paket an. Die Paketschein-Nummer<br />

für das gelieferte Paket hatte ich.<br />

Damit rief ich dann beim DPD-Service an<br />

und wollte wissen, wo denn der zweite<br />

Teil der Lieferung steckt. Dort sagte man<br />

mir, dass bei zusammengehörigen mehrteiligen<br />

Lieferungen jedes Paket seinen<br />

eigenen Paketschein hat.<br />

Aus Neugier habe ich einfach meine Paketscheinnummer<br />

um eins hochgezählt<br />

und in die Sendungsverfolgung eingetragen<br />

– und ich erhielt alle Informationen<br />

über das noch fehlende Paket. Dann habe<br />

ich noch mal um eins weitergezählt –<br />

auch das war eine gültige Paketscheinnummer.<br />

So erfährt man immer noch die<br />

Route des Pakets, die Ziel-Postleitzahl,<br />

den Nachnamen der annehmenden Person<br />

und die Uhrzeit der Auslieferung.<br />

Volkmar Glauche, per E-Mail<br />

Interessant. Ich möchte Ihnen dazu den<br />

Artikel unter [http://­w w w.­linux-magazin.­<br />

­de/­Heft-Abo/­Ausgaben/­2010/­01/­Angriff­<br />

-auf-Pakete] ans Herz legen, in dem wir<br />

die von Ihnen beschriebene Problematik<br />

bei DPD (und UPS) bereits untersucht<br />

haben. Das Problem der Enumeration besteht<br />

offenbar immer noch. (mg)<br />

Open Office kanns<br />

05/ 2011, S. 102: Ich finde Mike Schillis<br />

Artikel „Gute Etikette“ aus der Sicht des<br />

Perl-Coders recht informativ. In diesem<br />

Fall aber ist das Anwendungsbeispiel<br />

doch etwas ungünstig gewählt: Open Office<br />

bietet seit Jahren auf komfortable<br />

Weise alles, was man zur Generierung<br />

von Serienetiketten aus diversen Datenbanken<br />

(JDBC) und -quellen braucht.<br />

Durch die Kombination von MySQL-<br />

Datenbankadapter oder CSV mit Calc,<br />

Seriendruckfunktion und Etikettenvorlagen<br />

ist diese Aufgabenstellung meiner<br />

Meinung nach schneller und komfortabler<br />

lösbar. Das Schreiben oder Anpassen<br />

eines Skripts dürfte auch bei den meisten<br />

Perl-Profis länger dauern.<br />

Ich beispielsweise habe mich bei einer<br />

ähnlichen Aufgabenstellung schließlich<br />

doch für den Office-Weg entschieden,<br />

obwohl der Kunde ein Perl- oder Python-<br />

Skript vorschlug. In kurzer Zeit (zwei<br />

Stunden hatte ich bis zum fertigen PDF)<br />

erzeugte ich mit Open Office rund 8000<br />

individuelle Guthabentickets für einen<br />

Wireless-ISP – mit Logo und beidseitig<br />

bedruckt –, die als PDF auf A4-Seiten<br />

passten. Als Datenquelle diente mir die<br />

zur Radius-Authentifizierung verwendete<br />

MySQL-Datenbank des Kunden.<br />

Niels Dettenbach, per E-Mail<br />

Apple vs. Duden<br />

Es fällt mir auf, dass Sie Apple-Produkte<br />

konsequent falsch schreiben. Die Dinger<br />

heißen iPhone, iPod und iPad, nicht I-<br />

Phone, I-Pad und I-Pod.<br />

Ulf Klose, per E-Mail<br />

Das <strong>Linux</strong>-<strong>Magazin</strong> schreibt schon länger<br />

Produktbezeichnungen nicht zwangsweise<br />

so, wie das Marketing des Herstellers es<br />

gerne hätte – denken Sie an Dinge wie E-<br />

Directory oder Z-Series. Der Hintergrund:<br />

Als Zeitschrift bemühen wir uns, Dudenkonform<br />

zu schreiben. Beispiel I-Phone:<br />

Substantive, dazu zählt die Bezeichnung<br />

eines Mobiltelefons, beginnen laut Duden<br />

stets mit einem Großbuchstaben. Um den<br />

Charakter der ursprünglichen Schreibweise<br />

nicht völlig aufzuheben, versuchen<br />

wir eine Transformation der Marketinginduzierten<br />

Apple-Schreibweise ins<br />

Schriftdeutsche. Dazu trennen wir zuerst<br />

das „I“ ab zu I Phone. Weil das aber typografisch<br />

auseinanderdriftet und schnell<br />

als „1 Phone“ missdeutet wird, koppeln<br />

wir es wieder an zu I-Phone. (jk) n<br />

Früher 49,90<br />

1 €!<br />

<strong>Linux</strong>- und IT-Bücher zu Sonderpreisen<br />

PortableGUIProgrammierungunter<strong>Linux</strong>/Unix/Windows<br />

Mehr als 350 Beispielprogramme veranschaulichen das Zusammenspiel der einzelnen Klassen und<br />

MethodenundzeigentypischeKonstrukteoderProgrammiertechniken.<br />

Das umfangreiche Buch ist jetzt bei terrashop.de in einer Sonderaktion zum absoluten<br />

Schnäppchenpreislieferbar.NursolangederVorratreicht!<br />

Millin, 811 Seiten<br />

Best.-Nr.: 8999012<br />

Ladenpreis aufgehoben<br />

Früher 49,90<br />

1,00<br />

Jetzt bei<br />

Das Buch zum Schnäppchenpreis - So geht´s<br />

Gehen Sie auf:<br />

www.terrashop.de/gutschein<br />

Dort Code* eingeben - fertig!<br />

Gutscheincode:<br />

linux1106<br />

*Gutschein gültig bis 01.06.11 bzw. solange Vorrat reicht. Zzgl. 3,95€ Versand.


PRAXISORIENTIERTE ARTIKEL,<br />

WORKSHOPS UND TESTS<br />

AlS MAGAzIN<br />

FÜR DIE PRAxIS<br />

präsentiert <strong>Linux</strong>User die Inhalte<br />

weitgehend in Form lösungsorientierter<br />

Artikel mit Workshop-<br />

Charakter. Darüber hinaus<br />

liefern Software-Rezensionen,<br />

Hardware-Tests und Grundlagenbeiträge<br />

aktuelle Produktinformationen<br />

und Basiswissen zu den<br />

technischen Hintergründen.<br />

WIE OFT?<br />

<strong>Linux</strong>User erscheint<br />

12x im Jahr<br />

WAS IST DABEI?<br />

<strong>Linux</strong>User gibt es als DVD-Edition sowie<br />

als preisgünstige No-Media-Ausgabe.<br />

Auf je 108 Seiten Umfang besprechen<br />

beide Heftvarianten aktuelle Soft- und<br />

Hardware für <strong>Linux</strong>-PCs.<br />

WAS KOSTET DAS?<br />

Jahresabo ohne DVD<br />

in Deutschland: 56,10 Euro<br />

Jahresabo DVD-Version in<br />

Deutschland: 86,70 Euro<br />

KÜNDIGUNGSFRIST?<br />

Wir sind fair zu unseren Kunden - Sie<br />

können selbst entscheiden, wie lange Sie<br />

<strong>Linux</strong>User beziehen möchten. Es gibt keine<br />

Kündigungsfrist, Sie können die Zustel-<br />

lung jederzeit beenden. Geld für bereits<br />

bezahlte, aber noch nicht gelieferte<br />

Ausgaben erhalten<br />

Sie zurück!<br />

Abovorteile<br />

Preisvorteil gegenüber Kioskkauf<br />

kostenlose & sichere Zustellung<br />

Zustellung vor dem offiziellen<br />

Verkaufstermin


JetZt teSteN!<br />

Geld SpAreN!<br />

SIE SPAREN 22,50€ GEGENüBER<br />

DEM EINZELKAUF<br />

TESTEN SIE<br />

3 Ausgaben<br />

liNUxUSer<br />

FÜr NUr<br />

3 w<br />

OHNE RISIKO TESTEN!<br />

Testen Sie uns sorgenfrei drei Monate lang. Nur wenn Sie 14 Tage nach Eintreffen der dritten<br />

Ausgabe nichts von sich hören lassen, erhalten Sie <strong>Linux</strong>User weiter jeden Monat frei Haus<br />

zum Vorzugspreis von € 7,23 statt € 8,50 im Einzelverkauf.<br />

lesen Sie linuxuser im Miniabo und Sie nehmen<br />

automatisch an unserem Gewinnspiel teil:<br />

Gewinnen Sie...<br />

einen MultiMedia-player Mit doppelteM<br />

dVB-t-tuner Von wyplayer iM wert<br />

Von 300,- euro (uVp)<br />

(Nur bis 15.06.2011)<br />

iHre beStellMÖGliCHKeiteN<br />

Shop: www.linux-user.de/abo Telefon: (07131) 2707 274<br />

Fax: (07131) 2707 78 601<br />

E-Mail: abo@linux-user.de<br />

Weitere Infos rund um <strong>Linux</strong>User finden Sie unter www.linuxuser.de


Know-how<br />

www.linux-magazin.de Kern-Technik 06/2011<br />

86<br />

Kernel- und Treiberprogrammierung mit dem Kernel 2.6 – Folge 57<br />

Kern-Technik<br />

Texte mit AES verschlüsseln, Daten komprimieren oder Hashsummen mit MD5 berechnen: Mit dem Crypto-API<br />

des <strong>Linux</strong>-Kernels und etwas Know-how kein Problem! Jürgen Quade, Eva-Katharina Kunst<br />

Die umfassende Internetnutzung und<br />

das Bedürfnis nach Sicherheit sorgen für<br />

stärkere Verbreitung der Kryptographie.<br />

Hardwarehersteller bauen aus diesem<br />

Grund seit einigen Jahren entsprechende<br />

Erweiterungen in die hauseigenen Chips<br />

ein, beispielsweise VIA mit Padlock [1]<br />

oder Intel mit dem AES-NI-Befehlssatz<br />

[2]. <strong>Linux</strong> wiederum stellt dem Programmierer<br />

mit dem Crypto-API Kryptographie-Routinen<br />

zur Verfügung,<br />

die entweder rein in<br />

Software oder aber Hardwareunterstützt<br />

ablaufen. Ziel der<br />

Kernelentwickler ist es, dies<br />

für den Entwickler transparent<br />

zu halten.<br />

Das Crypto-API ist nicht nur<br />

für Verschlüsselung zuständig,<br />

sondern auch für das Bilden<br />

von Hash- und Checksummen,<br />

für Kompression oder<br />

die Generierung von Zufallszahlen.<br />

Durch den modularen<br />

Aufbau des Crypto-Layers<br />

lassen sich auf der unteren<br />

Seite die unterschiedlichsten<br />

Algorithmen andocken (siehe<br />

Tabelle 1), die sich auf der<br />

oberen Seite von verschiedenen Subsystemen<br />

wie beispielsweise der Festplattenverschlüsselung<br />

(DM-Crypt) oder der<br />

geschützten VPN-Kommunikation (IPsec)<br />

nutzen lassen (siehe Abbildung 1).<br />

Transform-Objekte<br />

Basis des Crypto-API im Kernel sind die<br />

Transform-Objekte. Für die Bildung von<br />

Hashsummen sowie Kompressions- und<br />

Verschlüsselungsverfahren gibt es jeweils<br />

eigene Objekte. Wenn es um Verschlüsselung<br />

geht, hat der Entwickler sogar die<br />

Auswahl zwischen vier unterschiedlichen<br />

Transforms: Cipher, Blockcipher, Asynchronous<br />

Blockcipher und AEAD (Authenticated<br />

Encryption with Associated<br />

Data). Diese unterscheiden sich bezüglich<br />

der Angabe von Quell- und Zielspeicherbereichen<br />

und der Funktionalität.<br />

Verstreute Daten<br />

Block-orientierte Transform-Objekte,<br />

wozu neben Blockcipher, Asynchronous<br />

Blockcipher und AEAD auch Hashsummen<br />

gehören, spezifizieren Quelle und<br />

Ziel der Operationen auf Basis von Scatter-Gather-Listen<br />

(siehe Kasten „Scatter-Gather-Listen“).<br />

Stream-orientierte<br />

Transforms (Cipher, Compress) verwenden<br />

direkt virtuelle Adressen.<br />

Generell arbeiten die Algorithmen synchron,<br />

mit dem »ablkcipher«-Transform<br />

ist auch eine asynchrone Ver- und Entschlüsselung<br />

möglich: Der Crypto-Layer<br />

übernimmt Aufträge und übergibt das<br />

Ergebnis später per Callback-Funktion<br />

Scatter- Gather-Listen<br />

Scatter-​Gather-Listen​ tauchen​ im​ Kernel​ immer​dann​auf,​wenn​größere​Mengen​an​Daten​<br />

zu​ transferieren​ sind.​ Größere​ Datenmengen​<br />

–​also​typischerweise​mehr​Daten,​als​in​eine​<br />

so​genannte​Page​(4096​Byte)​passen​–​verteilen​sich​nämlich​im​Hauptspeicher​häufig​über​<br />

verschiedene​physische​Adressen.<br />

Scatter-Gather-Listen​fassen​diese​physischen​<br />

Adressen​in​einer​Datenstruktur​zusammen,​sodass​die​Transferfunktionen​–​etwa​das​Schreiben​der​Daten​auf​die​Festplatte​–​in​einem​Zug​<br />

alle​ notwendigen​ Informationen​ besitzen​ und​<br />

den​ Transfer​ auch​ per​ DMA​ durchführen​ können.​<br />

Eigentlich​ wäre​ Scatter-Gather-Feld​ die​<br />

korrekte​Bezeichnung,​denn​die​grundlegende​<br />

Datenstruktur​ ist​ ein​ Array​ vom​ Typ​ »struct​<br />

scatterlist«.​Jedes​Element​eines​solchen​Felds​<br />

repräsentiert​ ein​ zusammenhängendes​ Fragment​im​Speicher,​das​durch​eine​Page-Adresse,​<br />

den​Startoffset​innerhalb​der​Speicherseite​sowie​<br />

die​ Länge​ der​ dort​ abgelegten​ Daten​ (in​<br />

Bytes)​gekennzeichnet​ist.<br />

Ein​ derartiges​ Feld​ kann​ der​ Programmierer​<br />

entweder​dynamisch​während​der​Laufzeit​allozieren​<br />

und​ initialisieren​ oder​ dies​ statisch​<br />

durch​den​Compiler​erledigen​lassen.​Im​letzteren​<br />

Fall​ muss​ der​ Code​ zur​ Initialisierung​<br />

»sg_init_table()«​ aufrufen.​ Um​ die​ einzelnen​<br />

Feldelemente​ zu​ belegen,​ kommt​ entweder​<br />

»sg_set_buf()«​oder​»sg_set_page()«​zum​Aufruf​–​je​nachdem,​ob​die​Adresse​der​Daten​als​<br />

virtuelle​oder​als​Page-Adresse​vorliegt.​Wurde​<br />

das​Scatter-Gather-Feld​per​»sg_alloc_table()«​<br />

angelegt,​ gibt​ es​ »sg_free_table()«​ nach​ Gebrauch​wieder​frei.<br />

Neben​den​in​Tabelle​2​aufgeführten​Funktionen​<br />

gibt​ es​ noch​ eine​ Reihe​ weiterer,​ die​ insbe-<br />

sondere​die​Abarbeitung​einer​Scatter-Gather-<br />

Liste​vereinfachen.


dem Auftraggeber. Das AEAD-Transform<br />

schließlich kombiniert Verschlüsselung<br />

und Hashing, wie es bei IPsec benötigt<br />

wird. Vor der Nutzung einer Kryptofunktion<br />

im Kernel steht das Anlegen eines<br />

geeigneten Transform-Objekts. Dabei ist<br />

gleichzeitig der gewünschte Algorithmus<br />

anzugeben, beispielsweise »md5«. Vereinfacht<br />

ausgedrückt ist hiernach die gewünschte<br />

Kryptofunktion mit Übergabe<br />

der Quell- und Zielspeicheradressen aufzurufen.<br />

Dass sich der Programmierer im Detail<br />

jedoch noch mit Scatter-Gather-Listen,<br />

einem Descriptor-Objekt und so etwas<br />

wie »digestsize« herumschlagen muss,<br />

verdeutlicht dieser Artikel an den Beispielen<br />

MD5-Hashsummenbildung und<br />

AES-Verschlüsselung.<br />

Hash berechnen<br />

Mit »digestsize« dimensioniert der Entwickler<br />

die Größe des Speicherbereichs,<br />

der das Ergebnis der Hashsummenbildung<br />

aufnimmt, den Hashwert. Dieser ist<br />

– abhängig vom gewählten Hashalgorithmus<br />

– unterschiedlich groß und lässt sich<br />

über die Inline-Funktion »crypto_hash_<br />

digestsize()« abfragen. Das erwähnte<br />

Descriptor-Objekt dient als Container für<br />

die verschiedenen Kryptofunktionen. Der<br />

Programmierer initialisiert es mit der Adresse<br />

des Transform-Objekts.<br />

Die Scatter-Gather-Listen schließlich enthalten<br />

die Adressen der Speicherbereiche.<br />

Sie bilden den aus Sicht einer Applikation<br />

zusammenhängenden Speicherbereich<br />

Tabelle 1: Unterstützte Krypto-<br />

Algorithmen<br />

DM-Crypt IPsec<br />

...<br />

Hash-Transform<br />

Compress-Transform<br />

Festplattenverschlüsselung<br />

Verschlüsselte Kommunikation<br />

»/usr/src/linux/crypto/api.c«<br />

Crypto-API<br />

»/usr/src/linux/crypto/algapi.c«<br />

Asynchronous-Blockcipher-Transform<br />

AEAD-Transform<br />

AES 3DES MD5 Zlib ...<br />

Verschlüsselung<br />

Kompression<br />

Hashsummen<br />

Sonstiges (Zufallszahlen)<br />

auf die physischen, realen Speicherorte<br />

ab, also die meist verstreut liegenden zugehörigen<br />

Pages.<br />

Listing 1 zeigt die Bildung der MD5-<br />

Summe des kurzen Datensatzes „<strong>Linux</strong>-<br />

<strong>Magazin</strong>“ im Kernel. Zeile 27 reserviert<br />

das Transform-Objekt unter Angabe des<br />

gewünschten Hashsummen-Algorithmus<br />

(»md5«), Zeile 33 initialisiert das<br />

Descriptor-Objekt mit der Adresse des<br />

Transform. Die Vorbereitung der Scatter-<br />

Gather-Listen ist in den Zeilen 24 und 25<br />

zu sehen, und schließlich wird in Zeile 36<br />

der Hashwert gebildet.<br />

Dass dieser korrekt ist, lässt sich leicht –<br />

wie in Abbildung 2 dargestellt – überprüfen,<br />

indem man den Hashwert mit dem<br />

»md5sum«-Kommando erzeugt und mit<br />

der Ausgabe des Kernels im Syslog vergleicht.<br />

Der negative Rückgabewert (Zeile<br />

49) signalisiert dem Kernel übrigens, dass<br />

er das Modul direkt wieder entladen soll.<br />

Das erspart beim Testen das ansonsten<br />

notwendige manuelle Entladen.<br />

Verschlüsseln<br />

Cipher-Transform<br />

Blockcipher-Transform<br />

Abbildung 1: Der Crypto-Layer des <strong>Linux</strong>-Kernels abstrahiert Verschlüsselungsalgorithmen.<br />

Daneben bietet das Crypto-API des Kernels<br />

auch Verfahren zur Verschlüsselung<br />

an. Hier ist ein kleiner Ausflug in die<br />

Kryptographie [3] angebracht: Bei der<br />

Verschlüsselung wird eine Klartextnachricht<br />

mit Hilfe von Verschlüsselungsalgorithmen<br />

– so genannte Cipher – und unter<br />

Zuhilfenahme eines geheimen Schlüssels<br />

in den Ciphertext gewandelt. Unter der<br />

Voraussetzung, dass sowohl Algorithmus<br />

als auch der eingesetzte Schlüssel als<br />

Kern-Technik 06/2011<br />

Know-how<br />

www.linux-magazin.de<br />

87<br />

Funktion<br />

Hashsummen<br />

Cipher<br />

Kompression<br />

Sonstiges<br />

Algorithmen<br />

md4,​md5,​michael.mic,​<br />

ripemd-128,​ripemd-160,​<br />

ripemd-256,​ripemd-320,​<br />

sha1,​sha256,​sha512,​tiger,​<br />

vmac,​whirlpool<br />

3des,​aead,​aes,​anubis,​<br />

arc4,​blowfish,​camellia,​<br />

cast5,​cast6,​des,​fcrypt,​<br />

khazad,​salsa20,​seed,​serpent,​tea,​xtea,​xeta,​twofish<br />

deflate,​lzo,​zlib<br />

ansi_cprng​(Pseudo​Random​<br />

Nummer​Generator),​kernel​<br />

random​number​generator,​<br />

random​number​generator,​<br />

crc32c​(Checksummen)<br />

Abbildung 2: Die Gegenprobe mit »md5sum« beweist: Der Code aus Listing 1 – zum Kernelmodul »lm.ko«<br />

kompiliert – berechnet beim Laden den MD5-Hashwert.


Know-how<br />

www.linux-magazin.de Kern-Technik 06/2011<br />

88<br />

Electronix Code Book mode (unsicher)<br />

Key<br />

EBC(AES)<br />

Klartext<br />

Ciphertext<br />

Abbildung 3a: Das Verfahren Electronic Code Book<br />

Mode (EBC) gilt als nur beschränkt sicher.<br />

sicher gelten, kann nur derjenige den<br />

Cipher text zurückwandeln (entschlüsseln)<br />

und interpretieren, der im Besitz<br />

des passenden Schlüssels ist.<br />

Prinzipiell sind zwei Arten der Verschlüsselung<br />

zu unterscheiden: die<br />

symmetrische Verschlüsselung von der<br />

asymmetrischen. Die asymmetrische (Public-Key-Verfahren)<br />

setzt zur Ver- und<br />

Entschlüsselung unterschiedliche Schlüssel<br />

ein. Vorteil: Eine Verschlüsselung ist<br />

gezielt für einen dedizierten Empfänger<br />

beziehungsweise Empfängerkreis möglich.<br />

Die symmetrische Verschlüsselung<br />

demgegenüber setzt für beide Vorgänge<br />

denselben Key ein.<br />

Die sichere Übergabe des geheimen<br />

Schlüssels und der Umstand, dass mehrere<br />

Personen oder Systeme den (geheimen)<br />

Schlüssel kennen, ist aus Sicht der<br />

Cipher Block Chaining (sicher, aber nicht parallelisierbar)<br />

Key<br />

CBC(AES)<br />

Klartext<br />

Ciphertext<br />

Abbildung 3b: Verkettung: Cipher Block Chaining (CBC) ist sicher,<br />

aber nicht für Multicore-Computer geeignet.<br />

Kryptographen bedenklich und erfordert<br />

besondere Sicherungsmaßnahmen. Andererseits<br />

ermöglichen symmetrische<br />

Verfahren aber eine sehr schnelle Kodierung<br />

und Dekodierung.<br />

Die Cipher selbst lassen sich nach ihrer<br />

internen Arbeitsweise unterscheiden:<br />

Streamcipher verschlüsseln Nachrichten<br />

beliebiger Länge und typischerweise Zeichen<br />

für Zeichen, während Blockcipher<br />

Nachrichten blockweise verarbeiten.<br />

Nachrichten, die nicht dem Vielfachen<br />

einer Blöckgröße entsprechen, werden<br />

mit Nullen aufgefüllt.<br />

Sicher oder nicht sicher<br />

Falls der Algorithmus jeden Block unabhängig<br />

bearbeitet, spricht man vom Electronic<br />

Code Book Mode (EBC). Da dieses<br />

Verfahren für mehrfach vorkommende<br />

identische Blöcke<br />

den gleichen Ciphertext<br />

erstellt, gilt das Verfahren<br />

nur als eingeschränkt sicher<br />

(siehe Abbildung 3a).<br />

IV<br />

Das Cipher Block Chaining<br />

(CBC) vermengt den jeweils<br />

vorangehenden Block mit<br />

dem zu verschlüsselnden,<br />

zum Beispiel per XOR, wobei<br />

ein als Initialisierungsvektor<br />

(IV) bezeichneter<br />

Block für die Verknüpfung<br />

mit dem allerersten Block zuständig ist<br />

(Abbildung 3b).<br />

Der IV wird typischerweise mit Zufallszahlen<br />

vorbelegt und braucht nicht geheim<br />

gehalten zu werden. CBC hat aber<br />

gerade in Zeiten von Multicore-Systemen<br />

einen entscheidenden Nachteil: Die Verschlüsselung<br />

ist nur sequenziell, also<br />

Block für Block möglich, nicht parallel.<br />

CTR macht Tempo<br />

Diesen Nachteil überwindet der Counter<br />

Mode (CTR): Er verschlüsselt jeden<br />

Block mit einem Initialisierungsvektor<br />

(Abbildung 3c). Der Inhalt des für jeden<br />

Block unterschiedlichen IV ergibt<br />

sich aus einem einmal festgelegten (Zufalls-)Wert<br />

und der Blocknummer durch<br />

sinnvolle mathematische Verknüpfung<br />

Listing 1: MD5-Summe des Textes „<strong>Linux</strong>-<strong>Magazin</strong>“ (»lm.c«)<br />

01 #include <br />

02 #include <br />

03 #include <br />

04<br />

05 static struct scatterlist sg_text;<br />

06 static char result[128];<br />

07 static struct crypto_hash *tfm;<br />

08 static struct hash_desc desc;<br />

09<br />

10 static int __init mod_init( void )<br />

11 {<br />

12 struct page *pg;<br />

13 char *buf;<br />

14 int i;<br />

15<br />

16 pg = alloc_pages( GFP_USER, 0 );<br />

17 if (pg==NULL) {<br />

18 printk("alloc_pages failed\n");<br />

19 return ‐EIO;<br />

20 }<br />

21 buf = page_address( pg );<br />

22 memcpy( buf, "<strong>Linux</strong>‐<strong>Magazin</strong>", 13 );<br />

23<br />

24 sg_init_table( &sg_text, 1 );<br />

25 sg_set_page( &sg_text, pg, 13, 0 );<br />

26<br />

27 tfm = crypto_alloc_hash("md5", 0,<br />

CRYPTO_ALG_ASYNC);<br />

28 if (IS_ERR(tfm)) {<br />

29 printk("crypto_alloc_hash<br />

failed\n");<br />

30 goto out_free_pages;<br />

31 }<br />

32<br />

33 desc.tfm = tfm;<br />

34 desc.flags = 0;<br />

35<br />

36 if (crypto_hash_digest(&desc,<br />

&sg_text, 13, result)) {<br />

37 printk("crypto_hash_digest<br />

failed\n");<br />

38 } else {<br />

39 printk("Ergebnis md5sum:\n");<br />

40 for (i=0; i <<br />

crypto_hash_digestsize(tfm); i++ ) {<br />

41 printk("%02x",<br />

(unsigned char) result[i]);<br />

42 }<br />

43 printk("\n");<br />

44 }<br />

45<br />

46 crypto_free_hash(tfm);<br />

47 out_free_pages:<br />

48 free_pages( (unsigned long)<br />

page_address(pg), 0 );<br />

49 return ‐EIO;<br />

50 }<br />

51<br />

52 static void __exit mod_exit( void )<br />

53 {<br />

54 return;<br />

55 }<br />

56<br />

57 module_init( mod_init );<br />

58 module_exit( mod_exit );<br />

59 MODULE_LICENSE("GPL");


Key<br />

CTR(AES)<br />

Klartext<br />

Ciphertext<br />

(zum Beispiel XOR). Das Verschlüsseln<br />

von Daten mit dem <strong>Linux</strong>-Kernel verwendet<br />

eines der Cipher-Transforms aus<br />

dem Crypto-API. Für die weitverbreitete<br />

AES-Verschlüsselung eignet sich beispielsweise<br />

das Blockcipher-Transform.<br />

Die Verschlüsselung transformiert eine<br />

Klartextnachricht mit Hilfe des Schlüssels<br />

und mit einem Initialisierungsvektor (bei<br />

CBC und CTR) in den Ciphertext.<br />

Erforderliche Parameter<br />

Blocknummer<br />

Abbildung 3c: Das Beste zweier Welten: Der Counter Mode (CTR) schafft es, durch die Verknüpfung jedes<br />

Blocks mit einem eigenen IV zugleich sicher und parallelisierbar zu sein.<br />

Den Speicherbereich, der den Schlüssel<br />

enthält, übergibt der Programmierer<br />

zusammen mit der zugehörigen Schlüssellänge<br />

der Funktion »crypto_blkcipher_setkey()«.<br />

Den Speicherbereich<br />

für den Initialisierungsvektor stellt das<br />

Blockcipher-Transform-Objekt selbst zur<br />

Verfügung (siehe Abbildung 4). Er muss<br />

damit nur noch belegt werden.<br />

In Form einer Scatter-Gather-List werden<br />

noch zwei weitere Speicherbereiche benötigt:<br />

Der erste enthält die Klartextnachricht,<br />

der zweite nimmt die verschlüsselte<br />

Nachricht auf, den Ciphertext. Mit Klartextnachricht,<br />

Key, Initialisierungsvektor<br />

und Speicher für das Ergebnis startet<br />

durch Aufruf der Funktion »crypto_blkcipher_encrypt()«<br />

die Verschlüsselung.<br />

Am Ende ist der Ergebnispuffer mit dem<br />

Ciphertext gefüllt. Das Entschlüsseln<br />

funktioniert genauso: Der Programmierer<br />

muss Ciphertext, Key, IV und Speicher<br />

für das Ergebnis – in diesem Fall die<br />

Klartextnachricht – bereitstellen.<br />

Listing 2 zeigt die Ver- und Entschlüsselung<br />

des Textes „<strong>Linux</strong> <strong>Magazin</strong>“ mit<br />

AES im Blockchaining-Modus (»cbc«).<br />

IV<br />

Der Einfachheit halber kommt als Key<br />

und ebenso als IV eine Folge von Nullen<br />

zum Einsatz. AES ist ein Blockcipher,<br />

verschlüsselt also immer nur Daten, die<br />

ein Vielfaches eines Blocks (256 Bit) lang<br />

sind. Ist die Nachricht etwas kürzer, füllt<br />

man sie einfach mit Nullen auf.<br />

Der Code zeigt im Syslog (auf vielen Systemen<br />

die Datei »/var/log/messages«)<br />

die Klartextnachricht (»mesg«), den<br />

Cipher text (»encr«) und die entschlüsselte<br />

Nachricht (»decr«) an (siehe Abbildung<br />

5). Es versteht sich von selbst,<br />

dass ein Entwickler beim Praxiseinsatz<br />

den Key intelligenter wählt, besonders<br />

schützt und nicht für jedermann sichtbar<br />

im Quellcode hinterlegt.<br />

Keine asymmetrische<br />

Verschlüsselung<br />

Die übrigen vier, hier nicht weiter vorgestellten<br />

Transform-Objekte arbeiten ähnlich.<br />

Leider gibt es insgesamt nur sehr<br />

wenig Dokumentation. Im Wesentlichen<br />

existiert nur die Textdatei in [4]. Der<br />

Programmierer ist praktisch gezwungen,<br />

sich die zugehörigen Funktionsnamen<br />

Transform Key Klartext Ciphertext<br />

IV<br />

Desc sg sg Länge<br />

Parameter der Funktion »crypto_blkcipher_encrypt()«<br />

Abbildung 4: Zur Verschlüsselung notwendige Datenstrukturen: der Name des Transform-Objekts, der Schlüssel,<br />

die Speicherorte von Klar- und Ciphertext als Scatter-Gather-Listen (»sg«) sowie die Länge.<br />

Kern-Technik 06/2011<br />

Know-how<br />

www.linux-magazin.de<br />

89<br />

Tabelle 2: Funktionen zum Aufbau von Scatter-Gather-Listen<br />

Funktionsprototyp<br />

int​sg_alloc_table(struct​sg_table​*table,​unsigned​int​nents,​<br />

gfp_t​gfp_mask)<br />

Reserviert​und​initialisiert​eine​Scatter-Gather-Liste​mit​»nents«​Feldern.​»gfp_mask«​<br />

gibt​den​Kontext​an,​in​dem​die​Funktion​abläuft​(User-,​Kernel-​oder​Interrupt-Kontext),​»table«​enthält​nach​dem​Aufruf​die​Adresse​der​Liste.<br />

void​sg_init_table(struct​scatterlist​*sg,​unsigned​int​nents)<br />

void​sg_init_one(struct​scatterlist​*sg,​const​void​*buf,​unsigned​int​length)<br />

static​inline​void​sg_set_page(struct​scatterlist​*sg,​struct​<br />

page​*page,​unsigned​int​len,​unsigned​int​offset)<br />

static​inline​void​sg_set_buf(struct​scatterlist​*sg,​const​<br />

void​*buf,​unsigned​int​buflen)<br />

static​inline​void​*sg_virt(struct​scatterlist​*sg)<br />

Kurzbeschreibung<br />

Initialisiert​die​Liste​»sg«,​die​»nents«​Einträge​hat.<br />

Initialisiert​die​Liste​»sg«​(die​aus​einem​einzigen​Listenelement​besteht)​und​belegt​<br />

sie​mit​der​Adresse​des​Speicherbereichs​»buf«​und​der​Länge​»length«​vor.<br />

Initialisiert​das​Listenelement​»sg«​mit​der​Seitenadresse​»page«,​der​Länge​»len«​<br />

und​dem​Offset​»offset«​innerhalb​der​Seite.<br />

Initialisiert​das​Listenelement​»sg«​mit​der​virtuellen​Adresse​»buf«​und​der​Länge​<br />

»buflen«.<br />

Gibt​die​virtuelle​Adresse​des​Listenelements​»sg«​zurück.


Know-how<br />

www.linux-magazin.de Kern-Technik 06/2011<br />

90<br />

inklusive der erforderlichen<br />

Parameter aus dem Quelltext<br />

der Crypto-Headerdatei<br />

[5] rauszusuchen.<br />

Hinzu kommt, dass das<br />

Crypto-API des <strong>Linux</strong>-Kernels<br />

Gegenstand aktiver<br />

Weiterentwicklung ist. Das<br />

Ziel von Maintainer Herbert Xu ist es,<br />

eine universelle Programmierschnittstelle<br />

zu schaffen, die – analog zu »memcpy«<br />

– Daten transferiert und dabei falls notwendig<br />

auch transformiert. Dank des<br />

zurzeit leider sehr spärlich genutzten<br />

asynchronen Interface lässt sich dabei<br />

auch Parallelverarbeitung auf Multicore-<br />

Maschinen nutzen.<br />

Zukunftsvision<br />

Außerdem befindet sich eine Progammierschnittstelle<br />

zum Userspace in Entwicklung,<br />

sodass auch normale <strong>Linux</strong>-<br />

Abbildung 5: Blick ins Syslog: Die Ausgabe des Moduls »aes_user.ko« – aus dem Code in Listing 2 kompiliert – zeigt den Klartext,<br />

den Ciphertext und schließlich die entschlüsselte Nachricht.<br />

Programme bequem und transparent<br />

Verschlüsselung einsetzen können, und<br />

das nach Möglichkeit mit Hardware-Unterstützung.<br />

Sobald auch noch die asymmetrischen<br />

Verschlüsselungsverfahren<br />

hinreichend Umsetzung finden, ist <strong>Linux</strong><br />

im Bereich Kryptographie bestens ausgestattet.<br />

(mhu)<br />

n<br />

Infos<br />

[1]​ ​Wikipedia,​Padlock​Security​Engine:​<br />

[http://​de.​wikipedia.​org/​wiki/​PadLock]<br />

[2]​​Wikipedia,​AES​instruction​set:​[http://​en.​<br />

​wikipedia.​org/​wiki/​AES_instruction_set]<br />

[3]​​Wikipedia,​Kryptographie:​[http://​de.​<br />

​wikipedia.​org/​wiki/​Kryptografie]<br />

[4]​​Herbert​Xu,​„Scatterlist​Cryptographic​<br />

API“:​[http://​lxr.​free-electrons.​com/​source/​<br />

​Documentation/​crypto/​api-intro.​txt]<br />

[5]​​Headerdatei​»linux/​crypto.h«:​​<br />

[http://​lxr.​free-electrons.​com/​source/​<br />

​include/​linux/​crypto.​h]<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.​Mittlerweile​ist​die​dritte​Auflage​ihres​<br />

Buches​„<strong>Linux</strong>​Treiber​entwickeln“​erschienen.<br />

Listing 2: Verschlüsseln und Entschlüsseln im Kernel (»aes_user.c«)<br />

01 #include <br />

02 #include <br />

03<br />

04 #define DATA_SIZE 32<br />

05<br />

06 static int __init aes_user_init(void)<br />

07 {<br />

08 char key[16], *iv;<br />

09 struct crypto_blkcipher *tfm_cbc;<br />

10 struct scatterlist sg[3];<br />

11 int ret;<br />

12 char *msg, *encrypted, *decrypted;<br />

13 struct blkcipher_desc desc;<br />

14 size_t ivsize;<br />

15<br />

16 printk("aes‐user\n");<br />

17 memset(key, 0, sizeof(key));<br />

18<br />

19 tfm_cbc = crypto_alloc_blkcipher<br />

("cbc(aes)",0,CRYPTO_ALG_ASYNC);<br />

20 if ( IS_ERR(tfm_cbc) )<br />

21 return ‐EIO;<br />

22<br />

23 desc.tfm = tfm_cbc;<br />

24 desc.flags = 0;<br />

25<br />

26 ret = crypto_blkcipher_setkey<br />

(tfm_cbc, key, sizeof(key));<br />

27 if ( retiv;<br />

50 ivsize = crypto_blkcipher_ivsize<br />

(tfm_cbc);<br />

51 memset(iv, 0, ivsize);<br />

52<br />

53 ret = crypto_blkcipher_encrypt(&desc,<br />

&sg[1], &sg[0], DATA_SIZE);<br />

54 if ( retiv;<br />

58 ivsize = crypto_blkcipher_ivsize<br />

(tfm_cbc);<br />

59 memset(iv, 0, ivsize);<br />

60<br />

61 ret = crypto_blkcipher_decrypt(&desc,<br />

&sg[2], &sg[1], DATA_SIZE);<br />

62 if ( ret


<strong>Linux</strong>-<strong>Magazin</strong><br />

ACADEMY<br />

Online-Training<br />

IT-Sicherheit<br />

Grundlagen<br />

mit Tobias Eggendorfer<br />

Themen (Auszug):<br />

❚ physikalische<br />

Sicherheit<br />

❚ logische Sicherheit<br />

• Betriebssystem<br />

• Netzwerk<br />

❚ Sicherheitskonzepte<br />

❚ Sicherheitsprüfung<br />

20%<br />

Treue-Rabatt für<br />

Abonnenten<br />

@Kirsty Pargeter, 123RF<br />

Deckt in Teilbereichen auch das Prüfungswissen für LPIC-303-Inhalte ab.<br />

Inklusive Benutzer- und Rechteverwaltung, Authentifizierung, ACLs<br />

sowie wichtige Netzwerkprotokolle und mehr!<br />

Das Grundlagentraining für IT-Sicherheit richtet sich an Systemadministratoren<br />

und solche, die es werden wollen ebenso wie an ambitionierte<br />

Heimanwender.<br />

Nur 299 E inkl. 19 % MwSt.<br />

Informationen und Anmeldung unter:<br />

academy.linux-magazin.de/sicherheit


Programmieren<br />

www.linux-magazin.de Haskell 06/2011<br />

94<br />

Dachzeile Prägnante Programmierung in Haskell<br />

Überschrift<br />

Kurz und bündig<br />

In der funktionalen Programmiersprache Haskell lässt sich bemerkenswert kompakter Code schreiben, der<br />

dennoch leicht zu lesen ist. Dieser Artikel erklärt, welche Sprachkonstrukte und -eigenschaften diese Meisterleistung<br />

ermöglichen. Eine Code-Besichtigung für Haskell-Interessierte. Rainer Grimm<br />

© Aleksandar Jovanovic, 123RF.com<br />

Haskell, die rein funktionale Programmiersprache,<br />

soll kompakteres und eleganteres<br />

Programmieren erlauben, als<br />

es traditionelle imperative Programmiersprachen<br />

wie C/ C++, Java oder auch<br />

Python möglich machen. Eine Stufe abstrakter<br />

formuliere die Sprache Algorithmen,<br />

behaupten ihre Fans. Wie das im<br />

Detail aussieht, zeigt dieser Artikel: Programmieren<br />

in Haskell ist das Programmieren<br />

auf einer höheren Ebene.<br />

Das Sieb des Eratosthenes (»sieve«) in<br />

Listing 1 ist ein alter Bekannter aus<br />

Schule und Uni [1], der sich in Haskell<br />

Listing 1: Kompakt implementiert<br />

01 import Data.List<br />

02<br />

03 ‐‐ Sieb des Eratosthenes<br />

04 primes = sieve[2..]<br />

05 sieve (x:xs) = x: sieve[ y | y


www.linux-magazin.de<br />

Haskell 06/2011<br />

Programmieren<br />

95<br />

Abbildung 1: Ein erster Eindruck von Haskell zeigt kompakte Algorithmen in Aktion.<br />

Abbildung 3: Die hier eingesetzten Funktionen<br />

verwenden Rekursion.<br />

erste Element der Liste mittels »x« zu, auf<br />

den Rest der Liste mit »xs«.<br />

Rekursion<br />

Abbildung 2: Pattern Matching hilft bei der Arbeit<br />

mit positionalen Argumenten und Listen.<br />

Pattern Matching, bei dem es je eine Regel<br />

für die leere Liste und für die Liste mit<br />

einem Element gibt, kommt in Haskell<br />

typischerweise zusammen mit Rekursion<br />

zum Einsatz. Die Funktion »sumList« in<br />

Listing 2 beispielsweise wertet in dem<br />

Pattern »sumList (x:xs)= x + sumList<br />

xs« das erste Element aus und wendet<br />

»sumList« rekursiv auf dem Rest der Liste<br />

an. Da es charakteristisch für Haskell ist,<br />

eine Aktion auf dem ersten Element einer<br />

Liste und auf dem Rest der Liste zu definieren,<br />

sprechen Haskell-Programmierer<br />

nur noch vom »head« beziehungsweise<br />

»tail« einer Liste. Die Rekursion über<br />

»sumList« beendet sich genau dann,<br />

wenn der Rest der Liste nur noch die<br />

leere Liste »[]« ist.<br />

Wer bei Rekursion gewöhnt ist, auf den<br />

bekannten Stack-Overflow-Fehler zu warten,<br />

dem sei versichert, dass der Haskell-<br />

Compiler für die Rekursion optimiert ist.<br />

Konkret heißt dies, dass endrekursive<br />

Aufrufe in Haskell einen konstanten Speicherplatzbedarf<br />

besitzen.<br />

Listing 3 zeigt ein paar einfache Algorithmen,<br />

die auf Rekursion basieren.<br />

In Abbildung 3 sind die Funktionen in<br />

Aktion zu sehen. Bemerkenswert an<br />

der Funktion »mult« ist, dass sie in der<br />

Zeile 13 ohne Multiplikation auskommt.<br />

Stünde hier schlicht »mult n m = m *<br />

n«, dann würde sie Multiplikation durch<br />

Multiplikation definieren. Doch auf »mult<br />

n (m -1 )« wird so lange Pattern Matching<br />

angewandt, bis es zur Addition »n + n +<br />

n + n + n + n + n« entrollt ist.<br />

Weg mit dem Ballast<br />

„Haskell programmers don’t like boilerplate“<br />

heißt es in dem online zu lesenden<br />

Buch „Real World Haskell“ [3]. Dem ist<br />

nichts hinzuzufügen. Boilerplate-Code<br />

bezeichnet Codefragmente, die häufig in<br />

einem Programm auftauchen. Der Haskell-Programmierer<br />

bemüht sich solche<br />

Wiederholungen zu vermeiden. Wenn er<br />

ein Muster für eine Listenverarbeitung<br />

identifiziert, abstrahiert er darüber und<br />

bietet es als Funktion höherer Ordnung<br />

an. Funktionen, die andere Funktionen<br />

als Argumente annehmen oder zurückgeben,<br />

bezeichnet man als Funktionen höherer<br />

Ordnung. Sie geben typischerweise<br />

die Ablaufstruktur für die Verarbeitung<br />

einer Datenstruktur vor und werden über<br />

eine Funktion parametrisiert.<br />

Da diese Funktion meist nur einmal zur<br />

Verwendung kommt und in der Regel<br />

einen kurzen Funktionskörper hat, eignet<br />

sie sich für die Schreibung als Lambda-<br />

Listing 2: Pattern Matching<br />

01 neg True = False<br />

02 neg False= True<br />

03<br />

04 getSecond (_,b,_) = b<br />

05<br />

06 sumList [] = 0<br />

07 sumList (x:xs) = x + sumList xs<br />

08<br />

09 isTitle [] = False<br />

10 isTitle (x:xs) = isUpper x && all isLower xs<br />

Listing 3: Rekursion<br />

01 fak 0 = 1<br />

02 fak 1 = 1<br />

03 fak n = n + fak (n ‐ 1)<br />

04<br />

05 lengthList []= 0<br />

06 lengthList (x:xs)= 1 + lengthList xs<br />

07<br />

08 reverseList [] = []<br />

09 reverseList (x:xs) = reverseList xs ++ [x]<br />

10<br />

11 mult n 0 = 0<br />

12 mult n 1 = n<br />

13 mult n m = (mult n (m ‐ 1)) + n<br />

14<br />

15 fib 0 = 0<br />

16 fib 1 = 1<br />

17 fib n = fib(n‐2) + fib(n‐1)


Programmieren<br />

www.linux-magazin.de Haskell 06/2011<br />

96<br />

Funktion (siehe Kasten „Lambda-Funktionen“)<br />

sowie für partielle Funktionsanwendung.<br />

Die Klassiker unter den Funktionen<br />

höherer Ordnung bilden:<br />

n »map«: Wende eine Funktion sukzessive<br />

auf alle Elemente der Liste an.<br />

n »filter«: Filtere Elemente aus einer<br />

Liste heraus.<br />

n Die »fold«-Funktionsfamilie: Wende<br />

eine Operation sukzessive auf jedes<br />

nächste Element der Liste und das<br />

bisherige Ergebnis der Operation an.<br />

Damit lassen sich die Ergebnisse sehr<br />

kompakt berechnen (Abbildung 4). Die<br />

Algorithmen sind der Einfachheit halber<br />

als lokale Funktionen in der Interpreter-<br />

Shell »ghci« implementiert, was insbesondere<br />

der Lesbarkeit dient.<br />

In einem Ausdruck der Form »make-<br />

Quad= map (^2)« bezeichnen »map« die<br />

Funktion höherer Ordnung und »(^2)«<br />

die Verarbeitungsvorschrift für die Elemente<br />

der Liste, die erst beim Aufruf der<br />

Funktion »makeQuad [1 .. 20]« verwendet<br />

wird. Die einzelnen Schritte bei der<br />

Berechnung von »foldl (+) 0 [1,2,3,4,5]«<br />

sind in Abbildung 5 dargestellt. Während<br />

die Fold-Familie die Liste durch iteratives<br />

Anwenden der Operation auf einen Wert<br />

reduziert, gibt ihr Schwager, die Funktionsfamilie<br />

Scan, die Ergebnisse aller<br />

Iterationsschritte in einer Liste aus.<br />

Das sind aber bei Weitem nicht alle Funktionen<br />

höherer Ordnung, die Haskell<br />

bietet. Sowohl die »fold«- als auch die<br />

»scan«-Funktionsfamilie gibt es in vier<br />

verschiedenen Varianten [4]. Ein paar<br />

weitere Beispiele zeigt Abbildung 6. Noch<br />

ein Wort zum Algorithmus »zipWith (\a<br />

b -> (a,b)) [1..]['a'..'z']«: Er verknüpft<br />

zwei Listen, indem er die Lambda-Funktion<br />

»(\a b -> (a,b))« anwendet. Der<br />

Ausdruck »[1..]« beschreibt die unendliche<br />

Liste aller natürlichen Zahlen. Die<br />

Funktion verknüpft sie mit der endlichen<br />

Liste »['a'..'z']«, sodass auch der Gesamtausdruck<br />

ein Ende findet.<br />

Bedarfsauswertung<br />

Haskell ist durch und durch faul: Lazy<br />

Evaluation, zu Deutsch als Bedarfsauswertung<br />

bekannt, stellt ein Charakteristikum<br />

der Sprache dar. Sie erlaubt es, Algorithmen<br />

zu formulieren, die unendliche<br />

Datenstrukturen erzeugen, und besitzt<br />

einen weiteren bedeutenden Vorteil: Da<br />

die Datenstruktur erst dann ausgewertet<br />

wird, wenn eine Funktion ihre Elemente<br />

anfordert, spart Bedarfsauswertung häufig<br />

Zeit und auch Speicher.<br />

Sowohl der Primzahlen- als auch der<br />

Fibonacci-Algorithmus aus Listing 1<br />

beschreiben, wie alle Folgen der Serien<br />

berechnet werden. Die entscheidende<br />

Frage ist aber noch nicht beantwortet:<br />

Wie funktioniert der Primzahlen-Algorithmus?<br />

Das lässt sich am besten mit<br />

dem Haskell-Interpreter<br />

demonstrieren<br />

(Abbildung 7).<br />

»let sieve (x:xs) =<br />

x: sieve[ y | y a^2 ) [1,2,3,4] ‐‐ [1,4,9,16]<br />

map (\a ‐> toUpper a) "abcd" ‐‐ "ABCD"<br />

Abbildung 4: Map, Filter und Fold sind Klassiker der funktionalen Programmierung,<br />

von denen Haskell ausgiebig Gebrauch macht.<br />

Der Lambda-Ausdruck wird durch »\« eingeleitet, denn der Backslash<br />

entspricht am ehesten dem griechischen Buchstaben λ. Links vom Pfeil<br />

befinden sich die Argumente, rechts davon das Ergebnis des Lambda-Ausdrucks.<br />

Die Kompaktheit von Lambda-Funktionen lässt sich mit partieller<br />

Funktionsanwendung noch deutlich steigern, die in „Real World Haskell“<br />

[3] detailliert erläutert sind.


Abbildung 6: Von Scan bis Partition hat Haskell einige weitere Funktionen höherer Ordnung im Repertoire.<br />

jedes n angewandt wird, filtert der Ausdruck<br />

»n `mod` 2 /= 0« jedes ungerade n<br />

aus der Menge heraus. Tatsächlich ist List<br />

Comprehension, die mittlerweile auch in<br />

vielen anderen Programmiersprachen zu<br />

Hause ist, nur Syntactic Sugar, also eine<br />

vereinfachte Schreibweise, für die beiden<br />

Funktionen »map« und »filter« [1].<br />

Nach dieser Analyse der Einzelteile gilt<br />

es, die Ergebnisse zusammenzutragen.<br />

»primes=sieve[2..]« ist durch »sieve<br />

(2:[3..]) = 2: sieve[ y | y


Programmieren<br />

www.linux-magazin.de Haskell 06/2011<br />

98<br />

die Funktionskomposition recht einfach<br />

definieren:<br />

f . g = \x ‐> f (g x)<br />

Die Funktionskomposition ist ein leistungsstarkes<br />

Werkzeug, um neue Funktionen<br />

zu definieren. Wer die vorgestellten<br />

Bausteine wie Pattern Matching, Rekursion,<br />

Lambda-Funktionen, partielle Funktionsanwendung,<br />

Funktionen höherer<br />

Ordnung und Bedarfsauswertung zusammenfügt,<br />

erhält mächtige Ausdrücke<br />

(Abbildung 9). Das ist Code-Wiederverwendung<br />

auf Haskell-Art.<br />

Code und Prosa<br />

Obwohl die Komponenten der Beispiele<br />

nach der Lektüre des Artikels bekannt<br />

sein sollten, ist das Kompositum nicht so<br />

einfach zu verstehen. Am besten gelingt<br />

es, wenn man die Funktionskomposition<br />

von rechts nach links in Prosa übersetzt.<br />

So lässt sich die Anweisung »(takeWhile<br />

(


Webentwickler 58x266 mm 08.04.2011 10:29<br />

Die Deutschlandradio Service GmbH ist ein<br />

Tochterunternehmen von Deutschlandradio<br />

(www.dradio.de) dem nationalen Hörfunk<br />

mit seinen Programmen Deutschlandfunk,<br />

Deutschlandradio Kultur und DRadio Wissen.<br />

Zum nächstmöglichen Zeitpunkt suchen<br />

wir für die Weiterentwicklung unseres<br />

Webangebotes im Funkhaus Köln einen<br />

Webentwickler/<br />

Programmierer (m/w)<br />

Abbildung 11: Die Sprache Clojure bringt die funktionale Programmierung auf die Java Virtual Machine.<br />

der Sammlung des Gutenberg-Projekts<br />

[7], analysieren (Abbildung 10).<br />

Fazit<br />

Der Autor<br />

Rainer Grimm arbeitet seit 1999 als Software-<br />

Entwickler bei der Science +<br />

Computing AG in Tübingen.<br />

Insbesondere hält er dort<br />

Schulungen für das hauseigene<br />

Softwareprodukt SC<br />

Venus.<br />

Nach ein wenig Eingewöhnung lassen<br />

sich Haskell-Ausdrücke sowohl einfach<br />

lesen als auch schreiben, da sie ihre<br />

Funktionalität prägnant auf den Punkt<br />

bringen. Nicht von ungefähr finden<br />

funktionale Elemente in letzter Zeit auch<br />

Eingang in traditionelle Programmiersprachen.<br />

So kennt C++ Funktionen<br />

höherer Ordnung, und der kommende<br />

Standard C++0x [8] führt Lambda-<br />

Funktionen ein, die das Programmieren<br />

mit der Standard Template Library deutlich<br />

effizienter machen.<br />

Vor allem Python 3 [9] ist da schon ein<br />

paar Schritte weiter: Lambda-Funktionen,<br />

Funktionen höherer Ordnung, List Comprehension,<br />

Bedarfsauswertung – all dies<br />

ist idiomatisch, wenn es um das kompakte<br />

Verarbeiten von Daten in Python<br />

geht. Java ist zwar eine objekt orientierte<br />

Programmiersprache. Es ist aber durchaus<br />

denkbar, dass die funktionale Sprache<br />

Clojure [10], die die Java-Runtime<br />

nützt, dort einspringt, wo Java Schwächen<br />

zeigt (Abbildung 11). (mhu) n<br />

Infos<br />

[1] Rainer Grimm, „Funktionale Grundzüge“:<br />

[http:// www.linux-magazin.de/<br />

Online-Artikel/ Funktionale-Programmierung-1-Grundzuege]<br />

[2] Partielle Funktionsanwendung:<br />

[http://book. realworldhaskell.org/<br />

read/functional-programming.html#fp.<br />

partialapp]<br />

[3] B. O'Sullivan et al., „Real World Haskell“:<br />

[http://book. realworldhaskell.org]<br />

[4] Die Fold- und Scan-Funktionsfamilien:<br />

[http://www. haskell.org/ghc/docs/latest/<br />

html/libraries/ base/Data-List.htm]<br />

[5] Primzahlenalgorithmen in Haskell:<br />

[http://www. haskell.org/haskellwiki/<br />

Prime_numbers]<br />

[6] Fibonacci-Algorithmen in Haskell:<br />

[http://www. haskell.org/haskellwiki/<br />

The_Fibonacci_sequence]<br />

[7] Grimms Märchen beim Project Gutenberg:<br />

[http://www. gutenberg.org/ebooks/2591]<br />

[8] Rainer Grimm, „Erfrischend neu“:<br />

[http://www. linux-magazin.de/Heft-Abo/<br />

Ausgaben/ 2010/ 04/Erfrischend-neu]<br />

[9] Rainer Grimm: „Im Zeichen der Drei“<br />

[http://www. linux-magazin.de/Heft-Abo/<br />

Ausgaben/ 2009/ 09/Im-Zeichen-der-Drei]<br />

[10] Programmiersprache Clojure:<br />

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

Zu Ihren Aufgaben gehören:<br />

• Entwicklung neuer Schnittstellen für die<br />

Erfordernisse neuer digitaler Radioangebote<br />

• Weiterentwicklung des Webangebots mit<br />

seiner hochdynamischen, personalisierbaren<br />

Homepage<br />

• Qualitätssicherung und Dokumentation<br />

der Systeme<br />

• Teilnahme am Rufbereitschaftsdienst<br />

Erforderliche Kenntnisse:<br />

• Programmierung in den Skriptsprachen<br />

Ruby, Ruby on Rails, Perl<br />

• Programmierung in SQL, Grundkenntnisse<br />

in der PHP-Programmierung<br />

• sehr gute Kenntnisse der DBMS MySQL<br />

und SQLite<br />

• Erfahrung mit den Technologien<br />

XML, XSLT, SOAP, Zeichenkodierungen<br />

(UTF-8, ISO-8859-1)<br />

• objektorientierte Programmierung,<br />

Test driven development, Subversion<br />

• sicherer Umgang mit UNIX/<strong>Linux</strong> Systemen<br />

• sicherer Umgang mit den Protokollen scp,<br />

sftp, ssh, smb, ftp, http<br />

Wir erwarten mehrjährige Berufserfahrung in<br />

den oben genannten Bereichen. Wünschenswert<br />

sind Kenntnisse in JavaScript, Flash,<br />

Unix Shell Programmierung.<br />

Wir bieten:<br />

• Integration in ein erfolgreiches und<br />

innovatives Team<br />

• einen sicheren und zukunftsorientierten<br />

Arbeitsplatz mit flexibler Arbeitszeit<br />

• tariflich festgelegte Rahmenbedingen<br />

wie z.B.: 30 Tage Urlaub und 38,5 h/Woche<br />

Bitte richten Sie Ihre vollständigen Bewerbungsunterlagen<br />

ausschließlich auf dem Postweg<br />

unter Angabe Ihrer Gehaltsvorstellung an:<br />

Deutschlandradio Service GmbH<br />

Frau Heike Hahn<br />

Raderberggürtel 40 • 50968 Köln<br />

Bitte beachten Sie, dass wir Bewerbungsunter<br />

lagen nicht zurücksenden, sondern – unter<br />

Berücksichtigung der Datenschutzbestimmungen<br />

– in der Regel nach 6 bis 12<br />

Monaten vernichten. Verzichten Sie daher bitte<br />

auf aufwendige Bewerbungsmappen und<br />

Originalunterlagen.


Programmieren<br />

www.linux-magazin.de Perl-Snapshot 06/2011<br />

102<br />

Perl-Skripte analysieren und archivieren Tanzmusik<br />

Heiße Rhythmen<br />

Der bekannte Musikplayer Banshee legt die Metadaten der von ihm verwalteten Songs in einer SQLite-Datenbank<br />

ab, die zwei Perl-Skripte auslesen, restaurieren und mit automatisch ermittelten Beats-per-Minute-<br />

Werten auffrischen. Michael Schilli<br />

banshee.db«. Der Pfad zu den Audiodateien<br />

im System steht in der »Uri«-Spalte.<br />

© Dmitriy Shironosov, 123RF.com<br />

Wie bei der Wahl zwischen »vi« oder<br />

Emacs schwören viele Nutzer von Musikplayern<br />

auf ihren Favoriten und wechseln<br />

selten. Denn schließlich lassen sich<br />

Einstellungen wie die jahrelang mühsam<br />

von Hand erstellten Song-Ratings nicht<br />

so einfach übertragen. Zwar werde ich<br />

niemals einen anderen Editor als »vi«<br />

benutzen, doch neulich probierte ich den<br />

Abbildung 1: Das aufgeräumte GUI des Musikplayers Banshee.<br />

Musikplayer Banshee ([2], Abbildung 1)<br />

aus, da die bislang in den Perlmeister-<br />

Studios verwendete Rhythmbox keinen<br />

einfachen Rating-Export anbietet.<br />

Das GUI kommt extrem sauber und<br />

durchdacht daher. Als ich dann entdeckte,<br />

dass sich Ratings in Banshee ganz<br />

einfach sichern, exportieren oder extern<br />

manipulieren lassen, weil der Player sie<br />

in einer leicht zugänglichen<br />

SQLite-<br />

Datenbank ablegt,<br />

war’s um mich geschehen,<br />

die Operation<br />

Playerwechsel<br />

lief an.<br />

Wie in Abbildung<br />

2 zu sehen ist, sichert<br />

Banshee die<br />

Song-Metadaten in<br />

der Tabelle »Core-<br />

Tracks« der Datenbank<br />

datei »~/.<br />

config/banshee-1/<br />

Bewertungen gesichert<br />

Wie der SQLite-Befehl ».schema« zeigt,<br />

enthält die Tabelle weitere interessante<br />

Spalten wie die Anzahl der vergebenen<br />

Ratingsterne (»Rating«) oder die Basstrommelschläge<br />

pro Minute (»BPM«,<br />

Beats per Minute). Listing 1 sichert alle<br />

Song-Ratings in einer YAML-Datei (Abbildung<br />

3).<br />

Ohne Parameter aufgerufen öffnet Listing<br />

1 die Datenbank mit dem DBI-Modul und<br />

iteriert in der Funktion »backup()« ab<br />

Zeile 32 mit einem Select-Befehl über<br />

alle Einträge der Tabelle »CoreTracks«.<br />

Falls das für einen Song gefundene Rating<br />

null ist, springt Zeile 44 weiter zum<br />

nächsten Eintrag. Findet sich aber ein<br />

positiver Wert, speichert Zeile 46 ihn im<br />

Hash »%ratings« unter dem Pfad der Audiodatei.<br />

Am Ende der Tabelle schreibt<br />

die Funktion »DumpFile()« aus dem<br />

YAML-Modul die Ratings in die YAML-<br />

Datei »banshee-ratings.yml«.<br />

Zum Restaurieren der Ratings ruft der User<br />

das Skript mit »banshee-rating-backup<br />

restore« auf, worauf es die Datei »banshee-ratings.yml«<br />

mittels »LoadFile()« in<br />

Zeile 60 einliest und über den so initialisierten<br />

Hash iteriert. Dessen Schlüssel<br />

sind die Pfadnamen zu den Audiodateien<br />

und seine Werte die Ratings, sodass Zeile<br />

67 pro Eintrag einfach ein SQL-Update<br />

absetzen muss, um die Datenbank wieder<br />

auf Vordermann zu bringen.<br />

Der typische DBI-Dreisprung besteht aus<br />

dem Zusammenstellen der SQL-Query<br />

mit »prepare()«, einem anschließenden<br />

»execute()« mit Parametern, der die in der<br />

Query freigehaltenen Variablen ersetzt,


Abbildung 2: Dank des offenen Datenbankdesigns lässt sich Banshee in<br />

die Karten sehen.<br />

und einem abschließenden »finish()«<br />

zum Freigeben des Statement-Handle.<br />

Stampfer pro Minute<br />

Um eine Playlist für bestimmte Anlässe<br />

oder Gemütszustände zusammenzustellen,<br />

reichen Ratings allein nicht, denn<br />

wer hört schon AC/ DC während eines<br />

Kerzenlichtdinners? Banshee führt in der<br />

Metadatenbank ein Feld »BPM« (Beats<br />

per Minute), das die Taktschläge eines<br />

Titels pro Minute anzeigt.<br />

Wummernde Diskobässe eines Party-<br />

Titels wie „Memories“ von David Guetta<br />

kommen auf 120 BPM, ein schnelles<br />

Techno-Stück auf 180 und ein klassischer<br />

Titel wie Mozarts „Zauberflöte“ kommt<br />

ohne jegliches Getrommel aus und führt<br />

den Wert 0. Radio-DJs schwören auf diesen<br />

Messwert und stellen zum Teil mit<br />

automatischen Tools ein BPM-kompatibles<br />

Programm zusammen.<br />

Mit einer Kombination aus Rating und<br />

erlaubtem BPM-Bereich kann der User<br />

später die passende musikalische Untermalung<br />

für gewisse Stunden auswählen.<br />

Allerdings führen Audiodateien<br />

normalerweise keine BPM-Werte in ihren<br />

Metadaten mit sich. Version 1.5 des<br />

Banshee-Players liefert aber ein BPM-Erkennungstool<br />

mit. Ein Klick auf eine im<br />

Dateiscan-Dialog versteckte Checkbox aktiviert<br />

es (Abbildung 4). Der Menüpunkt<br />

Abbildung 4: Banshee ermittelt die BPM-Werte aller<br />

gefundenen Songs und füllt sie in die Datenbank.<br />

Abbildung 3: Ausschnitt aus der YAML-Datei, in der Listing 1 die bislang vorgenommenen<br />

Ratings in Banshee sichert.<br />

»Tools | Rescan Music Library« startet<br />

das CPU-intensive Update, das bei großen<br />

Sammlungen einige Zeit läuft.<br />

Die Ergebnisse lassen jedoch zu wünschen<br />

übrig. So meint das Tool zum<br />

Beispiel, dass das eher behäbige „I Feel<br />

Fine“ von den Beatles mit 213 BPM-<br />

Punkten dreimal so schnell wie der nur<br />

mit dem Wert 68 bewertete superschnelle<br />

Pop-Punk-Titel „Rich Lips“ von Blink 182<br />

sei (Abbildung 5).<br />

Listing 2 versucht deshalb mit einem<br />

BPM-Verfahren der Marke Eigenbau eine<br />

Listing 1: »banshee-rating-backup«<br />

01 #!/usr/local/bin/perl ‐w<br />

02 use strict;<br />

03 use Log::Log4perl qw(:easy);<br />

04 Log::Log4perl‐>easy_init($DEBUG);<br />

05<br />

06 use DBI qw(:sql_types);<br />

07 use DBD::SQLite;<br />

08 use Data::Dumper;<br />

09 use YAML qw(LoadFile DumpFile);<br />

10 use Getopt::Std;<br />

11<br />

12 getopts( "r", \my %opts );<br />

13<br />

14 my $db = glob<br />

15 "~/.config/banshee‐1/banshee.db";<br />

16 my $dbh = DBI‐>connect( "dbi:SQLite:$db",<br />

17 "", "", { RaiseError => 1,<br />

18 AutoCommit => 1 });<br />

19<br />

20 my $yml = "banshee‐ratings.yml";<br />

21 my %ratings = ();<br />

22<br />

23 if( $opts{ r } ) {<br />

24 restore( $yml, $dbh );<br />

25 } else {<br />

26 backup( $dbh, $yml );<br />

27 }<br />

28<br />

29 $dbh‐>disconnect();<br />

30<br />

31 ###########################################<br />

32 sub backup {<br />

33 ###########################################<br />

34 my( $dbh, $yml ) = @_;<br />

35<br />

36 my %ratings = ();<br />

37<br />

zuverlässigere Lösung auf die Beine zu<br />

stellen. Es wandelt die komprimierten<br />

Audiodateien mit dem Utility »sox« in<br />

rohe Audiodaten um, jagt diese durch einen<br />

schmalen Bandpass im Bass-Bereich<br />

und misst dann die Abstände zwischen<br />

den hoffentlich ausgeprägten Bass-Maxima.<br />

Diese Methode funktioniert zwar<br />

auch nicht fehlerfrei, unterscheidet aber<br />

klar Discostampf von Klassik.<br />

Das als Paket für viele Distributionen erhältliche<br />

Audiotool Audacity zeigt in den<br />

Abbildungen 6 und 7, wie die Audioda-<br />

38 my $sth = $dbh‐>prepare(<br />

39 "SELECT * FROM CoreTracks" );<br />

40 $sth‐>execute();<br />

41<br />

42 while( my $hash_ref =<br />

43 $sth‐>fetchrow_hashref() ) {<br />

44 next if $hash_ref‐>{ Rating } == 0;<br />

45<br />

46 $ratings{ $hash_ref‐>{ Uri } } =<br />

47 $hash_ref‐>{ Rating };<br />

48 }<br />

49<br />

50 DumpFile( $yml, \%ratings );<br />

51<br />

52 $sth‐>finish();<br />

53 }<br />

54<br />

55 ###########################################<br />

56 sub restore {<br />

57 ###########################################<br />

58 my( $yml, $dbh ) = @_;<br />

59<br />

60 my $ratings = LoadFile( $yml );<br />

61<br />

62 for my $song ( keys %$ratings ) {<br />

63 DEBUG "Restoring $song";<br />

64<br />

65 my $rating = $ratings‐>{ $song };<br />

66<br />

67 my $sth = $dbh‐>prepare(<br />

68 "UPDATE CoreTracks SET Rating = ?" .<br />

69 "WHERE Uri = ?" );<br />

70 $sth‐>execute( $rating, $song );<br />

71 $sth‐>finish();<br />

72 }<br />

73 }<br />

Perl-Snapshot 06/2011<br />

Programmieren<br />

www.linux-magazin.de<br />

103


Programmieren<br />

www.linux-magazin.de Perl-Snapshot 06/2011<br />

104<br />

Abbildung 5: Banshees BPM-Messer meint ernsthaft,<br />

dass „I Feel Fine“ von den Beatles dreimal so<br />

schnell wie „Rich Lips“ von Blink 182 ist.<br />

ten zweier unterschiedlicher Musikgenres<br />

aussehen. Während das klassische Orchesterstück<br />

nur mäßig ausgesteuert ist<br />

und keinen stetigen Rhythmus erkennen<br />

lässt, zeigt der breitbandige Synthi-Sound<br />

durchaus periodische Tendenzen.<br />

Abgetastete Musik<br />

Die Musik, die das Ohr als Bündel gleichzeitig<br />

gespielter Tonfrequenzen hört, erzeugt<br />

die Soundkarte aus digitalen Abtastwerten.<br />

Eine Stereo-Aufnahme besteht<br />

pro Kanal typischerweise aus 44 100<br />

verschiedenen 16-Bit-Messwerten pro Sekunde,<br />

die zwischen -32768 und +32767<br />

variieren. Ein reiner Ton käme als Sinus-<br />

kurve zum Vorschein, aber<br />

Musikinstrumente oder Stimmen<br />

erzeugen ein weites Frequenzspektrum.<br />

Die Abbildung 8 demonstriert<br />

als Beispiel die Audiodaten<br />

einer 1-Hz-Sinusschwingung<br />

im Rohformat.<br />

Wer beispielsweise den<br />

ersten (grünen) Kanal betrachtet,<br />

der sieht, dass die<br />

Werte von »15 06«, »18 06«,<br />

»1c 06« und so weiter stetig<br />

ansteigen. (Zu beachten ist<br />

die umgekehrte Byte-Order<br />

auf Intel-Prozessoren, die<br />

zugehörigen dezimalen Werte sind 1557,<br />

1560 und 1564).<br />

Innerhalb einer Periode mit 44 100 Abtastwerten<br />

durchläuft das 1-Hz-Signal<br />

einmal einen Bereich, der mit insgesamt<br />

65 536 Werten kodiert ist, also ist der<br />

Sprung von 0x0615 (dezimal 1557) zu<br />

0x0618 (dezimal 1560) schon in der Nähe<br />

des Maximums zu finden. Das Testsignal<br />

ist auf beiden Kanälen identisch, beide<br />

Kanäle (grün und blau) weisen die gleichen<br />

Werte auf.<br />

Eine MP3-Datei kodiert die Abtastwerte<br />

auf raffinierte Weise, das Skript muss sie<br />

vor der Analyse erst ins Rohformat von<br />

Abbildung 8 bringen. Hierzu eignet sich<br />

das Utilty »sox«, das mit dem Aufruf<br />

sox infile.mp3 ‐r 44100 ‐c 2 ‐b 16 U<br />

‐b 16 ‐t raw ‐e signed outfile.raw<br />

Abbildung 6: „Zu Hilfe, zu Hilfe, sonst bi-i-in ich verloren“ trällert<br />

Tamino in Mozarts „Zauberflöte“.<br />

aus »infile.mp3« die Rohformatdatei »outfile.raw«<br />

als Zweikanal-Kodierung mit<br />

vorzeichenbehafteten 16-Bit-Werten bei<br />

einer Abtastrate von 44 100 Hz erzeugt.<br />

Um darin die Bass-Aktivität zu analysieren<br />

und die zu bearbeitenden Daten<br />

auf 30 Sekunden zu beschränken, hängt<br />

der BPM-Messer an das Kommando oben<br />

noch folgende Argumente an:<br />

... bandpass 100 1 trim 60 30<br />

Der Bandpass blendet Frequenzen, die<br />

nicht im Bereich einer Basstrommel liegen<br />

mit einem 3-dB-Dämpfer pro Oktave<br />

aus und der »trim«-Filter fährt 60 Sekunden<br />

ins Musikstück hinein und extrahiert<br />

dort nur die Daten der nächsten 30<br />

Sekunden, damit das Skript später nicht<br />

ewig herumorgeln muss.<br />

Listing 2: »banshee-bpm-update« (Teil 1)<br />

001 #!/usr/local/bin/perl ‐w<br />

002 use strict;<br />

003 use Log::Log4perl qw(:easy);<br />

004 use DBI qw(:sql_types);<br />

005 use DBD::SQLite;<br />

006 use Sysadm::Install qw(tap);<br />

007 use URI::Escape;<br />

008 use File::Temp qw(tempfile);<br />

009 use POSIX;<br />

010<br />

011 my $SAMPLE_RATE = 10_000;<br />

012 my $OFFSET = 60;<br />

013 my $SAMPLE_SECS = 30;<br />

014 my $MIN_SIZE = 500;<br />

015 my $MIN_DROP = 0.7;<br />

016 my $NWINDOWS = 20;<br />

017<br />

018 Log::Log4perl‐>easy_init({ level => $INFO,<br />

019 category => "main" });<br />

020 my $db = glob<br />

021 "~/.config/banshee‐1/banshee.db";<br />

022 my $dbh = DBI‐>connect( "dbi:SQLite:$db",<br />

023 "", "", { RaiseError => 1,<br />

024 AutoCommit => 1 });<br />

025 bpm_update( $dbh );<br />

026 $dbh‐>disconnect();<br />

027<br />

028 ###########################################<br />

029 sub bpm_update {<br />

030 ###########################################<br />

031 my( $dbh ) = @_;<br />

032<br />

033 my $sth = $dbh‐>prepare(<br />

034 "SELECT Uri FROM CoreTracks" );<br />

035 $sth‐>execute();<br />

036<br />

037 my $upd_sth = $dbh‐>prepare(<br />

038 "UPDATE CoreTracks SET BPM=? " .<br />

039 "WHERE Uri = ?");<br />

040<br />

041 while( (my $uri) =<br />

042 $sth‐>fetchrow_array() ) {<br />

043 my $file = uri_unescape( $uri );<br />

044 $file =~ s#^file://##;<br />

045 INFO "Updating $uri";<br />

046 $upd_sth‐>execute( bpm( $file ),<br />

047 $uri );<br />

048 }<br />

049 $upd_sth‐>finish();<br />

050 $sth‐>finish();<br />

051 }<br />

052<br />

053 ###########################################<br />

054 sub bpm {<br />

055 ###########################################<br />

056 my( $file ) = @_;<br />

057<br />

058 my $rawfile;<br />

059<br />

060 if( $file =~ /\.raw$/ ) {<br />

061 $rawfile = $file;<br />

062 } else {<br />

063 $rawfile = File::Temp‐>new(<br />

064 SUFFIX => ".raw", UNLINK => 1 );<br />

065<br />

066 my($stdout, $stderr, $rc) =


Abbildung 7: Voller Synthi-Sound: „Memories“ von David Guetta.<br />

Abbildung 9 zeigt die auf diese Weise<br />

gefilterten Audiodaten verschiedener Titel.<br />

Die Basstrommel von „I Feel Fine“<br />

und das Synthi-Gewummere von David<br />

Guettas „Memories“ erzeugen saubere<br />

Maxima, die das Skript erkennt und<br />

durch simple Streckung auf Beats per<br />

Minute umrechnet. Bei klassischer Musik<br />

oder Liedern wie „I Got a Name“ von Jim<br />

Croce hingegen liefert der Algorithmus<br />

den Wert 0.<br />

Nach dem Verbinden mit der Datenbankdatei<br />

ruft Listing 2 die Funktion »bpm_<br />

update()« ab Zeile 29 auf. Die Select-<br />

Query in Zeile 34 liefert die Pfade aller<br />

von Banshee verwalteten Musikdateien<br />

als URIs in der Form »file://Pfad/Datei«<br />

zurück. Da in diesen URIs Leerzeichen<br />

als »%20« kodiert sind, verwandelt die<br />

Funktion »uri_escape()« aus dem CPAN-<br />

Modul URI::Escape sie wieder in normale<br />

Leerzeichen zurück.<br />

Die Zeile 44 entfernt anschließend<br />

noch das »file://«<br />

– und schon steht in der Variablen<br />

»$file« der Unix-Pfad<br />

zur Audiodatei.<br />

Das zweite SQL-Kommando,<br />

das Zeile 37 mit Platzhaltern<br />

vorbereitet, frischt den<br />

Wert der BPM-Spalte auf,<br />

indem es die URI als Selektionskriterium<br />

mit Where<br />

vorgibt. Zeile 46 schickt mit<br />

»execute()« das Update mit<br />

den eingesetzten Parametern »Uri« und<br />

»BPM« an die Datenbank ab.<br />

Während die While-Schleife alle gefundenen<br />

Audiodateien abklappert, bleibt<br />

das SQL-Statement in »upd_sth« gespeichert<br />

und Zeile 46 ruft es jedes Mal mit<br />

neuen Parametern auf. Nach dem Ende<br />

der While-Schleife gibt »finish()« die Datenstrukturen<br />

wieder frei.<br />

Das Errechnen des BPM-Werts einer Audiodatei<br />

übernimmt die Funktion »bpm()«<br />

ab Zeile 54. Falls sie<br />

bereits eine Raw-<br />

Datei überreicht bekam,<br />

übernimmt<br />

diese jetzt Zeile 61.<br />

Doch im Normalfall<br />

dürfte es sich um<br />

ein WAV-, MP3- Ogg-<br />

Format oder Ähnliches<br />

handeln.<br />

Zweikanal-Rohformat.<br />

Der mit der »tap()«-Funktion des CPAN-<br />

Moduls abgesetzte Sox-Befehl ab Zeile 67<br />

extrahiert 30 Sekunden Musik nach der<br />

1-Minuten-Marke, pfercht sie durch den<br />

schmalen Bandpass und legt die resultierenden<br />

Rohdaten in einer gleichnamigen<br />

Raw-Datei ab. Um den Datenwust auf ein<br />

erträgliches Maß zurechtzustutzen, reduziert<br />

er die Samplingrate auf den in Zeile<br />

11 gesetzten Wert für »$SAMPLE_RATE«<br />

(10 000 pro Sekunde).<br />

Die Funktion »samples()« ab Zeile 84<br />

liest anschließend die in der Raw-Datei<br />

abgelegten Werte in 4-Byte-Schritten mit<br />

»sysread()« aus (zwei Kanäle à 2 Byte)<br />

und nutzt Perls eingebaute Funktion »unpack()«<br />

mit dem Platzhalter »ss«, um die<br />

beiden vorzeichenbehafteten Integer zu<br />

extrahieren.<br />

Sie ignoriert den Wert für den zweiten<br />

Kanal in »$c2« (weil identisch) und nur<br />

der erste Kanalwert in »$c1« wandert ans<br />

Ende des Ergebnisarray »@vals«, falls er<br />

über dem Schwellenwert »$MIN_SIZE«<br />

liegt. Dieser in Zeile 14 auf 500 gesetzte<br />

Abbildung 8: Eine 1-Hertz-Sinuskurve mit einer Abtastrate von 44 100 Hz im<br />

Perl-Snapshot 06/2011<br />

Programmieren<br />

www.linux-magazin.de<br />

105<br />

Listing 2: »banshee-bpm-update« (Teil 2)<br />

067 tap "sox", $file, "‐r", $SAMPLE_RATE,<br />

068 "‐c", 2, "‐b", 16, "‐t", "raw",<br />

069 "‐e", "signed", $rawfile,<br />

070 "bandpass", 100, 1,<br />

071 "trim", $OFFSET, $SAMPLE_SECS;<br />

072<br />

073 if( $rc ) {<br />

074 LOGWARN "sox $file: $stderr";<br />

075 return 0;<br />

076 }<br />

077 }<br />

078<br />

079 return raw_bpm(<br />

080 samples( $rawfile‐>filename ) );<br />

081 }<br />

082<br />

083 ###########################################<br />

084 sub samples {<br />

085 ###########################################<br />

086 my( $file ) = @_;<br />

087<br />

088 my @vals = ();<br />

089 sysopen FILE, "$file", O_RDONLY<br />

090 or LOGDIE "$file: $!";<br />

091<br />

092 while( sysread( FILE, my $val, 4 ) ) {<br />

093 my($c1, $c2) = unpack 'ss', $val;<br />

094 $c1 = 0 if $c1 < $MIN_SIZE;<br />

095 push @vals, $c1;<br />

096 }<br />

097 close FILE;<br />

098 return @vals;<br />

099 }<br />

100<br />

101 ###########################################<br />

102 sub raw_bpm {<br />

103 ###########################################<br />

104 my(@samples) = @_;<br />

105<br />

106 my $win = scalar @samples /<br />

107 ($NWINDOWS*$SAMPLE_SECS);<br />

108 my($bumps, $pmax, $slope) = (0, 0, "up");<br />

109<br />

110 for( my $o = 0; $o $pmax;<br />

127 }<br />

128 $pmax = $max;<br />

129 }<br />

130<br />

131 return int($bumps / $SAMPLE_SECS * 60.0);<br />

132 }


Programmieren<br />

www.linux-magazin.de Perl-Snapshot 06/2011<br />

106<br />

definiert »$MIN_<br />

DROP« mit 0,7, dass<br />

das globale Maximum<br />

mindestens um 30<br />

Prozent fallen muss,<br />

damit der vorher<br />

durchlaufene Hügel<br />

als Maximum gilt.<br />

Zeile 131 dividiert die<br />

Anzahl gefundener<br />

Maxima dann noch<br />

durch die Sekundenlänge<br />

des untersuchten<br />

Datenbereichs<br />

und multipliziert das<br />

Ergebnis mit 60, um<br />

BPM zu erhalten.<br />

Abbildung 9: Die Bass-Linie von Songs verschiedener Genres nach dem Anwenden des schmalspurigen Bandfilters.<br />

Wert soll verhindern, dass die Maximumsuche<br />

sich in dümpelnden Signalen oder<br />

leisen Passagen verliert.<br />

Bergsteigermethode<br />

Im Voraus weiß das Skript nicht, wie<br />

viele Maxima es im Datenarray findet,<br />

und hat keinen Anhaltspunkt über deren<br />

Höhe. Es arbeitet daher nach der Bergsteigermethode<br />

(Abbildung 10), indem<br />

es alle Signalamplituden in einem schmalen<br />

Zeitfenster (etwa 1/ 20 Sekunde) untersucht<br />

und das dort gefundene lokale<br />

Maximum speichert.<br />

Ist das lokale Maximum im nächsten<br />

Zeitfenster größer als das gespeicherte,<br />

klettert der Signalgraph aufwärts und der<br />

Algorithmus setzt ein Flag. Stellt sich<br />

in diesem Modus im nächsten Zeitfenster<br />

ein kleineres lokales Maximum ein,<br />

ist soeben ein globales Signalmaximum<br />

überschritten und das Skript erhöht den<br />

entsprechenden Zähler.<br />

Das Verfahren funktioniert, da die maximale<br />

Anzahl zu findender Maxima nach<br />

oben beschränkt ist. BPM-Werte über 600<br />

Online PLUS<br />

Ein Screencast mit Michael Schilli demonstriert<br />

das Beispiel unter:<br />

[http:// www.linux-magazin.de/ plus/ 2011/ 06]<br />

sind sinnlos und uninteressant, daher gilt<br />

als gesichert, dass innerhalb zweier Zeitfenster<br />

von jeweils einer 1/ 20 Sekunde<br />

keine zwei Maxima vorliegen.<br />

Die Funktion »raw_bpm()« nimmt den<br />

Datenarray eines Kanals entgegen und<br />

macht sich auf Gipfelsuche. Zeile 106 definiert<br />

die Fensterbreite, indem sie die<br />

Anzahl der Datenpunkte durch das Produkt<br />

aus den gewünschten Fensterdichten<br />

(»$NWINDOWS«, auf 20 Windows<br />

pro Sekunde gesetzt) und der Anzahl der<br />

Sample-Sekunden dividiert.<br />

Die Variable »$slope« markiert das Flag,<br />

mit dem der Algorithmus feststellt, ob er<br />

sich in einem Aufwärts- oder Abwärtstrend<br />

befindet. Das letzte globale Maximum<br />

speichert »raw_bpm()« in »$pmax«,<br />

das lokale Maximum des untersuchten<br />

Fensters steht in »$max«.<br />

Damit kleinere Signalfluktuationen das<br />

Verfahren nicht aus dem Tritt bringen,<br />

Abbildung 10: Bergsteigermethode: zur Maximum-<br />

Bestimmung: Das erste Fenster, dessen Maximalwert<br />

nach einem Anstieg unter dem vorherigen Wert<br />

liegt, zeigt die Überschreitung des Maximums an.<br />

Installation<br />

Die nötigen Perl-Module<br />

DBI, DBD::SQ-<br />

Lite, Sysadm::Install,<br />

URI::Escape sowie<br />

Log::Log4perl finden sich entweder als<br />

Pakete in der verwendeten <strong>Linux</strong>-Distribution<br />

oder lassen sich mit einer CPAN-<br />

Shell einspielen. Wer kein MP3 verwenden<br />

will, kann mit WAV- oder Ogg-Dateien<br />

arbeiten.<br />

Bei großen Musiksammlungen sollte der<br />

Benutzer Banshee aus Performance-Gründen<br />

im Tools-Dialog auf MySQL umstellen.<br />

Dank DBIs Datenbankunabhängigkeit<br />

muss das Skript dann nur die »connect()«-<br />

Zeile anpassen, statt »"dbi:SQLite:$db"«<br />

das Kürzel »"dbi:mysql:dbname"« einfügen<br />

sowie einen Usernamen und ein<br />

Passwort angeben. (jcb)<br />

n<br />

Infos<br />

[1] Listings zu diesem Artikel:<br />

[ftp:// www. linux‐magazin. de/ pub/ listings/<br />

magazin/ 2011/ 06/ Perl]<br />

[2] Banshee‐Player‐Homepage:<br />

[http:// banshee. fm]<br />

Der Autor<br />

Michael Schilli arbeitet als Software‐Engineer bei<br />

Yahoo! in Sunnyvale, Kalifornien. Er hat „Goto<br />

Perl 5“ (auf Deutsch) und<br />

„Perl Power“ (auf Englisch)<br />

für Addison‐Wesley<br />

geschrieben und ist unter<br />

[mschilli@perlmeister. com]<br />

zu erreichen.


Virtualisierung<br />

Die besten Virtualisierer und die<br />

Features ihrer Produkte im Vergleich:<br />

• VMware<br />

• Hyper-V<br />

• Oracle VM<br />

• Citrix Xen Server<br />

• Qemu<br />

• ConVirt<br />

• OpenQRM<br />

• Red Hats RHEV<br />

• KVM<br />

• Novell<br />

• Proxmox<br />

Große<br />

Technical Review<br />

Marktstudie<br />

Powered by<br />

www.admin-magazin.de<br />

ADMIN<br />

Netzwerk & Security<br />

© Dmitry Sunagatov, Fotolia.und Diego Alíes, 123RF<br />

Mehr als<br />

500 Stunden<br />

Recherche, Tests<br />

und Vergleiche<br />

für nur<br />

98 Euro<br />

und andere<br />

Leseprobe mit 10 Seiten unter<br />

www.technicalreview.de/tr-marktstudie


Service<br />

www.linux-magazin.de IT-Profimarkt 06/2011<br />

108<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 einen<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 />

<strong>Linux</strong> New Media 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 />

1 = Hardware 2 = Netzwerk/TK 3 = Systemhaus<br />

IT-Profimarkt – Liste sortiert nach Postleitzahl<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 3 3 3 3<br />

imunixx GmbH UNIX consultants 01468 Moritzburg, Heinrich-Heine-Str. 4 0351-83975-0 www.imunixx.de 3 3 3 3 3<br />

future Training & Consulting GmbH Leipzig 04315 Leipzig, Kohlgartenstraße 15 0341-6804100 www.futuretrainings.com 3<br />

future Training & Consulting GmbH Halle 06116 Halle (Saale), Fiete-Schulze-Str. 13 0345-56418-20 www.futuretrainings.com 3<br />

future Training & Consulting GmbH Chemnitz 09111 Chemnitz, Bahnhofstraße 5 0371-6957730 www.futuretrainings.com 3<br />

TUXMAN <strong>Linux</strong> Fan-Shop 10367 Berlin, Möllendorffstr. 44 030-97609773 www.tuxman.de 3 3 3 3 3<br />

Hostserver GmbH 10405 Berlin, Winsstraße 70 030-47375550 www.hostserver.de 3<br />

Compaso GmbH 10439 Berlin, Driesener Strasse 23 030-3269330 www.compaso.de 3 3 3 3 3<br />

<strong>Linux</strong> Information Systems AG Berlin 12161 Berlin, Bundesallee 93 030-818686-03 www.linux-ag.com 3 3 3 3 3<br />

elego Software Solutions GmbH 13355 Berlin, Gustav-Meyer-Allee 25 030-2345869-6 www.elegosoft.com 3 3 3 3<br />

future Training & Consulting GmbH Berlin 13629 Berlin, Wernerwerkdamm 5 030-34358899 www.futuretrainings.com 3<br />

verion GmbH 16244 Altenhof, Unter den Buchen 22 e 033363-4610-0 www.verion.de 3 3 3<br />

i.based: Systemhaus GmbH & Co.KG 18439 Stralsund, Langenstr. 38 03831-2894411 www.ibased.de 3 3 3 3 3<br />

Logic Way GmbH 19061 Schwerin, Hagenower Str. 73 0385-39934-48 www.logicway.de 3 3 3 3<br />

Sybuca GmbH 20459 Hamburg, Herrengraben 26 040-27863190 www.sybuca.de 3 3 3 3 3<br />

iTechnology GmbH c/ o C:1 Solutions GmbH 22083 Hamburg, Osterbekstr. 90 c 040-52388-0 www.itechnology.de 3 3 3 3<br />

UDS-<strong>Linux</strong> - Schulung, Beratung, Entwicklung 22087 Hamburg, Lübecker Str. 1 040-45017123 www.uds-linux.de 3 3 3 3 3 3<br />

Comparat Software-Entwicklungs- GmbH 23558 Lübeck, Prießstr. 16 0451-479566-0 www.comparat.de 3 3<br />

future Training & Consulting GmbH Wismar 23966 Wismar, Lübsche Straße 22 03841-222851 www.futuretrainings.com 3<br />

Dr. Plöger & Kollegen secom consulting<br />

GmbH & Co. KG<br />

24105 Kiel, Waitzstr. 3 0431-66849700 www.secom-consulting.de 3 3 3 3 3<br />

talicom GmbH 30169 Hannover, Calenberger Esplanade 3 0511-123599-0 www.talicom.de 3 3 3 3 3<br />

futureTraining & Consulting GmbH Hannover 30451 Hannover, Fössestr. 77 a 0511-70034616 www.futuretrainings.com 3<br />

Servicebüro des grafischen Gewerbes 31789 Hameln, Talstraße 61 05151-774800 www.service4graphic-trade.com 3<br />

teuto.net Netzdienste GmbH 33602 Bielefeld, Niedenstr. 26 0521-96686-0 www.teuto.net 3 3 3 3 3<br />

MarcanT GmbH 33602 Bielefeld, Ravensberger Str. 10 G 0521-95945-0 www.marcant.net 3 3 3 3 3 3<br />

Hostserver GmbH 35037 Marburg, Biegenstr. 20 06421-175175-0 www.hostserver.de 3<br />

OpenIT GmbH 40599 Düsseldorf, In der Steele 33a-41 0211-239577-0 www.OpenIT.de 3 3 3 3 3<br />

UD Media GmbH 41460 Neuss, Schwannstraße 1 01805-880-900 www.udmedia.de 3 3<br />

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

(S.110)


Markt / Stellenanzeigen<br />

vertrieb@jeltimer.de<br />

Markt 06/2011<br />

Service<br />

Wareneingang<br />

Inventuren<br />

<br />

Erfassung mit<br />

Barcodes<br />

100.000 fach<br />

bewährte Qualität<br />

Ausweiserstellung<br />

Zutrittssysteme<br />

Zeiterfassung<br />

Joberfassung<br />

12345678<br />

www.linux-magazin.de<br />

109<br />

HT-630<br />

Inventuren<br />

Wareneingang<br />

JEL-MR370<br />

Terminal<br />

als WEBSERVER<br />

www.netways.de/jobs<br />

Data Room Services GmbH & Co. KG ist ein auf virtuelle Datenräume<br />

spezialisierter Transaktionsdienstleister, der Unternehmen beim Austausch<br />

von hochsensiblen Unternehmensdaten unterstützt. Für unseren<br />

Hauptsitz in Frankfurt suchen wir zum nächstmöglichen Zeitpunkt einen<br />

System-Administrator <strong>Linux</strong> (w/m)<br />

Ihre Aufgaben:<br />

Anforderungen:<br />

Entwicklung, Implementierung, Weiterentwicklung<br />

der Server- und Serviceinfrastruktur<br />

Verwaltung sämtlicher technischer Einrichtungen<br />

Dokumentation der Service-Bestandteile<br />

Analyse von Störungen und Problemen. Koordination<br />

von Supportanfragen, Lösungsvorschläge, Entstörung<br />

UNIX-Scripting-Fähigkeiten bzw. Programmieren/<br />

Skripten in Ruby/Perl/Bash<br />

Abgeschlossenes Studium (FH/Uni) der Informatik<br />

oder vergleichbare langjährige Berufserfahrung<br />

Nachweisbare Praxis-Erfahrung in der hauptverantwortlichen<br />

oder wesentlich mitverantwortlichen Administration<br />

eines aus mehreren Servern bestehenden<br />

Systems mit hohen Anforderungen an Performance<br />

und Ausfallsicherheit auf <strong>Linux</strong>-/Windows-Basis<br />

Teamfähigkeit, hohes Verantwortungsbewusstsein,<br />

Leistungsbereitschaft und zielorientierte Arbeitsweise<br />

Wir bieten die Mitarbeit in einem sich international sehr dynamisch entwickelnden<br />

Unternehmen mit jungem Team. Wenn Sie diese Herausforderungen<br />

ansprechen, dann freuen wir uns über Ihre aussagekräftigen<br />

Bewerbungsunterlagen mit Angabe Ihrer Gehaltsvorstellung und Ihres<br />

frühestmöglichen Eintrittstermins an hr@dataroomservices.com<br />

Werden Sie Teil unseres Teams als:<br />

LINUX CONSULTANT<br />

mit Fokus auf Systems Management<br />

DEVELOPER<br />

Schwerpunkt Open Source Development<br />

Die NETWAYS GmbH unterstützt seit<br />

mehr als 15 Jahren Unternehmen beim<br />

Management komplexer IT Umgebungen auf der<br />

Basis von Open Source Software. Die angebotenen<br />

Lösungen ermöglichen den störungsfreien Betrieb von<br />

Netzen, Servern und Applikationen.<br />

oder<br />

www.netways.de/jobs


Service<br />

www.linux-magazin.de IT-Profimarkt 06/2011<br />

110<br />

IT-Profimarkt<br />

IT-Profimarkt – Liste sortiert nach Postleitzahl (Fortsetzung von S. 108)<br />

1 = Hardware 2 = Netzwerk/TK 3 = Systemhaus<br />

4= Seminaranbieter 5 = Software 6 = Beratung<br />

Firma Anschrift Telefon Web 1 2 3 4 5 6<br />

<strong>Linux</strong>-Systeme GmbH 45277 Essen, Langenbergerstr. 179 0201-298830 www.linux-systeme.de 3 3 3 3 3<br />

<strong>Linux</strong>hotel GmbH 45279 Essen, Antonienallee 1 0201-8536-600 www.linuxhotel.de 3<br />

Herstell 45888 Gelsenkirchen, Wildenbruchstr. 18 0176-20947146 www.herstell.info 3 3 3 3<br />

OpenSource Training Ralf Spenneberg 48565 Steinfurt, Am Bahnhof 3-5 02552-638755 www.opensource-training.de 3<br />

Intevation GmbH 49074 Osnabrück, Neuer Graben 17 0541-33508-30 osnabrueck.intevation.de 3 3 3 3<br />

LWsystems GmbH & Co. KG 49186 Bad Iburg, Tegelerweg 11 05403-5556 www.lw-systems.de 3 3 3 3 3 3<br />

Systemhaus SAR GmbH 52499 Baesweiler, Arnold-Sommerfeld-Ring 27 02401-9195-0 www.sar.de 3 3 3 3 3 3<br />

uib gmbh 55118 Mainz, Bonifaziusplatz 1b 06131-27561-0 www.uib.de 3 3 3 3 3<br />

LISA GmbH 55411 Bingen, Elisenhöhe 47 06721-49960 www.lisa-gmbh.de 3 3 3 3 3<br />

saveIP GmbH 64283 Darmstadt, Schleiermacherstr. 23 06151-666266 www.saveip.de 3 3 3 3 3<br />

LAMARC EDV-Schulungen u. Beratung GmbH 65193 Wiesbaden, Sonnenberger Straße 14 0611-260023 www.lamarc.com 3 3 3 3<br />

ORDIX AG 65205 Wiesbaden, Kreuzberger Ring 13 0611-77840-00 www.ordix.de 3 3 3 3 3<br />

<strong>Linux</strong>Haus Stuttgart 70565 Stuttgart, Hessenwiesenstrasse 10 0711-2851905 www.linuxhaus.de 3 3 3 3 3<br />

comundus GmbH 71332 Waiblingen, Schüttelgrabenring 3 07151-5002850 www.comundus.com 3 3 3<br />

Veigel <strong>Linux</strong> Software Development 71723 Großbottwar, Frankenstr. 15 07148-922352 www.mvlsd.de 3 3 3 3<br />

Intra2net AG 72072 Tübingen, Mömpelgarderweg 8 07071-56510-30 www.intra2net.com 3 3 3 3<br />

future Training & Consulting GmbH<br />

Reutlingen<br />

72770 Reutlingen, Auchterstraße 8 07121-14493943 www.futuretrainings.com 3<br />

Manfred Heubach EDV und Kommunikation 73728 Esslingen, Hindenburgstr. 47 0711-4904930 www.heubach-edv.de 3 3 3 3<br />

eBIS GmbH 74080 Heilbronn/ Neckar, Neckargartacher Str. 94 07131-39500 www.ebis.info 3 3 3 3 3<br />

Waldmann EDV Systeme + Service 74321 Bietigheim-Bissingen, Pleidelsheimer Str. 25 07142-21516 www.waldmann-edv.de 3 3 3 3 3<br />

in-put Das <strong>Linux</strong>-Systemhaus 76133 Karlsruhe, Moltkestr. 49 0721-6803288-0 www.in-put.de 3 3 3 3 3 3<br />

Bodenseo 78224 Singen, Pomeziastr. 9 07731-1476120 www.bodenseo.de 3 3 3<br />

Gendrisch GmbH 81679 München, Cuvilliesstraße 14 089-38156901-0 www.gendrisch.de 3 3 3 3 3<br />

<strong>Linux</strong> Information Systems AG 81739 München, Putzbrunnerstr. 71 089-993412-0 www.linux-ag.com 3 3 3 3 3<br />

Synergy Systems GmbH 81829 München, Konrad-Zuse-Platz 8 089-89080500 www.synergysystems.de 3 3 3 3 3<br />

B1 Systems GmbH 85088 Vohburg, Osterfeldstrasse 7 08457-931096 www.b1-systems.de 3 3 3 3 3<br />

ATIX AG 85716 Unterschleißheim, Einsteinstr. 10 089-4523538-0 www.atix.de 3 3 3 3 3<br />

Bereos OHG 88069 Tettnang, Kalchenstraße 6 07542-9345-20 www.bereos.eu 3 3 3 3 3<br />

alpha EDV Systeme GmbH 88250 Weingarten, Liebfrauenstr. 9 0751-46265 www.alpha-edv.de 3 3 3 3 3<br />

OSTC Open Source Training and Consulting<br />

GmbH<br />

90425 Nürnberg, Delsenbachweg 32 0911-3474544 www.ostc.de 3 3 3 3 3 3<br />

Dipl.-Ing. Christoph Stockmayer GmbH 90571 Schwaig, Dreihöhenstr. 1 0911-505241 www.stockmayer.de 3 3 3<br />

pascom - Netzwerktechnik GmbH & Co.KG 94469 Deggendorf, Berger Str. 42 0991-270060 www.pascom.de 3 3 3 3 3<br />

fidu.de IT KG 95448 Bayreuth, Ritter-v.-Eitzenb.-Str. 19 09208-657638 www.linux-onlineshop.de 3 3 3 3<br />

Computersysteme Gmeiner 95643 Tirschenreuth, Fischerhüttenweg 4 09631-7000-0 www.gmeiner.de 3 3 3 3 3<br />

RealStuff Informatik AG CH-3007 Bern, Chutzenstrasse 24 0041-31-3824444 www.realstuff.ch 3 3 3<br />

CATATEC CH-3013 Bern, Dammweg 43 0041-31-3302630 www.catatec.ch 3 3 3<br />

EBP Gasser CH-4208 Nunningen, Winkel 6 0041-61793-0099 www.ebp-gasser.ch 3 3 3 3 3<br />

Syscon Systemberatungs AG CH-8003 Zürich, Zweierstrasse 129 0041-44-4542010 www.syscon.ch 3 3 3 3 3<br />

Helvetica IT AG CH-8890 Flums, Bahnhofstrasse 15 0041-817331567 www.helvetica-it.com 3 3 3<br />

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

n


Seminare<br />

<strong>Linux</strong>-<strong>Magazin</strong><br />

ACADEMY<br />

Online-Training der<br />

<strong>Linux</strong>-<strong>Magazin</strong> Academy<br />

Prüfungsvorbereitung<br />

für LPIC 1 & 2<br />

Besorgen Sie sich Brief und<br />

Siegel für Ihr <strong>Linux</strong>-<br />

Knowhow mit der<br />

LPI-Zertifizierung.<br />

- Training für die Prüfungen<br />

LPI 101 und 102<br />

- Training für die Prüfungen<br />

LPI 201 und 202<br />

SPAREN SIE MIT<br />

PAKETPREISEN!<br />

20%<br />

Treue-Rabatt für<br />

Abonnenten<br />

Treue-Rabatt für<br />

Abonnenten<br />

<strong>Linux</strong>-<strong>Magazin</strong><br />

ACADEMY<br />

20%<br />

Treue-Rabatt für<br />

Abonnenten<br />

Online-Training der<br />

<strong>Linux</strong>-<strong>Magazin</strong> Academy<br />

Erfolgreicher Einstieg in<br />

WordPress 3.0<br />

Ansprechende Webseiten, Blogs<br />

und Shops einfach selber erstellen<br />

❚ Installation in 5 Minuten<br />

❚ Designs ändern<br />

❚ Optimieren für Suchmaschinen<br />

❚ Funktionen erweitern<br />

❚ Benutzerrechte festlegen<br />

❚ Geld verdienen mit Werbung<br />

❚ Besucher analysieren<br />

❚ Sicherheit und Spam-Schutz<br />

X25<br />

Seminare 06/2011<br />

Service<br />

www.linux-magazin.de<br />

111<br />

Informationen und Anmeldung unter:<br />

academy.linux-magazin.de/lpic<br />

Informationen und Anmeldung unter:<br />

academy.linux-magazin.de/wordpress<br />

<strong>Linux</strong>-<strong>Magazin</strong><br />

Academy_1-9h_Anzeige_LPIC.indd 1<br />

©mipan, fotolia<br />

ACADEMY<br />

20%<br />

Treue-Rabatt für<br />

Abonnenten<br />

Online-Training<br />

IT-Sicherheit<br />

Grundlagen<br />

Themen:<br />

- physikalische Sicherheit<br />

- logische Sicherheit<br />

• Betriebssystem<br />

• Netzwerk<br />

- Sicherheitskonzepte<br />

- Sicherheitsprüfung<br />

Inklusive Benutzer- und<br />

Rechteverwaltung, Authentifizierung,<br />

ACLs sowie<br />

wichtige Netzwerkprotokolle<br />

und mehr!<br />

Informationen und Anmeldung unter:<br />

academy.linux-magazin.de/sicherheit<br />

01.09.2010 1-9h_Anzeige_wordpress.indd 15:41:58 Uhr<br />

1<br />

Harte Nuss?<br />

Geknackt!<br />

n Hilfe für Einsteiger<br />

n Topaktuelle News<br />

n Riesiges Artikelarchiv<br />

www.linux-community.de<br />

Deine tägliche Portion <strong>Linux</strong><br />

fahrschule_weber.indd 1<br />

22.01.2007 15:10:01 Uhr<br />

OpenSource Training Ralf Spenneberg<br />

02.09.2010 16:24:36 Uhr<br />

Schulungen direkt vom Autor<br />

Sourcefire 3D System<br />

4 Tage 12.04. ­ 15.04.2011<br />

Virtualisierung mit XEN 4.0<br />

3 Tage 18.04. ­ 20.04.2011<br />

Quality of Service mit <strong>Linux</strong><br />

3 Tage 18.04. ­ 20.04.2011<br />

OpenVPN ­ Die IPsec Alternative<br />

3 Tage 18.04. ­ 20.04.2011<br />

Hacking Webapplications<br />

4 Tage 26.04. ­ 29.04.2011<br />

Modsecurity<br />

3 Tage 09.05. ­ 11.05.2011<br />

Administration and Deployment of Kolab<br />

5 Tage 16.05. ­ 20.05.2011<br />

Snort IDS/IPS Technology<br />

4 Tage 24.05. ­ 27.05.2011<br />

Sichere Mailserver Lösungen mit Postfix<br />

5 Tage 06.06. ­ 10.06.2011<br />

Freie Distributionswahl:<br />

Opensuse, Fedora, Debian Squeeze,<br />

CentOS oder Ubuntu LTS<br />

Ergonomische Arbeitsplätze<br />

Umfangreiche Schulungsunterlagen mit<br />

Übungen<br />

Am Bahnhof 3­5<br />

48565 Steinfurt<br />

Tel.: 02552 638755<br />

Fax: 02552 638757<br />

Weitere Informationen unter www.os­t.de<br />

cademy_1-9h_Security.indd<br />

<strong>Linux</strong>-<strong>Magazin</strong><br />

1<br />

ACADEMY<br />

Online-Training der<br />

<strong>Linux</strong>-<strong>Magazin</strong> Academy<br />

OpenOffice -<br />

Arbeiten mit Vorlagen<br />

Erleichtern Sie sich Ihre<br />

tägliche Arbeit mit (Auszug):<br />

❚ einheitlichen Dokumentenvorlagen<br />

❚ automatischen Formatierungen<br />

❚ generierten Inhaltsverzeichnissen<br />

20%<br />

Treue-Rabatt für<br />

Abonnenten<br />

18.11.2010 12:37:52 Uhr<br />

Mit vielen<br />

Praxisbeispielen<br />

Informationen und Anmeldung unter:<br />

academy.linux-magazin.de/openoffice<br />

<strong>Linux</strong>-<strong>Magazin</strong><br />

ACADEMY<br />

Online-Training der<br />

<strong>Linux</strong>-<strong>Magazin</strong> Academy<br />

Monitoring mit Nagios<br />

Netzwerk überwachen<br />

leicht gemacht (Auszug):<br />

20%<br />

❚ das Webfrontend<br />

❚ Überwachung von<br />

Windows/<strong>Linux</strong>/Unix<br />

❚ Strukturieren der Konfiguration<br />

❚ Überwachen von<br />

SNMP-Komponenten<br />

❚ Addons Nagvis,<br />

Grapher V2, NDO2DB Mit vielen<br />

Treue-Rabatt für<br />

Abonnenten<br />

Praxisbeispielen<br />

Informationen und Anmeldung unter:<br />

academy.linux-magazin.de/nagios<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 />

Academy_1-9h_Anzeige_openoffice.indd 1<br />

02.09.2010 LM_Anzeige_1-9h_Anzeige_Nagios.indd 12:45:58 Uhr<br />

1<br />

03.09.2010 10:43:40 Uhr


Service<br />

www.linux-magazin.de Inserenten 06/2011<br />

112<br />

Inserentenverzeichnis<br />

1&1 Internet AG http:// www.einsundeins.de 9, 20, 23<br />

1blu AG http:// www.1blu.de 11<br />

ADMIN http:// www.admin-magazin.de 70<br />

Data Room Services http:// www.dataroomservices.com 109<br />

Deutschlandradio http:// www.dradio-service.de 99<br />

embedded projects GmbH http:// www.embedded-projects.net 109<br />

Fernschule Weber GmbH http:// www.fernschule-weber.de 111<br />

Galileo Press http:// www.galileo-press.de 7<br />

Happyware GmbH http:// www.happyware.de/ 19<br />

Heinlein Professional <strong>Linux</strong> Support GmbH http:// www.heinlein-partner.de 33, 35, 57<br />

Hetzner Online AG http:// www.hetzner.de 116<br />

Hostserver GmbH http:// www.hostserver.de 2<br />

<strong>Linux</strong>-<strong>Magazin</strong> Academy<br />

http:// www.academy.linux-magazin.de<br />

81, 91, 111<br />

<strong>Linux</strong>Tag - Messe Berlin GmbH http:// www.linuxtag.org 65<br />

<strong>Linux</strong>User http:// www.linuxuser.de 84<br />

Mittwald CM Service GmbH & Co. KG http:// www.mittwald.de 13<br />

Netclusive GmbH http:// www.netclusive.de 17<br />

netways GmbH http:// www.netways.de 109<br />

Open Source Press GmbH http:// www.opensourcepress.de 41<br />

PlusServer AG http:// www.plusserver.de 36, 54, 92, 100<br />

Smart Developer http:// www.smart-developer.de 115<br />

SolvetecIT Services GmbH http:// www.solvetec.de/ 15<br />

Spenneberg Training & Consulting http:// www.spenneberg.com 111<br />

Inovex GmbH http:// www.inovex.de 27<br />

JEL GmbH, Jannsen Electronic http:// www.jelgmbh.de 109<br />

<strong>Linux</strong> Technical Review http:// www.linuxtechnicalreview.de 107<br />

<strong>Linux</strong>-Community http:// www.linux-community.de 111<br />

<strong>Linux</strong>-Hotel http:// www.linuxhotel.de 29<br />

<strong>Linux</strong>-<strong>Magazin</strong> http:// www.linux-magazin.de 47, 77<br />

Stockmayer GmbH http:// www.stockmayer.de 111<br />

Strato AG http:// www.strato.de 1, 31, 45<br />

Terrashop GmbH http:// www.terrashop.de 83<br />

Thomas Krenn AG http:// www.thomas-krenn.com 25<br />

Einem Teil dieser Ausgabe liegt eine Beilage der Firma Heinlein Professional <strong>Linux</strong><br />

Support GmbH (http:// www.heinlein-partner.de) bei. Wir bitten unsere Leser um<br />

freundliche Beachtung.<br />

Veranstaltungen<br />

03.-06.05.2011<br />

Red Hat Summit and JBoss World 2011<br />

Boston, MA USA<br />

http://www.redhat.com/summit/<br />

06.-08.05.2011<br />

<strong>Linux</strong> Audio Conference 2011<br />

Maynooth, Ireland<br />

http://lac.linuxaudio.org/2011/<br />

08.-12.05.2011<br />

Interop 2011<br />

Las Vegas, NV, USA<br />

http://www.interop.com/lasvegas/<br />

10.-11.05.2011<br />

Google I/O<br />

San Francisco, CA, USA<br />

http://www.google.com/events/io/2010/<br />

10.-13.05.2011<br />

Libre Graphics Meeting 2011<br />

Montreal, Kanada<br />

http://www.libregraphicsmeeting.org<br />

11.-14.05.2011<br />

<strong>Linux</strong>Tag 2011<br />

Berlin, Germany<br />

http://www.linuxtag.org<br />

13.-14.05.2011<br />

V Concurso Universitario de Software Libre – Fase<br />

Final<br />

Granada, Spain<br />

http://www.concursosoftwarelibre.org<br />

14.-19.05.2011<br />

TakeDownCon 2011<br />

Dallas, TX USA<br />

http://www.takedowncon.com<br />

16.-19.05.2011<br />

RailsConf 2011<br />

Baltimore, MD, USA<br />

http://en.oreilly.com/rails2011<br />

18.05.2011<br />

WhyFLOSS Madrid 2011<br />

Madrid, Spain<br />

http://whyfloss.com/es/conference/madrid11/program<br />

19.-20.05.2011<br />

PGCon 2011: PostgreSQL Conference for Users &<br />

Developers<br />

Ottawa, ON Canada<br />

http://www.pgcon.org/2011/<br />

19.-21.05.2011<br />

2011 Dutch PHP Conference<br />

Amsterdam, The Netherlands<br />

http://www.phpconference.nl/<br />

20.-22.05.2011<br />

Akademy-es 2011<br />

Barcelona, Spain<br />

http://www.kde-espana.es/akademy-es2011/<br />

23.-25.05.2011<br />

MeeGo Conference 2011: San Francisco<br />

San Francisco, CA, USA<br />

http://sf2011.meego.com<br />

23.-26.05.2011<br />

All About the Cloud<br />

San Francisco, CA USA<br />

http://www.siia.net/aatc/2011/<br />

26.05.2011<br />

Mobile App Conference 2011: Beijing<br />

Beijing, China<br />

http://www.mobileappconf.com<br />

26.-27.05.2011<br />

IV Jornadas estatales de OpenERP<br />

Lugo, Spain<br />

http://www.jornadasopenerp.com<br />

01.-02.06.2011<br />

Apps World Africa 2011<br />

Cape Town, South Africa<br />

http://www.apps-world.net/africa/<br />

01.-02.06.2011<br />

Uplinq 2011<br />

San Diego, CA, USA<br />

http://www.uplinq.com<br />

01.-03.06.2011<br />

<strong>Linux</strong>Con Japan 2011<br />

Yokohama, Japan<br />

http://events.linuxfoundation.org/events/linuxconjapan/<br />

01.-03.06.2011<br />

SPTechCon<br />

Boston, MA USA<br />

http://www.sptechcon.com<br />

02.-05.06.2011<br />

LUG-Camp 2011<br />

Tschierv, Schweiz<br />

http://2011.lug-camp.ch<br />

03.-05.06.2011<br />

Open Help Conference 2011<br />

Cincinatti, OH USA<br />

http://openhelpconference.com/index.html<br />

06.-07.06.2011<br />

Berlin Buzzwords 2011<br />

Berlin, Germany<br />

http://berlinbuzzwords.de<br />

06.-08.06.2011<br />

DjangoCon Europe 2011<br />

Amsterdam, The Netherlands<br />

http://djangocon.eu<br />

10.-12.06.2011<br />

SouthEast <strong>Linux</strong>Fest 2011<br />

Spartanburg, SC USA<br />

http://www.southeastlinuxfest.org<br />

14.06.2011<br />

HotStorage ’11<br />

Portland, OR, USA<br />

http://www.usenix.org/events/hotstorage11/<br />

14.-16.06.2011<br />

MobileAppEx<br />

Chicago, IL, USA<br />

http://www.mobileappex.com<br />

14.-16.06.2011<br />

Velocity 2011<br />

Santa Clara, CA, USA<br />

http://velocityconf.com/velocity2011<br />

15.-16.06.2011<br />

WebApps ’11<br />

Portland, OR, USA<br />

http://www.usenix.org/events/webapps11/


Impressum<br />

<strong>Linux</strong>-<strong>Magazin</strong> eine Publikation der <strong>Linux</strong> New Media 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 />

Chefredakteure<br />

stv. Chefredakteure<br />

Brian Osborn (Vorstand), bosborn@linuxnewmedia.de<br />

Hermann Plank (Vorstand), hplank@linuxnewmedia.de<br />

Jan Kleinert (V.i.S.d.P.), jkleinert@linux-magazin.de (jk)<br />

Ulrich Bantle (Online), ubantle@linux-magazin.de (uba)<br />

Markus Feilner, mfeilner@linux-magazin.de (mfe)<br />

Mathias Huber, mhuber@linux-magazin.de (mhu)<br />

Print- und Onlineredaktion<br />

Aktuell, Forum Ulrich Bantle, ubantle@linux-magazin.de (uba)<br />

Mathias Huber, mhuber@linux-magazin.de (mhu)<br />

Software, Programmierung Mathias Huber, mhuber@linux-magazin.de (mhu)<br />

Jens-Christoph Brendel, jbrendel@linuxnewmedia.de (jcb)<br />

Sysadmin, Know-how Markus Feilner, mfeilner@linux-magazin.de (mfe)<br />

Ständige Mitarbeiter Fred Andresen (fan), Zack Brown, Mela Eckenfels, Hans-Georg<br />

Eßer (hge), Oliver Frommel (ofr), Heike Jurzik (hej), Charly<br />

Kühnast, Martin Loschwitz, Michael Schilli, Carsten Schnober<br />

(csc), Mark Vogelsberger, Uwe Vollbracht, Britta Wülfing (bwü)<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 />

Judith Erb (Layout)<br />

xhoch4, München (Titel-Illustration)<br />

123RF.com, Fotolia.de, Photocase.com, Pixelio.de und andere<br />

Thomas Leichtenstern, tleichtenstern@linuxnewmedia.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@linuxnewmedia.de<br />

shop.linuxnewmedia.de<br />

www.linux-magazin.de/Produkte<br />

Lea-Maria-Schmitt<br />

abo@linux-magazin.de<br />

Tel.: 07131/27 07 274<br />

Fax: 07131/27 07 78 601<br />

CH-Tel: +41 43 816 16 27<br />

Preise Print Deutschland Österreich Schweiz Ausland EU<br />

No-Media-Ausgabe 4 5,95 4 6,70 Sfr 11,90 (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 63,20 4 71,50 Sfr 126,10 4 75,40<br />

Jahresabo DELUG-DVD 4 87,90 4 96,90 Sfr 161,90 4 99,90<br />

Preise Digital Deutschland Österreich Schweiz Ausland EU<br />

Heft-PDF Einzelausgabe 4 5,95 4 5,95 Sfr 8,10 4 5,95<br />

DigiSub (12 Ausgaben) 4 63,20 4 63,20 Sfr 85,95 4 63,20<br />

DigiSub (zum Printabo) 4 12,— 4 12,— Sfr 16,30 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 289,40 4 173,90<br />

Profi-Abo 3 4 136,60 4 151,70 Sfr 259,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 />

für Zeitschriften gelten.<br />

Pressemitteilungen presse-info@linux-magazin.de<br />

Marketing und Vertrieb<br />

Anzeigenleitung,<br />

Hubert Wiest, hwiest@linuxnewmedia.de<br />

Vertrieb und Marketing Tel.: +49 (0)89 / 99 34 11 – 23<br />

Mediaberatung D, A, CH<br />

Mediaberatung UK, Irland<br />

Mediaberatung USA<br />

Pressevertrieb<br />

Druck<br />

Fax: +49 (0)89 / 99 34 11 – 99<br />

Petra Jaser, anzeigen@linuxnewmedia.de<br />

Tel.: +49 (0)89 / 99 34 11 – 24<br />

Fax: +49 (0)89 / 99 34 11 – 99<br />

Penny Wilby, pwilby@linux-magazine.com<br />

Tel.: +44 (0)1787 211100<br />

Joanna Earl, jearl@linuxnewmedia.com<br />

Tel.:+1 785 727 5275<br />

Ann Jesse, ajesse@linuxnewmedia.com<br />

Tel.: +1 785 841 8834<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 und Medienservice GmbH, 97204 Höchberg<br />

Der Begriff Unix wird in dieser Schreibweise als generelle Bezeichnung für 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 für 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 für 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 – 2011 <strong>Linux</strong> New Media AG<br />

Impressum 06/2011<br />

Service<br />

www.linux-magazin.de<br />

113<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 Recht einfach 78<br />

Zack Brown Zacks Kernel-News 22<br />

Norbert Graf Sicher weggeschlossen 50<br />

Rainer Grimm Kurz und bündig 94<br />

Rainer Grimm Tux liest 82<br />

Markus Heller Gut sortiert 60<br />

Eva-Katharina Kunst Kern-Technik 86<br />

Kay Königsmann Schneller, schneller 42<br />

Charly Kühnast Einführung 59<br />

Martin Loschwitz Zusammenpacken 32<br />

Jürgen Quade Kern-Technik 86<br />

Thomas Pfeiffer Gut sortiert 60<br />

Andrej Radonic Reif für die Inseln 66<br />

Dirk Riehle Konzertiert 72<br />

Markus Rothmeyer An der Quelle 46<br />

Michael Schilli Heiße Rhythmen 102<br />

Uwe Vollbracht Tooltipps 56<br />

Christoph Wickert Sicher paketiert 26


Service<br />

www.linux-magazin.de <strong>Vorschau</strong> 7/2011 1/2011 12/2010 06/2011<br />

114<br />

<strong>Vorschau</strong><br />

7/2011 Dachzeile<br />

Kreatives Schreiben<br />

© knallgrün, photocase.com<br />

Startformation in die Cloud<br />

Der Wunsch oder Wille allein, Teile der eigenen IT in die Cloud<br />

zu verfrachten, bewirkt gar nichts. Gefragt ist ein detaillierter<br />

Flugplan in Richtung Troposphäre, der klarmacht, welchen<br />

Dienst oder welche Infrastruktur der Admin praktischerweise<br />

zuerst starten lassen sollte.<br />

Es kommt nämlich nicht drauf an, auf Biegen und Brechen jeden<br />

Dienst auf Reisen zu schicken, sondern genau jene, die<br />

von den Cloud-typischen Skaleneffekten am meisten und am<br />

schnellsten profitieren. Der nächste <strong>Magazin</strong>-Schwerpunkt befragt<br />

zudem viel fliegende Admins nach ihren persönlichen Erfahrungen<br />

und erkundet die Leistungen einige Cloudanbieter.<br />

MAGAZIN<br />

Überschrift<br />

Um die Gunst von Sachbuch- und Romanautoren, Spielemachern<br />

oder Drehbuchschreibern wetteifern in der nächsten Bitparade<br />

Scrivener Celtx, Writer’s Café und <strong>Story</strong>book. Sie helfen<br />

Geschichten zu entwickeln, den Überblick über Erzählstränge<br />

zu behalten und Struktur ins Recherchematerial zu bringen.<br />

Verteilter Bugtracker<br />

Spätestens seit Git kann jeder Entwickler sein eigenes Quelltext-Repository<br />

pflegen und mit anderen synchronisieren. Die<br />

Software SD müht sich um Gleiches mit der Fehlerdatenbank.<br />

Außerdem versucht sich der Bugtracker an einem unbürokratischen<br />

Bonjour-Modus für gemeinsame Programmiersessions.<br />

Objekte erkennen mit Python<br />

Dank moderner Speichermedien horten die stolzen Besitzer<br />

von Digitalkameras Unmengen von Bildern. Wer die Erinnerungsflut<br />

nicht von Hand sortieren mag, erkennt mit etwas Python<br />

und freien Bibliotheken wie Open CV automatisch Schriften,<br />

Gesichter und nackte Haut.<br />

Die Ausgabe 7/2011<br />

erscheint am 9. Juni 2011<br />

Ausgabe 06/2011<br />

erscheint am 19.05.2011<br />

© szazesk2, sxc.hu<br />

Tools für Audio und Video<br />

Dank ausgefeilter Subsysteme und neuer<br />

Chipsätze verwandelt sich der PC in eine<br />

ausgewachsene Workstation zum Bearbeiten<br />

von Audio- und Videodateien. Für jeden<br />

Einsatzzweck haben Sie als Anwender<br />

die Auswahl an Werkzeugen. Dabei spielen<br />

die Applikationen ihre jeweiligen Stärken<br />

vor allem aus, wenn Sie genau wissen,<br />

welche Parameter sie steuern. Wir stellen<br />

neue Entwicklungen im Audio-Processing vor und zeigen, wie Sie Videos<br />

unter <strong>Linux</strong> schneiden und Radiosendungen ins Netz schicken.<br />

Photivo<br />

Das Raw-Format als digitales Negativ liefert dann qualitativ hochwertige<br />

Ergebnisse, wenn die Software das Potenzial voll ausreizt. Mit<br />

Photivo haben Sie ein Werkzeug an der Hand, mit dem Sie nicht nur<br />

Raw-Formate konvertieren, sondern auch normale Bitmap-Dateien<br />

bearbeiten.<br />

Termine synchron<br />

Um Termine zu synchronisieren, braucht es keine umfangreiche<br />

Groupware: Der Calendar-Server aus dem Darwin-Projekt läuft genügsam<br />

auf einem Rechner im Netz und verteilt von dort die Daten<br />

an PCs und mobile Geräte, zum Beispiel ein Android-Telefon. Unser<br />

Workshop zeigt, welche Vorteile die aktuelle Entwicklerversion<br />

bringt und wie Sie diese aufsetzen.<br />

Intel SSD 510 im Test<br />

Mit einem Preis von knapp 300 Euro für eine 120-GByte-Platte sind<br />

SSDs zwar immer noch recht teuer, aber<br />

immerhin bezahlbar. Wir haben<br />

das neueste Modell von Intel<br />

getestet, das aus der Serie 510<br />

stammt, und unter Ext 4 und Btrfs<br />

überprüft, ob die vom Hersteller<br />

angegebenen Werte beim Lesen<br />

und Schreiben sich auch in der<br />

Praxis widerspiegeln.


Smart Developer<br />

Alles zum Thema mobile Betriebssysteme<br />

Für Smartphone-Entwickler und Entscheidungsträger<br />

4 Hefte<br />

nur<br />

E 26,90<br />

JETZT auch<br />

als PDF<br />

ErhälTlich!<br />

Jetzt bestellen unter:<br />

Meine Vorteile:<br />

+ Ich erhalte vier ausgaben des smart<br />

developer frei Haus für e 26,90 statt<br />

e 31,60 (preise gelten für deutschland)<br />

+ das abonnement ist jeder zeit kündbar.<br />

Ich gehe kein risiko ein<br />

+ aktuell informiert mit allen Neuigkeiten<br />

rund um tablets und smartphones<br />

www.smart-developer.de/abo<br />

Telefon 07131 / 2707 274 • Fax 07131 / 2707 78 601 • E-Mail: abo@smart-developer.de

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!