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 <strong>Linux</strong><br />
auf aussichtsreicher Mission<br />
■ Was <strong>Linux</strong>er ü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 <strong>Linux</strong> 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 <strong>Linux</strong> 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 />
<strong>Linux</strong> 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 />
<strong>Linux</strong>-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 <strong>Linux</strong>-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 <strong>Vorschau</strong><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 />
<strong>Linux</strong> 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 <strong>Linux</strong>-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 />
<strong>Linux</strong>-Nutzer gehen rechtlich gegen Microsoft vor<br />
Die spanische Hispalinux, eine<br />
Vereinigung von <strong>Linux</strong>-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 <strong>Linux</strong>-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 <strong>Linux</strong>hotel. 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 <strong>Linux</strong> *<br />
Embedded <strong>Linux</strong> * 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 * <strong>Linux</strong> * 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 <strong>Linux</strong>-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 />
<strong>Linux</strong> 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. <strong>Linux</strong>Tag in Berlin<br />
wieder die Hand.<br />
22. Mai 2013: Track – Embedded <strong>Linux</strong> for Industrial Applications<br />
u. a. mit folgenden Speakern:<br />
• Andreas Klinger, Trainer und Entwickler für Embedded-<strong>Linux</strong><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 />
<strong>Linux</strong>Tag 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 <strong>Linux</strong>-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 />
<strong>Linux</strong>.<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 />
<strong>Linux</strong>. 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 <strong>Linux</strong>, 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 <strong>Linux</strong>-<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 <strong>Linux</strong><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 />
<strong>Linux</strong> 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 (<strong>Linux</strong> 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 <strong>Linux</strong> 2.6.25<br />
einige Perl-Skripte in das<br />
Buildsystem eingeführt. Will<br />
also jemand <strong>Linux</strong> 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 />
<strong>Linux</strong>-Urgestein Andrew Morton, hier<br />
auf dem <strong>Linux</strong>tag 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 <strong>Linux</strong> 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/<strong>Linux</strong> 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 />
<strong>Linux</strong>hotel<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 <strong>Linux</strong> 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 <strong>Linux</strong>-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 />
<strong>Linux</strong>-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 <strong>Linux</strong> als Betriebssystem<br />
und Open Source als Software-Idee<br />
in diesem liberalen Markt als zentrale<br />
Komponenten etabliert haben.<br />
ARM und <strong>Linux</strong> 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 <strong>Magazin</strong>s<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 <strong>Linux</strong>-<br />
Betriebssysteme jenseits des Android-<br />
Massenmarktes. <strong>Der</strong> Schwerpunkt beginnt<br />
mit einem ausführlichen Briefing,<br />
das die <strong>Linux</strong>-Crew publizistisch auf ihre<br />
Mission zum ARM-Universum vorbereitet.<br />
Die Welt da draußen, so viel sei verraten,<br />
ist ein <strong>Linux</strong>-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 <strong>Linux</strong> 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 />
<strong>Linux</strong> 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 <strong>Linux</strong> 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 />
<strong>Linux</strong> 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 <strong>Linux</strong> 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 />
<strong>Linux</strong>-<strong>Magazin</strong> newsLetter<br />
Nachrichten rund um die Themen <strong>Linux</strong> und Open Source lesen Sie täglich<br />
im Newsletter des <strong>Linux</strong>-<strong>Magazin</strong>s.<br />
Newsletter<br />
informativ<br />
kompakt<br />
tagesaktuell<br />
www.linux-magazin.de/newsletter
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 />
<strong>Linux</strong> 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 />
<strong>Linux</strong>-Kernel unterstützt die Architektur<br />
ab Version 3.7. Wenn also die ersten<br />
64-Bit-ARM-Rechner erscheinen, ist<br />
<strong>Linux</strong> 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 <strong>Linux</strong>’ 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 HomepageBaukasten!<br />
Buchbar schon ab 1.50 € monatlich!<br />
Weitere WebspaceAngebote CMSSysteme ShopSysteme SSLCerts Hosted Exchange SpezialAngebote 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 <strong>Linux</strong>-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 „<strong>Linux</strong> 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-<strong>Linux</strong> 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 <strong>Linux</strong>-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 <strong>Linux</strong> immer<br />
noch mit von der Partie – damit ist aber<br />
noch lange nicht Schluss.<br />
Im Rechenzentrum<br />
Dass <strong>Linux</strong> 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 <strong>Linux</strong>,<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 />
<strong>Linux</strong>-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. <strong>Linux</strong> 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 />
<strong>Linux</strong> 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 <strong>Linux</strong>-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 <strong>Linux</strong> Foundation,<br />
die sich im x86-Umfeld stark für eine<br />
Secure-Boot-Lösung für <strong>Linux</strong> 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 <strong>Linux</strong>: [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 <strong>Linux</strong>-Fan. Nach<br />
seiner Promotion hat er als <strong>Linux</strong>/Unix-Trainer,<br />
Systemadministrator und Senior Solution Engineer<br />
gearbeitet. Heute ist er Leiter des <strong>Linux</strong>-<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-<strong>Linux</strong>-Varianten sind noch recht jung, haben aber schon einiges zu bieten:<br />
vollständige <strong>Linux</strong>-Stacks, HTML-5-GUIs und Android-Kompatibilität. Martin Loschwitz<br />
© Volodymyr Goinyk, 123RF.com<br />
Wer ein <strong>Linux</strong>-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, <strong>Linux</strong>basierte<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 />
<strong>Linux</strong> 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 />
<strong>Linux</strong> 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 <strong>Linux</strong> 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 <strong>Linux</strong>-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 />
<strong>Linux</strong> 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 <strong>Linux</strong> 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 <strong>Linux</strong> 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 <strong>Linux</strong>-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 <strong>Linux</strong>-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 />
<strong>Linux</strong>-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 <strong>Linux</strong>-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 <strong>Linux</strong>-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 <strong>Linux</strong>e 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“: <strong>Linux</strong>-<strong>Magazin</strong> 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 <strong>Linux</strong>-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 <strong>Linux</strong>-<strong>Magazin</strong><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 <strong>Magazin</strong>-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: „<strong>Linux</strong>-<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 />
<strong>Linux</strong>-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 />
<strong>Linux</strong>-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 />
„<strong>Linux</strong>-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 />
<strong>Linux</strong>-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 />
<strong>Linux</strong>-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 <strong>Linux</strong>-<strong>Magazin</strong>s. Ü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-<strong>Linux</strong> (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 <strong>Linux</strong>-, 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 />
<strong>Linux</strong>-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-<strong>Linux</strong>-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 <strong>Linux</strong>-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 <strong>Linux</strong>-basiertes<br />
Open-Source-Schul-IT-Projekt outzusourcen<br />
und auf eine andere Software zu<br />
migrieren. Immerhin bleibt es bei <strong>Linux</strong>,<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 />
<strong>Linux</strong>-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 <strong>Linux</strong>-<strong>Magazin</strong>s,<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 <strong>Linux</strong>-<strong>Magazin</strong> 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 <strong>Linux</strong>-Musterlösung [5] aktiv<br />
weiterentwickelt. Unter dem Namen<br />
<strong>Linux</strong>muster.net liegt inzwischen Version<br />
5.10 mit dem provokativen Codenamen<br />
Niveau-Linbo vor.<br />
Bremer App Center<br />
Fürs <strong>Linux</strong>-<strong>Magazin</strong> 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 />
<strong>Linux</strong>-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 <strong>Linux</strong>) 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 <strong>Linux</strong>-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] <strong>Linux</strong>muster.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 <strong>Linux</strong> 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 />
<strong>Linux</strong>-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 />
<strong>Linux</strong> 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 <strong>Linux</strong>-<strong>Magazin</strong>s<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: <strong>Linux</strong>-<strong>Magazin</strong> 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 <strong>Linux</strong>-<strong>Magazin</strong>-Ausgaben für nur E 3*, statt<br />
E 17,40*, testen. Wenn mich das <strong>Linux</strong>-<strong>Magazin</strong> überzeugt und ich 14 Tage<br />
nach Erhalt der dritten Ausgabe nicht schriftlich abbestelle, erhalte ich das <strong>Linux</strong>-<strong>Magazin</strong> 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 <strong>Linux</strong>-<strong>Magazin</strong> 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 />
<strong>Linux</strong>-<strong>Magazin</strong>s 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 <strong>Linux</strong>-<strong>Magazin</strong>s<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 <strong>Vorschau</strong><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 />
<strong>Vorschau</strong> erzeugen und darstellen, ist das<br />
ja bereits rechtswidrig ([3], Abbildung<br />
4) Damit bleiben logischerweise auch<br />
Audio- und Video-<strong>Vorschau</strong>en 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-<strong>Vorschau</strong>en 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 <strong>Linux</strong>-<strong>Magazin</strong> in der Serie<br />
„Rechts-Rat“ Leserfragen durch einen<br />
Rechtsanwalt kompetent beantworten. Was<br />
immer Sie beschäftigt oder ärgert, oder was<br />
Sie einfach nur wissen möchten: Schreiben<br />
Sie eine entsprechende E-Mail an die Adresse<br />
[rechtsrat@linux-magazin. de].<br />
Die Themen dürfen von Software lizenzen bis<br />
zum Hardwarekauf reichen. Die Redaktion<br />
behält es sich vor, abgedruckte Zuschriften<br />
zu kürzen und eventuell enthaltene persönliche<br />
Daten zu ändern.<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“, <strong>Linux</strong>-<br />
<strong>Magazin</strong> 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 <strong>Linux</strong>-<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 />
<strong>Linux</strong> 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 />
<strong>Linux</strong>-Maintenance<br />
03/13, S 22: Ich habe mich offen gesagt<br />
sehr gefreut über das <strong>Magazin</strong>-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 <strong>Linux</strong>freundlichen<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 <strong>Magazin</strong> 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 />
<strong>Linux</strong>-<strong>Magazin</strong> 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 />
<strong>Linux</strong> 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 <strong>Linux</strong> 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 <strong>Linux</strong>-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 <strong>Linux</strong>-Kernel – Folge 68<br />
Kern-Technik<br />
Die wirklich große Vielfalt der ARM-Hardware stellt Kernelentwickler und <strong>Linux</strong>-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 <strong>Linux</strong>-Lager hat ARM den x86-Prozessoren<br />
längst den Rang abgelaufen<br />
– der Schwerpunkt dieser <strong>Linux</strong>-<strong>Magazin</strong>-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 <strong>Linux</strong>-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 />
<strong>Linux</strong>-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 />
<strong>Linux</strong>-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 <strong>Linux</strong> 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 <strong>Linux</strong>-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 <strong>Linux</strong>-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-<strong>Linux</strong>-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 <strong>Linux</strong>-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 <strong>Linux</strong>-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 <strong>Linux</strong> 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-<strong>Linux</strong><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 <strong>Linux</strong>, 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 <strong>Linux</strong> Fans von Open<br />
Source. Inzwischen ist die dritte Auflage ihres<br />
Buches „<strong>Linux</strong> 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, „<strong>Linux</strong>-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. <strong>Linux</strong>Tag 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 <strong>Linux</strong><strong>Magazin</strong><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 <strong>Linux</strong>-<strong>Magazin</strong>s [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 <strong>Linux</strong>-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 />
<strong>Linux</strong>-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 <strong>Linux</strong>-<strong>Magazin</strong><br />
und <strong>Linux</strong>User.<br />
Online-Suche<br />
Besonders bequem finden Sie einen<br />
<strong>Linux</strong>-Anbieter in Ihrer Nähe über die<br />
neue Online-Umkreis-Suche unter:<br />
[http://www.it-profimarkt.de]<br />
Informationen<br />
fordern Sie bitte an bei:<br />
Medialinx AG<br />
Anzeigenabteilung<br />
Putzbrunner Str. 71<br />
D-81739 München<br />
Tel.: +49 (0)89/99 34 11-23<br />
Fax: +49 (0)89/99 34 11-99<br />
E-Mail: anzeigen@linux-magazin.de<br />
IT-Profimarkt – Liste sortiert nach Postleitzahl<br />
1 = Hardware 2 = Netzwerk/TK 3 = Systemhaus<br />
4= Fachliteratur 4= Seminaranbieter 5 = Software 5 = Software 6 = Schulung/Beratung 6 = Firma Anschrift Telefon Web 1 2 3 4 5 6<br />
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 />
<strong>Linux</strong>-Systeme GmbH 45277 Essen, Langenbergerstr. 179 0201-298830 www.linux-systeme.de √ √ √ √ √<br />
<strong>Linux</strong>hotel GmbH 45279 Essen, Antonienallee 1 0201-8536-600 www.linuxhotel.de √<br />
OpenSource Training Ralf Spenneberg 48565 Steinfurt, Am Bahnhof 3-5 02552-638755 www.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 />
<strong>Linux</strong>Haus Stuttgart<br />
70565 Stuttgart,<br />
Hessenwiesenstrasse 10<br />
IT-Profimarkt listet ausschließlich Unternehmen, die Leistungen rund um <strong>Linux</strong> bieten. Alle Angaben ohne Gewähr. <br />
0711-2851905 www.linuxhaus.de √ √ √ √ √<br />
√<br />
(S.94)
Embedded <strong>Linux</strong><br />
Beratung - Schulung - Entwicklung<br />
Imagery: Earth by NASA / The Blue Marble Project - http://visibleearth.nasa.gov | Penguin Variant by Larry Ewing, Simon Budig & Anja Gerwinski<br />
<strong>Linux</strong> Portierung - Web - AJAX - Qt - Echtzeit<br />
www.pengutronix.de<br />
+49 (5121) 20 69 17 - 0<br />
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 <strong>Linux</strong>-Systemhaus 76133 Karlsruhe, Moltkestr. 49 0721-6803288-0 www.in-put.de √ √ √ √ √ √<br />
Bodenseo 78224 Singen, Pomeziastr. 9 07731-1476120 www.bodenseo.de √ √ √<br />
<strong>Linux</strong> Information Systems AG 81739 München, Putzbrunnerstr. 71 089-993412-0 www.linux-ag.com √ √ √ √ √<br />
<strong>Linux</strong>Land International GmbH 81739 München, Putzbrunnerstr. 71 089-99341441 www.linuxland.de √ √ √ √ √ √<br />
Synergy Systems GmbH 81829 München, Konrad-Zuse-Platz 8 089-89080500 www.synergysystems.de √ √ √ √ √<br />
B1 Systems GmbH 85088 Vohburg, Osterfeldstrasse 7 08457-931096 www.b1-systems.de √ √ √ √ √<br />
ATIX AG 85716 Unterschleißheim, Einsteinstr. 10 089-4523538-0 www.atix.de √ √ √ √ √ √<br />
Tuxedo Computers GmbH 86343 Königsbrunn , Zeppelinstr. 3 0921- 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 <strong>Linux</strong> bieten. Alle Angaben ohne Gewähr. <br />
n<br />
Einfach auf LinuX umstEigEn!<br />
DigiSub-Mini * : 2 digitale Ausgaben Easy<strong>Linux</strong>!<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/<strong>Linux</strong><br />
UNIX/<strong>Linux</strong>-Aufbau<br />
C, C-Aufbau<br />
C++<br />
OOA/OOD (mit UML)<br />
Java<br />
Perl, XML<br />
weitere Kurse auf Anfrage, Telephonhotline<br />
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 />
<strong>Linux</strong>-Administrator LPI, Webmaster<br />
Teststudium ohne Risiko.<br />
GRATIS-Infomappe<br />
gleich anfordern!<br />
FERNSCHULE WEBER<br />
-seit 1959-<br />
Postfach 21 61<br />
Abt. C25<br />
26192 Großenkneten<br />
Tel. 0 44 87 / 263<br />
Fax 0 44 87 / 264<br />
www.fernschule-weber.de<br />
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 />
<strong>Linux</strong>-<strong>Magazin</strong> und <strong>Linux</strong>User haben<br />
ein englisches Schwester magazin!<br />
Am besten, Sie informieren gleich<br />
Ihre <strong>Linux</strong>-Freunde in aller Welt...<br />
www.linux-magazine.com<br />
IT-Onlinetrainings<br />
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 />
Easy<strong>Linux</strong> 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 <strong>Linux</strong> 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 />
<strong>Linux</strong>-<strong>Magazin</strong> http://www.linux-magazin.de 42, 61, 99<br />
<strong>Linux</strong>-<strong>Magazin</strong> Online http://www.linux-magazin.de 27<br />
<strong>Linux</strong>User http://www.linuxuser.de 89<br />
Medialinx 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 />
<strong>Linux</strong> <strong>Magazin</strong>e http://www.linux-magazine.com 95<br />
<strong>Linux</strong>-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 />
<strong>Linux</strong>wochen 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 />
<strong>Linux</strong> 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 />
<strong>Linux</strong>Tag 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 />
<strong>Linux</strong>-<strong>Magazin</strong> eine Publikation der <strong>Linux</strong> New Media, einem<br />
Geschäftsbereich der Medialinx AG<br />
Redaktionsanschrift Putzbrunner Str. 71<br />
81739 München<br />
Tel.: 089/993411-0<br />
Fax: 089/993411-99 oder -96<br />
Internet<br />
www.linux-magazin.de<br />
E-Mail<br />
redaktion@linux-magazin.de<br />
Geschäftsleitung<br />
Chefredakteur<br />
stv. Chefredakteure<br />
Redaktionsltg. Online<br />
Brian Osborn (Vorstand), bosborn@medialinx-gruppe.de<br />
Hermann Plank (Vorstand), hplank@medialinx-gruppe.de<br />
Jan Kleinert (V.i.S.d.P.), jkleinert@linux-magazin.de (jk)<br />
Markus Feilner, mfeilner@linux-magazin.de (mfe)<br />
Mathias Huber, mhuber@linux-magazin.de (mhu)<br />
Mathias Huber, mhuber@linux-magazin.de (mhu)<br />
Print- und Onlineredaktion<br />
Aktuell, Forum, Software, Kristian Kissling, kkissling@linux-magazin.de (kki)<br />
Programmierung Mathias Huber, mhuber@linux-magazin.de (mhu)<br />
Sysadmin, Know-how Markus Feilner, mfeilner@linux-magazin.de (mfe)<br />
Ständige Mitarbeiter Fred Andresen, Zack Brown, Mela Eckenfels, Heike Jurzik (hej),<br />
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 />
<strong>Linux</strong> <strong>Magazin</strong>e International<br />
Joe Casad (jcasad@linux-magazine.com)<br />
<strong>Linux</strong> <strong>Magazin</strong>e Poland<br />
Artur Skura (askura@linux-magazine.pl)<br />
<strong>Linux</strong> <strong>Magazin</strong>e Spain<br />
Paul C. Brown (pbrown@linux-magazine.es)<br />
<strong>Linux</strong> <strong>Magazin</strong>e Brasil<br />
Rafael Peregrino (rperegrino@linuxmagazine.com.br)<br />
Christian Ullrich, cullrich@linux-magazin.de<br />
www.medialinx-shop.de<br />
www.linux-magazin.de/Produkte<br />
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 <strong>Linux</strong>User-Abo (DVD) und beiden Jahres-DVDs, inkl. DELUG-Mitgliedschaft (monatl.<br />
DELUG-DVD)<br />
3<br />
mit ADMIN-Abo und beiden Jahres-DVDs<br />
Schüler- und Studentenermäßigung: 20 Prozent gegen Vorlage eines Schülerausweises<br />
oder einer aktuellen Immatrikulationsbescheinigung. <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. <strong>Linux</strong> ist eingetragenes<br />
Marken zeichen von Linus Torvalds und wird in unserem Markennamen mit seiner<br />
Erlaubnis verwendet.<br />
Eine Haftung für die Richtigkeit von Veröffentlichungen kann trotz sorgfältiger Prüfung<br />
durch die Redaktion vom Verlag nicht übernommen werden. Mit der Einsendung von<br />
Manus kripten gibt der Verfasser seine Zustimmung zum Abdruck. Für unverlangt<br />
eingesandte Manuskripte kann keine Haftung übernommen werden.<br />
Das Exklusiv- und Verfügungsrecht für angenommene Manuskripte liegt beim Verlag. Es<br />
darf kein Teil des Inhalts ohne ausdrückliche schriftliche Genehmigung des Verlags in<br />
irgendeiner Form vervielfältigt oder verbreitet werden.<br />
Copyright © 1994 – 2013 Medialinx AG<br />
Impressum 06/2013<br />
Service<br />
www.linux-magazin.de<br />
97<br />
Krypto-Info<br />
GnuPG-Schlüssel der <strong>Linux</strong>-<strong>Magazin</strong>-Redaktion:<br />
pub 1024D/44F0F2B3 2000-05-08 Redaktion <strong>Linux</strong>-<strong>Magazin</strong><br />
<br />
Key fingerprint = C60B 1C94 316B 7F38 E8CC E1C1 8EA6 1F22 44F0 F2B3<br />
Public-Key der DFN-PCA:<br />
pub 2048R/7282B245 2007-12-12,<br />
DFN-PGP-PCA, CERTIFICATION ONLY KEY (DFN-PGP-Policy: 2008-2009)<br />
<br />
Key fingerprint = 39 D9 D7 7F 98 A8 F1 1B 26 6B D8 F2 EE 8F BB 5A<br />
PGP-Zertifikat der DFN-User-CA:<br />
pub 2048R/6362BE8B (2007-12-12),<br />
DFN-PGP-User-CA, CERTIFICATION ONLY KEY (DFN-PGP-Policy: 2008-2009)<br />
<br />
Key fingerprint = 30 96 47 77 58 48 22 C5 89 2A 85 19 9A D1 D4 06<br />
Root-Zertifikat der CAcert:<br />
Subject: O=Root CA, OU=http://www.cacert.org, CN=CA Cert Signing Authority/<br />
Email=support@cacert.org<br />
SHA1 Fingerprint=13:5C:EC:36:F4:9C:B8:E9:3B:1A:B2:70:CD:80:88:46:76:CE:8F:33<br />
MD5 Fingerprint=A6:1B:37:5E:39:0D:9C:36:54:EE:BD:20:31:46:1F:6B<br />
GPG-Schlüssel der CAcert:<br />
pub 1024D/65D0FD58 2003-07-11 [expires: 2033-07-03]<br />
Key fingerprint = A31D 4F81 EF4E BD07 B456 FA04 D2BB 0D01 65D0 FD58<br />
uid CA Cert Signing Authority (Root CA) <br />
Autoren dieser Ausgabe<br />
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 <strong>Vorschau</strong> 02/2013 07/2013 06/2013 01/2013<br />
98<br />
<strong>Vorschau</strong><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 <strong>Magazin</strong> 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 <strong>Magazin</strong> 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 />
<strong>Vorschau</strong><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 <strong>Linux</strong>-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 <strong>Linux</strong> 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