22.11.2013 Aufrufe

Der Aufbruch - Medialinx

Der Aufbruch - Medialinx

Der Aufbruch - Medialinx

MEHR ANZEIGEN
WENIGER ANZEIGEN

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

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

06/13<br />

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

Dynamische Webinhalte<br />

archivieren<br />

Eigene und fremde Sites aus rechtlichen<br />

und historischen Gründen retten S. 46<br />

Tmux steuern<br />

Praktisch: Perl-Skript holt<br />

Terminal-Multiplexer-Konfigu<br />

ra tion zurück S. 88<br />

Wörter zählen<br />

Eine vermeintlich einfache<br />

Auf gabe, um die Effizienz<br />

von C++11 zu belegen S. 84<br />

<strong>Der</strong> <strong>Aufbruch</strong><br />

Die ARM-Architektur und Linux<br />

auf aussichtsreicher Mission<br />

■ Was Linuxer über ARM-Prozessoren<br />

wissen sollte S. 23<br />

■ Raspberry-Pi-Images bauen und<br />

emulieren S. 30<br />

■ Rausgepickt: Günstige Platinen<br />

oberhalb der Raspberry-Pi-Klasse S. 32<br />

■ Stromsparer: ARM drücken in den Server S. 36<br />

■ Alternativen zum Android-Einerlei auf<br />

Smartphones und Tablet S. 40<br />

■ Snoopy: Gewitzter Begleiter zum Verlängern<br />

der Kommandozeilen-Historie S. 57<br />

■ Alles anders: Bind 10 stellt Nameserver-<br />

Admins vor Herausforderungen S. 58<br />

Bloggerszene darf offenbar aufatmen: Leistungsschutzrecht trifft doch nur Suchmaschinen S. 66<br />

www.linux-magazin.de<br />

Deutschland Österreich Schweiz Benelux Spanien Italien<br />

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

4 192587 306401 06


Not to Miss at ISC:<br />

NEW Industry track NEW Distinguished speakers series |<br />

Human Brain Project | The largest HPC exhibition in Europe |<br />

TOP500 awarding<br />

Tutorials June 16, 2013<br />

@ Full and half-day tutorials<br />

@ Cover a broad range of HPC areas of interest<br />

Exhibition June 17 – 19, 2013<br />

@ With almost 170 exhibitors from research institutions and industries<br />

representing supercomputing, storage and networking, ISC’13 will<br />

stand out as the largest HPC exhibition in Europe in 2013.<br />

The 2013 Keynotes<br />

@<br />

Future Challenges of Large-Scale Computing<br />

Prof. Dr. Bill Dally, Willard R. and Inez Kerr Bell Professor,<br />

Stanford University & Chief Scientist and SVP of Research, NVIDIA<br />

@ Moore’s Law in the Year 2020<br />

Stephen S. Pawlowski, Senior Fellow, Chief Technology Officer for the<br />

Datacenter & Connected Systems Group (DCSG) & General Manager<br />

for the Architecture Group & DCSG Pathfinding, Intel<br />

@ HPC Achievement & Impact 2013<br />

Prof. Dr. Thomas Sterling, Professor, School of Informatics & Computing<br />

and Chief Scientist & Associate Director, CREST, Indiana University<br />

@<br />

Fooling the Masses with Performance Results:<br />

Old Classics & Some New Ideas<br />

Prof. Dr. Gerhard Wellein, Head of High Performance<br />

Computing Group, Erlangen Regional Computing Center<br />

Top 10 Reasons to Attend ISC’13<br />

@ A great networking event<br />

@ Unmatched access to thought leaders<br />

@ Relevant and practical information<br />

@ Source of inspiration for new ideas and new ventures<br />

@ Sessions organized into new dynamic formats<br />

@ The latest information on the TOP500 systems<br />

@ Your next customer could be here<br />

@ Meet with the specialists who can help solve your problems<br />

@ Gain insight to help advance your career<br />

@ Leipzig is the better Berlin<br />

Conference June 17 – 20, 2013<br />

Conference Highlights<br />

@ State of the Art in Petascale Applications<br />

@ Four-Day Research Track<br />

@ Parallel Programming Models and Tools<br />

@ Analysis of Big Data: Hard Problems for HPC<br />

@ Petascale Computing in the Cloud?<br />

@ HPC Centers Subject to Change<br />

@ Challenges for HPC<br />

@ Panel: Long-Term Investments into Parallel Programming<br />

@ Publication of the 41 st TOP500 list<br />

@ ISC Think Tank series on Big Data<br />

@ HPC in Asia Session<br />

@ Analyst Crossfire<br />

NEW The Industry Track June 18 – 19, 2013<br />

@ The goal of the Industry Track is to help commercial firms make informed<br />

decisions about acquiring and managing HPC systems.<br />

Contributed Sessions<br />

@ Research Papers & Posters<br />

@ Birds-of-a-Feather Sessions (BoFs)<br />

Vendor Sessions<br />

Platinum Sponsors<br />

Partner<br />

Gold Sponsors<br />

Silver Sponsors<br />

For more details,<br />

please visit:<br />

www.isc13.org


Einfach nur abhauen<br />

Login 06/2013<br />

Editorial<br />

Deutschlands führende Rolle beim Bewältigen der europäischen Schuldenkrise<br />

verändert die öffentliche Wahrnehmung in vermeintlichen Detailfragen. Die Kanzlerin<br />

macht auf internationalem Parkett eine gute Figur, wenn es um große Fragen<br />

geht wie: Sollen wir auf Zypern den Stöpsel unter Auflagen nicht ziehen, obwohl<br />

die Schulden dann nicht im Meer versinken?<br />

Während die TV-Anstalten in Brüssel filmen, bleiben in Berlin ein paar Dinge nahezu<br />

unbeobachtet. Die Novellierung des Telekommunikationsgesetzes gehört<br />

dazu, und davon soll nun wenigstens hier die Rede sein. Den Bundestag hat die<br />

Gesetzesnovelle schon passiert, bei der anstehenden Abstimmung in der Länderkammer<br />

erwartet niemand ernsthaft, das es anders wird.<br />

Seit das Bundesverfassungsgericht die Vorratsdatenspeicherung gekippt hatte,<br />

Jan Kleinert, Chefredakteur<br />

sind Innenpolitiker und Ermittlungsbehörden bemüht, wieder Zugriff auf die Telefonie-<br />

und Internetdaten von tatsächlichen oder vermeintlichen Rechtsverletzern<br />

zu kommen. <strong>Der</strong> jetzt auf den Weg gebrachte Text erfüllt genau diese Funktion. Im Kern geht es um die Regelung<br />

der so genannten Bestandsdatenabfrage, nach der Provider Sicherheitsbehörden und Geheimdiensten die<br />

Stammdaten ihrer Kunden herausgeben müssen, also Adress- und Kontoinformationen, sowie die per Verkehrsdatenanalyse<br />

zuordnete IP-Adresse. Entgegen den ursprünglichen Vorgaben des Bundesverfassungsgerichts<br />

beschränkt sich die Stammdatenabfrage nicht auf Fälle konkreter Gefahr oder auf schwere Straftaten, sondern<br />

wird zum Ermitteln selbst geringfügiger Ordnungswidrigkeiten erlaubt.<br />

Darüber hinaus verlangt das Telekommunikationsgesetzes von den Providern PINs, PUKs und Mail- oder Cloud-<br />

Passwörter herauszugeben, unterstellt dies aber wenigsten dem Richtervorbehalt. Gleichwohl: Hat ein Richter<br />

anhand der Angaben einer Behörde mal die Genehmigung erteilt, wird der Verdächtige in Gänze gläsern – schon<br />

allein deshalb, weil fast jeder Internetdienst mit seinen Kunden per Mail kommunziert und die meisten Smartphones<br />

ihre Daten mit Cloud-ähnlichen Diensten abgleich.<br />

Die Vorratsdatenspeicherung durch die Hintertür ist für die polizeilich Praxis natürlich super, und die Innenpolitiker<br />

geben diesem Ansinnen nach. Um es mit Heinrich Heine zu sagen: „Das ist schön bei den Deutschen: Keiner<br />

ist so verrückt, dass er nicht einen noch Verrückteren fände, der ihn versteht.“<br />

Wenn die Schnüffel-Novelle in Kraft ist, werden die Sicherheitsbehörden alles daran setzen, sie gleich positiv zu<br />

besetzen: Ganz sicher wird sich ein hinreichend abscheulicher Verbrecher finden, den zu überführen ohne das<br />

neue Gesetz nie, nie, nie gelungen wäre. Das legitimiert den Eingriff in die vertrauliche Kommunikation aller im<br />

Nachhinein moralisch. Kritiker kriegen den bekannten Schlüsselsatz serviert: Wer sich nichts zu schulden kommen<br />

lässt, hat auch nichts zu befürchten.<br />

<strong>Der</strong> Preis dafür hat der normale telekommunizierende Bürger zu zahlen. Um es zum x-ten Male zu sagen: Menschen,<br />

die sich beobachtet wähnen, ändern ihre Art sich mitzuteilen. Sie ist dahin, die Unbefangenheit, in einer<br />

E-Mail an einen Freund zu schreiben: „Wegen des Wohnungskaufs und der Steuer, da muss doch was zu optimieren<br />

sein.“ oder „Die sind zu doof, ’ne Bombe zu finden.“ Eigentlich so, wie in der DDR kein Mensch in ein Telefon<br />

gesagt hätte: „Du, manchmal möchte ich einfach nur abhauen.“<br />

Dass der Arbeitskreis Vorratsdatenspeicherung, die Gesellschaft für Informatik, die Internetprovider und die<br />

kleinen Oppositionsparteien dagegen sind, wen stört’s?! Bleibt, wie so häufig, nur ein neues Verfassungsgerichtsurteil.<br />

Mal schauen, auf welchem Parkett die Kanzlerin dann gerade wieder steht..<br />

www.linux-magazin.de<br />

3


Inhalt<br />

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

4<br />

Zwar hunderte millionenfach in Geräten des Alltags bewährt, kam das erfolgreiche Gespann<br />

ARM-CPU und Linux für die meisten PC-Benutzer auf Intels Schatten nicht heraus. Erst durch<br />

die Präsens von Android-Geräten ändert sich die allgemeine Wahrnehmung – höchste Zeit für<br />

einen aktuellen Missionsbericht und einen Blick auf die nächstgelegenen Sterne.<br />

Aktuell<br />

Titelthema: <strong>Der</strong> <strong>Aufbruch</strong><br />

6 N ew s<br />

n Open Suse 12.3 erschienen<br />

n Hispalinux-User gegen Microsoft<br />

n Wayland-Forker fliegt aus IRC raus<br />

n GCC 4.8.0 erschienen<br />

21 Einführung<br />

Titel<br />

Die ARM-Architektur und Linux sind auf<br />

einer aussichtsreichen Mission.<br />

22 Prozessor-Know-how<br />

Klarer Aufbau, hohe Effizienz, niedrige<br />

Kos ten: ARM schreibt Computergeschichte.<br />

32 Einplatinen-Computer<br />

Vom Überraschungserfolg des Rasp berry<br />

profitieren die Konkurrenten nicht, leider.<br />

36 ARM in Servern<br />

Billiger, sparsamer und ausreichend<br />

leistungsfähig. Woher der Aufstieg der<br />

ARM-Server kommt.<br />

Gnome 3.8 bringt unter anderem eine überarbeitete<br />

Uhr-Anwendung mit.<br />

12 Zahlen & Trends<br />

n Nokia kämpft mit Patenten gegen VP8<br />

n Red Hat wächst weiter<br />

n China setzt auf Ubuntu<br />

Erfolgreiche britische Architektur der Moderne:<br />

Die ARM-Grundlagen.<br />

30 Pi-Images bauen<br />

Entwickler virtualisieren Raspberrys und<br />

kompilieren oder testen Software dann<br />

auf leistungsfähigerer Hardware.<br />

<strong>Der</strong> ARM-Server Moonshot von HP besteht aus<br />

vier Einschüben mit je bis zu 72 CPUs.<br />

40 Ohne Android<br />

Sailfish, Firefox, Tizen, Ubuntu for<br />

Smartphones als Ersatz für Android.<br />

Persona, Mozillas individuelle Einstellungsmöglichkeiten,<br />

werden ein verteiltes System.<br />

18 Zacks Kernel-News<br />

n Kernelbuild hängt weiter von Perl ab<br />

n Großreinemachen bei Hotplug-Code<br />

Stephen Rothwell erklärte auf der Mailingliste,<br />

was es mit »linux‐next« auf sich hat.<br />

Eigenbau: Raspberry-Images selbst gemacht.<br />

DELUG-DVD<br />

Jondo Live<br />

TOOL<br />

Spezialdistribution, um anonym<br />

und sicher im Internet unterwegs<br />

zu sein<br />

Virtual Appliance<br />

TOOL<br />

TOOL<br />

Linux macht Schule: UCS@School<br />

zum Ausprobieren<br />

TOOL<br />

Auf Berührung ausgelegt ist Ubuntu Touch, das<br />

Canonical auf die Nexus-Reihe bringen will.<br />

Details zu DVD-<br />

TOOL<br />

Inhalten auf S. 45<br />

Linux-Schnellkurs<br />

für Administratoren (300 Seiten)<br />

Kostenloses E-Book, das regulär<br />

33 Euro kostet<br />

Cebit-Highlights<br />

Die besten Vorträge vom Open-<br />

Source-Forum 2013, Teil 2


06/2013 06/2013<br />

Inhalt<br />

46 Dauerlösung<br />

Dokumente der Zeitgeschichte sind<br />

flüchtiger als Stein, Pergament oder<br />

Papier. Doch Archivierungstools helfen<br />

gegen das Vergessen.<br />

66 Grund zu klagen<br />

Weiche Tatbestände, Schranken und der<br />

Unterschied zwischen Textschnipseln,<br />

und Zitaten: Das Leistungsschutzrecht<br />

beschäftigt auch weiterhin die Gerichte.<br />

88 Magische Fenster<br />

Statt die Fenster seiner Entwicklungsumgebung<br />

stets aufs Neue zurecht zu<br />

zupfen, lässt Perlmeister Schilli die<br />

Tmux-Config von Skripten erstellen.<br />

www.linux-magazin.de<br />

5<br />

Software<br />

Sysadmin<br />

Know-how<br />

45<br />

Einführung<br />

Auf der DELUG-DVD: Johndonym, ARM- und<br />

Schul-Images, ein E-Book und Cebit-Videos.<br />

57 Einführung<br />

Titel<br />

Aus dem Alltag eines Sysadmin: Charly<br />

ist auf den Hund gekommen.<br />

76 Kern-Technik - Folge 68<br />

Kernel- und Treiberprogrammierung mit<br />

dem Linux-Kernel: ARM-Device-Trees.<br />

46 Bitparade<br />

Titel<br />

Drei Langzeitarchivierungstools: Httrack,<br />

Netarchive Suite und Web Curator Tool<br />

58 Neuer Nameservice<br />

Titel<br />

Die zehnte Ausgabe von Bind.<br />

Die bestückte Raspberry-Pi-Platine als<br />

preiswertes Sprungbrett in die ARM-Technik.<br />

Das Web Curator Tool überzeugt mit seiner<br />

aufgeräumten Benutzeroberfläche.<br />

Vieles geht, aber noch lange nicht alles, was<br />

der Admin im Unternehmen braucht: Bind 10.<br />

Programmieren<br />

52 UCS@school<br />

Titel<br />

Univentions Managementsoftware macht<br />

Schule in Bildungseinrichtungen.<br />

Forum<br />

66 Recht<br />

Warum das überarbeitete Leistungsschutz<br />

recht kein großer Wurf ist.<br />

84 C++11 - Folge 10<br />

Titel<br />

Beim Zählen von Wörtern zeigt sich, wie<br />

sich eine Sprache zur Verarbeitung von<br />

Text eignet.<br />

Computerräume, Materialien, Drucker, Schüler,<br />

Lehrer verwalten in UCS@School.<br />

54 Tooltipps<br />

Kurz angetestet: Flowgrind, Plgen,<br />

Luksus, Auto Archive, Fido und Se.<br />

Luksus hilft beim Verschlüsseln von Daten.<br />

70 Tux liest<br />

Bücher über Map-<br />

Reduce und die<br />

Sprache Erlang.<br />

72 Leserbriefe<br />

Auf den Punkt gebracht.<br />

Service<br />

3 Editorial<br />

91 IT-Profimarkt<br />

91 Stellenanzeige<br />

95 Seminare<br />

96 Veranstaltungen<br />

96 Inserenten<br />

97 Impressum<br />

98 Vorschau<br />

Statistische Auswertung der englischen Version<br />

von „Grimms Märchen“ im Projekt Gutenberg.<br />

88 Perl-Snapshot<br />

Titel<br />

Automatisch multitasken an der Shell:<br />

Ein Perl-Skript konfiguriert Tmux.<br />

Ein Tmux-Window mit Editor, Testsuite und einer<br />

Datei - dank Perl automatisch vorkonfiguriert.


Aktuell<br />

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

6<br />

News<br />

Blink: Chromium forkt Webkit-Kern<br />

Das Chromium-Projekt kündigt<br />

an, auf Webkit-Basis eine<br />

eigene Engine namens Blink<br />

zu entwickeln. Bislang verwendet<br />

Chromium nur Webcore,<br />

den Kern von Webkit.<br />

<strong>Der</strong> Fork sei laut Software Engineer<br />

Adam Barth nötig geworden,<br />

weil Googles Browser<br />

eine andere Multiprozess-Architektur<br />

verwende als andere<br />

Webkit-Browser. Das habe zu<br />

einer Komplexität des Codes<br />

geführt, die schnelle Fortschritte<br />

erschwere.<br />

Die Entwickler konzentrieren<br />

sich nun auf interne Architekturänderungen<br />

und räumen<br />

die Codebasis auf. So planen<br />

sie zunächst, 4,5 Millionen<br />

Zeilen Code zu entsorgen.<br />

Dabei werde man auch mit<br />

anderen Browserherstellern<br />

kooperieren, um die Kompatibilität<br />

zu bewahren.<br />

Operas Bruce Lawson hat bereits<br />

angekündigt, dass auch<br />

Opera zukünftig die neue Engine<br />

verwenden möchte. Wer<br />

Blink testen will, kann sich<br />

den Code über die Projektseite<br />

[http://​www.​chromium.​org/​<br />

​blink] besorgen.<br />

n<br />

Die Abbildung zeigt, wie das Rendern zwischen Chromium und Webkit funktioniert.<br />

Laut Googles Software Engineer Adam Barth ist der Code aber zu komplex.<br />

Codename Grizzly<br />

Die neueste Open-Stack-Release<br />

trägt den Projektnamen<br />

Grizzly. Neu ist eine Abstraktion<br />

namens Cells, die mehrere<br />

Knoten einer Cloud zu einer<br />

Einheit zusammenfasst, die<br />

sich einfacher verwalten lässt.<br />

Auch die No-DB-Architektur,<br />

welche die Verwaltung von einer<br />

zentralen Datenbank entkoppelt,<br />

soll die Skalierbarkeit<br />

verbessern.<br />

Die Netzwerkkomponente<br />

von Open Stack erlaubt nun<br />

den Einsatz vieler Software-<br />

Defined-Networking-Technologien,<br />

beispielsweise Open<br />

Vswitch, Cisco UCS/​Nexus,<br />

Linux Bridge, Nicira und Open<br />

Flow. Durch das Verteilen von<br />

L3/​L4-Switching und DHCP-<br />

Diensten auf mehrere Knoten<br />

sollen die Netzwerkdienste<br />

zuverlässiger funktionieren<br />

und gut skalieren. n<br />

Go 1.1 optimiert<br />

Die Betaversion der Programmiersprache<br />

Go 1.1 bringt<br />

einige Verbesserungen hinsichtlich<br />

der Performance<br />

und Zuverlässigkeit mit.<br />

Andrew Gerrand, einer der<br />

Kernentwickler von Googles<br />

Programmiersprache, stellte<br />

die Version in der Google-<br />

Gruppe Golang-nuts vor. Sie<br />

bringe Go-Programmierern<br />

eine ganze Reihe kleiner Verbesserungen,<br />

die jedoch die<br />

Rückwärtskompatibilität nicht<br />

gefährden, die das Kompatibilitätsversprechen<br />

von Go 1<br />

garantiert. Neu ist beispielsweise,<br />

dass der Go-Compiler<br />

eine Division durch 0 bereits<br />

beim Übersetzen erkennt und<br />

meldet. Bisher stürzten solche<br />

Programme erst während der<br />

Laufzeit ab.<br />

Eine wichtige Änderung mit<br />

größerer Bedeutung für Go-<br />

Entwickler ist eine neu eingeführte<br />

Prüfung für Race<br />

Conditions, die unter anderem<br />

entstehen, wenn mehrere<br />

Threads (bei Go heißen sie<br />

Goroutines) auf gemeinsame<br />

Daten zugreifen. Ein mit dem<br />

passenden Schalter kompiliertes<br />

Programm überwacht<br />

solche Zugriffe und meldet<br />

dem Programmierer Probleme.<br />

<strong>Der</strong>art instrumentierte<br />

Programme laufen demnach<br />

bis zu 20-mal langsamer und<br />

verbrauchen bis zu 10-mal so<br />

viel Speicher wie ihre ungeschützten<br />

Pendants.<br />

Für eine produktive Codeproduktion<br />

ist laut Mitteilung<br />

der Go-Compiler so verbessert,<br />

dass mit ihm erzeugte<br />

Programme bis zu 40 Prozent<br />

schneller laufen. Auch haben<br />

die Entwickler Teile des Garbage<br />

Collectors parallelisiert<br />

und die Map-Datenstruktur<br />

neu implementiert. Zudem erzeugt<br />

der Compiler nun mehr<br />

Inline-Code. Alle Änderungen<br />

listen die Release Notes [http://​<br />

​tip.​golang.​org/​doc/​go1.​1] auf. n


Open Suse 12.3 erschienen<br />

Die neue Version der Distribution<br />

bringt den Linux-Kernel<br />

in Version 3.7 mit, unterstützt<br />

UEFI und taucht KDE 4.10 in<br />

ein elegantes Schwarz. <strong>Der</strong><br />

Start mit aktiviertem Secure<br />

Boot gilt als experimentell.<br />

Um den Bootvorgang von<br />

Open Suse kümmert sich Systemd<br />

195, der das alte Sys-V-<br />

Init ablöst und nun auch für<br />

die Stromsparmechanismen<br />

zuständig zeichnet. Daher aktiviert<br />

das Schließen des Notebook-Deckels<br />

selbst dann den<br />

Schlafmodus, wenn niemand<br />

angemeldet ist.<br />

Die Journaling-Funktionen<br />

von Systemd protokollieren<br />

die Ausgaben der gestarteten<br />

Dienste. Administratoren dürften<br />

sich über ein grafisches<br />

Konfigurationstool für Systemd<br />

freuen, das Open Suse<br />

im Paket »systemd‐ui« verstaut.<br />

Mittels »systemd‐delta«<br />

stellen sie zudem fest, ob und<br />

wie sich Konfigurationsdateien<br />

seit der Installation verändert<br />

haben.<br />

Die Paketverwaltung Zypper<br />

zeigt in der Version 1.8.9 den<br />

Installationsfortschritt an,<br />

das zugehörige Packagekit-<br />

Backend wurde komplett neu<br />

geschrieben. Apper soll jetzt<br />

flotter zu Werke gehen und in<br />

seiner aktuellen Version 0.8<br />

Zypper und Yast endlich nicht<br />

mehr blockieren. Außerdem<br />

zeigt Apper auch Pakete an,<br />

die als nicht vertrauenswürdig<br />

gelten, und lädt auf Wunsch<br />

automatisch im Voraus Pakete<br />

herunter. KDE-Anwender<br />

stoßen zudem auf ein neues<br />

Plasmoid, das ebenfalls Aktualisierungen<br />

initiiert.<br />

Open Suse 12.3 lässt dem Anwender<br />

die Wahl zwischen<br />

den Desktops KDE 4.10, Gnome<br />

3.6, XFCE, LXDE sowie<br />

E17. Als Fenstermanager stehen<br />

Awesome und Sawfish<br />

bereit. Das Büropaket Libre<br />

Office ist noch in Version 3.6<br />

an Bord, die aktuelle Version 4<br />

kann der Anwender aber wohl<br />

problemlos per Hand nachinstallieren.<br />

Den Konkurrenten<br />

Calligra bietet Open Suse 12.3<br />

in der Version 2.5 an.<br />

Die Datenbank Maria DB<br />

ersetzt die bislang genutzte<br />

MySQL, PostgreSQL liegt in<br />

Version 9.2 bei. Open Suse<br />

12.3 stellt erstmals Pakete für<br />

Open Stack bereit. Freunde<br />

virtueller Maschinen dürfen<br />

zu Virtualbox 4.2 sowie KVM<br />

1.3.0 greifen, was vor allem<br />

die USB-Unterstützung verbessert.<br />

Zudem hat das Open-Suse-<br />

Projekt Softwarekomponenten<br />

aktualisiert, darunter den<br />

Audio-Editor Audacity (2.0.2),<br />

Blender (2.64), die Fotoverwaltung<br />

Digikam (3.0) sowie<br />

den X-Server (1.13.1). Pulse<br />

Audio springt auf die Version<br />

3 und unterstützt nun Bluetooth<br />

als Audioquelle und<br />

bietet virtuellen Surround<br />

Sound. Dank Btr-FS 0.1.1 können<br />

auch normale Anwender<br />

Schnappschüsse des Dateisystems<br />

aufnehmen.<br />

Die Gnu Compiler Collection<br />

ist in Version 4.7.2 von der<br />

Partie, Python jedoch weiterhin<br />

in Version 2.7.3 – Python<br />

3.3 holen Entwickler<br />

per Hand nach. Das Ende<br />

letzten Jahres veröffentlichte<br />

Qt 5 glänzt durch Abwesenheit,<br />

Open Suse bringt nur<br />

die ältere Version 4.8.4 mit.<br />

Alle weiteren Neuerungen<br />

listet die offizielle Ankündigung<br />

[https://​de.​opensuse.​org/​<br />

​Ank%C3%BCndigung] auf.<br />

Neben der DVD und den<br />

Livesystemen mit KDE und<br />

Gnome stellt das Projekt ein<br />

570 MByte großes XFCE-Live-<br />

Image bereit, das als Rettungssystem<br />

dienen soll. Auch eine<br />

Fassung für 64-Bit-ARM-Systeme<br />

soll es geben (AArch64),<br />

ein Erscheinungstermin hierfür<br />

steht noch nicht fest. n<br />

KDE kommt im neuen Open Suse 12.3 in einem dunkleren Look daher.<br />

News 06/2013<br />

Aktuell<br />

www.linux-magazin.de<br />

7


Aktuell<br />

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

8<br />

Midori 0.5.0 mit kleinen Verbesserungen<br />

Unter anderem bietet der<br />

leichtgewichtige Browser einen<br />

Cookie Security Manager,<br />

neue Alias-URLs sowie ein<br />

paar Änderungen unter der<br />

Haube, die sich aber laut Entwickler<br />

erst in den nächsten<br />

Versionen auswirken.<br />

Mit dem Cookie Security Manager<br />

akzeptieren, verweigern<br />

und verwalten Benutzer<br />

Cookies. Anstelle der bislang<br />

sichtbaren Schnellwahl (Speed<br />

Dial) dürfen Anwender nun<br />

selbst festlegen, welche Seiten<br />

in neuen Tabs erscheinen.<br />

Speed Dial lässt sich zudem<br />

als Homepage nutzen, von der<br />

Kommandozeile aufrufen oder<br />

über ein Lesezeichen aktivieren.<br />

Eigens dazu gibt es neue<br />

Alias-URLs wie »about:dial«<br />

und »about:home«.<br />

Außerdem haben die Midori-<br />

Macher den Kommandozeilenparameter<br />

»‐e« beziehungsweise<br />

»‐‐execute« aufgebohrt.<br />

Mit ihm lassen sich Einstellungen<br />

beim Start oder zur<br />

Laufzeit aktualisieren sowie<br />

Erweiterungen ein- und ausschalten.<br />

Midori akzeptiert<br />

nun jeden Proxyserver-Typ,<br />

den Libproxy unterstützt.<br />

Den Server inklusive Protokoll<br />

legen Nutzer über eine Curlähnliche<br />

Syntax fest.<br />

Die Entwickler arbeiten zudem<br />

an einer Unterstützung<br />

für Webkit 2, die jedoch den<br />

Feature Freeze verpasst hat.<br />

Daneben wollen sie das Laden<br />

von Erweiterungen verbessern,<br />

diese sollen auch im<br />

privaten und im App-Modus<br />

bereitstehen. Schon jetzt lassen<br />

sich die Mausgesten frei<br />

konfigurieren, einzig ein GUI<br />

fehlt noch. Einen Überblick<br />

der Neuerungen liefert der<br />

Blogbeitrag [http://​twotoasts.​<br />

​de/​index.​php/​2013/​04/]. n<br />

Wysiwyg-Editor für Bootstrap unter MIT-Lizenz<br />

Einen schnörkellosen Wysiwyg-Editor als Jquery-Plugin haben die Entwickler<br />

unter die MIT-Lizenz gestellt.<br />

Als die Entwickler von Mind-<br />

Mup [http://​mindmup.​com] nach<br />

einem Wysiwyg-Editor suchten,<br />

stießen sie zwar auf zahlreiche<br />

gute HTML-5-Varianten,<br />

doch verwendeten diese<br />

meist Funktionen, die Jquery<br />

und das Bootstrap-Framework<br />

bereits von Hause aus<br />

beherrschten. Zudem brachten<br />

die Editoren einigen Code<br />

mit, den die Entwickler nicht<br />

benötigten. Also bastelten sie<br />

kurzerhand ein weniger als 5<br />

KByte großes Jquery-Plugin<br />

für Bootstrap, das bislang den<br />

Namen Bootstrap-wysiwyg<br />

trägt und seit Neuestem unter<br />

einer MIT-Lizenz steht.<br />

Zu den Funktionen des Rich<br />

Content Editors, der sich<br />

an Cleditor und Bootstrapwysihtml5<br />

orientiert, gehören<br />

eine Drag & Drop-Funktion<br />

sowie ein integrierter Uploader<br />

für Bilder. <strong>Der</strong> Basiscode<br />

findet dabei in einem DIV-<br />

Container Platz, die Gestaltung<br />

des Editors bleibt ganz<br />

dem Entwickler überlassen.<br />

<strong>Der</strong> Code spricht nur die Standardfeatures<br />

der Browser an,<br />

Toolbar und Keyboard lassen<br />

sich aber so einrichten, dass<br />

sie alle unterstützten Browserkommandos<br />

verstehen.<br />

Ein Nachteil kann sein, dass<br />

das Plugin einen aktuellen<br />

Browser (Chrome 26, Firefox<br />

19, Safari 6) voraussetzt.<br />

Wer Bootstrap-wysiwyg testen<br />

will, findet den Code<br />

samt einer Einführung in<br />

die Benutzung auf Github<br />

unter [http://​mindmup.​github.​io/​<br />

​bootstrap‐wysiwyg/]. n<br />

Linux-Nutzer gehen rechtlich gegen Microsoft vor<br />

Die spanische Hispalinux, eine<br />

Vereinigung von Linux-Anwendern,<br />

hat laut der Nachrichtenagentur<br />

Reuters gegen<br />

Microsoft Beschwerde bei der<br />

Europäischen Kommission<br />

eingereicht. Grund sei das<br />

Aussperren von Anwendern<br />

durch UEFI/​Secure Boot.<br />

Laut Hispalinux sei UEFI/​Secure<br />

Boot „faktisch ein technisches<br />

Gefängnis für Betriebssysteme<br />

[…], das Microsofts<br />

Windows-Plattform noch<br />

weniger neutral als ohnehin<br />

schon macht“. Dem Rechtsanwalt<br />

und Hispalinux-Vorsitzenden<br />

Jose Maria Lancho<br />

zufolge verhindere dies den<br />

Wettbewerb und sei schlecht<br />

für alle Benutzer und die europäische<br />

Software-Industrie.<br />

Microsoft beruft sich gegenüber<br />

Reuters darauf, dass<br />

UEFI ein Industriestandard<br />

sei. Man sei gerne bereit, weitere<br />

Fragen zu beantworten,<br />

aber auch zuversichtlich, dass<br />

Microsofts Vorgehen gesetzeskonform<br />

sei und dabei helfen<br />

würde, die Sicherheit bei den<br />

Kunden zu erhöhen. Ein Sprecher<br />

des EU-Wettbewerbskommissars,<br />

Joaquín Almunia, äußerte<br />

sich gegenüber Reuters<br />

nicht zum Thema.<br />

Hispalinux ist mit 8000 Mitgliedern<br />

die größte spanische<br />

Vereinigung von Linux-Anwendern.<br />

Die Beschwerde umfasst<br />

insgesamt 14 Seiten und<br />

wurde der Europäischen Kommission<br />

offiziell am Dienstag<br />

um 9 Uhr übergeben. n


Wayland-Forker fliegt aus IRC und Mailingliste<br />

Als der Wayland-Entwickler<br />

Scott Moreau seinen Plan<br />

öffentlich machte, Wayland<br />

für experimentelle Zwecke<br />

zu forken, um für den Desktopmanager<br />

die von Compiz<br />

bekannten Effekte zu entwickeln,<br />

kam es zum Streit. Die<br />

Wayland-Entwickler sahen in<br />

diesem Fall keinen Bedarf für<br />

einen Fork und verbannten<br />

Moreau nach einigem Hin und<br />

Her aus der Mailingliste und<br />

dem IRC-Channel.<br />

Moreau hatte sich zunächst<br />

beschwert, dass Waylands<br />

Entwickler die Früchte seiner<br />

einjährigen Arbeit ignorieren<br />

würden und Kristian Høgsberg<br />

offenbar nicht vorhabe,<br />

Wayland/​Weston in einen<br />

Desktop zu verwandeln. Daher<br />

wolle er seine Änderungen<br />

in einem eigenen Zweig<br />

weiterentwickeln.<br />

Wenn er Wayland mit seinen<br />

Next-Branches auf Github<br />

forken wolle, müsse er den<br />

Fork auch so nennen, warf<br />

Høgsberg dem Entwickler daraufhin<br />

vor. <strong>Der</strong> kündigte auf<br />

der Mailingliste postwendend<br />

einen Fork von Wayland und<br />

Weston an, denen er die Namen<br />

Northfield und Norwood<br />

verpasste. Ihn wolle er zum<br />

Experimentieren verwenden,<br />

um die Compiz-Effekte (Desktop<br />

Cube, wabernde Fenster)<br />

für Wayland nachzubauen.<br />

Auf der Wayland-Mailingliste<br />

zeigte man sich von Moreaus<br />

Vorgehen wenig begeistert.<br />

Die Entwickler wiesen vor allem<br />

darauf hin, dass ein Fork<br />

von Wayland unnötig sei und<br />

Moreau wohl vielmehr an<br />

Weston arbeiten wolle. Tatsächlich<br />

sei Waylands Codebasis<br />

extra dafür ausgelegt,<br />

extern erweitert zu werden.<br />

Dafür genüge es, einen eigenen<br />

Tree für ein Shell-Plugin<br />

anzulegen und ein eigenes<br />

High-Level-Protokoll für die<br />

Effekte zu entwerfen.<br />

<strong>Der</strong> Code könne also problemlos<br />

außerhalb von Waylands<br />

Codebase existieren. Doch<br />

Moreau bestand darauf, dass<br />

ein Fork für seine Ziele unumgänglich<br />

sei, es aber kein<br />

feindlicher Fork sein solle.<br />

Schließlich wurde es Kristian<br />

Høgsberg zu bunt und er<br />

verbannte Moreau kurzerhand<br />

aus dem Wayland-IRC-<br />

Channel und warf ihn von der<br />

Mailingliste.<br />

Glaubt man den IRC-Protokollen<br />

des Wayland-Entwicklers<br />

Daniel Stone, war Moreau<br />

nicht sehr beliebt im Projekt,<br />

weil er andere Entwickler in<br />

der Vergangenheit beschimpft<br />

hatte. In seinem Projekt-Fork<br />

würde er nun keine Wayland-<br />

Entwickler mehr verschrecken,<br />

eine Win-win-Situation,<br />

so Stones Resümee. n<br />

News 06/2013<br />

Aktuell<br />

www.linux-magazin.de<br />

9<br />

Die heute führenden Spezialisten stammen oft aus der "Freie Software-Szene" und schulen seit<br />

Jahren im Linuxhotel. Das erklärt die Breite und Qualität unseres Schulungsangebotes:<br />

AJAX * Amavis * Android * Angriffstechniken * Apache * Asterisk * BaseX * BayesianAnalysis * Bind * C/C++ * Cassandra *<br />

CiviCRM * Cloud * Cluster * ClusterFS * CouchDB * CSS3 * CUPS * Debian * DHCP * DNS * DNSSEC * Echtzeit Linux *<br />

Embedded Linux * eXist-db * Faces * FAI * Firewall * Forensik * FreeBSD * FreeRADIUS * GeoExt * Git * Grails * GRASS *<br />

Groovy * hadoop * Hochverfügbarkeit * HTML5 * Hudson * iSCSI * IPv6 * ITSM * Java * JavaScript * Jenkins * Kernel * KVM<br />

* LDAP * LibreOffice * Linux * LPI * m23 * MacOSX * MapFish * Mapserver * Maven * Mikrocontroller * MVS/380 * MySQL *<br />

Nagios * Node.js * OpenBSD * OpenLayers * OpenOffice * openQRM * OpenVPN * OPSI * OSGi * OTRS * Perl * PHP *<br />

Postfix * PostgreSQL * Puppet * Python * QuantumGIS * R * Rails * RedHat * Routing * Request-Tracker RT * Ruby * Samba<br />

* SAN * Scala * Scribus * Shell * Sicherheit * SNMP * Spacewalk * Spamfilter * SQL * Struts * Subversion * SuSE * TCP/IP *<br />

Tomcat * Treiber * TYPO3 * Ubuntu * UML * Unix * Univention * Virenfilter * Virtualisierung * VoIP * WebGIS * Webservices *<br />

Windows Autoinstall * Windowsintegration * x2go * xen * XML * Xpath * Xquery * z/OS * Zabbix * Zend<br />

Fast 100% der Teilnehmer empfehlen uns weiter. Siehe www.linuxhotel.de<br />

Ja, wir geben es zu und haben überhaupt kein schlechtes Gewissen dabei: Unsere Schulungen machen auch Spaß ;-)


Aktuell<br />

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

10<br />

Kurznachrichten<br />

Shotwell 0.14: <strong>Der</strong> Bildbetrachter hilft beim intelligenten Verwalten von<br />

großen Fotosammlungen. Neu: Shotwell stellt sich nun klüger an, wenn<br />

eine Digitalkamera Jpeg/​Raw-Pärchen anbietet. Die Software informiert<br />

den Nutzer zudem, wenn sie bestimmte Fotos nicht importiert. Beim<br />

Facebook-Export nutzt Shotwell das neue Graph-API, auch wenn der<br />

Support noch nicht perfekt funktioniert. Lizenz: LGPLv2.1 [http://​www.​<br />

​yorba.​org/​projects/​shotwell/]<br />

Chrome 26: Googles bekannter Browser, der auf der Open-Source-Variante<br />

Chromium basiert. Neu: Eine neue Rechtschreibkorrektur versucht die<br />

richtige Schreibung eines Wortes anhand des Kontextes zu ermitteln – bisher<br />

klappt das nur für Englisch. Für Linux-Nutzer ist ein asynchron arbeitender<br />

DNS-Resolver an Bord, der die Namensauflösung über Prefetching<br />

beschleunigt. Zudem erlaubt Chrome 26 Web-RTC P2P Data Channels.<br />

Lizenz: Freeware [http://​www.​google.​com/​chrome]<br />

Firefox 20: Open-Source-Browser aus dem Hause Mozilla. Neu: Ein generalüberholter<br />

Downloadmanager ist nun als Symbol in die Navigations-<br />

Symbolleiste integriert. Den privaten Modus darf der Anwender neuerdings<br />

für jedes Fenster separat aktivieren. Abgestürzte Plugins meldet<br />

Firefox, um sie neu zu initialisieren, über eine Click-to-Play-Funktion<br />

lassen sich Plugins zudem gezielt für Webseiten erlauben. Über das neue<br />

Web-RTC-API »getUserMedia« erhalten Webseiten Zugriff auf Mikrofon<br />

und Webcam, was künftig Videochats erlauben soll. Lizenz: Mozilla Public<br />

License [http://​www.​mozilla.​org/​de/​firefox/]<br />

Open Elec 3.0: Open Elec ist ein XBMC-basiertes Mediacenter, das in Version<br />

3.0 das neue XBMC 12.1 unterstützt. Neu: Open Elec nutzt die neue<br />

Audio-Engine von XMBC 12.1, die DTS-MA und Dolby True-HD beherrscht.<br />

Das Mediacenter läuft auf dem Raspberry Pi und unterstützt angeblich als<br />

einzige XBMC-Distribution XVBA für AMD-GPUs. Open Elec kommt auf allen<br />

Plattformen besser mit Apples Airplay zurecht, zudem haben die Entwickler<br />

am UPnP-Sharing gearbeitet. Lizenz: GPLv2 [http://​openelec.​tv]<br />

Upstart 1.8: Die Init- und Systemd-Alternative Upstart hilft unter anderem<br />

Ubuntu beim Systemstart. Neu: Dank der »upstart‐file‐bridge« reagieren<br />

Jobs jetzt auf Datei-Ereignisse. Zudem liegt mit dem »upstart‐monitor«<br />

ein grafisches Werkzeug bei, das die von Upstart ausgesendeten Ereignisse<br />

anzeigt und die einzelnen Jobs dabei beobachtet, wie sie ihre<br />

Zustände ändern. Lizenz: GPLv2 [http://​upstart.​ubuntu.​com]<br />

Gparted 0.15.0: Ein beliebtes Partitionierungswerkzeug mit grafischer<br />

Oberfläche. Neu: Gparted zeigt jetzt live die Ausgaben der von ihm<br />

gestarteten Programme an, was eine Fehlerbehebung vereinfacht. Die<br />

Entwickler konnten zudem die Verschieben-Operation um das Doppelte<br />

beschleunigen. Die Länge einer Partitionsbezeichnung hängt in der neuen<br />

Version vom darauf befindlichen Dateisystem ab, beim Start wählt Gparted<br />

automatisch den unbenutzten Plattenplatz aus. Nicht zuletzt gibt<br />

es zwei neue Tastenkürzel: [Einfg] erstellt eine neue Partition, während<br />

[Strg]+[Eingabe] alle ausstehenden Operationen umsetzt. Lizenz: GPLv2<br />

[http://​gparted.​sourceforge.​net]<br />

Mongo DB 2.4: Beliebte No-SQL-Datenbank, die Daten in Form von Json-<br />

Dateien ablegt. Neu: Eine textbasierte Suche durchforstet den Datenbestand<br />

von Mongo DB. Den existierenden 2-D-Index für Berechnungen auf<br />

einer euklidischen Ebene haben die Entwickler um einen 2-D-Sphere-Index<br />

erweitert. <strong>Der</strong> ermöglicht es, Ortsdaten als Geo-Json-Objekte anzulegen,<br />

und stützt sich auf das World Geodetic System 1984. Ein neuer Hashed<br />

Index enthält Werte für Hash-basierte Shard-Keys. Lizenz: AGPLv3.0/​<br />

Apache-Lizenz [http://​www.​mongodb.​org]<br />

Gnome 3.8 freigegeben<br />

Gnome ersetzt den alten Fallback-<br />

durch einen neuen Classic-Modus.<br />

In diesem zaubern<br />

Erweiterungen das noch aus<br />

Gnome 2 bekannte Menü an<br />

den oberen Bildschirmrand –<br />

aber (noch) nicht mit vollem<br />

Leistungsumfang.<br />

Da im Classic-Modus weiterhin<br />

die Gnome-Shell im<br />

Hintergrund werkelt, verlangt<br />

Gnome 3.8 in jedem Fall eine<br />

3-D-Grafikkarte. Um es auch<br />

auf Systemen zu nutzen, auf<br />

denen kein Open-GL-Treiber<br />

zur Verfügung steht, lassen<br />

viele Distributionen die Grafik<br />

via Llvmpipe vom Hauptprozessor<br />

berechnen, was<br />

jedoch mehr Leistung erfordert.<br />

<strong>Der</strong> alte Fallback-Modus<br />

stand schon länger auf der<br />

Abschussliste der Entwickler,<br />

die den Code nur ungern doppelt<br />

warten wollen.<br />

Gnome 3.8 bringt unter anderem eine überarbeitete Uhr-Anwendung mit.<br />

In der neuen Version haben<br />

die Entwickler auch die Aktivitätenübersicht<br />

leicht modifiziert<br />

und einen Reiter mit<br />

besonders häufig genutzten<br />

Anwendungen ergänzt. Die<br />

Darstellung aller Anwendungen<br />

zeigt auch Ordner als<br />

Symbole an, wodurch der<br />

Nutzer Dateien leichter findet.<br />

Die verbesserte Suchfunktion<br />

sammelt die Suchergebnisse<br />

von allen Anwendungen ein<br />

und präsentiert diese übersichtlich<br />

sortiert.<br />

In den Privatsphären-Einstellungen<br />

legen Nutzer fest,<br />

wer Zugriff auf die Inhalte<br />

des Computers erhält, welche<br />

persönlichen Informationen<br />

auf dem Bildschirm erscheinen<br />

und welche Funktionen<br />

die eigenen Aktivitäten protokollieren<br />

dürfen. Im neuen<br />

Modul für Systembenachrichtigungen<br />

bestimmt der Anwender,<br />

welche Programme<br />

Nachrichten anzeigen dürfen<br />

und welche nicht.<br />

Neu in Gnome 3.8 ist die<br />

Uhr-Anwendung, die Uhren<br />

für verschiedene Weltzeiten,<br />

einen Wecker, eine Stoppuhr<br />

sowie einen Timer anbietet.<br />

Das Programm Dokumente<br />

bringt eine verbesserte Benutzeroberfläche<br />

mit, der<br />

Browser Epiphany verwendet<br />

Webkit 2 und die Verwaltung<br />

für Onlinekonten ist nun auch<br />

mit Owncloud bekannt. Nicht<br />

zuletzt laufen Animationen<br />

weicher ab, was sich bei Übergängen<br />

und Fenstergrößenänderungen<br />

als wichtig erweist.<br />

Alle wesentlichen Neuerungen<br />

stellen die Release Notes<br />

[https://​help.​gnome.​org/​misc/​<br />

​release‐notes/​3.​8/] vor. n


GCC 4.8.0 erschienen<br />

Die Entwickler haben die Gnu<br />

Compiler Collection zumindest<br />

in einigen Teilen in der<br />

Programmiersprache C++<br />

implementiert. Wer die GCC<br />

selbst übersetzt, muss folglich<br />

ab sofort einen C++-Compiler<br />

bereithalten, der mit C++<br />

2003 umgehen kann.<br />

Ein neuer Address Sanitizer<br />

spürt Speicherfehler auf, darunter<br />

Heap-, Stack- und globale<br />

Buffer Overflows. Unter<br />

Linux arbeitet er jedoch nur<br />

auf den Architekturen x86-64,<br />

x86, Power-PC und Power-<br />

PC64. <strong>Der</strong> Thread Sanitizer<br />

soll wiederum auf x86-64-<br />

Systemen Race Conditions in<br />

Threads aufdecken.<br />

GCC ermittelt jetzt mit einem<br />

aggressiveren Verfahren, wie<br />

häufig Programme Schleifen<br />

maximal durchlaufen, was bei<br />

einigen Programmen wie dem<br />

Benchmark Spec CPU 2006<br />

464.h264ref zu Fehlern führt.<br />

In solchen Fällen schalten<br />

Pro grammierer die aggressive<br />

Analyse über »‐fno‐aggressive<br />

‐loop‐optimizations« ab.<br />

Bei Debug-Informationen im<br />

Dwarf-Format kommt jetzt<br />

der Dwarf-4-Standard zum<br />

Einsatz. Das Format unterstützen<br />

GDB 7.5, Valgrind<br />

3.8.0 und Elfutils 0.154 von<br />

Haus aus, zum alten Dwarf<br />

3 oder Dwarf 2 bringen einen<br />

die Schalter »‐gdwarf‐2« respektive<br />

»‐gdwarf‐3«. Die neue<br />

Optimierungsstufe »‐Og« führt<br />

eher kleinere Optimierungen<br />

durch: Die Programme sollen<br />

damit beim Debugging eine<br />

bessere Leistung zeigen.<br />

Über den Parameter »‐ftree<br />

‐partial‐pre« lässt sich die Partial<br />

Redundancy Elimination<br />

(PRE) steuern, die redundante<br />

Ausdrücke beseitigt. Die Optimierungsstufe<br />

»‐O3« aktiviert<br />

die nun etwas aggressivere<br />

PRE automatisch.<br />

<strong>Der</strong> C++-Compiler unterstützt<br />

weitere Teile des<br />

C++11-Standards. Dazu zählen<br />

das Schlüsselwort »thread<br />

_local«, die Attributsyntax<br />

und vererbte Konstruktoren.<br />

GCC 4.8.0 generiert jetzt auch<br />

Code für 64-Bit-ARM-Prozessoren<br />

(Aarch64), Cortex-A53<br />

und ‐A57 sowie die Aarch32-<br />

Erweiterung ARMv8. Die Entwickler<br />

haben auch die Code-<br />

Erzeugung für Cortex-A7 und<br />

‐A15 weiter optimiert.<br />

Bei den x86-Prozessoren<br />

kennt die neue GCC-Version<br />

jetzt die Befehle neuerer Intel-<br />

Prozessoren und bietet spezielle<br />

Optimierungen für AMDs<br />

Steamroller- und Jaguar-Prozessoren.<br />

Weitere Änderungen in den<br />

Details listet das Changelog<br />

unter [http://​gcc.​gnu.​org/​gcc‐4.​8/​<br />

​changes.​html] auf. (Tim Schürmann/​jcb/​jk/​kki/​mfe/​ofr)<br />

n<br />

News 06/2013<br />

Aktuell<br />

www.linux-magazin.de<br />

11<br />

Open Source<br />

mobilisiert.<br />

Zum Ticketshop<br />

Zum Programm<br />

22. + 23.05.2013<br />

OPEN-IT SUMMIT:<br />

Open for Business & Start-ups!<br />

24. + 25.05.2013<br />

2. RootCamp by netways<br />

22. –25. Mai 2013 in Berlin<br />

EUROPE‘S LEADING<br />

OPEN SOURCE EVENT<br />

Keynote-Speaker, Kernel-Entwickler, Arbeitgeber,<br />

Trendsetter und Neueinsteiger geben sich vom<br />

22. – 25. Mai 2013 auf dem 19. LinuxTag in Berlin<br />

wieder die Hand.<br />

22. Mai 2013: Track – Embedded Linux for Industrial Applications<br />

u. a. mit folgenden Speakern:<br />

• Andreas Klinger, Trainer und Entwickler für Embedded-Linux<br />

• Carsten Emde, Geschäftsführer Open Source Automation<br />

Development Lab (OSADL)<br />

• Jan Altenberg, Linutronix GmbH.<br />

24. Mai 2013: OpenStack ® inaugural DACH Day 2013<br />

Speaker sind:<br />

• Jonathan Bryce, Executive Director, OpenStack Foundation<br />

• Kurt Garloff, VP Engineering Cloud Services, Deutsche Telekom AG<br />

• Monty Taylor, Hewlett Packard (HP)<br />

• Bernhard Wiedemann & Sascha Peilicke, SUSE<br />

• Muharem Hrnjadovic, Rackspace Cloud<br />

• Dr. Wolfgang Schulze, Inktank<br />

• Tobias Riedel, Netways<br />

• Dr. Udo Seidel, Amadeus Data Processing<br />

LinuxTag 2013 – where .com meets .org<br />

www.linuxtag.org<br />

Hauptmedienpartner:<br />

Partner:<br />

Sponsoring Partner:<br />

MAGAZIN


Aktuell<br />

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

12<br />

Zahlen & Trends<br />

Mozillas Persona wird verteiltes System<br />

Persona nennt sich ein Authentifizierungsdienst<br />

aus<br />

dem Firefox-Stall. Wer das<br />

bequeme Anmeldeverfahren<br />

über Persona bislang verwenden<br />

wollte, musste sich dafür<br />

allerdings bei Mozilla registrieren.<br />

Ab sofort darf jeder<br />

selbst einen Persona-Dienst<br />

anbieten.<br />

Mit dem von Mozilla entwickelten<br />

Dienst müssen sich<br />

Benutzer nicht immer wieder<br />

neu mit ihrem Benutzernamen<br />

und Passwort bei Internetdiensten<br />

anmelden. Stattdessen<br />

genügt es, auf den Anmeldeseiten<br />

eine bei Persona<br />

hinterlegte E-Mail-Adresse<br />

preiszugeben.<br />

Mozilla vertritt die Auffassung,<br />

dass der User selbst die<br />

Kontrolle beim Identifizieren<br />

behalten solle. Seine Profildaten<br />

sollten nicht ohne sein<br />

Wissen zwischen Diensten im<br />

sozialen Netzwerk getauscht<br />

werden. Den Persona-Providern<br />

bleibt es daher freigestellt,<br />

die Identität der Benutzer<br />

zu prüfen: Passwortabfragen<br />

sind ebenso möglich wie<br />

das Einlesen von Fingerabdrücken<br />

oder eine Identifikation<br />

über Retina-Scans.<br />

Wer selbst als Persona-Provider<br />

auftreten möchte, muss<br />

lediglich das Persona-Identity-<br />

Provider-Protokoll im plementieren.<br />

Die notwendigen<br />

Schritte hat Mozilla eigens auf<br />

[https://​developer.​mozilla.​org/​en<br />

‐US/​docs/​Persona/​Identity_Provider<br />

_Overview] zusammengefasst.<br />

Zusätzlich steht der Programmcode<br />

eines Beispiel-<br />

Providers bereit.<br />

Für Benutzer läuft das Persona-Verfahren<br />

mehrstufig<br />

ab: Beim Anmelden bei einem<br />

Mozillas Webseite preist den Authentifizierungsdienst Persona an.<br />

Dienst öffnet sich, ähnlich wie<br />

bei einer Paypal-Zahlung, ein<br />

neues Fenster. In diesem authentifiziert<br />

sich der Benutzer,<br />

indem er eine E-Mail-Adresse<br />

auswählt, mit der er sich beim<br />

Dienst anmelden möchte. Persona<br />

bestätigt dem Dienst die<br />

Identität des Benutzers, der<br />

nun Zugang erhält.<br />

<strong>Der</strong>zeit erlauben jedoch erst<br />

wenige Dienste die Anmeldung<br />

über das neue Verfahren:<br />

Mozilla führt als bekannteste<br />

Beispiele die Webseiten von<br />

The Times Crossword [http://​<br />

​crossword.​thetimes.​co.​uk], Trovebox<br />

[https://​current.​trovebox.​com]<br />

und Voost [https://​voo.​st] auf.<br />

Mozillas Persona-Dienst prüft<br />

die Identität seiner Benutzer<br />

bisher nur über einen Bestätigungslink,<br />

den der Benutzer<br />

anklicken muss, sowie – später<br />

bei der Anmeldung – über<br />

ein Passwort. <br />

n<br />

Nokia fährt Patente gegen VP8 auf<br />

Nachdem Google kürzlich VP8<br />

und VP9 von den Ansprüchen<br />

der MPEG LA freikaufte, sah<br />

es so aus, als gäbe es nun<br />

einen qualitativ hochwertigen<br />

Videocodec, für den keine<br />

Lizenzkosten anfallen. Nun<br />

aber setzt Nokia der Idee mit<br />

Hilfe von Softwarepatenten<br />

ein vorläufiges Ende.<br />

<strong>Der</strong> finnische Konzern bringt<br />

diese gegen das RFC 6386 ins<br />

Spiel, in welchem Google seinen<br />

Codec spezifiziert. Nokia<br />

hat gegen dieses RFC bei der<br />

IETF eine IPR Disclosure eingereicht<br />

und schob eine Liste<br />

mit Patenten hinterher, die<br />

VP8 angeblich verletze. Einige<br />

der Patente erscheinen<br />

mehrfach in der Liste, weil<br />

sie für mehrere Länder gelten,<br />

andere wurden bisher noch<br />

nicht offiziell erteilt. Generell<br />

sind solche Einsprüche möglich,<br />

kamen aber in der Geschichte<br />

der IETF bisher nicht<br />

auffallend häufig vor.<br />

Nokia wolle mit diesem Schritt<br />

verhindern, dass ein Unternehmen<br />

seine proprietäre<br />

Technik durchdrücke, da es<br />

doch mit H.264 bereits einen<br />

weitverbreiteten Standard<br />

gebe. Weil das Unternehmen<br />

zugleich das Erteilen von<br />

kostenlosen oder FRAND-<br />

Lizenzen (Fair Reasonable<br />

and Non-Discriminatory) für<br />

seine Technologien verweigert,<br />

kann VP8 nun vorerst<br />

kein IETF-Standard werden.<br />

<strong>Der</strong> Konkurrenz-Codec H.264,<br />

den Nokia präferiert, wurde<br />

zwar in einem offenen Verfahren<br />

entwickelt, ist jedoch<br />

nicht lizenzkostenfrei, weil<br />

die MPEG LA zumindest für<br />

den kommerziellen Einsatz<br />

des Codec Gebühren erhebt.<br />

Nachdem Theora bereits vor<br />

einiger Zeit über Vorwürfe<br />

von Lizenzverletzungen stolperte,<br />

diskutieren nun also<br />

auch im Fall von VP8 einmal<br />

mehr die Anwälte.<br />

n


Leap Motion Controller mit Linux-Geste<br />

<strong>Der</strong> nur wenige Zentimeter<br />

große Leap Motion Controller<br />

erfasst Handgesten im Raum<br />

vor dem Monitor. Das ermöglicht<br />

eine intuitive Steuerung<br />

des Rechners jetzt auch unter<br />

Linux.<br />

Den Controller schließt der<br />

Anwender per USB an seinen<br />

Computer an und platziert<br />

den kleinen silbernen Stick<br />

direkt vor dem Monitor. Dort<br />

erfasst er alle Handgesten und<br />

übersetzt sie in Bewegungen<br />

des Mauszeigers. So lässt sich<br />

etwa per Wischgeste die Internetseite<br />

im Browser weiterscrollen<br />

oder mit einem Stift<br />

in der Hand malen. Ein Video<br />

demonstriert die Möglichkeiten<br />

des Controllers.<br />

Ähnlich wie die Kinect nutzt<br />

der Leap Motion Controller<br />

zwei Kameras und drei Infrarot-LEDs,<br />

die hier zur Zimmerdecke<br />

schauen. Handbewegungen<br />

erkennen sie in bis zu<br />

einem Meter Entfernung.<br />

Das SDK unterstützt mit der<br />

jetzt erschienenen Version<br />

0.7.6 eingeschränkt auch<br />

Linux. Die Entwickler kennzeichnen<br />

diese Unterstützung<br />

noch als experimentell<br />

(Beta) und bitten Anwender<br />

um Rückmeldungen. Support<br />

gibt es aktuell nur für Ubuntu<br />

12.04 und höher, das zugehörige<br />

Debian-Paket steht für<br />

registrierte Entwickler bereit.<br />

<strong>Der</strong> Controller selbst kommt<br />

im Mai für rund 80 US-Dollar<br />

auf den Markt, Vorbestellungen<br />

nimmt der Hersteller auf<br />

seiner Homepage [https://​www.​<br />

​leapmotion.​com] entgegen. n<br />

<strong>Der</strong> Leap Motion Controller ermöglicht es nun auch unter Linux, Rechner mit<br />

Hilfe einfacher Handbewegungen zu steuern.<br />

Zahlen & Trends 06/2013<br />

Aktuell<br />

www.linux-magazin.de<br />

13<br />

Red Hat steigert Umsatz und Gewinn<br />

Firefox und die Third-Party-Cookies<br />

Im abgelaufenen vierten<br />

Quar tal seines Geschäftsjahres<br />

2012 stieg der Umsatz<br />

des Unternehmens um 51<br />

Millionen, der Nettogewinn<br />

um 7 Millionen US-Dollar.<br />

<strong>Der</strong> gesamte Umsatz beläuft<br />

sich nach Angaben von Red<br />

Hat [http://​investors.​redhat.​com/​<br />

​results.​cfm] auf 348 Millionen,<br />

der Nettogewinn auf 43 Millionen<br />

US-Dollar. Die Einnahmen<br />

stiegen damit um 17 Prozent,<br />

der Nettogewinn gar um<br />

19 Prozent.<br />

<strong>Der</strong> Großteil der Einnahmen<br />

stammt aus (Software-)Abonnements.<br />

Red Hat nahm dafür<br />

303 Millionen US-Dollar ein,<br />

19 Prozent mehr als im vorigen<br />

Geschäftsquartal. Training<br />

und Services sorgten für weitere<br />

45 Millionen US-Dollar,<br />

was einem Wachstum von 7<br />

Prozent entspricht.<br />

Präsident und Chief Executive<br />

Officer James Whitehurst wies<br />

bei dieser Gelegenheit darauf<br />

hin, dass die Zahl der abgeschlossenen<br />

Großaufträge im<br />

vierten Quartal einen neuen<br />

Rekord darstelle.<br />

Dennoch blieben die von Red<br />

Hat veröffentlichten Zahlen<br />

etwas hinter den Erwartungen<br />

zurück, Analysten hatten<br />

einen Umsatz von 349,9 Millionen<br />

US-Dollar vorausgesagt.<br />

Entsprechend fiel nach der<br />

Bekanntgabe der Zahlen der<br />

Aktienkurs. Gedrückt haben<br />

das Ergebnis laut Charlie Peters,<br />

Chief Financial Officer<br />

bei Red Hat, drei Aufkäufe<br />

in der zweiten Jahreshälfte<br />

sowie starke Investitionen in<br />

den Bereichen Storage, Cloud<br />

Computing und Big Data.<br />

Auch die Daten für das komplette<br />

Geschäftsjahr teilte Red<br />

Hat mit. Demnach machte das<br />

Unternehmen einen Umsatz<br />

von einer Milliarde US-Dollar,<br />

der Nettogewinn kletterte um<br />

3 Prozent auf 150 Millionen<br />

US-Dollar. Eine Prognose für<br />

das laufende Geschäftsjahr<br />

gab Red Hat nicht ab. n<br />

Third-Party-Cookies kommen<br />

nicht von dem Betreiber einer<br />

Webseite selbst, sondern von<br />

Drittanbietern, die ahnungslose<br />

Nutzer damit nicht selten<br />

über mehrere Sites hinweg<br />

verfolgen. Nun reagiert<br />

Mozillas Firefox auf diese Art<br />

von Cookies.<br />

In dem Blogeintrag [https://​<br />

​blog.​mozilla.​org/​privacy/​2013/​02/​<br />

​25/] stellt Mozillas Alex Fowler<br />

das neue Feature vor. Es<br />

steckt bislang nur in einer<br />

Nightly-Variante von Firefox,<br />

die sich vor allem an Entwickler<br />

richtet, könnte aber demnächst<br />

in die stabile Ausgabe<br />

einziehen. Demnach muss der<br />

Anwender künftig direkt mit<br />

dem Unternehmen interagieren,<br />

das ein Cookie setzen<br />

will. Man habe sich dabei von<br />

Safaris Sicherheitseinstellungen<br />

inspirieren lassen, nach<br />

denen der Browser Tracking<br />

Cookies ablehnt.<br />

Nötig geworden sei die Option<br />

laut Fowler, weil immer mehr<br />

Unternehmen solche Cookies<br />

verwenden, um die Anwender<br />

zu verfolgen. Wie das neue<br />

Feature wirkt, zeigte Fowler<br />

auch gleich. Beim morgendlichen<br />

Besuch seiner vier Lieblingsseiten<br />

fing er sich bislang<br />

unglaubliche 385 (!) Cookies<br />

aus erster und dritter Hand<br />

ein, nun seien es laut Fowler<br />

„nur noch“ 75. Mehr als<br />

100 Unternehmen, die Fowler<br />

nie besucht hat, setzten also<br />

Tracking Cookies in seinem<br />

Browser.<br />

Beobachter wie das IT-Research-Unternehmen<br />

Ovum<br />

beschwören bereits eine Gefahr<br />

für die Internet-Ökonomie<br />

herauf, denn ohne solche<br />

Cookies wären Daten über das<br />

Nutzerverhalten nicht mehr<br />

so einfach zu erheben. Drittanbieter-Cookies<br />

kann auch<br />

der aktuelle Firefox bereits<br />

verbieten, die neuen Einstellungen<br />

gestalten den Umgang<br />

mit solchen Cookies nur ein<br />

wenig ausgefeilter. n


Aktuell<br />

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

14<br />

Bareos: Entwickler forken Bacula<br />

Mit Bareos [http://​www.​bareos.​<br />

​org] haben unzufriedene Entwickler<br />

einen Open-Source-<br />

Fork der Backuplösung Bacula<br />

ins Leben gerufen, der unter<br />

der AGPL steht.<br />

Nicht aufgenommene Patches<br />

einiger Entwickler und<br />

die Tatsache, dass neue Features<br />

hauptsächlich in die<br />

proprietäre Lösung Bacula<br />

Enterprise und nicht in die<br />

Community-Version geflossen<br />

sind, sorgten bereits 2010 für<br />

Unzufriedenheit bei einigen<br />

Bacula-Programmierern.<br />

Sie zogen die Konsequenz und<br />

starteten ein eigenes Projekt:<br />

Bareos (Backup Archiving Recovery<br />

Open Sourced) ist ein<br />

reiner Open-Source-Fork von<br />

Bacula und steht unter der<br />

AGPLv3. Eine gleichnamige<br />

Firma existiert seit Ende 2012,<br />

Bareos bietet eine Bandbreiten-Limitierung; der Client »ctex06« darf seine<br />

Daten mit einer Maximalgeschwindigkeit von 1024 KBit/​s über das Netz sichern.<br />

um die freie Backuplösung voranzutreiben<br />

und gemeinsam<br />

mit anderen Dienstleistern<br />

Support anzubieten.<br />

Bareos solle dabei stets unter<br />

einer freien Lizenz stehen:<br />

„Zwei Fassungen (eine<br />

Community- und eine Enterprise-Version)<br />

wie bei Bacula<br />

wird es nicht geben. Bareos<br />

ist und bleibt 100 Prozent<br />

AGPL“, erklärte Firmenmitgründer<br />

Philipp Storz im Gespräch.<br />

Anfang März erschien<br />

eine zweite Beta von Bareos<br />

12.4, die Version basiert auf<br />

Bacula 5.2. Das Projekt stellt<br />

Pakete für alle großen Linux-<br />

Distributionen sowie für Windows<br />

und Opsi bereit. <strong>Der</strong><br />

Code wartet in einem Github-<br />

Repository auf Downloads.<br />

Die Entwickler haben etliche<br />

neue Features implementiert,<br />

darunter eine Bandbreitenlimitierung,<br />

Verschlüsselung<br />

für LTO-Hardware und ein Set<br />

mit Standardeinstellungen,<br />

das die Konfiguration vereinfachen<br />

soll.<br />

Trotz des „Beta“ im Namen<br />

soll die aktuelle Version bereits<br />

stabil laufen und im produktiven<br />

Einsatz sein. Sehr<br />

bald wollen die Entwickler<br />

eine finale Version veröffentlichen.<br />

Hinweise zur Migration<br />

von Bacula zu Bareos,<br />

eine Quickstart-Anleitung sowie<br />

diverse Neuigkeiten zum<br />

Projekt finden Interessierte<br />

auf der Bareos-Homepage.<br />

Im Juni 2013 präsentiert Maik<br />

Außendorf das neue Projekt<br />

zudem auf der Secure Linux<br />

Admin Conference. n<br />

Ausblick auf Plasma 2 und Sessionk<br />

Rot-grüne Pläne<br />

KDE-Entwickler Sebastian<br />

Kügler hat erste Bewegtbilder<br />

des kommenden Plasma<br />

2 gezeigt, sein Kollege Daniel<br />

Nicoletti drückte die Startgeschwindigkeit<br />

von KDE auf<br />

nur noch 3 Sekunden.<br />

Wie Sebastian Kügler in einem<br />

Google-Plus-Beitrag erläutert,<br />

wird Plasma 2 auf dem KDE<br />

Framework 5 aufsetzen und<br />

die Elemente der Benutzeroberfläche<br />

in einem Open-<br />

GL-Scenegraph verwalten. Die<br />

Berechnung der Darstellung<br />

beziehungsweise die Zusammenstellung<br />

der Benutzeroberfläche<br />

erfolgt dabei komplett<br />

auf der Grafikkarte. Insbesondere<br />

die Desktopeffekte<br />

sollen so fließender ablaufen<br />

und auf mobilen Rechnern<br />

weniger Energie fressen.<br />

Laut Sebastian Kügler hätten<br />

die Entwickler die letzten<br />

Wochen damit verbracht,<br />

eine lauffähige Version der<br />

Plasma-2-Shell zu erstellen.<br />

Darüber hinaus habe man begonnen<br />

die QML-Importe der<br />

Plasma-Komponenten sowie<br />

weitere Add-ons zu portieren.<br />

Letztere ermöglichen etwa<br />

Drag & Drop oder das Laden<br />

von Icons.<br />

In einem Video zeigte Kügler<br />

ein Plasma-Widget, das unterschiedliche<br />

Grafikeffekte präsentiert<br />

– darunter etwa das<br />

bekannte wabernde Fenster.<br />

Auf dem Desktophintergrund<br />

fallen in dem Video zugleich<br />

animierte Blätter vom oberen<br />

Bildschirmrand herab, umgesetzt<br />

ist die Animation mit<br />

QML und Javascript.<br />

Um die Startgeschwindigkeit<br />

von KDE zu erhöhen, hat der<br />

Entwickler Daniel Nicoletti<br />

eine Komponente namens<br />

Sessionk entwickelt. Sie ersetzt<br />

im Wesentlichen den<br />

KSM-Server und wirft dabei<br />

gleich einige weitere Altlasten<br />

über Bord. Aus diesem<br />

Grund entfällt eine Zwangspause<br />

von 4 Sekunden, die<br />

der KDE-Startprozess derzeit<br />

noch einlegt.<br />

Wie die Videos in Nicolettis<br />

Blog nahelegen, ist mit Hilfe<br />

von Sessionk ein Start in 3<br />

Sekunden möglich – derzeit<br />

benötigt KDE noch mindestens<br />

10 Sekunden, wobei die<br />

verbesserte Startgeschwindigkeit<br />

nur für das Laden der<br />

Plasma-Oberfläche ohne weitere<br />

Widgets gilt.<br />

n<br />

Im ersten Entwurf des Koalitionsvertrags<br />

für Niedersachsen<br />

findet sich ein kurzer, aber für<br />

Linux bedeutender Vermerk:<br />

Open Source sei in allen öffentlichen<br />

Einrichtungen zu<br />

fördern, heißt es dort.<br />

Open Access, Open Source,<br />

Open Data: Diese in Koalitionsverträgen<br />

gewöhnlich<br />

selten verwendeten Begriffe<br />

tauchen gleich an mehreren<br />

Stellen auf, am prägnantesten<br />

wohl auf Seite 8. Dort heißt es:<br />

„Die rot-grüne Koalition wird<br />

den weitgehenden Einsatz<br />

von freier Software und Open<br />

Source in allen Behörden und<br />

Bildungseinrichtungen fördern.“<br />

Bleibt abzuwarten, ob<br />

und wie sich die vereinbarten<br />

Ziele auf die Regierungspraxis<br />

auswirken.<br />

n


Bücher für Macher<br />

China setzt auf Ubuntu<br />

Das chinesische Ministerium<br />

für Industrie und Informationstechnik<br />

hat eine Referenzarchitektur<br />

für Betriebssysteme<br />

ausgearbeitet, bei der<br />

Ubuntu die Basis bilden soll.<br />

Die zuständige Abteilung CSIP<br />

(China Software and Integrated<br />

Chip Promotions Centre)<br />

möchte damit ein „flexibles,<br />

offenes, weitverbreitetes und<br />

standardisiertes Betriebssystem<br />

anbieten“.<br />

Die Ankündigung ist Teil eines<br />

Fünfjahresplans der chinesischen<br />

Regierung, der vorsieht,<br />

Open-Source-Software zu fördern<br />

und das Wachstum des<br />

Open-Source-Ökosystems in<br />

China zu beschleunigen.<br />

Gleichzeitig gründen Canonical,<br />

CSIP und die chinesische<br />

National University of Defense<br />

Technology (NUDT) das<br />

CCN Open Source Innovation<br />

Joint Lab in Peking. In ihm<br />

sollen Mitarbeiter aus allen<br />

drei Organisationen die auf<br />

China ausgerichtete Ubuntu-<br />

Variante Ubuntu Kylin weiterentwickeln.<br />

Neben passenden Sprachpaketen<br />

soll Ubuntu Kylin<br />

insbesondere auch auf das<br />

Land zugeschnittene Anwendungen<br />

enthalten, darunter<br />

einen chinesischen Kalender<br />

und das von der Regierung<br />

geförderte Büropaket WPS,<br />

einem unübersehbaren Klon<br />

von MS Office. Daneben bindet<br />

Ubuntu Kylin chinesische<br />

Dienste ein, etwa das Verkaufsportal<br />

Taobao. n<br />

Docker unter Apache-2.0-Lizenz<br />

NEU<br />

Standardwerk<br />

Raspberry Pi für<br />

Einsteiger<br />

Matt Richardson,<br />

Shawn Wallace<br />

176 Seiten, 2013, 12,90 €<br />

ISBN 978-3-95561-147-7<br />

Die elektronische Welt<br />

mit Arduino entdecken<br />

Erik Bartmann<br />

704 Seiten, 2011, 34,90 €<br />

ISBN 978-3-89721-319-7<br />

Arduino<br />

Kochbuch<br />

Michael Margolis<br />

624 Seiten, 2012, 44,90 €<br />

ISBN 978-3-86899-353-0<br />

Dotcloud hat den Quellcode<br />

für seine Software Docker<br />

veröffentlicht und unter die<br />

Apache-2.0-Lizenz gestellt.<br />

Die Software ergänzt dabei<br />

LXC (Linux Containers), eine<br />

Virtualisierung auf Betriebssystemebene,<br />

und lässt Unix-<br />

Prozesse in einer Chroot-ähnlichen<br />

Umgebung mit jeweils<br />

eigenem Dateisystem laufen.<br />

Docker ermöglicht es, auf Prozessebene<br />

so genannte Standardcontainer<br />

anzulegen, die<br />

ein Programm und all seine<br />

abhängigen Komponenten<br />

kapseln, seien es Bibliotheken,<br />

Skripte, Konfigurationsoder<br />

Binärdateien.<br />

Die Container lassen sich auf<br />

andere Systeme migrieren und<br />

laufen in eigenen Root-Umgebungen<br />

isoliert voneinander.<br />

Systemressourcen weist der<br />

Admin einzeln zu. Zusätzlich<br />

verfügen die Standardcon tainer<br />

über ein isoliertes virtuelles<br />

Netzwerk mit eigenem<br />

Namespace, eigenen IP-Adressen<br />

und virtuellen Schnittstellen.<br />

Docker ist in Googles Programmiersprache<br />

Go programmiert<br />

und stattet die Container<br />

mit dem Overlay-Dateisystem<br />

AUFS aus.<br />

Wer Docker testen will, findet<br />

auf der Webseite [http://​www.​<br />

​docker.​io/​gettingstarted/] Hilfe<br />

bei den ersten Schritten sowie<br />

eine englischsprachige Dokumentation.<br />

<strong>Der</strong> Quellcode<br />

lässt sich aus einem Repository<br />

unter [http://​github.​com/​dotcloud/​<br />

​docker/] ziehen.<br />

Kurz nach der Docker-Ankündigung<br />

teilte Dotcloud mit,<br />

die hauseigene Sandbox als<br />

Produkt einstellen und in ein<br />

Open-Source-Projekt verwandeln<br />

zu wollen.<br />

n<br />

O’REILLY ®<br />

www.oreilly.de<br />

Make: Lego and<br />

Arduino Projects<br />

John Baichtal, Matthew<br />

Beckler & Adam Wolf<br />

326 Seiten, 2012, 29,00 €<br />

ISBN 978-1-4493-2106-2<br />

Diese und viele weitere Bücher zu Elek tronik,<br />

DIY und Making finden Sie unter:<br />

www.oreilly.de/make/


Aktuell<br />

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

16<br />

Ubuntu 13.04 soll ohne Wubi kommen<br />

Wubi, der Windows-Installer<br />

für Ubuntu, soll ab Version<br />

13.04 aus den Images fliegen.<br />

<strong>Der</strong> Grund: Wubi sei nicht nur<br />

fehlerhaft, sondern funktioniere<br />

auch nicht für Windows<br />

8. Konkret verweist Ubuntu-<br />

Entwickler Langasek auf zwei<br />

Bugs und empfiehlt auf der<br />

Entwickler-Mailingliste die<br />

Software zu entfernen.<br />

Ohnehin sei es bereits länger<br />

möglich, Ubuntu als Live-<br />

Version zu testen, man müsse<br />

also das Betriebssystem nicht<br />

über Wubi ausprobieren. Falls<br />

jemand die Missstände beheben<br />

wolle, solle er Patches an<br />

das Release-Team schicken.<br />

<strong>Der</strong> Installer ermöglichte es<br />

bisher, Ubuntu wie eine gewöhnliche<br />

Anwendung unter<br />

Windows zu installieren und<br />

nach einem Neustart zu booten<br />

– wobei das freie OS etwas<br />

langsamer läuft. Eingefleischten<br />

Windows-Nutzern kommt<br />

die Wubi-Installation oft entgegen,<br />

weil sie befürchten,<br />

Ubuntu könne beim Testen<br />

oder Installieren eine vorhandene<br />

Installation beschädigen.<br />

Allerdings traten in der<br />

Vergangenheit immer wieder<br />

Probleme mit Wubi auf, sodass<br />

die Release Notes gelegentlich<br />

vor dem Gebrauch<br />

der Software warnten. n<br />

Daseq setzt auf Opsview<br />

Das deutsche Unternehmen<br />

Daseq verkauft Open-Source-<br />

Sicherheitslösungen und Red-<br />

Hat-Schulungen und schließt<br />

nun eine Vertriebspartnerschaft<br />

mit Opsview, einem international<br />

agierenden Anbieter<br />

von Monitoring-Lösungen<br />

auf Basis von Nagios.<br />

Opsview [http://​www.​opsview.​<br />

​com] bietet mit einer modifizierten<br />

Nagios-Variante eine<br />

quelloffene Monitoring-Software<br />

an, von der es auch eine<br />

freie Variante gibt, die den Namen<br />

Opsview Core trägt.<br />

Daseq [http://​www.​daseq.​de] will<br />

seinen Kunden in Zukunft die<br />

Monitoring-Lösung von Opsview<br />

anbieten und so das eigene<br />

Portfolio an Produkten<br />

erweitern.<br />

Die Software Opsview versammelt<br />

in einem zentralen<br />

Dashboard Informationen zu<br />

Netzwerkgeräten, Serverhardware<br />

und den im Netzwerk<br />

vorgefundenen Betriebssystemen,<br />

die sich auf diesem<br />

Wege effizient überwachen<br />

lassen, sei es in der Cloud<br />

oder auf Serverfarmen. Bereits<br />

26 000 Nutzer in 167 Ländern<br />

würden Opsview einsetzen,<br />

erklärt Shane Close von Opsview,<br />

man freue sich nun<br />

über Unterstützung bei den<br />

vertrieblichen Aktivitäten. n<br />

Open Xchange möchte Google Docs Konkurrenz machen<br />

Die als Groupware-Anbieter bekannte Firma Open Xchange will Google Docs mit<br />

einer eigenen, Cloud-basierten Office-Lösung Konkurrenz machen.<br />

Die eigentlich durch ihre<br />

Group ware bekannte Firma<br />

Open Xchange [http://​www.​<br />

​open‐xchange.​com] veröffentlicht<br />

ein Büropaket für den<br />

Browser unter einer Open-<br />

Source-Lizenz. Auf den World<br />

Hosting Days in Rust hat das<br />

Unternehmen unter der Bezeichnung<br />

OX Documents<br />

eine eigene Cloud-Office-Suite<br />

angekündigt.<br />

Als erste Anwendung soll die<br />

Textverarbeitung OX Text erscheinen.<br />

Mit ihr öffnen und<br />

bearbeiten Anwender Dokumente<br />

aus Microsoft Word,<br />

Open und Libre Office direkt<br />

in ihrem Browser. OX Text<br />

erlaubt zudem, dass mehrere<br />

Nutzer an einem Dokument<br />

arbeiten – jedoch nicht gleichzeitig,<br />

sondern nur nacheinander.<br />

Die Änderungen zeigt<br />

OX Text bei allen Anwendern<br />

in Echtzeit an.<br />

Anders als etwa Google Docs<br />

verwendet OX Text kein eigenes<br />

Dateiformat, sondern<br />

bearbeitet direkt die geöffneten<br />

Word- oder Libre-Office-<br />

Dateien. Da die Textverarbeitung<br />

nur die Änderungen<br />

speichert, soll das Layout<br />

des Originaldokuments laut<br />

Open Xchange stets erhalten<br />

bleiben. Kann OX Text Formatierungen<br />

oder spezielle Elemente,<br />

etwa Word-Art-Kästen,<br />

nicht bearbeiten, übernimmt<br />

die Textverarbeitung diese<br />

einfach unverändert.<br />

Laut Open Xchange dürfen<br />

Anwender ihre Dokumente<br />

auch bei Netzwerkstörungen<br />

oder Verbindungsabbrüchen<br />

im Browser bearbeiten. Die<br />

Änderungen überträgt die<br />

Textverarbeitung nach dem<br />

nächsten Verbindungsaufbau<br />

wieder an den Server.<br />

OX Text steht der Dokumentenbetrachter<br />

OX Document<br />

Viewer zur Seite. Er öffnet<br />

neben Text- und PDF-Dateien<br />

auch Dokumente aus Tabellenkalkulations-<br />

und Präsentationsprogrammen<br />

im<br />

Browser, die Dateien muss der<br />

Anwender nicht erst herunterladen.<br />

Im Laufe des Jahres<br />

sollen noch die Tabellenkalkulation<br />

OX Spreadsheet sowie<br />

das Präsentationsprogramm<br />

OX Presentations die Textverarbeitung<br />

ergänzen.<br />

Das komplette Büropaket<br />

können Anwender als eigenständiges<br />

Produkt einsetzen<br />

oder es in die Groupware OX<br />

App Suite integrieren. An der<br />

Entwicklung von OX Documents<br />

sind auch einige ehemalige<br />

Open-Office-Entwickler<br />

beteiligt. OX Documents<br />

steht unter der GPLv2 sowie<br />

der nicht-kommerziellen CC<br />

BY-NC-SA 2.5. Zugleich bietet<br />

Open Xchange auch eine<br />

kommerzielle Office-Variante<br />

mit Support an, eine Testinstallation<br />

soll unter [http://​ox.​io/​<br />

​ox_text] folgen. (Heike Jurzik/<br />

Tim Schürmann/kki/mfe) n


1&1 DYNAMIC CLOUD SERVER<br />

ZAHLEN SIE NUR<br />

WAS SIE AUCH NUTZEN!<br />

0, 03 € *<br />

PRO STUNDE<br />

ab<br />

VOLLE KOSTENKONTROLLE<br />

■ NEU: Keine Einrichtungsgebühr!<br />

■ NEU: Kein Basispreis!<br />

■ NEU: Keine Mindestvertragslaufzeit!<br />

■ Für kurze Zeit: bis zu 30,– €<br />

Startguthaben!*<br />

■ Stundengenaue, leistungsbezogene<br />

Abrechnung!<br />

■ Unlimited Traffic, ohne Drosselung.<br />

■ Parallels ® Plesk Panel 11 inklusive,<br />

ohne Limitierung der Domainzahl.<br />

VOLLER ROOT-ZUGRIFF<br />

■ Komfort und Funktionsumfang eines<br />

Root-Servers, mit dedizierten Ressourcen.<br />

HÖCHSTE FLEXIBILITÄT<br />

■ vCore-Anzahl, Arbeits- und Festplattenspeicher<br />

unabhängig voneinander<br />

buchbar – für nur 0,01 € pro Stunde<br />

und Einheit!<br />

■ NEU: Bis zu 8 vCore und 32 GB RAM<br />

■ Per Mausklick bis zu 99 virtuelle<br />

Maschinen zubuchen – ohne Migration!<br />

AUSFALLSICHER<br />

■ Redundante Speicher- und Recheneinheiten<br />

schützen Ihren Cloud-Server automatisch<br />

vor Ausfällen.<br />

0 26 02 / 96 91<br />

0800 / 100 668<br />

1und1.info<br />

* 1&1 Cloud Server ohne monatliche Basiskosten. Performance Features für 0,01 €/Stunde und Einheit buchbar. Mindestabnahme je 1 Einheit vCore, Arbeitsspeicher, Festplattenspeicher<br />

(=0,03 €/Stunde). Persönliche Preiskalkulation unter hosting.1und1.de/cloud-server-confi g. Startguthaben wird ausschließlich mit der ersten Monatsrechnung verrechnet. Preise inkl. MwSt.


Aktuell<br />

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

18<br />

Zacks Kernel-News<br />

Perl-Abhängigkeit beim Kernelbuild<br />

Rob Landley hat kein Glück<br />

mit seinen Patches, die Perl<br />

als Abhängigkeit beim Bauen<br />

des Kernels entfernen sollen.<br />

Wie er erinnerte, hatten die<br />

Entwickler mit Linux 2.6.25<br />

einige Perl-Skripte in das<br />

Buildsystem eingeführt. Will<br />

also jemand Linux ab Version<br />

2.6.25 kompilieren, muss er<br />

Perl installieren – vor dieser<br />

Kernelversion war das nicht<br />

nötig. Robs Patches ersetzen<br />

nun die vorhandenen Perl-<br />

Skripte durch einfache Shellskripte.<br />

Er habe – schrieb er<br />

in seiner E-Mail – die Patches<br />

wieder und wieder gepostet,<br />

doch es interessiere sich niemand<br />

für sie.<br />

Andrew Morton erwiderte,<br />

er sehe nicht, warum eine<br />

Perl-Abhängigkeit ein Problem<br />

für jemanden darstellen<br />

sollte. Die Entscheidung, die<br />

Perl-Skripte zu entfernen, sei<br />

logischerweise zugleich eine<br />

Art Entscheidung dafür, auch<br />

in Zukunft alle Perl-Abhängigkeiten<br />

zu löschen, was einiges<br />

an Arbeit und Fleiß erfordere.<br />

Von Rob wollte er daher wissen,<br />

was dessen Motivation<br />

für das Veröffentlichen dieser<br />

Patches sei.<br />

Rob antwortete: „Es handelt<br />

sich um komplett überflüssige<br />

Abhängigkeiten für die Buildumgebung,<br />

und der Kernel<br />

hat eine Tradition, solche zu<br />

entfernen.“ Er ergänzte, seine<br />

Shellskripte wären mindestens<br />

so einfach, wenn nicht<br />

einfacher als die zu ersetzenden<br />

Perl-Skripte. Dank der<br />

Patches würde man also nicht<br />

nur die Abhängigkeiten auflösen,<br />

sondern auch den Kernel<br />

vereinfachen. Rob fuhr fort,<br />

dass die Perl-Abhängigkeiten<br />

auch Cross Compiling – das<br />

ohnehin eine delikate Angelegenheit<br />

sei – fehleranfälliger<br />

machten.<br />

Die große Diskussion auf der<br />

Mailingliste blieb jedoch aus,<br />

offenbar gibt es Widerstand<br />

gegen den Rauswurf der Perl-<br />

Abhängigkeit. Die Vermutung<br />

liegt nahe, dass eine signifikante<br />

Gruppe von Kernelentwicklern<br />

Perl in ihrer Buildumgebung<br />

nutzen will, sonst<br />

wäre die Integration von Robs<br />

Patches eine Selbstverständlichkeit.<br />

Normalerweise sind<br />

Linux-Urgestein Andrew Morton, hier<br />

auf dem Linuxtag 2006, befürchtet,<br />

das Entfernen der Perl-Skripte könne<br />

einen Präzedenzfall schaffen.<br />

weniger Buildabhängigkeiten<br />

besser als mehr, aber das gilt<br />

offenbar nicht, wenn es sich<br />

um wichtige Abhängigkeiten<br />

handelt.<br />

n<br />

<strong>Der</strong> Workflow nach dem Kernel.org-Einbruch<br />

<strong>Der</strong> Einbruch in Kernel.org<br />

vom August 2011 beeinflusst<br />

noch immer den Workflow einiger<br />

Kernelentwickler. Nachdem<br />

die Kernel.org-Admins alle<br />

Dienste abgesichert hatten,<br />

implementierten sie nur einen<br />

Bruchteil der Features – im<br />

Vergleich zu der Zeit vor dem<br />

Einbruch – neu. Vor allem erhalten<br />

nur noch solche Benutzer<br />

Konten, die ihre Identität<br />

über einen signierten Krypto-<br />

Key ausweisen, was mitunter<br />

zu Problemen führt.<br />

So registrierte Paul Gortmaker<br />

neulich einen Haufen<br />

neuer Dateien im Dokumentationsverzeichnis<br />

des Kernel-<br />

Source- Zweigs, die nicht in<br />

der »00‐INDEX«-Datei dieses<br />

Ordners auftauchen. Er<br />

schickte ein Patch, um die<br />

Datei zu aktualisieren.<br />

Rob Landley antwortete ihm:<br />

„Ich habe ein Skript, das<br />

HTML -Nagivationsseiten aus<br />

den »00‐INDEX«-Dateien erstellt,<br />

und ein weiteres, das<br />

dieses parst, um tote Links<br />

in beiden Verzeichnissen zu<br />

entdecken, also Dateien ohne<br />

Eintrag in der »00‐INDEX«-Datei<br />

und »00‐INDEX«-Einträge,<br />

die auf nicht existierende Dateien<br />

verweisen. Ich habe es<br />

seit Ewigkeiten nicht laufen<br />

lassen, weil die Kernel.org-<br />

Leute allen die Konten weggenommen<br />

haben.“<br />

Wütend fährt er fort: „Die<br />

geben mir ohne Bluttest oder<br />

Ähnliches keinen neuen SSH-<br />

Key. Und selbst wenn ich<br />

durch diesen Reifen springen<br />

würde, verpacken sie SSH in<br />

einem Git-Wrapper, wodurch<br />

Rsync nicht mehr funktioniert,<br />

weshalb ich »kernel.org/<br />

doc/Documentation« ohnehin<br />

nicht mehr aktualisieren<br />

könnte.“ Als Ausblick fügte<br />

er hinzu: „Ich hab kübelweise<br />

Dinge, die ich in diesem Verzeichnis<br />

tun würde, aber kein<br />

Kernel-Konto mehr.“<br />

Es lässt sich zwar leicht nachvollziehen,<br />

dass Entwickler<br />

unglücklich darüber sind, ihren<br />

Workflow ändern zu müssen.<br />

Aber es ist auch klar, dass<br />

die meisten Kernelentwickler<br />

lediglich Patches an die Mailingliste<br />

schicken. <strong>Der</strong> Einbruch<br />

ist fast zwei Jahre her,<br />

es wäre also für diese Minderheit<br />

der Entwickler an der<br />

Zeit, nach vorn zu blicken. n


Code für »linux‐next«?<br />

Von James Hogan kamen einige<br />

Patches, um Linux auf<br />

die Prozessorkerne Meta ATP<br />

und Meta HTP von Imagination<br />

Technologies zu portieren.<br />

Diese Multithread-Universalprozessoren<br />

kommen oft in<br />

Digitalradios zum Einsatz.<br />

Arnd Bergmann schaute sich<br />

die Codeflicken an und erklärte,<br />

er könne keine Show-<br />

Stopper darin finden. Seiner<br />

Meinung nach sei James Arbeit<br />

so weit, in den Kernel 3.9<br />

zu wandern.<br />

Die interessantere Diskussion<br />

in dem Thread entspann sich<br />

jedoch um die Prozesse in der<br />

Kernelentwicklung. So basierte<br />

James erstes Patchset auf<br />

dem »linux‐next«-Zweig. Das<br />

erscheint vernünftig, weil der<br />

von ihm geschickte Code ja<br />

in diesem Zweig landen sollte.<br />

Stephen Rothwell erklärte<br />

aber, dass sich die Kernelentwicklung<br />

auf Linus Torvalds<br />

offiziellen Zweig stützen müsse.<br />

<strong>Der</strong> Zweig »linux‐next« sei<br />

Julien/​Linux Foundation, CC-BY-SA 3.0<br />

Stephen Rothwell erklärte auf der<br />

Mailingliste, was es mit »linux‐next«<br />

auf sich hat.<br />

nur eine Sammlung für Dinge<br />

auf ihrem Weg in Linus’ Zweig<br />

und dürfte nicht als Entwicklungsziel<br />

dienen.<br />

Daraufhin entgegnete James,<br />

dass seine Portierung von<br />

Code abhänge, der nur im<br />

»linux‐next«-Zweig existiere<br />

und der bisher noch nicht in<br />

den offiziellen Zweig von Linus<br />

integriert worden sei. Er<br />

erkundigte sich auch, ob der<br />

offizielle Weg darin bestehe,<br />

die benötigten Codeteile aus<br />

»linux‐next« in den eigenen<br />

Tree zu kopieren, um den eigenen<br />

Code am Laufen zu halten<br />

und ihn dann an Stephen<br />

weiterzureichen.<br />

Stephen bejahte das für den<br />

Fall, dass der Code in »linux‐next«<br />

eine echte Abhängigkeit<br />

sei und James’ Patch<br />

nicht nur einen Konflikt<br />

behebe. Falls das Patch mit<br />

dem Code in »linux‐next« in<br />

Konflikt stünde, solle er sich<br />

darüber keinen Kopf machen,<br />

sondern den Konflikt von<br />

Stephen oder Linus im Laufe<br />

des Merge-Prozesses beheben<br />

lassen. Hinge James’ Code<br />

hingegen legitim von dem in<br />

»linux‐next« ab, soll er keine<br />

Skrupel haben, ihn in den eigenen<br />

Zweig aufzunehmen.<br />

Doch ermahnte er James, die<br />

relevanten Maintainer davon<br />

zu informieren, dass er keinen<br />

Rebase ihrer Trees plane.<br />

Rebasing bedeutet, dass ein<br />

Entwickler mit Hilfe von Git<br />

einen Entwicklerzweig in<br />

einen anderen integriert, indem<br />

er die Patches direkt von<br />

einem in den anderen Zweig<br />

spielt, um den ursprünglichen<br />

Zweig wegzuwerfen. Rebasing<br />

verändert die Historie eines<br />

Git-Repository, was Stephens<br />

Rat an James erklärt.<br />

Stephen antwortete darauf,<br />

seine »linux‐next«-Abhängigkeiten<br />

seien tatsächlich eher<br />

trivial und er könne seine Patches<br />

auch problemlos ohne<br />

die Abhängigkeiten schicken,<br />

wenn dieser Ablauf das Leben<br />

erleichtere. Er wolle die<br />

Änderungen dann demnächst<br />

einfügen.<br />

In diesem Zusammenhang<br />

kam auch die Frage auf, wann<br />

jemand seinen Code als ausgereift<br />

genug betrachten dürfe,<br />

um ihn an »linux‐next« zu<br />

schicken. Stephens einfache<br />

Antwort lautete: Wenn der<br />

Code bereit sei, in Linus’<br />

Hauptzweig zu wandern, sei<br />

er auch bereit für »linux‐next«.<br />

Letzterer Zweig sei im Endeffekt<br />

nichts anderes als eine<br />

Staging-Zone für Code auf<br />

dem Weg zu Linus. n<br />

Kernel-News 06/2013<br />

Aktuell<br />

www.linux-magazin.de<br />

19<br />

Hotplug: Großreinemachen und Neubau<br />

Thomas Gleixner behauptete<br />

in einem Beitrag, dass<br />

die CPU-Hotplug-Implementierung<br />

nach und nach aus<br />

dem Ruder gelaufen sei mit<br />

ihrer Vielzahl an Race Conditions,<br />

undokumentierten<br />

Verhaltensweisen und anderem<br />

Wahnsinn. Er postete<br />

daher ein Bündel an Patches,<br />

um den ganzen Komplex zu<br />

überarbeiten und eine vorhersagbare<br />

Zustandsmaschine<br />

zu schaffen, die Symmetrie in<br />

den Start- und Abbruchprozess<br />

bringen soll.<br />

Linus Torvalds kritisierte die<br />

Patches jedoch: Er wolle vor<br />

allem sicherstellen, dass Thomas<br />

den kompletten Weg gehe,<br />

ohne sich zurückzuhalten.<br />

Offenbar hasst Linus die aktuelle<br />

Hotplug-Implementierung<br />

und ist der Meinung, dass eine<br />

Reihe von Hotplug-Verhaltensweisen<br />

dem Nutzer überhaupt<br />

nicht zugänglich sein sollte,<br />

sondern hinter einen Vorhang<br />

gehöre, wo man sie in Ruhe<br />

ausradieren könne.<br />

Das deckt sich mit Thomas’<br />

Ziel. Er versichert Linus, er<br />

wolle die komplette Hotplug-<br />

Benachrichtigungskette entfernen,<br />

zusammen mit einer<br />

Myriade nicht zurückverfolgbarer<br />

Notifier-Implementierungen<br />

für die Benutzer, die<br />

sich wie Flechten um den<br />

Hotplug-Code legen: „Das aktuelle<br />

Hotplug-Gestrüpp kennt<br />

mehr als 100 komplett undokumentierte<br />

Zustände. Sie verhalten<br />

sich asymmetrisch zu<br />

den Startup- und Teardown-<br />

Prozessen. Sie existieren einfach<br />

und arbeiten oft abseits<br />

der nur schwer entwirrbaren<br />

Problemchen.“<br />

Er wolle den ganzen Schlamassel<br />

durch nur zwei für den<br />

User sichtbare Zustände ersetzen:<br />

»CPUHP_PREP_Datenstruktur«,<br />

um die Datenstrukturen<br />

aufzusetzen und freizumachen,<br />

sowie »CPUHP_<br />

ENABLE_CPU‐Zeug«, um die<br />

Hotplug-Fähigkeit ein- und<br />

auszuschalten.<br />

<strong>Der</strong> Rest von Thomas’ Zustandsmaschine<br />

wäre für Nutzer<br />

unsichtbar, man könne<br />

sich später darum kümmern.<br />

Rusty Russell formulierte in<br />

einer Anspielung auf Thomas’<br />

erste Mail: „In Episode II<br />

bringen wir dann, wie es Thomas<br />

sagt, alles in einen gesunden<br />

Zustand zurück. Das<br />

ergibt Sinn, weil ich es hassen<br />

würde, alles auf einmal zu erledigen.“<br />

(Zack Brown/kki)n


MEDIALINX<br />

IT-ACADEMY<br />

IT-Onlinetrainings<br />

Mit Experten lernen.<br />

powered by<br />

n Lernen Sie, wo und wann Sie möchten.<br />

n Sparen Sie Zeit und Kosten.<br />

n Bleiben Sie trotz zeitlicher Engpässe<br />

up-to-date.<br />

LPIC-1 / LPIC-2 Trainings<br />

LPIC-1 (LPI 101 + 102)<br />

mit Ingo Wichmann,<br />

Linuxhotel<br />

499 €<br />

LPIC-2 (LPI 201 + 202)<br />

mit Marco Göbel,<br />

Com Computertraining GmbH<br />

499 €<br />

– die offiziellen Trainings<br />

mit Marco Welter,<br />

Zarafa Deutschland GmbH<br />

Zarafa Administrator<br />

249 €<br />

Zarafa Engineer<br />

249 €<br />

Effiziente BASH-Skripte<br />

mit Klaus Knopper,<br />

Gründer der Knoppix-Distribution,<br />

knopper.net<br />

199 €<br />

Einfache IMAP-Server mit Dovecot<br />

mit Peer Heinlein,<br />

Heinlein Support GmbH<br />

249 €<br />

Python für Systemadministratoren<br />

mit Rainer Grimm,<br />

science + computing AG<br />

199 €<br />

www.medialinx-academy.de


Die ARM-Architektur und Linux auf aussichtsreicher Mission<br />

<strong>Der</strong> <strong>Aufbruch</strong><br />

Einführung 06/2013<br />

Titelthema<br />

Die x86-Plattform mag PC- und auch Linux-Anwendern als Zentrum des Universums vorkommen, im Vergleich<br />

zu den ARM-Stückzahlen muss man die Intel- und AMD-Chips aber mit dem Teleskop suchen. Jan Kleinert<br />

Inhalt<br />

22 Prozessor-Know-how<br />

Klarer Aufbau, hohe Effizienz, niedrige<br />

Kosten: Die ARMs.<br />

30 Pi-Images bauen<br />

Entwickler virtualisieren Raspberrys,<br />

kompilieren oder testen Software.<br />

32 Einplatinen-Computer<br />

Vom Erfolg des Raspberry profitieren<br />

die Konkurrenten nicht, leider.<br />

36 ARM in Servern­<br />

Billig, sparsamer und ausreichend<br />

leistungsfähig.<br />

40 Ohne Android­<br />

Sailfish, Firefox, Tizen, Ubuntu for<br />

Phones als Ersatz für Android.<br />

76 Kern-Technik­<br />

Kernel- und Treiberprogrammierung:<br />

ARM-Device-Trees.<br />

ARM-Prozessoren sind ein schönes Beispiel<br />

für funktionierende Märkte. Obwohl<br />

das Grunddesign von nur einem<br />

Anbieter – ARM eben – kommt, macht<br />

sich die Vielzahl der Chipproduzenten<br />

und Großkunden wie Apple, Nvidia, Nintendo,<br />

Motorola, Qualcomm, Freescale,<br />

Texas Instruments, HP und Samsung für<br />

den Endkunden bezahlt: Um die 5 US-<br />

Dollar kostet ein mit 1 GHz getakteter<br />

ARM-Chip aktueller Bauart. Es sind aber<br />

auch langsam getaktete Winzlinge für<br />

Spezialaufgaben unterwegs (siehe Kasten<br />

„Kleinster ARM-Prozessor“).<br />

Ähnlich entspannt geht die Industrie<br />

mit der Software um: Die Spanne reicht<br />

von I-OS und Android über händeweise<br />

Linux-Distributionen und Windows bis<br />

hin zu Echtzeit- und Spezialsystemen.<br />

Bei den Toolchains für Entwickler ergibt<br />

sich das gleiche reichhaltige Bild.<br />

Jenseits von grauen PC-Kisten mit vorinstallierter<br />

Stangen-Software, jenseits von<br />

Intel- und Microsoft-Quasimonopolen<br />

können Anbieter ihre Kreativität ausleben<br />

und Kunden von Vielfalt und günstigen<br />

Preisen profitieren. Es kann kaum<br />

verwundern, dass Linux als Betriebssystem<br />

und Open Source als Software-Idee<br />

in diesem liberalen Markt als zentrale<br />

Komponenten etabliert haben.<br />

ARM und Linux stecken fast überall drin:<br />

Smart-TVs, Bluray-Player, Internetrouter,<br />

Thin Clients, die fast schon sprichwörtliche<br />

Waschmaschine, Entertainmentsysteme<br />

und Navigationsgeräte im Auto,<br />

Roboter im Haushalt und der Industrie,<br />

Maschinen aller Art. Nicht zu vergessen:<br />

Mobiltelefon und Tablet-PCs. Zwischen<br />

15 und 20 Millionen ARM-CPUs werden<br />

heute weltweit produziert – pro Tag!<br />

Auf der ARM-Agenda der nächsten Zeit<br />

stehen zudem Server mit hoher Packungsdichte<br />

sowie schlanke Notebooks.<br />

Für Bastler sind schon lange günstige<br />

Einplatinen-Computer verfügbar. Eine<br />

regelrechte Euphorie hat bekanntlich der<br />

Rasberry Pi ausgelöst.<br />

ARM mit Händchen<br />

<strong>Der</strong> Mini-PC im Zeichen der Himbeere<br />

hat im ARM-Schwerpunkt dieses Magazins<br />

den einen oder anderen Gastauftritt:<br />

So im Artikel ab Seite 30, der Besitzern<br />

der billigen Platine zeigt, wie sie Software<br />

Kleinster ARM-Prozessor<br />

Gerade mal 1,9x2,0 Millimeter misst der von<br />

Freescale vorgestelle Kinetis KL02. In dem<br />

kleinen Gehäuse steckt ein mit 48 MHz getakteter<br />

32-Bit-Cortex-M0+-Prozessor. Freescale<br />

hat trotz der Größe bei der Peripherie nicht<br />

gespart: „Bit Manipulation Engine“ für Codeeffiziente<br />

Arithmetik, 32 KByte Flash und 4<br />

KByte RAM, schneller 12-Bit-AD-Wandler und<br />

Analogkomparator, Low-Power-UART, SPI, 2x<br />

I2C, Timer inklusive Motorsteuerungen, Betrieb<br />

mit 1,71 bis 3,6 Volt und zwischen ‐40<br />

und +85 Grad Celsius. (Benedikt Sauter)<br />

für ihren Liebling vorab auf dem leistungsstarken<br />

PC übersetzen und emulieren.<br />

<strong>Der</strong> darauf folgende Ein platinen-<br />

Computer-Beitrag stellt den prominenten<br />

Vertreter dieses Genres zwar nicht selbst<br />

vor, er durchweht aber als Referenz den<br />

ganzen Artikel. Und auch die „Kern-Technik“,<br />

die sich passenderweise mit ARM-<br />

Kerneldetails befasst, beschäftigt sich<br />

exemplarisch mit dem Raspberry Pi.<br />

<strong>Der</strong> Artikel ab Seite 36 umreißt ein Rechenzentrumsthema,<br />

das jetzt vor dem<br />

Schritt in die Praxis steht: Server mit ARM.<br />

Dabei gehts um gesparten Strom, hohe<br />

Packungsdichten, aber auch einige Unzulänglichkeiten.<br />

Das Titelthema schließt<br />

mit einem Beitrag über mobile Linux-<br />

Betriebssysteme jenseits des Android-<br />

Massenmarktes. <strong>Der</strong> Schwerpunkt beginnt<br />

mit einem ausführlichen Briefing,<br />

das die Linux-Crew publizistisch auf ihre<br />

Mission zum ARM-Universum vorbereitet.<br />

Die Welt da draußen, so viel sei verraten,<br />

ist ein Linux-freundliche. n<br />

www.linux-magazin.de<br />

21


Titelthema<br />

www.linux-magazin.de ARM-Architektur 06/2013<br />

22<br />

ARM gestern, heute, morgen<br />

Prima Architekten<br />

Mit Klarheit im Inneren und einem Niedrigenergie-Ansatz nach außen schreibt die ARM-Architektur moderne<br />

Computergeschichte. Zeit für einen indiskreten Blick in britische Baupläne. Jan Richling, Anselm Busse<br />

© 1xpert, 123RF.com<br />

Die Anfänge der ARM-Architektur reichen<br />

zurück bis in die frühen 80er Jahre,<br />

als sich der britische Computerhersteller<br />

Acorn auf die Suche nach einem neuen<br />

Prozessor für seine Rechner machte. <strong>Der</strong><br />

zuvor verwendete 6502 war nicht mehr<br />

leistungsfähig genug und alternative Architekturen<br />

schienen ungeeignet.<br />

Daher entwickelte ein Team unter der Leitung<br />

von Steve Furber und Sophie Wilson<br />

eine eigene Architektur – die Acorn Risc<br />

Architecture, kurz ARM. Mitte der 80er<br />

Jahre kamen die ersten fertigen Produkte<br />

in Coprozessorkarten für Acorns BBC Micro<br />

zum Einsatz, ehe 1987 mit dem Acorn<br />

Archimedes der erste reine ARM-Rechner<br />

auf den Markt kam, dem in den nächsten<br />

Jahren weitere Geräte folgten.<br />

Ende der 80er Jahre weckte Acorns Architektur<br />

das Interesse von Apple. Die Firma<br />

plante deren Einsatz in einem neuartigen<br />

mobilen Gerät. Acorn lagerte dafür die<br />

Entwicklung der Architektur in eine neue<br />

Firma (Advanced Risc Machines Ltd.)<br />

aus, die gemeinsam mit Apple die sechste<br />

Variante der ARM-Prozessoren entwickelte,<br />

die 1992 in Apples Stift-Handheld<br />

Newton zum Einsatz kam.<br />

In den nächsten Jahren folgten weitere Lizenznehmer,<br />

während Acorns Rechnergeschäft<br />

immer mehr an Bedeutung verlor<br />

und die Firma um die Jahrtausendwende<br />

unterging. ARM Ltd. hingegen entwickelt<br />

bis heute die Architektur mit großem Erfolg<br />

weiter, was sowohl zu einer Entwicklung<br />

neuer Versionen der Architektur als<br />

auch zum Entwurf von Prozessorkernen<br />

und deren Anpassung an verschiedene<br />

Herstellungsverfahren führte.<br />

Kerne versus Architektur<br />

Die Versionen der ARM-Architektur werden<br />

mit ARMvX bezeichnet, wobei die<br />

Palette aktuell von ARMv1 bis ARMv8<br />

reicht. Die Versionen ARMv1 (die von<br />

1985 stammt) bis ARMv6 (die in den ersten<br />

iPhones und Androiden zum Einsatz<br />

kam) wurden dabei in den Kernen ARM1<br />

bis ARM11 implementiert.<br />

Mit dem Wechsel zu ARMv7 veränderten<br />

die Briten zugleich die Bezeichnungen<br />

der zugehörigen Kerne. Seitdem gibt es<br />

drei Reihen von Cortex-Kernen, deren<br />

Kürzel auch ihre Einsatzgebiete beschreiben:<br />

Cortex-Rx (Echtzeitanwendungen:<br />

geringe Latenz, Vorhersagbarkeit, geschützter<br />

Speicher), Cortex-Mx (Mikrocontroller:<br />

geringe Transistorenzahl, Vorhersagbarkeit)<br />

sowie Cortex-Ax (Anwendungsprozessoren:<br />

hohe Performance bei<br />

geringem Energieverbrauch, optimiert für<br />

Multitasking).<br />

In Abhängigkeit vom vorgesehenen<br />

Einsatzzweck sind die Kerne sehr unterschiedlich<br />

realisiert. Von simplen In-<br />

Order-Kernen mit keiner oder einer nur<br />

sehr einfachen Pipeline in einfachen<br />

Mikrocontrollern bis hin zur komplexen<br />

Out-of-Order-Ausführung, Sprungvorhersage<br />

und spekulativer Ausführung<br />

in modernen Anwendungsprozessoren<br />

ist nahezu die gesamte Vielfalt von Beschleunigungstechniken,<br />

die auch x86-<br />

CPUs verwenden, anzutreffen.<br />

Lizenzmodelle<br />

Die Hardware, also konkrete Prozessoren<br />

mit diesen Kernen, fertigt und verkauft<br />

ARM Ltd. nicht selbst. Das Geschäftsmodell<br />

besteht vielmehr im Vertrieb geistigen<br />

Eigentums an Lizenznehmer [1]<br />

wie Samsung, Broadcom, Freescale oder<br />

Calxeda, wobei zwei Strategien zum<br />

Einsatz kommen: Zum einen lizenziert<br />

ARM Ltd. die Baupläne konkreter Prozessorkerne<br />

als so genannte IP Cores.<br />

Das erlaubt es Lizenznehmern, den Kern<br />

unverändert in das eigene Design eines<br />

System-on-Chip (SoC) zu integrieren.<br />

Beispiele dafür sind in sehr vielen Smartphones<br />

und Tablets zu finden. So enthält<br />

Samsungs Exynos-5-Dual-Chipsatz [2],


Quelle: Whitepaper von [http:// arm. com]<br />

VFPv2<br />

Jazelle<br />

der im Google Nexus 10 steckt, zwei Cortex-A15-Kerne.<br />

Zum anderen lässt sich<br />

auch die Architektur lizenzieren, was es<br />

ermöglicht, eigene Prozessorkerne zu entwickeln,<br />

die zur lizenzierten Version der<br />

Architektur kompatibel sind. Ein Beispiel<br />

sind die Krait-Kerne [3] von Qualcomm,<br />

die etwa Googles Nexus 4 antreiben.<br />

ARM-Architektur<br />

Thumb 2<br />

Trust Zone<br />

SIMD<br />

Wie die x86- wurde auch die ARM-Architektur<br />

im Laufe der Zeit erweitert, um<br />

neue Anforderungen zu erfüllen. Für jede<br />

Version der Architektur ist festgelegt, welche<br />

dieser Erweiterungen obligatorisch<br />

und welche optional sind. Die Vielfalt an<br />

Erweiterungen ist damit zwar geringer als<br />

bei x86, aber dennoch groß (Abbildung<br />

1), weshalb der Artikel den Fokus auf<br />

die bislang meistgenutzten Architekturen<br />

VFPv3/v4<br />

Neon<br />

ARMv5 ARMv6 ARMv7-A/R<br />

Abbildung 1: Die Evolution der Befehlssatzerweiterungen im Überblick.<br />

Die Erweiterungen sind teils obligatorisch, teils optional.<br />

Abbildung 2: Die zahlreichen ARM-Register und ihre verfügbaren Prozessor-Modi.<br />

ARMv4 bis ARMv7 legt. Erst<br />

ARMv8 weicht mit der Erweiterung<br />

auf 64 Bit deutlich von<br />

den Vorgängern ab – was der<br />

Artikel gegen Ende ebenfalls<br />

thematisiert.<br />

32 Bit für alles<br />

Die ARM-Architektur wurde<br />

von Beginn an als 32-Bit-Architektur<br />

konzipiert, was sich<br />

insbesondere in der Verarbeitungsbreite<br />

von 32 Bit und der<br />

Adressierung mit 32 Bit (ab<br />

ARMv3, davor 26 Bit) ausdrückt.<br />

Daher adressiert ein<br />

ARM-Kern maximal 4 GByte<br />

Speicher, wobei die meisten<br />

Implementierungen nur einen<br />

Teil davon tatsächlich verwenden.<br />

Erst der Cortex-A15 überspringt<br />

diese Grenze mit einigen Tricks.<br />

Wie bei anderen Prozessorarchitekturen<br />

gibt es mehrere Prozessormodi. Während<br />

ARM im User-Modus gewöhnliche Programme<br />

ausführt, kümmert sich der System-Modus<br />

um privilegierten Betriebssystemcode.<br />

Daneben existieren Modi,<br />

die zum Beispiel Ausnahmen behandeln<br />

sowie (ab ARMv7) für eine Hardwareunterstützte<br />

Virtualisierung sorgen. Eine<br />

Besonderheit der ARM-Architektur besteht<br />

darin, dass jeder Modus über spezifische<br />

Register verfügt, die das System<br />

bei einem Moduswechsel automatisch<br />

umblendet. So setzen ARM-Systeme Interrupts<br />

sehr effizient um.<br />

Die meisten Implementierungen verfügen<br />

zudem über eine MMU (Memory Management<br />

Unit) für die Speichervirtualisierung<br />

und den Speicherschutz, manche<br />

aber nur über eine<br />

MPU (Memory Protection<br />

Unit) für<br />

die Realisierung<br />

des Speicherschutzes.<br />

Einige sehr<br />

einfache Mikrocontroller<br />

müssen<br />

ohne beides auskommen.<br />

<strong>Der</strong> wesentliche<br />

Unterschied zu x86<br />

besteht darin, dass<br />

ARM eine Risc-<br />

Architektur (siehe<br />

Tel. 0 64 32 / 91 39-749<br />

Fax 0 64 32 / 91 39-711<br />

vertrieb@ico.de<br />

www.ico.de/linux<br />

Innovative Computer • Zuckmayerstr. 15 • 65582 Diez<br />

Neueste Intel<br />

®<br />

Xeon<br />

® Prozes-<br />

soren. Jetzt mit<br />

bis zu 8 Kernen/16<br />

Threads pro CPU<br />

und bis zu 80%<br />

mehr Leistung!<br />

BALIOS R25A 2HE SERVER<br />

GmbH<br />

SEIT 1982<br />

• Intel ® Xeon ® E3-1220 V2 3,1GHz S1155<br />

• 2x 4GB DDR3 RAM<br />

• 4x 1TB 24x7 SATA-2 HDD<br />

• Adaptec 6405E<br />

• 2x Gigabit-LAN<br />

• Systemtest mit Ubuntu Linux 64bit<br />

inkl. MwSt.<br />

exkl. MwSt.<br />

1426, 81 1199,-<br />

Art.Nr. Bto-2994099<br />

BALIOS TX9A SILENT TOWER SERVER<br />

• Intel ® Xeon ® E3-1220<br />

V2 3,1GHz S1155<br />

• 2x 8GB DDR3 RAM<br />

• 4x 1TB 24x7 SATA-2<br />

HDD<br />

• LSI 9271-4i + NAND<br />

Speicher<br />

• 2x Gigabit-LAN<br />

• Systemtest mit Ubuntu<br />

Linux 64bit<br />

inkl. MwSt.<br />

exkl. MwSt.<br />

1783, 81 1499,-<br />

Art.Nr. Bto-2994096<br />

BALIOS R45B 4HE STORAGE SERVER<br />

• Intel ® Xeon ® E3-1220 V2 3,1GHz S1155<br />

• 2x 8GB DDR3 RAM<br />

• 10x 2TB 24x7 SATA-2 HDD<br />

• Adaptec 71605 + NAND BBU<br />

• 2x Gigabit-LAN<br />

• Systemtest mit Ubuntu Linux 64bit<br />

inkl. MwSt.<br />

exkl. MwSt.<br />

3806, 81 3199,-<br />

Art.Nr. Bto-2994095<br />

ARM-Architektur 06/2013<br />

Titelthema<br />

www.linux-magazin.de<br />

23<br />

Intel<br />

® , Intel ® Logo, Intel ® Inside, Intel ® Inside Logo, Atom, Atom Inside,<br />

Xeon und Xeon Inside sind Marken der Intel Corporation in den USA und<br />

anderen Ländern.<br />

Alle Preise in Euro<br />

wir liefern auch<br />

nach Österreich<br />

u. in die Schweiz


Titelthema<br />

www.linux-magazin.de ARM-Architektur 06/2013<br />

24<br />

01 ;Cisc‐Addition<br />

Kasten „Risc“) ist, während es sich bei<br />

x86 um einen Vertreter des Cisc-Ansatzes<br />

(Complex Instruction Set Computer) handelt.<br />

ARM setzt das Risc-Konzept sehr<br />

konsequent um, ist also eine Load-Store-<br />

Architektur mit verhältnismäßig vielen<br />

Registern und einer recht geringen Anzahl<br />

von Befehlen.<br />

Zusammen mit den eingeschränkten Adressierungsmodi<br />

erlaubt dies, alle Befehle<br />

mit genau 32 Bit (also einem Wort) zu<br />

kodieren und an Wortgrenzen auszurichten.<br />

<strong>Der</strong> Instruktionsdekoder lässt sich<br />

somit sehr einfach konstruieren, da es<br />

ausreicht, für jeden Befehl ein Wort aus<br />

dem Speicher zu lesen und dieses dann<br />

zu dekodieren.<br />

Bei x86 ist der Aufwand ungleich höher,<br />

denn hier verfügen Befehle über eine<br />

Länge von 1 Byte bis hin zu 15 Byte (bei<br />

einigen Befehlssatz-Erweiterungen sind<br />

es sogar mehr), sodass der Prozessor in<br />

Abhängigkeit vom Anfang eines Befehls<br />

entscheiden muss, wie lang der Befehl<br />

wird – eine Ausrichtung an Wortgrenzen<br />

ist hier nicht möglich.<br />

Aktuelle x86-Implementierungen lösen<br />

diese Problem, indem sie die komplexen<br />

x86-Instruktionen in einfache Risc-Instruktionen<br />

(so genannte Mikrooperationen)<br />

zerlegen und diese dann ausführen.<br />

Bei einem ARM-Prozessor entfallen sol-<br />

02 ADD M3 M1 M2 ; M1 + M2 ‐> M3<br />

03 <br />

04 ;Risc‐Addition<br />

05 LD R1 M1 ; M1 ‐> R1<br />

06 LD R2 M2 ; M2 ‐> R2<br />

07 ADD R3 R1 R2 ; R1 + R2 ‐> R3<br />

08 ST M3 R3 ; R3 ‐> M3<br />

01 // C‐Code<br />

02 if (a == 0)<br />

03 {<br />

04 b = 23;<br />

05 }<br />

06 else<br />

07 {<br />

08 b = 42;<br />

09 c = a;<br />

10 }<br />

11 <br />

12 // x86<br />

13 <br />

14 TEST EAX, EAX<br />

Listing 1: Cisc- und Risc-Addition<br />

Listing 2: Bedingte Ausführung<br />

15 JNE _else<br />

16 MOV EBX, 23<br />

17 JMP _done<br />

18 _else: MOV EBX, 42<br />

19 MOV ECX, EAX<br />

20 _done:<br />

21 <br />

22 // ARM<br />

23 <br />

24 TEQ R0, #0<br />

25 MOVEQ R1, #23<br />

26 MOVNE R1, #42<br />

27 MOVNE R2, R0<br />

che Schritte, was sowohl den Aufwand<br />

für die Hardware als auch den Energieverbrauch<br />

senkt.<br />

Konditionale Instruktionen<br />

Die modusspezifischen Register treiben<br />

die Gesamtzahl der Register in die Höhe<br />

(es handelt sich etwa um 40), jedoch lassen<br />

sich in jedem Modus nur 16 Register<br />

(R0 bis R15) direkt ansprechen (Abbildung<br />

2). Während der Programmierer<br />

die Register R0 bis R12 frei verwenden<br />

darf, dient R13 in den meisten Fällen als<br />

Stackpointer. R14 kommt als Linkregister<br />

für das Speichern der Rücksprungadresse<br />

bei Prozeduraufrufen zum Einsatz, und<br />

R15 ist der Programmzähler, auf den der<br />

Prozessor, wie auf jedes andere Register,<br />

auch direkt zugreifen kann.<br />

<strong>Der</strong> Befehlssatz selbst enthält unter Verzicht<br />

auf Redundanz die üblichen Instruktionen<br />

für arithmetische und logische<br />

Operationen, für den Zugriff auf den Speicher,<br />

für die Steuerung des Pro grammflusses,<br />

zur Behandlung von Ausnahmen<br />

sowie zur Steuerung der verschiedenen<br />

Modi und den Zugriff auf Coprozessoren.<br />

Die Instruktionen selbst unterscheiden<br />

sich nicht von denen anderer Architekturen,<br />

sodass der Artikel hier nur einige<br />

Besonderheiten hervorhebt.<br />

Im Gegensatz zu den meisten anderen<br />

Architekturen, bei denen lediglich Verzweigungsbefehle<br />

eine Ausführung in<br />

Abhängigkeit von Bedingungen zulassen,<br />

ist bei ARM nahezu jede Instruktion<br />

konditional. Dazu spezifiziert der Befehlscode<br />

über eine 4-Bit-Maske, welche<br />

Bedingungen (Negativ, Null, Übertrag,<br />

Überlauf) für die Ausführung erfüllt sein<br />

müssen. Damit lässt sich sehr kompakter<br />

Risc<br />

Risc (Reduced Instruction Set Computer) verfolgt<br />

die Philosophie, den Befehlssatz so einfach<br />

wie nur möglich zu gestalten und darauf<br />

zu verzichten, jeden Befehl mit vielen Adressierungsvarianten<br />

auszustatten. <strong>Der</strong> Addierbefehl<br />

einer Cisc-Maschine ist in der Lage, sowohl<br />

Register als auch Speicherinhalte direkt oder<br />

indirekt für die Operanden und das Ergebnis zu<br />

verwenden – daraus ergibt sich eine Vielzahl<br />

möglicher Kombinationen.<br />

Risc-Maschinen verzichten auf diese Vielfalt:<br />

Arithmetische und logische Instruktionen arbeiten<br />

ausschließlich auf Registern, während<br />

der Zugriff auf den Speicher über spezielle<br />

Code unter Vermeidung von Sprüngen<br />

implementieren (Listing 2).<br />

Neben den Load-Store-Instruktionen, die<br />

den Transfer jeweils eines Speicherworts<br />

zwischen Speicher und Register erlauben,<br />

gibt es Load-Store-Multiple-Instruktionen,<br />

die den Transfer zwischen einer<br />

Reihe aufeinanderfolgender Speicherworte<br />

und einer Menge von Registern ermöglichen.<br />

Damit kann der Prozessor ein<br />

kleines Variablenfeld mit einem Befehl in<br />

die Register laden, ebenso lässt sich auf<br />

diese Weise sehr effizient mit dem Stack<br />

arbeiten, da dieser mehrere Register auf<br />

einmal ablegt oder liest. Das ist insbesondere<br />

bei der Programmierung von Interrupt-Handlern<br />

oder Kontextwechseln<br />

in einem Betriebssystem interessant, da<br />

sich mit nur zwei Befehlen der gesamte<br />

Registersatz austauschen lässt.<br />

Das besondere Bit<br />

Eine weitere Besonderheit ist das so genannte<br />

S-Bit im Befehlssatz, das mehreren<br />

Zwecken dient. Zum einen hilft es beim<br />

feineren Steuern der bedingten Ausführung.<br />

Normalerweise ändert der Prozessor<br />

bei jedem Befehl die Bedingungsflags<br />

– wenn etwa eine Rechnung das Ergebnis<br />

Null liefert, setzt er das Zero-Flag. Bei<br />

ARM geschieht dies nur, wenn das S-Bit<br />

gesetzt ist, sodass der Zustand der Bedingungsflags<br />

unabhängig von aktuellen<br />

Rechnungen erhalten bleibt.<br />

Zum anderen lässt sich das S-Bit zum<br />

Steuern der Prozessormodi und deren<br />

spezifischer Register verwenden. Ein gesetztes<br />

S-Bit ermöglicht es so, auf die<br />

Register des User-Modus durchzugreifen.<br />

Schreibt ein Programm bei gesetztem S-<br />

Bit auf den Programmzähler, wechselt<br />

Befehle (Load/​Store) erfolgt. Das macht Programme<br />

umfangreicher, vereinfacht aber die<br />

Architektur des Prozessors deutlich. <strong>Der</strong> zusätzliche<br />

Aufwand durch das Laden in die Register<br />

besteht nur scheinbar, denn auch eine<br />

Cisc-Maschine muss zwei Speicherworte vor<br />

dem Addieren erst laden, was jedoch intern<br />

geschieht, vor dem Programmierer verborgen.<br />

In der Konsequenz haben Risc-Maschinen meist<br />

mehr frei benutzbare Register als vergleichbare<br />

Cisc-Rechner.<br />

Für eine fiktive Maschine könnte die Addition<br />

der Speicherinhalte M1 und M2 mit Ablage des<br />

Ergebnisses in M3 wie in Listing 1 aussehen.


Quelle: [http:// arm. com]<br />

Power<br />

Cortex-A15<br />

Cortex-A7<br />

der Prozessor automatisch in den vorherigen<br />

Modus. In Kombination mit einem<br />

Load-Multiple kann ein Programmierer<br />

damit auf sehr elegante Weise den Rücksprung<br />

aus einem Interrupt umsetzen.<br />

Neon, Thumb, Jazelle<br />

Performance<br />

Abbildung 3: Die Kurve zeigt schematisch den Energieverbrauch von Big-Little in<br />

Relation zur Leistung. Die ARM-Technologie teilt die CPU-Kerne in Blöcke auf.<br />

Das ARM-Design gestattet einfache Erweiterungen<br />

durch das Hinzufügen von bis<br />

zu 16 Coprozessoren, die ARM über spezielle<br />

Coprozessor-Instruktionen steuert<br />

– das erlaubt zum Beispiel Fließkomma-<br />

Berechnungen. Reagiert kein Coprozessor<br />

auf eine solche Anweisung, gibt es eine<br />

Ausnahme, die eine einfache Emulation<br />

in Software ermöglicht. Weitere nennenswerte<br />

und üblicherweise eingesetzte Erweiterungen<br />

sind eine Speicherverwaltungseinheit<br />

und eine Einheit zum Media<br />

Processing, Neon genannt.<br />

Neben dem eigentlichen ARM-Befehlssatz<br />

unterstützen die meisten ARM-Prozessoren<br />

noch bis zu drei weitere Befehlssätze:<br />

Zunächst gibt es den Thumb-Modus in<br />

mittlerweile zwei Varianten. Er erlaubt<br />

durch den Einsatz von 16-Bit-Instruktionen<br />

eine höhere Codedichte.<br />

Konnte die erste Version von Thumb nur<br />

auf die Hälfte der Register zugreifen und<br />

musste sie zum Behandeln von Ausnahmen<br />

auf den ARM-Befehlssatz zurückschalten,<br />

erlaubt ihr Nachfolger Thumb 2<br />

Instruktionen von 16 und 32 Bit Länge<br />

und hebt damit die meisten Einschränkungen<br />

auf, sodass die höhere Codedichte<br />

dennoch eine vergleichbare Leistung zum<br />

ARM-Modus ermöglicht. Daneben bietet<br />

der Jazelle-Befehlssatz auch Hardware beschleu<br />

nigung für<br />

Java-Bytecode an,<br />

allerdings hat ARM<br />

den Umfang der<br />

Unterstützung in<br />

neueren Versionen<br />

reduziert [4].<br />

Multicore<br />

Beim Erhöhen der<br />

Taktrate wächst<br />

der Energieverbrauch<br />

überproportional<br />

zur Rechengeschwindigkeit.<br />

Also nimmt<br />

die Energieeffizienz<br />

mit steigendem Takt ab, was insbesondere<br />

bei mobilen Geräten ein Problem<br />

darstellt. <strong>Der</strong> Einsatz mehrerer Kerne löst<br />

das Problem zum Teil, da sie die gleiche<br />

Anzahl von Rechenoperationen pro Zeiteinheit<br />

bei einer geringeren und somit<br />

energieeffizienteren Taktrate erreichen.<br />

Multicore-CPUs sind also auch für die<br />

ARM-Architektur interessant.<br />

Es gibt dazu eine Vielzahl verschiedener<br />

Lösungen sowohl von ARM selbst<br />

– zu nennen wäre hier MP Core mit bis<br />

zu vier Kernen – als auch von Inhabern<br />

einer Architekturlizenz. Zwei der größten<br />

Herausforderungen beim Design von<br />

Multicore-CPUs bestehen in der Cache-<br />

Kohärenz und der Interrupt-Verteilung.<br />

ARM bietet für ARM11 lediglich einen<br />

IP-Block an, der sowohl die Kerne als<br />

auch die Logik für Cache-Kohärenz und<br />

Interrupt-Verteilung enthält.<br />

Seit dem Cortex-A9 vertreibt ARM diese<br />

Komponenten als separate IP-Blöcke, was<br />

SoC-Designern mehr Freiheit beim Design<br />

lässt. Für Inhaber einer Architekturlizenz<br />

vergrößert sich dieser Spielraum erneut,<br />

jedoch sind die Details meist kaum oder<br />

gar nicht öffentlich dokumentiert.<br />

Big-Little<br />

Da mobile ähnlich wie Desktop-Geräte<br />

nur selten die volle Rechenleistung benötigen,<br />

gibt es einige Stromsparmechanismen,<br />

die in einfacher Form auch in x86-<br />

CPUs stecken. Sie regeln die Taktraten der<br />

CPUs, um energieeffizienter zu arbeiten,<br />

und schalten einzelne Kerne bei Untätigkeit<br />

ab. Da der Energieverbrauch bei<br />

ICINGA SCHULUNG<br />

ICINGA ADVANCED<br />

NAGIOS SCHULUNG<br />

PUPPET FUNDAMENTALS<br />

PUPPET ADVANCED<br />

EXTENDING PUPPET<br />

OPENNEBULA<br />

SLA REPORTING<br />

ARM-Architektur 06/2013<br />

Titelthema<br />

www.linux-magazin.de<br />

25


Titelthema<br />

www.linux-magazin.de ARM-Architektur 06/2013<br />

26<br />

kleinen Mobilgeräten eine größere Rolle<br />

spielt als bei PCs und Notebooks, bieten<br />

sowohl ARM als auch die SoC-Hersteller<br />

weitere Möglichkeiten an.<br />

Die von ARM entwickelte Lösung Big-<br />

Little basiert auf der Tatsache, dass ARM<br />

CPU-Kerne verschiedener Leistungsklassen<br />

anbietet, die jeweils den gleichen<br />

Befehlssatz unterstützen. Big-Little bildet<br />

in der CPU Blöcke aus Kernen mit hoher<br />

Rechenleistung, aber geringerer Energieeffizienz,<br />

sowie Blöcke aus CPU-Kernen<br />

mit niedriger Rechenleistung bei höherer<br />

Energieeffizienz (Abbildung 3). Das Modell<br />

nimmt an, dass die meisten mobilen<br />

Geräte nur sehr selten die maximale Leistung<br />

des Prozessors anfordern. Somit bedeutet<br />

die zeitweise ausschließliche Nutzung<br />

langsamer, aber energieeffizienter<br />

Kerne eine signifikante Einsparung und<br />

führt zu längeren Akkulaufzeiten.<br />

Energieeffizienz<br />

Diese energieeffiziente Nutzung des Designs<br />

setzt eine Software-Unterstützung<br />

voraus, die grundsätzlich drei Ansätze<br />

kennt. <strong>Der</strong> erste nutzt die Virtualisierungsfunktion<br />

des System-on-Chip. Hierbei<br />

kommt ein Hypervisor zum Zuge, der<br />

bei Änderung der Last sämtliche Berechnungen<br />

von einem Block zum anderen<br />

migriert und den nicht genutzten Block<br />

komplett ausschaltet.<br />

Dieser Weg erfordert keine Anpassung<br />

des Betriebssystems und funktioniert<br />

problemlos auf Android-Systemen. Doch<br />

nicht immer ist es sinnvoll, alle laufenden<br />

Programme von den kleineren<br />

auf die größeren Kerne<br />

und umgekehrt zu migrieren,<br />

da nicht selten ein gewisser<br />

Teil der Prozesse nur eine<br />

geringe Last erzeugt oder es<br />

sich um wenig zeitkritische<br />

Hintergrundprozesse handelt,<br />

was den höheren Energieverbrauch<br />

der größeren Kerne<br />

nicht rechtfertigt.<br />

Daher wandern beim zweiten<br />

Ansatz nur die Anwendungen<br />

zwischen einzelnen Kernpaaren<br />

hin und her. Hierbei nutzt<br />

Linux die bereits bestehende<br />

Frequenzskalierung (Stichwort<br />

»cpufreq«), indem es die<br />

Frequenzbereiche des kleinen<br />

Kern<br />

0<br />

L1 Cache<br />

und des großen Kerns in Bereiche virtueller<br />

Frequenzen zusammenfasst. Niedrige<br />

virtuelle Frequenzen werden in der Folge<br />

auf dem kleinen Kern abgebildet, hohe<br />

auf dem großen. Das Betriebssystem migriert<br />

nun eine Anwendung automatisch<br />

auf den Kern, in dessen Bereich die gewählte<br />

Frequenz liegt.<br />

Dieser Ansatz hat ebenfalls Nachteile.<br />

Zum einen nutzt das System so in Höchstlast-Situationen<br />

nicht alle physisch verfügbaren<br />

Kerne, zum anderen ist der Ansatz<br />

(so wie der zuerst vorgestellte) nur<br />

bei einer identischen Anzahl von kleinen<br />

und großen Kernen sinnvoll.<br />

Letzteres muss nicht zwingend der Fall<br />

sein, wie der Entwicklungsprototyp für<br />

Big-Little von ARM beweist, der drei Cortex-A7-<br />

und zwei Cortex-A15-Kerne besitzt<br />

(Abbildung 4). In diesem Fall ist der<br />

dritte Ansatz sinnvoll, der dem Nutzer<br />

alle Kerne zugleich zugänglich macht,<br />

womit das Big-Little-SoC schlicht als<br />

Multicore-Prozessor funktioniert.<br />

Dieser Ansatz scheint zunächst viel einfacher<br />

als die ersten beiden, weist jedoch<br />

ein Problem auf, das die Umsetzung erheblich<br />

erschwert: Wenn ein Betriebssystem<br />

seine Anwendungen auf die<br />

Kerne verteilt, geht es – in diesem Fall<br />

fälschlich – davon aus, dass alle Kerne<br />

die gleiche Rechenleistung besitzen. Das<br />

kann dazu führen, dass das System einer<br />

unwichtigen Hintergrundanwendung einen<br />

schnellen Kern zuordnet und einer<br />

wichtigen Vordergrundanwendung einen<br />

langsamen. Die Unterstützung solch<br />

asymmetrischer Prozessor-Architekturen<br />

Cortex-A15<br />

MP Core<br />

L2 Cache<br />

Kern<br />

1<br />

Interrupt Controller<br />

Kern<br />

2<br />

Cache-Kohärenz-Netzwerk<br />

Cortex-A7<br />

MP Core<br />

Kern<br />

3<br />

Kern<br />

4<br />

L1 Cache L1 Cache L1 Cache L1 Cache<br />

L2 Cache<br />

Abbildung 4: Die Architektur des Big-Little-Testprototyps mit drei Cortex-A7-<br />

und zwei Cortex-A15-Kernen.<br />

in Betriebssystemen ist kein triviales<br />

Problem, weshalb es zurzeit noch keine<br />

marktreife Lösung für Linux gibt [5].<br />

Pläne für Big-Little<br />

Eine Reihe von SoC-Herstellern haben<br />

zwar Implementierungen der Big-Little-<br />

Architektur angekündigt, konkrete Pläne<br />

gibt es aber momentan nur von Renesas<br />

Mobile und Samsung. Die erste Firma will<br />

im Verlauf des Jahres einen SoC mit zwei<br />

Cortex-A7- und zwei Cortex-A15-Kernen<br />

auf den Markt bringen. Von Samsung<br />

gibt es das Exynos-5-Octa-Chipset, das in<br />

einigen Regionen der Welt das neue Galaxy-S4-Smartphone<br />

antreibt. <strong>Der</strong> Name<br />

suggeriert einen Achtkern-Prozessor, was<br />

technisch betrachtet korrekt ist, da er<br />

je vier Cortex-A7- und Cortex-A15-Kerne<br />

besitzt. Aus den oben genannten Gründen<br />

lassen sich derzeit aber jeweils nur<br />

vier Kerne zugleich nutzen.<br />

Einen anderen Weg geht Nvidia mit seinem<br />

SoC Tegra 3, in dem vier Cortex-<br />

A9 stecken, sowie dem Tegra 4 mit vier<br />

Cortex-A15-Chips. Beide SoCs besitzen<br />

neben den vier genannten Kernen jeweils<br />

noch einen weiteren Cortex-A9- beziehungsweise<br />

Cortex-A15-Kern. Dieser, von<br />

Nvidia als Companion Core bezeichnet,<br />

besteht aus einer anderen Art von Transistoren,<br />

die wesentlich weniger Energie<br />

pro Schaltvorgang benötigen.<br />

Zugleich zieht dies aber eine Limitierung<br />

der maximalen Taktrate des Companion<br />

Core nach sich, die weit unterhalb der<br />

Taktrate anderer Kerne liegt. Im Betrieb<br />

werden, ähnlich wie beim<br />

Big-Little-Ansatz, die Anwendungen<br />

zum Companion Core<br />

migriert, sobald nur noch ein<br />

Hauptkern aktiv ist, dessen<br />

Last einen gewissen Schwellenwert<br />

unterschreitet.<br />

Welcher Stromsparmechanismus<br />

besser ist, lässt sich<br />

nicht pauschal sagen, da dies<br />

von Faktoren wie dem Anwendungsbereich,<br />

der Architektur<br />

des restlichen Systems<br />

und von der effizienten Unterstützung<br />

durch das Betriebssystem<br />

abhängt. Insbesondere<br />

Letztere steckt noch in den<br />

Kinderschuhen. Insgesamt<br />

führen solche Mechanismen


zusammen mit der energieeffizienten<br />

Architektur dazu, dass moderne ARM-<br />

SoCs sparsamer sind als die meisten x86-<br />

Prozessoren ähnlicher Leistung.<br />

Die Zukunft: 64 Bit<br />

Geschichte neigt gelegentlich dazu, sich<br />

zu wiederholen: In den 90er Jahren stießen<br />

die Hersteller großer Unix-Server an<br />

die Grenze von 4 GByte, die eine 32-Bit-<br />

Maschine direkt adressieren kann. In der<br />

Folge wurden 64-Bit-Architekturen wie<br />

Ultra-Sparc von Sun entwickelt. Kurz<br />

nach der Jahrtausendwende zeichnete<br />

sich das gleiche Problem bei den x86-<br />

Rechnern ab, was zur Entwicklung von<br />

x86-64 führte.<br />

Als AMD x86-64 startete, war dies eine<br />

echte Erweiterung der bestehenden<br />

32-Bit-Architektur, die wiederum auf einer<br />

16-Bit-Architektur fußte – die jeweils<br />

älteren Versionen sind Teilmengen der<br />

neueren. Dieser Ansatz ermöglicht zwar<br />

die problemlose Weiterverwendung bestehenden<br />

Wissens und Codes, schließt<br />

allerdings tiefgreifende architektonische<br />

Veränderungen aus.<br />

ARM-Systemen geht es nun ähnlich: Zum<br />

einen erhalten auch kleine Geräte immer<br />

mehr Speicher, was Anwendungen anzieht,<br />

die davon profitieren, zum anderen<br />

wird die ARM-Architektur zunehmend<br />

für Server attraktiv, wie es auch der Artikel<br />

ab Seite 36 beschreibt. Beides lässt<br />

die Grenze von 4 GByte immer mehr zu<br />

einem Hindernis werden.<br />

Neuere ARMv7-Kerne wie der Cortex-A15<br />

umgehen das Problem nur teilweise: Die<br />

Large Physical Address Extension (LPAE)<br />

erlaubt es (ähnlich wie PAE bei x86), bis<br />

zu 1 TByte physisch zu adressieren, was<br />

aber nicht die Beschränkung auf 4 GByte<br />

virtuellen Speicher pro Thread berührt.<br />

<strong>Der</strong> radikale Ausweg ist der Wechsel auf<br />

eine 64-Bit-Architektur.<br />

ARMv8 definierte 2011 die zwei Architekturen<br />

Aarch64 und Aarch32, die wiederum<br />

A64 und A32 als Befehlssätze<br />

verwenden (sowie Thumb 2 als T32 für<br />

Aarch32). Aarch32 und A32 sind abwärtskompatibel<br />

zu ARMv7 (aber nicht<br />

umgekehrt), während Aarch64 mit A64<br />

einen neuen Befehlssatz besitzt. Damit<br />

ist es – im Gegensatz zu x86 – nicht erforderlich,<br />

bestehende Lücken im alten<br />

Befehlssatz zu verwenden oder neue Befehle<br />

mit komplizierten Präfix-Konstruktionen<br />

zu basteln. Vielmehr konstruiert<br />

man so einen sauberen Befehlssatz.<br />

Registerfragen<br />

So lassen sich alle A64-Befehle in nur<br />

32 Bit kodieren, obwohl sich die Anzahl<br />

der Register verdoppelt hat: X0 bis X29,<br />

dazu X30 als Linkregister sowie X31 als<br />

hart verdrahtetes Null-Register. Beim Programmzähler,<br />

der im A32-Befehlssatz als<br />

R15 auftritt, handelt es sich nun um ein<br />

spezielles Register, auf das man nur noch<br />

über angepasste Befehle zugreifen kann.<br />

ARM-Architektur 06/2013<br />

Titelthema<br />

www.linux-magazin.de<br />

27<br />

MAGAZIN<br />

ONLINE<br />

Linux-Magazin newsLetter<br />

Nachrichten rund um die Themen Linux und Open Source lesen Sie täglich<br />

im Newsletter des Linux-Magazins.<br />

Newsletter<br />

informativ<br />

kompakt<br />

tagesaktuell<br />

www.linux-magazin.de/newsletter


Titelthema<br />

www.linux-magazin.de ARM-Architektur 06/2013<br />

28<br />

Quelle: [http:// arm. com]<br />

Aarch64<br />

Apps<br />

Aarch32<br />

Apps<br />

Aarch64<br />

Gastbetriebssystem<br />

Aarch32<br />

Apps<br />

Aarch64 Hypervisor<br />

Aarch32<br />

Apps<br />

Aarch32<br />

Gastbetriebssystem<br />

Sicherheitsmonitor Aarch64 Hypervisor (Trust Zone)<br />

Vertrauenswürdige<br />

Apps<br />

Secure World OS<br />

Ebene<br />

Abbildung 5: Die Prozessormodi von ARMv8 und ihre Kompatibilität zu 32-Bit-<br />

Software. Die Ausnahme-Ebenen erinnern stark an die Ringe von x86.<br />

EL0<br />

EL1<br />

EL2<br />

EL3<br />

Verschlüsselte ARM-Prozessoren<br />

Neben komplexen, auf Virtualisierung beruhenden Sicherheitskonzepten<br />

wie Trust Zone (Abbildung 5), gibt es seit einigen Jahren unter den leistungsstarken<br />

ARM-Prozessoren Versionen, die komplett verschlüsseltes<br />

Booten anbieten. In der Praxis stehen dafür im Prozessor so genannte<br />

OTP-Register (One Time Programmable) bereit, die einen Schlüssel<br />

verwalten können, der den Bootloader verschlüsselt oder signiert.<br />

Diese Maßnahme soll sicherstellen, dass das ausgeführte Programm<br />

tatsächlich vom Entwickler oder Hersteller stammt.<br />

Freescale [7] bietet unter den Namen Vybrid beziehungsweise Imx28<br />

Prozessoren mit den entsprechenden Features an. Schon länger auf<br />

dem Markt ist der LPC3143 von NXP [8]. Das Open-Source-Projekt<br />

Picosafe [9] bietet eine komplette Toolchain an, um einen vollständig<br />

verschlüsselten Bootprozess vom Bootloader bis zum Root-Dateisystem<br />

zu ermöglichen. (Benedikt Sauter)<br />

Die Befehle selbst sind im Wesentlichen<br />

an ihre Pendants aus A32 angelehnt, Anpassungen<br />

erfordern aber die folgenden<br />

architektonischen Änderungen.<br />

Prozessormodi erneuert<br />

Die größte davon betrifft die Prozessormodi<br />

und die abhängigen Modus-spezifischen<br />

Register: Mit zuletzt acht Modi<br />

bei A32 kommt nur noch ein kleiner Teil<br />

der vielen Register zum Einsatz. Zudem<br />

ist der Umgang mit den verschiedenen<br />

Ausnahme-Modi umständlich. Mit A64<br />

führt ARM ein stark vereinfachtes Modell<br />

mit vier Ausnahme-Ebenen (Abbildung<br />

5) ein, das Ähnlichkeit mit den Ringen<br />

der x86-Architektur aufweist.<br />

Die niedrigste Ebene – EL0 – ist für<br />

den Betrieb von Anwendungen gedacht<br />

(User-Modus), während EL1 dem bisherigen<br />

System-Modus entspricht und der<br />

Ausführung privilegierter Teile eines Betriebssystems<br />

dient. EL2 ist Hypervisoren<br />

zugeordnet und EL3 Teil von ARMs Sicherheitskonzept<br />

Trust Zone, also für den<br />

Betrieb von Sicherheitsmonitoren (siehe<br />

Kasten „Verschlüsselte ARM-Prozessoren“).<br />

Jeder dieser Modi hat nur noch<br />

drei private Register: ein Linkregister für<br />

Ausnahmen, den Stackpointer und das<br />

gesicherte Statusregister.<br />

Die konditionale Ausführung aller Befehle<br />

gibt es bei A64 nicht mehr. Sie erlaubt<br />

zwar sehr eleganten Code, erschwert aber<br />

die Implementierung einer Out-of-Order-<br />

Maschine stark. Auch deshalb müssen<br />

die Load-Store-Multiple-Instruktionen<br />

simpleren Instruktionen weichen, die nur<br />

noch das Laden oder Speichern von zwei<br />

Registern erlauben.<br />

Kleinere Änderungen stammen aus den<br />

praktischen Erfahrungen mit der 32-Bit-<br />

Architektur. Es gibt zwei virtuelle Adressräume<br />

von jeweils 2 48 Byte (256 TByte)<br />

– einen für die Anwendungen ab der Adresse<br />

0 und einen für den Betriebssystemkernel<br />

ab der Adresse 2 64 abwärts. Virtuelle<br />

Adressen werden je nach Seitengröße<br />

mit vierstufigen (4-KByte-Seiten) oder<br />

dreistufigen (64-KByte-Seiten) Seitentabellen<br />

in physische Adressen umgesetzt.<br />

Die Adressierung selbst folgt weiterhin<br />

dem Load-Store-Ansatz, doch wurden<br />

die Adressierungsmodi angepasst, um<br />

die Berechnung zu vereinfachen.<br />

Wie bei x86-64, wo 32-Bit-Anwendungen<br />

auf einem 64-Bit-System laufen, sorgt<br />

auch ARMv8 für Kompatibilität. Beim<br />

Auftreten von Ausnahmen und dem Verlassen<br />

derselben kann der Prozessor zwischen<br />

Aarch64 und Aarch32 wechseln<br />

und die Register in Abhängigkeit vom<br />

Modus aufeinander abbilden; 32-Bit-Zugriffe<br />

betreffen nur die untere Hälfte des<br />

Registers (Abbildung 5). So ist es möglich,<br />

sowohl Aarch32-Anwendungen unter<br />

einem Aarch64-Betriebssystem laufen<br />

zu lassen als auch unter einem Aarch64-<br />

Hypervisor Gäste beider Architekturversionen<br />

nebeneinander auszuführen [6].<br />

Linux und ARMv8<br />

Obwohl ARMv8 bereits 2011 vorgestellt<br />

wurde und mit dem Cortex-A53 und<br />

Cortex-A57 bereits erste IP Cores im Angebot<br />

sind, existiert außer Simulatoren<br />

und FPGA-basierten Prototypen bislang<br />

noch keine Umsetzung. Jedoch haben<br />

einige Hersteller Produkte angekündigt,<br />

die wohl noch in diesem oder Anfang<br />

nächsten Jahres auf den Markt kommen.<br />

Dessen ungeachtet arbeiten Entwickler<br />

bereits sehr aktiv an Software für die<br />

neue Architektur: Die Codegenerierung<br />

für Aarch64 ist mit aktuellen GCC-Versionen<br />

problemlos möglich, und der<br />

Linux-Kernel unterstützt die Architektur<br />

ab Version 3.7. Wenn also die ersten<br />

64-Bit-ARM-Rechner erscheinen, ist<br />

Linux schon für sie bereit. (kki) n<br />

Infos<br />

[1] ARM-Lizenznehmer: [http://www.arm.com/<br />

products/processors/licensees.php]<br />

[2] Samsungs Exynos 5 Dual:<br />

[http://www.samsung.com/global/<br />

business/semiconductor/minisite/Exynos/<br />

products5dual.html]<br />

[3] Qualcomms Krait-Kerne: [http://www.qualcomm.com/snapdragon/processors#CPU]<br />

[4] Steve Furber, „ARM System-on-Chip Architecture“<br />

(2nd Edition): Pearson<br />

[5] Robin Randhawas Whitepaper zu Big-Little:<br />

[http://arm.com/files/downloads/System_<br />

Software_for_b.L_Systems_Randhawa.pdf]<br />

[6] David Kanter, „ARM Goes 64-bit“:<br />

[http:// www. realworldtech. com/ arm64/]<br />

[7] Vybrid und Imx28 von Freescale:<br />

[http://www.freescale.com]<br />

[8] LPC3143 von NXP: [http://www.nxp.com]<br />

[9] Picosafe: [http://www.picosafe.de]<br />

Die Autoren<br />

Jan Richling ist Gastprofessor für Betriebssysteme<br />

und eingebettete Systeme an der TU Berlin.<br />

Anselm Busse ist wissenschaftlicher Mitarbeiter<br />

und Doktorand am Fachgebiet Kommunikationsund<br />

Betriebssysteme. Ihr Forschungsschwerpunkt<br />

liegt unter anderem in der Steigerung der<br />

Energieeffizienz von Many-Core-Systemen.


Titelthema<br />

www.linux-magazin.de Architektur-Emulation 06/2013<br />

30<br />

Transparente Architektur-Emulation mit Qemu<br />

Eigenbau<br />

Kompakte Systeme wie der Raspberry Pi bieten preisgünstige Hardware für unzählige Verwendungszwecke.<br />

Doch wie entwickelt und portiert man Software auf diese Plattformen? Julian Pawlowski<br />

© Joseasreyes, 123RF.com<br />

Die Entwicklung für kleine Systemon-a-Chip-Geräte<br />

wie den Raspberry Pi<br />

stellt eine größere Herausforderung dar,<br />

als man zunächst annehmen mag. Diese<br />

Geräte sind in erster Linie darauf ausgerichtet,<br />

fertige Software auszuführen.<br />

Daher hat es sich bewährt, Betriebssystem-Images<br />

anzubieten, die ein Anwender<br />

lediglich auf den Speicherchip oder<br />

das Speichermedium des Geräts kopiert.<br />

Im Falle des Raspberry Pi genügt es, ein<br />

1-zu-1-Abbild auf eine SD-Speicherkarte<br />

zu schreiben (etwa mit »dd«), von der<br />

das Gerät bootet.<br />

Doch wie erstellt man ein solches Image,<br />

das die eigenen Dienste oder Frameworks<br />

anbieten soll, möglichst effizient? Naheliegend<br />

ist, auf dem Gerät selbst die notwendige<br />

Software zu installieren und zu<br />

kompilieren. Hier ließen sich alle Einstellungen<br />

vornehmen, bevor man das Image<br />

auf umgekehrtem Wege wieder von der<br />

SD-Karte in eine Datei schreibt, um diese<br />

weiterzuverteilen. Das Problem: Die beschriebene<br />

Prozedur dauert sehr lange,<br />

da diese Geräte<br />

kei ne ausreichenden<br />

Res sourcen<br />

bieten, um darauf<br />

ernsthaft zu<br />

entwickeln. Auch<br />

geduldige Menschen<br />

spüren daher<br />

schon bald das<br />

Verlangen nach<br />

einer Lösung, die<br />

möglichst reproduzierbar<br />

und automatisiert<br />

solche<br />

Images generiert.<br />

Draufsicht<br />

<strong>Der</strong> logische erste<br />

Schritt besteht also darin, die eigene Perspektive<br />

auf den Prozess zu verändern<br />

und einen Schritt zurück zu tun. Um<br />

beim Raspberry Pi zu bleiben: Mit Hilfe<br />

von Skripten lässt sich etwa das von der<br />

Raspberry-Pi-Foundation bereitgestellte<br />

Raspbian-Image, das auf Debian basiert,<br />

direkt an die eigenen Bedürfnisse anpassen<br />

und weiterverteilen. Das spart nicht<br />

nur eine Menge Zeit, sondern lässt sich<br />

später auch automatisieren und mit einer<br />

Continuous-Integration-Umgebung kombinieren,<br />

etwa Jenkins CI [1].<br />

Doch auf dem Weg dorthin liegen noch<br />

ein paar Stolpersteine. <strong>Der</strong> gewitzte Entwickler<br />

denkt natürlich sofort daran, das<br />

Image in eine Chroot-Umgebung einzubinden.<br />

So lässt sich darin agieren, als<br />

hätte man das System regulär gebootet.<br />

Allerdings macht die abweichende Prozessorarchitektur<br />

hier einen Strich durch<br />

die Rechnung, denn die Intel-CPU kann<br />

die binären ARM-Programme nicht ausführen.<br />

Besteht also die einzige Lösung<br />

darin, einen Raspberry Pi als virtuelle<br />

Maschine zu betreiben, mit all den Nachteilen<br />

in Sachen Automatisierung, die das<br />

mit sich bringt? Nicht zwangsläufig!<br />

Schnell mal emulieren<br />

Ein Übersetzer muss her, der direkt<br />

zur Laufzeit einspringt. Qemu [2], der<br />

Quick Emulator, dürfte in Verbindung<br />

mit Linux’ Virtualisierungslösung KVM<br />

ein Begriff sein. Doch das Projekt weist<br />

noch deutlich mehr Facetten auf. Zusammen<br />

mit dem vom Kernel bereitgestellten<br />

»binftm_misc«-Mechanismus bietet die<br />

Qemu-User-Emulation die Möglichkeit,<br />

auch plattformfremden Binärcode auszuführen.<br />

Einzige Voraussetzung: Die<br />

Ma schine selbst darf nicht als VM laufen,<br />

sonst wird es kompliziert (Stichwort:<br />

Nested Virtualization).<br />

Unter Debian genügt für die Installation<br />

eine einzige Zeile:<br />

sudo apt‐get install qemu binfmt‐support U<br />

qemu‐user‐static<br />

Im nächsten Schritt startet der Entwickler<br />

den Daemon »binfmt‐support« und lässt<br />

sich über den Befehl »sudo update‐binfmts<br />

‐‐display« eine Liste aller unterstützten<br />

binären Formate anzeigen. Ruft er<br />

dabei ein Programm auf, das für eine andere<br />

Plattform kompiliert wurde, erkennt<br />

der Daemon das Binärformat automatisch<br />

und der passende Qemu-CPU-Emulator<br />

führt die Datei aus. Er übersetzt dabei<br />

simultan die fremden Prozessorbefehle<br />

in für die Intel-Plattform ausführbare<br />

Kommandos.<br />

Das Ganze ist allerdings sehr rechenintensiv<br />

und zudem nicht auf mehrere CPU-<br />

Cores verteilbar, weshalb die Taktung eines<br />

einzelnen CPU-Kerns entscheidend<br />

für die Performance ist. Ein 2-GHz-Kern<br />

liegt nur leicht über der Performance des


Image mounten<br />

ARM-Prozessors im Raspberry Pi selbst,<br />

die Vorteile dieser Methode liegen also<br />

eher in der Flexibilität.<br />

Beeren pflücken<br />

Um das Raspberry-Pi-Image an die eigenen<br />

Bedürfnisse anzupassen, mountet<br />

der Entwickler es am besten mit einem<br />

kleinen Skript [3], das hier im Beispiel<br />

aus der Portierung der quelloffenen Telefonanlage<br />

Gemeinschaft 5 [4] stammt:<br />

mnt‐pi‐img.sh 2013‐02‐09‐wheezy‐raspbian.U<br />

img /mnt<br />

Es berücksichtigt die zwei Partitionen, die<br />

das Image enthält: Eine FAT-Partition für<br />

den Bootbereich und eine Ext-4-Systempartition.<br />

Zudem setzt es Loop Mounts<br />

für »/dev/pts«, »/sys« und »/proc« und<br />

kopiert die Qemu-Emulatordatei an die<br />

richtige Stelle im Dateisystem, damit sie<br />

innerhalb der Chroot-Umgebung zur Verfügung<br />

steht. Man sollte das Skript auch<br />

beim finalen Aushängen der Gerätedateien<br />

verwenden. <strong>Der</strong> Befehl<br />

sudo chroot /mnt<br />

Image bereinigen<br />

wechselt direkt in die Chroot-Umgebung.<br />

Hier nimmt der Entwickler alle notwendigen<br />

Änderungen vor, zu denen unter<br />

anderem das Installieren und Deinstallieren<br />

von Paketen über »apt‐get«, das Kompilieren<br />

von Software und das Anpassen<br />

Notwendige<br />

Softwarepakete<br />

installieren<br />

der Konfiguration gehören. Es ist in der<br />

Tat fast so, als würde man tatsächlich<br />

auf einem Raspberry Pi arbeiten. Nur<br />

Dienste, die der Entwickler starten muss,<br />

um sie zu konfigurieren (etwa MySQL),<br />

sind schwieriger zu handhaben. Läuft ein<br />

ähnlicher Netzwerkdienst mit gleichem<br />

Port bereits auf dem Hostsystem, lässt er<br />

sich nicht ein zweites Mal starten.<br />

Das tatsächliche Laufzeitverhalten unterscheidet<br />

sich also, abhängig vom Anwendungsfall,<br />

von dem auf einem echten<br />

Gerät. Im Zweifel behilft sich der<br />

Image-Bastler damit, die gewünschten<br />

Kommandos in einem Initskript zusammenzufassen,<br />

welches das System beim<br />

ersten Booten des Image abarbeitet und<br />

das sich dann selbst löscht.<br />

Theorie und Praxis<br />

Eigene Software aus<br />

Git-Repository laden<br />

und installieren<br />

Bereitstellung und Pflege eines Image<br />

sind relativ aufwändig, und gewöhnlich<br />

will der Entwickler ja in erster Linie, dass<br />

die eigene Software läuft. Wer ein von der<br />

Community betreutes Image für das Gerät<br />

verwendet, muss dieses nicht ständig an<br />

neue Entwicklungen auf dem Raspberry<br />

Pi selbst anpassen. Gemeinschaft 5 verwendet<br />

aus diesem Grund das originale<br />

Debian-Image.<br />

Das Erstellen der ISO-Dateien auf dem<br />

Gerät übernehmen eigens entwickelte<br />

Hook-Skripte, die in Debian Live laufen,<br />

Bootskript für Erststart<br />

und Anpassungen zur<br />

Laufzeit aktivieren<br />

Abbildung 1: In mehreren Schritten erstellt man aus einem Community-betreuten Debian-Image für ARM ein angepasstes Image für den Raspberry Pi.<br />

Image unmounten<br />

aber unabhängig von der CPU-Architektur<br />

funktionieren. Damit diese Hook-Skripte<br />

auch auf dem Raspberry Pi laufen, erzeugen<br />

wieder andere Skripte eine Systemumgebung,<br />

die der von Debian Live<br />

entspricht. Später aktualisiert eine dritte<br />

Variante von Skripten die Software über<br />

Apt-get- oder Git-Repositories.<br />

Lediglich das Bauen eines Image mit neu<br />

angepassten Skripten dauert nun noch<br />

fünf bis sechs Stunden, was über Nacht<br />

passieren kann. Steht das Grundgerüst<br />

aber erst mal, sind Anpassungen und Erweiterungen<br />

schnell erledigt. Gekoppelt<br />

mit einem Git-Repository und Jenkins CI<br />

entsteht sogar eine kontinuierliche Integrations-<br />

und Buildumgebung. (kki) n<br />

Infos<br />

[1] Jenkins CI: [http://jenkins-ci.org]<br />

[2] Qemu: [http://wiki.qemu.org]<br />

[3] Raspberry-Pi-Image mounten:<br />

[https:// github. com/ amooma/ GPiBE/ blob/​<br />

master/ tools/ mnt‐pi‐img. sh]<br />

[4] Gemeinschaft 5:<br />

[http:// amooma. de/ gemeinschaft/ gs5]<br />

<strong>Der</strong> Autor<br />

Julian Pawlowski lebt in München und arbeitet als<br />

freiberuflicher IT-Projektmanager im internationalen<br />

Umfeld. Er ist seit 2012 im Core-Team der<br />

Telefonanlagen-Software Gemeinschaft und dort<br />

für den Release-Prozess verantwortlich.<br />

Architektur-Emulation 06/2013<br />

Titelthema<br />

www.linux-magazin.de<br />

31<br />

NEU NEU NEU<br />

Webseiten ab sofort,<br />

RUCK ZUCK und<br />

mit wenigen Klicks<br />

selbst erstellen!!!<br />

Mit dem CANDAN Homepage­Baukasten!<br />

Buchbar schon ab 1.50 € monatlich!<br />

Weitere Webspace­Angebote CMS­Systeme Shop­Systeme SSL­Certs Hosted Exchange Spezial­Angebote u.v.m. auf www.candan.eu


Titelthema<br />

www.linux-magazin.de ARM-Platinen 06/2013<br />

32<br />

Preiswerte ARM-Platinencomputer<br />

Planet für Bastler<br />

Es ist ein bisschen ungerecht, dass der Hype um den Raspberry Pi den vielfältigen Rest dieser Geräteklasse<br />

überstrahlt. Denn viele der Ein-Platinen-Computer haben mit ihrer Rechenpower, zahlreichen Schnittstellen und<br />

gutem Preis-Leistungs-Verhältnis das Zeug, den Hertzschlag des Bastlers zu beschleunigen. Martin Loschwitz, Jan Kleinert<br />

© Brad Lewis, 123RF.com<br />

nicht scheuen, können bei fernöstlichen<br />

(Ebay-)Händlern Boards noch billiger erwerben.<br />

Die größte Ersparnis winkt jedoch<br />

bei der Peripherie – Displays und<br />

Sensoren sind für ein paar Hongkong-<br />

Dollar zu haben, und bei Einzelbestellungen<br />

bleibt man in der Regel unter der<br />

Zoll-Freigrenze.<br />

Wer dieser Tage auf Messen und Konferenzen<br />

umherstreift, gewinnt den Eindruck,<br />

dass der Raspberry Pi das Zentralgestirn<br />

aller Geeks und Nerds ist. Was<br />

als Projekt für Bildungscomputer startete,<br />

ist im Mainstream angekommen. Wer<br />

technikmäßig etwas auf sich hält, nennt<br />

mindestens einen der Minicomputer sein<br />

Eigen. Und wenn selbst der für exotische<br />

Zielgruppen unverdächtige „Spiegel“ Online-Artikel<br />

wie „Mini-Rechner Raspberry<br />

Pi: So basteln Sie einen Smart-TV für 60<br />

Euro“ veröffentlicht, macht das klar: Das<br />

Thema hat die Geek-Umlaufbahn verlassen<br />

und setzt zur Landung in dicht<br />

bewohntem Gebiet an.<br />

Die Vermutung, dass im Gefolge des<br />

Raspberry-Pi-Erfolgs auch andere günstige<br />

Ein-Platinen-Computer zu Ruhm<br />

kommen, erweist sich bislang als falsch.<br />

Die wahrscheinlich anfänglich euphorischen<br />

Hersteller müssen den Raspberry-<br />

Hit mittlerweile als Fluch erleben. Denn<br />

obwohl ihre Produkte oft besser ausgestattet,<br />

von Profis entwickelt, länger am<br />

Markt und mit stärkeren CPUs und GPUs<br />

ausgerüstet sind, können sie vom Raspberry-Boom<br />

kaum profitieren.<br />

Dieser Artikel will das ändern und bietet<br />

einen Überblick über durchweg nennenswerte<br />

Pi-Alternativen und beschreibt deren<br />

Ausstattung. Generell gilt, dass alle<br />

Bastelrechner mit ARM-CPUs arbeiten<br />

und Linux-fähig sein müssen. Häufig bekommt<br />

man ohne Mühe auch Android<br />

zum Laufen. Viele Hersteller bieten zudem<br />

Open-Source-Frameworks für ihre<br />

Produkte an und – anders als bei Tablet-<br />

PCs – entwickeln sie auch weiter.<br />

Damit ein Gerät es in diesen Artikel<br />

schaffen konnte, muss es zudem über<br />

einen Händler in Europa zu beziehen<br />

sein, um die nervige Fahrt zum Zollamt<br />

zu vermeiden. Bastler, die den Aufwand<br />

Pc Duino<br />

Den Anfang macht Pc Duino [2], der<br />

dem Raspberry Pi gar nicht so unähnlich<br />

ist. Das von der gleichnamigen Firma hergestellte<br />

Rechnerlein bietet im Vergleich<br />

zum Pi durchaus Mehrwert: 1 GByte<br />

RAM und 2 GByte fest installierter Nand-<br />

Speicher sind mehr, als jede Himbeere<br />

bieten kann. Das Rechnen übernimmt<br />

eine Cortex-A8-CPU, die permanent mit<br />

einer Taktrate von 1 GHz läuft. Anders<br />

als der Raspberry Pi nimmt Pc Duino<br />

keine SD-Karten, sondern die kleineren<br />

Micro-SD-Karten auf. HDMI- sowie RJ-<br />

45- und zwei USB-Anschlüsse gehören<br />

zum Standardprogramm.<br />

In Sachen Betriebssystem läuft auf Pc<br />

Duino alles, was auf einer ARM-CPU<br />

grundsätzlich lauffähig ist. Etwas verquer<br />

nennt der Hersteller „Linux 3.0 +<br />

Pc Duino<br />

CPU: Cortex-A8, 1 GHz<br />

Externer RAM: 1 GByte<br />

Anschlüsse: Micro-USB<br />

(Strom), Arduino-Pin,<br />

HDMI, 2x USB, RJ-<br />

45, Jtag, Micro-SD<br />

Onboard-Speicher: 2 GByte Nand-Flash<br />

Abmessungen: 125 x 52 Millimeter<br />

Preis: ab 50 Euro<br />

Bezugsquelle: EXP Tech,<br />

[http:// www. exp‐tech. de]


Ubuntu 12.10“, natürlich sind auch andere<br />

ARM-Distributionen möglich, wenn<br />

auch ohne den offiziellen Segen des Herstellers.<br />

<strong>Der</strong> Pc Duino bildet damit eine<br />

großartige Alternative zum Raspberry Pi,<br />

die preislich durchaus attraktiv ist, weil<br />

der Kasten in Europa bereits unter 50<br />

Euro zu haben ist. Kompatibel mit dem<br />

bürgerlichen Wohnzimmer ist das Gerät<br />

allerdings nicht, denn passende Gehäuse<br />

sind im Augenblick nicht zu bekommen.<br />

Wer nicht auf Geek-Romantik steht, muss<br />

vorerst die Platine hinter einer Vase oder<br />

Kuckucksuhr verstecken.<br />

Pandaboard ES<br />

<strong>Der</strong> nächste Kandidat, das Pandaboard<br />

ES [3], begründet die zweite Evolutionsstufe<br />

der einigermaßen bekannten Pandaboards.<br />

Jene richtet sich vorrangig an<br />

solche Entwickler, die Hardware zum<br />

Testen suchen. Pandaboard ES will mehr<br />

sein als der Rasp berry Pi.<br />

Das wird zunächst beim Preis deutlich,<br />

denn das ES gibt sich mit rund 170 Euro<br />

nicht bescheiden. Wer noch rund 65 Euro<br />

drauflegt, erhält ein „Multimedia Kit“,<br />

das zum Board ein Gehäuse, Micro-USB-<br />

Netzteil, eine SD-Karte mit 8 GByte, eine<br />

externe WLAN-Antenne und ein HDMI-<br />

Kabel enthält. Wer bedenkt, dass<br />

Netbooks und Nettops bereits für ähnliche<br />

Preise zu haben sind, überlegt sich<br />

die Anschaffung genau.<br />

Die inneren Werte des Pandaboard ES<br />

stimmen: Eine Dualcore-Cortex-A9-CPU<br />

sorgt für Taktgefühl mit bis zu 1,2 GHz,<br />

dem 1 GByte RAM zur Seite stehen.<br />

HDMI, Netzwerk und WLAN gehören<br />

zum Paket genau wie Bluetooth und USB-<br />

Ports. Wer ein LCD-Display anschließen<br />

will, kann das tun. Jtag steht für Debugging<br />

zur Verfügung, sogar ein zweiter<br />

Monitor lässt sich ansprechen.<br />

Skurriles Detail: Um keinen vollständigen<br />

DVI-Anschluss verbauen zu müssen,<br />

kommt das Pandaboard ES mit einer<br />

zweiten HDMI-Schnittstelle, die in<br />

Wirklichkeit ein DVI-D-Port ist und nur<br />

funktioniert, wenn man sie kombiniert<br />

mit einem HDMI-DVI-D-Adapter verwendet.<br />

Als Speichermedium schluckte das<br />

Pandaboard ES eine SD-Karte, auf der wie<br />

gehabt praktisch jedes ARM-Linux eine<br />

gemütliche Heimat findet.<br />

Beagleboard xM<br />

Das Beagleboard xM [4] verfolgt einen<br />

anderen Ansatz als das Pandaboard ES<br />

und Pc Duino. Die Entwickler erklären<br />

auf ihrer Website ausdrücklich, dass<br />

das Geräte keine fertige Entwicklungsplattform<br />

sein soll, sondern lediglich<br />

eine Community-basierte Grundlage, auf<br />

der Entwicklungsplattformen aufsetzen<br />

können. Bis auf die eingebaute serielle<br />

Schnittstelle ist die Hardware Hausmannskost<br />

und der Raspberry-Pi-Hardware<br />

überdies recht ähnlich. Dazu gehört<br />

die Cortex-A8-CPU mit 1 GHz genauso<br />

wie die 512 MByte RAM.<br />

Den externen Anschluss eines Monitors<br />

ermöglicht der als HDMI-Anschluss ausgeführte<br />

DVI-D-Port. Vier USB-Ports sind<br />

bei den vorgestellten Geräten Spitze, RJ-<br />

45 ist selbstverständlich vorhanden. Wer<br />

einen Fernseher mit S-Video-Eingang hat,<br />

kann das Beagleboard XM auch darüber<br />

laufen lassen. <strong>Der</strong> lokale Speicher kommt<br />

von einer Micro-SD-Karte, eine 4-GByte-<br />

Karte liegt dem Gerät bei.<br />

In Sachen Betriebssystem kommt der Beagle<br />

mit allem zurecht, was ARM unterstützt,<br />

dazu gehören Debian und Ubuntu.<br />

Allein beim Preis, 150 Euro, büßt das xM<br />

an Attraktivität ein. Wenigstens ist ein<br />

Gehäuse aus Plastik verfügbar, das die<br />

Technik versteckt – auch wenn man es<br />

separat erwerben muss.<br />

Cubieboard<br />

Als Raspberry-Pi-Killer bringt Cubieboard<br />

eine Platine gleichen Namens [5] in Stellung.<br />

Schon preislich rangiert das Cubieboard<br />

im gleichen Segment: 49 US-Dollar<br />

lautet der Listenpreis. In Deutschland<br />

muss man derzeit knapp 60 Euro berappen,<br />

voraussichtlich wird der Preis noch<br />

etwas fallen, denn das Cubieboard ist<br />

frisch am Markt. Wer 10 Euro mehr aufwendet,<br />

bekommt ein Kit, bestehend aus<br />

Board, USB-Stromkabel, SATA-Kabel und<br />

einem einfachen Gehäuse.<br />

Ein Cortex-A10-Prozessor mit 1 GHz sorgt<br />

für mehr Rechenleistung als die 700-MHz-<br />

CPU des Raspberry Pi, 1 GByte DDR3-<br />

Speicher sind ebenfalls mehr, als der Pi<br />

bietet. 4 GByte fest installierter Nand-<br />

Flashspeicher machen einen Micro-SD-<br />

Kartenslot theoretisch überflüssig, trotzdem<br />

ist er vorhanden. Zwei USB- und ein<br />

RJ-45-Port helfen verbinden.<br />

Monitore steuert der Cubie über einen<br />

echten HDMI-Anschluss an. Ein Klinkenstecker<br />

liefert Audiosignale, falls der Ton<br />

nicht ohnehin über HDMI an die Außenwelt<br />

dringt. Das Cubieboard besitzt<br />

spannenderweise einen SATA-Port, um<br />

entsprechende Storage-Devices direkt mit<br />

dem Device zu verbinden.<br />

Insgesamt stellt das Cubieboard also eine<br />

sehr interessante Alternative zum derzeitigen<br />

Platzhirsch dar, auch mit Blick auf<br />

den Preis. Die Installation von Ubuntu<br />

funktioniert gut, auf der Produktwebsite<br />

findet sich zudem eine Video-Anleitung,<br />

ARM-Platinen 06/2013<br />

Titelthema<br />

www.linux-magazin.de<br />

33<br />

Pandaboard ES<br />

Beagleboard xM<br />

Cubieboard<br />

CPU: Dualcore<br />

Cortex-A9,<br />

1,2 GHz<br />

Externer RAM:<br />

1 GByte DDR2<br />

Anschlüsse: Micro-USB (USB-OTG), Strom,<br />

HDMI, 2x USB, RJ-45, Jtag, SD<br />

Funk-Technologie: WLAN, Bluetooth<br />

Abmessungen: 114 x 102 Millimeter<br />

Preis: ab 170 Euro<br />

Bezugsquelle: Tigal,<br />

[http:// www. tigal. com]<br />

CPU: Cortex-A8,<br />

1 GHz<br />

Externer RAM:<br />

512 MByte DDR2<br />

Anschlüsse: Micro-USB<br />

(USB-OTG), DVI-D (als HDMI-Port),<br />

4x USB, RJ-45, Jtag, Micro-SD, Stereo Out/​<br />

In, S-Video, RS-232, Kamera, Strom<br />

Abmessungen: 76 x 76 Millimeter<br />

Preis: ab 150 Euro<br />

Bezugsquelle: Wetterott,<br />

[http:// www. wetterott. com]<br />

CPU: Cortex-<br />

A10, 1 GHz<br />

Externer<br />

RAM: 1 Gbyte<br />

DDR3<br />

Anschlüsse: Micro-USB (USB-OTG für die<br />

Stromzufuhr), HDMI, 2xUSB, RJ-45, Jtag,<br />

Micro-SD, 3,5-Millimeter-Klinke<br />

Abmessungen: 100 x 60 Millimeter<br />

Preis: ca. 60 Euro<br />

Bezugsquelle: EXP Tech,<br />

[http:// www. exp‐tech. de]


Titelthema<br />

www.linux-magazin.de ARM-Platinen 06/2013<br />

34<br />

die unter Mithilfe von Berry zu einem<br />

lauffähigen System führt.<br />

Cubox<br />

Dass ARM-Entwicklerboards auch Nicht-<br />

Entwickler ansprechen, ist den Herstellern<br />

der Systeme freilich nicht entgangen.<br />

Für das Raspberry Pi kursieren im<br />

Netz bereits diverse Anleitungen, um aus<br />

dem Rechner in Kreditkartengröße einen<br />

Fileserver oder ein Multimediasystem zu<br />

machen. Die Firmen reagieren auf diesen<br />

Trend zum Minisystem und bringen im<br />

Augenblick auch Entwicklerboards im<br />

schönen Gehäuse auf den Markt.<br />

Die Cubox [6] ist ein Beispiel hierfür.<br />

Denn im Grunde ist die Cubox gar nicht<br />

spektakulär: Ein ARM-PJ4-Prozessor mit<br />

800 MHz gehört wirklich nicht zu dem,<br />

was die Spitze in diesem Segment im<br />

Augenblick zu bieten hat. Auch 1 GByte<br />

RAM ist Standard. Auftrumpfen kann die<br />

Cubox am ehesten mit ihren Anschlüssen:<br />

Gigabit-Ethernet sucht man bei manch<br />

anderen Geräten ebenso vergebens wie<br />

einen E-SATA-Port. Ansonsten erhält der<br />

Kunde Hausmannskost: zwei USB-Ports,<br />

S/​PDIF-Ausgang, Micro-SD und Micro-<br />

USB für die Stromversorgung.<br />

Wer mehr Geld auf den Tisch legt, erhält<br />

die Pro-Ausstattung mit 2 GByte RAM.<br />

Apropos: Die Cubox siedelt sich auf Augenhöhe<br />

mit den teureren Developer-<br />

Boards an, die Grundversion kostet umgerechnet<br />

145 Euro und die Pro-Version<br />

175 Euro. Beide sind derzeit nur über einen<br />

Händler in England zu bekommen.<br />

Wandboard<br />

Das Wandboard [7] ist ein typischer SoC-<br />

Computer, der mit nützlichen Zusatzfeatures<br />

aufwartet. <strong>Der</strong> Hersteller liefert<br />

Cubox<br />

CPU: 800-MHz-<br />

PJ4<br />

Externer RAM:<br />

1 GByte DDR3<br />

Anschlüsse:<br />

Micro-USB (USB-OTG für Strom), HDMI, 2x<br />

USB, RJ-45, Micro-SD, E-SATA, S/​PDIF<br />

Abmessungen: 54 x 54 x 42 Millimeter<br />

Preis: ab ca. 145 Ero<br />

Bezugsquelle: New IT,<br />

[http:// www. newit. co. uk]<br />

das System in zwei Varianten, eine mit<br />

Single- und eine mit Dualcore-CPU. Die<br />

Dual-Variante kommt mit 1 GByte RAM<br />

und WLAN sowie Gigabit-Ethernet daher.<br />

Beide bieten HDMI, Audio, RS-232, einen<br />

USB- und einen Micro-USB-Port für USB-<br />

OTG und Stromversorgung.<br />

Anders als die anderen Entwicklerboards<br />

kann das Wandboard zwei Micro-SD-<br />

Karten aufnehmen. Wer nicht die bloße<br />

Platine will, kann ein passendes Gehäuse<br />

mitbestellen. Preislich orientiert sich das<br />

Wandboard im Mittelfeld: Die Dual-Version<br />

mit Gehäuse und WLAN-Antenne<br />

kommt auf 110 Euro.<br />

Toradex Colibri T20<br />

Wandboard<br />

CPU: Freescale<br />

Cortex-A9 (Single-<br />

oder Dualcore),<br />

1 GHz<br />

Externer RAM:<br />

512 MByte/​1 GByte<br />

Anschlüsse: Micro-USB (OTG für die Stromzufuhr),<br />

HDMI, 2x Micro-SD, USB, RJ-45, RS-<br />

232, 3,5-Millimeter-Klinkenstecker, S/​PDIF<br />

Funk-Technologie: WLAN inklusive Antenne<br />

(nur Dualcore)<br />

Abmessungen: 95 x 95 Millimeter<br />

Preis: Singlecore ab 60, Dualcore ab 76 Euro<br />

Bezugsquelle: Denx CS,<br />

[http:// www. denx‐cs. de]<br />

Hauptberufliche Embedded-Entwickler<br />

nehmen die Arbeit ab einer Klasse auf,<br />

für die die Colibri-T20-Produktfamilie [8]<br />

beispielhaft stehen kann. <strong>Der</strong> Schweizer<br />

Hersteller liefert dem Käufer ein Carrierboard,<br />

auf dem Huckepack ein kleineres<br />

CPU-Board sitzt. <strong>Der</strong> Gag ist, dass es von<br />

beiden Platinen mehrere Versionen gibt<br />

und jede gegen jede austauschbar ist. Als<br />

Entwickler bestellt man sich das Pärchen,<br />

das dem späteren Gerät am ähnlichsten<br />

ist, und legt los. <strong>Der</strong> Hersteller erhofft<br />

sich, dass beim späteren Serienprodukt<br />

wieder sein CPU-Modul zum Einsatz<br />

kommt.<br />

Als geschickt in Sachen Grafikleistung<br />

darf auch die Bestückung mit dem Nvidia-Gforce-Chip<br />

bezeichnet werden, denn<br />

Full-HD-Videos in Hardware zu dekodieren<br />

und per HDMI zu übertragen ist bei<br />

dieser Ausstattung kein Problem. Bei der<br />

Art und Menge der Ports und Anschlusspins<br />

macht sich die Ausrichtung auf Profis<br />

bemerkbar, bei den Preisen auch.<br />

Cotton Candy<br />

Weit vom Entwicklerboard ist Cotton<br />

Candy [9] entfernt. <strong>Der</strong> Hersteller beschreibt<br />

sein Produkt als „Any Screen<br />

Microcomputer“ und gibt so die Marschrichtung<br />

vor: Cotton Candy erreicht im<br />

geschlossenen Gehäuse den Käufer und<br />

soll sich unterwegs mit jedem Bildschirm<br />

problemlos verbinden lassen. Eine A9-<br />

Cortex-CPU mit zwei Kernen zu je 1,2<br />

GHz treibt den Stick an, 1 GByte RAM<br />

reicht für die meisten Dinge aus.<br />

Das Gerät lässt sich um eine Micro-SD-<br />

Karte erweitern, kommt mit einem HDMI-<br />

Anschluss und benötigt lediglich den<br />

Saft, den ein USB-Anschluss bereitstellt,<br />

beispielsweise den eines USB-Hub am<br />

Monitor. <strong>Der</strong> Stick sieht schön aus und ist<br />

überaus handlich – als tragbarer Mini-PC,<br />

der wirklich überall nutzbar ist.<br />

Compulab Trim Slice Pro<br />

Recht mutig mutet das Geschäftsmodell<br />

von Compulab an. Die Firma hat in Form<br />

des Trim Slice Pro [10] einen Minicomputer<br />

auf den Markt gebracht, der ganz<br />

ähnlich wie Cotton Candy ein Überall-<br />

Computer sein soll, sich aber mit insgesamt<br />

3 Watt Stromaufnahme zufrieden<br />

gibt. In Sachen Hardware hebt sich das<br />

Gerät erstmal nicht maßgeblich von den<br />

Konkurrenten ab.<br />

Toradex Colibri T20<br />

Vier kompatible<br />

CPU- und vier<br />

Carrierboards<br />

verfügbar. Zum<br />

Beispiel:<br />

CPU: Nvidia Tegra<br />

2 (Cortex-A9 Dualcore), 1 GHz<br />

Externer RAM: 512 MByte DDR2<br />

Anschlüsse: 2x USB (OTG für die Strom),<br />

HDMI (Dual-Display-Controller), 2x Micro-SD,<br />

100-MBit/s-Ethernet, 2x I 2 C + DDC, 4x SPI,<br />

1x One-Wire, 3x RS-232, 3,5-Millimeter-Klinkenstecker,<br />

Anschlüsse für RGB- und LVDS-<br />

Displays, diverse Analog- und Digital-Pins<br />

Abmessungen: 100 x 72 Millimeter<br />

Preis: T20 512MB V1.2A ca. 100 Euro; Iris<br />

Carrier Board ca.80 Euro<br />

Bezugsquelle: Montadex,<br />

[http://www.toradex.com]


Im Innern des Geräts verrichtet eine Nvidia-Tegra-2-CPU<br />

(Cortex A9) mit 1 GHz<br />

ihren Dienst, 1 GByte RAM steht ihr zur<br />

Seite. USB- und Micro-USB-Anschlüsse<br />

sind genauso vorhanden wie S/​PDIF,<br />

Gigabit-Ethernet WLAN und ein Slot für<br />

SD-Karten. Ein RS-232-Anschluss entsteht<br />

per Adapter, die Video gibt’s über<br />

HDMI und DVI-D.<br />

So weit, so normal – als Besonderheit<br />

liefert der Hersteller das Gerät mit einer<br />

32 GByte großen SSD aus, die sauber<br />

in das Gehäuse integriert ist. Allein der<br />

Preis sorgt tatsächlich für Verwunderung:<br />

Stolze 460 Euro will der französische<br />

Distributor IPC4U für das Gerät<br />

haben. Wo der Vorteil von einer echten<br />

SSD gegenüber einer gleich großen Micro-SD-Karte<br />

liegt, verrät der Hersteller<br />

jedoch nicht. Wer auf der Suche nach<br />

dem Außergewöhnlichen ist, wird beim<br />

Cotton Candy<br />

CPU: Cortex-A9<br />

Dualcore, 1,2 GHz<br />

Externer RAM: 1<br />

GByte DDR3<br />

Anschlüsse: USB (für die Stromzufuhr),<br />

Micro-USB (OTG) HDMI, Micro-SD<br />

Funk-Technologie: WLAN, Bluetooth<br />

Abmessungen: 80 x 25 x 10 Millimeter<br />

Preis: ab ca. 155 Euro<br />

Bezugsquelle: C-Stick (Norwegen),<br />

[http:// store. cstick. com]<br />

Trim Slice Pro fündig, muss aber den<br />

Prestige-Faktor finanziell entrichten.<br />

Weiter oben<br />

Die hier getroffene Auswahl beschreibt<br />

nur einen Bruchteil des Marktes, bildet<br />

ihn aber beispielhaft ab. Wer ungefähr<br />

500 Euro anlegt, bekommt ein echtes<br />

Entwicklerkit, das aus einem etwa PC-<br />

Hauplatinen-großen Evaluationsboard<br />

mit schier unendlich vielen Schnittstellen,<br />

IO-Pins und Steckern besteht. Darauf<br />

thront dann eine handliche CPU-Platine,<br />

von der es meist mehrere Modelle gibt.<br />

Gewöhnlich liegen dem Kit noch diverse<br />

Kabel und ein kleiner Touchscreen bei,<br />

außerdem eine DVD mit Betriebssystemen<br />

und viel Entwicklersoftware.<br />

Trim Slice Pro<br />

CPU: Nvidia<br />

Tegra 2 (Cortex-A9),<br />

1 GHz<br />

Externer RAM: 1 GByte DDR3<br />

Anschlüsse: Strom, Micro-USB (OTG) HDMI,<br />

DVI-D, SD, 3x USB, RJ-45, RS-232, WLAN-<br />

Antenne, 3,5-Millimeter-Klinkenstecker,<br />

SATA (intern)<br />

Funk-Technologie: WLAN, Bluetooth<br />

Abmessungen: 130 x 95 x 15 Millimeter<br />

Preis: ab rund 460 Euro<br />

Bezugsquelle: IPC4U (Frankreich),<br />

[http:// www. ipc4u. fr]<br />

Am günstigsten erwirbt man Boards der<br />

200-Euro-Klasse übrigens bei den Spezialmessen,<br />

zum Beispiel der Embedded<br />

World in Nürnberg. Fast immer finden<br />

sich ein Aussteller, der Besuchern gegen<br />

eine Visitenkarte und 10 oder 20 Euro<br />

Schutzgebühr ein solches System in die<br />

Hand drückt.<br />

n<br />

Infos<br />

[1] Konrad Lischka, „Mini-Rechner Raspberry<br />

Pi: So basteln Sie …“:<br />

[http:// www. spiegel. de/ netzwelt/ gadgets/ r<br />

aspbmc‐dieser‐multimediaplayer‐kostet‐<br />

60‐euro‐a‐893773. html]<br />

[2] Pc Duino: [http:// www. pcduino. com]<br />

[3] Pandaboard ES: [http:// pandaboard. org/​<br />

content/ pandaboard‐es]<br />

[4] Beagleboard xM:<br />

[http:// beagleboard. org/ hardware‐xM]<br />

[5] Cubieboard: [http:// cubieboard. org]<br />

[6] Cubox: [http:// solid‐run. com]<br />

[7] Wandboard: [http:// www. wandboard. org]<br />

[8] Toradex Colibri T20:<br />

[http://www.toradex.com/products/colibriarm-computer-modules/colibri-t20]<br />

[9] Cotton Candy: [http:// www. fxitech. com]<br />

[10]Trim Slice Pro: [http:// trimslice. com/ web/]<br />

<strong>Der</strong> Autor<br />

Martin Gerhard Loschwitz arbeitet als Principal<br />

Con sultant für HA bei Hastexo. In der Frei zeit<br />

pflegt den Linux-Cluster-Stack für Debian.<br />

ARM-Platinen 06/2013<br />

Titelthema<br />

www.linux-magazin.de<br />

35<br />

Igel’s neuer HDX soc-THIn clIenT<br />

Perfekte Ausstattung bei minimalen Maßen:<br />

Multiprotokoll system-on-chip (soc)-Device<br />

Performante Multimediabeschleunigung für<br />

citrix ® HDX TM und Microsoft ® remoteFX TM<br />

Jetzt schon in der Thin client-einstiegsklasse<br />

Full-HD Videos abspielen<br />

Hervorragendes Preis-/leistungsverhältnis<br />

Intelligente Remote Management Software –<br />

Igel universal Management suite (uMs)<br />

schon ab<br />

€ 239,–<br />

zzgl. MwSt.<br />

Fordern Sie jetzt Ihre kostenlose Teststellung an:<br />

www.igel.com/de/testen<br />

facebook.com/igel.technology<br />

Igel Technology – Thin client software & Hardware<br />

twitter.com/igel_tech_dach<br />

Many functions. One device.


Titelthema<br />

www.linux-magazin.de ARM-Server 06/2013<br />

36<br />

<strong>Der</strong> Aufstieg des ARM-Servers<br />

Schmalspur?<br />

Immer wieder erscheinen Berichte, dass die Ära des ARM-Servers beginne. Beispielsweise stehe der Einzug ins<br />

Rechenzentrum unmittelbar bevor. Ist das wirklich wahr? <strong>Der</strong> Artikel trägt den Status quo zusammen. Udo Seidel<br />

des geringeren Stromverbrauchs und bei<br />

der Abwärme wieder auffressen.<br />

Die harte Tour<br />

Richard Semik, 123rf.com<br />

Per Design besteht ein ARM-Prozessor<br />

[1] aus deutlich weniger Bauteilen als<br />

beispielsweise eine Intel-CPU, was die<br />

Herstellungskosten senkt. Quasi als Bonus<br />

entwickeln sie weniger Wärme und<br />

benötigen weniger Strom. So ist es auch<br />

nicht verwunderlich, dass Hersteller mobiler<br />

Kleingeräte wie Smartphones bevorzugt<br />

auf diese Architektur zurückgreifen.<br />

Mit Android ist auch ein Linux immer<br />

noch mit von der Partie – damit ist aber<br />

noch lange nicht Schluss.<br />

Im Rechenzentrum<br />

Dass Linux mit der ARM-Architektur<br />

(Abbildung 1) zusammenarbeitet, versteht<br />

sich von selbst. Aber warum sollte<br />

man die CPUs im Rechenzentrum einsetzen?<br />

Mit HP [2] und Dell [3] glauben<br />

zumindest gleich zwei große Hardwarehersteller<br />

an ARM-Server im großen<br />

Stil. Tabelle 1 zeigt die Server von HP<br />

und Dell im Vergleich. Bei Dell ist eine<br />

Festplatte pro Server fest verbaut. Bei HP<br />

wählt der Admin zwischen Server und<br />

Storage. Die normierte Anzahl der Server<br />

sieht analog zu Dell einen Datenträger<br />

pro Server vor.<br />

Die Gründe für den Einsatz dieser Architektur:<br />

geringere Herstellungs- und<br />

Betriebskosten. Spätestens mit dem Siegeszug<br />

der Smartphones ist die ARM-<br />

Technologie Massenware, was die Chips<br />

auch preislich interessant macht.<br />

Was fehlt noch für die Rechenzentrums-<br />

Tauglichkeit? Genau genommen sind das<br />

mehrere Fragen: Gibt es Verwaltungsschnittstellen<br />

wie IPMI (Intelligent Platform<br />

Management Interface), um Hunderte<br />

oder Tausende von ARM-Servern<br />

zentral zu verwalten? Existieren Portierungen<br />

der entsprechenden Software für<br />

die neue Architektur? Erst seit reichlich einem<br />

Jahr verfügt ARM über einen 64-Bit-<br />

Befehlssatz [4] – ist 32 Bit überhaupt<br />

noch zeitgemäß? Ersetzt diese Architektur<br />

die Virtualisierung oder erweitert sie<br />

das Anwendungsfeld? Zu diskutieren ist<br />

auch, ob versteckte Kosten die Vorteile<br />

<strong>Der</strong> Ansatz, dass nicht der Designer die<br />

Chips produziert, ist zweischneidig. Man<br />

könnte argumentieren, dass es so deutlich<br />

mehr mögliche Hersteller gibt, was<br />

der Verbreitung an sich hilft und dem<br />

Erfolg nicht wirklich schadet. Allerdings<br />

sieht sich der Einkäufer mit einer Vielzahl<br />

von Implementierungen konfrontiert<br />

und muss in mühevoller Kleinarbeit die<br />

richtige aussuchen.<br />

In diesem Zusammenhang fällt häufig der<br />

Begriff System-on-Chip (SoC). Typischerweise<br />

statten die Hersteller den Prozessor<br />

mit weiteren Komponenten aus, die<br />

normalerweise einen Computer ausmachen.<br />

Dazu gehören der Hauptspeicher,<br />

Peripheriegeräte wie USB oder Ethernet<br />

und eine Art Netzteil. Es ist schwer zu<br />

glauben, dass dies der Hardware-Standardisierung<br />

hilft. <strong>Der</strong> hohe Grad an<br />

Hardware-Vielfalt hat signifikante Auswirkungen<br />

auf die Verwaltung von Linux,<br />

das darauf laufen soll. Im ungünstigsten<br />

Fall benötigt das System pro Hardware<br />

einen eigenen Kernel.<br />

Zum Vergleich: Auf x86-Servern laufen<br />

die gängigen Enterprise-Kernel fast unabhängig<br />

vom eigentlichen Hardwarelieferanten.<br />

Wenn sich das Modell von HP<br />

und Dell durchsetzt, bereitet die bunte<br />

Vielfalt der ARM-Hardware keine Probleme<br />

mehr, da beide Hersteller signifikant<br />

in den Rechenzentren vertreten sind. Die<br />

eventuell schon vorhandenen Prozesse<br />

sind dann einfach wiederverwendbar<br />

oder leicht anzupassen. Auch ist die<br />

verwendete Hardware homogen und die<br />

Notwendigkeit, einen ganzen Strauß an<br />

Linux-Kerneln zu verwalten, entfällt.


Ein weiteres Merkmal für die Praxistauglichkeit<br />

im Rechenzentrum ist das Verwalten<br />

der Server aus Hardware-Sicht à la<br />

IPMI. Die Integration eines entsprechenden<br />

Chips auf der SoC-Platine ist wohl<br />

eher unwahrscheinlich. HP (Abbildung<br />

2) beispielsweise versieht das Gehäuse<br />

mit einer entsprechenden Schnittstelle<br />

und der Möglichkeit, die einzelnen Einschübe<br />

zu verwalten. Dieser Ansatz bewährte<br />

sich schon bei den Blade-Servern<br />

und hat damit gute Erfolgsaussichten.<br />

Bitte ein Bit<br />

Erst Ende 2011 erweiterte ARM Holdings<br />

das Design der Version 8 mit einer<br />

64-Bit-Architektur. <strong>Der</strong> größte Nachteil<br />

der 32-Bit-Version ist, wie hinlänglich bekannt,<br />

die Speicherverwaltung, die ohne<br />

Hilfsmittel nur 4 GByte RAM ansteuert.<br />

Damit schloss sich ARM selbst für den<br />

Betrieb von speicherintensiven Anwendungen<br />

aus. Die Vorgängerversion bot<br />

eine Art Workaround mit der so genannten<br />

Large Physical Address Extension<br />

(LPAE, [5]), die zumindest 40 Bit zur Adressierung<br />

von Hauptspeichern erlaubt.<br />

Dennoch: Wer jetzt auf ARM setzt, sollte<br />

zumindest für den Anfang mit 32 Bit<br />

rechnen und das für seine Anwendungsfälle<br />

entsprechend beachten.<br />

Bezogen auf die Rechenleistung kann<br />

ARM sich nicht mit der Konkurrenz von<br />

Intel und AMD messen. Vielleicht ändert<br />

sich das mit künftigen ARM-Versionen –<br />

doch ist der Vergleich für sich nicht ausreichend<br />

für eine professionelle Gesamtbewertung,<br />

da sie nur eine Dimension der<br />

Kostenbetrachtung darstellt.<br />

Bei der Kosteneffizienz schlägt ARM die<br />

Xeon-bestückten Server aber deutlich. So<br />

kostet der HP Redstone mit 1600 Serverknoten<br />

etwa 1,2<br />

Millionen US-Dollar<br />

und begnügt sich mit Eckdaten<br />

einer Leistungsaufnahme<br />

von 9,9 Kilowatt.<br />

Ein in der Leistung<br />

vergleichbarer<br />

Xeon-Server mit 400<br />

Knoten kostet dagegen<br />

etwa 3,2 Millionen US-<br />

Dollar und benötigt 91<br />

Kilowatt.<br />

Auch wenn der große<br />

Hype um die Virtualisierung<br />

abflacht, ist diese Technik nach<br />

wie vor eine gute Option, um die vorhandenen<br />

Rechnerkapazitäten möglichst effizient<br />

zu nutzen. Zieht man den Vergleich<br />

mit der x86-Welt, stellt sich die Frage, wie<br />

es bei ARM im Hinblick auf Virtualisierung<br />

aussieht. Wegen der eingeschränkten<br />

Rechenpower ist nur der Hardware-basierte<br />

Ansatz von Belang.<br />

Optionaler Bestandteil des ARM-Designs<br />

ist seit Version 7 die so genannte Virtualisierungserweiterung,<br />

die die Prozessoren<br />

Cortex-A7 und -A15 bereits mitbringen.<br />

Auf der Hypervisor-Seite gibt es ebenfalls<br />

erste Erfolge zu verzeichnen ([6]<br />

bis [9]). Doch macht sich die jahrelange<br />

Beschränkung auf 32 Bit bemerkbar –<br />

gegenwärtig ist es nicht möglich, 64-Bit-<br />

Gäste über die ARM-Virtualisierungserweiterung<br />

zu betreiben.<br />

Braucht man aber überhaupt Virtualisierung<br />

auf ARM? Prinzipiell könnte man<br />

die einzelnen Server mit den Gästen unter<br />

KVM und Xen vergleichen. Chassis-<br />

Firmware entspricht dann dem Hypervisor.<br />

Rechenjob-Verteiler und Hochverfügbarkeits-Werkzeuge<br />

runden das Bild der<br />

„Virtualisierung zum Anfassen“ ab.<br />

Die Software<br />

Zentral ist zudem, welche Betriebssysteme<br />

und Anwendungen die ARM-Server<br />

unterstützen. Linux erfüllt hier wieder<br />

einmal die Erwartung, dass es quasi auf<br />

jeder Hardware läuft. Aus dem Feld der<br />

bekanntesten Vertreter im x86-Umfeld<br />

warten Ubuntu, Debian, Fedora, Arch<br />

Linux und Open Suse mit ARM-Varianten<br />

ihrer Distribution auf. Im professionellen<br />

Einsatz kommt aber der Anspruch<br />

der Enterprise-Tauglichkeit dazu, sodass<br />

zurzeit nur Ubuntu LTS in Frage kommt.<br />

Tabelle 1: ARM-Server von HP und Dell im Vergleich<br />

HP Redstone/​<br />

Moonshot<br />

Dell Copper<br />

Höheneinheiten 4 U 3 U<br />

Server (ingesamt) 288 48<br />

Server (normiert) 72 48<br />

Server pro Einschub 4 4<br />

Quadcore-CPUs Calxeda Marvell Armada XP<br />

RAM pro Server 4 GByte 8 GByte<br />

SD-Slots pro Server 1 0<br />

SATA-Ports pro Server 4 1<br />

max. Energiebedarf 3000 Watt 750 Watt<br />

Dedicated Root-Server von HP<br />

ab 29,99 € im Monat<br />

Server<br />

HP Professional S<br />

CPU Intel XEON E3-1230<br />

Leistung<br />

Arbeitsspeicher<br />

Festplatten 7.200 rpm<br />

Anbindung<br />

KVM over IP per iLO<br />

IPv4 Adresse Inkl.<br />

IPv6 Subnetz (/64) Inkl.<br />

Betriebssysteme<br />

Extras<br />

Vertragslaufzeit<br />

Preis für bis zu 4 Monate<br />

Preis ab dem 5. Monat<br />

Einrichtungsgebühr<br />

HP ProLiant ML110 G7<br />

4 x 3,2 GHz Inkl. HT<br />

16 GB DDR3 ECC<br />

2 x 1 TB Enterprise-Edition<br />

1.000 MBit Flatrate<br />

Debian 6.0, CentOS 6,<br />

open SUSE 12.1,<br />

Ubuntu 12.04,<br />

Free BSD 9 und<br />

Neu! Windows 2012<br />

(19,99€ Aufpreis im Monat)<br />

100 GB Backup-Speicher,<br />

Monitoring, Resetund<br />

Rescue-System<br />

vSphere 5.1<br />

1 Monat<br />

29,99 €<br />

59,99 €<br />

0,00 €<br />

Kostenlos vorinstallierte<br />

Virtualisierung-Lösung mit<br />

Jetzt informieren & bestellen<br />

Tel.: 0211 / 545 957 - 300 www.webtropia.com<br />

PLATINUM PARTNER<br />

powered by


Titelthema<br />

www.linux-magazin.de ARM-Server 06/2013<br />

38<br />

Eine Sonderrolle spielt das auf Open-<br />

Source-Software für ARM spezialisierte<br />

Linaro [10]. Interessanter ist aber die<br />

Frage: Welche Anwendungen gibt es aktuell<br />

für diese Architektur?<br />

Das einfache Heranziehen der Liste der<br />

x86-Anwendungen für den Abgleich wäre<br />

nicht sehr geschickt, da die Hardware<br />

nicht in diesem Sinne vergleichbar ist.<br />

Für welche Art von Diensten eignen sich<br />

die ARM-Server? Allgemein müssen die<br />

geeigneten Anwendungen gewisse Eigenschaften<br />

erfüllen: keine x86-Abhängigkeit,<br />

leicht parallelisierbar und Ressourcenschonend.<br />

<strong>Der</strong>zeit fällt eventuell noch die<br />

32-Bit-Beschränkung ins Gewicht.<br />

In Anbetracht dieser Einschränkungen<br />

prädestiniert sich ARM für den Einsatz als<br />

Webserver (Abbildung 3). Entsprechend<br />

bietet Apache seine Software auch für<br />

diese Plattform an. Das Hadoop-Umfeld,<br />

das auf Scale-out ausgelegt ist, reiht sich<br />

ebenfalls ein. Sowohl die Apache-Distribution<br />

des Map-Reduce-Frameworks [11]<br />

als auch die Datenbank Cassandra [12]<br />

sind für ARM erhältlich. Openstack [13]<br />

ist ebenfalls mit von der Partie. Die Anhänger<br />

der verteilten Dateisysteme finden<br />

im Netz Softwarerepositories für CEPH<br />

[14] und Gluster-FS.<br />

Genau genommen stehen fast alle bekannten<br />

Vertreter der Open-Source-Szene<br />

auch für ARM zum Einsatz bereit. Firmen<br />

wie Oracle fahren hier zweigleisig. Wäh-<br />

Abbildung 2: HPs ARM-Server besteht aus vier Einschüben, die wahlweise Festplatten oder SoCs enthalten.<br />

rend sie Java auch für die Niedrig-Energie-Plattform<br />

anbieten [15], sucht man<br />

nach anderen kompatiblen Oracle-Produkten<br />

vergeblich. Auch der HPC-Markt<br />

hat die Architektur jenseits von x86 entdeckt.<br />

MPI-Software (Message Parsing<br />

Interface) wie MPICH [16] oder Open<br />

MPI [17] sind ebenso verfügbar wie Bibliotheken<br />

für BLAS (Basic Linear Algebra<br />

Subprograms, [18]) oder die schnelle<br />

Fourier-Transformation.<br />

Beim Thema Sicherheit sind für ARM-<br />

Server eigentlich keine neuen Paradigmen<br />

zu beachten. Die physikalische<br />

Zugriffsbeschränkung ist analog zu den<br />

x86-Kollegen vorzunehmen. Die höhere<br />

Server-pro-Quadratmeter-Dichte lässt<br />

eventuell zu noch mehr Vorsicht raten.<br />

Auf der Betriebssystem-Seite ändert sich<br />

ebenfalls nichts. Es ist anzunehmen, dass<br />

die Anzahl der lokalen Cracker-Werkzeuge<br />

für ARM übersichtlicher ist als in<br />

der x86-Welt. Gleichzeitig funktionieren<br />

sehr wahrscheinlich nicht-lokale Exploits<br />

für diese Plattform ebenso.<br />

Durch Secure Boot ist der Bios-Nachfolger<br />

UEFI vor allem bei Linux-Anwendern<br />

verstärkt in den Fokus gerückt. Da ARM<br />

schon seit 2008 dem UEFI-Forum angehört,<br />

wundert es nicht, dass Boards von<br />

Arndale diese neuen Schnittstellen bereits<br />

mitbringen. Das Thema Sicherheit<br />

und sicheres Booten steckt hier noch in<br />

den Kinderschuhen. Die Linux Foundation,<br />

die sich im x86-Umfeld stark für eine<br />

Secure-Boot-Lösung für Linux engagiert<br />

Quelle: Hewlett-Packard<br />

Abbildung 1: Ob NAS oder Rasbperry Pi – ARM ist aus dem Haushalt nicht mehr wegzudenken.


Besuchen Sie unsere<br />

neue Webseite:<br />

opensourcepress.de<br />

BÜCHER/E-BOOKS<br />

Quelle: armservers.com<br />

neu<br />

PDF ISBN 978-3-95539-028-0 ISBN 978-3-95539-029-7<br />

ca. 150 Seiten · E-Book · € 9,99 [D]<br />

Abbildung 3: <strong>Der</strong> Apache-Benchmark spricht eine deutliche Sprache: Im Einsatz als Webserver verbraucht die<br />

ARM-CPU bei vergleichbarer Leistung signifikant weniger Strom.<br />

hat [19], sieht deutlich weniger Handlungsbedarf<br />

für die ARM-Architektur.<br />

Fazit<br />

Die Zeichen für ARM-Server stehen auf<br />

Erfolg. Große Hardwarehersteller bieten<br />

schon entsprechende Produkte an, das<br />

Software-Angebot kann sich sehen lassen<br />

und mögliche Anwendungsfelder gibt<br />

es ebenfalls. Maßgeblich für den Erfolg<br />

wird die Antwort auf die Frage sein, ob<br />

Leistung-pro-Watt über Leistung-pro-Zoll<br />

Bauhöhe siegt. Da auch große Rechenzentren<br />

erwägen, Rechner mit ARM-Prozessoren<br />

anzuschaffen, zeigen die Daumen<br />

für diese Architektur auch im Business-<br />

Umfeld tendenziell nach oben. (tle) n<br />

Infos<br />

[1] ARM Holding: [http:// arm. com]<br />

[2] HP – Projekt Moonshot: [http:// www8.​<br />

hp. com/ de/ de/ hp‐news/ press‐release.​<br />

html? id=1118286& jumpid=reg_r1002_<br />

dede_c‐001_title_r0001#. UWcQTGZdVxM]<br />

[3] Dell on ARM: [http:// www. dell. com/ Learn/​<br />

us/ en/ 555/ campaigns/ project‐copper?​<br />

c=us& l=en& s=biz]<br />

[4] 64-Bit-Befehlssatz auf ARM: [http:// www.​<br />

arm. com/ files/ downloads/ ARMv8_Architecture.<br />

pdf]<br />

[5] ARM LPAE: [http:// www. arm. com/​<br />

products/ processors/ technologies/​<br />

virtualization‐extensions. php]<br />

[6] KVM ARM: [http:// systems. cs. columbia.​<br />

edu/ projects/ kvm‐arm/]<br />

[7] KVM-ARM-Guide: [http:// www.​<br />

virtualopensystems. com/ media/​<br />

kvm‐resources/ kvm‐arm‐guide. pdf]<br />

[8] XEN ARM: [http:// www. xen. org/ products/​<br />

xen_arm. html]<br />

[9] XEN ARM with Virtualisation Extensions:<br />

[http:// wiki. xen. org/ wiki/ Xen_ARM_with_<br />

Virtualization_Extensions]<br />

[10] Linaro: [http:// www. linaro. org]<br />

[11] Apache Hadoop: [http:// hadoop. apache. org]<br />

[12] Apache Casandra: [http:// cassandra.​<br />

apache. org]<br />

[13] Openstack für ARM: [http:// www. open<br />

stack. org/ blog/ 2012/ 07/ trystack‐org‐adds<br />

‐new‐arm‐technology‐powered‐zone]<br />

[14] Ceph: [http:// ceph. com]<br />

[15] J ava für ARM: [http:// blogs. oracle. com/​<br />

henrik/ entry/ oracle_releases_jdk_for_linux]<br />

[16] MPICH: [http:// www. mpich. org]<br />

[17] Open MPI: [http:// www. open‐mpi. de]<br />

[18] BLAS: [http:// www. netlib. org/ blas]<br />

[19] Secure Boot für Linux: [http:// blog.​<br />

hansenpartnership. com/ linux‐foundationsecure‐boot‐system‐released]<br />

<strong>Der</strong> Autor<br />

Dr. Udo Seidel ist eigentlich Mathematik- und<br />

Physik-Lehrer und seit 1996 Linux-Fan. Nach<br />

seiner Promotion hat er als Linux/​Unix-Trainer,<br />

Systemadministrator und Senior Solution Engineer<br />

gearbeitet. Heute ist er Leiter des Linux-<br />

Strategie-Teams der Amadeus Data Processing<br />

GmbH im bayerischen Erding.<br />

ISBN 978-3-95539-020-4<br />

435 Seiten · broschiert · € 29,90 [D]<br />

opensourceschool.de<br />

TRAINING<br />

27. – 29. 05. Git<br />

Programmierung<br />

03. – 06. 06. Qt für Desktop-Entwickler<br />

17. – 18. 06. C++: STL und Boost<br />

03. – 04. 06. jQuery<br />

Webentwicklung<br />

neu<br />

10. – 11. 06. CSS3<br />

12. – 14. 06. FLOW3 PHP-Framework<br />

Administration<br />

27. – 28. 05. TCP/IP-Analyse mit Wireshark<br />

05. – 07. 06. Big Data Anwendungen mit Hadoop<br />

10. – 12. 06. Bacula Administration I<br />

weitere Themen und Termine:<br />

opensourceschool.de/kurstermine


Titelthema<br />

www.linux-magazin.de Mobile Systeme 06/2013<br />

40<br />

Sailfish, Firefox, Tizen, Ubuntu for Phones und Himbeer-Systeme<br />

<strong>Der</strong> Nachwuchs ist da<br />

Es muss nicht immer Google sein: 2013 hat gute Chancen, das Jahr der Android-Alternativen auf Smartphones<br />

und Tablets zu werden. Die ARM-Linux-Varianten sind noch recht jung, haben aber schon einiges zu bieten:<br />

vollständige Linux-Stacks, HTML-5-GUIs und Android-Kompatibilität. Martin Loschwitz<br />

© Volodymyr Goinyk, 123RF.com<br />

Wer ein Linux-basiertes Gerät in Händen<br />

halten will, kommt vermeintlich an Googles<br />

Android-System nicht vorbei. Doch<br />

fernab des ARM-Mainstreams reifen mittlerweile<br />

gleich mehrere Systeme heran,<br />

die attraktive Alternativen zu Android<br />

auf mobilen CPUs mit ARM-Befehlssatz<br />

werden können. Dieser Artikel zeigt einen<br />

Marktüberblick für mobile, Linuxbasierte<br />

ARM-Betriebssysteme und stellt<br />

alternative Betriebssysteme für Mobile<br />

Devices und die für Raspberry Pi & Co.<br />

verfügbaren Varianten vor.<br />

Erfolgsmodell<br />

Linux auf ARM ist bei Weitem kein singuläres<br />

Phänomen bei mobilen Telefonen,<br />

wie man etwa auch in Verkaufserfolgen<br />

wie dem Raspberry Pi sehen kann. Dafür<br />

sind mehrere Faktoren verantwortlich:<br />

Einerseits sind ARM-CPUs im direkten<br />

Vergleich deutlich sparsamer im Stromverbrauch<br />

als es entsprechende x86-CPUs<br />

wären. Diesen Vorteil haben die verschiedenen<br />

Hersteller in den letzten Jahren<br />

weiter ausgebaut. So profitieren sie nun<br />

davon, dass sich immer mehr Anwender<br />

auch für andere Einsatzgebiete als<br />

Smartphones und Tablets ultra-sparsame<br />

Rechenkerne wünschen.<br />

Zum anderen sind ARM-CPUs in der Regel<br />

deutlich günstiger zu bekommen als<br />

vergleichbare x86-CPUs. Nur so ist der<br />

Preis für einen Raspberry Pi überhaupt<br />

erklärbar: Für die knapp 50 Euro, mit<br />

denen das Gerät hierzulande zu Buche<br />

schlägt, gibt es bei AMD oder Intel gerade<br />

mal die CPU.<br />

ARM everywhere<br />

Egal ob Smartphone oder Tablet, das Gros<br />

der Geräte kommt mit ARM-CPUs. <strong>Der</strong><br />

Vormarsch scheint ungebremst: Mini-<br />

Computer auf ARM-Basis erfreuen sich<br />

gerade bei Entwicklern großer Beliebtheit<br />

und drängen langsam, aber sicher in den<br />

Massenmarkt vor. Doch auf den ersten<br />

Blick ist klar: Mobile Geräte wie Smartphones<br />

und Tablets müssen ganz andere<br />

Anforderungen erfüllen als Raspberry Pis<br />

oder ähnliche Rechnerlein.<br />

Die Frage, welche Alternative zu Android<br />

möglich ist, hängt also überdurchschnittlich<br />

stark vom Einsatzzweck des Zielsystems<br />

ab. Außerdem gilt: Wer eine<br />

Alternative zu Android sucht, wird nur<br />

dann glücklich, wenn er Gerät und Software<br />

aus einer Hand bezieht. Auf ein<br />

ursprünglich mit Android betriebenes<br />

Gerät ein anderes Betriebssystem zu installieren<br />

ist meist mit vielen Problemen<br />

verbunden und eignet sich nur für den<br />

Nutzer, der ein neues System kennenlernen<br />

will, aber in aller Regel nicht für den<br />

professionellen Einsatz.<br />

Sailfish OS<br />

Erster Kandidat im Vergleich ist Sailfish<br />

OS (Abbildung 1, [1]), eines der jüngsten<br />

Projekte. <strong>Der</strong> eine oder andere erinnert<br />

sich möglicherweise noch an Moblin [2],<br />

das später unter dem Namen Meego firmierte,<br />

also an jene Betriebssysteme, die<br />

Nokia in Kooperation mit Intel und der<br />

Linux Foundation entwickelte.<br />

Als sich Nokias Abstieg aus der ersten<br />

Liga der Handyhersteller deutlich abzeichnete,<br />

beschloss der finnische Hersteller<br />

Hals über Kopf, aus der Meego-<br />

Entwicklung mit all der bis dahin geleisteten<br />

Arbeit zugunsten von Windows<br />

Mobile auszusteigen. Meego erholte sich<br />

Auf der DELUG DVD<br />

Auf der DVD dieser Ausgabe<br />

DELUG-DVD<br />

finden Sie diverse Images mit Linux für ARM-<br />

Systeme zum Ausprobieren, außerdem noch<br />

die Software von Open Elec.


von diesem Rückschlag vorerst nicht,<br />

kurze Zeit später gab auch Intel dem<br />

Projekt den Laufpass.<br />

Jolla will Mer<br />

Lediglich das Mer-Projekt [3] blieb als<br />

Community-Fork und trieb immerhin die<br />

Entwicklung des mobilen Kernels voran.<br />

Inzwischen hatte Nokia einige Entwickler<br />

entlassen, die eine aktive Rolle in Meego<br />

spielten – 2011 waren das so viele, dass<br />

sie sich zusammenschlossen und eine<br />

neue Firma gründeten: Jolla. Jolla nahm<br />

die Arbeit am ehemaligen Meego wieder<br />

auf, griff auf den Mer-Kernel zurück und<br />

vermarktet das gesamte System seit wenigen<br />

Wochen als Sailfish OS.<br />

Seit dem Projektstart von Sailfish haben<br />

die Entwickler allerdings viele<br />

Dinge umgebaut und erweitert. Die gesamte<br />

Benutzerschnittstelle – also das,<br />

was Endanwender letztlich sehen und<br />

nutzen – kommt jetzt direkt von Jolla.<br />

Wie Meego setzt auch das neue User-<br />

Interface von Jolla auf QML und Qt. Das<br />

ist verwunderlich, da Qt noch vor einigen<br />

Jahren als problematisch in Sachen<br />

Ressourcennutzung galt. Heute lässt sich<br />

die Bibliothek auch auf ARM-CPUs problemlos<br />

betreiben, obwohl die nicht als<br />

leistungsstark gelten.<br />

Sailfish will dabei mit einigen Besonderheiten<br />

bei der Bedienung aufwarten, so<br />

sind etwa Lock Screen und Apps vertikal<br />

(oberhalb beziehungsweise unterhalb des<br />

Home-Screen) angeordnet, der Benutzer<br />

erreicht sie jederzeit durch Wischgesten.<br />

<strong>Der</strong> gesamte Content soll hierarchisch<br />

gegliedert und in Kategorien eingeordnet<br />

vorliegen.<br />

<strong>Der</strong>lei Informationen muss der Interessierte<br />

aber noch auf der Webseite zusammensuchen.<br />

Jolla hatte das erste Sailfish-<br />

Smartphone eigentlich schon für Ende<br />

2012 angekündigt, doch hat sich dieser<br />

Termin verschoben. Laut eigener Aussage<br />

arbeitet die Firma noch immer fieberhaft<br />

an der ersten Version. Immerhin: Kurz<br />

vor Redaktionsschluss hat der Hersteller<br />

ein SDK öffentlich zugänglich gemacht<br />

[4], und sobald das erste Sailfish-basierte<br />

Smartphone auf dem Markt ist, dürfte es<br />

schnell viele Anleitungen geben, wie sich<br />

Sailfish OS auf andere ARM-basierte Geräte<br />

bringen lässt.<br />

Offiziell vertritt Jolla jedenfalls die Position,<br />

dass Sailfish OS attraktiv für jene<br />

Unternehmen sein soll, die eine Alternative<br />

zu Android suchen. Ob der neue Anlauf<br />

besser funktioniert als Meego, muss<br />

die Zeit zeigen.<br />

Intels langer Weg<br />

<strong>Der</strong> zweite Kandidat stammt ebenfalls<br />

aus der Meego-Welt: Als Intel 2011 aus<br />

der Entwicklung ausstieg, hatte der Chip-<br />

JETZT<br />

ANMELDEN:<br />

www.heinlein-akademie.de<br />

AHA-EFFEKT<br />

GESUCHT?<br />

Schulungen für Linux-Admins,<br />

die durchblicken wollen.<br />

Fachlich und didaktisch kompetente<br />

Dozenten, spannende Schulungsthemen,<br />

eine lockere Atmosphäre im Kurs und<br />

angenehme Unterrichtsräume – all das<br />

erwartet Sie bei uns in Berlin an der<br />

Heinlein Akademie.<br />

Die nächsten Kurse:<br />

ab 27.05.<br />

Nagios / Icinga Networkmonitoring<br />

ab 27.05.<br />

Xen - Virtualisierte Server<br />

ab 03.06.<br />

DNS und DNSsec<br />

ab 10.06.<br />

LPI-Zertifizierung (LPIC-1)<br />

ab 10.06.<br />

LDAP-Server<br />

ab 17.06.<br />

LPI-Zertifizierung (LPIC-2)<br />

ab 17.06.<br />

Firewalls mit iptables / fwbuilder<br />

Mobile Systeme 06/2013<br />

Titelthema<br />

www.linux-magazin.de<br />

41<br />

Abbildung 1: Sailfish OS ist eine Kombination aus dem Kernel von Meego und einem eigenen GUI des Herstellers,<br />

das sich deutlich von Meego unterscheidet.<br />

Linux höchstpersönlich.


Titelthema<br />

www.linux-magazin.de Mobile Systeme 06/2013<br />

42<br />

Abbildung 2: Mozilla bleibt nicht bei seinem Leisten<br />

und will mit Firefox OS Android auf Smartphones<br />

ans Leder. Immerhin gibt es schon Testversionen,<br />

die sich im Alltagsbetrieb bewähren können.<br />

hersteller ein Problem. Denn die eigenen<br />

mobilen Ambitionen wollte Intel keineswegs<br />

aufgeben, schließlich hatte sich<br />

die Firma auch das Meego-Engagement<br />

gründlich überlegt.<br />

Durch das Scheitern war Intel aber im<br />

Grunde wieder bei null, mit dem kleinen<br />

Unterschied, dass 2011 Tablets und<br />

Smartphones eine viel größere Bedeutung<br />

hatten. Intel beschloss sich Samsung anzuschließen<br />

und zusammen mit den Ko-<br />

reanern und der Linux Foundation an<br />

einem freien OS-Projekt für Smartphones<br />

zu arbeiten. Es mutet seltsam an, aber<br />

Samsung, das heute fast ausschließlich<br />

Smartphones mit Googles Android baut,<br />

hatte damals eine Quasi-Eigenentwicklung<br />

für Linux auf dem Smartphone in<br />

petto: Limo [5]. Schnell wurden Intel<br />

und Samsung sich einig – Tizen war geboren<br />

[6].<br />

Im Gegensatz zu Meego soll Tizen plattformunabhängig<br />

bleiben, also nicht nur<br />

auf x86-CPUs laufen, sondern auch auf<br />

ARM. Tizen setzt als Betriebssystem auf<br />

eine vollständig offene Architektur, ist<br />

aber – wie nahezu alle OS – immer wieder<br />

mit Geräten konfrontiert, die nur mit<br />

binärer Firmware nutzbar sind.<br />

Wie bei Sailfish OS ist daher auch bei<br />

Tizen die Verfügbarkeit fertiger Smartphones<br />

oder Tablets mit diesem System<br />

derzeit ein Problem. Samsung hat für<br />

den Sommer dieses Jahres ein Tizen-<br />

Smartphone angekündigt, Details sind<br />

bisher aber noch nicht an die Öffentlichkeit<br />

gelangt. Wie fast immer wird es auch<br />

bei Tizen darauf hinauslaufen, dass nach<br />

dem Aufkommen der ersten fertigen Systeme<br />

Entwicklergruppen entstehen, die –<br />

genügend Interesse vorausgesetzt – Tizen<br />

auf andere Hardware portieren.<br />

Die inneren Werte von Tizen stimmen<br />

jedenfalls: Die Benutzeroberfläche ist auf<br />

HTML ausgelegt, solange das irgendwie<br />

möglich ist. Dazu macht das System sich<br />

den HTML-5-Standard zunutze, der auch<br />

ein Framework für Apps definiert. Über<br />

den Open Mobile Application Compatibility<br />

Layer [7] soll es auch möglich<br />

sein, Android-Applikationen zu nutzen.<br />

Inwieweit das funktioniert, wird sich erst<br />

zeigen, wenn die ersten Tizen-Telefone<br />

tatsächlich verfügbar sind.<br />

Firefox OS<br />

Ein echter Shootingstar ist Firefox OS<br />

(Abbildung 2, [8]): Von allen genannten<br />

Systemen genoss Mozillas Betriebssystem<br />

in letzter Zeit mit Abstand die meiste<br />

PR – vergleichbar nur mit den ARM-<br />

Ambitionen von Ubuntu. Firefox OS hat<br />

sich das große Ziel gesetzt, die Android-<br />

Dominanz zu brechen, und lehnt sich in<br />

der Bedienung auch klar an die erfolgreichen<br />

Konkurrenten an. Aber der Clou<br />

beim Browser-Betriebssystem soll, ganz<br />

ähnlich wie bei Tizen, darin liegen, dass<br />

Apps für das Smartphone HTML-basiert<br />

sind und mithin einem völlig offenen<br />

Standard folgen.<br />

Zwei Geräte sind bereits offiziell angekündigt,<br />

die Firefox OS zukünftig nutzen<br />

sollen: das Alcatel One Touch Fire sowie<br />

das ZTE Open. Im Rahmen des Mobile<br />

World Congress 2013 haben die jeweiligen<br />

Hersteller Prototypen beider Geräte<br />

vorgeführt, sodass mit marktreifen Devices<br />

bald zu rechnen ist. Anders als<br />

bei Tizen und Sailfish OS existiert von<br />

Jahres-dvd<br />

Ubuntu<br />

12.10<br />

Bootmenü mit 8<br />

Ubuntu-Varianten<br />

32+64 Bit<br />

2012<br />

• Zwölf Ausgaben komplett als<br />

HTML und PDF<br />

• Durchdachte Navigation, die<br />

mit jedem Brow ser funktioniert<br />

• Blitzschnelle Volltextsuche<br />

• Alle Listings<br />

Jetzt gleich bestellen!<br />

www.linux-magazin.de/DVD2012 oder 089 - 99 34 11 - 00


Firefox OS sogar eine Version 1.0, von der<br />

Mozilla Foundation am 21. Februar 2013<br />

offiziell freigegeben.<br />

Noch eine Tatsache unterscheidet Firefox<br />

OS maßgeblich von Sailfish sowie Tizen:<br />

Den Beweis, dass das Betriebssystem auf<br />

anderen Geräten als auf den offiziellen<br />

Referenz-Plattformen lauffähig ist, haben<br />

die Entwickler bereits angetreten. Zwar<br />

handelt es sich „nur“ um die Android-Referenzplattformen<br />

der Nexus-Serie sowie<br />

um einige Samsung-Geräte, trotzdem hat<br />

Firefox OS hier die Nase vor den anderen<br />

freien Alternativen vorn.<br />

Noch ein Plus: In der Dokumentation<br />

der Mozilla-Entwickler findet sich eine<br />

umfassende Anleitung [9], wie sich das<br />

freie Handy-Betriebssystem auf den entsprechenden<br />

Geräten installieren lässt.<br />

Ubuntu für ARM<br />

Mark Shuttleworth ist kein Mann halber<br />

Sachen, und so war schnell klar, dass<br />

Ubuntu es ernst meint mit seinen Ambitionen<br />

für ein mobiles OS. Als der eigentlich<br />

als Linux-Distributor etablierte<br />

Hersteller im Februar groß seine Pläne für<br />

ein Ubuntu für Smartphones ankündigte,<br />

ging ein Raunen durch die Open-Source-<br />

Gemeinde. Obwohl bereits Unity auf<br />

Abbildung 3: Auf Berührung ausgelegt ist Ubuntu<br />

Touch, das Canonical vorrangig auf die Geräte der<br />

Touch-Bedienung ausgelegt schien, hatten<br />

mit diesem Schritt nur wenige gerechnet,<br />

manche hielten den Markt mit den<br />

bestehenden und angekündigten mobilen<br />

OS für ARM eigentlich schon für übervölkert.<br />

Bei genauerem Hinsehen wird<br />

allerdings deutlich, dass Ubuntu für ARM<br />

nicht zwangsläufig die gleichen Ziele verfolgt<br />

wie Tizen, Sailfish oder Firefox OS.<br />

Denn bei denen geht es scheinbar vorrangig<br />

darum, die Dominanz von Android<br />

zu brechen.<br />

Ubuntu hat andere Beweggründe, sich in<br />

den mobilen Markt zu wagen: Einerseits<br />

steht mit Unity eine Oberfläche zur Verfügung,<br />

die mindestens so gut auf die Benutzung<br />

mittels Touchscreen wie auf die<br />

per Maus und Tastatur ausgelegt ist (Abbildung<br />

3). Andererseits kann Ubuntu<br />

ähnlich wie Microsoft eine vollständige<br />

User-Experience anbieten, wenn Leute<br />

Ubuntu auf dem Desktop wie auch auf<br />

ihrem mobilen Device haben – ein Vorteil,<br />

den Android nicht hat.<br />

Offenbar will Ubuntu mit Ubuntu for Phones<br />

ein Ecosystem schaffen, in dem Benutzer<br />

über Ubuntu alles kriegen, was sie<br />

für die tägliche Arbeit brauchen. Anders<br />

als Apple und Microsoft kann Canonical<br />

– trotz aller Kritik aus der Community –<br />

für sich in Anspruch nehmen, zu „den<br />

Guten“ zu gehören: Schließlich basiert<br />

die Distribution vollständig auf quelloffener<br />

Software, und Gleiches gilt für<br />

Ubuntu für ARM.<br />

Ein genauerer Blick zeigt jedoch, dass<br />

es Ubuntu for Phones noch an der Tiefe<br />

fehlt, die Technik dahinter erweist sich<br />

als eher banal. <strong>Der</strong>zeit lässt sich das System<br />

vorrangig auf Googles Android-Referenzplattform<br />

nutzen, also auf den Geräten<br />

der Nexus-Reihe. Für die ist das Gros<br />

der benötigten Kerneltreiber bereits Teil<br />

des offiziellen Linux-Kerns. Letztlich hat<br />

Ubuntu nur eine ARM-basierte Version<br />

seiner eigenen Distribution vorgestellt,<br />

die sich diesen Umstand zunutze macht.<br />

Ubuntu auf Tablets oder Smartphones ist<br />

im Grunde also ein normales Ubuntu.<br />

Dass das GUI von Canonical noch separat<br />

aufgehübscht ist und Funktionen erhält,<br />

die Unity am Desktop üblicherweise nicht<br />

bietet, ist da eher eine Randnotiz.<br />

Wer glaubt, dass es ein riesiger Aufwand<br />

für Ubuntu gewesen sein müsse, das System<br />

auf ARM zu portieren, geht ebenfalls<br />

fehl: Debian, also Ubuntus Mutterschiff,<br />

Thema<br />

NETWAYS ®<br />

Nexus-Reihe bringen will.<br />

NETWAYS ®<br />

Mobile Systeme 06/2013<br />

Titelthema<br />

www.linux-magazin.de<br />

43


Titelthema<br />

www.linux-magazin.de Mobile Systeme 06/2013<br />

44<br />

Abbildung 4: Open Elec ist eine spezielle Distribution für den Raspberry Pi, die<br />

aus dem Gerät einen umfassenden Multimedia-Player macht.<br />

liegt seit Jahren in einer ARM-Version<br />

vor, das Gros der Software war also von<br />

Anfang an vorhanden. Fest steht damit<br />

auch, dass Ubuntu for Phones aus der<br />

Sicht des Herstellers eine sehr effiziente<br />

Geschichte ist, mit deutlich weniger Aufwand<br />

verbunden als die komplette Neuentwicklung<br />

eines Betriebssystems für<br />

mobile ARM-Geräte.<br />

Von allen hier vorgestellten Systemen<br />

lädt Ubuntu for Phones am ehesten jetzt<br />

schon zum Ausprobieren ein. Wer ein<br />

Gerät der Nexus-Serie sein Eigen nennt,<br />

schaut auf [10] vorbei und findet dort<br />

sehr detaillierte Anleitungen dafür, die<br />

erste Betaversion vom Smartphone-<br />

Ubuntu auf seinem Smartphone oder<br />

Tablet zu installieren.<br />

Abseits von Tablets und<br />

Smartphones<br />

Obwohl sie schon viel länger am Markt<br />

verfügbar sind als mobile Consumergeräte<br />

erleben Mini-Rechner mit ARM-Prozessoren<br />

in letzter Zeit einen kleinen Hype.<br />

<strong>Der</strong> Raspberry Pi ist das beste Beispiel<br />

für diesen Umstand. Unzählige ähnliche<br />

Boards und Geräte fluten derzeit den<br />

Markt, von günstigen Entwicklerboards<br />

bis zu Edel-ARM-Systemen jenseits der<br />

Grenze von 100 Euro ist alles dabei, was<br />

das Herz begehrt (siehe Artikel in diesem<br />

Schwerpunkt). Und auch für die gibt es<br />

aus Tüftlersicht diverse Alternativen auf<br />

Linux-Basis.<br />

Zunächst haben ARM-basierte Mini-<br />

Rechner gegenüber ihren Smartphonesowie<br />

Tablet-Kollegen einen nicht hoch<br />

genug einzuschätzenden Vorteil: Auf den<br />

Boards ist meistens Standardhardware<br />

verbaut, für die Linux-Treiber oft schon<br />

im Kernel integriert<br />

sind. Das ist<br />

ein maßgeblicher<br />

Unterschied zu<br />

Smartphones und<br />

Tablets, bei denen<br />

komplexe Zusatzhardware<br />

im Spiel<br />

ist, für die nur binäre<br />

Treiber zur<br />

Verfügung stehen.<br />

Für den Admin ergibt<br />

sich eine größere<br />

Freiheit im<br />

Hinblick auf die<br />

Wahl der Mittel, mit denen ein ARM-<br />

Mini-System zu betreiben ist.<br />

Die eigene Lieblingsdistribution<br />

auf ARM?<br />

Oft genug lässt sich sogar die eigene Lieblingsdistribution<br />

nahtlos mit dem Mini-<br />

ARM verheiraten. Wie bereits erwähnt<br />

gibt es beispielsweise die verschiedenen<br />

Debian-Zweige als ARM-Versionen, für<br />

Ubuntu gilt dasselbe. Fedora 18 ist ebenso<br />

mit ARM-Unterstützung zu haben wie<br />

die diversen Entwickler-Distributionen<br />

(Arch, Gentoo, …). Open Suse arbeitet<br />

fieberhaft am eigenen ARM-Port, Interessierte<br />

erfahren unter [11] mehr über<br />

den aktuellen Entwicklungsstand des<br />

Projekts.<br />

Den leichtesten Einstieg in die Thematik<br />

hat, wer einen Raspberry Pi sein Eigen<br />

nennt: Für praktisch jede der beschriebenen<br />

Distributionen finden sich sogar<br />

vorkompilierte Images, die einmal auf<br />

SD-Karte geschrieben die Himbeere im<br />

Handumdrehen zum Linux-Computer<br />

machen. Auch für andere Entwicklerboards<br />

wie das Pandaboard ES oder das<br />

Beagleboard xM stehen entsprechende<br />

Images zur Verfügung.<br />

Wer sich einen Raspberry Pi oder ein<br />

ähnliches Gerät nicht vorrangig kaufen<br />

will, um Erfahrung in der ARM-Entwicklung<br />

zu sammeln, darf auch die verschiedenen<br />

Spezialsysteme ausprobieren,<br />

die für die diversen ARM-Rechner<br />

zur Verfügung stehen. In den meisten<br />

Fällen handelt es sich dabei um getunte<br />

Standard-Distributionen, die einem ganz<br />

bestimmten Zweck entsprechen sollen.<br />

Bestes Beispiel sind die verschiedenen<br />

XBMC-Distributionen, die für den Raspberry<br />

Pi zur Verfügung stehen, dazu<br />

gehört Raspbmc [12] genauso wie Open<br />

Elec (Abbildung 4, [13]).<br />

Fazit<br />

Android auf ARM ist nicht alternativlos.<br />

Alle wichtigen Linuxe stehen bereit und<br />

sind bald für den Alltagseinsatz reif, insbesondere<br />

dann, wenn das Zielgerät ein<br />

vollwertiger Computer ist. Dann sind der<br />

Fantasie hinsichtlich der genutzten Systeme<br />

kaum Grenzen gesetzt.<br />

Deutlich schwieriger ist es derzeit, wenn<br />

Smartphones sowie Tablets ins Spiel<br />

kommen. Tizen und Sailfish stehen zwar<br />

genauso in den Startlöchern wie Firefox<br />

OS und Ubuntu, leiden aber darunter,<br />

dass es für keines der Systeme Prototypen<br />

gibt. Firefox und Ubuntu umgehen<br />

das elegant, indem sie für Googles<br />

Nexus-Serie entwickeln und so auf die<br />

offizielle Referenzplattform setzen.<br />

Glücklich also, wer ein Nexus sein Eigen<br />

nennt, seien es Smartphones oder<br />

Tablets: Hier geht gerade mit Ubuntu<br />

und Firefox sehr viel, auf das Tizen und<br />

Sailfish derzeit verzichten müssen, zumindest<br />

noch. (mfe)<br />

n<br />

Infos<br />

[1] Sailfish OS: [https:// sailfishos. org]<br />

[2] Dmitri Popov, „Small Wonder“:<br />

[http://www.linux-magazine.com/<br />

Issues/2009/109/Moblin ]<br />

[3] Mer-Meego: [http:// merproject. org]<br />

[4] Jolla veröffentliche Sailfish-SDK:<br />

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

‐veroeffentlicht‐Sailfish‐SDK]<br />

[5] Nils Faerber, Markus Feilner, „Spreu vom<br />

Weizen“: Linux-Magazin 04/10, S. 36<br />

[6] Tizen: [http:// ]www.tizen.org<br />

[7] Open Mobile: [http:// openmobileww. com]<br />

[8] Firefox OS: [http:// www. mozilla. org/ de/​<br />

firefox/ partners/]<br />

[9] Firefox OS installieren: [https:// developer.​<br />

mozilla. org/ en‐US/ docs/ Mozilla/ Firefox_OS/​<br />

Firefox_OS_build_prerequisites]<br />

[10] Ubuntu Touch installieren:<br />

[https:// wiki. ubuntu. com/ Touch/ Install?​<br />

action=show& redirect=TouchInstallProcess]<br />

[11] ARM-Portal im Suse-Wiki:<br />

[https:// en. opensuse. org/ Portal:ARM]<br />

[12] Rasp-BMC-Website:<br />

[http:// www. raspbmc. com]<br />

[13] Open Elec: [http:// openelec. tv]


In eigener Sache: DELUG-DVD<br />

Jondo, E-Book, ARM, Videos<br />

Einführung 06/2013 12/2010<br />

Software<br />

Auch diesen Monat bekommen die DELUG-Käufer eine randvolle DVD: Auf der Silberscheibe findet sich die neueste<br />

Version der anonymisierenden Jondo-Distribution, dazu ein E-Book-Schnellkurs für Linux-Administratoren,<br />

jede Menge Software, der zweite Teil Videos der Cebit-Highlights und eine VM mit UCS@School. Markus Feilner<br />

www.linux-magazin.de<br />

45<br />

Inhalt<br />

46 Bitparade<br />

Digitale Dokumente haben oft nur ein<br />

kurzes Leben. Gegen das Vergessen<br />

kämpfen drei Tools zur Langzeitarchivierung.<br />

52 UCS@School<br />

Univentions Schul-Managementsoftware<br />

bringt Unternehmens-Features in die<br />

Schulen.<br />

54 Tooltipps<br />

Kurz angetestet: Flowgrind, Plgen, Luksus,<br />

Auto Archive, Fido und Se.<br />

Neben einem normalen Linux-Magazin<br />

und dem Abonnement ohne Datenträger<br />

gibt es die DELUG-Ausgabe mit Monats-<br />

DVD, die die Redaktion nach einem<br />

speziellen Konzept zusammenstellt: In<br />

einer Art modularem System enthält der<br />

Silberling Programme und Tools, die in<br />

der jeweiligen Magazin-Ausgabe getestet<br />

und besprochen werden. Zudem gibt<br />

es nicht im Heft abgehandelte Software,<br />

die die Redaktion besonders empfiehlt,<br />

Abbildung 2: Kostenlos auf der DELUG-DVD: „Linux-<br />

Schnellkurs für Administratoren“.<br />

alles gebündelt unter einer<br />

HTML-Oberfläche.<br />

Anonym und sicher<br />

surfen mit Jondo<br />

Von der DVD dieser Ausgabe<br />

bootet die neueste Variante<br />

der Anonymisierungssoftware<br />

Jondonym als eigenständige<br />

Linux-Distribution (Abbildung<br />

1) namens Jondo Live.<br />

<strong>Der</strong> Web-Anonymisierer ging<br />

aus dem JAP-Projekt der TU<br />

Dresden [1] hervor und wird<br />

von der Jondos GmbH weiterentwickelt.<br />

Als Alternative<br />

zu diesem Kernbestandteil<br />

von Jondo Live 0.9.40 steht<br />

dem Anwender aber auch der<br />

Onion-Router Tor zur Verfügung. Die eingebaute<br />

Remailer-Software Mixmaster ermöglicht<br />

es darüber hinaus, anonyme<br />

E-Mails zu verschicken.<br />

E-Book: Im Eiltempo zum<br />

Linux-Administrator<br />

Wer die DVD nicht bootet, sondern per<br />

Browser die Datei »index.html« öffnet,<br />

findet gleich als Erstes den Menüpunkt<br />

»Exklusiv«, der zum E-Book von O’Reillys<br />

„Linux-Schnellkurs für Administratoren“<br />

(Abbildung 2) führt.<br />

Das komplette Werk aus der Feder von<br />

Tom Adelstein und Bill Lubanovic bietet<br />

solides Grundlagenwissen, das dem<br />

Admin dabei hilft, die verschiedensten<br />

Linux-Systeme aufzubauen – von einzelnen<br />

Rechnern bis zu ganzen Netzen und<br />

Clustern. O’Reilly bietet dieses über 300<br />

Seiten umfassende Handbuch derzeit für<br />

33 Euro zum Kauf an – DELUG-Käufer<br />

bekommen es einfach so.<br />

Abbildung 1: Nach dem englischen Platzhalternamen für fiktive<br />

Personen „John Doe“ haben die Entwickler die anonymisierende<br />

Linux-Distribution benannt.<br />

Außerdem auf der DVD: Eine virtuelle<br />

Maschine mit Univentions UCS@School,<br />

die jüngst die baden-württembergische<br />

Schulsoftware Paed ML abgelöst hat, diverse<br />

Distributionen für den Raspberry Pi<br />

(Ubuntu, Risc OS, Archlinux und Open<br />

Elec), die Software aus den Artikeln der<br />

Sysadmin-Rubrik (Bind 10 und Snoopy),<br />

der Bitparade und der Tooltipps.<br />

Software und Videos<br />

Damit nicht genug: Zu all der Software<br />

gesellen sich auf der DVD auch noch<br />

sechs Videos vom Cebit Open Source<br />

Forum des Linux-Magazins. Über drei<br />

Stunden lang geht es um Themen rund<br />

um RHEV, den Suse Manager, CMS, HA-<br />

Cluster sowie um Cloudlösungen. n<br />

Infos<br />

[1] JAP-Projekt der TU Dresden:<br />

[http://​anon.inf.tu-dresden.de]


Software<br />

www.linux-magazin.de Bitparade 06/2013<br />

46<br />

Langzeitarchivierung<br />

Dauerlösung<br />

Digitale Dokumente der Zeitgeschichte sind flüchtiger als Stein, Pergament oder Papier. Drei Archivierungstools<br />

helfen gegen das Vergessen und sichern Internetauftritte. Mela Eckenfels, Heike Jurzik<br />

© Fedor Selivanov, 123rf.com<br />

Das Internet vergisst nichts! Von wegen,<br />

die durchschnittliche Lebensdauer einer<br />

Webseite beträgt laut Internet Archive<br />

nur 77 Tage [1]. Die Flüchtigkeit digitaler<br />

Informationen bereitet vor allem den Archiven<br />

Kopfzerbrechen, die zunehmend<br />

mit Hilfe dynamischer Webanwendungen<br />

publizieren. Stadt-, Regional- und Kommunalarchive<br />

sind nach den Archivgesetzen<br />

der Länder verpflichtet ihre Daten<br />

zu speichern, aber auch Instituts- oder<br />

Unternehmensarchive möchten solche Inhalte<br />

aufbewahren. Es reicht längst nicht<br />

mehr aus, einfache Backups der Internetpräsenz<br />

auf zukunftssicheren Medien<br />

zu speichern – in nur 20 Jahren dürfte<br />

selbst ein geschickter Admin ein heute<br />

zeitgemäßes Contentmanagement-System<br />

kaum installieren können.<br />

Viele Archive behelfen sich, indem sie<br />

einzelne relevante Seiten in Handarbeit<br />

als PDF-Dateien sichern [2]. Ein solches<br />

Vorgehen kann jedoch nicht mehr als eine<br />

Notlösung sein. Abhilfe versprechen auf<br />

Langzeitarchivierung spezialisierte Tools.<br />

Neben sehr teuren kommerziellen Lösungen<br />

werben auch einige Open-Source-<br />

Vertreter um die Gunst der Archivare.<br />

Httrack [3], die Netarchive Suite [4] und<br />

das Web Curator Tool [5] zeigen in dieser<br />

Bitparade unter Ubuntu 12.10 und auf<br />

einem Cloud-Linux (Amazon, basierend<br />

auf RHEL 5), wie sie digitale Informationen<br />

aufbewahren.<br />

Die Tester ließen die Werkzeuge Daten<br />

von unterschiedlichen Contentmanagement-Systemen,<br />

Blog- und Forensoftware<br />

erheben. Sie wählten eigene Webseiten,<br />

um sicherzustellen, dass der jeweilige<br />

Crawler auf alle Inhalte zugreifen durfte.<br />

E Httrack<br />

Den Auftakt macht das älteste Tool. Den<br />

unter der GPL veröffentlichten Offlinebrowser<br />

Httrack [3] gibt es bereits seit<br />

zehn Jahren. Er steht auf der Projektseite<br />

für Linux-, BSD- und Windows-Systeme<br />

zum Download bereit. Im Test trat die<br />

aktuelle Version 3.46 vom Juni 2012 an.<br />

Das in C programmierte Werkzeug benötigt<br />

für den Betrieb keine Datenbank.<br />

Linux-Anwender nutzen es entweder<br />

auf der Kommandozeile oder über ein<br />

Web interface. Zusätzlich ist ein in Qt implementiertes<br />

GUI namens Httraqt [6]<br />

verfügbar.<br />

Auf einem Standard-Linux-System ist<br />

Httrack schnell eingerichtet. Pakete für<br />

Debian, Ubuntu, Gentoo, Fedora, Red<br />

Hat und Mandriva bietet die Downloadseite.<br />

Auf einigen Distributionen, so auch<br />

auf dem Ubuntu-Testrechner, gibt es zwei<br />

Pakete – eins für das Kommandozeilentool<br />

(»httrack«) und eins für das Webinterface<br />

(»webhttrack«). Ersteres bietet<br />

zwei Betriebsarten: Entweder startet der<br />

Anwender über Eingabe von »httrack«<br />

den interaktiven Modus und beantwortet<br />

Fragen oder er gibt über Aufrufparameter<br />

seine Wünsche an. Die Manpage und der<br />

Befehl »httrack ‐‐help« listen die wichtigsten<br />

Optionen auf.<br />

Wiedererkennungswert?<br />

Das Webinterface fragt die gleichen Dinge<br />

ab wie das interaktive Shelltool. Zunächst<br />

möchte Httrack einen Projektnamen einrichten,<br />

danach ein Verzeichnis für das<br />

lokale Archiv. Benutzer geben nun die zu<br />

archivierende URL an und wählen aus,<br />

ob sie die Webseite mit oder ohne Hilfe<br />

des Assistenten spiegeln, nur die Zieldatei<br />

speichern, alle Links der URL spiegeln<br />

oder einfach nur die Links testen möchten.<br />

Um ein möglichst komplettes Archiv<br />

zu erhalten, empfiehlt sich die Arbeit mit<br />

dem Assistenten, der detaillierte Fragen<br />

stellt (siehe Abbildung 1).


Abbildung 1: Anwender konfigurieren ihre Archivprojekte bequem über das Httrack-Webinterface. Hinter den<br />

Links verstecken sich die jeweiligen Einrichtungsoptionen.<br />

Httrack erstellt keine vollständigen Archive.<br />

Webinhalte speichert dieser Testkandidat<br />

in den Quellformaten, zum<br />

Beispiel HTML, CSS, Text und Grafiken.<br />

Auf der Shell schreibt »‐V« Tar- oder Zip-<br />

Archive. Einige wenige Metadaten, etwa<br />

Änderungsdaten einer Webseite, sichert<br />

das Tool optional. Dynamisch generierte<br />

Webseiten landen also als statische Kopie<br />

auf der Platte, auf die gesammelten<br />

Inhalte greifen Anwender danach mit einem<br />

Webbrowser zu.<br />

Interne Links bleiben vollständig erhalten.<br />

Zusammengesetzten URLs mit Funktionsaufrufen<br />

und vom Anwender eingegebenen<br />

Variablen kann Httrack nicht<br />

folgen. Während das Tool Client-side<br />

Imagemaps, bei denen der Browser die<br />

Koordinaten des Mausklicks auswertet,<br />

problemlos mitnimmt, verweigert es bei<br />

Server-side Imagemaps, bei denen der<br />

Webserver für die Verarbeitung der Koordinaten<br />

zuständig ist, den Dienst. Solche<br />

Grafiken landen als statische Bilder ohne<br />

jegliche Funktion im Archiv.<br />

Auf mehrere Server verteilte Inhalte<br />

stellen Httrack vor ähnliche Probleme<br />

wie Wget. Beauftragt der Anwender das<br />

Tool auch Domains zu besuchen, deren<br />

Content eingebettet ist, begibt er sich<br />

auf eine Gratwanderung. Entweder definiert<br />

er hier zu viele weitere Server,<br />

sodass Httrack verknüpften Links ohne<br />

Rücksicht auf Verluste folgt, oder er gibt<br />

zu wenige frei und das Archivtool überspringt<br />

eingelagerte Inhalte. Dennoch<br />

sollten Archivare Httrack den Vorzug vor<br />

Wget geben, denn das Werkzeug erfasst<br />

immerhin CSS-Styles und punktet mit einem<br />

hilfsbereiten Wizard.<br />

E Netarchive Suite<br />

Zwei dänische Nationalarchive riefen<br />

dieses Projekt 2005 ins Leben, um vor<br />

allem heimische Webseiten zu bewahren.<br />

Seit 2008 beteiligen sich auch die französische<br />

und die österreichische Nationalbibliothek<br />

an der Weiterentwicklung.<br />

Die Netarchive Suite [4] steht unter der<br />

LGPL und setzt im Hintergrund auf den<br />

Webcrawler Heritrix [7] von Internet Archive.<br />

Die Tester schauten sich Version<br />

4.0 vom Januar 2013 an.<br />

Genau wie Heritrix selbst implementierten<br />

die Entwickler die Netarchive Suite<br />

in Java. Entsprechend benötigen Anwender<br />

eine vollständige Java-Umgebung<br />

auf dem System. Eventuell vorhandene<br />

»headless«-Varianten tauschen sie gegen<br />

ein „Java mit Köpfchen“ aus.<br />

Die Netarchive Suite arbeitet wahlweise<br />

mit einer <strong>Der</strong>by-, MySQL- oder PostgreSQL-Datenbank<br />

zusammen; die Macher<br />

empfehlen <strong>Der</strong>by. Zusätzlich verlangt<br />

die Netarchive Suite nach dem Java<br />

Messaging Service von Sun. Admins laden<br />

den Installer in Binärform von [8] herunter,<br />

entpacken die Zip-Datei, wechseln ins<br />

neue Verzeichnis und führen den Befehl<br />

»./installer« aus. Auf dem Rechner muss<br />

zwingend ein SSH-Dienst laufen.<br />

Zur Installation der Suite folgen Benutzer<br />

am besten der Quickstart-Anleitung unter<br />

[9]. Leider gestaltet sich die Einrichtung<br />

auf dem eigenen System alles andere als<br />

angenehm. Es entsteht schon viel zusätzliche<br />

Arbeit dadurch, dass der Download<br />

nicht alle notwendigen Komponenten<br />

enthält. Offenbar gehen die Macher davon<br />

aus, dass Admins ein derart umfangreiches<br />

Tool selten mehr als einmal<br />

installieren. Auch die Einarbeitung in die<br />

Bedienung hat es in sich. Die Suite ist unübersichtlich<br />

und wenig intuitiv – ohne<br />

intensives Studium der Dokumentation<br />

gelingt hier wenig.<br />

Vor der Archivierung sollten Anwender<br />

in den Browsereinstellungen einen Proxy<br />

einrichten. Ist die Netarchive Suite auf<br />

dem lokalen Rechner installiert, tragen<br />

sie »localhost« und Port 8070 ein und fügen<br />

den eigenen Rechner als Ausnahme<br />

hinzu. Danach greifen sie über die Adresse<br />

»http://localhost:8074/HarvestDefinition«<br />

auf das Netarchive-Web interface<br />

zu und klicken auf den Link »Selektiver<br />

Harvest«. Sie vergeben einen Projektnamen,<br />

tragen die Ziel-URL ein, wählen die<br />

Frequenz der Sicherung aus und speichern<br />

das Ganze.<br />

Soll das Tool auch Subdomains erfassen,<br />

definieren Anwender dies ebenfalls<br />

an dieser Stelle und legen jeweils einen<br />

eigenen Seed an. Ergebnisse können Nutzer<br />

über das Menü »Qualitätssicherung«<br />

unter »Viewerproxy Status« begutachten<br />

(siehe Abbildung 2).<br />

Sammeln und bewahren<br />

Für die Archive nutzt die Netarchive Suite<br />

das WARC-Format (siehe Kasten „Das<br />

Web Archive File Format“), welches das<br />

Internet Archive für Heritrix und die Wayback<br />

Machine entwickelt hat. Es handelt<br />

sich um Container, die unter anderem<br />

Indexsysteme und Metadaten enthalten.<br />

Letztere orientieren sich an Dublin Core,<br />

einer Sammlung einfacher Konventionen<br />

zur Beschreibung von Dokumenten<br />

und anderen Objekten im Internet [10].<br />

Viele Archivierungstools setzen auf diesen<br />

Standard, um Autor, Herausgeber,<br />

Sprache oder Lizenz des Dokuments als<br />

Meta-Information festzuhalten und diese<br />

zur Indizierung zu verwenden.<br />

<strong>Der</strong> zweite Testkandidat archiviert auch<br />

dynamische Webseiten und Foren ohne<br />

Bitparade 06/2013<br />

Software<br />

www.linux-magazin.de<br />

47


Software<br />

www.linux-magazin.de Bitparade 06/2013<br />

48<br />

Abbildung 2: Im Bereich »Qualitätssicherung« erfahren Benutzer mehr zum aktuellen Status der Netarchive<br />

Suite. Außerdem überprüfen sie hier bereits archivierte Seiten.<br />

Probleme. Im »Viewerproxy Status« erreicht<br />

der Anwender Links, um Details<br />

zu den Jobs einzublenden. Über »Wähle<br />

diese Jobs zur Qualitätssicherung im<br />

Viewerproxy« beginnt die Suite die Indizierung<br />

der Seite, und »Starte Sammeln<br />

von URLs« aktiviert die automatische<br />

Überprüfung aller internen Links der archivierten<br />

Webseite.<br />

Leider fehlt ein Menüpunkt, über den Anwender<br />

die archivierten Seiten aufrufen.<br />

Stattdessen tippen sie die Original-URL in<br />

die Adressleiste, und die Proxy-Einstellungen<br />

des Browsers biegen den Aufruf auf<br />

die lokale Kopie um. Nutzer können daher<br />

nicht erkennen, ob sie auf der echten<br />

Seite oder im eigenen Archiv unterwegs<br />

sind. Haben sie den Proxy deaktiviert<br />

und vergessen ihn wieder einzuschalten,<br />

freuen sie sich möglicherweise über das<br />

vollständige Archiv auf der Platte, surfen<br />

aber tatsächlich im Netz.<br />

Ein vernünftiges Interface für die archivierten<br />

Inhalte bietet das Wayback-<br />

Plug in. Es erlaubt auch Netarchive-Suite-<br />

Anwendern sich durch verschiedene<br />

Revisionen zu klicken. Hinweise zur Installation<br />

dieser und anderer Erweiterungen<br />

bietet die Abteilung »Configuration<br />

Manual« der Dokumentation.<br />

E Web Curator Tool<br />

Auch der dritte Kandidat entstand als<br />

Gemeinschaftsprojekt. Die British Library<br />

und die National Library of New Zealand<br />

arbeiten seit 2006 zusammen am Web<br />

Curator Tool (WCT, [5]) und veröffentlichen<br />

ihre Software unter der Apache<br />

Public Licence. Genau wie bei der Netarchive<br />

Suite werkelt im Hintergrund der<br />

Webcrawler Heritrix [7].<br />

Das Web Curator Tool ist ebenfalls in<br />

Java implementiert und benötigt daher<br />

ein JDK (1.5 oder neuer). Beim Datenbank-Backend<br />

dürfen Anwender zwischen<br />

Oracle, MySQL oder PostgreSQL<br />

wählen. Die Tester entschieden sich für<br />

MySQL und installierten zusätzlich die<br />

Pakete »libmysql‐java« und »libcommon‐dbcp‐java«.<br />

Das Archivtool setzt außerdem<br />

Apache Tomcat in Version 5.5.x<br />

oder neuer voraus. WCT 1.6 vom Dezember<br />

2012 arbeitete auf dem Testsystem<br />

klaglos mit Tomcat 5.5.36 zusammen,<br />

hatte allerdings Probleme mit Version 6<br />

und verweigerte den Dienst mit der neuesten<br />

7er Variante gänzlich.<br />

Wer auf der Projekthomepage nach einer<br />

Anleitung sucht, der findet dort nur<br />

Handbücher für ältere WCT-Versionen.<br />

Nach dem Entpacken der aktuellen Programmfassung<br />

1.6 hilft daher ein Blick<br />

ins Unterverzeichnis »docs« weiter. Fraglich<br />

ist jedoch, ob die Entwickler die Installationsskripte<br />

für MySQL gründlich<br />

getestet haben, denn sogar die Kommentarzeichen<br />

verursachen ab und zu Fehler.<br />

Benutzer, die bei der Datenbankeinrichtung<br />

die Skript-Versionsangaben der<br />

WCT-Anleitung ignorieren und jeweils auf<br />

die neueste Skriptversion setzen, bewegen<br />

sich auf der sicheren Seite.<br />

Nachdem sich der Anwender erfolgreich<br />

durch die Installation gekämpft hat, startet<br />

er Tomcat neu und öffnet die Adresse<br />

»http://localhost:8080/wct/« im Browser.<br />

Dort meldet er sich mit dem Benutzernamen<br />

»bootstrap« und dem Passwort »password«<br />

an. Nun zeigt sich der Kandidat<br />

von der besten Seite. Die Oberfläche von<br />

Web Curator Tool ist aufgeräumt und sogar<br />

ohne umfassende Kenntnisse über Ar-<br />

Das Web Archive File Format<br />

Um flüchtige Informationen aus dem Web möglichst<br />

lange für die Nachwelt zu erhalten, hat<br />

die Internationale Organisation für Normung<br />

(ISO) den Standard WARC verabschiedet. Das<br />

Web Archive File Format [12] ist der Nachfolger<br />

des vom Internet Archive entwickelten ARC File<br />

Format (ARC_IA, [13]) und in ISO 28500:2009<br />

definiert [14]. WARC ist das Ergebnis aus Diskussionen<br />

und praktischen Erfahrungen, die das<br />

IIPC (International Internet Preservation Consortium,<br />

[15]) über die Jahre gesammelt hat.<br />

Mitglieder des Konsortiums sind das Internet<br />

Archive selbst sowie Organisationen, Archive<br />

und Bibliotheken aus über 25 Ländern.<br />

Das verbesserte Format soll einen Standard bereitstellen,<br />

um Webquellen zu strukturieren, zu<br />

verwalten und aufzubewahren. Bei WARC handelt<br />

es sich um ein Containerformat, das neben<br />

dem eigentlichen Inhalt auch Informationen zu<br />

verwendeten Protokollen (zum Beispiel HTTP,<br />

FTP, NNTP und SMTP), zu eventuellen Duplikaten<br />

und zahlreiche andere Metadaten speichert.<br />

WARC-Dateien bestehen zu großen Teilen aus<br />

Text, ausgenommen die eingebundenen Bilder,<br />

Videos, Skripte und Ähnliches. Anwender können<br />

sie daher problemlos im Texteditor oder<br />

Pager öffnen und betrachten. In mehreren<br />

Blöcken (so genannten »record blocks«) sind<br />

beschreibende Header und die zugehörigen<br />

Dokumente aneinandergereiht.<br />

<strong>Der</strong>zeit sind acht solcher Blocktypen definiert:<br />

»warcinfo« (Dateiname, Erstellungsdatum,<br />

Crawler-Software, IP und Hostname des<br />

ausführenden Rechners), »response« (unter<br />

anderem Ziel-URI und ‐IP, Protokollname und<br />

‐version), »resource« (Informationen zur<br />

Quelle, wenn keine Angaben zum Protokoll<br />

vorliegen), »request« (Methode, wie der Inhalt<br />

angefragt wurde inklusive Protokoll und<br />

User-Agent), »metadata« (beschreibende Infos<br />

zum Ziel mit Angaben, wenn eine andere Quelle<br />

darauf verweist, Zwischenschritte bis dahin<br />

und so weiter), »revisit« (für Inhalte, die in<br />

der Vergangenheit bereits archiviert wurden),<br />

»conversion« (alternative Version, wenn das<br />

Original beispielsweise zur Archivierung verändert<br />

wurde) und »continuation« (enthält Informationen<br />

zum Speicherort von Inhalten, die<br />

aus Platzgründen in mehreren WARC-Dateien<br />

untergebracht sind).


Abbildung 3: Das Web Curator Tool überzeugt mit seiner aufgeräumten Benutzeroberfläche. Auch ohne Vorkenntnisse<br />

finden sich Benutzer hier schnell zurecht und gelangen zu ihren Archiven.<br />

chivarbeit verständlich (siehe Abbildung<br />

3). Ein Blick in die beiliegende Quickstart-<br />

Anleitung schadet dennoch nicht.<br />

In Verwahrung<br />

Bevor der Nutzer mit dem Archivieren beginnt,<br />

sollte er im Hauptmenü eine neue<br />

Rolle anlegen. Diese kann er zum Beispiel<br />

»Admin« nennen und im nächsten<br />

Arbeitsschritt mit allen Rechten ausstatten.<br />

Danach erstellt er im gleichen Menü<br />

einen Account, den er der »Admin«-Rolle<br />

zuordnet. Nach dem Einloggen besucht<br />

er die Abteilung »Harvest Authorisations«<br />

und legt eine neue Berechtigung<br />

an. Diese dient intern als Nachweis, dass<br />

der Inhaber einer Webseite der Archivierung<br />

zugestimmt hat.<br />

Im Bereich »Targets« richtet der Nutzer<br />

alle Webseiten ein, die er sichern möchte.<br />

Für jedes Ziel definiert er einen Namen,<br />

eine Beschreibung, einen Besitzer, den<br />

Status, eine oder mehrere URLs und einen<br />

Zeitplan. Auch wenn der Weg für<br />

einfache Archive recht aufwändig erscheint,<br />

ist das Vorgehen bei vielen Zielen<br />

angebracht. Das Web Curator Tool<br />

sorgt für Ordnung und Struktur.<br />

Nach dem Harvester-Durchlauf legt WCT<br />

dem Benutzer das Ergebnis zur Qualitätskontrolle<br />

vor. In einer hierarchischen<br />

Übersicht entfernt er dann überflüssige<br />

Bestandteile des Archivs wie etwa Seiten<br />

mit HTTP-Statuscodes. Zugriff auf<br />

Logfiles, eine Liveansicht und Vergleichsmöglichkeiten<br />

für zuvor erstellte Archive<br />

sind ebenfalls vorhanden.<br />

Das Web Curator Tool speichert die Daten<br />

genau wie die Netarchive Suite im<br />

WARC-Format. Auch beim Handling der<br />

Metadaten gibt’s keine Unterschiede:<br />

Dublin Core [10] ist als Standard mit von<br />

der Partie. Unter dem Menüpunkt »Harvested«<br />

finden Anwender die archivierten<br />

Webseiten. Vom Look & Feel her erinnert<br />

das Tool an die Wayback Machine [11].<br />

Gesicherte Webseiten zeigt WCT mit allen<br />

Inhalten an, die das Tool erfassen<br />

konnte. Einschränkungen gibt es lediglich<br />

für Streamingmedien oder Javascript-<br />

Aufrufe von nicht erfassten Servern wie<br />

beispielsweise Social Widgets.<br />

Was den Umgang mit verteilten Inhalten<br />

betrifft, hält sich das Web Curator Tool<br />

strikt an die Vorgaben des Benutzers und<br />

erfasst nur Seiten, für die er eine Freigabe<br />

eingerichtet hat. Liegen Inhalte auf Subdomains<br />

oder auf verschiedenen Servern<br />

verstreut, muss der Archivar diese zusätzlich<br />

als »URL Pattern« bei den »Harvest<br />

Authorisations« anlegen.<br />

Auf immer und ewig<br />

Httrack ist ein nützliches Werkzeug mit<br />

einer flachen Lernkurve. Benutzer, die<br />

einfach nur Inhalte aus einem Blog oder<br />

einem CMS herauslösen und in statische<br />

Webseiten umwandeln möchten, kommen<br />

auf ihre Kosten. Das Tool stößt allerdings<br />

schnell an seine Grenzen, vor<br />

allem wegen der fehlenden Verwaltung<br />

archivierter Webseiten beziehungsweise<br />

wegen der mangelnden Unterstützung<br />

für Dublin-Core-Metadaten [10]. Httrack<br />

empfiehlt sich somit eher für den Privatgebrauch<br />

oder als Überganglösung,<br />

bis ein besseres Archivierungsprogramm<br />

verfügbar ist.<br />

Die Netarchive Suite hinterlässt keinen<br />

allzu guten Eindruck und wirkt wie ein<br />

Flickenteppich, dem eine einheitliche<br />

Oberfläche gut täte. Die Installation strapaziert<br />

die Nerven der Anwender und<br />

braucht viel Arbeitszeit. Ist das Tool einmal<br />

eingerichtet, überzeugen die fertigen<br />

Archive – vor allem wegen der zugrunde<br />

liegenden Heritrix-Technik.<br />

Diesen Crawler nutzt auch der dritte Testkandidat,<br />

setzt oben drauf noch eine benutzerfreundliche<br />

Oberfläche und punktet<br />

bei der Bedienung. Das Web Curator<br />

Tool hat daher klar die Nase vorn und<br />

gewinnt diesen Test. Berechtigungen,<br />

Metadaten und Archivinhalte sind übersichtlich<br />

vereint und versöhnen mit den<br />

Hürden bei der Installation. (hej) n<br />

Infos<br />

[1] Internet-Archive-FAQ:<br />

[http:// archive. org/ about/ faqs. php]<br />

[2] Empfehlung der Bundeskonferenz der<br />

Kommunalarchive: [http:// www.​<br />

bundeskonferenz‐kommunalarchive. de/​<br />

empfehlungen/ Empfehlung_Webarchivierung_Teil2_Technik.<br />

pdf]<br />

[3] Httrack: [http:// www. httrack. com]<br />

[4] Netarchive Suite: [https:// sbforge. org/​<br />

display/ NAS/ NetarchiveSuite]<br />

[5] Web Curator Tool:<br />

[http:// webcurator. sourceforge. net]<br />

[6] Httraqt: [http:// httraqt. sourceforge. net]<br />

[7] Heritrix: [http:// crawler. archive. org]<br />

[8] JMS-Download:<br />

[http:// mq. java. net/ downloads. html]<br />

[9] Netarchive-Quickstart:<br />

[https:// sbforge. org/ display/ NASDOC321/<br />

Installation+of+the+Quickstart+system]<br />

[10] Dublin Core: [http:// dublincore. org]<br />

[11] Wayback Machine: [http:// web. archive. org]<br />

[12] Web Archive File Format:<br />

[http:// www. digitalpreservation. gov/​<br />

formats/ fdd/ fdd000236. shtml]<br />

[13] ARC File Format:<br />

[http:// www. digitalpreservation. gov/​<br />

formats/ fdd/ fdd000235. shtml]<br />

[14] ISO 28500:2009 (WARC):<br />

[http:// www. iso. org/ iso/ iso_catalogue/​<br />

catalogue_tc/ catalogue_detail. htm?​<br />

csnumber=44717]​<br />

[15] IIPC: [http:// www. netpreserve. org]<br />

Bitparade 06/2013<br />

Software<br />

www.linux-magazin.de<br />

49


1Gbit/s<br />

Port


Software<br />

www.linux-magazin.de UCS@School 06/2013<br />

52<br />

Univentions Schul-Managementsuite UCS@School<br />

Macht Schule<br />

Wer heterogene Infrastrukturen in der Schul-IT oder in Bildungseinrichtungen verwalten will, ist mit Linux-Lösungen<br />

gut beraten. UCS@School erhielt jüngst einen Lehrauftrag in Baden-Württemberg und bringt Features,<br />

die Admins in Unternehmen vertraut sind, in die Schule. Markus Feilner<br />

© Hongqi Zhang, 123RF.com<br />

Vor wenigen Wochen sorgte eine Entscheidung<br />

[1] in Baden-Württemberg für<br />

Aufmerksamkeit unter Lehrern und OSS-<br />

Anhängern: Das grün-rot regierte Musterländle<br />

beschloss, sein Linux-basiertes<br />

Open-Source-Schul-IT-Projekt outzusourcen<br />

und auf eine andere Software zu<br />

migrieren. Immerhin bleibt es bei Linux,<br />

zum Zuge kommt in absehbarer Zukunft<br />

aber jetzt die Distribution des Bremer<br />

Herstellers Univention [2].<br />

Als einer der letzten verbliebenen deutschen<br />

Linux-Distributoren kann dieser<br />

vor allem in Unternehmen diverse Referenzen<br />

vorweisen. Eine nagelneue<br />

Demo-Version von Univentions Produkt<br />

UCS@school [3] findet sich als virtuelle<br />

Maschine auf der DVD dieses Linux-Magazins,<br />

im Sommer soll eine neue Version<br />

folgen, die dann auch in Baden-Württemberg<br />

zum Einsatz kommt.<br />

Dass der Umstieg von Paed ML [4] nicht<br />

ohne Reibungsverluste ablaufen würde,<br />

zeigte schon der kritische Leserbrief, der<br />

das Linux-Magazin zur aktuellen Berichterstattung<br />

erreichte [1]. Die Entwickler<br />

betonen daher auch, dass Paed ML weiter<br />

in zahlreichen Bundesländern zum Einsatz<br />

kommt und dass das Support-Netz<br />

des Landesmedienzentrums Baden-Württemberg<br />

die Linux-Musterlösung [5] aktiv<br />

weiterentwickelt. Unter dem Namen<br />

Linuxmuster.net liegt inzwischen Version<br />

5.10 mit dem provokativen Codenamen<br />

Niveau-Linbo vor.<br />

Bremer App Center<br />

Fürs Linux-Magazin hat Univention sein<br />

Produkt in eine virtuelle Maschine gepackt,<br />

die es dem Schul-Admin leicht<br />

macht, die Software zu testen. Wer die<br />

DELUG-DVD nicht zur Hand hat, muss<br />

allerdings zunächst eine Demo-VM von<br />

Univentions Webserver herunterladen,<br />

seine lokale Domäne konfigurieren, dann<br />

im (ebenfalls erst seit diesem Jahr verfügbaren)<br />

Univention App Center das Modul<br />

UCS@School (Abbildung 1) auswählen<br />

und es an seine Konfiguration anpassen.<br />

Den größten Teil dieser Schritte kann sich<br />

der Besitzer der DELUG-DVD sparen,<br />

denn die dort vorliegende VM hat bereits<br />

eine komplette Univention-Corporate-Server-Installation<br />

(UCS) an Bord. Ebenso ist<br />

bereits der UCS@School-Installer vorbereitet,<br />

der alle weiteren Module während<br />

der Konfiguration bei Bedarf nachlädt –<br />

eine Internetverbindung ist also in fast<br />

allen Fällen Voraussetzung für die erfolgreiche<br />

Inbetriebnahme.<br />

Die Software ermöglicht Schul-Admins<br />

das zentrale Identity Management und<br />

die Verwaltung sämtlicher Server und<br />

Clients via Webinterface, auf Wunsch<br />

auch bei den Schulträgern selbst – die<br />

Kommandozeile als Admin-Tool ist vorhanden,<br />

aber nicht mehr nötig. Die zentrale<br />

Administration durch die Träger soll<br />

die Schulen laut Hersteller „spürbar von<br />

IT-Administrationsaufgaben entlasten“.<br />

Wie bei Univentions Unternehmenslösungen<br />

sind auch hier die Integration<br />

und der Betrieb mehrerer Server sowie<br />

heterogene Netze mit Windows- und<br />

Linux-Servern möglich.<br />

Die Schule bevölkern<br />

Alle relevanten Daten gibt der Tester<br />

gleich nach dem Start der VM ein. Zuerst<br />

bevölkert er dazu sein virtuelles Schulnetz,<br />

indem er Benutzer, Gruppe(n) und<br />

ein paar Rechner anlegt und deren Netz-<br />

DELUG-DVD<br />

DELUG-DVD<br />

Auf der DELUG-DVD finden Sie<br />

eine virtuelle Maschine, die für Univentions<br />

UCS@School vorbereitet ist und in der sich<br />

das ebenfalls neue App Center testen lässt.


UCS@School 06/2013<br />

Software<br />

Quelle: Univention<br />

Abbildung 1: Im – ebenfalls neuen – App Center von Univention installiert der<br />

Admin die Schul-Managementsoftware.<br />

werkkonfiguration bestimmt (DHCP und<br />

DNS). Dann gilt es, Richtlinien und lokale<br />

Systemeinstellungen für die Clients<br />

(Windows oder Linux) festzulegen, zu<br />

startende Dienste einzustellen und eventuell<br />

weitere Softwaremodule aus dem<br />

App Center herunterzuladen. Hilfe bei<br />

der Einrichtung der VM gibt es beim Hersteller<br />

([6], Abbildung 2), wie auch den<br />

UCS@School-Quickstart-Guide [7] und<br />

das umfangreiche Handbuch [8].<br />

Funktionsumfang<br />

Nach gelungener Installation zeigt sich<br />

dem Schul-Admin ein umfangreich ausgestattetes<br />

Management-Interface. Die von<br />

Univention bekannte User-, Gruppen- und<br />

Rechnerverwaltung erweitert das UCS@<br />

School-Modul mit für den Schulalltag<br />

passenden Konfigu rationsdialogen.<br />

Quelle: Univention<br />

Anders als in Unternehmen<br />

dreht<br />

sich hier fast alles um Lehrer, Admins,<br />

Schüler und Rechnerpools (Computerräume<br />

und/​oder Schulklassen), aber<br />

auch um Lehrmaterialien und Drucker<br />

oder die Zuweisung von Lehrer zu Klasse,<br />

Unterrichtszeit zu Schüler, Lehrer, Mitarbeiter<br />

oder Computerraum.<br />

Schülerdaten und Lehrerdaten bleiben<br />

dabei voneinander getrennt, Richtlinien<br />

regeln, wer wann was darf. Und wenn’s<br />

mal nicht klappt, gibt ein Helpdesk Nachhilfe<br />

(Abbildung 3).<br />

In Sachen Skalierbarkeit profitiert UCS@<br />

School offensichtlich von der Erfahrung<br />

des Herstellers in Unternehmen: Multiserver-Setups<br />

sind ebenso möglich wie<br />

das Einbinden in externe Verzeichnisse<br />

wie LDAP oder auch Radius-Server. Fortgeschrittene<br />

Anwender freut sicherlich,<br />

Abbildung 3: Computerräume, Materialien, Drucker, Schüler, Lehrer, Admins und Mitarbeiter: Das sind die<br />

Ressourcen, die Univention der modernen Linux-Schule an die Hand gibt.<br />

Abbildung 2: Eine Schritt-für-Schritt-Anleitung für die Einrichtung der Univention-Distribution<br />

in der VM bietet der Hersteller auf seiner Webseite.<br />

dass der Import der Daten skriptbar ist,<br />

genauso wie die Integration von Clients,<br />

Anleitungen dazu enthält das Handbuch.<br />

Wem das nicht reicht, der arbeitet sich in<br />

Italc ein, (Intelligent Teaching and Learning<br />

with Computers, [9]), einer Open-<br />

Source-Software für die Verwaltung der<br />

Schüler-PCs, die UCS@School ebenfalls<br />

optional integriert.<br />

n<br />

Infos<br />

[1] Baden-Württemberg migriert von Paed ML<br />

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

de/ NEWS/ Baden‐Wuerttembergs‐Schulen‐<br />

migrieren‐zu‐Univention‐von‐Community‐<br />

Software‐weg]<br />

[2] Univention: [http:// www. univention. de]<br />

[3] UCS@school: [http:// www. univention. de/​<br />

produkte/ schule/]<br />

[4] Paed ML:<br />

[http:// www. support‐netz. de/ leistungen/​<br />

technische‐plattform/ paedml‐linux/​<br />

beschreibung‐paedml‐linux. html], [http://​<br />

lehrerfortbildung‐bw. de/ netz/ muster/]<br />

[5] Linuxmuster.net:<br />

[http:// www. linuxmuster. net]<br />

[6] Anleitung zum VM-Image:<br />

[http:// wiki. univention. de/ index. php?​<br />

title=Inbetriebnahme_und_Konfiguration_des_Demosystems_in_VMware_oder_<br />

VirtualBox]<br />

[7] Quickstart-Guide:<br />

[http:// wiki. univention. de/ index. php?​<br />

title=UCS@school_3. 1_Quickstart]<br />

[8] UCS@school-Handbuch: [http:// docs.​<br />

univention. de/ de/ ucsschool. html]<br />

[9] Italc: [http:// italc. sourceforge. net]<br />

Quelle: Univention<br />

www.linux-magazin.de<br />

53


Software<br />

www.linux-magazin.de Tooltipps 06/2013<br />

54<br />

Werkzeuge im Kurztest<br />

Tooltipps<br />

Flowgrind 0.5.9<br />

TCP-Performance messen<br />

Quelle: [https:// launchpad. net/ flowgrind]<br />

Lizenz: GPLv2<br />

Alternativen: Iperf, Netperf<br />

Plgen 1.2<br />

MP3-Playlisten erstellen<br />

Quelle: [http:// sourceforge. net/ projects/​<br />

plgen]<br />

Lizenz: BSD 3-Clause<br />

Alternativen: Plmaker, Randomm3u<br />

Luksus 0.95<br />

Daten verschlüsseln<br />

Quelle: [https:// github. com/ thomasfrivold/​<br />

luksus]<br />

Lizenz: GPLv2<br />

Alternativen: Cryptsetup, Truecrypt<br />

Um zu testen, ob zwischen zwei Rechnern<br />

eine Netzwerkverbindung besteht,<br />

reicht Ping völlig aus. Wer jedoch wissen<br />

will, wie es genau um die Bandbreite<br />

steht, der braucht ein Spezialwerkzeug<br />

wie Flowgrind. Es initiiert einen Datenfluss<br />

zwischen zwei oder mehr Rechnern<br />

und erfasst die Durchsatzwerte.<br />

Flowgrind besteht aus den zwei Komponenten<br />

»flowgrindd« (Daemon) und<br />

»flowgrind« (Controller). Ersterer muss<br />

auf jedem Testrechner aktiv sein, läuft im<br />

Usermode und benötigt keine Konfiguration.<br />

Nach dem Start wartet er auf Port<br />

5999 auf allen Netzwerkschnittstellen<br />

auf eingehende Daten. <strong>Der</strong> Client setzt<br />

den Transfer in Gang. Mit »flowgrind ‐H«<br />

startet der Datenfluss. Weitere Parameter<br />

beeinflussen die Blockgröße oder die<br />

Übertragungsdauer.<br />

Seine Ergebnisse schreibt Flowgrind auf<br />

die Standardausgabe, optional in eine<br />

Logdatei. Sie zeigen an, wie lange die<br />

Übermittlung gedauert hat und wie groß<br />

die Datenmenge und die Paketumlaufzeit<br />

waren. Alle Informationen sehen Anwender<br />

in einer übersichtlichen Zusammenfassung<br />

am Ende der Ausgabe.<br />

★★★★★ Flowgrind informiert über die<br />

Bandbreite und gibt so Hinweise auf<br />

mögliche Engpässe. Einfache Tests und<br />

auch komplexe Szenarien erstellen Nutzer<br />

im Handumdrehen.<br />

n<br />

Mobile MP3-Player für weniger als 20<br />

Euro bieten meist nur die Grundfunktionen<br />

und nicht viel Komfort. Features wie<br />

beispielsweise Playlisten-Verwaltung sind<br />

im Preis nicht enthalten. Abhilfe schafft<br />

Plgen. Das Python-Programm ordnet die<br />

Musik auf gemounteten MP3-Playern<br />

mit FAT-Dateisystem. Dazu setzt es im<br />

Hintergrund auf »fatsort«, das Dateien<br />

und Verzeichnisse auf FAT16- und FAT32-<br />

Dateisystemen organisiert. Plgen fügt<br />

Nummern zu den Dateinamen hinzu,<br />

anhand derer ein MP3-Player die Songs<br />

in passender Reihenfolge spielt.<br />

Beim Start geben Anwender das Verzeichnis<br />

mit den MP3-Dateien an. <strong>Der</strong><br />

Rest läuft interaktiv ab. Plgen blendet die<br />

verfügbaren Funktionen ein. Anwender<br />

geben nun den Anfangsbuchstaben des<br />

Kommandos ein, gefolgt von einer oder<br />

mehreren Tracknummern. »display« zeigt<br />

beispielsweise die aktuelle Anordnung<br />

der Stücke an, »order« sortiert Audiodateien<br />

am Anfang ein, »rearrange« fügt<br />

einen Titel vor einem anderen ein. Mit<br />

»switch« tauschen zwei Songs den Platz,<br />

»clear« stellt den Anfangszustand wieder<br />

her. <strong>Der</strong> erste Buchstabe einer Funktion<br />

blendet eine Onlinehilfe ein.<br />

★★★★★ Plgen bringt rasch Ordnung in<br />

MP3-Dateien und sortiert diese nach den<br />

Wünschen der Nutzer neu an. n<br />

Luksus erstellt verschlüsselte Partitionen<br />

und Container. Das Tool kommt mit<br />

Cryptsetup und Truecrypt zurecht, benötigt<br />

nur wenige Aufrufparameter beim<br />

Start und fragt den Rest interaktiv ab. Das<br />

Shellskript benötigt neben »cryptsetup«<br />

und »tcplay« die »coreutils« und »dialog«<br />

für den Betrieb.<br />

Luksus enthält neben dem Hauptskript<br />

drei Hilfsskripte, die Variablen, Checkroutinen<br />

und die eigentlichen Funktionen<br />

bereitstellen. Alle Skripte müssen sich im<br />

selben Verzeichnis befinden. Um etwas<br />

zu verschlüsseln, übergeben Nutzer beim<br />

Start die Gerätedatei und den Namen des<br />

Containers. In der Voreinstellung erzeugt<br />

Luksus mit Cryptsetup verschlüsselte Datenträger.<br />

Wer Truecrypt bevorzugt, der<br />

definiert dies beim Start<br />

Ein Fehler hat sich in den Check der Verschlüsselungsvariante<br />

eingeschlichen,<br />

weswegen die Tester einen Stern abziehen:<br />

Luksus will stets zu Truecrypt greifen<br />

und bricht mit einem Fehler ab, wenn<br />

»tcplay« nicht auf dem System vorhanden<br />

ist. Versierte Anwender beheben den Bug,<br />

indem sie im If-Statement in Zeile 61 der<br />

Datei »LUKSUS.checks« die Gleichheitszeichen<br />

mit Leerzeichen umschließen.<br />

★★★★★ Luksus erzeugt im Handumdrehen<br />

verschlüsselte Datenträger und<br />

Container.<br />

n


Jetzt<br />

anmelden!<br />

Secure Linux Administration<br />

Conference 2013<br />

6./7. Juni 2013<br />

Das Know-how-Update für Administratoren und IT-Leiter.<br />

Mit freundlicher Unterstützung von<br />

Linux-Spezialist Peer Heinlein lädt zur SLAC 2013 nach Berlin. Dort bieten 18<br />

ausführliche Vorträge in zwei Tracks Best Practice-Erfahrungen, frisches Wissen<br />

und gute Argumente für strategische Entscheidungen.<br />

MAGAZIN<br />

Die Highlights<br />

DevOps<br />

Compliance Management<br />

Logfile-Monitoring<br />

Automatisierter Betrieb<br />

Samba 4.0<br />

Bacula/Bareos<br />

Puppet<br />

Cyber-Crime<br />

MySQL-Cluster<br />

Storage mit Ceph<br />

www.heinlein-akademie.de/slac<br />

Mailserver<br />

Konferenz 2013<br />

Linux höchstpersönlich.


Software<br />

www.linux-magazin.de Tooltipps 06/2013<br />

56<br />

Auto Archive 1.0.1<br />

Inkrementelle Backups auf der Shell<br />

Quelle: [http:// autoarchive. sourceforge. net]<br />

Lizenz: GPLv3<br />

Alternativen: Sysbackup<br />

Fido 1.0.7<br />

Logdateien überwachen<br />

Quelle: [http:// www. joedog. org/ fido‐home]<br />

Lizenz: GPLv2<br />

Alternativen: Logcheck<br />

Se 3.0.1<br />

Vollbildvariante für Ed<br />

Quelle: [http:// se‐editor. org]<br />

Lizenz: Public Domain<br />

Alternativen: Ed, Nano<br />

Auto Archive fertigt Backups (»tar«, »tar.<br />

gz«, »tar.bz2«, »tar.xz«) ganz nach den<br />

Wünschen der Nutzer an. Für jede Sicherungskopie<br />

definieren sie in einer Spezifikation,<br />

welche Dateien im Backup landen<br />

sollen und welche ausgeschlossen sind<br />

sowie ein Komprimierungsprogramm.<br />

Beim Aufruf geben Nutzer danach nur<br />

noch den Namen des Profils an.<br />

Die Spezifikationsdateien für das Python-<br />

Programm tragen die Erweiterung ».aa«<br />

und liegen im Verzeichnis »~/.config/<br />

aa/archive_specs«. Jede Datei enthält die<br />

Pfade der zu sichernden Daten, Includeund<br />

Exclude-Regeln für bestimmte Verzeichnisse<br />

oder Dateien und den eindeutigen<br />

Namen der Spezifikation. Optional<br />

nehmen Anwender in einem Abschnitt<br />

Einstellungen zu den Archivformaten vor<br />

und definieren etwa das Kompressionsprogramm<br />

und das Zielverzeichnis.<br />

Einige dieser Angaben dürfen Nutzer<br />

auch in den Dateien »~/.config/aa/<br />

aa.conf« beziehungsweise »/etc/aa/<br />

aa.conf« machen. Außerdem legen sie<br />

hier »force«-Varianten für einzelne Parameter<br />

fest, die dann die Einstellungen der<br />

Spezifikationsdatei überschreiben. Die<br />

meisten Parameter nimmt Auto Archive<br />

zudem beim Aufruf entgegen.<br />

Das Tool beherrscht inkrementelle Backups<br />

und stellt Daten aus unterschiedlichen<br />

Generationen wieder her. Bei zum<br />

Schreiben geöffneten Dateien verhält sich<br />

»aa« Tar-konform und bricht den Sicherungsvorgang<br />

mit der Meldung »Datei hat<br />

sich beim Lesen geändert« ab.<br />

★★★★★ Auto Archive nutzt bewährte<br />

Archiv- und Kompressionstools für seine<br />

Backups. Gut gefallen die Profildateien,<br />

in denen Anwender vorher genau bestimmen,<br />

wie die Sicherung aussieht. n<br />

Mit Argusaugen wacht Fido über Logdateien<br />

des Systems und reagiert gegebenenfalls<br />

auf Ereignisse automatisch.<br />

Anwender legen vorher Muster und<br />

Suchstrings fest. Für jedes Protokoll<br />

schrei ben sie genau auf, wann das Tool<br />

in Aktion tritt, etwa bei veränderten Inhalten<br />

oder Timestamps. Das Quellarchiv<br />

enthält zwei anschauliche Beispiele für<br />

Apache- und Jboss-Logdateien, die als<br />

Vorlage dienen können.<br />

Fido beschränkt sich nicht nur auf das<br />

Observieren, sondern führt selbstständig<br />

Aktionen aus, wenn ein Zwischenfall eingetreten<br />

ist. Konkret bedeutet das, dass<br />

das Werkzeug ein weiteres Programm<br />

oder Skript aufruft, das der Anwender<br />

vorher festlegt. Für jedes Protokoll darf er<br />

eine individuelle Maßnahme bestimmen.<br />

Auf Wunsch protokolliert Fido die Ausgaben<br />

dieser externen Helfer in seinem<br />

eigenen Log oder im Syslog.<br />

Seine Konfiguration erwartet der Dienst<br />

in »/etc/fido.conf«. Alternativ bestimmt<br />

der Parameter »‐C« eine andere Einrichtungsdatei.<br />

In dieser beschreibt der Nutzer<br />

Fidos Verhalten. So legt er beispielsweise<br />

fest, ob das Werkzeug als Daemon<br />

läuft, mit welchen Benutzerrechten es<br />

ausgestattet ist und wo sich das Verzeichnis<br />

mit den Regelwerken befindet. Für<br />

die einzelnen Logs gibt es Blöcke mit<br />

Regeln und Aktionen. Hier sind unter<br />

anderem die Pfade zu den Protokollen<br />

und die Suchmuster gelistet. Anwender<br />

tragen hier ebenfalls ein, was bei einem<br />

Treffer passiert.<br />

★★★★★ Fido überwacht die Logdateien<br />

nicht nur, sondern reagiert im Ernstfall<br />

sogar automatisch. Die Konfiguration<br />

geht dank der mitgelieferten Beispiele<br />

gut von der Hand.<br />

n<br />

<strong>Der</strong> Texteditor Ed ist fast so alt wie Unix<br />

selbst. Die zeilenorientierte Arbeitsweise<br />

des Klassikers empfindet, wen wundert’s,<br />

nicht jeder als angenehm. Eine visuelle<br />

Schnittstelle bietet Se. <strong>Der</strong> Editor orientiert<br />

sich in puncto Befehlssyntax am Vorbild,<br />

macht aber stets den ganzen zu bearbeitenden<br />

Text sichtbar. Nachdem lange Zeit<br />

Stillstand im Projekt herrschte, haben die<br />

Entwickler die Arbeit vor Kurzem wieder<br />

aufgenommen, den Code modernisiert<br />

und Posix-konform gestaltet.<br />

Das Tool unterliegt im Gegensatz zu anderen<br />

Editoren fast keinen Abhängigkeiten.<br />

Anwender müssen jedoch die Umgebungsvariable<br />

»TERM« setzen. Nach<br />

dem Start zeichnet Se eine Art Rahmen<br />

um die geöffnete Datei im Terminal. Die<br />

Statuszeile am unteren Rand zeigt die<br />

aktuelle Uhrzeit und den Dateinamen.<br />

Direkt darüber geben Nutzer hinter dem<br />

Prompt »cmd>« ihre Kommandos ein. So<br />

bewegen sie den Cursor beispielsweise<br />

zu einer bestimmten Zeile, die Se dann<br />

mit einem Pfeil am linken Rand markiert.<br />

Druck auf [D] löscht die aktuelle Zeile,<br />

über [I] fügen Anwender eine Zeile vor<br />

der aktuellen ein. Ein Punkt am Zeilenanfang<br />

beendet die Eingabe.<br />

Weitere Befehle sowie Ideen für den<br />

Einsatz regulärer Ausdrücke verrät die<br />

umfangreiche Manpage. Hier finden Anwender<br />

auch ein Beispiel für die persönliche<br />

Konfigurationsdatei »~/.serc«,<br />

deren Kommandos das Tool vor dem Start<br />

abarbeitet. Für den Einsatz von Se in<br />

Shellskripten ist im Archiv das Werkzeug<br />

»scriptse« enthalten, das im Gegensatz<br />

zum Editor keine Oberfläche besitzt.<br />

★★★★★ Alte Unix-Hasen, die mit Ed<br />

vertraut sind, dürften sich schnell in Se<br />

zurechtfinden. (U. Vollbracht/​hej) n


Aus dem Alltag eines Sysadmin: Snoopy<br />

Auf den Hund gekommen<br />

Einführung 06/2013<br />

Sysadmin<br />

Manchmal möchte Kolumnist Charly wissen, was er wann auf einem Server Geniales getan hat. Eine unfehlbare<br />

Gedächtnisstütze zu finden? Peanuts! Charly Kühnast<br />

Inhalt<br />

58 Bind 10<br />

Nach fünf Jahren Entwicklung ist die<br />

neueste Version des Nameservers Bind<br />

planmäßig fertiggestellt. Aber fürs Unternehmen<br />

taugt sie noch lange nicht.<br />

Bei der Arbeit plagen mich manchmal<br />

Erinnerungslücken: Wie hieß das schicke<br />

Tool, mit dem ich die LEDs an einer<br />

bestimmten Netzwerkkarte habe blinken<br />

lassen, um sie im Serverschrank finden<br />

zu können? Oder: Wie hatte ich damals<br />

alle Dateien in einem Verzeichnis, die<br />

älter als sieben Tage waren, gelöscht?<br />

Die Antwort auf all diese Fragen kennt<br />

die Bash-History, aber die ist gemäß Murphys<br />

Gesetz immer zu kurz. Außerdem<br />

quält die Unsicherheit: Auf welchem Server<br />

hat das Ganze stattgefunden?<br />

Eine mögliche Lösung ist Snoopy. Die<br />

kleine Bibliothek mit dem Hundenamen<br />

wickelt sich als Wrapper um »execve()«<br />

und wacht immer dann auf, wenn der<br />

Rechner ein Kommando ausführt. Viele<br />

Distributionen haben Snoopy im Zwinger,<br />

ansonsten hilft Github unter [1] weiter.<br />

Damit Snoopy gleich beim Systemstart<br />

aktiv wird, ist ein Eintrag in »/etc/<br />

ld.so.preload« notwendig. Hier füge ich<br />

die folgende Zeile hinzu: »/Pfad/snoopy.<br />

so«. Pfad ist in der Regel »lib«. Wenn<br />

ich Snoopy selbst kompiliere, liegt die<br />

Bibliothek auch gern unter »/usr/local/<br />

lib/« oder ähnlich.<br />

Snoopy selbst zu kompilieren besitzt einen<br />

Vorteil: Ich kann vorher in den Quellen<br />

die Headerdatei »snoopy.h« editieren.<br />

Setze ich dort<br />

#define ROOT_ONLY 1<br />

wird Snoopy nur Kommandos loggen,<br />

die mit Rootrechten ablaufen.<br />

Installiere ich das Tool dagegen<br />

aus den Distributionsrepositories,<br />

ist diese Option nicht gesetzt und<br />

es loggt alle Kommandos aller Privilegien-Coleur.<br />

Snoopy schreibt, wenn ich es nicht<br />

anders konfiguriere, in »/var/log/<br />

auth.log«. Abbildung 1 zeigt das Log einiger<br />

einfacher Kommandos. Die Gliederung<br />

bleibt stets gleich: Jeder Eintrag<br />

beginnt mit der Benutzer-ID, gefolgt von<br />

der Sitzungs-ID und dem verwendeten<br />

TTY. Danach kommt das jeweils aktuelle<br />

Verzeichnis. Das ist wichtig, weil Snoopy<br />

Kommandos wie »cd /etc« nicht protokolliert.<br />

Im Dateisystem zu navigieren ist<br />

für den Beagle also nicht das Gleiche wie<br />

eine Datei auszuführen.<br />

Danach kommt der vollständige Pfad zu<br />

der ausgeführten Datei und zuletzt das<br />

expandierte Kommando. Eine Expansion<br />

können zum Beispiel Aliases hervorrufen.<br />

Viele Distributionen führen beispielsweise<br />

»ls ‐‐color=auto« aus, wenn<br />

ich lediglich »ls« eintippe – Snoopy erschnüffelt<br />

auch dies.<br />

Sammelstelle<br />

Jetzt muss ich die Logs nur noch an einer<br />

zentralen Stellen konsolidieren. Einen<br />

Server konfiguriere ich so, dass er Log-<br />

Nachrichten anderer Maschinen empfangen<br />

kann. Wenn dort etwa Rsyslog läuft,<br />

genügt es, ihm beim Start den Parameter<br />

»‐r« mitzugeben, und schon ist Rsyslog<br />

auf Empfang.<br />

Den anderen Servern bringe ich bei, Einträge<br />

in »/var/log/auth.log« zusätzlich<br />

an den frisch gebackenen Syslog-Server<br />

zu schicken. Dazu ergänze ich nur eine<br />

Zeile in der Syslog-Konfiguration:<br />

auth,authpriv.*<br />

@192.168.2.80<br />

Das Auth-Log wächst in der Regel nicht<br />

gerade ins Unendliche, weshalb ich nur<br />

wöchentlich oder gar monatlich rotieren<br />

lasse. Mit Snoopy füllt sich Tag für Tag<br />

ein beachtliches Archiv meiner administrativen<br />

Heldentaten – Tippfehler und<br />

ähnliche Peanuts inklusive. (jk) n<br />

Infos<br />

[1] Snoopy: [https:// github. com/ a2o/ snoopy]<br />

© Nailia Schwarz, 123RF.com<br />

www.linux-magazin.de<br />

57<br />

Abbildung 1: Eine sauber gepflegte History – Snoopy sei Dank.<br />

<strong>Der</strong> Autor<br />

Charly Kühnast administriert<br />

Unix-Syste me im Rechenzentrum<br />

Niederrhein. Zu seinen<br />

Aufgaben gehören Sicherheit<br />

und Verfügbarkeit der<br />

Firewalls und der DMZ.


Sysadmin<br />

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

58<br />

Neu: Nameserver Bind 10<br />

Unhandlicher Suchdienst<br />

Fünf Jahre hat es gedauert, bis Ende März die zehnte Major Release des Nameservers Bind fertig war. Die ist<br />

ein kompletter Rewrite des DNS-Servers – mit modularem Aufbau und neuen Konfigurationstools. Allerdings<br />

eignet sie sich zurzeit nicht für den Einsatz in Unternehmen. Konstantin Agouros<br />

<strong>Der</strong> Nameserver Bind genießt einen<br />

durchwachsenen Ruf. Zwar betreibt er<br />

einen Großteil der DNS-Server im Web,<br />

doch altgediente Administratoren erinnern<br />

sich – mit einer Mischung aus Melancholie<br />

und Schrecken – an den problematischen<br />

Umstieg von Bind 4 auf Bind 8:<br />

Zwar blieben die Zonendateien fast identisch,<br />

aber die Konfiguration fand sich<br />

nicht mehr in der Datei »named.boot«,<br />

sondern auf einmal in der »named.conf«.<br />

<strong>Der</strong>en Format enthielt plötzlich Klammern<br />

und Semikola, die vorher nicht da<br />

waren. Hinzu kam, dass Bind 8 und sein<br />

Nachfolger mehr Konfigurationsoptionen<br />

erlaubten, für die sich das alte Format als<br />

nicht ausreichend erwies.<br />

Fünf Jahre später<br />

Nach fünf Jahren Entwicklungszeit<br />

(Abbildung 1) kommt jetzt Bind 10 und<br />

bringt für die Admins einen noch größeren<br />

Umbruch, da sich nicht nur die Konfiguration,<br />

sondern auch die Architektur<br />

grundlegend geändert hat. SQlite-Datenbanken<br />

ersetzen die Datei »named.conf«,<br />

Zonen konfiguriert der Admin zwar über<br />

die altbekannten Zonefiles, im laufenden<br />

Betrieb sind sie jedoch ebenfalls in SQlite<br />

abgespeichert.<br />

Diese Standardeinstellung kann der<br />

Admin aber deaktivieren, auch das Ablegen<br />

in normalen Zonefiles ist jederzeit<br />

möglich. Die Konfiguration erfolgt über<br />

ein Rest-API via HTTPS. Dafür bringt<br />

Bind 10 ein Kommandozeilen-Utility mit,<br />

das dem Admin in einer eigenen Sprache<br />

Konfigurationsänderungen erlaubt.<br />

Modular, aber nicht für jeden<br />

Schließlich laufen statt eines für »named«<br />

nun bis zu zwölf Prozesse (DHCP nicht<br />

eingerechnet), die meisten davon Python-<br />

Prozesse. Die verbauten DHCP-Kompo-<br />

nenten sind laut Webseite des Projekts<br />

noch im Status „Experimentell“, lassen<br />

sich aber bereits ebenfalls konfigurieren<br />

und testen.<br />

Generell gilt: Die Modularisierung von<br />

Bind 10 in einzelne Daemons bedeutet<br />

die größte Umstellung für Administratoren,<br />

und sie verhindert das Upgrade<br />

manches bisherigen Standard-Szenarios<br />

in Unternehmen. Abbildung 2 zeigt schematisch<br />

das Setup, nach dem in den meisten<br />

Firmen die Namensauflösung abläuft.<br />

Eine Nameserver-Instanz erledigt dabei<br />

sowohl den autoritativen wie auch den<br />

rekursiven Dienst. Alle Clients verwenden<br />

den einen existierenden Nameserver,<br />

der alle Antworten bereitstellt.<br />

Doch ideal ist das nicht. Sauberer wäre<br />

es, die beiden Funktionen voneinander<br />

zu trennen, so wie in Abbildung 3. <strong>Der</strong><br />

rekursive Nameserver hat in diesem Aufbau<br />

Einträge für die lokalen Zonen, die<br />

ihn diese explizit bei dem maßgeblichen<br />

Nameserver abfragen lassen – entweder<br />

über den Secondary-Mechanismus oder<br />

über Forward-Zone-Einträge.<br />

Nachgefragt<br />

Wie eine Rückfrage auf der Bind-10-Mailingliste<br />

bestätigte, ist so ein Setup jedoch<br />

mit Bind 10 derzeit nicht möglich. Anfragen<br />

für das lokale Netz würden da den<br />

Weg übers Internet gehen, ohne Aussicht<br />

auf erfolgreiche Antworten, da diese nur<br />

lokal vorliegen.<br />

Die Entwickler haben jedoch nach eigener<br />

Aussage vor, das Setup aus Abbildung 3<br />

in einer späteren Version zu implementieren,<br />

indem sie den Server das RD-Bit der<br />

Abfrage auswerten lassen. Dann, so der<br />

Plan, solle dieser die Anfrage entweder<br />

zur maßgeblichen Komponente oder zum


Resolver weiterleiten. Wenn ein Administrator<br />

diese Funktion benötigt, dann<br />

scheidet Bind 10 zurzeit aber aus.<br />

Die Installation<br />

Weil die Software noch neu ist, gab es zum<br />

Redaktionsschluss noch keine offiziellen<br />

Pakete geschweige denn Repositories; es<br />

blieb den Testern des Linux-Magazins<br />

nur das Bauen aus den Quellen, die unter<br />

[1] zu finden sind. Kurz vor Redaktionsschluss<br />

fanden sich Pakete für Bind 10<br />

auf dem Open Suse Build Service, die<br />

eine einfache Installation mit nur einem<br />

Mausklick ermöglichten [2].<br />

Bei der für den Test verwendeten Gentoo-Installation<br />

verlangte Bind vor dem<br />

Übersetzen die Pakete »boost«, »botan«,<br />

»log4cplus« und »sqlite3«, außerdem ist<br />

Python in Version 3.1 oder neuer erforderlich.<br />

Die DHCP-Komponente benötigt<br />

MySQL, worauf man aber für einfache<br />

Tests auch verzichten kann. Nach der<br />

Installation der Pakete ist das Kompilieren<br />

mit »./configure && make &&<br />

make install« schnell erledigt. Soll der<br />

DHCP-Server mit MySQL-Backend laufen,<br />

dann greift der Admin zu der Option<br />

»‐‐with‐dhcp‐mysql«.<br />

Nach der Installation benötigt Bind 10<br />

zunächst einen Administrator-Account<br />

für das Konfigurationsinterface. Dafür<br />

nutzt der Admin das Dienstprogramm<br />

»b10‐cmdctl‐usermgr«, das interaktiv<br />

einen Benutzernamen und ein Passwort<br />

abfragt, die es dann der Datei<br />

»cmdctl‐accounts.csv« in »$INSTALLDIR/<br />

etc/bind10« hinzufügt. Das Programm ist<br />

noch sehr rudimentär implementiert und<br />

erlaubt nur das Hinzufügen, sonst hat es<br />

keine weiteren Funktionen.<br />

Die Dienstprogramme<br />

beginnen<br />

übrigens alle mit dem<br />

Kürzel »b10«.<br />

Bevor der Administrator<br />

sich an die<br />

Konfiguration des<br />

Nameservers macht,<br />

muss er entscheiden,<br />

in welchem Modus<br />

er ihn betreiben will:<br />

rekursiv oder autoritativ,<br />

also als Master<br />

für eigene Zonen. Im<br />

Gegensatz zu den vorherigen Versionen<br />

führt die Modularisierung bei Bind 10<br />

dazu, dass auf einer IP-Adresse jeweils<br />

nur eine Komponente Verbindungen akzeptiert.<br />

Bei einem Host mit mehreren IPs<br />

sieht das anders aus.<br />

Inbetriebnahme<br />

Um den Nameserver zu starten, ruft<br />

der Administrator »INSTALLDIR/sbin/<br />

bind10« auf. Dies ist ein Wrapper-Skript,<br />

das seinerseits »b10‐init« startet, das sich<br />

im »libexec«-Verzeichnis der Installation<br />

befindet und die konfigurierten Komponenten<br />

startet. Beim ersten Start gibt Bind<br />

10 alle Logmeldungen auf der Konsole<br />

aus. In einer zweiten Shell auf dem gleichen<br />

Rechner startet der Admin »bindctl«<br />

aus dem Verzeichnis »INSTALLDIR/bin«.<br />

Dieses Kommandozeilen-Front end zum<br />

Restful-API dient bei Bind 10 zur Konfiguration.<br />

<strong>Der</strong> Server nimmt in der Standardkonfiguration<br />

Anfragen auf dem Localhost-<br />

Port 8080 entgegen und akzeptiert nur<br />

Abbildung 1: 2008 begonnen, 2013 fertiggestellt - alles im Plan bei Bind 10?<br />

mit SSL abgesicherte Verbindungen.<br />

Ein selbst signiertes Zertifikat installiert<br />

Bind 10 mit, es lässt sich aber bei Bedarf<br />

austauschen. »bindctl« fragt bei der<br />

ersten Verbindung Benutzernamen und<br />

Passwort ab, diese landen zur Wiederverwendung<br />

in »~/.bind10/default_user.<br />

csv« – aber im Klartext!<br />

Nach dem Anmelden am Server mit dem<br />

erzeugten Benutzer muss der Admin zunächst<br />

die gewünschte Komponente anlegen.<br />

Im ersten Beispiel (Listing 1) ist dies<br />

ein »authoritative nameserver«. Die erste<br />

Zeile legt eine Instanz eines Authoritative<br />

Nameservers an. Zeile zwei dient dazu,<br />

Listing 1: Einen Auth-Server<br />

anlegen<br />

01 dns‐test ~ # /opt/bind10/bin/bindctl<br />

02 ["login success "] login as dnsadmin<br />

03 > config add Init/components b10‐auth<br />

04 > config set Init/components/b10‐auth/special auth<br />

05 > config set Init/components/b10‐auth/kind needed<br />

06 > config commit<br />

07 > quit<br />

08 <br />

09 Exit from bindctl<br />

10 dns‐test ~ #<br />

Bind 10 06/2013<br />

Sysadmin<br />

www.linux-magazin.de<br />

59<br />

Antwort<br />

Nameserver<br />

Resolver<br />

Auth<br />

LAN<br />

Client-<br />

Anfrage<br />

F Abbildung 2:<br />

Im heute in Unternehmen<br />

üblichen<br />

Setup erledigt ein<br />

DNS-Server die ganze<br />

Arbeit.<br />

E Abbildung 3: Das<br />

eigentlich empfehlenswertere<br />

Setup<br />

mit getrenntem<br />

DNS-Resolver und<br />

Authoritative Server<br />

ist mit Bind 10 derzeit<br />

nicht möglich.<br />

Antwort<br />

Nameserver<br />

Resolver<br />

LAN<br />

Client-<br />

Anfrage<br />

Forwarding-<br />

Einträge<br />

Nameserver<br />

Auth<br />

Listing 2: Import einer Zone in<br />

Bind 10<br />

01 dns‐test ~ # /opt/bind10/bin/b10‐loadzone 1.168.192.<br />

in‐addr.arpa db.192.168.1<br />

02 2013‐03‐19 21:18:47.381 INFO [b10‐loadzone.<br />

loadzone/2644] LOADZONE_SQLITE3_USING_DEFAULT_CONFIG<br />

Using default configuration with SQLite3 DB file<br />

/opt/bind10/var/bind10/zone.sqlite3<br />

03 2013‐03‐19 21:18:47.483 INFO [b10‐loadzone.<br />

loadzone/2644] LOADZONE_ZONE_CREATED Zone 1.168.192.<br />

in‐addr.arpa./IN does not exist in the data source,<br />

newly created<br />

04 2013‐03‐19 21:18:47.566 INFO [b10‐loadzone.<br />

loadzone/2644] LOADZONE_DONE Loaded 31 RRs into zone<br />

1.168.192.in‐addr.arpa./IN in 0.08 seconds


Sysadmin<br />

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

60<br />

Bind-Dienste zu markieren, die bei Start<br />

und Stopp besondere Aufmerksamkeit erfordern,<br />

dazu gehören der Resolver und<br />

der Webserver zur Konfiguration. Dabei<br />

wird jeweils das Feld »b10‐Name_des_<br />

Dienstes/special« auf »Name_des_Dienstes«<br />

gesetzt.<br />

Die dritte Zeile gibt an, ob der Dienst<br />

»auth« als notwendig für diese Konfiguration<br />

gilt. Mit »config commit« schaltet der<br />

Administrator die Änderungen scharf und<br />

kann sofort den Nameserver testen. Den<br />

Eintrag »version.bind« fragt er beispielsweise<br />

mit folgendem Kommando ab:<br />

dig @127.0.0.1 ‐c CH ‐t TXT version.bind<br />

Nun ist es an der Zeit, dem Nameserver<br />

auch Zonen beizubringen, die er<br />

bereitstellen soll. Die verwaltet Bind 10<br />

Listing 3: Anlegen einer Zone mit<br />

Zonefiles<br />

01 config add data_sources/classes/IN<br />

02 config set data_sources/classes/IN[1]/type<br />

MasterFiles<br />

03 config set data_sources/classes/IN[1]/params {<br />

"bind10test.local" : "/var/bind/db‐test" }<br />

04 config set data_sources/classes/IN[1]/cache‐enable<br />

true<br />

05 config commit<br />

Listing 4: Zonetransfer-<br />

Komponente aktivieren<br />

01 config add Init/components b10‐xfrout<br />

02 config set Init/components/b10‐xfrout/address Xfrout<br />

03 config set Init/components/b10‐xfrout/kind<br />

dispensable<br />

04 config commit<br />

Listing 5: Bind 10 als Secondary<br />

01 config add /Init/components b10‐xfrin<br />

02 config set /Init/components/b10‐xfrin/address Xfrin<br />

03 config set /Init/components/b10‐xfrin/kind<br />

dispensable<br />

04 config add /Init/components b10‐zonemgr<br />

05 config set /Init/components/b10‐zonemgr/address<br />

Zonemgr<br />

06 config set /Init/components/b10‐zonemgr/kind<br />

dispensable<br />

07 config commit<br />

08 config add Xfrin/zones<br />

09 config set Xfrin/zones[0]/name "example.test"<br />

10 config set Xfrin/zones[0]/master_addr "10.1.1.1"<br />

11 config commit<br />

12 config add Zonemgr/secondary_zones<br />

13 config set Zonemgr/secondary_zones[0]/name "example.<br />

test"<br />

14 config commit<br />

in einer SQlite-Datenbank oder in klassischen<br />

Zonefiles. Auch mit SQlite muss<br />

der Administrator aber weiterhin Zonefiles<br />

verwenden.<br />

Abgesehen von dynamischen DNS-<br />

Updates landen Änderungen im Zonefile,<br />

das durch einen erneuten Import<br />

automatisch die alte Zonendefinition<br />

überschreibt. Zwar ist es möglich, die<br />

Datenbank direkt per Requests zu modifizieren,<br />

aber dies führt mit hoher Wahrscheinlichkeit<br />

zu Inkonsistenzen, sodass<br />

auch die Bind-Autoren auf Rückfrage<br />

davon abraten. Für den Import steht das<br />

Programm »b10‐loadzone« bereit. Listing<br />

2 zeigt einen Beispielaufruf.<br />

Zonen-Import<br />

Das Programm importiert nicht nur die<br />

Zonen sondern führt auch implizit die<br />

»bindctl«-Kommandos aus, die zum Anlegen<br />

der Zone notwendig sind. Die Zone<br />

ist danach sofort scharf geschaltet. Es<br />

ist zwar möglich, eine eigene SQlite-Datenbank<br />

mit der Option »‐c« anzugeben,<br />

sie aufzusplitten ist aber vermutlich nur<br />

dann notwendig, wenn ein großer Provider<br />

viele Zonen anbieten möchte. Will<br />

der Administrator die Zone nicht in die<br />

Datenbank kopieren, sondern weiterhin<br />

mit klassischen Zonedateien arbeiten,<br />

dann muss er doch bei »bindctl« bleiben<br />

(Listing 3).<br />

Im ersten Schritt legt das Vorgehen eine<br />

neue Instanz der Klasse »IN« an, danach<br />

versorgt es sie mit Parametern. <strong>Der</strong> Typ<br />

ist »MasterFiles« im Gegensatz zu »sqlite3«<br />

in der Standardkonfiguration. Die<br />

Parameter sind die Zone und die entsprechende<br />

Datei im Json-Format. Die letzte<br />

Zeile schließlich aktiviert den Cache, was<br />

die Zone aus dem Hauptspeicher statt<br />

von der Festplatte bereitstellt. Dies ist<br />

bei Zonen aus Textdateien zwingend erforderlich.<br />

Nicht für jede neue »IN«-Zone entsteht<br />

ein Eintrag in der Hierarchie »data_sources/classes/IN«,<br />

sondern nur für die<br />

Typen »MasterFiles« und »sqlite3«. Die<br />

SQlite-Datenbank darf mehrere Zonen<br />

enthalten, wobei der Typ »MasterFiles«<br />

pro Paar aus einer Zone samt der zugehörigen<br />

Datei einen Json-Eintrag verlangt,<br />

jeweils mit Kommata getrennt. Wie in<br />

den alten Versionen müssen Admins dem<br />

Nameserver Änderungen im Zonefile mitteilen,<br />

in Bind 10 lädt das Kommando<br />

»auth loadzone example.org« die Zone<br />

»example.org« neu.<br />

Primär oder sekundär?<br />

Normalerweise haben Primary Nameserver<br />

mindestens einen Secondary NS,<br />

der die Zonen herunterkopiert – der so<br />

genannte Zonetransfer. Damit es nicht<br />

jedem Unbefugten möglich ist, so einfach<br />

eine Liste aller Hosts einer Zone zu<br />

erhalten, sichert Bind den Zonetransfer<br />

entweder auf IP-Ebene ab oder – deutlich<br />

sicherer – durch einen Schlüssel oder<br />

eine Kombination aus Key und IP.<br />

Bind 10 nutzt einen Keyring, der mehrere<br />

Schlüssel enthalten kann. Jeder Eintrag<br />

besteht aus einem Tripel aus dem Namen<br />

des Schlüssels, dem eigentlichen Key sowie<br />

dem Algorithmus. Den Default-Algorithmus<br />

HMAC-MD5 kann der Admin in<br />

der Bezeichnung weglassen, es empfiehlt<br />

sich aber generell, andere Algorithmen<br />

zu verwenden und diese dann auch explizit<br />

zu benennen.<br />

Um einen neuen Schlüssel anzulegen<br />

steht »bindctl« bereit:<br />

config add tsig_keys/key "example.org.:U<br />

Nvf5WLM1LA0E2VuhnkbE4Q=="<br />

Jetzt lässt sich der Schlüssel in ACLs unter<br />

dem Namen »example.org« referenzieren.<br />

Damit auch der Secondary Nameserver<br />

Zonetransfers durchführen kann, muss<br />

der Admin eine weitere Komponente aktivieren.<br />

Auch hier tritt wieder »bindctl«<br />

in Aktion (Listing 4)<br />

In der Standardkonfiguration erlaubt<br />

der Nameserver Zonetransfers ohne Einschränkungen<br />

von überall. Dies zeigt<br />

sich auch in der implizit angelegten ACL,<br />

die »config show Xfrout/transfer_acl« anzeigt.<br />

Regelbar ist das entweder pro Zone<br />

mit eigenen ACLs oder aber auf der globalen<br />

Ebene.<br />

ACLs lassen sich im Json-Format schreiben<br />

und haben folgendes Format:<br />

{"action":"ACCEPT|REJECT|DROP", "from":U<br />

"IP‐Bereich","key":"Name_des_Schlüssels"}<br />

Im »IP-Bereich« gibt der Administrator<br />

wie schon bei älteren Bind-Versionen<br />

eine einzelne Adresse oder einen Bereich<br />

in der Form 192.168.1.0/​24 an. Dies gilt<br />

selbstverständlich für IPv4- und IPv6-<br />

Adressen und ‐Netze. »from« und »key«


sind optional und müssen nicht vorkommen,<br />

stehen sie aber in einer Regel, so<br />

gilt dies als Und-Verknüpfung. Ein Regelwerk<br />

besteht aus mehreren Regeln, in<br />

denen Kommas die »{...}«-Blöcke trennen,<br />

eckige Klammern fassen das Ganze<br />

zusammen. Da es sich dabei um ein Array<br />

handelt, fügt der Admin die ACL mit<br />

einem Set-Kommando statt mit den sonst<br />

üblichen Add-Befehlen hinzu:<br />

config set Xfrout/transfer_acl [{Erster U<br />

Block}, {Zweiter Block}, ...]<br />

Allgemein lassen sich auch kompliziertere<br />

Verknüpfungen in den ACLs abbilden.<br />

Kapitel 9 des „Bind 10 Admin<br />

Guide“ gibt einige Beispiele [3]. Im<br />

Test funktionierte allerdings nur, Zonen<br />

freizugeben, die Bind in der SQlite-DB<br />

vorhielt. Wahrscheinlich lag das daran,<br />

dass in der Datenbank weitere Tabellen<br />

für inkrementelle Zonetransfers dienen,<br />

diese Möglichkeit bei Flatfiles aber nicht<br />

vorgesehen ist.<br />

Soll ein Bind 10 als Secondary Nameserver<br />

arbeiten, dann sind zwei Komponenten<br />

hinzuzufügen und zu konfigurieren:<br />

Xfrin führt die eigentlichen Zonetransfers<br />

durch, Zonemgr prüft die SOA-Records,<br />

ob Änderungen vorliegen, und stößt bei<br />

Bedarf Xfrin an. Die Auth-Komponente<br />

gibt auch Notifies der Master-Nameserver<br />

an den Zonemanager weiter. Die Bindctl-<br />

Anweisungen in Listing 5 zeigen, wie<br />

Admins Bind 10 als Secondary konfigurieren<br />

und eine Zone einbinden.<br />

Im Logfile finden sich anschließend Einträge,<br />

die belegen, dass Bind den Zonetransfer<br />

erst nach dem finalen »config<br />

commit« am Ende angestoßen hat. Ein<br />

Zonetransfer lässt sich aber auch manuell<br />

mit dem folgenden Kommando anstoßen:<br />

Xfrin retransfer zone_name="example.test" U<br />

master=10.1.1.1<br />

Leider ist es in der aktuellen Release nicht<br />

möglich, ACLs auf die Notifies zu setzen,<br />

sodass diese durchaus fälschbar sind. Im<br />

„Bind 10 Admin Guide“ [3] findet sich<br />

dafür nur der lakonische Eintrag: „Eine<br />

Zugangskontrolle, etwa für Notifies, stellt<br />

Bind 10 noch nicht zur Verfügung. <strong>Der</strong><br />

Primary-/Secondary-Service ist noch<br />

nicht vollständig.“<br />

Dynamisches DNS<br />

Bind 10 unterstützt auch dynamische<br />

DNS-Updates, die den Rechner etwa von<br />

Listing 6: Einrichten von dynamischen<br />

DNS-Updates<br />

01 config add Init/components b10‐ddns<br />

02 config set Init/components/b10‐ddns/address DDNS<br />

03 config set Init/components/b10‐ddns/kind dispensable<br />

04 config commit<br />

05 config add DDNS/zones<br />

06 config set DDNS/zones[0]/origin 2.168.192.in‐addr.<br />

arpa<br />

07 config add DDNS/zones[0]/update_acl {"action":<br />

"ACCEPT","from":"192.168.1.1"}<br />

08 config commit<br />

Bind 10 06/2013<br />

Sysadmin<br />

www.linux-magazin.de<br />

61<br />

nUr<br />

MiT dVd!<br />

MAGAZIN<br />

Coupon senden an: Linux-Magazin Leser-Service A.B.O.<br />

Postfach 1165, 74001 Heilbronn<br />

JA,<br />

SondErAkTion<br />

Testen Sie jetzt<br />

3 Ausgaben<br />

für 3 Euro!<br />

ich möchte die nächsten 3 Linux-Magazin-Ausgaben für nur E 3*, statt<br />

E 17,40*, testen. Wenn mich das Linux-Magazin überzeugt und ich 14 Tage<br />

nach Erhalt der dritten Ausgabe nicht schriftlich abbestelle, erhalte ich das Linux-Magazin jeden<br />

Monat zum Vorzugspreis von nur E 5,13* statt E 5,80* im Einzelverkauf, bei jährlicher Verrechnung.<br />

Ich gehe keine langfristige Verpflichtung ein. Möchte ich das Linux-Magazin nicht mehr beziehen,<br />

kann ich jederzeit schriftlich kündigen. Mit der Geld-zurück-Garantie für bereits bezahlte,<br />

aber nicht gelieferte Ausgaben.<br />

Name, Vorname<br />

Straße, Nr.<br />

PLZ<br />

Ort<br />

Datum<br />

Unterschrift<br />

Gleich bestellen, am besten mit dem Coupon<br />

oder per<br />

• Telefon: 07131 / 2707 274 • Fax 07131 / 2707 78 601<br />

• E-Mail: abo@linux-magazin.de<br />

Mit großem Gewinnspiel (Infos unter: www.linux-magazin.de/probeabo)<br />

*Preis gilt für Deutschland<br />

Mein Zahlungswunsch: Bequem per Bankeinzug Gegen Rechnung<br />

BLZ<br />

Konto-Nr.<br />

Bank<br />

Beliefern Sie mich bitte ab der Ausgabe Nr.<br />

LM1124M


Sysadmin<br />

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

62<br />

Bind 9<br />

Bind 10, SQlite mit<br />

Memory Cache<br />

Bind 10 als<br />

Secondary DNS mit<br />

SQlite als Memory Cache<br />

Bind 10, Txt-File mit<br />

Memory Cache<br />

Bind 10, SQlite ohne<br />

Memory Cache<br />

Abbildung 4: Durchschnittswerte aus einem mit Dnsperf durchgeführten Benchmark: Bind 9 ist schneller.<br />

einem anderen DHCP-Server erreichen.<br />

<strong>Der</strong> in Bind 10 selbst verbaute DHCP-<br />

Server ist aber nicht in der Lage, diese<br />

zu erzeugen.<br />

Immerhin: Für die Übernahme der Aktualisierungen<br />

ist im DNS-Server eine<br />

eigene Komponente vorgesehen, die der<br />

Admin per »bindctl« aktiviert. Außerdem<br />

muss er für jede Zone, die Updates empfangen<br />

soll, eine ACL eintragen, die dies<br />

explizit erlaubt. Listing 6 zeigt die Konfigurationsanweisungen<br />

sowie eine ACL<br />

für eine Zone.<br />

01 config add Logging/loggers<br />

02 config set Logging/loggers[0]/name *<br />

03 config set Logging/loggers[0]/severity INFO<br />

04 config add Logging/loggers[0]/output_options<br />

Performance von Bind 9 und Bind 10 im Schnelltest<br />

1095<br />

05 config set Logging/loggers[0]/output_options[0]/<br />

destination file<br />

06 config set Logging/loggers[0]/output_options[0]/<br />

output /var/log/dnslog<br />

07 config set Logging/loggers[0]/output_options[0]/<br />

maxsize 204800<br />

08 config set Logging/loggers[0]/output_options[0]/<br />

maxver 8<br />

09 config commit<br />

1815<br />

0 500 1000 1500 2000 2500 3000 3500 4000<br />

Listing 7: Rekursiver Nameserver<br />

01 config add Init/components b10‐resolver<br />

02 config set Init/components/b10‐resolver/special<br />

resolver<br />

03 config set Init/components/b10‐resolver/kind needed<br />

04 config set Init/components/b10‐resolver/priority 10<br />

05 config commit<br />

06 config add Resolver/listen_on<br />

07 config set Resolver/listen_on[2]/address "10.1.1.1"<br />

08 config set Resolver/listen_on[2]/port 53<br />

09 config add Resolver/query_acl<br />

10 config set Resolver/query_acl[2] {"action":"ACCEPT",<br />

"from":"10.1.0.0/16"}<br />

11 config commit<br />

Listing 8: Logging in eine Datei<br />

Anfragen pro Sekunde (Queries per Second, qps)<br />

Sowohl rekursiver als auch Primary und<br />

Secondary Nameserver sind bei Bind 10<br />

in zwei Komponenten aufgetrennt. Die<br />

sollten – geht es nach den Entwicklern<br />

– auch nicht auf demselben Host laufen.<br />

Schon weil jedes der Bauteile selbst<br />

Verbindungen auf dem DNS-Port 53 entgegennehmen<br />

möchte, kommen sie sich<br />

zwangsläufig ins Gehege. Wer die auf<br />

einem Host einsetzen will, muss Resolver<br />

und Primary zumindest an unterschiedliche<br />

IP-Adressen binden.<br />

Listing 7 zeigt, wie »bindctl« den rekursiven<br />

Nameserver initialisiert. Da der rekursive<br />

Server in der Standardkonfiguration<br />

nur auf dem Localhost Verbindungen akzeptiert<br />

und dann bereits standardmäßig<br />

eine ACL eingerichtet ist, die rekursive<br />

Abfragen nur von Localhost akzeptiert,<br />

muss der Admin die Liste der Adressen,<br />

auf denen Bind Anfragen annimmt, noch<br />

um die 10.1.1.1 erweitern und eine ACL<br />

hinzufügen, die auch für das lokale Netz<br />

10.1.0.0/​16 rekursive Abfragen erlaubt.<br />

Steht ein Nameserver weiter innen in<br />

der Infrastruktur, so kann es notwendig<br />

sein, mit<br />

config add Resolver/forward_addresses { U<br />

"address":"172.16.1.1", "port":53 }<br />

einen weiteren Nameserver für die Weiterleitung<br />

einzurichten, einen so genannten<br />

Forwarder.<br />

Logging<br />

3230<br />

3400<br />

3370<br />

In der Standardkonfiguration schreibt<br />

Bind 10 alle Log-Informationen auf die<br />

Konsole, an der er gestartet wurde. Für<br />

den Produktivbetrieb eignet sich das allerdings<br />

nur schwerlich, hier sollte er<br />

die Meldung entweder an Syslog übergeben<br />

oder in eine eigene Datei leiten.<br />

Dazu dient die Konfigurationshierarchie<br />

mit dem Schlüsselwort »Logging«. Unter<br />

ihr legt der Admin einzelne Instanzen<br />

vom Typ »logger« an. Ein Logger kann<br />

Aktionen einer oder mehrerer Komponenten<br />

protokollieren. Das ist über den<br />

Parameter »name« steuerbar, wobei »*«<br />

alle Komponenten abdeckt.<br />

Listing 8 zeigt, wie man das Logging<br />

in eine Datei laufen lässt. Dabei kümmert<br />

sich Bind auch gleich um die Log-<br />

Rotation und erlaubt es, auch die Größe<br />

der Logdateien zu beschränken. Mit dem<br />

Wert »syslog« als »destination« bestimmt<br />

der Admin die Übergabe der Meldungen<br />

an den Syslog-Server. Dabei enthält der<br />

Parameter »output« die Syslog-Facility.<br />

Die »severity« in der Definition des Loggers<br />

(Zeile 3) ergibt sich beim Verwenden<br />

von Syslog automatisch. Die »output_options«<br />

sind zwar als ein Array angelegt,<br />

im Test führten zwei Einträge unter einem<br />

Logger aber dazu, dass keiner von<br />

beiden funktionierte.<br />

Performance<br />

Die Antwortzeiten eines DNS-Servers<br />

erweisen sich als kritisch für das Verhalten<br />

vieler anderer Dienste, vom gefühlten<br />

Tempo von Webseiten-Aufrufen bis<br />

zum Ruf-Aufbau bei VoIP-Telefonaten.<br />

Zwar bestand die Bind-10-Installation<br />

für diesen Artikel aus einer virtuellen<br />

Maschine, dennoch haben die Tester des<br />

Linux-Magazins diverse Vergleichstests<br />

zwischen den Bind-Versionen 9.9.2 und<br />

10 durchgeführt.<br />

Abbildung 4 zeigt die Ergebnisse. Als<br />

Benchmarktool kam Dnsperf 2.0 von Nominum,<br />

einem Hersteller von DNS-Appliances,<br />

zum Einsatz [4]. Das Tool nimmt<br />

ein Textfile mit Records und Typen, also<br />

etwa »host.local a«, um den A-Record<br />

von »host.local« abzufragen. Die Textdatei<br />

kann der Benchmark dann mehrfach<br />

durchlaufen, für den Auth-Server dieses<br />

Artikels kamen jeweils vier Records<br />

10 000-mal unter die Lupe.<br />

Außerdem haben die Tester die verschiedenen<br />

Speicheroptionen, die Bind 10<br />

bietet (Textfile, SQlite DB mit und ohne<br />

Memory Cache), ebenfalls gestestet. Für<br />

Version 9 musste allerdings nur die Standardkonfiguration<br />

herhalten.


Im Vergleich lag Bind 9 auf der gleichen<br />

VM mit 3400 Queries pro Sekunde für<br />

dieselben Abfragen auf derselben Zone<br />

knapp vor dem offensichtlich noch recht<br />

jungen Bind 10. Für den Test des rekursiven<br />

Resolvers enthält Dnsperf ein zweites<br />

Programm namens Resperf, das zur Messung<br />

des Resolver-Durchsatzes erst eine<br />

Vorglühphase durchläuft, in der es den<br />

Cache befüllt, bevor die eigentliche Messung<br />

stattfindet. Hier fiel der Test noch<br />

deutlicher zugunsten von Bind 9 aus, der<br />

zirka 3000 Abfragen pro Sekunde im Vergleich<br />

zu 1600 von Bind 10 schaffte.<br />

Zahlreiche Fallen<br />

Während der Tests traten noch einige<br />

weitere Probleme auf. Beispielsweise ließen<br />

sich nach dem Aktivieren des Cache<br />

für die Zonen, die Bind 10 in SQlite vorhielt,<br />

nur noch die Zonen abfragen, die<br />

in der Liste der Cache-Zones eingetragen<br />

waren. Selbst die Secondary Zone, die<br />

in der gleichen SQlite-Datenbank vorlag,<br />

mussten die Tester erst eintragen, bevor<br />

sie sich wieder abfragen ließ. Dass der<br />

Auth-Server Zonetransfers per Default<br />

erst einmal erlaubt, stellt eine 180-Grad-<br />

Wendung des Verhaltens zur Vorgängerversionen<br />

dar. Unaufmerksame Administratoren<br />

handeln sich hier schnell ein<br />

Sicherheitsrisiko ein.<br />

Gentoo-Anwender sollten sicherstellen,<br />

dass sie Python 3.2 mit dem »sqlite«-<br />

Useflag gebaut haben, da sonst die Komponenten,<br />

die Python verwenden, nicht<br />

funktionieren, weil sie ohne dieses Flag<br />

nicht an die Konfiguration kommen.<br />

Des Weiteren fehlt zurzeit jede Möglichkeit,<br />

die eingerichteten Zonen aufzulisten,<br />

der Admin muss sich diese<br />

anderweitig merken. Eine Rückfrage auf<br />

der Mailingliste ergab konstruktive Vorschläge,<br />

wie sich dies in bestimmten Konfigurationen<br />

lösen ließe. Ein Vertreter des<br />

ISC bestätigte dabei sowohl das Fehlen<br />

des Feature, als auch die Bestrebungen,<br />

es noch einzubauen.<br />

Verwendet der Administrator in der bestehenden<br />

Installation von Bind ACLs<br />

auf Primary- oder Secondary-Zonen oder<br />

setzt er bei Bind 9 Views ein, so ist dies<br />

mit den Bordmitteln von Bind 10 bisher<br />

nicht abbildbar.<br />

Auch hier bekamen die Autoren des Linux-Magazins<br />

auf der Bind-Mailingliste<br />

eine abschlägige Antwort. Das ändert<br />

sich vielleicht, sobald Bind 10 außerhalb<br />

von Providern größere Verbreitung findet.<br />

Gegenwärtig kann schon dies ein<br />

Kill-Kriterium sein, das eine Migration<br />

verhindert.<br />

Radikalkur ohne Vorteile<br />

Bind 10 bedeutet eine radikale Umstellung,<br />

ohne dass der Administrator dafür<br />

mit Vorteilen belohnt wird, die den Aufwand<br />

rechtfertigen. Zwar macht die neu<br />

gewonnene Modularität Bind besser spezialisierbar<br />

und flexibler einsetzbar. Für<br />

einen Internetprovider, der viele Primary<br />

Zones anbietet, mag das auch sinnvoll<br />

sein. Aber die Einschränkungen in der<br />

Funktionalität wie das Fehlen von Views<br />

und vor allem die fehlende Möglichkeit,<br />

den maßgebenden und den rekursiven<br />

Nameserver auf einer Maschine laufen zu<br />

lassen, dürfte den Einsatz von Bind 10 für<br />

viele Administratoren in Firmennetzen<br />

zumindest schwierig machen.<br />

Die DHCP-Komponente ist allerhöchstens<br />

zum Ausprobieren zu empfehlen und<br />

entspricht so voll und ganz den Warnhinweisen<br />

auf der Webseite. Auch wäre<br />

es logischer gewesen, das Kommandozeilen-Utility<br />

zur Verwaltung der Inhalte<br />

von Zonen zu verwenden, jedoch fehlt<br />

diese Möglichkeit vollständig. Und so<br />

lange Bind 10 – wie der kurze Benchmark<br />

in diesem Artikel nahelegt – noch<br />

eine schlechtere Performance als Bind<br />

9 an den Tag legt, gibt es für Admins in<br />

Unternehmen wirklich wenig Anreiz zum<br />

Umstieg auf die neue Version. (mfe) n<br />

Infos<br />

[1] Bind-10-Quellen: [ftp:// ftp. isc. org/ isc/​<br />

bind10/ 1. 0. 0/ bind10‐1. 0. 0. tar. gz]<br />

[2] Bind 10 im OBS: [http:// software. opensuse.​<br />

org/ package/ bind10]<br />

[3] Admin Guide: [http:// bind10. isc. org/ docs/​<br />

bind10‐guide. html]<br />

[4] Dnsperf: [http:// www. nominum. com/​<br />

support/ measurement‐tools/]<br />

<strong>Der</strong> Autor<br />

Konstantin Agouros arbeitet<br />

bei der N.runs AG als Berater<br />

für Netzwerksicherheit.<br />

Dabei liegt sein Schwerpunkt<br />

im Bereich Telekommunikationsanbieter<br />

und freie Software.<br />

Sein Buch „DNS/​DHCP“ ist bei Open Source<br />

Press erschienen.<br />

Bind 10 06/2013<br />

Sysadmin<br />

www.linux-magazin.de<br />

63<br />

Problemfall: Offene rekursive Nameserver<br />

In den letzten Monaten waren im Internet zahlreiche<br />

Distributed-Denial-of-Service-Attacken<br />

(DDoS) zu beobachten, die auf falsch konfigurierten<br />

Nameservern basierten. So erlebte die<br />

Antispam-Organisation „Spamhaus“ rund um<br />

Ostern eine derartige DDoS-Attacke, die eine<br />

Bandbreite von mehr als sage und schreibe 300<br />

GBit/​Sekunde erreichte.<br />

DDos mit bis zu 300 GBit/s<br />

Dabei sendet der Angreifer per UDP zahlreiche<br />

DNS-Anfragen mit der gefälschten Absender-IP<br />

des Opfers an Zehntausende Nameserver im Internet.<br />

„Open Recursive Nameserver“ erlauben<br />

und beantworten diese Anfragen für jede beliebigen<br />

IP-Adresse – und senden in der Folge ihre<br />

Antworten zum Opfer, wo die Datenpakete aus<br />

aller Welt gemeinsam eintreffen und die Leitungen<br />

verstopfen. Während der Angreifer selbst<br />

nur sehr kleine Abfragen lossenden muss, kann<br />

die Abfrage spezieller DNS-Records mehrere<br />

KByte große Antworten erzeugen – dieser Verstärkung<br />

verdankt der Angriff seinen Namen<br />

„DNS Amplification Attack“.<br />

Rekursiven Nameservern muss darum per ACL<br />

immer mit auf den Weg gegeben werden, für<br />

welche IP-Netzbereiche sie überhaupt zuständig<br />

sind. Das sollte nur in den seltensten Fällen<br />

tatsächlich ein weltweites 0.0.0.0/​0 notwendig<br />

machen, sondern stattdessen auf DMZ, Intranet<br />

oder Dialup-Bereiche beschränkbar sein.<br />

Externe Laptops, die auf ein Firmen-DNS zugreifen<br />

müssen, sollten in aller Regel dank eines<br />

VPN-Tunnels ebenfalls aus einem beschränkten<br />

Adressenbereich kommen.<br />

Für Bind 10 zeigt Listing 7 die nötige »query_<br />

acl« am Beispiel des Netzes 10.1.0.0/​16. <strong>Der</strong><br />

Eintrag<br />

options {<br />

[...]<br />

allow‐recursion { 10.1.0.0/16;U<br />

127.0.0.0/8; ::1; };<br />

[...]<br />

}<br />

erzeugt für den noch weit verbreiteten Bind 9<br />

eine ACL »allow‐recursion« im Options-Block.<br />

(Peer Heinlein)


Forum<br />

www.linux-magazin.de Recht 06/2013<br />

66<br />

Leistungsschutzrecht überarbeitet<br />

Grund zu klagen!<br />

<strong>Der</strong> Bundestag hat das in aller Eile abgeänderte Gesetz zur Änderung des Urheberrechts verabschiedet. Es<br />

bringt nur wenige Änderungen – aber mit möglicherweise gravierenden Konsequenzen. Fred Andresen<br />

© ginasanders, 123RF.com<br />

Gerade eben hat der Deutsche Bundestag<br />

das lange umstrittene, aber bereits<br />

seit 2009 von Lobbygruppen an höchster<br />

Stelle eingeforderte Leistungsschutzrecht<br />

für Presseverlage beschlossen. Wie berichtet<br />

[1] wird damit eine Passage in<br />

das deutsche Urheberrechtsgesetz [2]<br />

aufgenommen, nach der künftig auch<br />

reine Verlage, also Nicht-Urheber, eigene<br />

(Zahlungs-)Ansprüche gegen Internet-<br />

Suchmaschinen und ähnliche Datenkraken<br />

erhalten.<br />

Wie kurz ist kurz?<br />

Grob umrissen geht es darum: Jeder<br />

kennt die kurzen Textschnipsel, die neben<br />

oder unter den Treffern auf den Suchmaschinen-Seiten<br />

erscheinen (Abbildung<br />

1) und die einleitenden Sätze des Inhalts<br />

der gelisteten Seite zitieren. Nach bisherigem<br />

Urheberrecht handelt es sich bei<br />

diesen Zitaten, also bei wörtlicher Übernahme<br />

eines Teils von urheberrechtlich<br />

geschützten Werken, um Kleinzitate oder<br />

Kurzzitate, die vom Urheber auch ohne<br />

seine Zustimmung und ohne Vergütungsanspruch<br />

hinzunehmen sind.<br />

Das ist eine so genannte Schranke des<br />

Urheberrechts, also eine Ausnahme von<br />

dem Grundsatz, dass sonst nur der Urheber<br />

selbst bestimmen darf, wann, wo<br />

und unter welchen Umständen sein Werk<br />

ganz oder in Teilen veröffentlicht oder<br />

verwendet wird.<br />

Ohne eine derartige Einschränkung der<br />

Rechte der Urheber wäre jegliche Auseinandersetzung<br />

mit Werken anderer,<br />

jede Kritik, aber auch jede konkrete Bezugnahme<br />

auf einzelne Stellen zu den<br />

verschiedensten Zwecken – nicht nur für<br />

journalistische oder wissenschaftliche<br />

Arbeit oder auch nur die Schul-Hausaufgabe<br />

– nicht nur unsäglich kompliziert,<br />

sondern wirtschaftlich nahezu unmöglich.<br />

Jeder Urheber müsste vorab kontaktiert,<br />

sein Einverständnis eingeholt und<br />

gegebenenfalls bezahlt werden. Gar nicht<br />

daran zu denken, wenn der einfach nicht<br />

antworten würde!<br />

Journalisten und Konsumenten dürfen<br />

also zitieren – Suchmaschinen wie Google<br />

ab sofort nicht mehr. Die Begründung<br />

für die Kostenpflichtigkeit der künftigen<br />

Zitiererei ist auch bekannt: Weil Google<br />

damit Geld verdient. Das tun Journalisten<br />

doch auch, möchte man meinen und<br />

fragen, weshalb deren Zitate auch künftig<br />

frei bleiben.<br />

Eine tragende Begründung bleibt bislang<br />

aus. Andrerseits ist ein Grund schnell<br />

gefunden, wenn es um die Frage geht,<br />

weshalb denn nun ausgerechnet die Verleger<br />

in den Genuss der neuen Ansprüche<br />

kommen, nicht die eigentlichen Urheber:<br />

Weil’s um die Zusammenstellung der Artikel<br />

geht und nicht um deren Inhalt.<br />

Also eine Art Datenbankschutz für zitierte<br />

Artikel, auch wenn Suchmaschinen<br />

eigentlich nur einzelne Artikel zitieren.<br />

Aber offenbar wird dazu die Struktur der<br />

Zusammenstellung ausgewertet, und das<br />

auch noch automatisiert. Gut, das Gesetz<br />

ist also damit begründet.<br />

Einzelne Wörter oder nur<br />

kleinste Textausschnitte?<br />

Völlig überraschend und mit wesensändernder<br />

Abweichung gegenüber dem bis<br />

dato diskutierten Gesetzentwurf tauchte<br />

wenige Tage vor Beschlussfassung eine<br />

neue Passage im Text auf, die künftig<br />

hingegen „einzelne Wörter oder kleinste<br />

Textausschnitte“ von der „Lizenzpflicht“<br />

ausnimmt. Solche Zitate sind damit also<br />

auch Google & Co. weiterhin ohne Genehmigung<br />

durch den Verlag und ohne


Abbildung 1: Kurz oder schon zu lang? Um derartige Textschnipsel als Vorschau<br />

dreht sich der Streit ums Leistungsschutzrecht.<br />

dessen Anspruch auf finanzielle Entschädigung<br />

erlaubt. Was aber sind „kleinste<br />

Textausschnitte“? Wenn die bislang üblichen<br />

„Suchtreffer“-Textausschnitte schon<br />

kurz scheinen, müssen die neuen, jetzt<br />

zulässigen ja wohl noch kürzer sein.<br />

Oder sind diese gar schon kurz genug,<br />

und ist das Gesetz damit ein überflüssiger<br />

Leerläufer?<br />

Unter Juristen ist derlei Wischiwaschi im<br />

Gesetzestext als „weicher Tatbestand“ bekannt:<br />

Mit solchen Formulierungen übergibt<br />

der Gesetzgeber die Verantwortung<br />

für die konkrete Ausgestaltung der Regelung<br />

– hier für die Textumfangsgrenze, ab<br />

der die finanzielle Abschöpfung beginnt<br />

– an die Gerichte.<br />

Das ist kein Zeichen für Feigheit oder<br />

mangelnde Entscheidungsfähigkeit, sondern<br />

überall statthaft und praktikabel,<br />

wo man keine „festen“ Werte, Grenzen<br />

oder Schwellen ziehen<br />

mag, sondern dies dem<br />

wirklichen Leben, also<br />

den üblichen Gepflogenheiten<br />

der beteiligten<br />

Verkehrskreise<br />

überlässt.<br />

In der Praxis sieht das<br />

dann so aus, dass über<br />

die Jahre hinweg eine<br />

Vielzahl von Richtern<br />

in erster Instanz auslotet,<br />

was so als „kleinster“<br />

Ausschnitt noch<br />

durchgeht, und diese<br />

Entscheidungen dann<br />

noch Berufungs- oder<br />

gar Revisionsgerichte<br />

korrigieren, filtern und gegebenenfalls<br />

„auf Line“ bringen, bis bestimmte Werte<br />

als richtig, also der herrschenden Meinung<br />

der Justiz entsprechend, allgemein<br />

anerkannt werden.<br />

Multimedia? Fehlanzeige!<br />

Was Juristen jetzt schon wissen, weil es<br />

auf der Hand liegt, ist, dass es nur um<br />

Text geht, einzelne Wörter oder kleinste<br />

Textausschnitte. Im Multimedia-Zeitalter<br />

ist der Gesetzestext damit noch lange<br />

nicht angekommen. Betroffen sind nur<br />

„herkömmliche“ Suchmaschinen-Ergebnisse<br />

und nichts, was Audio- oder Film-<br />

„Zitate“ betrifft.<br />

In dieser Richtung gibt’s ja schon was:<br />

Wenn Suchmaschinen einen Link auf Inhalte<br />

setzen und dabei Thumbnails als<br />

Vorschau erzeugen und darstellen, ist das<br />

ja bereits rechtswidrig ([3], Abbildung<br />

4) Damit bleiben logischerweise auch<br />

Audio- und Video-Vorschauen außen vor,<br />

zumindest was die neu geregelte Vergütungspflicht<br />

angeht. Verlage, die sich<br />

auf deren Vermarktung geworfen haben,<br />

gehen deswegen aber nicht etwa leer<br />

aus. Falls entsprechende „Zitate“ alsbald<br />

üblich oder verbreitet sein sollten, bleiben<br />

die ja nach den Entscheidungen zu<br />

Thumbnails von der Genehmigung des<br />

jeweiligen Urhebers abhängig.<br />

Aber die Rechte-Inhaber bei Musik und<br />

Film/​Video sind üblicherweise nicht die<br />

einzelnen Kunstschaffenden, wie das bei<br />

Texten üblich ist, sondern die Verwerter,<br />

also das, was die Straße gerne als „Content-Mafia“<br />

bezeichnet. Bei Musik und<br />

noch weniger bei Film und Video gibt es<br />

üblicherweise auch keine „redaktionelle“<br />

Auswahl und Zusammenstellung, etwa<br />

wie bei Print-Verlagen, was durch das<br />

neue Urheberrecht mindestens den gleichen<br />

Schutz erfährt, wie das eigentliche<br />

Schrei ben der Texte.<br />

Die Auswirkungen<br />

Was bedeutet das für den einzelnen<br />

Menschen auf der Datenautobahn, das<br />

kleine oder Kleinst-Unternehmen, den<br />

Website-Betreiber, der einfache Links auf<br />

fremde Seiten setzt, oder den, der selbst<br />

ein Mini-Webmagazin betreibt? Zunächst<br />

nichts. Wer fremde Seiten nicht automatisiert<br />

auswertet, sondern Links „von<br />

Hand“ setzt, darf kostenfrei zitieren. An<br />

der ursprünglichen Ausgestaltung [1],<br />

dass lediglich ein sehr eng begrenzter<br />

Recht 06/2013<br />

Forum<br />

www.linux-magazin.de<br />

67<br />

© quintanilla, 123RF<br />

Abbildung 2: Vorfahrt für Journalisten: Schrankenrechte, also Rechtsbestandteile,<br />

die geltendes Recht einschränken, ermöglichten bisher<br />

beispielsweise das Zitieren im journalistischen Kontext.<br />

Abbildung 3: Weil Google seine Webseiten automatisch mit News-Snippets füllt, soll<br />

das Geld kosten, so das neue Gesetz. Manuelles Betanken bleibt kostenlos.<br />

© Tezz Stock, 123RF.com


Forum<br />

www.linux-magazin.de Recht 06/2013<br />

68<br />

Kreis von Suchmaschinen-Betreibern<br />

durch die neue Regelung betroffen ist,<br />

ändert sich nichts.<br />

Wer natürlich eine alternative Suchmaschine<br />

anbieten beziehungsweise auf<br />

den Markt bringen möchte, wird durch<br />

die neuen Regelungen schlechter gestellt:<br />

Wer fürchten muss, von deutschen<br />

Print-Verlagen vor den Kadi gezerrt zu<br />

werden, weil er die Treffer seiner Alternativ-Suchmaschine<br />

mit mehr als einem<br />

einzelnen zitierten Wort ziert, wird mangels<br />

Google-vergleichbar gefüllter Kriegskasse<br />

bereits von vornherein lieber einen<br />

Rückzieher machen.<br />

So gesehen erfüllt das neue Gesetz wohl<br />

ganz ungeahnte marktbereinigende und<br />

konzentrierende Zwecke, indem es den<br />

Quasi-Monopolisten sogar unterstützt<br />

und Konkurrenz verhindert. Es ist davon<br />

auszugehen, dass deutsche Volksvertreter<br />

wissen, was sie tun, und solche Konsequenzen<br />

beabsichtigt sind.<br />

Blogger-Tod durch<br />

Link-Verbot?<br />

Was nun die laut beklagte Rechtsunsicherheit<br />

vieler Blogger, Netzaktivisten<br />

und Journalisten angeht, die vielfach<br />

bereits – nicht aus vorauseilendem Gehorsam,<br />

sondern aus Protest gegen die<br />

vermeintlich berufszerstörende Regelung<br />

– Links und Zitate auf den eigenen Seiten<br />

entfernt haben: <strong>Der</strong> Gesetzgeber nimmt<br />

solche Personen ausdrücklich aus dem<br />

Bereich der neuen gesetzlichen Reglungen<br />

aus! In den Materialien zum Gesetz-<br />

Abbildung 4: Vorsicht, unter Umständen ist diese Seite von Google mit<br />

Suchergebnissen als Thumbnail-Vorschauen rechtswidrig!<br />

entwurf ist klargestellt,<br />

worum es beim Leistungsschutzrecht<br />

geht:<br />

Diese schriftlich festgehaltenen<br />

„Hintergedanken“<br />

des Gesetzgebers<br />

beziehungsweise<br />

des Initiators dienen<br />

auch der Auslegung<br />

der Normen durch die<br />

Gerichte.<br />

So führt die Bundesregierung<br />

im Rahmen<br />

der Beantwortung einer<br />

parlamentarischen<br />

Anfrage zum Gesetzentwurf<br />

aus [4], dass<br />

jede Annahme, nach<br />

der bereits die Übernahme einzelner<br />

Worte aus einem Presseerzeugnis eine<br />

Rechtsverletzung darstelle, konzeptionell<br />

den Wesensgehalt eines Leistungsschutzrechts<br />

für Presseverleger verkenne.<br />

<strong>Der</strong> Schutzgegenstand sei nicht das einzelne<br />

Wort oder die einzelne Meldung.<br />

Wer die in einem Presseerzeugnis verwendeten<br />

Worte gebrauche, ohne dabei<br />

die Festlegung des Presseerzeugnisses<br />

zu nutzen, greife nicht in das Leistungsschutzrecht<br />

des Presseverlegers ein, der<br />

bereits denselben Text verwendet hat.<br />

Denn gerade in der Auswahl und der<br />

redaktionell-technischen Festlegung der<br />

journalistischen Beiträge manifestiere<br />

sich die verlegerische Leistung, die geschützt<br />

wird.<br />

<strong>Der</strong> Schutz des Gesetzes solle sich allein<br />

auf systematische Zugriffe auf die verlegerische<br />

Leistung durch die gewerblichen<br />

Anbieter von Suchmaschinen und<br />

entsprechenden Diensten im Netz beschränken.<br />

Nur deren Geschäftsmodell<br />

sei explizit darauf ausgerichtet, für die<br />

eigene Wertschöpfung auch auf die verlegerische<br />

Leistung zuzugreifen.<br />

Das betreffe sowohl Dienste, die das gesamte<br />

Internet durchwühlen, wie auch<br />

solche, die lediglich in einzelnen, ausgewählten<br />

Bereichen suchen, soweit sie<br />

nach Art einer Suchmaschine funktionieren.<br />

Demgegenüber würden Dienste nicht<br />

erfasst, die die verlegerische Leistung<br />

auf andere Weise nutzen, zum Beispiel<br />

indem sie dem Internetnutzer aufgrund<br />

eigener Wertung eine Auswahl von Presseerzeugnissen<br />

anzeigen.<br />

Und diese „eigene Wertung“ ist das Entscheidende<br />

an dieser erklärenden Stellungnahme<br />

der Regierung: Damit bleiben<br />

weiterhin alle Zitate, die man selbst auswählt,<br />

uneingeschränkt zulässig – natürlich<br />

nur, soweit es sich auch um bislang<br />

zulässige „Zitate“, also nicht um weitgehende<br />

oder ganze Übernahme fremder<br />

Werke handelt.<br />

Die Angst vor der URL<br />

© anyka, 123RF<br />

Abbildung 5: Tödliche Lex Google oder doch nur ein schnurrender Papiertiger? Was der Gesetzgeber mit<br />

„kleinsten Textausschnitten“ meint, wissen wir erst in ein paar Jahren, wenn Gerichte entschieden haben.<br />

Ähnliches gilt für eine „Übernahme“ von<br />

Textpassagen, die bisweilen im Link selbst<br />

enthalten ist. Inzwischen sind „sprechende<br />

URLs“ üblich und damit bereits<br />

im Link selbst enthaltene Textstücke, die<br />

auf den Inhalt der verlinkten Seite schließen<br />

lassen. Ob es sich bei diesen Zitaten<br />

um „einzelne Wörter oder kleinste Textstücke<br />

handelt“, wird für den halbwegs


Weil etwa die Hälfte der Bundesgesetze<br />

als Zustimmungsgesetze verabschiedet<br />

werden und der Bundesrat unter Umständen<br />

in anderen politischen Mehrheitsverhältnissen<br />

zusammengesetzt ist als der<br />

Bundestag, können auf diese Weise viele<br />

Gesetze gekippt, zumindest erheblich<br />

verzögert werden. Bei einem Einspruchsgesetz,<br />

gegen das also der Bundesrat lediglich<br />

Einspruch einlegen kann, lässt<br />

sich das Inkrafttreten nur verzögern, das<br />

letzte Wort hat der Bundestag.<br />

Recht 06/2013<br />

Forum<br />

www.linux-magazin.de<br />

69<br />

Wirkung: Kaum absehbar<br />

Abbildung 6: Keine Chance für den Bundesrat. Das Urheberrecht ist ein Einspruchsgesetz, kein Zustimmungsgesetz.<br />

<strong>Der</strong> Bundestag kann ihn also überstimmen.<br />

verständigen Juristen ohnehin unbedeutend<br />

sein, weil der Link per URL nicht<br />

nur die „übliche Form“ darstellt, sondern<br />

das Web nur so funktioniert – und weil<br />

der Verleger als Seitenbetreiber die Wahl<br />

hat, seinen Seiten „sprechende“ oder andere<br />

URLs zu verpassen. Hier muss also<br />

eine sprechende URL als Einverständnis<br />

des Verlags gesehen werden.<br />

Trotzdem ist heute nicht absehbar, welche<br />

Auswirkungen das Gesetz haben wird.<br />

Gerade weil und so lange keine höchstgerichtlichen<br />

Grundsatzentscheidungen<br />

klären, was Umfang („kleinste Textausschnitte“)<br />

und Reichweite („Suchmaschinen-entsprechende<br />

Dienste“) bedeuten,<br />

könnten abmahnwütige Verlage und Juristen<br />

nicht nur Google, sondern auch<br />

andere Webseiten-Betreiber, Blogger und<br />

Netzaktivisten jeder Couleur mit Abmahnungen<br />

eindecken.<br />

Nicht jedem mag allerdings der Regelungscharakter<br />

des neuen Leistungsschutzrechts<br />

so eindeutig erscheinen,<br />

Mailen Sie uns Ihre Fragen!<br />

Im monatlichen Wechsel mit aktuellen Fachbeiträgen<br />

lässt das Linux-Magazin 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.<br />

wie es aus der Bundestags-Drucksache<br />

hervorgeht [4].<br />

Und der Bundesrat?<br />

Wer jetzt noch hofft, der Bundesrat möge<br />

die Gesetzesänderung verhindern, wird<br />

enttäuscht werden: Bei der Änderung des<br />

Urheberrechtsgesetzes handelt es sich um<br />

ein so genanntes Einspruchsgesetz. Das<br />

deutsche Recht unterscheidet bei Bundesgesetzen<br />

zwischen Einspruchs- und<br />

Zustimmungsgesetzen. <strong>Der</strong> Unterschied<br />

berücksichtigt die Einflussmöglichkeit<br />

der Länder auf Bundesgesetze, die Länderinteressen<br />

berühren.<br />

Welche Gesetze im Einzelnen zustimmungspflichtig<br />

sind, ist im Grundgesetz<br />

der Bundesrepublik Deutschland [5] geregelt.<br />

Das sind zum Beispiel Gesetze,<br />

die die Staatshaftung regeln oder die das<br />

Grundgesetz ändern sollen, also die Verfassung<br />

selbst. <strong>Der</strong> häufigste Fall tritt ein,<br />

wenn in einem Bundesgesetz Regelungen<br />

über das Wie eines Verwaltungsverfahrens<br />

enthalten sind. Denn die Verwaltung<br />

bleibt nach dem föderalistischen Prinzip<br />

den Ländern vorbehalten – und damit ist<br />

auch die Verwaltung von Bundesgesetzen<br />

Ländersache.<br />

Will der Gesetzgeber daher auch nur eine<br />

einzelne Bestimmung der Gesetzesverwaltung<br />

schon im Gesetz festlegen, muss<br />

der Bundesrat, die zweite „Kammer“ der<br />

Legislative und Vertretung der Länder im<br />

Gesetzgebungsverfahren, dem ganzen<br />

Gesetz zustimmen, sonst kann es nicht<br />

in Kraft treten.<br />

Wenn der Gesetzgeber die bundesdeutsche<br />

Verlagslandschaft durch eine „Lex<br />

Google“ subventionieren will oder tatsächlich<br />

deren wirtschaftliche Ausbeutung<br />

verhindern möchte, scheint das<br />

durch den Entwurf gelungen. Nachteile<br />

oder Einschränkungen für kreativ Tätige<br />

sind – soweit es sich nicht gerade um<br />

Suchmaschinen-Betreiber handelt – nicht<br />

wirklich in Sicht.<br />

Allerdings ist zu befürchten, dass der<br />

Gesetzgeber durch bewusst schwammig<br />

gewählte Formulierungen weitere Rechtsunsicherheit<br />

für die nächsten Jahre produziert<br />

hat, die unter Umständen für eine<br />

weitere Abmahnwelle sorgen könnte. Das<br />

wäre schade. (mfe) <br />

n<br />

Infos<br />

[1] Fred Andresen, „Lex Google“, Linux-<br />

Magazin 11/​2012, S. 82<br />

[2] Urheberrechtsgesetz:<br />

[http:// www. gesetze‐im‐internet. de/ urhg/]<br />

[3] BGH-Entscheidung zu Google-Thumbnails:<br />

[http:// juris. bundesgerichtshof. de/​<br />

cgi‐bin/ rechtsprechung/ document. py?​<br />

Gericht=bgh& Art=pm& Datum=2010&​<br />

Sort=3& anz=94& pos=1& nr=51998&​<br />

linked=urt& Blank=1& file=dokument. pdf]<br />

[4] BT-Drucksache 17/​11792: [http:// dip21.​<br />

bundestag. de/ dip21/ btd/ 17/ 117/ 1711792. pdf]<br />

[5] Grundgesetz der Bundesrepublik Deutschland:<br />

[http:// www. gesetze‐im‐internet. de/ gg/]<br />

<strong>Der</strong> Autor<br />

RA Fred Andresen ist Mitglied<br />

der Rechtsanwaltskammer<br />

München und der Arbeitsgemeinschaft<br />

Informationstechnologie<br />

im Deutschen<br />

Anwaltverein (DAVIT).


Forum<br />

www.linux-magazin.de Bücher 06/2013<br />

70<br />

Bücher über Map-Reduce und über die Sprache Erlang<br />

Tux liest<br />

Das eine Buch trägt bewährte Lösungen für das Framework Map-Reduce zusammen, das zweite versammelt<br />

Wissenswertes über Erlang. Für beide Werke muss der Leser der englischen Sprache mächtig sein. Rainer Grimm<br />

Auf knapp 250 Seiten wagen die Autoren<br />

Donald Miner und Adam Shook das mutige<br />

Unterfangen, bewährte Best Practices<br />

mit Map-Reduce zu dokumentieren, obwohl<br />

Googles Framework erst seit etwa<br />

fünf Jahren im Einsatz ist. Simon St. Laurent<br />

bespricht in seinem englischsprachigen<br />

Buch „Introducing Erlang“ die funktionale<br />

Programmiersprache Erlang.<br />

Die Kunst der Reduktion<br />

Auf recht wenigen Seiten ein mächtiges<br />

Framework zu erklären ist heikel. Dabei<br />

halten sich die Autoren an die bekannte<br />

Map-Reduce-Implementierung Hadoop<br />

und verwenden als zu analysierenden<br />

Datensatz die vielen Mails von Stack<br />

Overflow. Wer eine Einführung in das<br />

Thema erwartet, wird enttäuscht: Nur<br />

am Anfang gehen die Autoren ein wenig<br />

auf Design Patterns im Allgemeinen und<br />

Map-Reduce im Speziellen ein. Map-Reduce-vertrauten<br />

Lesern wird das reichen,<br />

um tiefer einzusteigen.<br />

Im Kapitel „Summarization Patterns“<br />

begegnet dem Leser das Map-Reduce-<br />

Pattern Word Count, das zusammengefasste<br />

Sichten auf Daten darstellt. Es folgen<br />

Patterns, die Teilmengen aus Daten<br />

herausfiltern, um sie besser zu verstehen.<br />

Eine typischer Anwendungsfall im Kapitel<br />

„Filtering Patterns“ ist ein verteilter<br />

»grep«-Aufruf. Die Data Organization Pat-<br />

Info<br />

Donald Miner, Adam<br />

Shook:<br />

MapReduce Design<br />

Patterns (Englisch)<br />

O’Reilly, 2013<br />

249 Seiten<br />

37 Euro<br />

ISBN: 978-1-4493-2717-0<br />

terns versuchen schlecht strukturierte Daten<br />

besser zu organisieren. Besser kann<br />

hier eine Schlüssel-Wert-Assoziation oder<br />

auch eine Hierarchie sein.<br />

Es geht weiter mit den Join Patterns, die<br />

Daten um Daten erweitern. Das Kapitel<br />

„Metapatterns“ erklärt das Verknüpfen<br />

und Verschmelzen von Map-Reduce-Jobs,<br />

um die Performance des Gesamtjobs oder<br />

den I/O-Durchsatz zu optimieren. Wie es<br />

in der Implementierung Hadoop möglich<br />

ist, externe Datenquellen oder ‐senken<br />

anzusprechen, zeigt ein Kapitel über Input-<br />

und Output-Patterns. So lassen sich<br />

Daten direkt erzeugen oder aus einer Datenbank<br />

lesen und schreiben.<br />

Fazit: Das Wagnis, auf wenigen Seiten<br />

ein komplexes Framework zu würdigen,<br />

ist den Autoren gelungen. Als große Referenz<br />

für Best-Practice-Lösungen kann<br />

das Werk dagegen nicht gelten. Es leistet<br />

aber eine Hilfe, die Anwendungsfälle zu<br />

identifizieren und zu analysieren. Die<br />

zugehörigen Java-Codebeispielen eingerechnet<br />

besitzt das Werk für den Map-<br />

Reduce-Architekten großen Wert.<br />

Erlang – kurz und bündig<br />

Um mit der Tür ins Haus zu fallen: „Introducing<br />

Erlang“ ist eine sehr kurzweilige<br />

Lektüre, die einiges an Information<br />

bietet. Als roter Faden durch das ganze<br />

Werk zieht sich ein Schwerkraftbeispiel.<br />

Das Buch besteht aus zwei Teilen: <strong>Der</strong><br />

erste führt in Erlang und die funktionale<br />

Denkweise ein. Dabei nimmt der Autor<br />

den Leser an die Hand, um ihm den Umgang<br />

mit der Interpreter Shell, Funktionen,<br />

Modulen, Atomen, Tuples, Strings<br />

und Listen zu erklären. Das schildert er<br />

so anschaulich, dass es gar nicht nötig<br />

ist, den abgedrucken Sourcecode in Aktion<br />

zu sehen, um ihn zu verstehen.<br />

Neben der Erlang-Syntax versteht es der<br />

Autor, das funktionale Paradigma motivierend<br />

einzuführen. Vorteile unveränderlicher<br />

Variablen, von Rekursion, Listenverarbeitung<br />

und List Comprehension<br />

als Strukturelementen – er beschreibt es.<br />

Funktionales wie Higher Order Functions,<br />

Closures und Tail Recursion beenden den<br />

ersten Teil des Buches.<br />

Erlang zeichnet der Umgang mit unabhängigen<br />

Prozessen aus, die sich Nachrichten<br />

synchron und asynchron senden.<br />

Die Eleganz und Mächtigkeit dieses skalierbaren<br />

und fehlertoleranten Konzepts<br />

beschreibt der zweite Teil des Buches.<br />

Er schlüsselt auch Erlangs stimmige Persistenzkonzepte<br />

auf, sei es nun Erlang<br />

Term Storage (ETS) oder die Datenbank<br />

Mnesia, mit denen sich ein Record im<br />

Arbeitsspeicher oder persistent speichern<br />

lässt. Beeindruckend wie die Open Telecom<br />

Platform (OTP) hilft Services zu<br />

erzeugen, Server aufzusetzen und Anwendungen<br />

zu packen.<br />

Fazit: Trotz des geringen Umfangs von<br />

rund 200 Seiten gelingt es Simon St. Laurent,<br />

dem Leser die funktionale Denke im<br />

Allgemeinen sowie die syntaktischen und<br />

vor allem die semantischen Eigenheiten<br />

von Erlang im Besonderen näherzubringen.<br />

Die kompakte Form und die unterhaltsame<br />

Vermittlung machen Lust auf<br />

mehr. Besser lässt sich nicht für Erlang<br />

werben. (jk/tle)<br />

n<br />

Info<br />

Simon St. Laurent:<br />

Introducing Erlang<br />

(Englisch)<br />

O’Reilly, 2013<br />

199 Seiten<br />

16 Euro<br />

ISBN: 978-1-4493-3176-4


Computerwissen für Praktiker<br />

Bekannt für Qualität<br />

S. Karbginski, M. Lanzrath<br />

VMware View<br />

Planen • Konfigurieren • Verwalten<br />

Virtuelle Windows-Desktops in der vSphere-<br />

Umgebung: virtuelle Maschinen anlegen,<br />

verteilen und verwalten, Endgeräte<br />

vorbereiten, Gäste anpassen<br />

• 543 Seiten • ISBN 978-3-936546-67-5<br />

• EUR 59,90 (D)<br />

Dr. Rolf Freitag<br />

Die Kunst des Verdeckens<br />

Daten verschleiern, verschlüsseln,<br />

zerstören<br />

Alle clientseitigen Maßnahmen, den<br />

Computer und seine Inhalte vor<br />

Diebstahl und Spionage zu schützen.<br />

• 366 Seiten<br />

• ISBN 978-3-936546-65-1<br />

• EUR 29,90 (D)<br />

Thomas Werth<br />

Penetrations-Tests<br />

Angriffe auf Dienste, Programme<br />

und Netzwerke<br />

Firewalls überwinden, SAP-Systeme<br />

kompromittieren, Webbrowser<br />

überlisten und Backdoors<br />

implementieren.<br />

• 703 Seiten<br />

• ISBN 978-3-936546-70-5<br />

• EUR 49,90 (D)<br />

Probekapitel und Inhaltsverzeichnisse finden Sie auf www.cul.de.<br />

Falls das gewünschte Buch in der Buchhandlung gerade nicht<br />

vorrätig ist, bestellt sie es portofrei innerhalb von 24 Stunden.<br />

Christoph Willer<br />

PC-Forensik<br />

Daten suchen und wiederherstellen<br />

Lehr- und Arbeitsbuch zur Analyse<br />

von PCs mit Windows- und Linux-<br />

Werkzeugen.<br />

• 510 Seiten<br />

• ISBN 978-3-936546-60-6<br />

• EUR 49,90 (D)<br />

Michael Van Canneyt et al.<br />

Lazarus<br />

Klassenbibliothek und IDE<br />

Plattformübergreifende GUI-Entwicklung<br />

für Windows, Mac und<br />

Linux mit Pascal.<br />

• 768 Seiten<br />

• ISBN 978-3-936546-63-7<br />

• EUR 49,90 (D)<br />

Unser Gesamtprogramm<br />

finden Sie unter:<br />

Computer & Literatur Verlag<br />

C&L-Bücher erhalten Sie im gut sortierten Buch- und Fachhandel oder über www.cul.de


Forum<br />

www.linux-magazin.de Leserbriefe 06/2013<br />

72<br />

Auf den Punkt gebracht<br />

Leserbriefe<br />

Haben Sie Anregungen, Statements oder Kommentare? Dann schreiben Sie an [redaktion@linux‐​magazin.​de].<br />

Die Redaktion behält es sich vor, die Zuschriften und Leserbriefe zu kürzen. Sie veröffentlicht alle Beiträge mit<br />

Namen, sofern der Autor nicht ausdrücklich Anonymität wünscht.<br />

Linux-Maintenance<br />

03/​13, S 22: Ich habe mich offen gesagt<br />

sehr gefreut über das Magazin-Hauptthema,<br />

das in meinem professionellen<br />

Umfeld seid über zehn Jahren immer<br />

wieder Fragen und Probleme aufwirft.<br />

Trotz der schlechten Erfahrungen von<br />

Herrn Knopper, die sich mit meinen als<br />

Autor von Software aus der anderen<br />

Perspektive durchaus decken, zeigt Ihr<br />

Vorstoß, wie gut die einzelnen Distributionen<br />

die verschiedenen Anforderungsprofile<br />

bedienen.<br />

Sie stellten eine Behauptung auf: „Noch<br />

niemand Unabhängiges hat sich ernsthaft<br />

darangesetzt, die Maßnahmen zur Paketpflege<br />

systematisch zu untersuchen.“ Das<br />

ist so nicht richtig, aber in einer Linuxfreundlichen<br />

Community veröffentlicht<br />

man so was ohne entsprechendes Renommee<br />

nicht – und kaum sonst jemand<br />

interessiert sich dafür. Schade ist, dass<br />

das Magazin die Chance nicht ergriffen<br />

hat, Fragen über Aktualität, Stabilität,<br />

Zuverlässigkeit und vor allem den Preis<br />

der zugesicherten Leistung entsprechend<br />

zu stellen und zu kategorisieren.<br />

Jens Rehsack, per E-Mail<br />

Knoppix 7.1 und WLAN<br />

04/​13, Delug-DVD: Ich habe mir das<br />

Linux-Magazin 04/​13 gekauft, um Knoppix<br />

7.1 zu besitzen und auf einem USB-<br />

Stick zu installieren. Mein Stick funktioniert<br />

auch weitestgehend perfekt in allen<br />

von mir getesten Computern. Nur bei<br />

meinem Wortmann Terra Tab 1080 mit<br />

Realtek-WLAN (RTL 8188) erkennt das<br />

Tab zwar das Netzwerk, aber trotz der<br />

Eingabe der korrekten WPA-Verschlüsselungsparameter<br />

bricht der Aufbauversuch<br />

nach zirka einer Minute ergebnislos ab.<br />

Ist Knoppix nicht mit diesem Realtek-<br />

WLAN kompatibel?<br />

C. Koller, per E-Mail<br />

Ich vermute, dass es gar nicht an der Unterstützung<br />

für den Realtek-Chipsatz liegt,<br />

denn sonst würden Sie gar keine Netze<br />

sehen. Vermutlich ist die Verschlüsselung,<br />

die der Accesspoint bereitstellt, nicht kompatibel<br />

mit dem Standard-SSL oder dem<br />

TLS-Handshake. Das Problem kenne ich<br />

nur von älteren Accesspoints, vielleicht<br />

gibt es für Ihren ein Firmware-Update, um<br />

es zu beheben. (Klaus Knopper)<br />

Kern-Technik mit<br />

Fehlfunktion<br />

04/​13, S. 96: Die Formeln zur Gewichtung<br />

des Nice-Wertes auf Seite 96 und in<br />

Tabelle 1 auf Seite 97 sind unterschiedlich<br />

und meines Erachtens nicht korrekt, siehe<br />

[http://​oakbytes.​wordpress.​com/​2012/​<br />

​06/​06/​linux‐scheduler‐cfs‐and‐nice/].<br />

Karl-Heinz Pohl, per E-Mail<br />

Sie haben recht! Beim Layouten ist augenscheinlich<br />

eine Grafik fehlerbehaftet<br />

in eine Tabelle verwandelt worden. Die<br />

Spaltenüberschrift „Datenbank“ hätte<br />

richtig „Task“ heißen müssen. Und die<br />

Formel auf Seite 96 muss korrekt »w =<br />

1024/1.25^nice« lauten.<br />

Die in der Tabelle angegebenen Zahlenwerte<br />

als Ergebnis der Formel stimmen<br />

jedoch (655, 1024, 1024 und 1586). Diese<br />

sind übrigens im Kernel fest einprogrammiert,<br />

werden also nicht jedes Mal berechnet.<br />

Sie finden sich im Quellcode in<br />

der Datei »kernel/sched/sched.h"«. Herzlichen<br />

Dank für die kritische Durchsicht!<br />

(Jürgen Quade)<br />

Affen armselig<br />

05/​13, S. 3: Den Wechsel von Miguel de<br />

Icaza zur Mac-Plattform in der gezeigten<br />

Form zu kommentieren ist ein Zeichen<br />

schlechten Verlierertums. Da wendet sich<br />

eine Schlüsselfigur der OSS-Szene von<br />

Linux auf dem Desktop ab und anstatt<br />

die Gründe kritisch zu hinterfragen, wird<br />

Herrn Icaza eine Sehnsucht nach neuen,<br />

rollitragenden Freunden angedichtet. Und<br />

als ob es auch noch der weiteren Herabwürdigung<br />

bedarf, wird sein Verhalten<br />

mit der Nutzung von iPads durch Orang-<br />

Utans in Bezug gesetzt. Das, mit Verlaub,<br />

ist ziemlich armselig und geht auch komplett<br />

am Kern der Sache vorbei. Die Verbreitungszahlen<br />

von Linux im Vergleich<br />

mit Mac OS X auf Desktops und Mobilrechnern<br />

legen doch nahe, dass Icaza mit<br />

seiner Resignation beileibe nicht allein<br />

dasteht. Warum wohl?!<br />

Ich stelle bei der Arbeit an Linux-Desktops<br />

immer wieder fest, dass zwar der<br />

Look der Oberflächen zunehmend besser<br />

wird, aber unter der Haube immer<br />

noch mehr hakt, also beim Feel. Da sind<br />

die erwähnten allfälligen Scherereien mit<br />

WLAN und Stromspar-Einstellungen eine<br />

Sache, die teils unausgegorenen, inkonsistenten<br />

und in sich unlogischen Bedienkonzepte<br />

eine andere.<br />

Anstatt Leuten, die genug von Halbheiten<br />

und Inkonsistenzen haben, unfreundliche<br />

Vergleiche hinterherzuwerfen, sollte<br />

die OSS-Welt lieber von der Konkurrenz<br />

lernen. Die visuellen Effekte von Mac OS<br />

abzukupfern, wie es Ubuntu Unity ganz<br />

unverhohlen tut, ist aber nur die halbe<br />

Arbeit. Man muss auch die zugrunde<br />

liegenden Konzepte verstehen und implementieren.<br />

Peter Eckel, per E-Mail<br />

n


Know-how<br />

www.linux-magazin.de Kern-Technik 06/2013<br />

76<br />

Kernel- und Treiberprogrammierung mit dem Linux-Kernel – Folge 68<br />

Kern-Technik<br />

Die wirklich große Vielfalt der ARM-Hardware stellt Kernelentwickler und Linux-Anwender vor große Herausforderungen.<br />

Device Trees und das neue Pincontrol-Subsystem sollen die Probleme lösen. Jürgen Quade, Eva-Katharina Kunst<br />

© psdesign1, Fotolia<br />

68<br />

Im Linux-Lager hat ARM den x86-Prozessoren<br />

längst den Rang abgelaufen<br />

– der Schwerpunkt dieser Linux-Magazin-Ausgabe<br />

widmet sich der Plattform<br />

ausführlich. Durch das Lizenzmodell der<br />

Firma, statt Chips die Baupläne dafür zu<br />

verkaufen, hat aber eine schwer überschaubare<br />

Vielfalt produziert: Statt Einheitsbrei<br />

nutzen Hersteller die Freiheit,<br />

sich auf Basis eines Energie-effizienten<br />

ARM-Core mit herstellerspezifischer und<br />

bedarfsorientierter Peripherie von der<br />

Konkurrenz abzugrenzen. Diese Vielfalt<br />

spiegelt sich leider auch im Linux-Quellcode<br />

wider.<br />

Jede ARM-Plattform bringt eigene Treiber<br />

und Module ein und bläht den Kernel-<br />

Quellcode zusehends auf. Während auf<br />

einem PC serielle Schnittstellen immer an<br />

den Adressen 0x3f8 und 0x2f8 zu finden<br />

sind, unterscheiden sich bei den ARM-<br />

SoCs Adressenlagen und zugehörige Interrupts<br />

regelmäßig,<br />

oft auch die Ansteuerlogik.<br />

Und: Eine in<br />

Hard- und Firmware<br />

realisierte Konfigurationsschnittstelle<br />

wie<br />

PCI hat sich in der<br />

ARM-Szene bisher<br />

ebenfalls nicht etabliert.<br />

Ein aus dem Quellcode<br />

übersetzter Kernel<br />

ist deshalb nur auf<br />

einer spezifischen<br />

Plattform lauffähig.<br />

Das auf PCs gültige<br />

Linux-Motto „Compile<br />

once, run everywhere“<br />

ist auf dem<br />

Weg zu ARM verloren<br />

gegangen.<br />

2010 zog Linus Torvalds<br />

die Reißleine und forderte die<br />

ARM-Entwickler auf, den Quellcode zu<br />

konsolidieren [1]. Kaum ein Jahr später<br />

präsentierten die Programmierer tatsächlich<br />

den ersten Kernel, der auf mehreren<br />

ARM-Plattformen lauffähig ist. Dabei grif-<br />

Pincontrol-Subsystem<br />

Die Pins moderner ARM-Prozessoren sind oft<br />

multifunktional ausgelegt: Je nach Konfiguration<br />

kann der Entwickler sie als normale Einund<br />

Ausgabeleitungen verwenden, die eine LED<br />

ansteuern oder einen Taster abfragen, oder sie<br />

als Daten- oder Taktleitungen von I 2 C-Interfaces<br />

(Inter-Integrated Circuit) oder SPI (Serial<br />

Peripheral Interface) beschalten.<br />

Zudem gestatten die Chips die elektrische<br />

Eigenschaft eines Pins vorzugeben, beispielsweise<br />

lässt sich ein Pull up- oder Pulldown-<br />

Widerstand an den Eingang schalten oder die<br />

Stromstärke am Ausgang konfigurieren. Die<br />

Konfiguration sowie das Management dieser<br />

fen sie auf einen Trick der Entwickler der<br />

Linux-Version für Power-PC zurück: Die<br />

hatten die jeweilige Hardwarekonfiguration<br />

weder fest in den Kernel einkompiliert<br />

noch als ewig langen Bootparameter<br />

übergeben, sondern stellten sie vor dem<br />

Startup als im Hauptspeicher abgelegte<br />

Datenstruktur bereit. Diese Technik ist<br />

unter dem Namen Device Tree bekannt.<br />

Parallel dazu entwickelte die ARM-Community<br />

neue Subsysteme wie das des<br />

Pincontrol (siehe Kasten „Pincontrol-<br />

Subsystem“)<br />

Blobs im Hauptspeicher<br />

Eine Board-Firmware oder der Bootloader<br />

kopieren die Device Trees in den Hauptspeicher.<br />

(Theoretisch kann die Firmware<br />

Device Trees sogar erzeugen.) Folglich<br />

muss nicht nur der Kernel, sondern auch<br />

die sonstige Systemsoftware Device Trees<br />

unterstützen. Das ist gottlob der Fall: Egal<br />

ob Grub, Lilo oder „Das U-Boot“ [2]<br />

– die gängigen Bootloader sind schon<br />

längst auf die Technik umgestellt. Auch<br />

der proprietäre Bootloader der ebenso<br />

beliebten wie günstigen ARM-Einsteiger-<br />

Pins übernimmt das mit Kernel 3.1 eingeführte<br />

Pincontrol-Subsystem, detailliert dokumentiert<br />

in den Kernelquellen [4].<br />

Um die Pins zu verwalten, registriert der Entwickler<br />

zunächst sämtliche Pins. Dabei weist<br />

er jedem Pin eine Nummer und einen Namen<br />

zu (»PINCTRL_PIN(0, "A1")«). Danach darf er<br />

jeden konfigurieren. Außerdem gruppiert er<br />

Pins, beispielsweise jene, die zusammen ein<br />

I 2 C-Interface bilden (Pin-Multiplexing). Dass<br />

dieselben Pins zu mehreren Gruppen gehören,<br />

ist für das Subsystem unproblematisch – im Gegenteil,<br />

es verhindert sogar die versehentliche<br />

Doppelnutzung.


Platine Raspberry Pi macht keine Ausnahme<br />

(Abbildung 1).<br />

Jeder entsprechend konfigurierte Bootloader<br />

lädt den Device Tree Blob neben<br />

dem Kernel und dem Root-Filesystem in<br />

den Hauptspeicher und gibt danach die<br />

Kontrolle an Linux ab (siehe Kasten „Device<br />

Tree für den Raspberry Pi“). Alternativ<br />

lässt sich der Device Tree dem Kernel-Quellcode<br />

anhängen, was allerdings<br />

ganz und gar nicht mit der Idee eines<br />

einheitlichen Kernels für unterschiedliche<br />

Hardwareplattformen harmoniert.<br />

Kern-Technik 06/2013<br />

Know-how<br />

www.linux-magazin.de<br />

77<br />

Technik für alle<br />

Abbildung 1: Die bestückte Raspberry-Pi-Platine als preiswertes Sprungbrett in die ARM-Technik.<br />

Device Trees sind für Linux-Experten also<br />

in mehrfacher Hinsicht bedeutsam: <strong>Der</strong><br />

Systemarchitekt erzeugt den zu seiner<br />

Plattform gehörenden Device Tree. <strong>Der</strong><br />

Admin wählt die binäre Repräsentation<br />

des Device Tree zum Booten aus und der<br />

Treiberprogrammierer unterstützt in seinem<br />

Kernelcode die Konfiguration über<br />

Device Trees.<br />

Die Device-Tree-Beschreibungen der einzelnen<br />

ARM-SoCs und ARM-Boards befinden<br />

sich im Linux-Quellcodeverzeichnis<br />

unter »arch/arm/boot/dts«. Dateien mit<br />

der Datei-Erweiterung ».dtsi« enthalten<br />

die Definitionen für einen bestimmten<br />

SoC, beispielsweise den im Raspberry<br />

Pi zum Einsatz kommenden „High Definition<br />

1080p Embedded Multimedia<br />

Applications Processor“ BCM 2835 von<br />

Broadcom [3].<br />

Boards mit diesem SoC enthalten in ihrer<br />

Device-Tree-Beschreibung die Datei<br />

»bcm2835.dtsi«. Die Beschreibung für das<br />

Board hat die Datei-Erweiterung ».dts«,<br />

für den Raspberry Pi heißt die Datei beispielsweise<br />

»bcm2835‐rpi‐b.dts«, die es<br />

seit Kernelversion 3.7 gibt. Listing 1 zeigt<br />

Ausschnitte aus der SoC-Konfiguration<br />

von Kernel 3.9-rc4.<br />

Kleine Baumschule<br />

<strong>Der</strong> Baum startet mit »/«, also der Wurzel.<br />

Die auftretenden geschweiften Klammern<br />

bilden jeweils einen neuen Ast, dessen<br />

Bezeichnung vor der Klammer steht.<br />

<strong>Der</strong> BCM-2835-Baum hat drei Hauptäste:<br />

»chosen«, »soc« und »clocks«. Alle Angaben,<br />

die mit einem Doppelkreuz beginnen,<br />

spezifizieren Formate. So bedeutet<br />

»#address‐cells = «, dass Adressen<br />

aus einem einzelnen 32-Bit-Wert bestehen,<br />

»« steht für zwei 32-Bit-Werte<br />

und damit eine 64-Bit-Adresse. Unter<br />

»« firmieren Adressenangaben in<br />

der Form Startadresse Länge.<br />

Beziehungswissenschaften<br />

Von besonderer Bedeutung ist das Schlüsselwort<br />

»compatible«, das die Beziehung<br />

Device Tree für den Raspberry Pi<br />

So wie Raspbian in der Version »2013‐02‐09‐​<br />

wheezy‐raspbian.img« [5] setzen viele Raspberry-Pi-Distributionen<br />

auf einen modifizierten<br />

Kernel der Version 3.6.y. Obwohl dieser<br />

Kernel bereits erste Anpassungen und Treiber<br />

für den vom Raspberry Pi verwendeten SoC<br />

BCM 2835 enthält, unterstützt er Device Trees<br />

nicht. Diese haben erst mit Kernel 3.7 Einzug<br />

gehalten, und auch dort erweist sich der Device<br />

Tree »bcm2835‐rpi‐b.dts« als rudimentär.<br />

Selbst der in Entwicklung befindliche Kernel 3.9<br />

unterstützt den Raspberry Pi nur unvollständig,<br />

der Device Tree ist aber bereits umfangreicher<br />

gefüllt (Listing 1 und Abbildung 3).<br />

Ohne Patches lässt sich derzeit auch aus dem<br />

aktuellen Standard-Linux-Quellcode kein vollständig<br />

lauffähiger Kernel für den Raspberry Pi<br />

generieren. Vor allem fehlt umfassender Support<br />

für USB und Grafik (Videocore). Hinweise,<br />

wie ein Device-Tree-fähiger Kernel zu bauen ist,<br />

gibt [6]. Das Hauptproblem bleibt, geeignet<br />

gepatchte Kernelquellen inklusive der zugehörigen<br />

Kernelkonfiguration zu finden.<br />

Das sollte sich in naher Zukunft bessern. Die<br />

zum Raspberry Pi gehörende Default-Kernelkonfiguration<br />

liegt in vielen Kernelquellen<br />

im Verzeichnis »arch/arm/configs/«. In dem<br />

Namen tauchen »bcm2835« oder »rpi« auf.<br />

Sie zu aktivieren gelingt im Rootverzeichnis<br />

der Kernelquellen beispielsweise mit »make<br />

ARCH=arm bcmrpi_defconfig«.<br />

<strong>Der</strong> Entwickler prüft und ergänzt gegebenenfalls<br />

die Konfiguration (Aufruf durch »make<br />

ARCH=arm menuconfig«) auf die Unterstützung<br />

des Device Tree generell (Auswahl »Boot options«)<br />

und im Proc-Verzeichnis (Auswahl »Device<br />

Drivers | Device Tree und Open Firmware<br />

support«, Abbildung 2).<br />

Den Device Tree Blob erzeugen<br />

Um mit Hilfe des Device Tree Compilers (DTC)<br />

den Device Tree Blob zu erzeugen, ruft der<br />

Entwickler nach dem Generieren des Kernels im<br />

Kernelquellen-Root »make dtbs« auf. <strong>Der</strong> Device<br />

Tree Blob befindet sich nach erfolgreichem<br />

Übersetzen im Verzeichnis »arch/arm/boot/<br />

dts/«. Ihn, also zum Beispiel »bcm2835‐rpi‐b.<br />

dtb«, kopieren Raspberry-Pi-Besitzer auf ihre<br />

SD-Karte in das Verzeichnis »/boot«. An gleicher<br />

Stelle ergänzen sie die Datei »config.txt«<br />

um die folgenden Zeilen:<br />

device_tree=bcm2835.dtb<br />

device_tree_address=0x100<br />

kernel_address=0x8000<br />

disable_commandline_tags=1<br />

init_uart_baud=115200<br />

init_uart_clock=3000000<br />

init_emmc_clock=50000000<br />

Diese Variablen legen fest, an welchen Adressen<br />

der Bootloader im Hauptspeicher den<br />

Device Tree und den Kernelcode ablegen soll.<br />

Die Adresse des Device Tree bekommt dann<br />

die ARM-CPU bei der Programmübergabe an<br />

den Kernel in dem internen Register »r1« übergeben.<br />

Das Generieren eines Kernels für den<br />

Raspberry Pi wird übrigens Thema einer der<br />

nächsten Kern-Technik-Folgen sein.


Know-how<br />

www.linux-magazin.de Kern-Technik 06/2013<br />

78<br />

Abbildung 2: Im Zuge der Kernelkonfiguration des Raspberry Pi ist die<br />

Device-Tree-Unterstützung zu prüfen.<br />

zwischen dem Device-Tree-Eintrag und<br />

einer Kernelkomponente herstellt – typischerweise<br />

einem Treiber. Neben den<br />

vordefinierten Schlüsselwörtern wie<br />

»compatible«, »reg«, »interrupts« oder<br />

auch »ranges« darf der Entwickler auch<br />

eigene Variablen definieren und mit Werten<br />

versehen. Detaillierte Informationen<br />

zu Schlüsselwörtern<br />

und deren Syntax liefert<br />

[7].<br />

Falls im Kernel konfiguriert,<br />

lässt sich<br />

aus dem Userland der<br />

vollständige Device<br />

Tree nach dem Booten<br />

auslesen. Er steckt im<br />

Verzeichnis »/proc/<br />

device‐tree«. Die einzelnen<br />

Äste sind dabei<br />

als Unterverzeichnisse<br />

ausgeprägt (Abbildung<br />

3), wobei die Include-Datei die zusätzlichen<br />

Äste »memory« und »aliases«<br />

in »skeleton.dtsi« definiert.<br />

Die Device-Tree-Beschreibung eines<br />

Boards übersetzt schließlich ein Device<br />

Tree Compiler (DTC). Das Ergebnis ist<br />

ein kompakter Binary-Blob (Device Tree<br />

Blob, DTB). <strong>Der</strong> Code des Compilers findet<br />

sich in den Kernelquellen unterhalb<br />

des Verzeichnisses »scripts/dts/«.<br />

Open Firmware<br />

Im Kernel gibt es einen Interpreter, der<br />

den Blob beim Booten interpretiert, einen<br />

Baum aus »struct device_node« aufbaut,<br />

die zugehörigen Treiber aktiviert und<br />

mit den passenden Konfigurationsinformationen<br />

versorgt (Abbildung 4). <strong>Der</strong><br />

Quellcode zum Device-Tree-Interpreter<br />

findet sich in den Linux-Kernelquellen<br />

unter »drivers/of«, »of« steht für Open<br />

Firmware, einer von der Firma Sun, dann<br />

Oracle, entworfenen Schnittstellen-Spezifikation.<br />

Die im Linux-Kernel eingesetzte<br />

Spezialvariante nennt sich Flattened Device<br />

Tree (FDT).<br />

Außerdem stellt der Kernel eine Reihe<br />

von Funktionen bereit, um den Baum zu<br />

durchwandern, nach bestimmten Ästen<br />

Listing 1: Device Tree des Raspberry Pi (gekürzt)<br />

01 /include/ "skeleton.dtsi"<br />

02 <br />

03 / {<br />

04 compatible = "brcm,bcm2835";<br />

05 model = "BCM2835";<br />

06 interrupt‐parent = ;<br />

07 <br />

08 chosen {<br />

09 bootargs = "earlyprintk ... rootfstype=ext4";<br />

10 };<br />

11 <br />

12 soc {<br />

13 compatible = "simple‐bus";<br />

14 #address‐cells = ;<br />

15 #size‐cells = ;<br />

16 ranges = ;<br />

17 <br />

18 timer {<br />

19 compatible = "brcm,bcm2835‐system‐timer";<br />

20 reg = ;<br />

21 interrupts = , , , ;<br />

22 clock‐frequency = ;<br />

23 };<br />

24 <br />

25 intc: interrupt‐controller {<br />

26 compatible = "brcm,bcm2835‐armctrl‐ic";<br />

27 [...]<br />

28 };<br />

29 <br />

30 watchdog {<br />

31 compatible = "brcm,bcm2835‐pm‐wdt";<br />

32 reg = ;<br />

33 };<br />

34 <br />

35 uart@20201000 {<br />

36 compatible = "brcm,bcm2835‐pl011", "arm,pl011";<br />

37 reg = ;<br />

38 interrupts = ;<br />

39 clock‐frequency = ;<br />

40 };<br />

41 <br />

42 gpio: gpio {<br />

43 compatible = "brcm,bcm2835‐gpio";<br />

44 reg = ;<br />

45 [...]<br />

46 gpio‐controller;<br />

47 #gpio‐cells = ;<br />

48 interrupt‐controller;<br />

49 #interrupt‐cells = ;<br />

50 };<br />

51 <br />

52 i2c0: i2c@20205000 {<br />

53 [...]<br />

54 };<br />

55 [...]<br />

56 sdhci: sdhci {<br />

57 [...]<br />

58 clocks = ;<br />

59 status = "disabled";<br />

60 };<br />

61 };<br />

62 <br />

63 clocks {<br />

64 [...]<br />

65 clk_mmc: mmc {<br />

66 [...]<br />

67 };<br />

68 [...]<br />

69 };<br />

70 };


zu suchen und den<br />

Zugriff auf die enthaltenen<br />

Informationen<br />

zu erleichtern. Diese<br />

Funktionen verwenden<br />

Treiberprogrammierer,<br />

die Device<br />

Trees supporten, um<br />

damit Konfigurationsinformationen<br />

auszulesen.<br />

Um den richtigen Treiber<br />

auf Basis der Informationen<br />

des Device<br />

Tree zu aktivieren,<br />

benötigt der Interpreter<br />

eine Matchtable,<br />

wie Linux sie bereits<br />

bei USB- oder bei PCI-Geräten einsetzt<br />

(Abbildung 5). Die Tabelle ordnet jedem<br />

Treiber eine Compatible-ID zu. Diese<br />

ID besteht aus einem Herstellernamen<br />

und einer Treiberreferenz, beispielsweise<br />

»brcm,bcm2835‐gpio« wie in Listing 2<br />

zu sehen.<br />

Die Knoten im Device Tree enthalten<br />

ebenfalls diese Compatible-ID, sodass der<br />

Kernel für jeden Knoten den in der Matchtable<br />

spezifizierten zugehörigen Treiber<br />

laden kann. <strong>Der</strong> Treiber bekommt dabei<br />

für jedes von ihm zu bedienende Gerät<br />

die Device-Tree-Informationen in Form<br />

einer Referenz auf den zugehörigen Ast<br />

(»struct device_node«) übergeben. Die<br />

Referenz ist in der Datenstruktur »struct<br />

node« eingebettet, die etwa bei einer<br />

Treiber-Probe-Funktion standardmäßig<br />

als Parameter auftaucht.<br />

Hardware für den Zugriff<br />

reservieren<br />

Diese Probe-Funktion ist in typischen<br />

Gerätetreibern für die Identifikation und<br />

Übernahme der Hardware zuständig<br />

(Listing 3). Zum Auslesen der Daten aus<br />

dem Device-Tree-Ast und der Ablage in<br />

einer Treiber-internen Variablen verwendet<br />

der Programmierer beispielsweise<br />

»of_address_to_resource()«.<br />

Um den exklusiven Zugriff organisieren<br />

zu können, muss der Programmierer die<br />

jeweiligen Ressourcen danach auf bekannte<br />

Art und Weise, zum Beispiel über<br />

»request_mem_region()«, beim Kernel reservieren<br />

[8]. Sind mehrere gleichartige<br />

Ressourcen spezifiziert, entscheidet die<br />

Abbildung 3: <strong>Der</strong> Device Tree am Beispiel des Raspberry Pi.<br />

Reihenfolge über die Zuordnung. Die »0«<br />

in Listing 3, Zeile 9, steht damit für die<br />

erste Ressource.<br />

Das Auslesen eigener, im bisherigen<br />

Device-Tree-Format nicht spezifizierter<br />

Informationen gelingt recht einfach über<br />

die Funktion »of_get_property()«. Sie liefert<br />

von dem übergebenen Ast den mit<br />

dem Namen hinterlegten Wert in Form<br />

einer Speicheradresse (»mux«) und der<br />

Länge des zugehörigen Speicherbereichs<br />

(»&size«) zurück:<br />

mux = of_get_property(node_ptr,U<br />

PCS_MUX_BITS_NAME, &size);<br />

Den Speicher hinter der zurückgegebenen<br />

Adresse verwaltet im Übrigen der<br />

Listing 2: Treiber identifizieren<br />

01 #ifdef CONFIG_OF<br />

02 static struct<br />

03 of_device_id bcm2835_pinctrl_match[] = {<br />

04 { .compatible = "brcm,bcm2835‐gpio" },<br />

05 {}<br />

06 };<br />

07 MODULE_DEVICE_TABLE(of,bcm_pinctrl_match);<br />

08 <br />

09 static struct platform_driver<br />

10 bcm_pinctrl_drvr = {<br />

Listing 3: Probe-Funktion im Gerätetreiber<br />

01 static int bcm2835_pinctrl_probe(struct<br />

platform_device *pdev)<br />

02 {<br />

03 struct device *dev = &pdev‐>dev;<br />

04 struct device_node *np = dev‐>of_node;<br />

05 [...]<br />

06 struct resource iomem;<br />

07 [...]<br />

Device Tree Structure<br />

Userland<br />

Hauptspeicher<br />

»soc«<br />

»#adress-cells«<br />

Kernel<br />

DTS<br />

Treiber<br />

I 2 C<br />

Device Tree<br />

Compiler<br />

DTC<br />

»clocks« »chosen«<br />

»compatible«<br />

/ Bootloader<br />

Treiber<br />

Gpio<br />

Device Tree Blob<br />

DTB<br />

»alias«<br />

»memory«<br />

»uart@20201000«<br />

DTB-Interpreter<br />

»gpio«<br />

Treiber<br />

SPI<br />

Abbildung 4: Das Kompilat der DTS-Datei landet per<br />

Bootloader im Hauptspeicher.<br />

Kernel – ihn freizugeben, sollte darum<br />

der Treiberprogrammierer tunlichst unterlassen.<br />

Weitere Hinweise zur Device-<br />

Tree-Unterstützung finden Entwickler in<br />

11 .probe = bcm2835_pinctrl_probe,<br />

12 .remove = bcm2835_pinctrl_remove,<br />

13 .driver = {<br />

14 .name = MODULE_NAME,<br />

15 .owner = THIS_MODULE,<br />

16 .of_match_table = bcm_pinctrl_match,<br />

17 },<br />

18 };<br />

19 module_platform_driver(bcm_pinctrl_drvr);<br />

20 #endif<br />

08 <br />

09 err=of_address_to_resource(np,0,&iomem);<br />

10 if (err) {<br />

11 dev_err(dev,"could not get IO mem\n");<br />

12 return err;<br />

13 }<br />

14 <br />

15 pc‐>base=devm_ioremap_resource(dev, &iomem);<br />

16 [...]<br />

Kern-Technik 06/2013<br />

Know-how<br />

www.linux-magazin.de<br />

79


Know-how<br />

www.linux-magazin.de Kern-Technik 06/2013<br />

80<br />

gpio: gpio {<br />

};<br />

Device Tree<br />

.compatible = "bcm,bcm-gpio";<br />

[...]<br />

Matchtable<br />

# of module compatible<br />

spidev<br />

rohm,dh2228fv<br />

bcm-gpio gcm,bcm-gpio<br />

[...] [...]<br />

»/lib/modules/3.9.-rc4/modules.ofmap«<br />

Treiber-Quellcode<br />

struct of_device_id<br />

bcm2835_pinctrl_match[] = {<br />

{.compatible="bcm,bcm-gpio"},<br />

{}<br />

};<br />

Abbildung 5: Die Matchtable bildet das Bindeglied<br />

zwischen Device Tree und Treiber.<br />

der durchgehend lesenswerten Dokumentation<br />

von Xillybus [9].<br />

Ein ARM-Linux<br />

Device Trees und das ARM-Pincontrol-<br />

Subsystem bilden elegante Methoden,<br />

um Hardware-Unterschiede zu nivellieren.<br />

Um dem „Compile once, run everywhere“<br />

auf ARM-Systemen näher zu<br />

rücken, muss der Kernelcode aber Device<br />

Trees durchgängig unterstützten.<br />

Halten sich genügend Entwickler daran,<br />

entsteht hoffentlich bald ein Linux, das<br />

auf Chrome-Books genauso läuft wie auf<br />

verschiedenen Smartphones. (jk) n<br />

Die Autoren<br />

Eva-Katharina Kunst, Journalistin, und Jürgen<br />

Quade, Professor an der Hochschule Niederrhein,<br />

sind seit den Anfängen von Linux Fans von Open<br />

Source. Inzwischen ist die dritte Auflage ihres<br />

Buches „Linux Treiber entwickeln“ erschienen.<br />

Infos<br />

[1] Jake Edge, „ARM and defconfig files“:<br />

[http:// lwn. net/ Articles/ 391372/]<br />

[2] Das U-Boot:<br />

[http:// www. denx. de/ wiki/ U‐Boot]<br />

[3] BCM 2835: [http:// www. broadcom. com/​<br />

products/ BCM2835]<br />

[4] Pincontrol-Subsystem – Dokumentation im<br />

Kernel-Quellcode:<br />

[http:// lxr. free‐electrons. com/ source/​<br />

Documentation/ pinctrl. txt]<br />

[5] Raspbian: [http:// www. raspbian. org]<br />

[6] „How to boot using device tree“:<br />

[https:// github. com/ raspberrypi/ linux/​<br />

wiki/ How‐to‐boot‐using‐device‐tree]<br />

[7] Device Tree Usage:<br />

[http:// devicetree. org/ Device_Tree_Usage]<br />

[8] J. Quade, K. Kunst, „Linux-Treiber entwickeln“,<br />

3. Auflage: Dpunkt-Verlag 2011;<br />

S. 113 ff.<br />

[9] „A Tutorial on the Device Tree (Zynq)“:<br />

[http:// xillybus. com/ tutorials/​<br />

device‐tree‐zynq‐1]<br />

Alles zum ThemA Android<br />

Die Monatszeitschrift für Android-Fans, Smartphone- und Tablet-Nutzer<br />

DigisuB: nur 39,90 € im Jahr (12 PDFs)<br />

+<br />

Lesen Sie News und<br />

Artikel schon 1 Woche<br />

vor dem Kiosk-Termin!<br />

Jetzt bestellen unter:<br />

www.android–user.de/digisub<br />

Telefon 07131 / 2707 274 • Fax 07131 / 2707 78 601 • E-Mail: abo@android-user.de


OPEN-IT SUMMIT<br />

Business | Public Sector | Industry<br />

22. + 23. Mai 2013<br />

Messegelände Berlin<br />

OPEN FOR BUSINESS & STARTUPS<br />

Im Rahmen des 19. LinuxTag findet der 1. OPEN-IT SUMMIT<br />

am 22. und 23. Mai in Berlin als eigene Konferenz und<br />

Sonderschau der OSB Alliance statt.<br />

Goldpartner:<br />

PROGRAMM PREVIEW<br />

Old Industry discovers Value of Open Source<br />

Dr. Stefan Ferber (Bosch Software Innovations GmbH)<br />

Gestalten statt verwalten:<br />

Open IT von der Gemeinde bis zur EU<br />

Massive Open Online Courses in der Informationstechnologie<br />

Markus Feilner, Stellvertretender Chefredakteur LinuxMagazin<br />

(MediaLinx AG)<br />

LiMux – Mehr als 12.000 Clients im Betrieb: Lessons Learned<br />

Dr. Jutta Kreyss (Landeshauptstadt München)<br />

openHPI: Massive Open Online Courses<br />

in der Informationstechnologie<br />

Prof. Christoph Meinel (Hasso Plattner Institut)<br />

www.open-it-summit.de<br />

Eine Veranstaltung<br />

im Rahmen des Veranstaltet von Medienpartner<br />

Partner<br />

MAGAZIN


Programmieren<br />

www.linux-magazin.de C++11 06/2013<br />

Modernes C++ in der Praxis – Folge 10<br />

Zähl mich!<br />

84<br />

<strong>Der</strong> Prüfstein für reguläre Ausdrücke heißt Word Count. Das Zählen von Wörtern in einem Dokument zeigt, ob<br />

sich eine Programmiersprache für das Prozessieren von Text eignet. <strong>Der</strong> Autor des Artikels zeigt, dass sich der<br />

Klassiker in C++11 fast mit der Kompaktheit von Python implementieren lässt. Rainer Grimm<br />

C++11<br />

asynchrone Aktionen<br />

override<br />

decltype In Zeile 36 kommt eine klassische Map<br />

zum Einsatz. Diese bildet ganze Zahlen<br />

Move-Semantik<br />

Neue Container<br />

auto<br />

auf einem Vektor aus Strings ab. Bleibt<br />

Variadic Templates<br />

noch das Alias »intAndWords« in Zeile<br />

bind 35 übrig. Es postuliert ein Paar, das aus<br />

Type Traits<br />

einer ganzen Zahl und einem Vektor aus<br />

C++11<br />

Alias Templates<br />

Tuple Strings besteht.<br />

default<br />

function<br />

Mächtige Helfer<br />

Range-basierte<br />

C++11<br />

nullptr<br />

For-Schleife<br />

Die Funktion »wordCount()« (Zeilen 39<br />

Zufallszahlen<br />

Zeitbibliothek bis 48) tut wenig überraschend genau<br />

delete<br />

final<br />

das, was ihr Name verspricht. Sie gibt<br />

Benutzerdefinierte Literale<br />

Smart Pointer in einem Dictionary zurück, wie oft ein<br />

Hashtabellen<br />

static_assert<br />

reguläre Ausdrücke<br />

Wort in dem Text vorkommt. Das Wort<br />

Threads dient in diesem Szenario als Schlüssel,<br />

Lambda-Funktionen<br />

Array<br />

der Wert enthält hingegen die Häufigkeit,<br />

mit der ein Wort im Text auftritt.<br />

Ein Blick auf den zugehörigen Funktionskörper<br />

Lang, lang ist es her, doch noch immer<br />

präsent: In meinem Einstellungsgespräch<br />

In den Zeilen 34 bis 36 beginnt der Quellcode<br />

– nach einer längeren Serie von zeigt: Hier kommen reguläre Aus-<br />

drücke zum Einsatz. <strong>Der</strong> reguläre Ausdruck<br />

»wordReg(R"(\w+)")« beschreibt<br />

zunächst ein Wort, wobei der eingesetzte<br />

Raw-String »R"(regulärer Ausdruck)"« in<br />

C++11 dafür sorgt, dass der Entwickler<br />

den Backslash im Ausdruck »\w« nicht<br />

mehr durch Zuhilfenahme eines weiteren<br />

Backslash escapen muss.<br />

wurde ich mit der Frage konfrontiert, wie<br />

ich in einem Text zuverlässig bestimmen<br />

kann, welches Wort am häufigsten vorkommt.<br />

Das war beileibe keine triviale<br />

Aufgabenstellung, war ich doch mit den<br />

denkbar ungeeigneten Waffen C und<br />

Fortran angetreten, um die Schlacht zu<br />

schlagen. Was damals meine Körpertemperatur<br />

um einige Zehntelgrad steigerte,<br />

wäre heute keinen Schweißtropfen mehr<br />

wert, denn mit assoziativen Containern<br />

und regulären Ausdrücken bewaffnet reduziert<br />

sich die Lösung des Problems auf<br />

ein kurzes Gefecht.<br />

Das ist in der Tat so kurz, dass ich noch<br />

gern ein paar weitere Statistiken zu einem<br />

Text ermitteln will (Listing 1) – das<br />

komplette Listing »wordcount.cpp« hält<br />

die Webseite des Linux-Magazins [1] vor.<br />

Das Programm zeigt schön, wie sich klassische<br />

C++-Funktionen mit denen des<br />

modernen C++11 kombinieren lassen.<br />

Include- und Using-Anweisungen – spannend<br />

zu werden. So definiert der Ausdruck<br />

»str2Int« ein Alias für ein assoziatives<br />

Array, das Strings auf ganze Zahlen<br />

abbildet. Da man die Strings mit dem<br />

Ziel einsetzt, ganze Zahlen als Ergebnis<br />

zu erhalten, werden Erstere als Schlüssel<br />

und Letztere als Werte bezeichnet.<br />

Assoziative Arrays, die man auch unter<br />

der Bezeichnung Dictionary oder Hash<br />

kennt, haben zwei besondere Eigenschaften:<br />

<strong>Der</strong> Zugriff auf ihre Elemente<br />

erfolgt konstant, also unabhängig von<br />

der Anzahl der enthaltenen Elemente.<br />

Zugleich sind ihre Schlüssel, hier also die<br />

Strings, nicht sortiert. Diese Charakterzüge<br />

unterscheiden die neue Datenstruktur<br />

»unordered_map« in C++11 von den<br />

»map«-Funktionen im klassischen C++,<br />

denn bei diesen verhält sich die Zugriffszeit<br />

auf die Werte logarithmisch und die<br />

Schlüssel sind sortiert.<br />

Einschränkungen<br />

für GCC und Clang<br />

Das Beispielprogramm (Listing 1) braucht<br />

die Boost-Bibliothek [2], denn die aktuellen<br />

GCC- und Clang-Compiler unterstützen die<br />

neuen regulären Ausdrücke noch nicht. Im<br />

Gegensatz dazu bietet der Visual-C++-Compiler<br />

von Microsoft bereits reguläre Ausdrücke<br />

an. Für diesen reicht dann ein einfaches<br />

Ersetzen der Boost-Header in Zeile 3, wie<br />

es die Zeilen 1 und 2 beschreiben, sowie des<br />

Namespace »std::tr1::« durch »std::« in der<br />

Zeile 30, und schon ist das Programm standardkonform.


Ist der reguläre Ausdruck erklärt, benutzt<br />

ihn Zeile 41, um einen Iterator über alle<br />

Wörter zu definieren, der als »wordItBegin«<br />

in Zeile 44 startet. <strong>Der</strong> kompakte<br />

Ausdruck<br />

++allWords[wordItBegin‐>str()]<br />

in Zeile 45 nimmt jedes Wort aus dem<br />

Text »wordItBegin‐>str()« und erhöht<br />

über »++allWords« den Zähler um 1.<br />

Falls das Wort noch nicht im Dictionary<br />

steht, legt der Code es erstmalig an, was<br />

den Zähler auf »1« setzt.<br />

Die zweite Funktion – »frequencyOf-<br />

Words()« (Abbildung 1) in den Zeilen<br />

51 bis 63 – erwartet als Argument ebenfalls<br />

ein Dictionary aus Schlüssel-​Wert-<br />

Paaren, die jeweils aus einem String und<br />

einer ganzen Zahl bestehen. Hier dreht<br />

sich die Relation um: <strong>Der</strong> Wert wird zum<br />

Schlüssel, der Schlüssel zum Wert. Da<br />

das Abbilden nicht eindeutig sein kann,<br />

wie Abbildung 1 zeigt, landen die neuen<br />

Werte in einem Vektor aus Strings.<br />

<strong>Der</strong> Grund: Das Dictionary der Funktion<br />

»frequencyOfWords()« enthält zunächst<br />

Schlüssel-Wert-Paare, wobei die Schlüssel<br />

stellvertretend für die Wörter des Textes<br />

stehen und die Werte für die Häufigkeit<br />

ihres Auftretens im Text. Die Ausgabe der<br />

Funktion besteht hingegen aus Paaren,<br />

die jeweils aus einem Wert sowie einem<br />

Vektor aus Wörtern bestehen. Dabei stecken<br />

alle Wörter, die mit gleicher Häufigkeit<br />

auftreten, im selben Vektor.<br />

Diese Invertierung der Schlüssel-​Wert-<br />

Gemeinschaft findet in der »if«-Schleife<br />

in den Zeilen 55 bis 60 statt. Während<br />

der »if«-Zweig den initialen Eintrag zum<br />

Schlüssel anlegt, schiebt der »else«-Zweig<br />

der Schleife das Wort nur hinten auf den<br />

Vektor. Dem aufmerksamen Betrachter<br />

fällt auf, dass der assoziative Eingabecontainer<br />

»str2Int« ungeordnet, der assoziative<br />

Ausgabecontainer »int2Words«<br />

hingegen geordnet ist. Letzterer sortiert<br />

die Schlüssel nach ihrer Häufigkeit und<br />

bringt sie so in eine optimale Struktur,<br />

um sie in einem späteren Schritt weiterzuverarbeiten.<br />

(the, 3)<br />

(a, 2)<br />

(for, 2)<br />

str2Int<br />

(the, 2)<br />

(test, 1)<br />

(child, 2)<br />

frequencyOfWords<br />

Projekt Gutenberg [3] genauer unter die<br />

Lupe zu nehmen. Abbildung 2 zeigt die<br />

zugehörige Statistik. Los geht es mit dem<br />

Hauptprogramm ab Zeile 65. Als Argument<br />

erwartet es einen Pfad, um schließlich<br />

die Datei in Zeile 80 zu öffnen und<br />

ihren Inhalt in Zeile 89 als String »text«<br />

zur Verfügung zu stellen.<br />

Das geht am einfachsten und schnellsten<br />

mit Hilfe der Funktion »rdbuf()« des Eingabestreams<br />

(Zeile 88). Mit »text« lässt<br />

sich die Hilfsfunktion »wordCount()«<br />

(Zeile 92) füttern. Sie gibt ein Dictionary<br />

zurück, das zu jedem Wort in »text« dessen<br />

Häufigkeit enthält. Damit lassen sich<br />

einfach die ersten 20 Wörter »advance<br />

(end,20)« (Zeile 96) ausgeben.<br />

Hier erst beginnt die statistische Auswertung<br />

des Textes, denn »allWords« ist ein<br />

Dictionary. Was liegt da näher, als es<br />

int2Words<br />

(2, [a, for, then])<br />

(3, [the])<br />

(1, [test, child])<br />

Abbildung 1: Die Funktion »frequencyOfWords« verwandelt Schlüssel-​Wert-<br />

Paare in Wert-​Schlüssel-Assoziationen.<br />

auch so zu nutzen und<br />

explizit etwa nach der<br />

Häufigkeit von „Web“<br />

(»allWords["Web"]«)<br />

oder „The“ (»allWords​<br />

["The"]«) zu fragen,<br />

wie es in den Listingzeilen<br />

102 bis 103 geschieht.<br />

Wie viele verschiedene<br />

Wörter enthält<br />

der Text? Diese Frage<br />

beantwortet dann der<br />

Ausdruck »allWord.<br />

size()« im Beispieltext<br />

mit »5813«, denn er<br />

bestimmt die Anzahl<br />

der Schlüssel. Wird die Summe über die<br />

Häufigkeit aller Wörter (Zeilen 108 bis<br />

110) berechnet, lässt sich die Frage beantworten,<br />

wie viele Wörter der Text enthält.<br />

Die Antwort lautet »105324«. Die eigentliche<br />

Aufgabenstellung bestand allerdings<br />

darin, zu bestimmen, welches Wort am<br />

häufigsten vorkommt.<br />

An diesem Punkt kommt nun die zweite<br />

Funktion »frequencyOfWords« ins Spiel,<br />

denn sie stellt die Relation auf den Kopf.<br />

Die Schlüssel für die Anfrage sind in diesem<br />

Fall nicht mehr allein die Wörter<br />

im Text, sondern die jeweilige Häufigkeit<br />

ihres Auftretens. Diese Information<br />

ist in der Map »allFreq« gespeichert, die<br />

verrät, dass Wörter in 222 Häufigkeiten<br />

auftreten. In Zeile 117 findet die neue<br />

Range-basierte »for«-Schleife sämtliche<br />

Häufigkeiten heraus.<br />

C++11 06/2013<br />

Programmieren<br />

www.linux-magazin.de<br />

85<br />

Name verpflichtet<br />

2013 ist nicht nur offiziell ein Grimm-<br />

Jahr, auch als Namensvetter der Gebrüder<br />

Grimm ist es natürlich meine Pflicht,<br />

die Ausgabe von „Grimms Märchen“ im<br />

Abbildung 2: Statistische Auswertung der englischen Version von „Grimms Märchen“ im Projekt Gutenberg.


Programmieren<br />

www.linux-magazin.de C++11 06/2013<br />

86<br />

Das meistbenutzte Wort kommt 6520-<br />

mal im Text vor und lautet – man hat es<br />

geahnt – „the“. Da C++11 die Werte der<br />

Map »allFreq« standardmäßig aufsteigend<br />

sortiert, genügt es, das letzte Schlüssel-<br />

Wert-Paar auszugeben. Genau dies findet<br />

in den Zeilen 121 bis 123 statt, wobei der<br />

Wert ein Vektor aus Strings ist. Die Werte<br />

des Vektors – das sind die Wörter mit<br />

gleicher Häufigkeit – lassen sich mit einer<br />

weiteren Range-basierten »for«-Schleife<br />

(Zeile 123) auslesen.<br />

Doch es kommt noch besser. Im nächsten<br />

Schritt der Auswertung interessieren den<br />

Entwickler alle Wörter, die mindestens<br />

1000-mal im Text vorkommen. Dazu definiere<br />

ich einen Iterator »biggerIt« in Zeile<br />

127, der genau die richtige Position in der<br />

Map »allFreq« enthält. Das ist möglich,<br />

weil diese Map aufsteigend sortiert ist.<br />

<strong>Der</strong> Ausdruck<br />

find_if(allFreq.begin(),allFreq.end(), []U<br />

(intAndWords iAndW){return iAndW.first U<br />

> 1000;})<br />

ab Zeile 127 gibt genau diesen Iterator<br />

zurück, denn die Lambda-Funktion<br />

[](intAndWords iAndW){return iAndW.first >U<br />

1000;}<br />

definiert das Suchkriterium: <strong>Der</strong> Schlüssel<br />

soll größer als 1000 sein. <strong>Der</strong> Rest ist<br />

eine reine Fingerübung. Die »for«-Schleife<br />

(Zeilen 134 bis 138) gibt alle Wörter des<br />

Textes aus, die mindestens 1000-mal vorkommen.<br />

Die Wörter „in“ und „said“ gibt<br />

es übrigens exakt 1158-mal im Text. Das<br />

Listing 1: »wordcount.cpp«<br />

1 // replace #include <br />

2 // with #include <br />

3 #include <br />

[...]<br />

30 // replace std::tr1 with std::<br />

31 using std::tr1::regex;<br />

[...]<br />

34 using str2Int= unordered_map;<br />

35 using intAndWords= pair;<br />

36 using int2Words= map;<br />

[...]<br />

39 str2Int wordCount(const string& text){<br />

40 regex wordReg(R"(\w+)");<br />

41 sregex_iterator wordItBegin(text.begin(),text.end(),wordReg);<br />

42 const sregex_iterator wordItEnd;<br />

43 str2Int allWords;<br />

44 for (; wordItBegin != wordItEnd;++wordItBegin){<br />

45 ++allWords[wordItBegin‐>str()];<br />

46 }<br />

47 return allWords;<br />

48 }<br />

[...]<br />

51 int2Words frequencyOfWords(str2Int& wordCount){<br />

52 int2Words freq2Words;<br />

53 for ( auto wordIt: wordCount ){<br />

54 auto freqWord= wordIt.second;<br />

55 if ( freq2Words.find(freqWord) == freq2Words.end() ){<br />

56 freq2Words.insert( intAndWords(freqWord,{wordIt.first} ));<br />

57 }<br />

58 else {<br />

59 freq2Words[freqWord].push_back(wordIt.first);<br />

60 }<br />

61 }<br />

62 return freq2Words;<br />

63 }<br />

[...]<br />

65 int main(int argc, char* argv[]){<br />

[...]<br />

80 ifstream file(myFile, std::ios::in);<br />

81 if ( !file ){<br />

82 cerr


hier entwickelte Programm lässt sich natürlich<br />

auch problemlos auf andere Textdateien<br />

anwenden, Abbildung 3 zeigt<br />

als einen möglichen Anwendungsfall die<br />

Auswertung der Datei »/etc/services«.<br />

C++11 06/2013<br />

Programmieren<br />

Wie geht’s weiter?<br />

In Zeile 45 gibt der Ausdruck »wordIt-<br />

Begin‐>str()« das aktuelle Wort zurück.<br />

Genauer gesagt ist »wordItBegin« ein so<br />

genanntes Match-Objekt, das noch deutlich<br />

mehr auf dem Kasten hat, als mit<br />

seiner Methode »str()« den Treffer zu extrahieren.<br />

Wesentlich mehr Funktionalität<br />

besitzt auch die C++11-Bibliothek für<br />

reguläre Ausdrücke: Sie identifiziert und<br />

verändert Muster in einem Text, filtert<br />

bestimmte Elemente heraus oder zerlegt<br />

einen Text einfach in seine Bestandteile.<br />

Das alles ist Grund genug, die regulären<br />

Ausdrücke in der nächsten Folge der<br />

C++11-Reihe etwas genauer unter die<br />

Lupe zu nehmen. (kki) <br />

n<br />

Abbildung 3: Mit Hilfe des Programms »wordcount.cpp« lassen sich auch beliebige andere Textdateien statistisch<br />

auswerten, hier die Datei »/etc/​services«.<br />

Infos<br />

[1] Komplettes Listing zum Text:<br />

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

listings/ magazin/ 2013/ 06/ cpp]<br />

[2] Boosts reguläre Ausdrücke Bibliothek:<br />

[http:// www. boost. org/ doc/ libs/ 1_53_0/​<br />

libs/ regex/ doc/ html/ index. html]<br />

[3] Grimms Märchen (auf Englisch) im Projekt<br />

Gutenberg: [http:// www. gutenberg. org/​<br />

ebooks/ 11027]<br />

<strong>Der</strong> Autor<br />

Rainer Grimm arbeitet seit<br />

1999 als Software-Entwickler<br />

bei der Science + Computing<br />

AG in Tübingen. Insbesondere<br />

hält er Schulungen für<br />

das hauseigene Produkt SC<br />

Venus. Im Dezember 2011 ist sein Buch „C++11: <strong>Der</strong><br />

Leitfaden für Programmierer zum neuen Standard“<br />

im Verlag Addison-Wesley erschienen.<br />

www.linux-magazin.de<br />

87<br />

JETZT NEU<br />

AM KIOSK!<br />

196 Seiten<br />

im Pocket-Format<br />

für nur 9,80 Euro<br />

QR-Code scannen und<br />

direkt online bestellen!<br />

www.apps-und-tipps.de


Programmieren<br />

www.linux-magazin.de Perl-Snapshot 06/2013<br />

88<br />

Perl-Skript steuert Tmux-Konfiguration<br />

Magische Fenster<br />

Statt die Fenster einer Entwicklungsumgebung stets aufs Neue manuell zurechtzuzupfen, lässt Perl-Meister<br />

Michael Schilli den Terminal-Multiplexer Tmux nur seine Konfigurationsdateien restaurieren. Michael Schilli<br />

spielsweise, der gleich eine Projektdatei<br />

lädt. Eine andere Pane startet vielleicht<br />

schon die Testsuite und eine dritte zeigt<br />

mit »tail« das Ende einer Logdatei an.<br />

Anpassen erwünscht<br />

© mreco99, 123rf.com<br />

Wer keine Entwicklungsumgebung wie<br />

Eclipse zum Programmieren nutzt, sondern<br />

viel auf der Kommandozeile eines<br />

Terminalfensters tippt, dem ist »screen«<br />

bestimmt nicht fremd. Das betagte Terminal-Utility<br />

stellt unter anderem sicher,<br />

dass nach Netzwerkproblemen der Initiator<br />

einer abgebrochenen SSH-Session<br />

genau dort problemlos fortsetzen kann,<br />

wo er aufgehört hatte zu tippen. Dabei<br />

stellt »screen« sich zwischen Anwender<br />

und im Terminal ablaufende Applikationen<br />

und gaukelt diesen aufmerksame<br />

User vor, auch wenn die schon längst ins<br />

Wochenende abgezischt sind.<br />

Bekanntlich ist die Unix-Welt in den vergangenen<br />

20 Jahren nicht stehen geblieben,<br />

und so hat sich das vergleichsweise<br />

junge Projekt Tmux [2] angeschickt<br />

»screen« zu verbessern und abzulösen.<br />

Wie »screen« bietet Tmux dem User<br />

mehrere Sessions, die wiederum aus<br />

so genannten Windows bestehen, was<br />

im Screen-Jargon keine Desktopfenster,<br />

sondern im gleichen Terminalfenster<br />

umschaltbare Textoberflächen sind. Mit<br />

Tastatur-Shortcuts unterteilt Tmux diese<br />

Fenster bei Bedarf noch weiter in vertikal<br />

oder horizontal angeordnete Panes (Fensterscheibe),<br />

die alle gleichzeitig sichtbar<br />

sind (Abbildung 1).<br />

Tmux läuft auf allen gängigen Plattformen.<br />

Wer also mal auf einem Linux-Desktop<br />

und unterwegs auf einem Macbook<br />

arbeitet, findet in beiden Umgebungen<br />

die gleichen Windows und Panes vor.<br />

Server und Client<br />

Ein automatisch gestarteter Tmux-Server<br />

behält den Überblick über aktive Sessions,<br />

der User kann sie per Kommandozeile<br />

fernsteuern. Das »tmux«-Kommando legt<br />

neue Sessions an oder zerstört sie wieder,<br />

fügt Fenster hinzu oder löscht sie und<br />

baut Panes ein und aus, vergrößert oder<br />

verkleinert sie. Für Entwicklungsumgebungen<br />

mit mehreren Windows und<br />

Panes bietet es sich an, die mühevolle<br />

Konfiguration im Sourcecode-Repository<br />

zu speichern und bei Bedarf mit einem<br />

einzigen Kommando anzuzeigen.<br />

Tmux kann in den Panes auch Applikationen<br />

starten, den Lieblingseditor bei-<br />

Ein frisch installiertes Tmux wartet mit<br />

seltsamen Tastaturkombinationen auf.<br />

Um in einer Tmux-Session nicht die laufende<br />

Applikation wie den Editor anzusteuern,<br />

sondern den zwischengeschalteten<br />

Terminal-Multiplexer, tippt der User<br />

das so genannte Prefix. Eine jungfräuliche<br />

Tmux-Installation hat dafür [Ctrl]+<br />

[B] eingestellt, eine Tastenkombination,<br />

die bei häufigen Gebrauch nicht nur Sehnenscheidenentzündungen<br />

provoziert,<br />

sondern in Vi auch ein gängiges und damit<br />

geblocktes Kommando ist.<br />

Glücklicherweise erlaubt Tmux alles umstellen,<br />

und so stöpselt jeder Realo sofort<br />

nach der Installation seine eigene ».tmux.<br />

conf«-Datei zusammen, meine ist auf [3]<br />

dokumentiert. Sie beruht letztlich nur auf<br />

allgemeinen Empfehlungen, etwa das<br />

Prefix »screen«-kompatibel auf [Ctrl]+[A]<br />

zu stellen und den Rest auf »vim«-ähnliche<br />

Kombinationen: [H]=links, [J]=<br />

abwärts, [K]=aufwärts, [L]=rechts. Damit<br />

brauche ich zum Wechseln zwischen<br />

den Panes keine Emacs-ähnlichen Textkommandos<br />

anzugeben, sondern springe<br />

mit Prefix,[H] zum Beispiel in die Pane<br />

linker Hand.<br />

Angepasste Shortcuts bringen natürlich<br />

gewisse Nachteile mit sich, etwa<br />

dass jeder einen anderen Tmux-Dialekt<br />

Online PLUS<br />

In einem Screencast demonstriert<br />

Michael Schilli das Beispiel: [http://​<br />

www.linux-magazin.de/​plus/​2013/06]


versteht und in fremden Umgebungen<br />

hilflos zappelt wie eine Käfer auf dem<br />

Rücken. Jederzeit versteht Tmux aber<br />

ausgeschriebene Kommandos, die es mit<br />

der Tastenkombination Prefix,[:] (Prefix<br />

gefolgt von einem Doppelpunkt) auf der<br />

Statuszeile entgegennimmt.<br />

Die gleichen Kommandos akzeptiert<br />

»tmux« auf der Kommandozeile, sodass<br />

zusammengezimmerte Skripte, die eine<br />

Fenstergruppe aufsetzen, global gültig<br />

sind. So schickt das Perl-Skript in<br />

Listing 1 in Zeile 19 den Befehl »tmux<br />

kill‐session« mit dem Namen der Session<br />

(»log4perl«) los, falls der User es mit der<br />

Option »‐k« aufgerufen hat. <strong>Der</strong> Befehl<br />

nimmt Verbindung zum Tmux-Server auf<br />

(falls dieser läuft), fragt nach der Session<br />

und lässt sie zusammenfalten.<br />

Nur einmal<br />

F Abbildung 1: Zwei<br />

»tmux«-Kommandos<br />

teilen das Window erst<br />

in zwei horizontale<br />

Panes und die rechte<br />

Pane anschließend in<br />

zwei vertikale.<br />

Die Option »‐v« (verbose) veranlasst Listing<br />

1 dazu, die Log4perl-Konfiguration<br />

auf den Loglevel »$DEBUG« zu stellen,<br />

während es sonst mit »$INFO« weit weniger<br />

geschwätzig ist. Damit das Skript<br />

nicht jedes Tmux-Kommando ausschreiben<br />

muss, ruft die Funktion »tmux()«<br />

ab Zeile 46 das Kommando »tmux« über<br />

die Shell auf. Die Funktion »tap()« aus<br />

dem CPAN-Modul Sysadm::Install leitet<br />

dies in die Wege. Die Klammern bei den<br />

Aufrufen von »tmux()« sollen wegfallen<br />

dürfen, darum deklariert Zeile 6 sie als<br />

Funktion im aktuellen Namespace.<br />

Zeile 23 liest mit »source« die Konfigurationsdatei<br />

».tmux.conf« aus dem Homeverzeichnis<br />

des Users ein. Eigentlich<br />

sollte »tmux« dies automatisch tun, doch<br />

die beim Testen verwendete Version sah<br />

sich dazu nicht berufen – wohl ein Bug.<br />

Des Weiteren prüft es in Zeile 25 mit<br />

dem Befehl »tmux has‐session«, ob die<br />

aufzusetzende Tmux-Session vielleicht<br />

schon läuft, und fällt durch bis zum Befehl<br />

»attach« in Zeile 43, falls die Session<br />

schon steht, um sich nur noch mit ihr zu<br />

verbinden.<br />

Falls die Session noch nicht bekannt ist,<br />

erzeugt der Befehl »new‐session« in Zeile<br />

30 eine neue mit dem Namen »log4perl«.<br />

<strong>Der</strong> Name der Session verweist auf das<br />

Log4perl-Projekt, in dessen Git-Repository<br />

sie als Entwicklungsumgebung<br />

Dienst tut. <strong>Der</strong> Parameter »‐d« (detach)<br />

Perl-Snapshot 06/2013<br />

Programmieren<br />

www.linux-magazin.de<br />

89<br />

Digitales aBO<br />

linuxUser: Das Monatsmagazin für die Praxis<br />

DigisUB *<br />

nur 56,10 €<br />

im Jahr (12 PDFs)<br />

* Digitales Abo, jederzeit kündbar<br />

Jetzt Bestellen Unter:<br />

www.linux-user.de/digisub<br />

Telefon: 07131 /2707 274<br />

Fax: 07131 / 2707 78 601<br />

E-Mail: abo@linux-user.de


Programmieren<br />

www.linux-magazin.de Perl-Snapshot 06/2013<br />

90<br />

Abbildung 2: Ein Tmux-Window mit Editor, Testsuite und einer Testdatei.<br />

am Schluss des Tmux-Kommandos bestimmt,<br />

dass das Skript nicht sofort in<br />

die Session hineinspringt und das GUI<br />

darstellt, sondern brav bis zum Befehl<br />

»attach« in Zeile 43 rattert, ehe der User<br />

etwas zu sehen bekommt.<br />

Fenster, spalte dich!<br />

Die »split‐window«-Anweisungen ab Zeile<br />

32 mit den Optionen »‐h« (horizontal)<br />

und »‐v« (vertikal) erzeugen zusätzliche<br />

Panes im Window, indem sie das Fenster<br />

einmal horizontal und einmal vertikal<br />

teilen. Windows und Panes nummeriert<br />

Tmux von 0 beginnend durch – aber Vorsicht,<br />

eine oft genutzte Tmux-Konfigu-<br />

Listing 1: »tmux‐setup«<br />

rationsoption stellt den Startpunkt der<br />

Rechnung auf 1 um!<br />

Um also bei einem jungfräulichen Tmux<br />

die zweite Pane im ersten Window der<br />

Session »log4perl« zu adressieren, notiert<br />

Zeile 37 »log4perl:0.1« und gibt mit<br />

»send‐keys« das Kommando zum Ablaufen<br />

der Testsuite mit einem abschließenden<br />

»C‐m« (Return) an. Genauso könnte<br />

man aber mit »vagrant ssh« schon mal<br />

in eine Vagrant-VM wechseln, wie im<br />

vorigen Snapshot besprochen, um sicherzustellen,<br />

dass die Testsuite auch im<br />

staubfreien Reinraum abläuft.<br />

Zeile 35 findet die ersten zwei ».pm«-<br />

Dateien in der Hierarchie des gewählten<br />

Perl-Projekts und übergibt ihre Namen<br />

dem Editor »vim« mit der Option »‐p«, der<br />

sie in so genannten Tabs in der Pane auf<br />

der linke Seite anzeigt (Abbildung 2).<br />

Installation<br />

Tmux ist in den Repositories vieler Distributionen<br />

vorhanden, in Ubuntu führt<br />

sudo apt‐get install tmux<br />

direkt zum Ziel. Weil die Tmux-Entwickler<br />

in letzter Zeit offensichtlich sehr fleißig<br />

waren, sollten Benutzer mindestens<br />

zu Version 1.7 oder gar 1.8 greifen, um in<br />

den Genuss aller in diesem Artikel vorgestellten<br />

Features zu kommen. Tüftler können<br />

den Sourcecode direkt von [2] holen<br />

und kompilieren. Wichtige Abhängigkeiten<br />

bestehen nur zu Libevent (mindestens<br />

1.4.14 oder 2.0) und zu Ncur ses. Das<br />

Skript auf [4] erledigt die Kompilationsschritte<br />

automatisch.<br />

Im Tmux-Buch [5] gibt ein erfahrener<br />

Anwender nützliche Tipps für gängige<br />

Aufgaben – von Entwicklungsumgebungen<br />

bis zur Pair-Programmierung, bei der<br />

zwei Entwickler örtlich getrennt gleichzeitig<br />

in der gleiche Session in unterschiedliche<br />

Panes tippen. Und das Beste:<br />

Ins Source-Control-System eingecheckt<br />

kann auch der nächste Entwickler einfach<br />

die Toolumgebung aufsetzen und<br />

sofort produktiv mitarbeiten. (jk) n<br />

01 #!/usr/local/bin/perl ‐w<br />

02 use strict;<br />

03 use Sysadm::Install qw( tap cd );<br />

04 use Log::Log4perl qw(:easy);<br />

05 use Getopt::Std;<br />

06 sub tmux; # declare as function<br />

07<br />

08 my($home) = glob "~";<br />

09 my $session = "log4perl";<br />

10<br />

11 getopts "vk", \my %opts;<br />

12<br />

13 my $loglevel = $INFO;<br />

14 $loglevel = $DEBUG if $opts{ v };<br />

15<br />

16 Log::Log4perl‐>easy_init( $loglevel );<br />

17<br />

18 if( $opts{ k } ) {<br />

19 tmux "kill‐session", "‐t", $session;<br />

20 exit 0;<br />

21 }<br />

22<br />

23 tmux "source", "$home/.tmux.conf";<br />

24<br />

25 if( 0 == tmux "has‐session",<br />

26 "‐t", $session ) {<br />

27 DEBUG "Session $session already exists";<br />

28 } else {<br />

29 DEBUG "Creating session $session";<br />

30 tmux "new‐session", "‐s", $session,<br />

31 "‐d";<br />

32 tmux "split‐window", "‐h";<br />

33 tmux "split‐window", "‐v";<br />

34 tmux "send‐keys", "‐t", "$session:0.0",<br />

35 "vim ‐p `find . ‐name '*.pm' | head ‐2`",<br />

36 "C‐m";<br />

37 tmux "send‐keys", "‐t", "$session:0.1",<br />

38 "perl Makefile.PL; make test", "C‐m";<br />

39 tmux "send‐keys", "‐t", "$session:0.2",<br />

40 "vim t/*.t", "C‐m";<br />

41 }<br />

42<br />

43 tmux "attach", "‐t", $session;<br />

44<br />

45 ###########################################<br />

46 sub tmux {<br />

47 ###########################################<br />

48 my( $stdout, $stderr, $rc ) =<br />

49 tap "tmux", @_;<br />

50<br />

51 return $rc;<br />

52 }<br />

Infos<br />

[1] Listings zu diesem Artikel:<br />

[ftp:// www. linux‐magazin. de/ pub/ listings/​<br />

magazin/ 2013/ 06/ Perl]<br />

[2] Tmux: [http:// tmux. sourceforge. net]<br />

[3] Michael Schillis Tmux-Konfiguration: [http://​<br />

github. com/ mschilli/ dotfiles/ . tmux. conf]<br />

[4] Skript zum statischen Kompilieren von<br />

Tmux auf schwierigen Plattformen:<br />

[https:// gist. github. com/ ryin/ 3106801]<br />

[5] Brian Hogan, „Tmux: Productive Mouse-Free<br />

Development“: Pragmatic Bookshelf, 2012<br />

<strong>Der</strong> Autor<br />

Michael Schilli arbeitet<br />

als Software-Engineer bei<br />

Yahoo in Sunnyvale, Kalifornien.<br />

In seiner seit 1997<br />

laufenden Kolumne forscht<br />

er nach praktischen Anwendungen<br />

der Skriptsprache Perl. Unter [mschilli@<br />

perlmeister. com] beantwortet er gerne Fragen.


Head of Systems gesucht!<br />

Wenn dies keine Fremdworte für dich sind,<br />

dann bewerbe dich jetzt bei nine.ch<br />

http://nine.ch/about/jobs<br />

3 AusgAben für nur 5,90 E<br />

Jetzt bestellen: 3 Hefte zum Preis von einem. Sie sparen 66 %!<br />

Neu!<br />

Kennenlernangebot:<br />

3 AusgAben<br />

für nur 5,90 E<br />

Jetzt bestellen unter:<br />

www.android–user.de/miniabo<br />

Telefon 07131 / 2707 274 • Fax 07131 / 2707 78 601 • E-Mail: abo@android-user.de


Service<br />

www.linux-magazin.de IT-Profimarkt 06/2013<br />

92<br />

PROFI<br />

MARKT<br />

Sie fragen sich, wo Sie maßgeschneiderte<br />

Linux-Systeme und kompetente<br />

Ansprechpartner zu Open-Source-Themen<br />

finden? <strong>Der</strong> 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. <strong>Der</strong> ersten<br />

Orientierung dienen die Kategorien<br />

Hardware, Software, Seminaranbieter,<br />

Systemhaus, Netzwerk/TK und Schulung/Beratung.<br />

<strong>Der</strong> IT-Profimarkt-Eintrag<br />

ist ein Service von Linux-Magazin<br />

und LinuxUser.<br />

Online-Suche<br />

Besonders bequem finden Sie einen<br />

Linux-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>Medialinx</strong> AG<br />

Anzeigenabteilung<br />

Putzbrunner Str. 71<br />

D-81739 München<br />

Tel.: +49 (0)89/99 34 11-23<br />

Fax: +49 (0)89/99 34 11-99<br />

E-Mail: anzeigen@linux-magazin.de<br />

IT-Profimarkt – Liste sortiert nach Postleitzahl<br />

1 = Hardware 2 = Netzwerk/TK 3 = Systemhaus<br />

4= Fachliteratur 4= Seminaranbieter 5 = Software 5 = Software 6 = Schulung/Beratung 6 = Firma Anschrift Telefon Web 1 2 3 4 5 6<br />

imunixx GmbH UNIX consultants 01468 Moritzburg, Heinrich-Heine-Str. 4 0351-83975-0 www.imunixx.de √ √ √ √ √<br />

TUXMAN Computer 10369 Berlin, Anton-Saefkow-Platz 8 030-97609773 www.tuxman.de √ √ √ √ √<br />

Compaso GmbH 10439 Berlin, Driesener Strasse 23 030-3269330 www.compaso.de √ √ √ √ √<br />

elego Software Solutions GmbH 13355 Berlin, Gustav-Meyer-Allee 25 030-2345869-6 www.elegosoft.com √ √ √ √<br />

verion GmbH 16244 Altenhof, Unter den Buchen 22e 033363-4610-0 www.verion.de √ √ √<br />

Logic Way GmbH 19061 Schwerin, Hagenower Str. 73 0385-39934-48 www.logicway.de √ √ √ √<br />

Sybuca GmbH 20459 Hamburg, Herrengraben 26 040-27863190 www.sybuca.de √ √ √ √ √<br />

iTechnology GmbH 22083 Hamburg, Osterbekstrasse 90b 040 / 69 64 37 20 www.itechnology.de √ √ √ √<br />

JEL Ingenieurbuero 23911 Einhaus, Hauptstr. 7 04541-8911-71 www.jeltimer.de √<br />

beitco - Behrens IT-Consulting 26197 Ahlhorn, Lessingstr. 27 04435-9537330-0 www.beitco.de √ √ √ √ √<br />

talicom GmbH<br />

primeLine Solutions GmbH<br />

30169 Hannover,<br />

Calenberger Esplanade 3<br />

32549 Bad Oeynhausen,<br />

Dornenbreite 18a<br />

0511-123599-0 www.talicom.de √ √ √ √ √<br />

05731/​86940 www.primelinesolutions.de<br />

√ √ √ √<br />

teuto.net Netzdienste GmbH 33602 Bielefeld, Niedenstr. 26 0521-96686-0 www.teuto.net √ √ √ √ √<br />

MarcanT GmbH 33602 Bielefeld, Ravensberger Str. 10G 0521-95945-0 www.marcant.net √ √ √ √ √ √<br />

LINET Services GmbH 38118 Braunschweig, Cyriaksring 10a 0531-180508-0 www.linet-services.de √ √ √ √ √ √<br />

OpenIT GmbH<br />

40599 Düsseldorf,<br />

In der Steele 33a-41<br />

0211-239577-0 www.OpenIT.de √ √ √ √ √<br />

Linux-Systeme GmbH 45277 Essen, Langenbergerstr. 179 0201-298830 www.linux-systeme.de √ √ √ √ √<br />

Linuxhotel GmbH 45279 Essen, Antonienallee 1 0201-8536-600 www.linuxhotel.de √<br />

OpenSource Training Ralf Spenneberg 48565 Steinfurt, Am Bahnhof 3-5 02552-638755 www.opensourcetraining.de<br />

Intevation GmbH 49074 Osnabrück, Neuer Graben 17 0541-33508-30 osnabrueck.intevation.de √ √ √ √<br />

uib gmbh 55118 Mainz, Bonifaziusplatz 1b 06131-27561-0 www.uib.de √ √ √ √<br />

LISA GmbH 55411 Bingen, Elisenhöhe 47 06721-49960 www.lisa-gmbh.de √ √ √ √ √<br />

Gonicus GmbH 59755 Arnsberg, Möhnestr. 11-17 02932-9160 www.gonicus.com √ √ √ √ √<br />

saveIP GmbH<br />

LAMARC EDV-Schulungen u. Beratung<br />

GmbH<br />

64283 Darmstadt,<br />

Schleiermacherstr. 23<br />

65193 Wiesbaden,<br />

Sonnenberger Straße 14<br />

06151-666266 www.saveip.de √ √ √ √ √<br />

0611-260023 www.lamarc.com √ √ √ √<br />

ORDIX AG 65205 Wiesbaden, Kreuzberger Ring 13 0611-77840-00 www.ordix.de √ √ √ √ √<br />

LinuxHaus Stuttgart<br />

70565 Stuttgart,<br />

Hessenwiesenstrasse 10<br />

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

0711-2851905 www.linuxhaus.de √ √ √ √ √<br />

√<br />

(S.94)


Embedded Linux<br />

Beratung - Schulung - Entwicklung<br />

Imagery: Earth by NASA / The Blue Marble Project - http://visibleearth.nasa.gov | Penguin Variant by Larry Ewing, Simon Budig & Anja Gerwinski<br />

Linux Portierung - Web - AJAX - Qt - Echtzeit<br />

www.pengutronix.de<br />

+49 (5121) 20 69 17 - 0<br />

Online-Archiv<br />

NUR<br />

4E<br />

pRo MoNat<br />

Bestellen Sie unter:<br />

www.admin-magazin.de/archiv<br />

ADMIN_1-4-DIN_Online_Archiv_v3 2.indd 1<br />

28.02.2013 10:26:10 Uhr


Service<br />

www.linux-magazin.de Markt 06/2013<br />

94<br />

IT-Profimarkt/Markt<br />

IT-Profimarkt – Liste sortiert nach Postleitzahl (Fortsetzung von S. 92)<br />

Firma Anschrift Telefon Web 1 2 3 4 5 6<br />

Manfred Heubach EDV und Kommunikation 73728 Esslingen, Hindenburgstr. 47 0711-4904930 www.heubach-edv.de √ √ √ √<br />

Waldmann EDV Systeme + Service<br />

74321 Bietigheim-Bissingen,<br />

Pleidelsheimer Str. 25<br />

07142-21516 www.waldmann-edv.de √ √ √ √ √<br />

in-put Das Linux-Systemhaus 76133 Karlsruhe, Moltkestr. 49 0721-6803288-0 www.in-put.de √ √ √ √ √ √<br />

Bodenseo 78224 Singen, Pomeziastr. 9 07731-1476120 www.bodenseo.de √ √ √<br />

Linux Information Systems AG 81739 München, Putzbrunnerstr. 71 089-993412-0 www.linux-ag.com √ √ √ √ √<br />

LinuxLand International GmbH 81739 München, Putzbrunnerstr. 71 089-99341441 www.linuxland.de √ √ √ √ √ √<br />

Synergy Systems GmbH 81829 München, Konrad-Zuse-Platz 8 089-89080500 www.synergysystems.de √ √ √ √ √<br />

B1 Systems GmbH 85088 Vohburg, Osterfeldstrasse 7 08457-931096 www.b1-systems.de √ √ √ √ √<br />

ATIX AG 85716 Unterschleißheim, Einsteinstr. 10 089-4523538-0 www.atix.de √ √ √ √ √ √<br />

Tuxedo Computers GmbH 86343 Königsbrunn , Zeppelinstr. 3 0921- 16498787-0 www.linux-onlineshop.de √ √ √ √<br />

OSTC Open Source Training<br />

and Consulting GmbH<br />

90425 Nürnberg,<br />

Waldemar-Klink-Str. 10<br />

0911-3474544 www.ostc.de √ √ √ √ √ √<br />

Dipl.-Ing. Christoph Stockmayer GmbH 90571 Schwaig, Dreihöhenstr. 1 0911-505241 www.stockmayer.de √ √ √<br />

pascom - Netzwerktechnik GmbH & Co.KG 94469 Deggendorf, Berger Str. 42 0991-270060 www.pascom.net √ √ √ √ √<br />

RealStuff Informatik AG CH-3007 Bern, Chutzenstrasse 24 0041-31-3824444 www.realstuff.ch √ √ √<br />

CATATEC CH-3013 Bern, Dammweg 43 0041-31-3302630 www.catatec.ch √ √ √<br />

Syscon Systemberatungs AG CH-8003 Zürich, Zweierstrasse 129 0041-44-4542010 www.syscon.ch √ √ √ √ √<br />

Würth Phoenix GmbH IT-39100 Bozen, Kravoglstraße 4 0039 0471 56 41 11 www.wuerth-phoenix.com √ √ √ √<br />

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

n<br />

Einfach auf LinuX umstEigEn!<br />

DigiSub-Mini * : 2 digitale Ausgaben EasyLinux!<br />

5€<br />

FÜR 2 AUSGABEN<br />

ihRE VoRtEiLE<br />

❱ EasyLinuX ist idEaL<br />

füR WindoWs-umstEigER<br />

❱ mit schRitt-füR-schRittanLEitungEn<br />

Zum ERfoLg<br />

❱<br />

❱<br />

2X tEstEn ohnE Risiko,<br />

das digisuB-mini ist<br />

JEdERZEit kündBaR!<br />

nutZBaR auf notEBook und Pc,<br />

taBLEt odER smaRtPhonE!<br />

JEtZt gLEich BEstELLEn!<br />

n tel.: 07131 / 2707 274 n fax: 07131 / 2707 78 601 n uRL: www.easylinux.de/abo n E-mail: abo@easylinux.de<br />

*geht ohne Kündigung in ein digitales Jahresabo mit 4 Ausgaben pro Jahr über und ist jederzeit kündbar!


u<br />

Seminare / Markt<br />

IT-Onlinetrainings<br />

Mit Experten lernen.<br />

MEDIALINX<br />

IT-ACADEMY<br />

Einfache IMAP-Server<br />

mit Dovecot<br />

mit Peer Heinlein,<br />

Heinlein Support GmbH<br />

249 €<br />

www.medialinx-academy.de<br />

UNIX-C-C++ Java<br />

Seminare<br />

in Nürnberg<br />

(oder inhouse)<br />

UNIX/Linux<br />

UNIX/Linux-Aufbau<br />

C, C-Aufbau<br />

C++<br />

OOA/OOD (mit UML)<br />

Java<br />

Perl, XML<br />

weitere Kurse auf Anfrage, Telephonhotline<br />

Teststudium<br />

ohne Risiko!<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 />

Fernstudium<br />

IT-Sicherheit<br />

Aus- und Weiterbildung zur Fachkraft für<br />

IT-Sicherheit. Ein Beruf mit Zukunft. Kostengünstiges<br />

und praxisgerechtes Studium<br />

ohne Vorkenntnisse. Beginn jederzeit.<br />

NEU:PC-Techniker, Netzwerk-Techniker,<br />

Linux-Administrator LPI, Webmaster<br />

Teststudium ohne Risiko.<br />

GRATIS-Infomappe<br />

gleich anfordern!<br />

FERNSCHULE WEBER<br />

-seit 1959-<br />

Postfach 21 61<br />

Abt. C25<br />

26192 Großenkneten<br />

Tel. 0 44 87 / 263<br />

Fax 0 44 87 / 264<br />

www.fernschule-weber.de<br />

tl<br />

a<br />

ta<br />

s<br />

•<br />

n<br />

c<br />

i<br />

e<br />

h<br />

g<br />

e<br />

p<br />

rü<br />

Fernstudium<br />

s<br />

s<br />

a<br />

el<br />

g<br />

f<br />

t<br />

n<br />

d<br />

z<br />

u<br />

IT-Academy_1-9_Dovecot-Schulung.indd 1<br />

IT-Onlinetrainings<br />

Mit Experten lernen.<br />

18.03.2013 17:05:11 Uhr<br />

MEDIALINX<br />

IT-ACADEMY<br />

Effiziente BASH-Skripte<br />

DiD you<br />

know?<br />

mit Klaus Knopper,<br />

Gründer der<br />

Knoppix-Distribution,<br />

KNOPPER.NET<br />

199 €<br />

Automatisieren Sie komplexe<br />

Aufgaben mit Hilfe effizienter Skripte!<br />

www.medialinx-academy.de<br />

IT-Academy_1-9_Bash-Schulung.indd 1<br />

18.03.2013 17:04:16 Uhr<br />

IT-Onlinetrainings<br />

Mit Experten lernen.<br />

MEDIALINX<br />

IT-ACADEMY<br />

Python für<br />

Systemadministratoren<br />

mit Rainer Grimm,<br />

science + computing AG<br />

199 €<br />

Vereinfachen Sie Ihren Sysadmin-Alltag<br />

mit Skripting-Know-How für Profis!<br />

www.medialinx-academy.de<br />

WusstEn siE’s?<br />

Linux-Magazin und LinuxUser haben<br />

ein englisches Schwester magazin!<br />

Am besten, Sie informieren gleich<br />

Ihre Linux-Freunde in aller Welt...<br />

www.linux-magazine.com<br />

IT-Onlinetrainings<br />

Mit Experten lernen.<br />

MEDIALINX<br />

IT-ACADEMY<br />

– die offiziellen Trainings<br />

mit Marco Welter,<br />

Zarafa Deutschland GmbH<br />

Zarafa Administrator<br />

249 €<br />

Zarafa Engineer<br />

249 €<br />

www.medialinx-academy.de<br />

IT-Academy_1-9_Python-Schulung.indd 1<br />

18.03.2013 17:07:32 Uhr<br />

LMI_german_2-9h_black_1906-2012.indd 1<br />

IT-Academy_1-9_Zarafa-Schulung.indd 1<br />

18.03.2013 15:04:44 Uhr<br />

18.03.2013 17:08:02 Uhr


Service<br />

www.linux-magazin.de Inserenten 06/2013<br />

96<br />

Inserentenverzeichnis<br />

1&1 Internet AG http://​www.einsundeins.de 17<br />

ADMIN http://​www.admin-magazin.de 93<br />

Android Apps & Tipps http://​www.android-user.de 87<br />

Android User GY http://​www.android-user.de 80, 91<br />

C&L Computer- u. Literaturverlag GmbH http://​www.cul.de 71<br />

CANDAN THE WEB COMPANY http://​www.canhost.de 31<br />

ConSol Software GmbH http://​www.consol.de 7<br />

EasyLinux http://​www.easylinux.de 94<br />

embedded projects GmbH http://​www.embedded-projects.net 93<br />

Fernschule Weber GmbH http://​www.fernschule-weber.de 95<br />

Heinlein Professional Linux Support GmbH http://​www.heinlein-support.de 41, 55<br />

Hetzner Online AG http://​www.hetzner.de 29<br />

Ico Innovative Computer GmbH http://​www.ico.de 23<br />

IGEL Technology GmbH http://​www.igel.de 35<br />

ISC Events http://​www.isc-events.com 2<br />

Linux-Magazin http://​www.linux-magazin.de 42, 61, 99<br />

Linux-Magazin Online http://​www.linux-magazin.de 27<br />

LinuxUser http://​www.linuxuser.de 89<br />

<strong>Medialinx</strong> IT-Academy http://​www.medialinx-academy.de 20, 95<br />

Messe Berlin GmbH http://​www.linuxtag.org 11, 73, 81<br />

Netways GmbH http://​www.netways.de 25, 43<br />

Nine Internet Solutions AG http://​www.nine.ch 91<br />

O’Reilly Verlag GmbH & Co KG http://​www.oreilly.de 15<br />

Open Source Press GmbH http://​www.opensourcepress.de 39<br />

Pengutronix e.K. http://​www.pengutronix.de 93<br />

PlusServer AG http://​www.plusserver.de 50, 64, 74, 82<br />

Schlittermann internet & unix support http://​schlittermann.de 93<br />

Spenneberg Training & Consulting http://​www.spenneberg.com 95<br />

Stockmayer GmbH http://​www.stockmayer.de 95<br />

Linux Magazine http://www.linux-magazine.com 95<br />

Linux-Hotel http://​www.linuxhotel.de 9<br />

Thomas Krenn AG http://​www.thomas-krenn.com 100<br />

Webtropia http://​www.webtropia.com​ 37<br />

Veranstaltungen<br />

02.-04.05.2013<br />

Linuxwochen Wien<br />

FH Technikum Wien<br />

Wien<br />

http://linuxwochen.at<br />

04.-05.05.2013<br />

PythonCamp<br />

Köln-Deutz<br />

http://www.pythoncamp.de<br />

09.-12.05.2013<br />

LUG Camp<br />

Knipex-Werk<br />

Wuppertal<br />

http://2013.tux-trifft-tuffi.de<br />

09.-13.05.2013<br />

Linux Audio Conference 2013<br />

Universität für Musik und darstellende Kunst Graz<br />

Graz<br />

http://lac.linuxaudio.org/2013/<br />

10.-11.05.2013<br />

Concurso Univ. de SwL – Final<br />

Granada, Spain<br />

http://www.concursosoftwarelibre.org<br />

14.-17.05.2013<br />

Samba Experience 2013<br />

Hotel Freizeit<br />

37079 Göttingen<br />

http://sambaXP.org<br />

22.-25.05.2013<br />

LinuxTag 2013<br />

Messegelände Berlin, Halle 7<br />

Berlin, Deutschland<br />

http://www.linuxtag.org<br />

23.05.2013<br />

OpenExpo CMS<br />

Barcelona, Spain<br />

http://www.openexpo.es/barcelona/cms<br />

24.-25.05.2013<br />

Rootcamp Berlin<br />

Messegelände Berlin, Halle 7.1a<br />

Berlin, Deutschland<br />

http://www.linuxtag.org/2012/en/program/rootcampberlin.html<br />

28.-30.05.2013<br />

Fluent Conference: JavaScript & Beyond 2013<br />

San Francisco, USA<br />

http://fluentconf.com/fluent2013?cmp=mp-code-fl13-<br />

linux-pro-promo<br />

28.-31.05.2013<br />

AnDevCon Spring 2013<br />

Boston, USA<br />

http://www.andevcon.com<br />

02.-05.06.2013<br />

International PHP Conference<br />

Berlin<br />

http://phpconference.com<br />

03.-04.06.2013<br />

Berlin Buzzwords<br />

Kulturbrauerei<br />

Berlin<br />

http://berlinbuzzwords.de<br />

03.-05.06.2013<br />

JAXConf US 2013<br />

http://jaxconf.com<br />

16.-20.06.2013<br />

International Supercomputing Conference (ISC)<br />

Congress Center Leipzig<br />

Leipzig, Germany<br />

http://www.isc-events.com/ct.php?id=51<br />

24.-28.06.2013<br />

USENIX Federated Conferences Week<br />

San Jose, CA<br />

https://www.usenix.org/conference/fcw13<br />

01.-07.07.2013<br />

Europython 2013<br />

Florence, Italy<br />

http://ep2013.europython.eu<br />

11.-12.07.2013<br />

Akademy-es 2013<br />

Bilbao, Spain<br />

http://www.kde-espana.es/akademy-es2013<br />

13.-19.07.2013<br />

KDE Akademy 2013<br />

Bilbao, Spain<br />

http://akademy2013.kde.org<br />

18.-22.07.2013<br />

Open Suse Conference<br />

Thessaloniki, Greece<br />

https://conference.opensuse.org<br />

01.-08.08.2013<br />

Guadec 2013<br />

Brno, Czech Republic<br />

http://guadec.org<br />

14.-16.08.2013<br />

USENIX Security ’13<br />

Washington, D.C.<br />

https://www.usenix.org/conference/usenixsecurity13<br />

11.-13.10.2013<br />

Ubucon 2013<br />

Heidelberg, Deutschland<br />

http://www.ubucon.de<br />

16.-18.10.2013<br />

Medientage München<br />

ICM München<br />

München<br />

http://www.medientage.de<br />

03.-08.11.2013<br />

USENIX LISA ’13<br />

Washington, D.C.<br />

https://www.usenix.org/conference/lisa13


Impressum<br />

Linux-Magazin eine Publikation der Linux New Media, einem<br />

Geschäftsbereich der <strong>Medialinx</strong> AG<br />

Redaktionsanschrift Putzbrunner Str. 71<br />

81739 München<br />

Tel.: 089/993411-0<br />

Fax: 089/993411-99 oder -96<br />

Internet<br />

www.linux-magazin.de<br />

E-Mail<br />

redaktion@linux-magazin.de<br />

Geschäftsleitung<br />

Chefredakteur<br />

stv. Chefredakteure<br />

Redaktionsltg. Online<br />

Brian Osborn (Vorstand), bosborn@medialinx-gruppe.de<br />

Hermann Plank (Vorstand), hplank@medialinx-gruppe.de<br />

Jan Kleinert (V.i.S.d.P.), jkleinert@linux-magazin.de (jk)<br />

Markus Feilner, mfeilner@linux-magazin.de (mfe)<br />

Mathias Huber, mhuber@linux-magazin.de (mhu)<br />

Mathias Huber, mhuber@linux-magazin.de (mhu)<br />

Print- und Onlineredaktion<br />

Aktuell, Forum, Software, Kristian Kissling, kkissling@linux-magazin.de (kki)<br />

Programmierung Mathias Huber, mhuber@linux-magazin.de (mhu)<br />

Sysadmin, Know-how Markus Feilner, mfeilner@linux-magazin.de (mfe)<br />

Ständige Mitarbeiter Fred Andresen, Zack Brown, Mela Eckenfels, Heike Jurzik (hej),<br />

Anika Kehrer (ake), Peter Kreußel, Charly Kühnast,<br />

Martin Loschwitz, Michael Schilli, Tim Schürmann,<br />

Mark Vogelsberger, Uwe Vollbracht, Arnold Zimprich (azi)<br />

Schlussredaktion<br />

Grafik<br />

Bildnachweis<br />

DELUG-DVD<br />

Chefredaktionen<br />

International<br />

Produktion<br />

Onlineshop<br />

Abo-Infoseite<br />

Abonnenten-Service<br />

ISSN 1432 – 640 X<br />

Jürgen Manthey<br />

Mike Gajer, Klaus Manuel Rehfeld, Judith Erb (Art Director)<br />

xhoch4, München (Titel-Illustration)<br />

123RF.com, Fotolia.de, Photocase.com, Pixelio.de und andere<br />

Thomas Leichtenstern, tleichtenstern@linux-magazin.de (tle)<br />

Linux Magazine International<br />

Joe Casad (jcasad@linux-magazine.com)<br />

Linux Magazine Poland<br />

Artur Skura (askura@linux-magazine.pl)<br />

Linux Magazine Spain<br />

Paul C. Brown (pbrown@linux-magazine.es)<br />

Linux Magazine Brasil<br />

Rafael Peregrino (rperegrino@linuxmagazine.com.br)<br />

Christian Ullrich, cullrich@linux-magazin.de<br />

www.medialinx-shop.de<br />

www.linux-magazin.de/Produkte<br />

Monika Jölly<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 6,40 4 7,05 Sfr 12,80 (siehe Titel)<br />

DELUG-DVD-Ausgabe 4 8,50 4 9,35 Sfr 17,— (siehe Titel)<br />

Jahres-DVD (Einzelpreis) 4 14,95 4 14,95 Sfr 18,90 4 14,95<br />

Jahres-DVD (zum Abo 1 ) 4 6,70 4 6,70 Sfr 8,50 4 6,70<br />

Mini-Abo (3 Ausgaben) 4 3,— 4 3,— Sfr 4,50 4 3,—<br />

Jahresabo No Media 4 65,20 4 71,90 Sfr 107,50 4 84,60<br />

Jahresabo DELUG-DVD 4 87,90 4 96,90 Sfr 142,80 4 99,90<br />

Preise Digital Deutschland Österreich Schweiz Ausland EU<br />

Heft-PDF Einzelausgabe 4 6,40 4 6,40 Sfr 8,30 4 6,40<br />

DigiSub (12 Ausgaben) 4 65,20 4 65,20 Sfr 84,80 4 65,20<br />

DigiSub (zum Printabo) 4 12,— 4 12,— Sfr 12,— 4 12,—<br />

HTML-Archiv (zum Abo 1 ) 4 12,— 4 12,— Sfr 12,— 4 12,—<br />

Preise Kombiabos Deutschland Österreich Schweiz Ausland EU<br />

Mega-Kombi-Abo 2 4 143,40 4 163,90 Sfr 199,90 4 173,90<br />

Profi-Abo 3 4 136,60 4 151,70 Sfr 168,90 4 165,70<br />

1<br />

nur erhältlich in Verbindung mit einem Jahresabo Print oder Digital<br />

2<br />

mit LinuxUser-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. <strong>Der</strong> 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<br />

Marketing und Vertrieb<br />

Mediaberatung D, A, CH<br />

presse-info@linux-magazin.de<br />

Petra Jaser, pjaser@linux-magazin.de<br />

Tel.: +49 (0)89 / 99 34 11 – 24<br />

Fax: +49 (0)89 / 99 34 11 – 99<br />

Michael Seiter, mseiter@linux-magazin.de<br />

Tel.: +49 (0)89 / 99 34 11 – 23<br />

Mediaberatung USA Ann Jesse, ajesse@linux-magazine.com<br />

und weitere Länder Tel.: +1 785 841 8834<br />

Darrah Buren, dburen@linux-magazine.com<br />

Tel.:+1 785 856 3082<br />

Pressevertrieb<br />

Druck<br />

Es gilt die Anzeigen-Preisliste vom 01.01.2013.<br />

MZV Moderner Zeitschriften Vertrieb GmbH & Co. KG<br />

Ohmstraße 1, 85716 Unterschleißheim<br />

Tel.: 089/31906-0, Fax: 089/31906-113<br />

Vogel Druck GmbH, 97204 Höchberg<br />

<strong>Der</strong> Begriff Unix wird in dieser Schreibweise als generelle Bezeichnung für die Unixähnlichen<br />

Betriebssysteme verschiedener Hersteller benutzt. Linux 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 – 2013 <strong>Medialinx</strong> AG<br />

Impressum 06/2013<br />

Service<br />

www.linux-magazin.de<br />

97<br />

Krypto-Info<br />

GnuPG-Schlüssel der Linux-Magazin-Redaktion:<br />

pub 1024D/44F0F2B3 2000-05-08 Redaktion Linux-Magazin<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 />

Konstantin Agouros Unhandlicher Suchdienst 58<br />

Fred Andresen Grund zu klagen 66<br />

Zack Brown Zacks Kernel-News 18<br />

Anselm Busse Prima Architekten 22<br />

Mela Eckenfels Effektiv erinnern 46<br />

Rainer Grimm Zähl mich 84<br />

Eva-Katharina Kunst Kern-Technik 76<br />

Charly Kühnast Auf den Hund gekommen 57<br />

Martin Loschwitz Planet für Bastler 32<br />

Martin Loschwitz <strong>Der</strong> Nachwuchs ist da 40<br />

Julian Pawlowski Eigenbau 30<br />

Jürgen Quade Kern-Technik 76<br />

Jan Richling Eigenbau 22<br />

Benedikt Sauter Kleinster ARM-Prozessor (Kasten) 21<br />

Benedikt Sauter Verschlüsselte ARM-Prozessoren (Kasten) 28<br />

Michael Schilli Magische Fenster 88<br />

Dr. Udo Seidel Schmalspur? 36<br />

Uwe Vollbracht Tooltipps 54


Service<br />

www.linux-magazin.de Vorschau 02/2013 07/2013 06/2013 01/2013<br />

98<br />

Vorschau<br />

07/2013 Dachzeile<br />

OX Documents<br />

© Stephan John, 123RF<br />

Datenbanken, aber hurtig!<br />

Den gern als Datengräber verspotteten Datenbanken haftet etwas<br />

Behäbiges an, insbesondere für IT-ler, die sie als innovationsferne<br />

Infrastrukturkomponente begreifen. Diese Einstellung<br />

zum Thema mag subjektiv verständlich sein, objektiv tut man<br />

der Softwarekategorie aber unrecht.<br />

Insbesondere Entwicklungen wie NoSQL und das Handhaben<br />

von Big Data sind geeignet, Datenbanken als die innovativen<br />

und performanten Hightech-Gebilde zu beschreiben, die sie<br />

tatsächlich sind. Das nächste Magazin macht sich das Thema<br />

zu Eigen, um Admins und Entwicklern neue Datenbank-Perspektiven<br />

und praxiserprobte Konzepte zu vermitteln, die samt<br />

und sonders für mehr Geschwindigkeit sorgen.<br />

MAGAZIN<br />

Überschrift<br />

Open Xchange will Nägel mit Köpfen und Google Docs Konkurrenz<br />

machen: Das fertige quelloffene Cloud-Office soll OX Text,<br />

OX Spreadsheet, OX Document Viewer sowie OX Presenta tion<br />

umfassen. Zudem lassen sich Docx- und ODT-Dokumente na tiv<br />

im Browser bearbeiten. Ob das klappt, wird ein Test zeigen.<br />

Jitsi 2.0<br />

Wer sich bei Skype oder Google Video fragt, wie privat die<br />

VoIP-Konversation tatsächlich bleibt, kommt irgendwann bei<br />

Jitsi vorbei. Denn gegenüber freier Software braucht man weit<br />

weniger Misstrauen entwickeln. Gerade ist die Version 2.0 mit<br />

neuen Funktionen erschienen – mal hören, wie sie sich macht.<br />

Suse Studio 1.3<br />

Suse Studio, eine Art Baukasten für virtuelle Maschinen, bastelt<br />

in seiner neuesten Version auch KVM-Qcow2-, Hyper-V-,<br />

Openstack- und darauf aufbauende Suse-Cloud-Images zusammen.<br />

Das nächste Magazin wird testen, wie weit ein Admin im<br />

Arbeitsalltag damit kommt.<br />

Die Ausgabe 07/2013<br />

erscheint am 6. Juni 2013<br />

© Nkzs, sxc.hu<br />

Vorschau<br />

auf 06/2013<br />

Die nächste Ausgabe erscheint am 16.05.2013<br />

Programmieren<br />

Vom einfachen Shell-Skript bis hin zur komplexen Applikation<br />

samt grafischer Oberfläche bietet ein Linux-System in der Regel<br />

das richtige Werkzeug zum Programmieren an. In der kommenden<br />

Ausgabe nehmen wir wieder einmal aktuelle Trends<br />

im Development unter die Lupe.<br />

Dabei reicht die Spannweite vom geschickten Einsatz von GNU<br />

Parallels, das Skripten auf Multicore-PCs zu mehr Performance<br />

verhilft, bis hin zum Einstieg in die neue Technik QtQuick,<br />

die das Erstellen von funktionsreichen grafischen Oberflächen<br />

drastisch vereinfacht.<br />

Tweaks in Unity<br />

Das neue Interface von Ubuntu bietet einen Haufen Möglichkeiten,<br />

allerdings finden Sie die meisten Optionen nicht auf<br />

den ersten Blick. Aber mit dem Unity Tweak Tool erreichen Sie<br />

die versteckten Schalter und optimieren so das GUI.<br />

Workshop LAN<br />

Das LAN hat sich zum Rückgrat der heimischen Infrastruktur<br />

entwickelt. Wenn es da klemmt, schreit die Familie Zeter und<br />

Mordio. Mit unserem Workshop haben Sie die richtigen Analyse-Tools<br />

zur Hand und alle Probleme schnell im Griff.


JETZT<br />

MIT DVD!<br />

MAGAZIN<br />

Sonderaktion<br />

Testen Sie jetzt<br />

3 Ausgaben<br />

für 3 Euro!<br />

Jetzt schnell bestellen:<br />

Gewinnen Sie...<br />

einen Acer REVO RL70:<br />

Das flüsterleise Kraftpaket<br />

für Multimedia<br />

Home Entertainment<br />

im Wert<br />

von 249 Euro<br />

• Telefon 07131 / 2707 274<br />

• Fax 07131 / 2707 78 601<br />

• E-Mail: abo@linux-magazin.de<br />

• Web: www.linux-magazin.de/probeabo<br />

Mit großem Gewinnspiel unter:<br />

www.linux-magazin.de/probeabo<br />

• ultrakompakter Formfaktor (209 x 209 x 35 mm)<br />

• Basiert auf AMD Brazos-Plattform für Full-HD<br />

und Games<br />

Einsendeschluss ist der 16.06.2013


Wir passen uns<br />

Ihren Anforderungen an.<br />

8 Port 10 Gigabit-Switch Netgear XS708E<br />

Ideal für KMU-Netze zur 10G-Anbindung<br />

von Servern und Storage-Systemen<br />

Einfach zu bedienende GUI bei<br />

umfassendem Funktionsumfang<br />

10-Gigabit-Upgrade durch Nutzen<br />

vorhandener Kupfer-Verkabelung<br />

Weitere Informationen unter:<br />

www.thomas-krenn.com/netgear-switch<br />

Leistung zum unschlagbaren Preis.<br />

Die Anforderungen an Ihr Netzwerk steigen permanent:<br />

Sei es Virtualisierung, neue Speichertechnologien oder schlichtweg mehr<br />

Nutzer. 1 Gigabit hat in vielen Fällen bereits die Belastungsgrenze erreicht.<br />

<strong>Der</strong> logische Schritt:<br />

Weitere Informationen dazu finden Sie<br />

unter www.thomas-krenn.com/10gbit<br />

10 Gigabit<br />

Jetzt erhältlich<br />

10 Gigabit Ethernet<br />

unter 1000 Euro<br />

<strong>Der</strong> XS708E nur bei<br />

uns ab:<br />

859 Euro<br />

Messe<br />

Besuchen Sie uns auf dem Linux Tag<br />

www.thomas-krenn.com/linuxtag-2013<br />

DE: +49 (0) 8551 9150 - 0<br />

CH: +41 (0) 848207970<br />

AT: +43 (0)732 - 2363 - 0<br />

Verkauf erfolgt ausschließlich an Gewerbetreibende, Firmen, Freiberufler (Ärzte, Rechtsanwälte etc.), staatliche Institutionen und Behörden. Druckfehler, Irrtümer und Änderungen in Preis und Ausstattung<br />

vorbehalten. Unsere Versandkosten richten sich nach Gewicht und Versandart - mehr unter: www.thomas-krenn.com/versandkosten.Thomas-Krenn.AG, Speltenbach-Steinäcker 1, D-94078 Freyung

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!