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:LLVMlässtsichalsvollwertigerCompilerverwenden,<br />
dientabervielenProjektenalsTool,umCodejustintimezuübersetzen,<br />
beispielsweiseaufMacOSXzumKompilierenvonOpen-GL-Shadern.Neu:<br />
DasLLVM-Compiler-FrameworkerfülltnundieISO-1998-und-2003-StandardsfürC++.Lizenz:BSD-artig[http://llvm.org]<br />
Libvirt 0.9.0:DieVirtualisierungsbibliotheklegtaufdemWegzur1.0einen<br />
letztenZwischenstoppein.Neu: EinneuerVM-TreibermachtGebrauch<br />
vonderLibxenlight,einerBibliothekzumZugriffaufXen-VMs.Dasneue<br />
Feature»cputune«implementiertCPU-Tuning.Lizenz: LGPL[ftp://libvirt.<br />
org/libvirt/]<br />
Rekonq 0.7.0:FreierBrowseraufWebkit-BasisfürKDE-Desktops.Neu:<br />
UnterstützungfürdasOpenSearchFrameworkzurEinbindungvonSitespezifischenWebsuchen.DerBrowsermerktsichdieVergrößerungsstufen<br />
fürjedenHost.VerbessertesCache-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-oderFirewire-GerätenaufundmischtsiemitKlängen,beispielsweise<br />
von einem Mikrofon. Neu: Die Release speichert Videodaten in<br />
einerSQLite-Datenbank,kodiertsieaberauchinsVideo.ZumStartenund<br />
StoppenderAufnahmegibtesjetztTastaturkürzel.Lizenz: GPLv3[https://<br />
github.com/fosslc/freeseer]<br />
Highlight 3.4: HighlighterzeugtfarbigeAusgabenaufdemTerminal,in<br />
HTML,RTF,Latex,SVGundinweiterenFormaten.Neu: ZudenNeuzugängenderunterstütztenSprachenzählenABC,Algol,AS/400-CL,Gambas,<br />
Transact-SQLundJavaFX.DanebenhatderEntwicklerAndreSimondie<br />
Pluginsrepariert,dieseineSoftwareinDokuwikiunddieBlogsWordpress<br />
undSerendipityeinbinden.Lizenz: GPLv3[http://www.andre-simon.de/<br />
doku/highlight/highlight.html]<br />
Quartz 2.0: Job-SchedulerfürJava-Anwendungen.Neu: DasAPIwurde<br />
modernisiert,esverwendetnunCollectionsundGenerics.Danebenhaben<br />
die Entwickler einige Methoden verborgen und eine Domain Specific<br />
Language(DSL)fürdieArbeitmitJobsundTriggersgeschaffen.Lizenz:<br />
Apache-2.0-Lizenz[http://www.quartz-scheduler.org/]<br />
Xwiki 3.0:InJavaumgesetztesOpen-Source-WikimitSkinsundPlugins.<br />
Neu: EinActivity-StreampubliziertkurzeStatusmeldungenderNutzerim<br />
Twitter-Stil.EingrafischerDashboard-EditorerleichtertdieGestaltung.<br />
Lizenz:LGPLv2.1[http://www.xwiki.org/xwiki/bin/view/Main/Download]<br />
LM-Sensors 3.3.0:LM-SensorsüberwachtHardwaredatenundbesteht<br />
aus der Bibliothek Libsensors, dem Kommandozeilentool Sensors und<br />
demDaemonSensord.Neu: StelltauchdasÖffnendesGehäusessowie<br />
Feuchtigkeitssensoren unter Überwachung. Für bestehende Sensoren<br />
gibtesneueAttribute,CoretempfindetnunalleCPUsimSystem.Lizenz:<br />
LGPLv2.1[http://lm-sensors.org/]<br />
Foresight <strong>Linux</strong> 2.5.0: Foresight<strong>Linux</strong>verwendetdasRolling-Release-<br />
Modell, nach dem sich die Distribution fortlaufend aktualisiert. Neu:<br />
AktuelleDesktopumgebungenmitGnome2.32.1,KDE4.6.1undXfce4.8.<br />
AlsKernelkommtdieVersion2.6.35.11zumEinsatzLizenz: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/Program-<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 />
»devtodev« 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 DOSDateimanagers<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 />
Casesensitiven 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 MultiFileModus 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 VirtualisierungsLö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 VirtualboxInstallation<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 VDIDatei<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 InPlaceModifikation<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 VDIDateien und hilft damit Anwendern,<br />
die keinen Zugriff auf eine VirtualboxInstallation<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 DNSZonen 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 />
DNSServer 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 DNSAnfragen 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 />
DNSPaket, 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 DNSServer weiter,<br />
der diese dann beantwortet.<br />
Aus Sicherheitsgründen läuft Adsuck in<br />
einer ChrootUmgebung mit den Rechten<br />
eines unprivilegierten Benutzers. Über<br />
Parameter legt der Nutzer eine IPAdresse<br />
und einen Port fest, auf dem Adsuck<br />
eingehende Verbindungen erwartet. Die<br />
Blacklist und den DNSServer 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 DNSEbene. 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 Adhoc<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 TimeoutWert,<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 XchainkeysKonfiguration 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 />
Tuxliest<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 immerdannauf,wenngrößereMengenanDaten<br />
zu transferieren sind. Größere Datenmengen<br />
–alsotypischerweisemehrDaten,alsineine<br />
sogenanntePage(4096Byte)passen–verteilensichnämlichimHauptspeicherhäufigüber<br />
verschiedenephysischeAdressen.<br />
Scatter-Gather-Listenfassendiesephysischen<br />
AdressenineinerDatenstrukturzusammen,sodassdieTransferfunktionen–etwadasSchreibenderDatenaufdieFestplatte–ineinemZug<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 />
korrekteBezeichnung,denndiegrundlegende<br />
Datenstruktur ist ein Array vom Typ »struct<br />
scatterlist«.JedesElementeinessolchenFelds<br />
repräsentiert ein zusammenhängendes FragmentimSpeicher,dasdurcheinePage-Adresse,<br />
denStartoffsetinnerhalbderSpeicherseitesowie<br />
die Länge der dort abgelegten Daten (in<br />
Bytes)gekennzeichnetist.<br />
Ein derartiges Feld kann der Programmierer<br />
entwederdynamischwährendderLaufzeitallozieren<br />
und initialisieren oder dies statisch<br />
durchdenCompilererledigenlassen.Imletzteren<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()«zumAufruf–jenachdem,obdieAdressederDatenals<br />
virtuelleoderalsPage-Adressevorliegt.Wurde<br />
dasScatter-Gather-Feldper»sg_alloc_table()«<br />
angelegt, gibt es »sg_free_table()« nach Gebrauchwiederfrei.<br />
NebendeninTabelle2aufgeführtenFunktionen<br />
gibt es noch eine Reihe weiterer, die insbe-<br />
sonderedieAbarbeitungeinerScatter-Gather-<br />
Listevereinfachen.
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(PseudoRandom<br />
NummerGenerator),kernel<br />
randomnumbergenerator,<br />
randomnumbergenerator,<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 />
intsg_alloc_table(structsg_table*table,unsignedintnents,<br />
gfp_tgfp_mask)<br />
ReserviertundinitialisierteineScatter-Gather-Listemit»nents«Feldern.»gfp_mask«<br />
gibtdenKontextan,indemdieFunktionabläuft(User-,Kernel-oderInterrupt-Kontext),»table«enthältnachdemAufrufdieAdressederListe.<br />
voidsg_init_table(structscatterlist*sg,unsignedintnents)<br />
voidsg_init_one(structscatterlist*sg,constvoid*buf,unsignedintlength)<br />
staticinlinevoidsg_set_page(structscatterlist*sg,struct<br />
page*page,unsignedintlen,unsignedintoffset)<br />
staticinlinevoidsg_set_buf(structscatterlist*sg,const<br />
void*buf,unsignedintbuflen)<br />
staticinlinevoid*sg_virt(structscatterlist*sg)<br />
Kurzbeschreibung<br />
InitialisiertdieListe»sg«,die»nents«Einträgehat.<br />
InitialisiertdieListe»sg«(dieauseinemeinzigenListenelementbesteht)undbelegt<br />
siemitderAdressedesSpeicherbereichs»buf«undderLänge»length«vor.<br />
InitialisiertdasListenelement»sg«mitderSeitenadresse»page«,derLänge»len«<br />
unddemOffset»offset«innerhalbderSeite.<br />
InitialisiertdasListenelement»sg«mitdervirtuellenAdresse»buf«undderLänge<br />
»buflen«.<br />
GibtdievirtuelleAdressedesListenelements»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,PadlockSecurityEngine:<br />
[http://de.wikipedia.org/wiki/PadLock]<br />
[2]Wikipedia,AESinstructionset:[http://en.<br />
wikipedia.org/wiki/AES_instruction_set]<br />
[3]Wikipedia,Kryptographie:[http://de.<br />
wikipedia.org/wiki/Kryptografie]<br />
[4]HerbertXu,„ScatterlistCryptographic<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,ProfessoranderHochschuleNiederrhein,<br />
sindseitdenAnfängenvon<strong>Linux</strong>FansvonOpen<br />
Source.MittlerweileistdiedritteAuflageihres<br />
Buches„<strong>Linux</strong>Treiberentwickeln“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 35<br />
48565 Steinfurt<br />
Tel.: 02552 638755<br />
Fax: 02552 638757<br />
Weitere Informationen unter www.ost.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