26.02.2014 Aufrufe

LinuxUser Python-CODE, Embedded-Einstieg, Crosscompiling (Vorschau)

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

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

www.linux-user.de<br />

NO-MEDIA-EDITION<br />

NUR 5,50 <br />

<strong>CODE</strong> &<br />

TOOLS<br />

Blender: Mit Materialien arbeiten S. 56<br />

Satelliten verfolgen mit Gpredict S. 64<br />

Readform wertet Fragebogen aus S. 92<br />

EUR 5,50<br />

Deutschland<br />

Österreich EUR 6,30<br />

Schweiz sfr 11,00<br />

Benelux EUR 6,50<br />

Spanien EUR 7,45<br />

Italien EUR 7,45<br />

02.2011<br />

02.2011<br />

BLENDER • BEETS • DING • LSHW • SANDY BRIDGE • XFE • PROGRAMMIEREN<br />

PYTHON-<strong>CODE</strong>, EMBEDDED-EINSTIEG, CROSSCOMPILING<br />

PROGRAMMIEREN<br />

<strong>Einstieg</strong> in <strong>Embedded</strong>-Entwicklung S. 36<br />

Mikrocontroller-Programmierung leicht gemacht<br />

mit dem Arduino-Komplettpaket von Franzis<br />

<strong>Crosscompiling</strong> öffnet fremde Welten S. 38<br />

So bringen Sie Ihre Programme im Nu auch auf<br />

andere Hardware- und Betriebssystem-Plattformen<br />

Professionelle <strong>Python</strong>-Programme S. 24, 28<br />

Komfortabel codieren und debuggen in der Entwicklungsumgebung Eric,<br />

die besten Tipps und Kniffe für fehlerfreien und robusten <strong>Python</strong>-Code<br />

Sandy Bridge: Intels neue CPUs im Test S. 86<br />

Die ersten Prozessoren und Motherboards der brandneuen Architektur<br />

unter Linux: Mehr Leistung, niedriger Verbrauch, schon wieder neue Sockel<br />

XFE S. 48<br />

Dateien verwalten<br />

ohne Schnickschnack<br />

Beets S. 52<br />

Endlich Ordnung in<br />

der MP3-Sammlung<br />

4 195111 005504 02<br />

Der Hardware S. 76<br />

aufs Bit geschaut<br />

Das clevere Lshw kennt mehr<br />

Details als viele Datenblätter<br />

int i=2;<br />

int j=3;<br />

int k;<br />

Komfortabel S. 42<br />

texten mit Ding<br />

Wörterbuch, Spellchecker,<br />

Thesaurus und Übersetzer<br />

Huawei E5: Überall ins Netz<br />

UMTS-WLAN-Router für bis zu 5 Clients: Mobiler<br />

Zugang auf Knopfdruck, Fileserver mit dabei S. 80


„Ich habe jederzeit Zugriff auf alle<br />

meine Firmendaten und doppelte<br />

Datensicherheit mit der NAS-Box!“<br />

STRATO HiDrive<br />

Der geniale Online-Speicher!<br />

HiDrive ist Ihre persönliche Festplatte im Internet mit bis zu<br />

5.000 GB – optimal für alle, die viel Speicherplatz benötigen!<br />

Damit haben Sie weltweit Ihre gesamten Firmendaten parat –<br />

unterwegs per Handy oder Notebook, im Büro und Zuhause.<br />

Verwalten und bearbeiten Sie Dateien online und vergeben<br />

Sie Zugriffsrechte an Ihre Mitarbeiter und Partner. Höchste<br />

Sicherheit dank TÜV-geprüfter Rechenzentren garantiert.<br />

AKTION bis 31.01.11: HiDrive Pro 1.000 bestellen und die<br />

Synology-Box günstig dazu mieten. Lokaler Zwischenspeicher<br />

für effizientes Arbeiten mit automatischer Sicherheitskopie.<br />

Gemeinsamer Zugriff<br />

User-Verwaltung inkl.<br />

Admin-Accounts für<br />

bis zu 120 Konten<br />

Höchste Sicherheit<br />

Verschlüsselung<br />

Ihrer Firmendaten<br />

(SSH, SCP, SFTP)<br />

Große Datenmengen<br />

Einfacher Transfer und<br />

Austausch von Dateien<br />

(alle Formate)<br />

Jetzt bestellen unter:<br />

Die ideale Ergänzung!<br />

Schneller Zugang<br />

Wie bei einer lokalen<br />

Festplatte über (S)FTP,<br />

rsync, SMB/CIFS, u.v.m.<br />

Noch Fragen? Anruf genügt: 0 18 05 - 055 055<br />

(0,14 €/Min. aus dem dt. Festnetz, Mobilfunk max. 0,42 €/Min.)<br />

HiDrive Pro 1.000<br />

mit 1.000 GB<br />

Online-Speicher!<br />

strato.de/hidrive<br />

nur<br />

39, 90 €<br />

mtl.<br />

*<br />

+<br />

NAS-Box von Synology<br />

mit 1 TB Speicher! *<br />

Daten-Backups<br />

Wiederherstellung von<br />

Dokumentenversionen<br />

mit BackupControl<br />

*Preise inkl. MwSt. Mindestvertragslaufzeit 24 Monate. Aktion: Bis 31.01.2011 HiDrive Pro 1.000 bestellen und die Synology DiskStation (DS110j) für nur 4,49 €/mtl. dazu mieten. Versandkosten 6,90 €.


EDITORIAL<br />

Toter Gaul?<br />

Sehr geehrte Leserinnen und Leser,<br />

Mit der Ankündigung der für<br />

Ubuntu in der nächsten Zukunft<br />

geplanten Neuerungen ließ Mark<br />

Shuttleworth Ende letzten Jahres<br />

zwei wahre Bomben platzen:<br />

Zum einen installiert Ubuntu ab<br />

Version 11.04 „Natty Narwhal“<br />

statt wie bisher Gnome eine<br />

eige ne Benutzeroberfläche namens<br />

Unity, die es bislang nur als<br />

Netbook-Desktop zu sehen gab.<br />

Zum anderen will Shuttleworth<br />

so bald wie möglich den X-Server<br />

durch den alternativen Display-<br />

Server Wayland ersetzen (der allerdings<br />

momentan noch in den<br />

Kinderschuhen steckt).<br />

Sieht man genauer hin, dann<br />

zeigen beide Innovationen in ein<br />

und dieselbe Richtung: Weg vom<br />

Desktop, hin zu mobilen Geräten.<br />

So präsentiert sich Unity in Sachen<br />

Layout und Bedienung ganz<br />

für kleine Bildschirme und Touchscreens<br />

hin optimiert, sprich: für<br />

Netbooks, Tablets und eventuell<br />

irgendwann sogar Smartphones.<br />

Das modular strukturierte Wayland<br />

wiederum gibt sich wesentlich<br />

leichtgewichtiger als der monolithische<br />

X-Server, was insbesondere<br />

den Einsatz auf leistungsärmerer<br />

Hardware erleichtert. Für<br />

den klassischen Desktop andererseits<br />

verheißen jedoch weder<br />

Unity noch Wayland Gutes.<br />

Die neue Oberfläche setzt zwingend<br />

3D-Beschleunigung voraus,<br />

nagelt eine nicht konfigurierbare<br />

Starterleiste mit monströs großen<br />

Icons am linken Bildschirmrand<br />

fest, glänzt nicht eben durch Stabilität<br />

und erhält in Sachen Usability<br />

von Rezensenten durch die<br />

Bank nur schlechte Noten. Zudem<br />

haben viele Anwendungen<br />

Schwierigkeiten in Mac-Manier<br />

mit der aus dem Fenster an den<br />

oberen Bildschirmrand verlegten<br />

Menüleiste. Mit der Ablösung des<br />

X-Servers durch Wayland dürften<br />

sich solche Probleme potenzieren:<br />

Da Letzteres ein völlig anderes<br />

Darstellungsparadigma verfolgt,<br />

müssen alle Anwendungen dafür<br />

einzeln angepasst werden. Um X-<br />

Anwendungen überhaupt darstellen<br />

zu können, setzt Wayland<br />

eine zusätzliche Kompatibilitätsschicht<br />

voraus. Die Netzwerktransparenz<br />

des X Window Systems<br />

geht komplett verloren,<br />

man kann sich also keine Anwendungsfenster<br />

von entfernten<br />

Rechnern mehr auf den eigenen<br />

Bildschirm holen.<br />

Es macht den Eindruck, als solle<br />

aus Ubuntu salopp gesprochen<br />

das „Android für Tablets“ werden:<br />

Die angekündigten Neuerungen<br />

machen nur auf den trendigen<br />

Mobilgeräten Sinn – von<br />

denen verspricht Mark Shuttleworth<br />

sich ganz offenbar eine Rekapitalisierung<br />

seiner Investitionen<br />

in Ubuntu. Das sei ihm von<br />

Herzen gegönnt, falls es denn<br />

funktioniert. Der unvermeidbare<br />

Umkehrschluss lautet aber, dass<br />

der Ubuntu-Mäzen den Linux-<br />

Desktop als toten Gaul abgeschrieben<br />

hat. Und damit liegt er<br />

meiner bescheidenen Meinung<br />

nach völlig falsch.<br />

Per Fingertapsen auf dem Bildschirm<br />

lässt sich nicht kreativ<br />

mit einem PC arbeiten, sondern<br />

nur passiv Vorgefertigtes konsumieren.<br />

Mit zugegeben komplexen,<br />

aber auch flexiblen Lösungen<br />

wie dem X-Server geht viel<br />

von dem Charme verloren, der<br />

Unix-basierte Systeme von der<br />

Betriebssystemkonkurrenz unterscheidet.<br />

Eben diese Kreativität<br />

und Flexibilität sind es aber,<br />

die Linux für die meisten Anwender<br />

überhaupt erst interessant<br />

machen. Wenn sich meine Interessen<br />

darauf beschränken, Apps<br />

herunterzuladen und mit Hühnern<br />

nach Schweinen zu schießen,<br />

warum sollte ich dann ausgerechnet<br />

Ubuntu gegenüber<br />

Android, iOS oder Windows<br />

Phone 7 den Vorzug einräumen?<br />

Behält Ubuntu die von Mark<br />

Shuttleworth favorisierte Linie<br />

bei, dürfte sich so mancher Desktop-Anwender<br />

schon bald dazu<br />

gezwungen sehen, sich nach einer<br />

Distributions-Alternative<br />

umzusehen. Mindestens einen<br />

User hat Ubuntu bereits jetzt<br />

verloren: mich.<br />

Herzliche Grüße,<br />

Jörg Luther<br />

Chefredakteur<br />

www.linux-user.de 02 | 11<br />

3


02 | 11<br />

92<br />

Das clevere Readform<br />

hilft beim Erstellen, Auswerten<br />

und Archivieren<br />

von klassischen Papierfragebögen.<br />

80<br />

In Sekundenschnelle verschafft der<br />

WLAN-UMTS-Hotspot Huawei E5<br />

bis zu fünf mobilen Clients Zugang<br />

ins Internet und glänzt dabei mit solider Verarbeitung,<br />

einem einfachen Bedienkonzept, durchdachter<br />

Konfiguration und perfekt auf den Einsatzbereich<br />

abgestimmten Funktionen.<br />

inzwischen im interstellaren<br />

Raum angelangte Sonde Voyager 1<br />

64Die<br />

kann Gpredict zwar nicht mehr<br />

verfolgen, dafür aber alle Satelliten in Umlaufbahnen<br />

um die Erde. Bei Bedarf richtet es die<br />

Antenne Ihrer Funkanlage gleich passend aus.<br />

HEFT-DVD<br />

SCHWERPUNKT<br />

PRAXIS<br />

Mandriva 2010.2 . . . . . . . . . 6<br />

Neu auf den DVDs . . . . . . . 10<br />

PinguyOS 10.10 . . . . . . . . . 12<br />

AKTUELLES<br />

Aktuelle Distributionen . . 16<br />

Aptosid 2010-03 mit verbessertem<br />

Hardware-Support, Linux<br />

Mint Debian Edition 201012<br />

jetzt auch in 64 Bit, XBMC 10.0<br />

„Dharma“ als Live-CD<br />

Neues rund um Linux . . . . 18<br />

Cirkuit zeichnet Schaltpläne,<br />

Knights 2.2.0 für KDE SC 4,<br />

LC-Linux-Kalender 2011,<br />

Virtualbox 4 ist erschienen, X.org<br />

7.6 tauscht HAL und Xlib aus<br />

Hardware im Kurztest . . . 20<br />

AMD Phenom II X4 970 Black<br />

Edition; Raidon Geartank<br />

GT1640-1S-SB3; Seagate Momentus<br />

XT 500 GB; Verbatim Quad-<br />

Interface External Hard Drive<br />

Software im Kurztest . . . . 22<br />

Image-Mounter Mount_dd 1.3,<br />

Netzwerk-Tacho Speedometer,<br />

Bild-Datenbank VVVP 0.95,<br />

Desktop-Wiki Zim 0.49<br />

Eric4/Eric5 . . . . . . . . . . . . . 24<br />

Die <strong>Python</strong>-IDE Eric4 vereinfacht<br />

das Schreiben von Skripten und<br />

komplexen Programmen durch<br />

zahlreiche Komfortfunktionen.<br />

Robuster <strong>Python</strong>-Code . . . 28<br />

<strong>Python</strong> ist einfach – aber nicht<br />

so einfach, dass man es allein<br />

durch das Lesen von Code lernen<br />

könnte. Mit etwas Hintergrundwissen<br />

vermeiden Sie typische<br />

Fehler in <strong>Python</strong>-Code.<br />

Arduino-Paket . . . . . . . . . . 36<br />

Das Arduino-Lernpaket aus dem<br />

Franzis-Verlag bündelt Board,<br />

Microcontroller, Bauteile, Handbuch<br />

und Software zu einem praktischen<br />

Einsteigerpaket für die<br />

<strong>Embedded</strong>-Programmierung.<br />

Cross-Compiling . . . . . . . . 38<br />

Der große Vorteil freier Software<br />

ist die Zugänglichkeit<br />

des Quellcodes. Mithilfe eines<br />

Cross-Compilers bringen Sie viele<br />

Programme auch auf fremde<br />

Betriebssysteme oder andere<br />

Hardware-Plattformen.<br />

Ding . . . . . . . . . . . . . . . . . . . 42<br />

Ding kombiniert als leistungsstarkes<br />

Frontend die Wörterbuchsuche,<br />

einen Thesaurus und das<br />

Übersetzen vom Deutschen ins<br />

Englische und umgekehrt.<br />

XFE . . . . . . . . . . . . . . . . . . . 48<br />

Mit dem schlanken X File Explorer<br />

und den kleinen Helfern, die<br />

er im Gepäck hat, verwalten Sie<br />

Dateien effizient und ohne jeden<br />

Schnickschnack.<br />

Beets . . . . . . . . . . . . . . . . . 52<br />

Viele Musikliebhaber hören Songs<br />

am liebsten direkt aus der MP3-<br />

Sammlung. Dabei bringt Beets<br />

schnell Ordnung ins Chaos der<br />

Lieder und Alben.<br />

Blender-Workshop . . . . . . 56<br />

Im zweiten Teil unseres Blender-<br />

Workshops geht es um den<br />

Umgang mit Materialien: Der<br />

Dust Puppy erhält endlich Augen,<br />

Haare und eine Haut.<br />

Gpredict . . . . . . . . . . . . . . . 64<br />

Mit Gpredict verfolgen Sie die<br />

Flugbahnen von Satelliten und<br />

richten sogar die Antenne Ihrer<br />

Amateurfunkanlage passend aus.<br />

4 02 | 11<br />

www.linux-user.de


Heft-DVDs<br />

Auf den Heft-DVDs dieser Ausgabe befindet<br />

sich ausschließlich Anwendungssoftware.<br />

Die Datenträger enthalten keine jugendgefährdenden<br />

Inhalte.<br />

Schwerpunkt<br />

stellt eine leistungsfähige<br />

Umgebung für das Programmieren mit <strong>Python</strong> vor<br />

24Der<br />

und gibt Tipps für robusteren Code. Per Cross-Compiling übertragen Sie<br />

Ihre Programme in fremde Hardware- und Betriebssystem-Welten – etwa<br />

auf die offene <strong>Embedded</strong>-Plattform Arduino aus dem Franzis-Lernpaket.<br />

Auf der Heft-DVD:<br />

Die auf Security und<br />

Forensik spezialisierte<br />

Distro Backtrack 4R2<br />

gehört in den Werkzeugkasten<br />

jedes sicherheitsbewussten<br />

Linux-<br />

Anwenders – mehr<br />

dazu auf Seite 10.<br />

IM TEST<br />

Fotobuch-Designer . . . . . . 70<br />

Die Fotobuchsoftware von Cewe<br />

gilt als eine der wenigen brauchbaren<br />

Lösungen für Linux. Auch<br />

die neueste Version weiß hinsichtlich<br />

Funktionalität und Benutzerfreundlichkeit<br />

zu überzeugen.<br />

NETZ&SYSTEM<br />

Lshw . . . . . . . . . . . . . . . . . . 76<br />

Mit Lshw enthüllen Sie Details<br />

der PC-Hardware, die Sie in einigen<br />

Fällen noch nicht mal in den<br />

Datenblättern finden.<br />

turen sind zählebig.<br />

86CPU-Architek-<br />

Nach rund 10 Jahren<br />

stellt Intel mit Sandy Bridge erstmals<br />

wieder eine komplett neue<br />

Technologie vor. Wir prüfen, wie<br />

gut sie sich mit Linux verträgt.<br />

HARDWARE<br />

Huawei E5 . . . . . . . . . . . . . 80<br />

Der kombinierte UMTS-WLAN-<br />

Router E5 des chinesischen<br />

Anbieters Huawei ermöglicht<br />

den mobilen Zugang ins Internet<br />

innerhalb von Sekunden.<br />

Intel Sandy Bridge . . . . . . 86<br />

Intels neue Prozessorgeneration<br />

„Sandy Bridge“ liefert überzeugende<br />

Leistung zum erschwinglichen<br />

Preis und bietet dabei<br />

gleichzeitig Zukunftssicherheit.<br />

KNOW-HOW<br />

Readform/ReadGUI . . . . . 92<br />

Wo elektronische Mittel zum Erfas<br />

sen von Daten versagen, erlebt<br />

der Papierfragebogen ein Comeback.<br />

Readform hilft, ihn zu erstellen<br />

und die Ergebnisse später<br />

komfortabel digital zu erfassen.<br />

SERVICE<br />

Editorial . . . . . . . . . . . . . . . . 3<br />

IT-Profimarkt . . . . . . . . . . 98<br />

Impressum . . . . . . . . . . . . 105<br />

<strong>Vorschau</strong> 03/2011 . . . . . . 106<br />

Das installierbare Live-System<br />

PinguyOS 10.10.1 ergänzt den<br />

Umfang von Ubuntu „Maverick“<br />

um zahlreiche Codecs,<br />

Treiber, Java und Flash. Daneben<br />

glänzt der Multimedia-Allrounder<br />

mit einer<br />

optimierten GUI. Lesen Sie<br />

dazu den Artikel ab Seite 12.<br />

Mandriva 2010.2 hat es<br />

in sich: Das außer der<br />

Reihe veröffentlichte<br />

Release verbindet<br />

Benutzerfreundlichkeit<br />

und Sicherheit<br />

zu einem runden<br />

Desktop-System.<br />

Weitere Details<br />

dazu finden Sie im<br />

Artikel ab Seite 6.<br />

Mit<br />

XBMC 10.0<br />

erscheint nach<br />

einem Jahr Entwicklung nun<br />

eine neue Version des beliebten<br />

Media centers. Ein<br />

cleveres Plugin-Konzept<br />

sorgt dabei für leichte Erweiterbarkeit.<br />

Testen Sie es<br />

mit der installierbaren Live-<br />

CD selbst – mehr auf Seite 10.<br />

<strong>LinuxUser</strong> DVD-Edition<br />

Hinweis: Haben Sie die DVD-Edition dieser Ausgabe erworben,<br />

finden Sie auf Seite 10 weitere Informationen zu<br />

den Programmen auf den beiden Datenträgern. Haben Sie<br />

dagegen die güns tigere No-Media-Ausgabe erstanden,<br />

enthält dieses Heft keine Datenträger.<br />

www.linux-user.de<br />

12 | 10 5


HEFT-DVD<br />

Mandriva 2010.2<br />

Maintenance-Release Mandriva 2010.2<br />

Modellpflege<br />

Mandriva One 2010.2,<br />

Mandriva 2010.2<br />

Free Edition<br />

(32+64 Bit), bootfähig<br />

auf den Heft-DVDs<br />

README<br />

Mandriva gilt seit jeher<br />

als ideale Einsteigerdistribution.<br />

Die aktuelle<br />

Release 2010.2 glänzt<br />

wieder durch sehr einfach<br />

zu bedienende<br />

Innovationen bei Desktop<br />

und System.<br />

Mandriva ist im Linux-Umfeld seit mehr als einem<br />

Jahrzehnt ein fester Begriff. Jetzt steht die bereits<br />

dritte Version des Jahres 2010 mit über 5000 aktualisierten<br />

Paketen zum Download bereit. Erik Bärwaldt<br />

Mandriva Linux [1], eine der ältesten<br />

und bedienerfreundlichsten<br />

Distributionen überhaupt, geriet<br />

im vergangenen Jahr in heftige<br />

Turbulenzen, die in Teilen der<br />

Community die Frage nach dem<br />

Fortbestand des französisch-brasilianischen<br />

Betriebssystems aufkommen<br />

ließen [2]. Kurz vor<br />

Weihnachten hat sich die Distribution<br />

jedoch mit dem Release<br />

2010.2 kraftvoll zurückgemeldet.<br />

Mandriva 2010.2 fällt zeitlich<br />

aus dem Rahmen. Üblicherweise<br />

liefert das französische Unternehmen<br />

halbjährlich eine neue Version,<br />

die 2010.2-Variante weicht<br />

als drittes Release im Jahr 2010<br />

vom bisherigen Veröffentlichungszyklus<br />

ab. Das Betriebssystem<br />

verzichtet deshalb auch auf<br />

revolutionäre Neuerungen und<br />

präsentiert sich vornehmlich als<br />

fehlerbereinigte und aktualisierte<br />

Fassung der „Spring“-Version. Die<br />

Entwickler geben an, über 5000<br />

Pakete auf den neuesten Stand<br />

gehoben zu haben.<br />

Als entsprechend aktuell erweist<br />

sich die Ausstattung: Mit Kernel<br />

2.6.33-7, KDE SC 4.4.3, Firefox<br />

© LNM AG<br />

3.6.13 sowie OpenOffice 3.2.0<br />

und dem Bildbearbeitungsprogramm<br />

Gimp 2.6.8 hat Mandriva<br />

2010.2 in vielen Bereichen eine<br />

Runderneuerung mit stabilen<br />

Versionen bekommen. Auch die<br />

distributionseigenen grafischen<br />

Drak-Tools, die der bequemen<br />

und einfachen Systemverwaltung<br />

dienen, wurden technischen Neuerungen<br />

angepasst.<br />

Wie gewohnt gibt es Mandriva<br />

2010.2 in den Varianten Free,<br />

One und PowerPack. Mandriva<br />

One enthält als Live-CD mit Installationsmöglichkeit<br />

auch proprietäre<br />

Codecs, die DVD-Variante<br />

Mandriva Free dient der direkten<br />

Installation des Systems auf der<br />

Festplatte [3]. Die kostenpflichtige<br />

Powerpack-Variante schließlich<br />

bringt Codecs und proprietäre<br />

Software beispielsweise von Fluendo<br />

und Adobe mit. Alle drei<br />

Versionen grenzen sich durch ein<br />

jeweils leicht verändertes Erscheinungsbild<br />

voneinander ab.<br />

Neben der Versionsvielfalt<br />

glänzt Mandriva wie bisher durch<br />

verschiedenste Desktop-Umgebungen.<br />

Als Standard-Desktop<br />

verwendet das System KDE, daneben<br />

lassen sich auch Gnome<br />

und LXDE auswählen. Als etwas<br />

exotischere Variante bietet die<br />

Distribution zudem den Xfce-<br />

Desktop an. Damit lässt sich das<br />

Betriebssystem sowohl auf alter<br />

als auch brandneuer Hardware<br />

problemlos betreiben. Zusätzliche<br />

64-Bit-Varianten der Free- und<br />

Powerpack-Edition erlauben, die<br />

Vorteile entsprechender Prozessoren<br />

voll auszunutzen.<br />

Hardware und Treiber<br />

Mandriva steht seit jeher im Ruf,<br />

eine der besten Hardware-Erkennungsroutinen<br />

im Linux-Umfeld<br />

zu besitzen. Auch die Version<br />

2010.2 macht hier keine Ausnahme,<br />

sondern gestattet sich selbst<br />

auf brandneuen Notebooks keinerlei<br />

Blöße. So erkannte es im<br />

Test auf einem ansonsten etwas<br />

kapriziösen Lenovo-Thinkpad<br />

nicht nur die integrierte Webcam<br />

und sprach sie korrekt an; auch<br />

der biometrische Sensor für die<br />

Authentifizierung und ein eingebauter<br />

Smartcard-Leser funktionierten<br />

ohne Nacharbeit (Abbildung<br />

).<br />

Den passenden Treiber zur Ansteuerung<br />

der Grafikkarte wählt<br />

das System aus und stellt das Display<br />

auf die korrekte Farbtiefe,<br />

Auflösung und Bildwiederholfrequenz<br />

ein. Eine weitere Besonderheit<br />

finden Sie im Untermenü<br />

Hardware | Konfigurieren der 3D<br />

Desktop Effekte des Mandriva-<br />

Kontrollzentrums (Abbildung ):<br />

Hier aktivieren Sie per Mausklick<br />

nicht nur das allseits bekannte<br />

Compiz Fusion, sondern daneben<br />

den wenig bekannten 3D-Manager<br />

Metisse [4]. Diese eher unbekannte<br />

Oberfläche ist das Ergebnis<br />

eines Forschungsprojekts, an<br />

dem sich das Unternehmen Mandriva<br />

direkt beteiligt [5].<br />

Das innovative Projekt will jenseits<br />

von optischen Gimmicks die<br />

Anwenderfreundlichkeit des PC-<br />

Desktops erhöhen. Dazu verzichtet<br />

es auf viele ressourcenfressen-<br />

6 02 | 11<br />

www.linux-user.de


Mandriva 2010.2<br />

HEFT-DVD<br />

de Spielereien und stellt stattdessen<br />

die Produktivität in den Vordergrund.<br />

So gestattet der Desktopmanager<br />

beispielsweise das<br />

Umblättern von Fenstern, um darunterliegende<br />

Programme oder<br />

Dateifenster sichtbar zu machen.<br />

Ein erweitertes Menü zum Verwalten<br />

der Fenster sowie über<br />

den Rand des eigentlich sichtbaren<br />

Bildschirmbereichs hinausgleitende<br />

Arbeitsoberflächen runden<br />

das Funktionsangebot von<br />

Metisse ab. Dabei implementiert<br />

es alle gängigen Standardfunktionen<br />

moderner Compositing-<br />

Desktops wie Transparenz.<br />

Sicherheit<br />

Die nicht nur bei Serveradministratoren<br />

geschätzte Sicherheit<br />

von Linux wahrt Mandriva konsequent<br />

auf dem Desktop. Während<br />

man sich bei weniger ausgereiften<br />

Linux-Distributionen<br />

durch einen Dschungel an unterschiedlichen<br />

Sicherheitseinstellungen<br />

kämpfen muss, bietet<br />

Mandriva mit MSEC im Rahmen<br />

des Kontrollzentrums alle relevanten<br />

Modifikationsoptionen<br />

unter einer einheitlichen Oberfläche<br />

an (Abbildung , folgende<br />

Seite).<br />

Diese einmalige, für Einsteiger<br />

ohne tiefere Vorkenntnisse leicht<br />

zu bedienende Oberfläche sorgt<br />

ohne umständliche Suche und<br />

Konfiguration auf der Kommandozeile<br />

für einen rundum sicheren<br />

Desktop. Eine Kindersicherung<br />

ergänzt das MSEC-Framework<br />

(Abbildung , folgende<br />

Seite). Sie finden diese ebenfalls<br />

im Mandriva-Kontrollzentrum im<br />

Untermenü Sicherheit | Kindersicherungen.<br />

Sie bietet neben den<br />

üblichen Black- und Whitelists<br />

von Internet-Adressen eine Feinjustierung<br />

des Netzzugangs sowie<br />

eine Zeitsteuerung für den Zugriff<br />

aufs Netz. Obendrein sperren<br />

Sie in einem eigenen Reiter<br />

benutzerspezifisch einzelne Anwendungen.<br />

Damit erfreut Mandriva<br />

2010.2 mit der wohl am<br />

einfachsten zu bedienenden und<br />

gleichzeitig funktionell umfangreichsten<br />

Kindersicherung, die es<br />

derzeit unter Linux im Lieferumfang<br />

einer Distribution gibt.<br />

Software<br />

Hinsichtlich der Auswahl an verfügbarer<br />

Software steht Mandriva<br />

anderen populären Distributionen<br />

wie Debian, Fedora oder<br />

Ubuntu in nichts nach. In den<br />

diversen Repositories finden sich<br />

mehr als 30 000 Applikationen,<br />

die selbst ausgefallene Anwenderwünsche<br />

befriedigen.<br />

Im Kontrollzentrum bietet<br />

Mandriva über das Menü Software<br />

verwalten | Installieren &<br />

Entfernen von Software eine einfache<br />

Möglichkeit, den Programmbestand<br />

auf der heimischen Festplatte<br />

zu erweitern. Bei der Installation<br />

löst das System alle Abhängigkeiten<br />

auf, alle benötigten<br />

Bibliotheken zieht Mandriva automatisch<br />

nach. Auf der Kommandozeile<br />

nutzen Sie bei Bedarf<br />

das Mandriva-eigene Urpm-Paketmanagement<br />

mit seinen äußerst<br />

mächtigen Funktionen [6].<br />

Qual der Wahl<br />

Bereits in der Standardinstallation<br />

steht der Anwender oftmals<br />

vor der Qual der Wahl, denn die<br />

Distribution installiert – sofern<br />

sinnvoll – für den gleichen Einsatzzweck<br />

oft zwei oder drei verschiedene<br />

Programme. So finden<br />

Sie beispielsweise im Untermenü<br />

Internet bei Mandriva neben Firefox<br />

stets auch Googles Webbrowser<br />

Chromium.<br />

Zusätzlich residieren hier auch<br />

noch die Desktop-spezifischen<br />

Browser wie Konqueror, Midori<br />

oder Epiphany, sodass Sie auf<br />

langsamen Rechnersystemen ressourcenschonende<br />

Applikationen<br />

nutzen können, ohne die Programme<br />

erst nachzuziehen.<br />

Lediglich Powerpack-Anwender<br />

müssen sich mit einem geringeren<br />

Softwarebestand zufriedengeben:<br />

Das auf den Unternehmensund<br />

Behörden-Desktop abzielende<br />

Mandriva Powerpack installiert<br />

keine Spiele. Als weitere Innovation<br />

integriert Mandriva<br />

2010.2 den semantischen Desktop<br />

Nepomuk [7]. Das von der<br />

Europäischen Union mit 11,5<br />

Millionen Euro geförderte Projekt<br />

entwickelt grob skizziert eine<br />

neuartige Form der Datei-Indizierung:<br />

Während die Suchfunktionen<br />

der Dateimanager sich bislang<br />

an Dateinamen und -endungen<br />

orientieren, gestattet Nepomuk<br />

eine kontextsensitive Indizierung<br />

anhand sogenannter Metatags.<br />

Hierbei handelt es sich um<br />

Schlagwörter, Zeitstempel oder<br />

auch Internet-Adressen. Der se-<br />

Wie üblich erkennt<br />

Mandriva 2010.2 die<br />

verbaute Hardware<br />

ohne Probleme.<br />

Mandriva bietet<br />

per Mausklick gleich<br />

zwei verschiedene 3D-<br />

Desktops an.<br />

www.linux-user.de<br />

02 | 11 7


HEFT-DVD<br />

Mandriva 2010.2<br />

Über das MSCE Framework sichern Sie Ihr System unter Mandriva<br />

ganz einfach mit wenigen Mausklicks ab.<br />

Dank integrierter Kindersicherung eignet sich Mandriva als System<br />

der Wahl für den Netzzugriff von Minderjährigen.<br />

Dateisuche leicht<br />

gemacht dank<br />

Nepomuk, dem<br />

semantischen<br />

Desktop.<br />

mantische Desktop – bislang im<br />

Linux-Umfeld nur vom KDE-Projekt<br />

konsequent implementiert –<br />

erleichtert die Arbeit mit Dateien<br />

und Programmen für den Endanwender<br />

enorm. Neben IBM beteiligt<br />

sich allerdings Mandriva bislang<br />

als einziger Betriebssystemhersteller<br />

von Bedeutung direkt<br />

an der Entwicklung des semantischen<br />

Desktops [8].<br />

In Mandriva 2010.2 ist Nepomuk<br />

erst einmal ausgeschaltet, da<br />

die unterschiedlichen Dienste für<br />

Indizierung, Backup und Suchfunktion<br />

auf leistungsschwächeren<br />

Computersystemen erhebliche<br />

Ressourcen in Anspruch nehmen.<br />

Auf dem Testsystem mit<br />

Zweikern-Prozessoren jenseits<br />

von 2 GHz Taktfrequenz arbeitete<br />

der Indizierungsdienst jedoch erstaunlich<br />

schnell. Sie aktivieren<br />

Nepomuk sowie die dazu gehörigen<br />

Dienste unter KDE im Menü<br />

Werkzeuge | Systemwerkzeuge |<br />

Die Arbeitsumgebung konfigurieren<br />

| Desktopsuche. Hier schalten<br />

Sie nach dem Anklicken des Radiobuttons<br />

Nepomuk-Semantik-<br />

Dienste aktivieren zusätzlich den<br />

Indexer Strigi ein (Strigi-Datei-Indexer<br />

aktivieren).<br />

Nach der erstmaligen Indizierung<br />

steht auf dem KDE-Desktop<br />

die semantische Suche bereit. Klicken<br />

Sie beispielsweise auf ein<br />

Bild, das von Nepomuk indiziert<br />

wurde, so bekommen Sie dazu die<br />

Metatags angezeigt. Die Suchfunktion<br />

in Dolphin öffnet ein gesondertes<br />

Filterfenster, in dem Sie<br />

bei Bedarf Metatags als Suchkriterien<br />

angeben (Abbildung ).<br />

Fazit<br />

Mit Mandriva 2010.2 legt die<br />

französisch-brasilianische Softwareschmiede<br />

wieder ein ausgezeichnetes<br />

Betriebssystem vor.<br />

Aufgrund der kontinuierlichen<br />

Weiterentwicklung mit Fokus auf<br />

Bedienerfreundlichkeit und durchdachte<br />

Eigenentwicklungen weist<br />

Mandriva die Desktop-Konkurrenz<br />

auch im Linux-Lager in die<br />

Schranken. Dabei demons trieren<br />

die Entwickler eindrucksvoll, dass<br />

Bedienerfreundlichkeit nicht – wie<br />

bei anderen Betriebssystemen –<br />

zulasten der Sicherheit gehen<br />

muss und umgekehrt nicht nur<br />

Sysadmins die Sicherheit des<br />

Desktops oder Servers adäquat<br />

konfigurieren können. Die Distribution<br />

eignet sich damit bestens<br />

sowohl für Einsteiger ohne Vorkenntnisse<br />

als auch für Profis, die<br />

ein zuverlässiges System mit guter<br />

Hardware-Unterstützung für den<br />

Servereinsatz benötigen. (jlu) ■<br />

INFO<br />

[1] Mandriva: http://www.mandriva.com<br />

[2] Mandriva und Mageia: Wolfgang Bornath,<br />

„Magische Momente“, LU 11/ 2010, S. 31,<br />

http://www.linux-community.de/22182<br />

[3] Downloadquellen: http://wiki.mandriva.<br />

com/en/Mandriva_mirrors#Germany<br />

[4] Metisse im Test: Erik Bärwaldt,<br />

„Gefällige Mischung“, LU 05/ 2007, S. 59,<br />

http://www.linux-community.de/12922<br />

[5] Metisse: http://insitu.lri.fr/metisse/<br />

[6] Mandriva-Paketmanagement:<br />

Oliver Burger und Wolfgang Bornath,<br />

„Dynamisches Duo“, LU 01/ 2010, S. 46,<br />

http://www.linux-community.de/19890<br />

[7] Semantischer Desktop Nepomuk:<br />

Sebastian Kügler, „Daten mit Bedeutung“,<br />

LU 04/ 2010, S. 88, http://www.<br />

linux-community.de/20409<br />

[8] Nepomuk-Projektseite:<br />

http://nepomuk.kde.org<br />

8 02 | 11<br />

www.linux-user.de


STRATO Pro<br />

Server-Technik, die begeistert!<br />

NEU!<br />

Jetzt Server mit echten<br />

Hexa-Core Prozessoren für:<br />

Leistungsstarke<br />

Dedicated Server<br />

Vorkonfigurierte<br />

Managed Server<br />

Auf alle Hexa-Core Server<br />

50% Rabatt<br />

für die ersten 3 Monate!<br />

Telefon: 0 18 05 - 00 76 77<br />

(0,14 €/Min. aus dem dt. Festnetz, Mobilfunk max. 0,42 €/Min.)<br />

strato-pro.de


HEFT-DVD<br />

DVD-Inhalt<br />

Neues auf<br />

den Heft-DVDs<br />

Trotz oder vielleicht auch<br />

gerade wegen des unruhigen<br />

Fahrwassers, in das Mandriva<br />

in den letzten Monaten gera-<br />

ten war, legt der französischbrasilianische<br />

Distributor jetzt<br />

außerhalb des regulären Release-<br />

Zyklus ein Maintenance-Release vor.<br />

Mandriva 2010.2<br />

demonstriert, dass<br />

die Entwickler ihr Handwerk verstehen: Sie<br />

haben erneut Benutzerfreundlichkeit mit Sicherheit<br />

zu einem runden System kombiniert. So<br />

bietet das System einige interessante Neuerungen<br />

rund um den Desktop, wie etwa die<br />

von der europäischen Union als Projekt geförderte<br />

semantische Suche Nepomuk, bei<br />

der Sie neben den bekannten Kriterien auch<br />

Meta-In for ma tio nen als Kriterium verwenden<br />

dürfen. Als Grundlage setzt Mandriva<br />

2010.2 auf Kernel 2.6.33 auf und bringt als<br />

Desktop neben KDE SC 4.4.3 die Gnome-Version<br />

2.30.0 mit. Dank des MSCE-Frameworks<br />

mit integrierter Kindersicherung eignet sich<br />

die Distribution auch für einen Internet-<br />

Rechner im Kinderzimmer. Lesen Sie<br />

mehr dazu ab Seite 6. Auf dem ersten<br />

Datenträger finden Sie die<br />

Live-Version Mandriva „One“<br />

zum Ausprobieren, auf der zweiten<br />

DVD die Installationsversion<br />

für 32- und 64-Bit-Systeme.<br />

Rund ein Jahr nach Erscheinen<br />

der ersten Alpha-Version des beliebten<br />

Multimediacenters legen<br />

die Entwickler nun die stabile Version<br />

XBMC 10.0 vor. Die Applikati-<br />

on läuft wahlweise auf Linux, Windows<br />

oder Mac OS X. Wer sie erst ausprobieren möchte,<br />

greift dagegen einfach zum Live-System, das auf<br />

Ubuntu basiert. XBMC bietet für alle Bereiche des<br />

Home-Entertainment ein passendes Modul an. Fehlende<br />

Funktionen rüsten Sie leicht über Plugins nach.<br />

Mit der Heft-DVD booten Sie XBMC 10.0 direkt vom<br />

Datenträger und haben so die Möglichkeit, sich einen<br />

Überblick über die Möglichkeiten zu verschaffen,<br />

ohne das installierte System zu verändern.<br />

Ebenfalls live testen Sie PinguyOS 10.10.1. Das einsteigerfreundliche<br />

System auf der Basis von Ubuntu<br />

nimmt Ihnen viele Konfigurationsschritte ab, mit denen<br />

Experten in der Regel eine Standardinstallation<br />

aufwerten. So haben Sie gleich nach dem ersten Start<br />

die Möglichkeit, ohne zusätzlichen Aufwand verschiedene<br />

Multimediaformate abzuspielen oder profitieren<br />

von der Integration von Java und Flash beim Surfen<br />

im Netz. Sie finden auf dem ersten Datenträger die<br />

Versionen für 32- und 64-Bit-Systeme, die Sie nicht<br />

nur im Live-Betrieb anschauen und testen können,<br />

sondern bei Gefallen gleich installieren.<br />

Ein Exemplar von Backtrack 4R2 sollte im digitalen<br />

Werkzeugkasten jedes sicherheitsbewussten Linux-<br />

Anwenders und Administrators liegen. Die Securityund<br />

Forensik-Distribution hat sich schon in zahllosen<br />

Einsätzen bewährt. Für die aktuell vorliegende Version<br />

brachten die Entwickler noch einmal viele Komponenten<br />

auf den neuesten Stand: Der Kernel 2.6.35.8<br />

hat neben verbesserten Mac80211-WLAN-Treibern<br />

auch USB-3.0-Support mit an Bord.<br />

Ein besonderes Schmankerl für Freunde des 3D-Modellings<br />

ist das Blender Video-Tutorial. Vom ersten<br />

Pixel bis zur fertigen Kreatur verfolgen Sie dabei in einem<br />

umfangreichen Video-Workshop, wie die Profis<br />

das Design und die Oberfläche eines futuristischen<br />

Wesens inklusive passender Landschaft gestalten –<br />

spannend und lehrreich in einem. (agr) ■<br />

NEUE PROGRAMME AUF DEM HEFT-DATENTRÄGER<br />

Wer regelmäßig <strong>Python</strong>-Programme schreibt,<br />

dem hilft eine maßgeschneiderte Entwicklungsumgebung<br />

bei vielen lästigen Handgriffen<br />

und räumt so den Weg frei, um die großen<br />

Ideen umzusetzen.<br />

Die IDE Eric4 gehört zu den besten freien<br />

Helfern für die beliebte Programmiersprache.<br />

Mit Templates, Codefragmenten und Syntax-<br />

Highlighting erleichtert sie die Arbeit und über-<br />

nimmt zugleich das Versionieren der Ergebnisse im Versionskontrollsystem<br />

Subversion. Mehr lesen Sie zu diesem<br />

praktischen Helfer ab Seite 24.<br />

Statt den Staub vom Wörterbuch zu pusten, greifen Sie<br />

lieber zu Ding 1.7. Der praktische Allrounder sollte auf<br />

keinem System fehlen, auf dem Sie mit Texten hantieren.<br />

Ganz nebenbei hilft er beim Übersetzen von Texten<br />

aus dem Deutschen ins Englische und umgekehrt. Einen<br />

Überblick der Funktionen bietet ein Artikel ab Seite 42.<br />

10<br />

02 | 11<br />

www.linux-user.de


SONDERAKTION!<br />

Testen Sie jetzt<br />

3 Ausgaben für<br />

NUR 3€<br />

MINIABO ohne Risiko!<br />

Jetzt schnell bestellen:<br />

Telefon: 07131 /2707 274<br />

Fax: 07131 / 2707 78 601<br />

E-Mail: abo@linux-user.de<br />

Web: www.linux-user.de/probeabo<br />

Mit großem Gewinnspiel<br />

(Infos unter: www.linux-user.de/probeabo)<br />

GEWINNEN SIE... DAS NAVIGATIONSGERÄT<br />

MIO MOOV SPIRIT V735 TV IM WERT VON 373,- EURO (UVP)<br />

Nur bis<br />

15.03.2011


HEFT-DVD<br />

PinguyOS 10.10<br />

PinguyOS 10.10<br />

bootfähig auf Heft-DVD<br />

PinguyOS – komfortable Distribution nicht nur für Einsteiger<br />

Gebrauchsfertig<br />

Vielen Linux-Distributionen haftet immer noch der Ruf an, sich nur für Geeks zu eignen.<br />

PinguyOS belegt eindrucksvoll, dass Linux längst reif auch für Anfänger ist. Erik Bärwaldt<br />

README<br />

PinguyOS, ein Ubuntu-<br />

Derivat mit konsequenter<br />

Ausrichtung auf dem<br />

Desktop, glänzt vor<br />

allem durch eine reichhaltige<br />

Software- und<br />

Multimedia-Ausstattung.<br />

Ubuntu ist eine der beliebtesten<br />

Linux-Distributionen überhaupt.<br />

Doch es gibt nichts, was nicht verbessert<br />

werden könnte, und so<br />

haben sich rund um die ohnehin<br />

schon große Ubuntu-Familie viele<br />

Derivate mit unterschiedlichen<br />

Schwerpunkten gebildet. Das relativ<br />

junge PinguyOS schreibt sich<br />

dabei die kompromisslose Bedienerfreundlichkeit<br />

des Desktops<br />

TECHNISCHE DATEN<br />

Name<br />

PinguyOS<br />

Version 10.10.1<br />

Basis<br />

Ubuntu 10.10 „Maverick Meerkat““<br />

Orientierung Einsteiger-Desktop<br />

Architektur i686, x86_64<br />

Release 17.11.2010<br />

Kernel 2.6.35<br />

Desktop<br />

Gnome 2.32.0 (modifiziert)<br />

X-Server 1.9.0<br />

Bootmanager Grub2 (1.98)<br />

auf die Fahnen und führt dazu<br />

Elemente aus verschiedenen Distributionen<br />

zusammen.<br />

PinguyOS laden Sie in der<br />

brandneuen Version 10.10.1 als<br />

etwa 1,4 GByte großes ISO-Image<br />

sowohl in einer 32-Bit- als auch in<br />

einer 64-Bit-Variante von der<br />

Homepage [1] herunter. Nach<br />

dem Brennen und Booten der<br />

DVD verzweigt das System zunächst<br />

in ein Auswahlmenü, mit<br />

dessen Hilfe Sie die Live-DVD<br />

auch in einem vereinfachten Grafikmodus<br />

starten können, falls<br />

Probleme mit der Bildschirmansteuerung<br />

auftreten. Dazu wählen<br />

Sie die Option xforcevesa - boot<br />

Live in safe graphics mode aus.<br />

Nach dem Laden des Systems<br />

präsentiert sich PinguyOS in einem<br />

ungewöhnlichen Outfit: Die<br />

leicht modifizierte Menüleiste<br />

von Gnome 2.32 ergänzen gleich<br />

zwei Dockleisten am linken und<br />

unteren Bildschirmrand. Im linken<br />

Dock findet sich dabei die<br />

Ordnerstruktur der eigenen Dateien,<br />

während die untere Dockleiste<br />

Starter für die wichtigsten<br />

Programme zusammenfasst.<br />

Das von Gnome her bekannte<br />

Hauptmenü mit den drei Punkten<br />

Anwendungen, Orte und System<br />

haben die Entwickler durch das<br />

Mintmenu des Ubuntu-Derivats<br />

Linux Mint ersetzt, das die drei<br />

Gnome-Menüs zusammenfasst.<br />

Zusätzlich zu diesen datei- und<br />

ordnerspezifischen Neuheiten<br />

präsentiert PinguyOS auf der Arbeitsoberfläche<br />

mittels des Systemmonitors<br />

Conky [2] ständig<br />

die wichtigsten Parameter des<br />

Computers in einem transparent<br />

gehaltenen Fenster.<br />

12 02 | 11<br />

www.linux-user.de


PinguyOS 10.10<br />

HEFT-DVD<br />

Falls Sie allerdings in Ihrem System<br />

eine ältere Grafikkarte betreiben,<br />

die noch kein Compositing<br />

unterstützt, dann startet Conky<br />

gelegentlich nicht. Auch die Docking-Leisten<br />

arbeiten in diesem<br />

Fall ohne Animationen beim Berühren<br />

mit dem Mauszeiger, weisen<br />

jedoch ansonsten keine Einschränkungen<br />

auf.<br />

Programmatisches<br />

Ein Klick auf das PinguyOS-Logo<br />

oben links in der Panelleiste fördert<br />

im sich öffnenden Mintmenu<br />

eine stattliche Anzahl an<br />

teils sehr ungewöhnlichen und<br />

unbekannten Programmen zutage.<br />

So finden Sie mit Ailurus [3]<br />

ein höchst nützliches Gnome-<br />

Tool, das mit einer intuitiv zu bedienenden<br />

grafischen Oberfläche<br />

das komplette System- und Software-Management<br />

enorm vereinfacht.<br />

Ailurus fasst dabei unterschiedlichste<br />

Einstellmöglichkeiten<br />

zusammen und entlastet Sie<br />

auf diese Weise von der Suche<br />

nach den entsprechenden Menüs<br />

oder Befehlen auf der Kommandozeile<br />

(Abbildung ).<br />

Mit Bleachbit [4] und dem Energiesparprogramm<br />

Granola hat<br />

PinguyOS weitere nützliche Utilities<br />

mit an Bord. Auch im multimedialen<br />

Bereich lassen<br />

Applikationen wie Handbrake<br />

[5], der Videoeditor<br />

Openshot [6], der lxBD-<br />

Player, VLC oder DeVeDe<br />

keine Langeweile aufkommen.<br />

Selbstverständlich<br />

bringt die Distribution<br />

auch die Standardprogramme<br />

wie OpenOffice,<br />

Firefox, Thunderbird,<br />

Rhythmbox und Totem in<br />

den jeweils aktuellen Versionen<br />

mit.<br />

Der Bildbearbeitungsbolide<br />

Gimp hingegen fehlt,<br />

und wie inzwischen unter<br />

Ubuntu üblich, ersetzen<br />

Applikationen wie Simple<br />

Scan und der Shotwell<br />

Photo Manager [7] die<br />

Klassiker Sane/ Xsane und<br />

den Bildbetrachter F-Spot. Da<br />

PinguyOS die meisten gebräuchlichen<br />

Audio- und Video-Codecs<br />

bereits von Haus aus mitbringt,<br />

steht dem multimedialen Vergnügen<br />

nichts im Wege.<br />

Daneben fällt die nahtlose Integration<br />

des Windows-Emulators<br />

Wine in der aktuellen Version 1.3<br />

auf, der es ermöglicht, eine stetig<br />

steigende Zahl von Windows-Programmen<br />

auch unter Linux auszuführen.<br />

Zusätzlich verfügt PinguyOS<br />

über zahlreiche Werkzeuge<br />

zum Dateimanagement, darunter<br />

insbesondere Such- und Indiziersoftware<br />

wie Gnome Do, Gloobus<br />

oder auch Catfish [8].<br />

Dauerhaftes<br />

Sofern Sie nach dem ersten Kennenlernen<br />

PinguyOS dauerhaft<br />

auf die heimische Festplatte packen<br />

möchten, aktivieren Sie die<br />

Installationsroutine mit einem<br />

Doppelklick auf das Desktop-Icon<br />

Install PinguyOS. Der von Ubuntu<br />

bekannte Installer führt Sie nun<br />

in wenigen Schritten zum Ziel.<br />

Dabei packt er mehr als 4 GByte<br />

an Daten auf die Platte, sodass<br />

eine ausreichend große Zielpartition<br />

angelegt sein will. Da der Installer<br />

die wichtigsten Systemparameter<br />

vorab prüft und bei zu geringen<br />

Kapazitäten Alarm schlägt,<br />

lassen sich diesbezüglich eventuelle<br />

Defizite noch vor der eigentlichen<br />

Installation beheben.<br />

Bei Systemen, auf denen bereits<br />

andere Linux-Distributionen oder<br />

weitere Betriebssysteme residieren,<br />

ist Vorsicht geboten: Pinguy-<br />

OS nutzt als Bootmanager die<br />

neue Version 1.98 von Grub (vulgo:<br />

Grub2) in einer an Ubuntu angepassten<br />

Variante. Im Gegensatz<br />

zum klassischen Grub erkennt er<br />

neue Dateisysteme oft nicht korrekt<br />

und bindet dann auch die<br />

vorhandenen Betriebssysteme<br />

nicht automatisch mit ins Bootmenü<br />

ein. In diesem Falle müssen<br />

Sie den Bootmanager Grub entsprechend<br />

manuell konfigurieren<br />

[9], um Ihre anderen Systeme<br />

weiterhin einsetzen zu können.<br />

Linguistisches<br />

Da PinguyOS von Haus aus lediglich<br />

Englisch beherrscht und auch<br />

trotz Einstellung der deutschen<br />

Sprache in der Installationsroutine<br />

keine vollständige Lokalisierung<br />

bietet, sollten Sie nach abgeschlossener<br />

Installation zunächst<br />

das deutsche Sprachmodul aktivieren.<br />

Dazu klicken Sie auf der<br />

Arbeitsoberfläche einfach auf das<br />

Icon Language Support, woraufhin<br />

Ailurus vereinfacht<br />

das Konfigurieren des<br />

Systems enorm.<br />

www.linux-user.de<br />

02 | 11 13


HEFT-DVD<br />

PinguyOS 10.10<br />

Auch proprietäre<br />

Treiber lassen sich unter<br />

PinguyOS automatisch<br />

installieren.<br />

Sie menügeführt beliebige Sprachen<br />

nachinstallieren können.<br />

Dazu benötigen Sie allerdings<br />

zwingend eine Internet-Verbindung,<br />

da der Installer die entsprechenden<br />

Module aus den Ubuntu-<br />

Repositories nachlädt.<br />

Im Test richtete PinguyOS eine<br />

bestehende DSL-Verbindung bei<br />

vorhandenem DHCP-Server automatisch<br />

ein. Bei Nutzung eines<br />

WLANs müssen Sie die entsprechenden<br />

Zugangsdaten manuell<br />

einstellen. Dazu klicken Sie im<br />

Mintmenu auf den Eintrag Control<br />

Centre im Abschnitt System und<br />

im sich daraufhin öffnenden Kontrollzentrum<br />

im Abschnitt Internet<br />

and Network auf den Eintrag<br />

Network Connections. Nun können<br />

Sie die nötigen Daten zum Verbindungsaufbau<br />

eingeben.<br />

Treibendes<br />

Insbesondere neue PCs und Notebooks<br />

bringen oft leistungsfähige<br />

3D-Grafikkarten mit, deren technische<br />

Dokumentation nur teilweise<br />

oder gar nicht offengelegt<br />

ist. Die Entwickler freier Treiber<br />

für solche Grafikkarten haben daher<br />

meist nicht die Möglichkeit,<br />

das Leistungsspektrum der Hardware<br />

voll auszuschöpfen. Ähnliches<br />

gilt auch für Winmodems<br />

oder andere proprietäre Komponenten.<br />

PinguyOS hat für diesen<br />

Fall die bei Ubuntu<br />

eingeführte Option<br />

des Nachladens proprietärer<br />

Treiber<br />

übernommen.<br />

Um zu prüfen, ob<br />

Ihr System mit<br />

Closed-Source-Treibern<br />

einen Leistungszuwachs<br />

erzielen<br />

kann, klicken Sie<br />

in PinguyOS einfach<br />

auf das Icon Zusätzliche<br />

Treiber auf dem<br />

Desktop. Die Prüfung<br />

des Systems,<br />

den passenden<br />

Download und die<br />

automatische<br />

Installa tion eines<br />

proprietären Treibers übernimmt<br />

dann ein entsprechender Installer,<br />

sodass nach einem Neustart<br />

die volle Leistung der fraglichen<br />

Hardware zur Verfügung steht<br />

(Abbildung ).<br />

Zusätzliches<br />

PinguyOS hat aufgrund seiner<br />

Herkunft vollen Zugriff auf die<br />

Repositories von Ubuntu und bietet<br />

somit einen der größten Softwarepools,<br />

den es unter Linux distributionsspezifisch<br />

gibt. Derzeit<br />

führt Synaptic mehr als 32 000<br />

Programme zur Installation auf.<br />

Damit dürften sich auch ausgefallene<br />

Software-Wünsche befriedigen<br />

lassen. Zusätzlich zu Synaptic<br />

bringt PinguyOS jedoch auch<br />

noch das für Einsteiger einfacher<br />

zu bedienende Ubuntu Software<br />

Center mit. Falls Ihnen die etwas<br />

rustikal wirkende Oberfläche von<br />

Synaptic nicht zusagt, können Sie<br />

also ohne Funktionsverlust auch<br />

zum übersichtlicheren Software<br />

Center wechseln.<br />

Fazit<br />

Mit PinguyOS platziert sich eine<br />

weitere interessante Ubuntu-Variante<br />

auf dem Markt, die vor allem<br />

durch das einfache Bedienkonzept<br />

auffällt. PinguyOS geht dabei eigene<br />

Wege, ohne sich äußerlich zu<br />

sehr an anderen Betriebssystemen<br />

zu orientieren. Durch eine<br />

geschickte Kombination etablierter<br />

Linux-Software und logischer<br />

Anordnung der Bedienelemente<br />

erzielt es einen höheren Komfort<br />

als andere Systeme. Dabei lässt<br />

die Software-Basis Ubuntu keine<br />

Wünsche offen, wenn es um die<br />

Vielfalt an Applikationen geht.<br />

Das System eignet sich daher<br />

sehr gut für Anfänger, die nicht<br />

erst tief in die Betriebssystem-<br />

Materie einsteigen wollen, sondern<br />

gleich einen vollständig<br />

nutzbaren Desktop vorfinden<br />

möchten. Treten trotzdem Fragen<br />

oder Wünsche auf, hilft ein gut<br />

bestücktes deutschsprachiges<br />

Forum im Internet weiter [10].<br />

Den insgesamt positiven Eindruck<br />

schmälern allerdings einige<br />

durch den experimentellen Charakter<br />

von Ubuntu verursachte<br />

Probleme bei der Hardware-Erkennung,<br />

die insbesondere bei<br />

nicht mehr ganz aktuellen Komponenten<br />

im Rechner gelegentlich<br />

Nacharbeit bei der Konfiguration<br />

erfordern können. (jlu) ■<br />

INFO<br />

[1] PinguyOS: http://pinguy-os.sourceforge.net<br />

[2] Systemmonitor Conky: Jan Rähm,<br />

„Lebenszeichen“, LU 02/ 2009, S. 46,<br />

http://www.linux-community.de/17363<br />

[3] Ailurus: Florian Effenberger, „Versteckte<br />

Optionen“, LU 01/ 2011, S. 56,<br />

http://www.linux-community.de/20657<br />

[4] Bleachbit: Erik Bärwaldt, „Sanfte<br />

Reinigung“, LU 08/ 2009, S. 64,<br />

http://www.linux-community.de/18942<br />

[5] Handbrake: Kristian Kißling, „Handbremse<br />

lösen“, LU 12/ 2008, S. 52,<br />

http://www.linux-community.de/17297<br />

[6] Video-Editor Openshot: Tim Schürmann,<br />

„Gegenschuss“, LU 04/ 2010, S. 46,<br />

http://www.linux-community.de/20481<br />

[7] Bildverwaltung Shotwell: Karsten Günther,<br />

„Gut archiviert“, LU 09/ 2010, S. 42,<br />

http://www.linux-community.de/21696<br />

[8] Suchmaschine Catfish: Karsten Günther,<br />

„Fischfutter“, LU 12/ 2010, S. 78,<br />

http://www.linux-community.de/21333<br />

[9] Grub2 einrichten: Andreas Bohle,<br />

„Ladehemmung“, LU 01/ 2010, S. 74,<br />

http://www.linux-community.de/19918<br />

[10] Deutsches PinguyOS-Forum:<br />

http://pinguyosusers.de/forum/index.php<br />

14 02 | 11<br />

www.linux-user.de


Duden für Linux?<br />

Aber sicher!<br />

Sie wollen z. B. Ihre<br />

Texte auf Rechtschreibung<br />

prüfen,<br />

Wörter direkt<br />

aus dem Text<br />

nachschlagen<br />

oder sich neu<br />

bewerben?<br />

Kein Problem!<br />

Diese und mehr Produkte für Linux fi nden Sie<br />

im Internet unter www.dudenshop.de.


AKTUELLES<br />

Distributionen<br />

Die Linux<br />

Mint Debian<br />

Edition<br />

glänzt mit<br />

einer soliden Basis und ausgeprägten<br />

Multimedia-Fähigkeiten.<br />

KURZ NOTIERT<br />

Für das WeTab stehen jetzt die<br />

Betriebssystemquellen und ein<br />

SDK zum Download bereit<br />

(http:// tinyurl. com/ lu1102-<br />

wetab). Der Hersteller 4tiito bietet<br />

zudem ein auf Vir tual box basierendes<br />

WeTab OS-Image sowie<br />

ein via USB-Stick einspielbares<br />

Recovery-System an.<br />

Mit dem Release von Salix OS<br />

13.1.2 LXDE gibt es jetzt erstmals<br />

eine 64-Bit-Ausgabe der<br />

auf Slackware basierenden Distribution<br />

mit dem leichtgewichtigen<br />

Desktop. Daneben bietet<br />

das Projekt (http:// www. salixos.<br />

org) auch Install- und Live-CD-<br />

ISOs für 32-Bit-Systeme an.<br />

Kurz vor Weihnachten ist die<br />

Sabayon 5.4 Gaming-Edition im<br />

DVD-Format erschienen, deren<br />

4,3 GByte großes ISO eine breite<br />

Auswahl an Spielen aus den Bereichen<br />

Arcade, Strategie und<br />

Shooter bereithält (http:// tinyurl.<br />

com/ lu1102-sabayon). Dazu gehören<br />

unter anderem FreeCiv,<br />

Micropolis, Neverball, Nexuiz,<br />

Scorched 3D, Simutrans, Torcs,<br />

Wesnoth und Warzone 2100.<br />

Das Ubuntu-Projekt hat seine<br />

Schriftart über die Projekt-Website<br />

http:// font. ubuntu. com sowie<br />

im Web-Schriftenverzeichnis<br />

von Google freigegeben. Der<br />

Font Ubuntu steht ab sofort in<br />

mehreren Schriftschnitten im<br />

Truetype-Format sowie als<br />

Quell code zum Download bereit.<br />

Linux Mint frischt die Debian-Edition auf<br />

Eigentlich baut das Linux-Mint-<br />

Projekt (http:// www.<br />

linuxmint. com) seine Dis-<br />

tribution auf Basis des jeweils<br />

aktuellsten Ubuntu-<br />

Releases, landete aber fang September<br />

An-<br />

mit einer stattdessen<br />

auf Debian<br />

„Testing“ beruhenden<br />

Mint-Variante<br />

einen vielbeachteten<br />

und gelobten<br />

Volltreffer. Dank<br />

der Integration pro pri etä rer<br />

Treiber und Codecs spielt die<br />

mit einem Gnome-Desktop ausgestattete<br />

Linux Mint Debian<br />

Edition (LMDE) von Haus aus<br />

die gängigsten Medienformate<br />

ab. Zudem handelt es sich um<br />

eine Rolling-Release-Distribution,<br />

die laufend aktualisier te<br />

Software einspielt und dadurch<br />

dedizierte Versionsupgrades<br />

überflüssig macht. Dank voller<br />

Kompatibilität zu Debian lässt<br />

sich dessen riesiger Paketfundus<br />

auch unter LMDE nutzen.<br />

Zu Weihnachten legten die<br />

Mint-Entwickler nun LMDE<br />

201012 nach, das den aktuellen<br />

Stand in ein Installationsimage<br />

bannt. Es bringt alle mit dem<br />

kurz zuvor erschienenen Mint<br />

10 eingeführten Features auch<br />

in den Debian-Ableger der Distribution.<br />

So werten beispielsweise<br />

die Integration der PPPund<br />

Mesa-Bibliotheken sowie<br />

der jeweiligen Tools die Connectivity<br />

und den Hardware-<br />

Support auf. Beim Sound-Support<br />

beseitigten die Entwickler<br />

Adressierungskonflikte zwischen<br />

Pulse Audio und Flash.<br />

Der Installer unterstützt jetzt<br />

auch Btrfs sowie mehrere Festplatten<br />

und kann den Bootloader<br />

statt im MBR auch in Partitionen<br />

ablegen. Der Software-<br />

Bestand wurde auf die neuesten<br />

Aptosid 2010-03 mit verbessertem Hardware-Support<br />

Das auf Debian „Sid“ basierende Aptosid 2010-03<br />

macht auch mit dem LXDE-Desktop eine gute Figur.<br />

Bei Aptosid (http:// aptosid.<br />

com) handelt es sich um eine<br />

Rolling-Release-Distribution<br />

auf Basis von Debian Unstable<br />

mit KDE-4-Desktop. Zu Weihnachten<br />

haben die Entwickler<br />

nun das Release 2010-03 mit<br />

dem Codenamen „Apate“ freigegeben,<br />

das auf dem Softwarestand<br />

von „Sid“ zum 26.<br />

Dezember 2010 beruht. Das<br />

hervorstechendste Merkmal<br />

des Releases ist der Kernel<br />

2.6.36.2, der zahlreiche Verbesserungen<br />

beim Hardware-<br />

Support mitbringt. Diese betreffen<br />

vor allem die Unterstützung<br />

von (USB-)WLAN-<br />

Chipsätzen,<br />

darunter solche<br />

von<br />

Atheros,<br />

Broadcom,<br />

Intel, Ralink<br />

sowie Realtek.<br />

Daneben<br />

bietet das<br />

verbesserte<br />

Kernel Mode<br />

Switching<br />

jetzt Unterstützung<br />

für<br />

ATI-Radeon-<br />

Versionen aufgefrischt, der<br />

Cgroups-Patch im Kernel soll<br />

für verbesserte Desktop-Reaktionszeiten<br />

sorgen.<br />

Aufgrund der positiven Reaktionen<br />

auf die Debian Edition<br />

und des großen Zuspruchs seitens<br />

der Anwender macht das<br />

Linux-Mint-Projekt seinen ursprünglich<br />

als Experiment<br />

deklarier ten Debian-Ableger<br />

nun wohl zur festen Einrichtung.<br />

Zwar erwähnen die Release<br />

Notes das nicht explizit,<br />

doch es gibt diesmal anders als<br />

beim Erstling neben der 32-Bit-<br />

Ausgabe auch eine 64-Bit-Edition.<br />

Zudem ist bereits die Rede<br />

von weiteren Versionen mit anderen<br />

Desktops, insbesondere<br />

mit KDE SC 4. Eine Liste der<br />

Download-Mirrors für die<br />

knapp 1 GByte großen LMDE-<br />

ISO-Images finden Sie unter<br />

http:// www. linuxmint. com/<br />

download_lmde.php.<br />

und Intel-Grafik sowie DRI-<br />

Support für ATI-Radeon-Chipsätze<br />

bis r7xx. Aktualisierungen<br />

erfuhren zudem auch<br />

der X-Server (X.org 7.5), der<br />

KDE-Desktop (KDE SC 4.4.5)<br />

und der Webbrowser Iceweasel<br />

(3.5.16). Das Projekt offeriert<br />

drei verschiedene Versionen<br />

der Distribution in 32- und<br />

64-Bit-Ausführungen als ISO-<br />

Image (http:// tinyurl. com/<br />

lu1102-aptosid). Bei der als<br />

„KDE-full“ bezeichneten Variante<br />

(2 GByte) handelt es sich<br />

um eine kombinierte 32-/64-<br />

Bit-Installer-DVD. Als separate<br />

32- und 64-Bit-Versionen gibt<br />

es diese Spielart auch als<br />

„KDE-lite“ (jeweils rund 600<br />

MByte). Ebenfalls in 32- und<br />

64-Bit-Ausführung existiert<br />

noch eine Ausgabe mit LXDE-<br />

Desktop (je 500 MByte).<br />

16<br />

02 | 11<br />

Das Neueste rund um Linux, aktuelle Kurztests und Artikel aus<br />

<strong>LinuxUser</strong> finden Sie täglich auf www.linux-community.de


Distributionen<br />

AKTUELLES<br />

XBMC 10.0 mit mehr Formaten und Plugins<br />

Nach fast einem Jahr Entwicklungszeit<br />

erschien Mitte<br />

Dezember die finale Version<br />

10.0 „Dharma“ des freien<br />

Mediacenters XBMC (http://<br />

xbmc.org). Sie spielt Videound<br />

Audiodateien verschiedenster<br />

Formate ab und präsentiert<br />

Bildsammlungen als<br />

Diaschauen. Dabei erlaubt<br />

XBMC das Fernsteuern via<br />

iPhone oder Android-Smartphones.<br />

Die dafür benötigten<br />

Apps stehen in den jeweiligen<br />

App-Stores von Android und<br />

Apple zum kostenlosen Download<br />

bereit. XBMC gibt es sowohl<br />

als Standalone-Version<br />

in Form einer installierbaren<br />

Live-CD auf Ubuntu-Basis<br />

(auch auf der Heft-DVD dieser<br />

Ausgabe) als auch als nachinstallierbare<br />

Anwendung für<br />

Linux, Windows und Mac OS X.<br />

XBMC versteht sich nicht nur<br />

als Mediaplayer für lokale Dateien,<br />

sondern bietet auch ein<br />

breit gefächertes Funktionsspektrum<br />

zum Darstellen und<br />

Abspielen von Multimediadaten<br />

aus dem Internet. Die<br />

dafür benötigten Schnittstellen<br />

installieren Sie als Plugin<br />

nach. Mehrere Dutzend davon<br />

stehen alleine zur Wiedergabe<br />

von Filmen bereit, aber auch<br />

für den Zugriff auf Bilddatenbanken<br />

wie Flickr oder Picasaweb.<br />

Ebenfalls in Form von<br />

Plugins bietet XBMC verschiedene<br />

Downloadmanager wie<br />

jDownloader, Transmission<br />

oder rTorrent an, die es Ihnen<br />

ermöglichen, im Torrent-<br />

Netzwerk gehostete Dateien<br />

direkt herunterzuladen und<br />

danach mit dem Videoplayer<br />

abzuspielen. An Codec-Unterstützung<br />

lässt die Suite kaum<br />

Wünsche offen. Sie spielt Videodateien<br />

unter anderem<br />

in den<br />

Formaten<br />

H.263/ 4,<br />

MPEG-1,<br />

MPEG-4<br />

(Xvid, DivX),<br />

Realvideo und<br />

Quicktime ab.<br />

An Audio-<br />

Codecs bietet<br />

die Software<br />

auch MP3,<br />

OGG, WMA,<br />

APE und FLAC. Die aktuelle<br />

Version unterstützt darüber<br />

hinaus Googles neues Videoformat<br />

WebM/ VP8. Eine<br />

Übersicht aller unterstützten<br />

Formate finden Sie im XBMC-<br />

Wiki. (jlu) ■<br />

XBMC, eine der ausgereiftesten<br />

Mediacenter-Lösungen für Linux,<br />

glänzt in Version 10.0 „Dharma“<br />

mit Unterstützung für noch mehr<br />

Formate und einem ausgefeilten<br />

neuen Plugin-Konzept.<br />

1. Lernen Sie!<br />

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

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

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

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

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

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

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

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

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

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

2. Ineffiziente Arbeit nicht akzeptieren!<br />

Je spezialisierter Sie arbeiten, desto weniger<br />

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

Unternehmen. Wir stellen deshalb Gruppen<br />

zusammen, in denen Sie neben hilfsbereiten<br />

Kollegen mit Š hnlichen Kenntnissen an IHREM<br />

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

anwesend.<br />

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

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

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

3. Hintergrund<br />

Wer den riesigen OpenSource-Baukasten schnell<br />

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

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

mit seinen Projekten vorankommen will, der<br />

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

Wir sind eine der erfolgreichsten Schulungseinrichtungen<br />

im gesamten Bereich ã OpenSourceÒ<br />

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

Siehe www.linuxhotel.de


AKTUELLES<br />

Neues rund um Linux<br />

Knights für KDE SC 4 jetzt als Stable-Release 2.2.0<br />

Mit Knights 2.2.0 liegt jetzt<br />

eine erste offizielle stabile<br />

Version des ends für KDE SC 4<br />

Schach-Frontvor.<br />

Es erlaubt das<br />

Spielen gegen<br />

menschliche Gegner<br />

auf derselben Maschine<br />

oder dem Free<br />

Internet Chess Server<br />

FICS sowie gegen jede<br />

Xboard-kompatible<br />

Schach-Engine. Dabei bietet es<br />

eine volle Regelüberprüfung,<br />

zeigt auf Wunsch mögliche eigene<br />

Züge und wahrscheinliche<br />

Reaktionen des Gegners auf<br />

und kann vor gefährlichen Stellungen<br />

warnen.<br />

Optisch bietet Knights 2.2.0<br />

vier Themes vom klassischschlichten<br />

2D-Schwarzweiß-<br />

Look bis zu verspielten animierten<br />

(ab Qt 4.6) Pseudo-<br />

3D-Figuren in mittelalterlicher<br />

Aufmachung. Die optionalen<br />

Schachuhren für die beiden<br />

Kontrahenten borgt Knights<br />

wahlweise in analogen oder digitalen<br />

Varianten beim Plasma-<br />

Desktop. Den Quellcode und<br />

Binärpakete von Knights 2.2.0<br />

für Fedora, Mandriva, Open-<br />

Suse und Ubuntu finden Sie<br />

auf KDE-Apps.org (http://<br />

tinyurl. com/ lu1102-knights).<br />

KURZ NOTIERT<br />

Der deutsche Server-Spezialist<br />

Thomas Krenn AG hat dem freien<br />

Flugsimulationsprojekt Flightgear<br />

eine Workstation aus dem<br />

eigenen Haus mit zwei Sechskern-Xeons,<br />

vier Geforce-GTX-<br />

Grafikkarten und reichlich RAM<br />

gespendet. Die Maschine dient<br />

dem Flightgear-Team zur Weiterentwicklung<br />

des Simulators.<br />

Ein Whitepaper beschreibt, wie<br />

das Projekt den Rechner einsetzt<br />

(http:// tinyurl. com/ lu1102-krenn).<br />

Anfang Dezember wurde via Bundeskartellamt<br />

(Aktenzeichen: B5-<br />

148/ 10) bekannt, wer außer<br />

Microsoft noch hinter der geheimnisvollen<br />

CPTN Holdings steht, die<br />

Novell bei der Übernahme durch<br />

Attachmate fast 900 Patente abkaufen<br />

will: Bei den weiteren Partnern<br />

handelt sich um EMC, Oracle<br />

und Apple (http:// tinyurl. com/<br />

lu1102-cptn). Die Viererbande will<br />

sich mit der Akquisition offenbar<br />

für die nächs te Runde des laufenden<br />

Patentkriegs rund um<br />

Mobilgeräte und speziell Android<br />

bewaffnen.<br />

Mit Cloud Computing und insbesondere<br />

Google wird GNU-Altmeister<br />

Richard M. Stallman<br />

wohl nie mehr richtig warm.<br />

Nachdem er vor zwei Jahren<br />

schon GMail als „schlimmer als<br />

Blödheit“ apostrophiert hatte,<br />

warnt er nun, Googles Chrome-<br />

OS verleite zu „careless computing“,<br />

dem unvorsichtigen Umgang<br />

mit den eigenen Daten<br />

(http:// tinyurl. com/ lu1102-rms).<br />

Oracle gibt Virtualbox 4 frei<br />

Linux-Kalender 2011 von LinuxCommunity.de<br />

Aus den zehn schönsten Fotos<br />

der Leser und zwei redaktionellen<br />

Beiträgen hat unsere<br />

Schwester-Website Linux-Community<br />

einen Jahreskalender<br />

Nach vier kurz aufeinander folgenden<br />

Betas schickte die neue<br />

Virtualbox-Mutter Oracle zu<br />

Weihnachten das finale<br />

Virtualbox 4 (http:// www.<br />

virtualbox. org) in die Welt und<br />

betont als wichtigste Neuerung<br />

deren modulares Konzept: In<br />

der aktuellen Version kommt<br />

die Virtualisierungssoftware in<br />

einzelnen Paketen daher, von<br />

denen lediglich das Basispaket<br />

quelloffen ist. An Erweiterungen<br />

liegt erst einmal nur ein sogenanntes<br />

Extension-Paket von<br />

Oracle vor, das Funktionen<br />

zum Einbinden physikalischer<br />

USB-Ports sowie das Virtualbox<br />

Remote Desktop Protocol<br />

VRDP mitbringt. Sie erkennen<br />

dieses wie andere Virtualbox-<br />

Extension-Pakete an der Endung<br />

.vbox-extpack. Weitere<br />

Neuheiten zeigen sich direkt im<br />

grafischen Frontend, das jetzt<br />

Virtualbox Manager heißt. Die<br />

mit den wichtigsten Linux-<br />

Terminen 2011 zusammengestellt.<br />

Er enthält sämtliche Erscheinungsdaten<br />

unserer Zeitschriften<br />

Admin-Magazin,<br />

Der LinuxCommunity-Kalender 2011 enthält alle wichtigen Linux-<br />

Termine und steht als PDF- und ODF-Dokument zum Download bereit.<br />

GUI ermöglicht nun zum Beispiel<br />

größenverstellbare Fenster<br />

für Gastmaschinen oder<br />

sortierbare VM-Listen. Unter<br />

der Haube haben sich die Orte<br />

geändert, an denen die<br />

Virtualbox ihre Dateien lagert:<br />

VMs sowie deren Konfigurationsdateien<br />

und Disk-Images<br />

speichert der VM-Wizard nun<br />

im Ordner VirtualBox VMs/<br />

VM-Name/ im Home-Verzeichnis<br />

des Anwenders ab.<br />

EasyLinux, <strong>LinuxUser</strong>, Linux-<br />

Magazin, Open Source Spezial<br />

und Ubuntu User, die Termine<br />

der wichtigsten Linux-Veranstaltungen<br />

sowie die geplanten<br />

Releases der großen Distributionen.<br />

Das Kalender-PDF<br />

(http:// tinyurl. com/<br />

lu1102-lcpdf) im praktischen<br />

A4-Format lässt sich zu Hause<br />

ausdrucken, zusammenheften<br />

und an die Wand hängen. Das<br />

lockere Layout bietet auch<br />

noch Platz für eigene Notizen.<br />

Zudem steht der Kalender auch<br />

im „Quellcode“ als OpenOffice-<br />

Tabellendokument zum Download<br />

bereit (http:// tinyurl. com/<br />

lu1102-lcooo), sodass Sie ihn<br />

beliebig ergänzen oder umbauen<br />

können.<br />

18<br />

02 | 11<br />

Das Neueste rund um Linux, aktuelle Kurztests und Artikel aus<br />

<strong>LinuxUser</strong> finden Sie täglich auf www.linux-community.de


Cirkuit zeichnet Schaltpläne und Graphen<br />

Mit Cirkuit stellt der KDE-<br />

Entwickler Matteo Agostinelli<br />

eine neue Anwendung<br />

zum Zeichnen von Schaltplänen<br />

und Graphen vor.<br />

Das Programm war ursprünglich<br />

als Frontend für<br />

die Circuit-Makros gedacht,<br />

die Schaltpläne und andere<br />

Strichgrafiken zur Verwendung<br />

in LaTeX-Dokumenten<br />

produzieren. Die Editorkomponente<br />

von Cirkuit<br />

stammt aus Kate und bietet<br />

Syntax-Highlighting. Cirkuit,<br />

das mittlerweile in<br />

Version 0.3.1.1 vorliegt,<br />

zeigt eine Echtzeit-<strong>Vorschau</strong><br />

und exportiert das Ergebnis<br />

wahlweise in den Formaten<br />

PDF, EPS, SVG, PNG, JPEG<br />

oder Pstricks. Mittlerweile<br />

kann das KDE-4-Programm<br />

auch Gnuplot und Tikz/ PGF<br />

als Backends benutzen, um<br />

Graphen zu generieren. Mittels<br />

der Erweiterung Circui-<br />

Tikz lassen sich elektrische<br />

Schaltpläne erstellen. Die<br />

Software ist auf KDEs Projekt-Plattform<br />

erhältlich, wo<br />

unter anderem der Quelltext<br />

per Git verfügbar ist.<br />

Den Quelltext des unter<br />

GPLv2 lizenzierten Cirkuit<br />

erhalten Sie als Tarball über<br />

die Projekthomepage<br />

(http:// wwwu. uni-klu. ac. at/<br />

magostin/ cirkuit. html).<br />

Dort findet sich auch eine<br />

ausführliche Anleitung zum<br />

Übersetzen des Programms.<br />

Top-Performance Neues rund um Linux zum AKTUELLES Tiefpreis!<br />

Virtuelle Server<br />

netclusive Virtuelle Server:<br />

Mit Cirkuit erstellen Sie nicht nur einfache Zeichnungen und<br />

Schaltpläne, sondern auch anspruchsvollere Grafiken.<br />

X.org 7.6 tauscht HAL und Xlib aus<br />

Mit Version X11R7.6 hat die<br />

X.org-Foundation nach rund<br />

einem Jahr Entwicklung ein<br />

Update des modularen X<br />

Window System veröffentlicht<br />

(http:// www. x. org/<br />

releases/ X11R7. 6/). Zu den<br />

Neuerungen der Version 7.6<br />

zählt unter Linux die nun<br />

vollzogene Umstellung von<br />

HAL auf Udev für die Erkennung<br />

von Eingabegeräten<br />

und beim Hot-Plug. Das X-<br />

Protocol C-Language Binding<br />

(XCB) ersetzt die Xlib, wovon<br />

sich die Entwickler ein besseres<br />

Threading nebst geringerer<br />

Systembelastung und besseren<br />

Reaktionszeiten versprechen.<br />

Zudem brachten<br />

sie die Dokumentation auf<br />

den aktuellen Stand, sie liegt<br />

den Modulen nun in einheitlichem<br />

Format bei. (jlu) ■<br />

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

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

• 5 TB Traffic inklusive<br />

• SSL-Zertifikat inklusive<br />

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

• 100 % Backup-Speicher<br />

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

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

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

6 Monate<br />

kostenlos<br />

danach ab 12,99 €*<br />

0800 638 2587 | www.netclusive.de<br />

* Aktion 6 Monate kostenlos bis 28.02.2011. Nach 6 Monaten regulärer monatlicher Grundpreis:<br />

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

(Aktion 6 Monate kostenlos entfällt) bzw. 24 Monate (6 Monate kostenlos). Zzgl. 9,99 € einmalige Einrichtungsgebühr.<br />

Die Abrechnung erfolgt vierteljährlich. Alle Preise inkl. MwSt.


AKTUELLES<br />

News: Hardware<br />

JJJJI<br />

Raidons GT1640-1S-SB3<br />

ist das ideale Gehäuse<br />

für Anwender, die maximale<br />

Festplattengeschwindigkeit<br />

in allen<br />

Umgebungen wollen.<br />

Festplattengehäuse mit eSATA und USB 3.0<br />

Von Raidon erreicht uns das erste<br />

Gerät mit eSATA- und USB-3.0-<br />

Schnittstelle, das externe Gehäuse<br />

Geartank GT1640-1S-SB3 für eine<br />

Festplatte im 3,5-Zoll-Format.<br />

Das Fehlen einer eSATA-Schnittstelle<br />

war der Hauptkritikpunkt<br />

beim großen USB3-Peripherie-<br />

Test in LU 08/ 2010, da der Anwender<br />

in Systemen ohne USB 3.0<br />

auf das sehr langsame USB 2.0 zurückgreifen<br />

muss.<br />

Wer sich ein USB-3.0-<br />

Gerät zulegt, der hat es<br />

gerne<br />

schnell –<br />

mobile Geräte<br />

kommen<br />

jedoch auch an<br />

älteren Systemen<br />

zum Einsatz, die<br />

meist keine USB-3.0-<br />

Schnittstelle, dafür aber<br />

oft eSATA haben. Hier<br />

schaffen Lösungen wie das Geartank<br />

GT1640-1S-SB3 von Raidon<br />

Abhilfe. Im Handel ist das Gehäuse<br />

kaum teurer als reine USB-<br />

3.0-Geräte, verfügt jedoch nicht<br />

nur über einen USB-3.0-Anschluss<br />

(abwärtskompatibel zu USB 2.0),<br />

sondern auch über einen eSATA-<br />

Port. Dieser ist sogar als eSATA II<br />

(auch „3G“ für 3 GBit/ s genannt)<br />

für Durchsatzraten jenseits der<br />

150 MByte/ s ausgelegt.<br />

Beim Test mit einer Intel-Postville-SSD<br />

ließ sich die volle<br />

Geschwindigkeit erzielen, etwa<br />

170 MByte/ s sowohl via eSATA<br />

als auch USB 3.0. Geschwindigkeiten<br />

jenseits von 130 MByte/ s<br />

bleiben allerdings SSD-Festplatten<br />

vorbehalten, die im 2,5-Zoll-<br />

Formfaktor daherkommen und<br />

sich daher zwar ins Geartank<br />

GEARTANK GT1640-1S-SB3<br />

GT1640-1S-SB3 stecken, dort<br />

aber nicht verschrauben lassen.<br />

Das den Schlafmodus beherrschende<br />

GT1640-1S-SB3 nutzt einen<br />

ASM1051-Chip von AS Media.<br />

Das lüfterlose Gerät führt die<br />

Wärme über das Aluminiumgehäuse<br />

ab. Es ist als Tray ausgeführt,<br />

in den man die Platte wie in<br />

einem RAID montiert, um sie mit<br />

einem Handgriff wechseln zu können.<br />

Für Einzelplatten erscheint<br />

das Konzept etwas übertrieben.<br />

Entgegen der Angaben auf der<br />

Webseite, dass das GT1640-1S-<br />

SB3 Platten bis zu 2 TByte Kapazität<br />

unterstützt, kommt der Chip<br />

selbst prinzipiell auch mit größeren<br />

Platten zurecht.<br />

Hersteller: Raidon<br />

Produkt: externes Festplattengehäuse<br />

Preis: ca. 70 Euro<br />

Anschlüsse: eSATA/ USB 3.0<br />

Lieferumfang: Gehäuse, Standfuß, Netzteil, eSATA/ USB3-Kabel<br />

Webseite: http:// www. raidon. com. tw/ content. php? sno=0000094& p_id=70<br />

JJJJI<br />

Verbatims Quad-Interface-Festplatte<br />

lässt<br />

sich an praktisch jeden<br />

Rechner anschließen<br />

und bietet überzeugende<br />

Performance.<br />

Quad-Interface-Festplatte mit guter Ausstattung<br />

Platten mit vielen Anschlüssen<br />

sind schwer zu finden – Lacie und<br />

Onnto sind die bekanntesten<br />

Hersteller in dieser Kategorie.<br />

Eine der seltenen Quad-Interface-<br />

Platten erreicht uns vom altehrwürdigen<br />

Speichermedien-Hersteller<br />

Verbatim, der seit einiger<br />

Zeit auch Festplatten im Pro-<br />

gramm führt. Die ganz schlicht<br />

nur face External<br />

„Quad-Intersogar<br />

das Hard Drive“<br />

genannte<br />

Platte mit einer<br />

Kapazität<br />

von 1 TByte<br />

kommt mit<br />

vielen Kabeln<br />

daher: eSATA,<br />

Firewire 400,<br />

Firewire 800,<br />

USB 2.0 und<br />

in<br />

vielen Laptops verbaute 4-Pin-<br />

Firewire 400 (auch als iLink bezeichnet)<br />

legt Verbatim bei.<br />

Die Platte bietet das Maximum<br />

an Anschlüssen: Neben USB 2.0,<br />

eSATA und Firewire 400 findet<br />

sich auch zweimal Firewire 800<br />

für den Festplattenbetrieb in<br />

Reihe. Das integrierte Netzteil<br />

macht die mit Standfuß gelieferte<br />

Platte allerdings deutlich größer<br />

und schwerer als andere Geräte.<br />

Dafür versieht der kleine integrierter<br />

Lüfter seinen Dienst beinahe<br />

geräuschlos, das wertig wirkende<br />

gebürstete Gehäuse aus<br />

eloxiertem Aluminium wird selbst<br />

unter Last nur handwarm. Im<br />

Performancetest überzeugt die<br />

Verbatim-Platte mit Lesegeschwindigkeiten<br />

von 32 MByte/ s<br />

für USB 2.0, 39 MByte/ s für Firewire<br />

400, 76 MByte/ s für Firewire<br />

800 und 102 MByte/ s für<br />

eSATA. Einziger Kritikpunkt, der<br />

allerdings auch für die Konkurrenz<br />

gilt: Es gibt kein USB 3.0.<br />

Der Preis wirkt für eine 1-TByte-<br />

Platte hoch, erscheint für eine<br />

Quad-Interface-HDD allerdings<br />

angemessen; Leergehäuse hierfür<br />

kosten meist rund 50 bis 60 Euro.<br />

QUAD-INTERFACE EXTERNAL HARD DRIVE<br />

Hersteller: Verbatim<br />

Produkt: 3,5-Zoll-Festplatte<br />

Preis: ca. 110 Euro<br />

Spezifikationen: 1 TByte, 1,46 kg, Lesegeschwindigkeit: 32 MByte/ s USB 2.0,<br />

39 MByte/ s FW400, 76 MByte/ s FW800, 102 MByte/ s eSATA<br />

Webseite: http:// tinyurl. com/ verbatim-quad<br />

20 02 | 11<br />

www.linux-user.de


News: Hardware<br />

AKTUELLES<br />

Flinke Hybrid-Festplatte mit 4 GByte SSD-Cache<br />

Bei Seagates Momentus-XT-Serie<br />

handelt es sich um Festplatten<br />

mit 500, 320 oder 250 GByte<br />

Kapazität, die zusätzlich 4 GByte<br />

SSD-Speicher (SLC-NAND) integrieren.<br />

Der SSD-Lesecache puffert<br />

oft gelesene Dateien (etwa beim<br />

System- oder Programmstart) automatisch,<br />

sodass diese mit SSD-<br />

Geschwindigkeit zur Verfügung<br />

stehen. Anders als der nur unter<br />

Windows nutzbare Hybrid-Vorgänger<br />

Momentus XP, arbeitet die<br />

MOMENTUS XT 500 GB<br />

XT auf Blockebene und funktioniert<br />

daher mit allen Datei- und<br />

Betriebssystemen.<br />

Im Test stoppten wir die Bootzeit<br />

von Ubuntu 10.10 mit automatisch<br />

startendem OpenOffice<br />

Writer, Calc und Impress sowie<br />

Gimp, Shotwell (mit 550 Bildern),<br />

PiTiVi und Firefox. Während eine<br />

3,5-Zoll-Barracuda-Festplatte dafür<br />

36 Sekunden benötigte,<br />

brauchte eine Intel-SSD des Typs<br />

X25-V lediglich 18 Sekunden. Die<br />

Hersteller: Seagate<br />

Produkt: 2,5-Zoll-Festplatte<br />

Preis: ca. 120 Euro<br />

Spezifikationen: 500 GByte HDD, 4 GByte SSD, 32 MByte Cache, 7200 U/ min,<br />

SATA II/ 3G, Lesen 102 MByte/ s (Hdparm) Schreiben 81 MByte/ s (Nautilus)<br />

Webseite: http:// tinyurl. com/ lu1210-momentus-xt<br />

sehr leise Momentus XT lag jedoch<br />

nur knapp dahinter: Beim<br />

ersten Start, bei dem der SSD-<br />

Cache noch nicht griff, benötigte<br />

sie noch 42 Sekunden. Der zweite<br />

Start dauerte noch 27 Sekunden,<br />

beim dritten vergingen nur noch<br />

21 Sekunden. Der für System wie<br />

Anwender völlig transparente<br />

Hyb rid-Ansatz funktioniert<br />

auch in vielen anderen Szenarien,<br />

in denen SSDs<br />

brillieren. Die<br />

Seagate Momentus<br />

XT präsentiert<br />

sich damit<br />

als ideale Wahl für alle,<br />

die mit SSD liebäugeln, aber<br />

weder Kompromisse bei der Plattengröße<br />

eingehen, noch Unsummen<br />

zahlen wollen.<br />

JJJJI<br />

Die Hybrid-Platte Momentus<br />

XT bietet zum erschwinglichen<br />

Preis viel<br />

Platz und in vielen Fällen<br />

SSD-Performance.<br />

Neuer Black-Edition-Quadcore von AMD<br />

AMD stellt als neues Topmodell<br />

der Vierkern-Serie nun<br />

den Phenom II X4 970 Black<br />

Edition mit 3,5 GHz Taktrate<br />

vor. Für Großabnehmer kostet<br />

die CPU 185 US-Dollar, 14 Dollar<br />

mehr als der mit 3,4 GHz<br />

getaktete Phenom II X4 965<br />

BE. Außer der angehobenen<br />

Taktrate bleibt beim X4 970 BE<br />

ansonsten alles beim Alten.<br />

Wie bei allen „Black Editions“<br />

lässt sich der Taktmultiplikator<br />

frei einstellen. Unser Testmodell<br />

weist<br />

den bekannten<br />

„Deneb“-<br />

Kern vom<br />

Januar 2009<br />

auf. Da sich<br />

außer dem<br />

Takt nichts<br />

ändert, fällt auch die Performance<br />

entsprechend aus: Die<br />

2,9 Prozent mehr Takt setzt<br />

der X4 970 BE im LUbench-<br />

CPU-Test in eine Mehrleistung<br />

von 2,7 Prozent zum Vorgänger<br />

X4 965 BE um (546 statt<br />

532 Punkte). Damit bewegt<br />

sich der Phenom II X4 970 BE<br />

in derselben Leistungsklasse<br />

wie der 11 US-Dollar teurere,<br />

aber deutlich Strom sparendere<br />

Core i7 750 von Intel<br />

(550 Punkte). (jlu) ■<br />

JJJJI<br />

Der Phenom II X4 970<br />

Black Edition liefert bei<br />

fast identischem Preis<br />

etwas mehr Leistung<br />

als der Vorgänger,<br />

schluckt aber deutlich<br />

weniger Strom.<br />

openbook<br />

online!<br />

NEU<br />

Linux, Ausgabe 2011<br />

1302 S., 4. Auflage 2011, mit 2 DVDs, 39,90 €<br />

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

NEU<br />

<strong>Einstieg</strong> in Ubuntu 10.10<br />

»Maverick Meerkat«<br />

412 S., 4. Auflage 2011, mit DVD, 19,90 €<br />

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

Linux-Know-how<br />

Linux-Server<br />

www.GalileoComputing.de<br />

GIMP 2.6<br />

PHENOM II X4 970 BLACK EDITION<br />

Hersteller: AMD<br />

Produkt: CPU<br />

Spezifikationen: Sockel AM2+/ AM3, K10-Architektur, L2/ L3-Cache<br />

512 KByte/ 6 MByte, Strukturbreite 45nm, TDP 125 Watt<br />

LUbench-Punkte (Ubuntu 9.04, 64 Bit): 546<br />

Webseite: http:// tinyurl. com/ phenomx4-970be<br />

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

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

920 S., 2010, komplett in Farbe, mit DVD, 49,90 €<br />

» www.GalileoDesign.de/2395<br />

Wissen, wie’s geht.<br />

www.linux-user.de<br />

02 | 11 21


AKTUELLES<br />

Angetestet<br />

JJJII<br />

Mount_dd bindet ISOund<br />

Festplatten-Images<br />

mit wenigen Mausklicks<br />

ins System ein und erleichtert<br />

so den Zugriff.<br />

ISOs und HDD-Images einbinden mit Mount_dd<br />

Mobile Datenträger wie CDs oder<br />

USB-Sticks binden aktuelle Linux-<br />

Distributionen zwar selbstständig<br />

ins System ein, beim Einhängen<br />

von ISO- oder Festplatten-Images<br />

muss man aber noch selbst Hand<br />

anlegen. Mit Mount_dd steht jetzt<br />

ein kompaktes Shell-Skript zur<br />

Verfügung, das die einzelnen<br />

Mount-Schritte hinter einer übersichtlichen<br />

Oberfläche zusammenfasst.<br />

Für die grafische Oberfläche<br />

greift das Tool auf Zenity<br />

zurück. Da unter<br />

Linux nur Benutzer<br />

mit administrativen<br />

Rechten Geräte oder<br />

Images in den Verzeichnisbaum<br />

einhängen<br />

dürfen, prüft<br />

Mount_dd direkt<br />

beim Start, ob Sie<br />

über die erforderlichen<br />

Privilegien<br />

verfügen. Ist das der Fall, startet<br />

das Tool mit einer Funktionsauswahl.<br />

Sie haben die Möglichkeit,<br />

ein Image lesend oder schreibend<br />

einzubinden, ein ISO einzuhängen<br />

oder ein bereits integriertes Image<br />

wieder aus dem Verzeichnissystem<br />

zu entfernen. ISO-Images, also der<br />

Abzug einer CD oder DVD, lassen<br />

sich grundsätzlich nur für den Lesezugriff<br />

einbinden. Mit dd erzeugte<br />

Festplattenabbilder dürfen<br />

Sie auch zum Beschreiben einbinden<br />

und nachbearbeiten. Image-<br />

Formate wie AFF, das Advanced<br />

Forensics Format, oder das Expert<br />

Witness Format EWF bindet<br />

Mount_dd wiederum ausschließlich<br />

für den Lesezugriff ein: Da es<br />

sich hier um Formate zur forensischen<br />

Beweissicherung handelt,<br />

wäre jeder Schreibzugriff katastrophal.<br />

Haben Sie sich für eine der<br />

Mount-Optionen entschieden,<br />

öffnet Mount_dd nacheinander<br />

verschiedene Dateidialoge, in denen<br />

Sie das einzubindende Image<br />

und den Einhängepunkt im Verzeichnisbaum<br />

auswählen. Nach<br />

dem Einbinden des Images öffnet<br />

Mount_dd außerdem den Nautilus<br />

mit dem Verzeichnis des Einhängepunkts.<br />

Bevorzugen Sie einen<br />

anderen Dateimanager, müssen<br />

Sie das Mount_dd-Skript entsprechend<br />

modifizieren.<br />

Mount_dd selbst beendet sich<br />

nach erfolgreichem Einbinden<br />

eines Images nicht, sondern kehrt<br />

in die Startauswahl zurück. Dort<br />

beenden Sie das Tool gegebenenfalls<br />

über die Stop-Option.<br />

MOUNT_DD 1.3<br />

Lizenz: OSL<br />

Quelle: http:// netsorcist. be/<br />

freebieken/<br />

JJJJI<br />

Mithilfe des <strong>Python</strong>-Programms<br />

Speedometer<br />

behalten Sie den Datendurchsatz<br />

auf einzelnen<br />

Schnittstellen oder die<br />

Übertragung einer Datei<br />

im Auge.<br />

Den Datendurchsatz mit Speedometer im Auge<br />

Möchten Sie wissen, wie hoch der<br />

Datendurchsatz auf einer bestimmten<br />

Netzwerkschnittstelle<br />

ausfällt oder wie schnell eine Datei<br />

übertragen wird, dann brauchen<br />

Sie ein Tool wie Speedometer.<br />

Das <strong>Python</strong>-Programm erfasst<br />

den Datendurchsatz und<br />

stellt ihn in einer Konsole grafisch<br />

dar. Dazu greift es auf die<br />

Urwid-Bibliotheken zurück.<br />

Stand ardmäßig bietet Speedometer<br />

eine 16-farbige Darstellung,<br />

auf Wunsch zeigt es auch bis zu<br />

256 verschiedene Farben an. Falls<br />

Sie nichts anderes vorgegeben,<br />

erfasst das Programm die Durchsatzdaten<br />

im Sekundentakt, Sie<br />

können aber auch eine andere<br />

Intervallgröße festlegen.<br />

Für jede überwachte Komponente<br />

zeichnet Speedometer im<br />

Konsolenfenster einen separaten<br />

Graphen, ganz gleich, ob es sich<br />

um eine Netzwerkschnittstelle<br />

oder den Download einer Datei<br />

handelt. Standardmäßig ordnet<br />

es die Graphen untereinander an.<br />

Geben Sie dagegen beim Aufruf<br />

vor einer Komponente den Parameter<br />

-c an, stellt Speedometer<br />

diese und alle folgenden Komponenten<br />

in einer eigenen Spalte<br />

dar. Auf diese Weise lassen sich<br />

mehrere Ausgaben übersichtlich<br />

in ein Terminalfenster packen.<br />

Ungeachtet dessen geht insbesondere<br />

bei kleinen Terminalfenstern<br />

schnell der Überblick verloren.<br />

In diesem Fall empfiehlt es<br />

sich, mehrere Speedometer-Instanzen<br />

zu starten. Überwacht das<br />

Programm den Datentransfer einer<br />

Datei, beendet es sich nach<br />

abgeschlossener Übertragung automatisch,<br />

sofern Sie es mit dem<br />

Parameter -x gestartet haben.<br />

Können Sie auf die grafische<br />

Darstellung des Datendurchsatzes<br />

verzichten, bietet Speedometer<br />

mit dem Parameter -p auch<br />

eine reine Textausgabe. Allerdings<br />

lässt sich auf diese Weise<br />

nur der Datenstrom in eine Richtung<br />

anzeigen. Somit eignet sich<br />

diese Ausgabeform eher zum Protokollieren<br />

des Durchsatzes in<br />

eine Datei. Auf der Webseite des<br />

Programms finden Sie bei Interesse<br />

noch weitere Nutzungsbeispiele<br />

und Anregungen.<br />

SPEEDOMETER 2.7<br />

Lizenz: LGPL<br />

Quelle: http:// excess. org/<br />

speedometer/<br />

0<br />

22 02 | 11<br />

www.linux-user.de


Angetestet<br />

AKTUELLES<br />

Das heimische Fotoarchiv im Griff mit VVVP<br />

Virtual Volumes View PhotoEdition<br />

oder kurz VVVP unterstützt<br />

Sie beim Verwalten und Katalogisieren<br />

von Bildern. Das kompakte,<br />

in C++ geschriebene Programm<br />

liegt in Versionen für Mac OS X<br />

und Windows vor, benötigt keinerlei<br />

Installation und ist sofort<br />

nach dem Entpacken lauffähig.<br />

Die Metadaten der verwalteten<br />

Bilder legt das Programm in der<br />

mitgelieferten Firebird-Datenbank<br />

ab. Neben den zugehörigen<br />

Exif-Daten und einem Miniaturbild<br />

erzeugt und speichert VVVP<br />

VVVP 0.95<br />

Lizenz: GPLv2<br />

Quelle: http:// vvvp. sourceforge. net<br />

auch einen SHA1-Hash zu jedem<br />

Eintrag. Sie haben die Möglichkeit,<br />

jedes Bild mit einem Kommentar<br />

zu versehen. Sämtliche<br />

Bilder verwaltet VVVP in einem<br />

Katalogsystem. Dabei unterscheidet<br />

es zwischen vier unterschiedlichen<br />

Katalogansichten. In der<br />

fixed-Ansicht verwaltet das Tool<br />

Kataloge mit Bildern, die auf der<br />

lokalen Festplatte liegen und daher<br />

immer verfügbar sind. Die<br />

removable-Ansicht enthält all jene<br />

Kataloge, deren Bilder auf einem<br />

Wechseldatenträger lagern. Die<br />

virtuelle Ansicht erlaubt das Verwalten<br />

von Bildern in einer logischen<br />

Verzeichnisstruktur, unabhängig<br />

vom Medium. Zu guter<br />

Letzt steht mit der search-Ansicht<br />

ein Instrument für die Bildsuche<br />

über verschiedene Kataloge zur<br />

Verfügung. Die im aktuellen Katalog<br />

enthaltenen Bilder zeigt VVVP<br />

in der Miniaturbild-Übersicht an.<br />

Hier wählen Sie zwischen einer<br />

Anzeige der Thumbnails in verschiedenen<br />

Größen oder lassen<br />

sich lediglich eine Liste mit Dateinamen<br />

anzeigen.<br />

Beim Anklicken<br />

eines<br />

Eintrags öffnet<br />

VVVP das entsprechende<br />

Bild<br />

– vorausgesetzt,<br />

der jeweilige Datenträger<br />

befindet<br />

sich auch im<br />

System.<br />

JJJII<br />

VVVP präsentiert sich<br />

als leistungsfähiges und<br />

dabei plattformübergreifendes<br />

Hilfsmittel zum<br />

Archivieren und Organisieren<br />

großer Mengen<br />

von Bildern.<br />

Zim, das probate Wiki für den Desktop<br />

Möchten auch Sie Ihr Know-how Programm in einer Verzeichnisstruktur,<br />

gerne in einem Wiki verwalten,<br />

auf die Sie über ein Navi-<br />

scheuen jedoch den Aufbau einer gationsverzeichnis am linken<br />

entsprechenden Infrastruktur mit Fens terrand direkt zugreifen. Den<br />

Datenbank und Webserver, dann aktuellen Eintrag bearbeiten Sie<br />

sollten Sie einen Blick auf Zim nach Belieben und verknüpfen ihn<br />

werfen: Die Anwendung bietet die dabei über Links mit anderen.<br />

Kernfunktionen eines Wikis als lokale<br />

Sämtliche Einträge legt Zim in ei-<br />

Applikation. Zim basiert auf ner Notizbuchdatei ab, wobei das<br />

den GTK-Bibliotheken und wartet Erstellen mehrerer Notizbücher<br />

mit einer übersichtlichen Oberfläche<br />

die Möglichkeit bietet, mehrere<br />

auf. Wichtige Elemente des in-<br />

voneinander unabhängige Wikis<br />

tegrierten WYSIWYG-Editors sowie<br />

aufzubauen. Auf Wunsch erzeugt<br />

eine Reihe von Navigations-<br />

das Tool auch einen Index über die<br />

symbolen stehen über die Symbolleiste<br />

jeweilige Notizdatei. Zur weiteren<br />

jederzeit zur Verfügung. Die Nutzung in anderen Programmen<br />

einzelnen Einträge verwaltet das lassen sich Einträge oder ganze<br />

Notizdateien mithilfe der Exportfunktion<br />

ZIM 0.49<br />

nach HTML-Dateien<br />

Lizenz: GPLv2<br />

oder LaTeX übertragen. Mittels<br />

Plugins lässt sich der Funktionsumfang<br />

19:00 Uhr von Zim Seite praktisch 1<br />

Quelle: http:// zim-wiki. org<br />

00_LU1106_F-Weber_neu1.qxd 18.09.2006 beliebig<br />

erweitern. Das Programmarchiv<br />

enthält bereits 15 Plugins, die<br />

Sie bei Gefallen nur zu aktivieren<br />

brauchen – vorausgesetzt, die zugehörigen<br />

Drittprogramme wie<br />

beispielsweise Plot sind auf dem<br />

System installiert. Die Palette der<br />

mitgelieferten Erweiterungen<br />

reicht vom Kalender über Diagramm-Tools<br />

bis zur Rechtschreibkontrolle.<br />

Als besonderes Goodie<br />

bringt Zim einen Webserver mit,<br />

über den auch externe<br />

Anwender<br />

auf die aktuelle<br />

Notizdatei zugreifen<br />

können.<br />

Das Verändern<br />

von Einträgen<br />

funktioniert auf<br />

diesem Weg aber<br />

nicht. (jlu) ■<br />

JJJJJ<br />

Zim eignet sich hervorragend<br />

als einfach zu bedienende<br />

lokale Informationsablage.<br />

X23


SCHWERPUNKT<br />

<strong>Python</strong>-IDE Eric<br />

<strong>Python</strong>-Programme schreiben in der IDE Eric<br />

Recht gut<br />

entwickelt<br />

Die <strong>Python</strong>-IDE Eric4 vereinfacht das Schreiben von<br />

Skripten und komplexen Programmen durch<br />

zahlreiche Komfortfunktionen. Daniel Stender<br />

© Lolamix, sxc.hu<br />

Für <strong>Python</strong> [1] gibt es im Bereich<br />

der freien Software mittlerweile<br />

eine ganze Reihe von Programmierumgebungen<br />

[2]. Das Tool<br />

Eric von Detlev Offenbach [3] gehört<br />

zu den ausgereifteren und<br />

steht für <strong>Python</strong> 2.x (Eric4) mittlerweile<br />

in der Version 4.4.9 zur<br />

Verfügung (4.4.7 in Debian „Testing“,<br />

4.4.4a in Ubuntu „Maverick“,<br />

4.3.7 in Fedora) und präsentiert<br />

sich als umfangreiche,<br />

schlichte IDE speziell für <strong>Python</strong>,<br />

die aber auch mit Ruby umgehen<br />

kann. Bei Bedarf installieren Sie<br />

Eric auf Systemen wie Debian<br />

oder Ubuntu ohne Weiteres über<br />

den Paketmanager (sudo apt‐get<br />

install eric). Für Informationen<br />

zu Eric5 lesen Sie den Kasten<br />

Eric5 für <strong>Python</strong> 3.<br />

Vor allem wenn Sie Qt­Applikationen<br />

oder selbst Eric­Plugins<br />

schreiben möchten, empfiehlt es<br />

sich, das Zusatzpaket eric-api-files<br />

mit zu installieren, das spezielle<br />

Vorlagen für das Vervollständigen<br />

von Code enthält. Wenn Sie Plugins<br />

über Eric installieren, dann<br />

gilt es unter Umständen, zusätzliche<br />

Software per Hand nachzuziehen.<br />

Obwohl das Paketmanagement<br />

das Paket python-qt4-sql nur<br />

als Vorschlag anzeigt (apt‐cache<br />

show eric), lohnt es sich, dieses direkt<br />

im gleichen Atemzug mit zu<br />

installieren. Das Standard­Plugin<br />

Assistant Eric greift darauf zu. Außerdem<br />

gibt es manchmal Fehlermeldungen,<br />

wenn das Paket<br />

libqt4-sql-sqlite nicht im System<br />

eingerichtet ist.<br />

README<br />

Die auf Basis von Qt<br />

entwickelte <strong>Python</strong>-IDE<br />

Eric bietet ein umfangreiches<br />

Projektmanagement<br />

mit automatischer<br />

Todo-Liste, zahlreichen<br />

Hilfsfunktionen sowie<br />

ein Interface zu Versionskontrollsystemen.<br />

ERiC5 füR PyTHoN 3<br />

Mit dem Release von <strong>Python</strong> 2.7 im Juli 2010 endet der<br />

Versionszweig 2.x offiziell. Er wird noch gepflegt, auch Updates<br />

fließen ein. Da der Nachfolger <strong>Python</strong> 3 sich nicht<br />

mehr abwärtskompatibel verhält, sind Entwickler angehalten,<br />

ihre Programme für den Zweig 3.x umzuschreiben, was<br />

nur schleppend geschieht. <strong>Python</strong> 2.6 fungiert noch immer<br />

als Standard für Debian 6.0 „Squeeze“, und eine Menge<br />

beliebter Bibliotheken haben weiterhin ihre Probleme mit<br />

dem entscheidend veränderten <strong>Python</strong> 3 (aktuell 3.1).<br />

Einige Applikationen und Module unterhalten – wie <strong>Python</strong><br />

selbst bisher – zwei getrennte, parallele Entwicklungszweige.<br />

Das in <strong>Python</strong> geschriebene Eric findet sich in der<br />

aktuellen <strong>Python</strong>-3-Version (5.0.3) noch nicht in Debian oder<br />

Ubuntu. Unter anderem gab es zu Redaktionsschluss immer<br />

noch Probleme mit den <strong>Python</strong>-3-Bindings der Qt4-<br />

Biblio thek PyQt, obwohl aktuelle Versionen davon <strong>Python</strong> 3<br />

eigentlich bereits unterstützen (Debian Bug #558389). Der<br />

Schwerpunkt der Weiterentwicklung von Eric findet bereits<br />

in Eric5 statt. Hier gibt es ein Plugin für die Mercurial-<br />

Schnittstelle, Funktionen für die Echtzeit-Kollaboration in<br />

Form eines Chat-Widgets und eines Shared Editors sowie<br />

ein Interface zum Codechecker Pyflakes.<br />

Eric5 ohne Hilfe des Paketmanagers zu installieren, bereitet<br />

einige Probleme: Das Kommando python3 install.py<br />

im Hauptverzeichnis des entpackten Tarballs führt zum Hinweis,<br />

dass das Modul PyQt4.QtCore nicht bereitsteht (Problem<br />

mit den <strong>Python</strong>-3-Bindings). Versuchen Sie den Trick,<br />

die PyQt-Bibliothek (aktuell im <strong>Python</strong> Package Index:<br />

v4.8.1) in Debian „Testing“ manuell zu installieren, erhalten<br />

Sie den Hinweis, dass die vorhandene Version des Interface-Generators<br />

SIP (v4.10.2) damit nicht zusammenarbeitet,<br />

und somit manuell in der aktuellsten Version nachinstalliert<br />

wäre (Package Index: v4.11.2). Allerdings macht<br />

es keinen Sinn, sich so weitab vom Upstream-Status der<br />

verwendeten Distribution zu bewegen. So bleibt nur übrig,<br />

abzuwarten, bis sich alles weiterentwickelt hat.<br />

24 02 | 11<br />

www.linux-user.de


<strong>Python</strong>-IDE Eric<br />

SCHWERPUNKT<br />

Starten Sie die IDE, so öffnet sich<br />

kurz ein Splashscreen mit dem<br />

Eric­Maskottchen – einem kleinen,<br />

frechen Troll. Kurz danach<br />

erscheint der Hauptbildschirm. In<br />

der Mitte befindet sich das Editorfenster,<br />

um das sich eine Reihe<br />

von Toolboxen anordnen lässt,<br />

darunter ein Terminalfenster und<br />

eine <strong>Python</strong>­Shell (Abbildung ).<br />

Details des Layouts passen sich<br />

dabei der Bildschirmauflösung an.<br />

Grundfunktionen<br />

Das Programm bietet die Möglichkeit,<br />

das Aussehen individuell<br />

zu verändern und in verschiedenen<br />

Profilen abzuspeichern (siehe<br />

Dropdown­Menü Fenster). Selbst<br />

wer nicht gleich Klassen und Module,<br />

sondern erst mal einfachere<br />

Programme schreibt, stellt sehr<br />

schnell fest, dass es in Eric an allen<br />

Ecken und Enden kleine nützliche<br />

Helferlein gibt.<br />

Haben Sie Ihren ersten Programmcode<br />

geschrieben und diesen<br />

als <strong>Python</strong>­Programm mit der<br />

Endung .py abgespeichert, dann<br />

zeigt die IDE zum Beispiel sofort<br />

alle syntaktisch falschen Stellen<br />

im Code an. Starten Sie nach deren<br />

Beseitigung dann das Programm<br />

mit Start | Script ausführen,<br />

hebt die Software zusätzlich<br />

noch tiefer sitzende Fehler im<br />

Quellcode automatisch hervor.<br />

Eric fragt vor dem Ausführen außerdem<br />

noch nach optionalen<br />

Werten wie zum Beispiel Kommandozeilenparameter.<br />

Die Applikation bietet selbstverständlich<br />

Syntax­Highlighting,<br />

beherrscht aber auch das automatische<br />

Vervollständigen des Codes<br />

(nach Aktivieren in den Einstellungen).<br />

Sie prüft das Setzen von<br />

Klammern und kontrolliert die<br />

Einrücktiefe, aus der sich in <strong>Python</strong><br />

die Konstruktion von Strukturen<br />

wie Klassen, Funktionen<br />

oder Schleifen ergibt.<br />

Außerdem erlaubt es Eric, zusammenhängende<br />

Abschnitte wie<br />

zum Beispiel Funktionen nach<br />

Bedarf ein­ und wieder aufzufalten<br />

(„Code folding“). Der Editor<br />

erlaubt es zudem, Lesezeichen an<br />

beliebigen Stellen im Code anzubringen.<br />

Als nette Dreingabe exportiert<br />

die Software auf Wunsch<br />

den Quellcode schick eingefärbt<br />

als PDF­Datei, HTML­, RTF­ oder<br />

als TeX­Dokument.<br />

Debugging<br />

Existieren logische Fehler im Programm,<br />

spüren Sie diese in einer<br />

IDE wie Eric am einfachsten mithilfe<br />

des Debuggers auf. Dazu<br />

starten Sie Ihr selbstgeschriebenes<br />

Programm im Debugging­Modus<br />

(Start | Debug Skript). Vorher<br />

setzen Sie noch Haltepunkte (Debug<br />

| Haltepunkt setzen) in den<br />

Quellcode, an denen der Debugger<br />

das Ausführen des Programms<br />

anhält. Die Anzeige schaltet dann<br />

auf das Profil Debuggen um (Fenster<br />

| Debuggen Profil), und rechts<br />

neben dem Editorfenster öffnet<br />

sich ein weiterer Dialog mit verschiedenen<br />

Analyse­Listen (Dateibrowser,<br />

lokale und globale Variablen),<br />

die den Status des Programms<br />

am Haltepunkt jeweils<br />

genau abbilden (Abbildung ).<br />

Jetzt haben Sie die Möglichkeit,<br />

zwischen den Haltepunkten hinund<br />

herzuspringen (Debug |<br />

Nächster/ Vorheriger Haltepunkt)<br />

Das Hauptfenster<br />

bietet neben dem<br />

Code-Editor Zugriff auf<br />

ein Terminal, eine <strong>Python</strong>-Shell<br />

und zeigt<br />

zudem die Struktur<br />

des Projektes an.<br />

Im Debugging-Profil<br />

sehen Sie genau, welche<br />

Werte lokale und<br />

globale Variablen zur<br />

Laufzeit haben.<br />

www.linux-user.de<br />

02 | 11 25


SCHWERPUNKT<br />

<strong>Python</strong>-IDE Eric<br />

Das Pylint-Plugin<br />

fördert Schwächen im<br />

Quellcode zutage.<br />

Mit einem entsprechenden<br />

Autopiloten<br />

definieren Sie via<br />

Dialog einen regulären<br />

Ausdruck passend zur<br />

<strong>Python</strong>-Version.<br />

und sich in Einzelschritten (Debug<br />

| Einzelschritt) oder größeren,<br />

ganzen Prozedurschritten umherzubewegen,<br />

um die Interna des<br />

Programmablaufs im Detail nachzuvollziehen.<br />

Auf diese Weise decken<br />

Sie verborgene Fehler im<br />

Code auf, wie etwa falsch zugewiesene<br />

Variablen.<br />

Versionskontrolle<br />

Eine luxuriöse IDE wie Eric entwickelt<br />

ihren vollen Funktionsumfang<br />

allerdings erst dann so<br />

richtig, wenn Sie ganze<br />

Projekte damit betreuen<br />

und mehrere<br />

aufeinander bezogene<br />

Dateien gleichzeitig<br />

damit pflegen. Über<br />

den Punkt Projekt |<br />

Neu erstellen Sie den<br />

Rahmen für ein solches<br />

Unterfangen.<br />

Das Programm fragt<br />

zunächst die Projekteigenschaften<br />

ab –<br />

unter anderem, ob Sie<br />

schon vorhandene<br />

Dateien hinzufügen<br />

wollen.<br />

Optional wählen Sie<br />

ein Versionskontrollsystem<br />

aus. Die Versionskontrolle<br />

gehört zu den wichtigen<br />

Bestandteilen von fortgeschrittener<br />

Software­Entwicklung.<br />

Auch Einsteigern bietet die<br />

Möglichkeit Vorteile, auf Knopfdruck<br />

ältere Versionen wiederzuherstellen.<br />

Außerdem liegt in einem<br />

zentralem Repository der<br />

Schlüssel zum Entwickeln mit<br />

mehreren Beteiligten.<br />

Die Grundinstallation von Eric<br />

bietet ein Interface für Subversion<br />

(SVN, [4]). Daneben existieren<br />

Plugins für andere Versionskontrollsysteme<br />

wie CVS<br />

und Mercurial. Ein lokales<br />

Repository für<br />

Subversion legen Sie<br />

auf der Kommandozeile<br />

via svnadmin<br />

create ~/src/Projekt<br />

an. Das setzt natürlich<br />

voraus, dass Sie<br />

das Paket subversion<br />

installiert haben.<br />

Fragt Eric beim Erstellen<br />

eines neuen<br />

Projektes nach den<br />

Daten des Repositorys,<br />

so wählen Sie<br />

nun Protokoll: file://<br />

und geben den entsprechenden<br />

Pfad an.<br />

Eric erstellt dann die<br />

Basisdateien für ein<br />

Projekt (den Marker<br />

__init__.py sowie die<br />

Datei Projekt.e4p) und bucht sie<br />

gemäß der Standard­Hierarchiestruktur<br />

von Subversion direkt<br />

ins Unterverzeichnis trunk im Repository<br />

ein. Die verschiedenen<br />

Funktionen von Subversion erreichen<br />

Sie nun bequem über Projekt<br />

| Versionskontrolle.<br />

Genauso gut funktioniert es,<br />

mit verfügbaren Netzwerkprotokollen<br />

von Subversion entfernte<br />

Repositorien anzusprechen. Jede<br />

neue Datei im Projekt steht nun<br />

automatisch unter der Versionskontrolle.<br />

Falls gewünscht, entfernen<br />

Sie ein File gegebenenfalls<br />

im Dateibrowser oben links mit<br />

Rechtsklick | Versionskontrolle |<br />

Vom Repository (und der Platte) löschen<br />

aus der Versionskontrolle.<br />

Erstellen Sie bei geöffnetem Projekt<br />

eine neue Datei oder ein Modul<br />

mit Datei | Neu, müssen Sie<br />

diese zunächst mit Datei | In Projekt<br />

speichern abspeichern. Danach<br />

erscheint in der Projektanzeige<br />

oben links das neue Modul mit allen<br />

Variablen, Funktionen und<br />

Klassen im Datei­ beziehungsweise<br />

Klassenbrowser.<br />

Interfaces<br />

Eric bietet Interfaces für eine ganze<br />

Reihe von Tools, die beim Entwickeln<br />

von Software mit <strong>Python</strong><br />

helfen. Zum Teil gehören die Plugins,<br />

die mehr Flexibilität bieten,<br />

nicht zur Standard­Distribution.<br />

Um also beispielsweise die Funktion<br />

für den Quellcode­Checker<br />

Pylint [5] nachzuziehen, wechseln<br />

Sie mit Plugins | Repository in den<br />

entsprechenden Dialog, wählen<br />

das Plugin aus, laden es herunter<br />

und installieren es. Ergibt die Prüfung<br />

unter Plugins | Plugin Informationen,<br />

dass es noch nicht aktiv<br />

ist, holen Sie das mit Rechtsklick |<br />

Aktivieren nach.<br />

Haben Sie nun auch noch das<br />

Paket pylint installiert (v0.21.1 in<br />

Debian „Testing“ und Ubuntu<br />

„Maverick“), gilt es noch, Eric neu<br />

zu starten. Danach werten Sie Ihren<br />

Code über Projekt | Prüfen |<br />

PyLint ausführen auf Schwächen<br />

hin aus. In Abbildung rügt der<br />

26 02 | 11<br />

www.linux-user.de


<strong>Python</strong>-IDE Eric<br />

SCHWERPUNKT<br />

Checker zum Beispiel fehlende<br />

Docstrings. Auch Code­Profiling<br />

mithilfe des Moduls profile [6]<br />

(Paket python-profiler) gehört<br />

zum Funktionsumfang der Entwicklungsumgebung.<br />

Darüber hinaus bietet die IDE<br />

Interfaces für Methoden zum<br />

Code­Refactoring, wie zum Beispiel<br />

für Bicycle Repair Man [7]<br />

(Standard) oder alternativ für<br />

Rope [8]. Daneben existiert die<br />

Möglichkeit, untergeordnete Programmeinheiten,<br />

wie Module,<br />

mithilfe des Frameworks Unittest<br />

[9] unabhängig vorzutesten.<br />

iNfo<br />

[1] <strong>Python</strong>-Einführung:<br />

http://www.linux-community.de/11346<br />

[2] <strong>Python</strong>-IDEs:<br />

http://en.wikipedia.org/wiki/<strong>Python</strong>_IDE<br />

[3] Eric: http://eric-ide.python-projects.org/<br />

[4] Subversion: http://de.wikipedia.org/wiki/<br />

Apache_Subversion<br />

[5] Pylint: http://www.logilab.org/project/pylint<br />

[6] Profile-Modul: http://docs.python.org/<br />

release/2.6.6/library/profile.html<br />

[7] Bicycle Repair Man:<br />

http://bicyclerepair.sourceforge.net<br />

[8] Rope: http://rope.sourceforge.net<br />

[9] Unittests: http://docs.python.org/release/<br />

2.6.6/library/unittest.html<br />

[10] Informationen zu Wx<strong>Python</strong>:<br />

http://en.wikipedia.org/wiki/Wxpython<br />

[11] Informationen zum Qt-Toolkit:<br />

http://de.wikipedia.org/wiki/Qt_(Bibliothek)<br />

[12] PyQt: http://www.riverbankcomputing.co.<br />

uk/software/pyqt/intro<br />

[13] Eric-Mailingsliste:<br />

http://www.riverbankcomputing.com/<br />

mailman/listinfo/eric<br />

[14] Logparser und Minibrowser: http://eric-ide.<br />

python-projects.org/eric-tutorials.html<br />

Wizards<br />

Eric bietet eine ganze Reihe von<br />

Wizards für das einfache Generieren<br />

von <strong>Python</strong>­Quellcode an, die<br />

in der deutschen Version „Autopiloten“<br />

heißen. Von diesen fällt zuerst<br />

der Generator für reguläre<br />

Ausdrücke ins Auge, den Sie über<br />

Extras | Autopiloten | <strong>Python</strong> re<br />

Autopilot erreichen.<br />

Hier gilt es, zunächst den gewünschten<br />

<strong>Python</strong>­Zweig auszuwählen<br />

und einen Variablennamen<br />

zu definieren, mit dem Sie<br />

den regulären Ausdruck in den<br />

Quellcode einfügen möchten. Es<br />

gibt hier Buttons und Hilfen für<br />

verschiedene Standard­Elemente,<br />

eine Gültigkeitsprüfung, ein Testfeld,<br />

eine Undo/ Redo­Funktion<br />

sowie die Möglichkeit, fertige<br />

Konstrukte abzuspeichern und<br />

später zu importieren.<br />

Ein weiteres Plugin hilft beim<br />

Erstellen von Widgets für das<br />

GUI­Framework wx<strong>Python</strong> [10].<br />

Da der Maintainer Eric aber nicht<br />

nur mit Qt [11] entwickelt hat,<br />

sondern darüber hinaus als IDE<br />

für dieses GUI­Framework, verfügt<br />

die Applikation über eine<br />

Reihe von Autopiloten zum Generieren<br />

von <strong>Python</strong>­Code, mit dem<br />

Sie Qt­Elemente über die PyQt­<br />

Bindings [12] ansprechen. Möchten<br />

Sie eine Stufe weitergehen,<br />

rufen Sie den Qt4­Designer direkt<br />

aus dem Programm heraus auf.<br />

Letztendlich zeigt sich an dieser<br />

Stelle das enorme Potenzial von<br />

Eric und sein konkurrenzloser<br />

Spezialanwendungsbereich: das<br />

Entwickeln von Qt­Applikationen<br />

mit <strong>Python</strong>.<br />

Fazit<br />

Eric ist im Laufe der letzten Jahre<br />

zu einer umfangreichen und professionellen<br />

Entwicklungsumgebung<br />

für <strong>Python</strong> herangereift, die<br />

sich ohne Weiteres für den täglichen<br />

Einsatz empfiehlt. Unglücklicherweise<br />

hapert es – typisch<br />

für größere Einzelperson­Projekte<br />

wie dieses – an der Dokumentation,<br />

die sich bisher rein auf das<br />

Niveau der Quellcode­Dokumentation<br />

auf Grundlage der Docstrings<br />

beschränkt. So bleibt dem<br />

Anwender bisher nichts anderes<br />

übrig, als sich im Netz oder in der<br />

Eric­Mailingliste [13] zu informieren,<br />

falls etwas nicht wie vorgesehen<br />

klappt.<br />

Geduldiges Herumexperimentieren<br />

lohnt sich aber auf jeden<br />

Fall. Eine umfangreiche IDE wie<br />

Eric zu benutzen, gehört zu den<br />

Grundvoraussetzungen für ambitionierte<br />

<strong>Python</strong>­Entwicklung.<br />

Den resultierenden Komfort wissen<br />

aber auch angehende Entwickler<br />

zu schätzen.<br />

Die IDE basiert auf der gediegenen<br />

Qt4­Bibliothek für GUI­Widgets.<br />

Diese besonders enge Bindung<br />

macht Eric besonders interessant<br />

für Entwickler, die selbst<br />

Qt­Applikationen auf der Grundlage<br />

von <strong>Python</strong> erstellen wollen.<br />

Zwei Anwendungsstudien auf der<br />

Homepage des Projektes, die Implementation<br />

eines Log­Parsers<br />

und ein rudimentärer Webbrowser<br />

[14], demonstrieren die Fähigkeiten<br />

auf beeindruckende<br />

Weise. (agr) ■<br />

GLoSSAR<br />

Code-Profiling: Test<br />

eines Programms während<br />

seines Ablaufs auf<br />

Daten wie Geschwindigkeit,<br />

Prozessaufkommen<br />

oder Speicherverbrauch<br />

zum Optimieren<br />

des Quellcodes bei umfangreicheren<br />

Projekten.<br />

Code-Refactoring: Das<br />

kontrollierte Umgestalten<br />

eines Quellcodes,<br />

bei dem ein Tool zum<br />

Beispiel beim Ändern<br />

des Namens einer<br />

Variab len, einer Funktion<br />

oder einer Klasse<br />

alle Aufrufe davon im<br />

gesamten Projekt automatisch<br />

mit verändert.<br />

Ein nur aus wenigen<br />

Zeilen Code bestehender<br />

Minibrowser auf<br />

Qt-Basis direkt aus der<br />

IDE als <strong>Python</strong>-Skript<br />

gestartet.<br />

www.linux-user.de<br />

02 | 11 27


schwerpunkt<br />

Robuste <strong>Python</strong>-Programme<br />

Typische Fehler in<br />

<strong>Python</strong>-Code vermeiden<br />

Falsche<br />

Schlange<br />

© Hans Thoursie, sxc.hu<br />

<strong>Python</strong> ist einfach – aber nicht so einfach, dass man es allein durch Lesen von Code lernen könnte. Mit etwas Hintergrundwissen<br />

vermeiden Sie typische Fehler in <strong>Python</strong>-Code und schreiben so bessere Programme. Stefan Schwarzer<br />

readme<br />

Gerade Einsteiger und<br />

Gelegenheitsprogrammierer<br />

wiederholen in<br />

<strong>Python</strong> regelmäßig<br />

einige typische Fehler.<br />

Der Artikel zeigt diese<br />

auf, macht Vorschläge<br />

zu deren Vermeidung<br />

und gibt Tipps für besser<br />

wartbaren Code.<br />

<strong>Python</strong> ist eine relativ leicht zu<br />

erlernende Sprache, mit der man<br />

in kurzer Entwicklungszeit viel<br />

erreichen kann. Das verführt vor<br />

allem Einsteiger dazu, <strong>Python</strong> [1]<br />

nur durch Anschauen von <strong>Python</strong>­Code<br />

zu „lernen“, was oft<br />

unangenehme Überraschungen<br />

nach sich zieht: <strong>Python</strong> verhält<br />

sich nicht unbedingt so, wie man<br />

es von den jeweils bisher gelernten<br />

Sprachen kennt. Fehler, die<br />

zügig zu einer unwarteten Ausnahme<br />

mit einem Traceback führen,<br />

stellen da noch das geringste<br />

Problem dar. Kniffliger sind Fehler<br />

in Gestalt von Code, der nur<br />

scheinbar das Gewünschte tut.<br />

Dieser Artikel spricht solche<br />

Missverständnisse zur Funktionsweise<br />

von <strong>Python</strong> an und erklärt<br />

die Hintergründe. Darüber hinaus<br />

gibt er diverse Tipps, um kompakten<br />

und dennoch lesbaren Code<br />

zu schreiben. Der Schwerpunkt<br />

des Artikels liegt auf <strong>Python</strong> 2.x,<br />

da sich diese Versionen noch wesentlich<br />

häufiger im Einsatz befinden,<br />

unter anderem für Systemprogramme<br />

diverser Linux­<br />

Distributionen.<br />

Einrückungen: Vorsicht,<br />

Tabulator!<br />

<strong>Python</strong> erkennt einen Anweisungsblock<br />

wie etwa einen Schleifenrumpf<br />

an seiner einheitlichen<br />

Einrückung. Dabei empfiehlt der<br />

„Style Guide for <strong>Python</strong> Code“ [2]<br />

eine Einrücktiefe von vier Zeichen<br />

pro logischer Ebene und das ausschließliche<br />

Verwenden von Leerzeichen<br />

zum Einrücken.<br />

Listing 1<br />

def f(a, b):<br />

if a > b:<br />

a = g(a)<br />

>---b = h(b)<br />

return a, b<br />

Probleme treten unter Umständen<br />

dann auf, wenn Sie sowohl<br />

Leerzeichen als auch Tabulatoren<br />

zum Einrücken nutzen. Für den<br />

<strong>Python</strong>­Interpreter entspricht ein<br />

Tabulator acht Leerzeichen beziehungsweise<br />

füllt auf das nächste<br />

Vielfache von acht Leerzeichen<br />

auf. Betrachtet man Quelltexte<br />

mit einer anderen Tabulator­Weite,<br />

sieht man unter Umständen<br />

eine andere Logik im Code, als sie<br />

der Interpreter wahrnimmt.<br />

Ein Beispiel zeigt das Listing 1.<br />

Die vier Zeichen breite Sequenz<br />

>--- steht hier (in Anlehnung an<br />

den beliebten Editor Vim) für<br />

Listing 2<br />

def f(a, b):<br />

if a > b:<br />

a = g(a)<br />

>---else:<br />

b = h(b)<br />

return a, b<br />

28 02 | 11<br />

www.linux-user.de


Robuste <strong>Python</strong>-Programme<br />

schwerpunkt<br />

einen Tabulator, den der Editor<br />

mit vier Zeichen Breite darstellt.<br />

Auf den ersten Blick scheint <strong>Python</strong><br />

die Anweisung b = h(b) auf<br />

jeden Fall auszuführen. Da ein Tabulatorzeichen<br />

aber acht Leerzeichen<br />

entspricht, bearbeitet der<br />

Interpreter diese Zeile wie die<br />

vorherige, aber nur im Fall a > b.<br />

Glück im Unglück: Das Mischen<br />

von Leerzeichen und Tabulatoren<br />

führt eher zu Syntaxfehlern als<br />

zu falsch funktionierendem Code.<br />

Ein Beispiel zeigt Listing 2. Hier<br />

ist aus Sicht von <strong>Python</strong> das<br />

Schlüsselwort else genauso weit<br />

eingerückt wie die Zuweisungen<br />

an a und b – ein Syntaxfehler.<br />

Um die potenzielle Verwirrung<br />

durch einen Mix von Leerzeichen<br />

und Tabulatoren von vornherein<br />

zu vermeiden, lassen Sie den Editor<br />

auch bei Drücken der Tabulatortaste<br />

immer mit vier Stellen<br />

pro logischer Ebene einrücken.<br />

Natürlich wären auch andere Regeln<br />

denkbar, aber vier Leerzeichen<br />

sind wie gesagt die im „Style<br />

Guide“ empfohlene Variante und<br />

daher in den allermeisten <strong>Python</strong>­<br />

Projekten üblich.<br />

Haben Sie Code im Verdacht, inkonsistent<br />

eingerückt zu sein, machen<br />

Sie mittels des Kommandos<br />

$ find . -name "*.py" -exec grepU<br />

-EnH "\t" {} \;<br />

alle <strong>Python</strong>­Dateien im und unterhalb<br />

des aktuellen Verzeichnisses<br />

ausfindig, die Tabulatoren enthalten.<br />

Geht es nur um wenige Dateien,<br />

ist es praktikabel, im Editor<br />

Tabulatorzeichen explizit anzuzeigen.<br />

In Vim geht das mit dem Befehl<br />

:set list (Abbildung ). Viele<br />

Programmiereditoren bieten<br />

ähnliche Möglichkeiten.<br />

Objekte und Namen:<br />

Who is who?<br />

In <strong>Python</strong> gibt es keine Variablen<br />

wie bei C oder Pascal, die einen<br />

bestimmten Speicherbereich<br />

kennzeichnen. Die <strong>Python</strong>­Zuweisung<br />

a = 1 verknüpft lediglich<br />

das Ganzzahl­Objekt 1 mit dem<br />

Namen a. Ein und dasselbe Objekt<br />

lässt sich prinzipiell unter beliebig<br />

vielen Namen erreichen. Es<br />

gibt auch anonyme (namenlose)<br />

Objekte, wie die Zahl 2 in der Anweisung<br />

L = [1, 2, 3].<br />

Wichtig zum Verständnis von<br />

<strong>Python</strong> sind die Konzepte der<br />

Identität und der Gleichheit.<br />

Identität bedeutet, dass es sich<br />

um ein und dasselbe Objekt handelt,<br />

während Gleichheit zweier<br />

Objekte aussagt, dass diese den<br />

gleichen Wert haben. Ob zwei Objekte<br />

identisch sind, stellen Sie<br />

mithilfe des Operators is fest<br />

(Listing 3).<br />

Für von Ihnen definierte Datentypen<br />

legen Sie selbst fest, wie<br />

Gleichheit zwischen deren Instanzen<br />

definiert ist. Wie Listing 4 auf<br />

der nächsten Seite verdeutlicht,<br />

könnten Sie auf diese Weise sogar<br />

dafür sorgen, dass zwei Objekte<br />

zwar identisch, aber dennoch ungleich<br />

sind!<br />

In <strong>Python</strong>­Code bedeutet der<br />

Wert None üblicherweise, dass ein<br />

Name keinen „richtigen“ Wert<br />

hat, zum Beispiel weil er bisher<br />

nicht explizit initialisiert wurde.<br />

Prüfungen eines Namens auf None<br />

sollten Sie immer mit is vornehmen,<br />

nicht mit ==. Analog zu Listing<br />

4 kann eine Klasse ja den Vergleichsoperator<br />

so definieren, dass<br />

alle Vergleiche einen wahren Wert<br />

liefern (Listing 5, nächste Seite).<br />

Nur die Operation in der letzten<br />

Zeile des Listings, die is verwendet,<br />

funktioniert zuverlässig.<br />

Wie schon erwähnt, führt eine<br />

Zuweisung nur zur Verknüpfung<br />

von Namen und Objekten. Objekte<br />

werden dabei nicht kopiert.<br />

Das erklärt auch das Ergebnis in<br />

Listing 6 (nächste Seite), das bei<br />

<strong>Python</strong>­Einsteigern immer wieder<br />

für Überraschungen sorgt.<br />

Die erste Zuweisung erzeugt<br />

eine Liste mit den Elementen 1<br />

und 2, die zweite Zuweisung gibt<br />

der derart erzeugten Liste einen<br />

zweiten Namen L2. L1 und L2 stehen<br />

nun für ein­ und dasselbe<br />

Objekt. Die dritte Anweisung<br />

hängt die Zahl 3 ans Ende der Liste.<br />

Da L2 nur ein anderer Name<br />

für dieselbe Liste ist, bekommen<br />

Sie bei der Ausgabe von L1 und L2<br />

auch ein identisches Ergebnis.<br />

Die letzte Zeile bestätigt das vorher<br />

Gesagte: L1 und L2 bezeichnen<br />

ein und dieselbe Liste.<br />

Objektverknüpfungen können<br />

natürlich auch komplexer ausfallen.<br />

So greifen Sie nach den ersten<br />

drei Anweisungen in Listing 7<br />

(nächste Seite) auf die erzeugte<br />

Liste sowohl unter dem zuerst<br />

vergebenen Namen L als auch<br />

über das Tupel t zu.<br />

Unveränderliche und<br />

veränderliche Objekte<br />

Die Veränderbarkeit von Objekten<br />

stellt ein wichtiges Konzept<br />

von <strong>Python</strong> dar. Erst wenn man<br />

es verstanden hat, ergeben vermeintlich<br />

seltsame Verhaltensweisen<br />

von <strong>Python</strong> einen Sinn.<br />

Sogenannte unveränderliche<br />

Objekte wie zum Beispiel Zahlen<br />

oder Zeichenketten kann man –<br />

wie der Begriff schon sagt – nicht<br />

verändern. Mitunter entsteht je­<br />

Zwei Ansichten der<br />

gleichen fehlerhaften<br />

Datei in Vim, oben<br />

ohne, unten mit gesetzter<br />

list-Option.<br />

Diese macht Tabulator-<br />

und Zeilenende-<br />

Zeichen sichtbar.<br />

gLossar<br />

Traceback: Folge der<br />

Funktionsaufrufe bis<br />

zum Auftreten eines<br />

Fehlers. <strong>Python</strong> gibt<br />

die se Aufruf-Folge, auch<br />

Stacktrace genannt, bei<br />

bestimmten Fehlern<br />

aus. Diese Ausgabe hilft<br />

oft sehr bei der Eingrenzung<br />

der Fehlerursache.<br />

x = 1.0<br />

y = x # Das Objekt 1.0 mit dem Namen x ist<br />

# jetzt auch über den Namen y erreichbar.<br />

print x is y # True<br />

print x == y # True<br />

y = 1<br />

print x is y # False<br />

print x == y # True, 1.0 bezeichnet den gleichen<br />

# Wert wie 1<br />

Listing 3<br />

www.linux-user.de<br />

02 | 11 29


schwerpunkt<br />

Robuste <strong>Python</strong>-Programme<br />

Listing 5<br />

class ImmerGleich(object):<br />

doch das Missverständnis, dass<br />

sich in den beiden Zuweisungen:<br />

a = 1<br />

a = 2<br />

der Wert von a ändern würde, es<br />

sich bei Zahlen also nicht um unveränderbare<br />

Objekte handele.<br />

Das Konzept der Veränderbarkeit<br />

bezieht sich aber nicht auf Namens<br />

verknüpfungen, sondern<br />

vielmehr auf das jeweilige Objekt<br />

selbst: So ist nach der zweiten Zuweisung<br />

immer noch das Objekt<br />

1 das Objekt 1; aus der Ganzzahl<br />

Eins ist ja nicht plötzlich die<br />

Ganzzahl Zwei entstanden.<br />

Anders sieht es bei veränderbaren<br />

Objekten aus. Dazu gehören<br />

in <strong>Python</strong> Listen, Dictionaries,<br />

Sets sowie im Allgemeinen Klassen<br />

und Instanzen. In Listing 5<br />

änderte die Methode append() der<br />

Liste diese selbst; das Listenobjekt<br />

erhielt ein zusätzliches Element.<br />

Alle Zugriffe auf dieses Objekt,<br />

egal über welchen Namen,<br />

„sehen“ die Veränderung.<br />

Listing 4<br />

Funktionen, Methoden<br />

und Parameter<br />

Manche Sprachen erlauben, die<br />

Klammern am Ende eines Funktionsaufrufs<br />

wegzulassen, wenn<br />

man keine Argumente übergibt. In<br />

<strong>Python</strong> sind die Klammern jedoch<br />

Pflicht. Der Ausdruck fobj.close in<br />

Listing 9 liefert nur die Methode<br />

selbst, ruft diese aber nicht auf.<br />

Die Datei bleibt daher offen.<br />

Default­Argumente werden nur<br />

einmal erzeugt, nämlich während<br />

der Definition der Funktion oder<br />

Methode. Daher bleibt das Listen­Objekt<br />

L in Listing 10 während<br />

der gesamten Laufzeit des<br />

Codes erhalten.<br />

Längere Parameterlisten führen<br />

leichter als kurze zu einer falschen<br />

Reihenfolge der Argumente<br />

in einem Aufruf. In <strong>Python</strong> minimieren<br />

Sie dieses Risiko, indem<br />

Sie Parameter beim Aufruf mit deren<br />

Namen versehen (Listing 11).<br />

Sie müssen also nicht unbedingt<br />

auswendig wissen, dass in der Definition<br />

die Liste vor der Zeichenclass<br />

ImmerUngleich(object):<br />

def __eq__(self, rechte_<br />

seite):<br />

"""Definiere das<br />

Verhalten des Gleichheits-<br />

Operators ==."""<br />

return False<br />

x = ImmerUngleich()<br />

y = x<br />

print x is y # True<br />

print x == y # False<br />

def __eq__(self, rechte_seite):<br />

"""Definiere das Verhalten des Operators ==."""<br />

return True<br />

x = ImmerGleich()<br />

print x == None # True, obwohl x nicht None ist<br />

print None == x # True, obwohl x nicht None ist<br />

print x is None # False<br />

Listing 6<br />

L1 = [1, 2]<br />

L2 = L1<br />

L1.append(3)<br />

print L1 # [1, 2, 3]<br />

print L2 # auch [1, 2, 3]<br />

print L1 is L2 # True<br />

Listing 7<br />

L = [1]<br />

t = (L,) # Tupel mit der Liste<br />

als einzigem Element<br />

L.append(2)<br />

print L # [1, 2]<br />

print t[0] # [1, 2]<br />

print L is t[0] # True<br />

Listing 8<br />

def zeige_namen(namen):<br />

"""Gib die Namen in der<br />

Liste `namen` aus."""<br />

if namen:<br />

print "\n".join(namen)<br />

else:<br />

print "keine Namen<br />

vorhanden"<br />

„Wahrheit“ und<br />

„Falschheit“<br />

Für die eingebauten Datentypen<br />

von <strong>Python</strong> gilt: Als „falsch“ gelten<br />

numerische Null­Werte (0, 0.0,<br />

0.0+0.0j), leere Strings ("", u""),<br />

leere Container ([], (), {}, set(),<br />

frozenset()) sowie None und False.<br />

Alle anderen eingebauten Objekte<br />

sind „wahr“. Folglich lassen sich<br />

viele if­, elif­ und while­Bedingungen<br />

wie in der Tabelle Idiomatische<br />

Bedingungen aufgeführt<br />

auch einfacher schreiben. Eine<br />

Anwendung zeigt das Listing 8.<br />

Abgesehen davon, dass sie sich<br />

kompakter schreiben und leichter<br />

lesen lässt, hat die kurze Form<br />

noch einige weitere Vorteile:<br />

• Sie führt zu einem höheren Abstraktionsniveau.<br />

Man fragt also<br />

zum Beispiel nicht, „Ist die Liste<br />

namen ungleich der leeren Liste?“,<br />

sondern „Gibt es Namen?“<br />

• Die Kurzform macht Code­Änderungen<br />

unnötig, wenn sich<br />

der Container­Typ ändert. Die<br />

Funktion zeige_namen in Listing<br />

8 kann unverändert bleiben,<br />

wenn Sie der Funktion<br />

statt einer Namensliste ein<br />

Tupel oder ein Set übergeben.<br />

• Deshalb gilt die Funktion nicht<br />

nur für Listen, sondern auch für<br />

andere Sequenzen. Ein Umstellen<br />

der Schnittstelle ist also<br />

nicht nötig, sondern die Funktion<br />

kann mehrere Schnittstellen<br />

gleichzeitig anbieten.<br />

Listing 9<br />

fobj = open(dateiname, 'rb')<br />

# Lies die ersten 100 Bytes.<br />

data = fobj.read(100)<br />

# Keine Klammern nach `close`,<br />

also kein Aufruf.<br />

fobj.close<br />

Listing 10<br />

def anhaengen(obj, L=[]):<br />

L.append(obj)<br />

return L<br />

print anhaengen(2) # [2]<br />

print anhaengen(5) # [2, 5]<br />

print anhaengen(1, []) # [1];<br />

Default-Argument nicht benutzt<br />

30 02 | 11<br />

www.linux-user.de


Robuste <strong>Python</strong>-Programme<br />

schwerpunkt<br />

kette steht. Die drei Aufrufe von<br />

merke sind gleichwertig: Alle hängen<br />

die Zeichenkette an die Liste,<br />

auch wenn wie im dritten Aufruf<br />

der String zuerst steht.<br />

In <strong>Python</strong> dürfen Sie in Funktions­<br />

oder Methodenaufrufen ein<br />

Tupel, eine Liste oder ein Dictionary<br />

implizit in mehrere Argumente<br />

umwandeln. Die entsprechenden<br />

Beispiele aus Listing 12<br />

sind zwar konstruiert, erklären<br />

aber, was hier passiert. Die als Tupel<br />

oder Liste übergebenen Argumente<br />

nennt man Positionsargumente<br />

(„positional arguments“),<br />

die als Dictionary übergebenen<br />

Argumente Schlüsselwortargumente<br />

(„keyword arguments“).<br />

Natürlich schreibt man in realem<br />

Code keine Parameterübergaben<br />

wie in Listing 12. Liegen die<br />

Argumente aber schon als Tupel,<br />

Listen oder Dictionaries vor, vereinfachen<br />

Positions­ und Schlüsselwortargumente<br />

den Code.<br />

Positions­ und Schlüsselwortargumente<br />

lassen sich nicht nur<br />

beim Aufruf einer Funktion oder<br />

Methode anwenden, sondern auch<br />

in deren Definition. Dabei „sieht“<br />

die aufgerufene Funktion die Parameter<br />

als Tupel beziehungsweise<br />

Dictionary. Ein Beispiel zeigt Listing<br />

13. Die Funktion parameterausgabe<br />

gibt die für eine Funktion<br />

bestimmten Argumente aus und<br />

ruft die Funktion anschließend<br />

mit diesen Argumenten auf. Dabei<br />

muss parameterausgabe nichts<br />

über die aufzurufende Funktion<br />

wissen, sondern reicht einfach<br />

nur die Parameter durch.<br />

Eine weitere nützliche Anwendung<br />

zeigt Listing 14. Hier muss<br />

die abgeleitete Klasse nicht im<br />

idiomatische Bedingungen<br />

Langform Idiomatische<br />

Kurzform<br />

if wert == True if wert<br />

if liste != [] if liste<br />

if liste == [] if not liste<br />

if len(liste) == if not liste<br />

0<br />

if string == u"" if not string<br />

… und so weiter<br />

Einzelnen wissen, welche Parameter<br />

der Konstruktor der Basisklasse<br />

verarbeitet. Sie kümmert<br />

sich stattdessen nur um das für<br />

sie bestimmte Argument titel.<br />

Die Übergabe eines Arguments<br />

läuft wie eine Zuweisung ab: Der<br />

lokale Name innerhalb der Funktionsdefinition<br />

wird mit dem übergebenen<br />

Objekt verknüpft. Zuweisungen<br />

innerhalb des Funktionsrumpfes<br />

beziehen sich aber standardmäßig<br />

nur auf den lokalen Namensraum<br />

der Funktion. Der Code<br />

in Listing 15 (nächste Seite), der<br />

die übergebene Liste löschen soll,<br />

funktioniert daher nicht.<br />

Tatsächlich entsteht hier innerhalb<br />

der Funktion eine neue Liste,<br />

die mit dem lokalen Namen liste<br />

verknüpft wird. Die vorherige Bindung<br />

an die Liste [1, 2, 3] geht<br />

verloren, sodass das ursprüngliche<br />

Argument nicht mehr zugänglich<br />

ist. Dennoch lässt sich<br />

die übergebene Liste innerhalb<br />

von liste_loeschen leeren, indem<br />

man die Zeile liste = [] durch<br />

liste[:] = [] ersetzt. Dadurch ändert<br />

sich die übergebene Liste.<br />

Im Gegensatz dazu funktioniert<br />

so etwas bei unveränderlichen<br />

Objekten definitionsgemäß nicht.<br />

Hier ist das übliche Vorgehen, das<br />

Ergebnis eines Funktionsaufrufs<br />

dem ursprünglichen Namen zuzuweisen.<br />

Bei veränderlichen Argumenten<br />

verfährt man aber oft<br />

genauso.<br />

Umgang mit Ausnahmen<br />

(Exceptions)<br />

Einige Sprachen wie die Unix­<br />

Shell oder C nutzen typischerweise<br />

Rückgabewerte zur Fehlerbehandlung.<br />

Verschiedene andere<br />

Sprachen, unter anderem <strong>Python</strong>,<br />

def merke(liste, string):<br />

liste.append(string)<br />

Listing 11<br />

L = []<br />

merke(L, u"<strong>Python</strong> macht Spaß!")<br />

merke(liste=L, string=u"<strong>Python</strong><br />

macht Spaß!")<br />

merke(string=u"<strong>Python</strong> macht<br />

Spaß!", liste=L)<br />

Listing 12<br />

def print3(a, b, c):<br />

"""Gib die drei Argumente aus."""<br />

print a, b, c<br />

# Übergabe eines Tupels oder einer Liste für die drei<br />

Parameter.<br />

# Entspricht print3("Parameterübergabe", "mit", "*")<br />

print3(*("Parameterübergabe", "mit", "*"))<br />

print3(*["Parameterübergabe", "mit", "*"])<br />

# Übergabe eines Dictionarys für die drei Parameter.<br />

# entspricht print3(a="Parameterübergabe", c="**",<br />

b="mit")<br />

print3(**{"a": "Parameterübergabe", "c": "**", "b":<br />

"mit"})<br />

Listing 13<br />

def parameterausgabe(func, *args, **kwargs):<br />

"""Gib die Argumente aus und rufe die Funktion func<br />

mit diesen auf.<br />

"""<br />

# Funktionsname.<br />

print "Funktion:", func.__name__<br />

# `args` ist ein Tupel; kein * davor.<br />

print "Positions-Argumente:", args<br />

# Dito für Dictionary.<br />

print "Schlüsselwort-Argumente:", kwargs<br />

# Rufe Funktion auf.<br />

return func(*args, **kwargs)<br />

def polynom(x, a, b, c):<br />

return a * x**2 + b * x + c<br />

# Ausgabe:<br />

# 18<br />

#<br />

# Funktion: polynom<br />

# Positions-Argumente: (2,)<br />

# Schlüsselwort-Argumente: {'a': 2, 'c': 4, 'b': 3}<br />

# 18<br />

print polynom(2, a=2, b=3, c=4)<br />

print<br />

print parameterausgabe(polynom, 2, a=2, b=3, c=4)<br />

Listing 14<br />

class Person(object):<br />

def __init__(self, vorname, nachname):<br />

self.vorname = vorname<br />

self.nachname = nachname<br />

def __str__(self):<br />

return "%s %s" % (self.vorname, self.nachname)<br />

class Autor(Person):<br />

def __init__(self, *args, **kwargs):<br />

self.titel = kwargs.pop("titel")<br />

super(Autor, self).__init__(*args, **kwargs)<br />

autor = Autor(u"Stefan", u"Schwarzer",<br />

titel=u"Robuste <strong>Python</strong>-Programme")<br />

www.linux-user.de<br />

02 | 11 31


schwerpunkt<br />

Robuste <strong>Python</strong>-Programme<br />

Listing 19<br />

Listing 15<br />

soll. Die Idee dabei: Ein Zugriff<br />

auf person[name] löst einen<br />

KeyError aus, falls es keinen Personen­Datensatz<br />

im Dictionary<br />

person gibt. (Der Dictionary­Zugriff<br />

über den Schlüssel alter<br />

kann nicht zu einem KeyError führen,<br />

da der Schlüssel alter gegebenenfalls<br />

erzeugt wird.)<br />

So weit, so gut. Enthält aber<br />

alter_aus_db selbst einen Dictionary­Zugriff,<br />

zum Beispiel return<br />

cache[name], fängt dies unabsichtlich<br />

auch einen dadurch entstandenen<br />

KeyError ab.<br />

Die Abhilfe besteht darin, gezielt<br />

nur jenen Code in den try­<br />

Block zu schreiben, der von der<br />

Ausnahmebehandlung betroffen<br />

sein soll (Listing 18). Noch besser:<br />

Lassen Sie alter_aus_db einen<br />

KeyError gar nicht erst „durchreichen“,<br />

sondern setzen Sie ihn in<br />

eine stärker abstrahierte Exception<br />

wie CacheError um. Dazu fangen<br />

Sie den KeyError in alter_aus_<br />

db und lösen die stärker abstrahierte<br />

Ausnahme mit raise aus.<br />

Erzeugen Sie irgendwo im Code<br />

Ressourcen wie Dateien, Sockets<br />

oder Datenbank­Verbindungen,<br />

dann sollten Sie diese nach der<br />

Verwendung mit einem try/<br />

finally­ oder einem with­Konstrukt<br />

freigegeben (Listing 19).<br />

Wollen Sie mehrere Ausnahmetypen<br />

gleich behandeln, umgeben<br />

Sie diese wie in Listing 20 mit<br />

Klammern. Fehlen Letztere, versteht<br />

<strong>Python</strong> das folgendermadef<br />

liste_loeschen(liste):<br />

liste = []<br />

eine_liste = [1, 2, 3]<br />

liste_loeschen(eine_liste)<br />

print eine_liste # [1, 2, 3],<br />

nicht gelöscht!<br />

Listing 16<br />

# Dieser Code tut nicht, was man<br />

erwartet.<br />

try:<br />

fobj = opne("evtl_nicht_da")<br />

except:<br />

print "Datei nicht<br />

vorhanden"<br />

Listing 17<br />

def alter_aus_db(name):<br />

...<br />

try:<br />

person[name][alter] = alter_<br />

aus_db(name)<br />

except KeyError:<br />

print 'Kein Datensatz für<br />

Person "%s"' % name<br />

Listing 18<br />

def alter_aus_db(name):<br />

...<br />

db_alter = alter_aus_db(name)<br />

try:<br />

person[name][alter] = db_<br />

alter<br />

except KeyError:<br />

print 'Kein Datensatz für<br />

Person "%s"' % name<br />

db_conn = connect(datenbank)<br />

try:<br />

# Datenbank-Operationen<br />

...<br />

finally:<br />

db_conn.rollback()<br />

db_conn.close()<br />

# Für Dateien alternativ mit `with` (ab <strong>Python</strong> 2.5) ...<br />

# Import-Anweisung ist nur bei <strong>Python</strong> 2.5 nötig.<br />

from __future__ import with_statement<br />

with open(dateiname) as fobj:<br />

# Datei wird am Ende des `with`-Blocks automatisch<br />

geschlossen.<br />

data = fobj.read()<br />

arbeiten stattdessen mit Ausnahmen<br />

(„Exceptions“). Zwei Erörterungen<br />

des Programmierers Ned<br />

Batchelder beschreiben anhand<br />

von Beispielen ausführlich die<br />

Konsequenzen der beiden Strategien<br />

([3],[4]).<br />

Oft findet man in <strong>Python</strong>­Code<br />

„leere“ except­Anweisungen wie in<br />

Listing 16. Der Hintergedanke des<br />

Programm­Autors dabei ist normalerweise,<br />

dass nur ein bestimmter<br />

Fehler auftreten kann. Das<br />

würde die gezielte Kontrolle auf<br />

einen IOError, OSError oder eine<br />

andere Ausnahme unnötig machen.<br />

Dieser Ansatz erweist sich<br />

als problematisch, weil ein leerer<br />

except­Zweig auch Schreibfehler<br />

in Form von NameError­ und AttributeError­Ausnahmen<br />

abfängt.<br />

Im Beispiel steht in der zweiten<br />

Zeile opne statt open. Das ist nicht<br />

etwa ein Syntaxfehler, sondern<br />

erzeugt – zur Laufzeit – einen<br />

NameError. Der Code weist beim<br />

Lauf also auf eine nicht gefundene<br />

Datei hin, auch wenn es diese<br />

tatsächlich gibt. Viel Spaß<br />

beim Finden solcher Fehler! Falls<br />

nicht ausgesprochen gute Gründe<br />

dagegen sprechen, sollten Sie die<br />

zu behandelnden Ausnahmeklassen<br />

also immer angeben.<br />

Eine Übersicht der von der Sprache<br />

selbst erzeugten Ausnahmen<br />

gibt es unter [5]. Die mit <strong>Python</strong><br />

gelieferten Module können darüber<br />

hinaus freilich noch andere<br />

Ausnahmen auslösen, deren Dokumentation<br />

sich jeweils in den<br />

Modulbeschreibungen findet.<br />

Tückisch ist auch zu viel Code in<br />

einem try­Block. Listing 17 zeigt<br />

ein Beispiel, in dem eine Funktion<br />

alter_aus_db das Alter einer<br />

Person aus einer Datenbank laden<br />

Listing 20<br />

try:<br />

# Kann `ValueError` oder<br />

`IndexError` auslösen.<br />

...<br />

except (ValueError, IndexError):<br />

# Gleiche Fehlerbehandlung<br />

für `ValueError` und<br />

`IndexError`<br />

...<br />

Listing 21<br />

class DatabaseError(Exception):<br />

pass<br />

class<br />

NotUniqueError(DatabaseError):<br />

pass<br />

...<br />

try:<br />

...<br />

# Abgeleitete vor der<br />

Basisklasse!<br />

except NotUniqueError:<br />

...<br />

except DatabaseError:<br />

...<br />

32 02 | 11<br />

www.linux-user.de


Robuste <strong>Python</strong>-Programme<br />

schwerpunkt<br />

ßen: Fange einen ValueError ab<br />

und mache das Ausnahme­Objekt<br />

unter dem Namen IndexError verfügbar.<br />

In <strong>Python</strong> 3 sollte diese<br />

Fehlerquelle nicht mehr vorkommen,<br />

denn es macht beim gleichzeitigen<br />

Fangen mehrerer Ausnahmeklassen<br />

solche Klammern<br />

zur Pflicht; ein Ausnahme­Objekt<br />

wird stattdessen durch except<br />

ValueError as exception_object zugänglich.<br />

<strong>Python</strong> 2.6 erlaubt diese<br />

Syntax ebenfalls.<br />

Da bei mehreren gleichermaßen<br />

passenden except­Zweigen immer<br />

der erste verwendet wird, müssen<br />

abgeleitete Ausnahmeklassen wie<br />

in Listing 21 vor deren Basisklassen<br />

erscheinen. Anderenfalls wird<br />

nur der except­Zweig für die Basisklasse<br />

ausgeführt.<br />

Vom Umgang mit<br />

Exec und Eval<br />

<strong>Python</strong> gilt als eine sehr dynamische<br />

Sprache. Das bringt manchen<br />

Zeitgenossen auf die Idee,<br />

die Anweisung exec beziehungsweise<br />

die Funktion eval zur Ausführung<br />

von Text als Code zu verwenden.<br />

Tatsächlich benötigt<br />

man exec und eval aber nur sehr<br />

selten, da <strong>Python</strong> für deren vermeintlich<br />

typische Anwendungen<br />

weit bessere Möglichkeiten bietet.<br />

Das ist auch gut so, denn exec<br />

und eval haben eine ganze Reihe<br />

von Nachteilen:<br />

• Der Code fällt weniger übersichtlich<br />

aus.<br />

• Es passieren wesentlich leichter<br />

Einrückungsfehler.<br />

def baue_addierer(offset):<br />

# Fuer konsistente<br />

Einrueckungen sorgen.<br />

code = """<br />

def addierer(n):<br />

return n + %d<br />

""" % offset<br />

exec code<br />

return addierer<br />

neuer_addierer =<br />

Listing 22<br />

baue_addierer(3)<br />

print neuer_addierer(2) # 3 +<br />

2 = 5<br />

• Die Kontrolle der Syntax findet<br />

erst zur Laufzeit statt.<br />

• Es schleichen sich leicht Sicherheitslücken<br />

ein.<br />

• Die Möglichkeiten, Code mit<br />

speziellen Programmen (dazu<br />

später mehr) zu untersuchen,<br />

werden eingeschränkt.<br />

Eine „typische“ Anwendung von<br />

exec ist, Code unter Verwendung<br />

von vorher definierten Bezeichnern<br />

zu generieren. Ein Beispiel<br />

findet sich in Listing 22. Die<br />

Funktion baue_addierer erzeugt<br />

eine andere Funktion addierer, die<br />

zu ihrem Argument n einen Offset<br />

hinzuzählt. Der Code von<br />

baue_addierer erscheint recht unübersichtlich;<br />

die Einrückungen<br />

des Codes der eingebetteten<br />

Funktionsdefinition addierer<br />

müssen <strong>Python</strong>­gemäß natürlich<br />

stimmen, jedoch muss die Einrückung<br />

„von Null aus“ am linken<br />

Rand starten.<br />

Wie Listing 23 zeigt, geht es viel<br />

einfacher: In <strong>Python</strong> lassen sich<br />

Funktionsdefinitionen beliebig<br />

verschachteln. Sie dürfen sogar<br />

ganze Klassen innerhalb von<br />

Funk ti o nen oder Methoden erzeugen<br />

und als Resultat zurückgeben.<br />

Die Funktion eval setzen manche<br />

Programmierer dazu ein, auf<br />

ein erst zur Laufzeit bekanntes<br />

Attribut eines Objekts zuzugreifen<br />

(Listing 24). Genau hierfür<br />

gibt es jedoch eigentlich die<br />

Funktionen getattr, setattr und<br />

delattr. Der eval­Ausdruck lässt<br />

sich daher durch getattr(obj,<br />

"wert%d" % n) ersetzen. (Bei mehreren<br />

Attributnamen, die sich wie<br />

hier nur durch Zahlen unterscheiden,<br />

sollten Sie eher eine Liste beziehungsweise<br />

ein Dictionary<br />

def baue_addierer(offset):<br />

def addierer(n):<br />

return n + offset<br />

return addierer<br />

Listing 23<br />

Listing 24<br />

def wert_n(obj, n):<br />

return eval("obj.wert%d" %<br />

n)<br />

nutzen. In diesen fungieren die<br />

Zahlen dann als Indizes beziehungsweise<br />

Schlüssel.)<br />

Für Modul­globale Werte funktionieren<br />

zwar nicht die oben angegebenen<br />

Funktionen, Sie können<br />

aber direkt das von der Funktion<br />

globals gelieferte Dictionary manipulieren.<br />

Dies zeigt Listing 25.<br />

Ein weiteres Problem von exec<br />

und eval: Beide reißen leicht Sicherheitslöcher,<br />

falls beliebige<br />

Eingabedaten in auszuführenden<br />

Code gelangen. Die Abbildung B<br />

auf der nächsten Seite zeigt als<br />

Beispiel eine Eingabemaske für<br />

einen Funktionsplotter im Internet.<br />

Das Listing 26 enthält den<br />

zugehörigen Code. Die Schleife<br />

durchläuft (durch Multiplikation<br />

des Schleifenzählers mit 0.1) eine<br />

Wertetabelle von ­10 bis +10,<br />

wertet die vom Anwender eingegebene<br />

Funktion für den aktuellen<br />

X­Wert aus und trägt den<br />

Punkt in eine Liste ein, aus der<br />

nach Ende der Schleife ein Diagramm<br />

entsteht.<br />

Was aber geschieht, wenn die<br />

anzuzeigende „Funktion“ nicht<br />

2*x + 3 heißt, sondern stattdessen<br />

os.system('rm -rf *')? Falls irgendwo<br />

im Modul das Modul os<br />

importiert wurde und der Funktionsplotter<br />

mit Schreibrechten<br />

auf das Verzeichnis zugreifen<br />

kann, löscht er in diesem Fall alle<br />

dort gelagerten Dateien!<br />

for name in u"Dies ist ein<br />

Beispiel".split():<br />

globals()[name] = name<br />

Das ist äquivalent zu:<br />

Dies = u"Dies"<br />

ist = u"ist"<br />

ein = u"ein"<br />

Beispiel = u"Beispiel"<br />

def auswertung(funktion):<br />

Listing 25<br />

Listing 26<br />

for i in xrange(-100, 101):<br />

x = 0.1 * i<br />

y = eval(funktion)<br />

punkte.append((x, y))<br />

zeige_funktion(punkte)<br />

www.linux-user.de<br />

02 | 11 33


schwerpunkt<br />

Robuste <strong>Python</strong>-Programme<br />

B Ein Funktionsplotter<br />

mit eingebauter Sicherheitslücke<br />

(siehe auch<br />

Listing 26, vorige Seite).<br />

Es gibt mehrere Möglichkeiten,<br />

um derartige Sicherheitslücken<br />

beim Umgang mit exec und eval<br />

zu vermeiden. Zum einen sollten<br />

Sie eine erhaltene Eingabe möglichst<br />

auf gültige Werte prüfen<br />

(Listing 27). Im Code könnte<br />

gueltige_werte beispielsweise eine<br />

Liste oder ein Set sein. Lässt sich<br />

keine Menge gültiger Werte erzeugen,<br />

muss ein Parser her. Damit<br />

zerlegen Sie die Eingaben für<br />

eine sinnvolle Auswertung.<br />

Je nach gewünschten Ein­ und<br />

Ausgabedaten können Parser aber<br />

recht aufwendig sein. Erfreulicherweise<br />

gibt es verschiedene<br />

Parser­Frame works für <strong>Python</strong> [6].<br />

Interessanterweise findet sich im<br />

dort genannten PyParsing­Paket<br />

auch ein Parser für arithmetische<br />

Ausdrücke, wie man ihn für den<br />

Funktionsplotter aus dem Beispiel<br />

benutzen könnte.<br />

Auch für das Auswerten des<br />

JSON­Formats [7], das oft für<br />

den Datenaustausch zwischen<br />

Listing 27<br />

if eingabe in gueltige_werte:<br />

# Alles ok - exec oder eval<br />

anwendbar.<br />

...<br />

else:<br />

# Erzeuge Fehlermeldung oder<br />

verwende einen Vorgabwert.<br />

Listing 28<br />

import os<br />

def verzeichnis(name):<br />

return os.system("ls -l %s"<br />

% name)<br />

Browsern und Webservern zum<br />

Einsatz kommt, missbrauchen<br />

manche Programmierer gerne<br />

eval. Für JSON gibt es jedoch in<br />

der <strong>Python</strong>­Standardbibliothek<br />

das Modul json. Viele andere spezialisierte<br />

Parser finden sich im<br />

<strong>Python</strong> Package Index, PyPI [8].<br />

Lücken vermeiden<br />

mit Subprocess<br />

Das Modul subprocess hilft ebenfalls<br />

beim Vermeiden von Sicherheitslücken.<br />

Bis vor einigen Jahren<br />

diente zur Ausführung von externen<br />

Kommandos in der Regel<br />

die Funktion system aus dem Modul<br />

os. Entsprechend oft finden<br />

sich entsprechende Stellen noch<br />

in älterem Code – und neuerem,<br />

bei dem sich der Autor den älteren<br />

zum Vorbild genommen hat.<br />

Die Funktion os.system weist jedoch<br />

einen großen Nachteil auf,<br />

wie Listing 28 zeigt. Für „normale“<br />

Verzeichnisnamen ohne Leerzeichen<br />

funktioniert dieser Code.<br />

Stammt allerdings der Name von<br />

außerhalb des Programms, lässt<br />

er sich so manipulieren, dass der<br />

Code etwas Unerwünschtes tut.<br />

Lautet name zum Beispiel . ; rm<br />

-rf *, dann zeigt der Aufruf von<br />

verzeichnis nicht nur das aktuelle<br />

Verzeichnis an, sondern leert es<br />

anschließend auch.<br />

Listing 29<br />

import subprocess<br />

def verzeichnis(name):<br />

return subprocess.<br />

call(["ls", "-l", name])<br />

Zwar verhindern Sie diesen Angriff<br />

durch Einschließen des<br />

Platzhalters %s in einfache Anführungszeichen,<br />

aber eine nur wenig<br />

kompliziertere Zeichenkette<br />

umgeht auch diesen vermeintlichen<br />

Schutz. Solche Sorgen ersparen<br />

Sie sich mit dem subprocess­<br />

Modul. Der Code aus Listing 29<br />

deckt die gleiche Funktionalität<br />

ab wie jener aus Listing 28, lässt<br />

sich aber von hinterhältigen Zeichenketten<br />

wie oben nicht verwirren.<br />

Hier geht der Inhalt von<br />

name direkt an den ls­Befehl, ohne<br />

Interpretation durch eine Shell.<br />

Im subprocess­Modul finden sich<br />

daneben auch noch sichere Varianten<br />

von os.popen und ähnlich<br />

gearteten Funktionen.<br />

For-Schleifen konsequent<br />

vereinfachen<br />

Umsteiger von manchen Programmiersprachen<br />

sind es gewohnt,<br />

auf Arrays über Indizes<br />

zuzugreifen. Nach diesem Muster<br />

könnte man die Namen einiger<br />

Programmiersprachen so ausgeben,<br />

wie in Listing 30 zu sehen.<br />

Da <strong>Python</strong>s for­Schleife jedoch<br />

einfach Wert für Wert über eine<br />

Sequenz iteriert, kann man den<br />

vorherigen Code deutlich einfacher<br />

schreiben, wie Listing 31 zeigt. Benötigen<br />

Sie den Index doch einmal,<br />

nehmen Sie am besten die eingebaute<br />

Funktion enumerate in Anspruch<br />

(Listing 32). Der bei jedem<br />

Schleifendurchlauf erzeugte Index<br />

startet bei null.<br />

Einfacher Umgang mit<br />

Zeichenketten<br />

Zeichenketten, sowohl Byte­ als<br />

auch Unicode­Strings, gelten in<br />

<strong>Python</strong> als unveränderbar. Sie<br />

können hier also nicht wie bei Listen<br />

einzelne Abschnitte verändern,<br />

sondern müssen bei Bedarf<br />

ein neues String­Objekt erzeugen.<br />

Zwar besitzen Strings die Methoden<br />

index und find. Wollen Sie<br />

aber nur feststellen, ob eine Zeichenkette<br />

in einer anderen enthalten<br />

ist, erledigen Sie das einfach<br />

wie in der ersten if­Anwei­<br />

34 02 | 11<br />

www.linux-user.de


Robuste <strong>Python</strong>-Programme<br />

schwerpunkt<br />

sung in Listing 33. Daneben gibt<br />

es noch Zeichenketten­Methoden,<br />

um festzustellen, ob ein<br />

String mit einer bestimmten Zeichenkette<br />

beginnt beziehungsweise<br />

endet. Das demonstrieren<br />

die beiden weiteren if­Anweisungen<br />

des Listings.<br />

Wichtig für robuste <strong>Python</strong>­Programme<br />

ist auch die Unterscheidung<br />

zwischen Byte­Strings und<br />

Unicode­Strings. Dazu gilt es aber<br />

weiter auszuholen, sodass dieses<br />

Thema einem späteren Artikel<br />

vorbehalten bleibt. Einen <strong>Einstieg</strong><br />

ins Thema finden Sie in der<br />

<strong>Python</strong>­Unicode­FAQ [9].<br />

Faustregel: Optimiere<br />

(noch) nicht<br />

Sowohl Programmieranfänger als<br />

auch mancher Fortgeschrittene<br />

versuchen sich schon beim ursprünglichen<br />

Schreiben von Code<br />

an Geschwindigkeitsoptimierungen.<br />

In aller Regel führt das jedoch<br />

nicht zu einer schnelleren<br />

Ausführung, sondern nur zu<br />

schwerer verständlichem Code.<br />

Obendrein haben manche vermeintliche<br />

„Optimierungen“ nicht<br />

den gleichen Effekt wie in anderen<br />

Sprachen und machen den<br />

Code womöglich sogar langsamer.<br />

In Bezug auf Geschwindigkeitsoptimierungen<br />

sollten Sie sich daher<br />

an die Regeln halten, die für<br />

alle Programmiersprachen gleichermaßen<br />

gelten: Schreiben Sie<br />

den Code zunächst so wartbar wie<br />

möglich. Stellen Sie parallel dazu<br />

sicher, dass der Code wie erwartet<br />

funktioniert. Oft läuft das Programm<br />

am Ende dieser Entwicklung<br />

schon schnell genug.<br />

Listing 30<br />

sprachen = [u"<strong>Python</strong>", u"Ruby",<br />

u"Perl"]<br />

for i in range(len(sprachen)):<br />

print sprachen[i]<br />

Listing 31<br />

sprachen = [u"<strong>Python</strong>", u"Ruby",<br />

u"Perl"]<br />

for sprache in sprachen:<br />

print sprache<br />

Tut es das nicht, hilft definitiv<br />

kein Raten, um herauszufinden,<br />

wo Sie dem Code auf die Sprünge<br />

helfen müssen. Mit einem Profiler<br />

(in der Regel kommt dazu das <strong>Python</strong>­Modul<br />

cProfile zum Einsatz)<br />

finden Sie heraus, wo genau sich<br />

die Flaschenhälse verbergen. Nur<br />

an diesen Stellen optimieren Sie<br />

gezielt und nehmen die Änderungen<br />

im Interesse der Wartbarkeit<br />

wieder zurück, falls sie nicht den<br />

erwarteten Erfolg bringen.<br />

Einen ausführlichen Leitfaden<br />

zum Optimieren von <strong>Python</strong>­Code<br />

finden Sie bei Interesse in einem<br />

älteren Artikel unserer Schwesterzeitschrift<br />

Linux­Magazin [10].<br />

Freie Werkzeuge zur<br />

Code-Analyse<br />

Kein Programmierer hat stets alle<br />

Ratschläge zum Vermeiden typischer<br />

Fehler im Kopf. Zum Glück<br />

gibt es einige Open­Source­Werkzeuge,<br />

die <strong>Python</strong>­Code statisch<br />

auf so manches typische Problem<br />

untersuchen wie etwa ungenutzte<br />

Module oder Funktionsargumente.<br />

Die bekanntesten Werkzeuge<br />

dieses Genres sind PyLint, Py­<br />

Checker und PyFlakes [11].<br />

Wunder dürfen Sie von diesen<br />

Werkzeugen freilich nicht erwarten.<br />

Da sich die Prüfungen jedoch<br />

automatisiert vornehmen lassen,<br />

sprachen = [u"<strong>Python</strong>", u"Ruby",<br />

u"Perl"]<br />

for index, sprache in<br />

enumerate(sprachen):<br />

print "%d: %s" % (index + 1,<br />

sprache)<br />

string = "<strong>Python</strong>"<br />

Listing 32<br />

Listing 33<br />

if "th" in string:<br />

print 'String enthält "th".'<br />

if string.startswith("Py"):<br />

print 'String beginnt mit<br />

"Py".'<br />

if string.endswith("on"):<br />

print 'String endet mit<br />

"on".'<br />

sollten Sie die gebotenen Möglichkeiten<br />

regelmäßig nutzen.<br />

Selbst fortgeschrittene Entwickler<br />

profitieren noch von diesen<br />

nützlichen Tools.<br />

Fazit: einfach,<br />

verständlich, robust<br />

<strong>Python</strong> ist einfach – aber nicht so<br />

einfach, dass man es allein durch<br />

Lesen von Code lernen könnte.<br />

Um Fehler zu vermeiden, gilt es,<br />

mögliche Fallstricke zu kennen.<br />

Falls Sie aber bei der Lektüre dieses<br />

Artikels den Eindruck gewonnen<br />

haben, <strong>Python</strong> sei eine sehr<br />

fehleranfällige Sprache, sollten<br />

Sie bedenken, dass viele der Ratschläge<br />

(speziell jene zum Vermeiden<br />

von Sicherheitslücken)<br />

ganz ähnlich auch auf andere<br />

Sprachen zutreffen.<br />

Manche Verwirrung entsteht<br />

dadurch, dass Programmierer<br />

Konzepte aus anderen Sprachen<br />

unbedacht auf <strong>Python</strong> anwenden.<br />

Wer erst einmal beispielsweise<br />

das Konzept von Namen und Objekten<br />

begriffen hat, dem unterlaufen<br />

entsprechende Fehler nur<br />

noch selten. Daneben enthält der<br />

Artikel noch diverse Ratschläge,<br />

die nicht der Fehlervermeidung<br />

dienen, sondern zu leichter verständlichem<br />

und besser wartbarem<br />

Code führen, zum Beispiel<br />

kompakter formulierte Bedingungen<br />

in if­Anweisungen. (jlu) n<br />

[1] <strong>Python</strong>: http:// www. python. org<br />

[2] Style Guide for <strong>Python</strong> Code (PEP 8):<br />

http:// www. python. org/ dev/ peps/ pep-0008<br />

[3] Exceptions vs. Statuscodes (1):<br />

http:// nedbatchelder. com/ text/ exceptions-vs-status. html<br />

[4] Exceptions vs. Statuscodes (2):<br />

http:// nedbatchelder. com/ text/ exceptions-in-the-rainforest. html<br />

[5] Eingebaute Ausnahmeklassen: http:// docs. python. org/ library/ exceptions. html<br />

[6] Parser-Frameworks für <strong>Python</strong>:<br />

http:// nedbatchelder. com/ text/ python-parsers. html<br />

[7] JSON: http:// de. wikipedia. org/ wiki/ JSON<br />

[8] <strong>Python</strong> Package Index: http:// pypi. python. org/ pypi<br />

[9] <strong>Python</strong>-Unicode-FAQ: http:// www. p-nand-q. com/ python/ unicode_faq. html<br />

[10] Optimierung von <strong>Python</strong>-Code:<br />

http:// www. linux-magazin. de/ Heft-Abo/ Ausgaben/ 2006/ 12/ Gut-gezielt<br />

[11] Analyse-Tools für <strong>Python</strong>: http:// www. doughellmann. com/ articles/<br />

pythonmagazine/ completely-different/ 2008-03-linters/<br />

der autor<br />

Stefan Schwarzer verwendet<br />

Unix und Linux<br />

seit über zehn Jahren<br />

auf Servern und Desktops.<br />

Sie erreichen<br />

den selbstständigen<br />

Software-Entwickler<br />

und Berater per Mail<br />

unter sschwarzer@<br />

sschwarzer.com.<br />

info<br />

www.linux-user.de<br />

02 | 11 35


schwerpunkt<br />

Arduino<br />

Die quelloffene<br />

Hardware Arduino<br />

gewährt einen<br />

faszinierenden Einblick<br />

in die Welt<br />

der Mikrocontroller<br />

und elektronischen<br />

Schaltungen.<br />

Ein passendes<br />

Lernpaket von<br />

Franzis eröffnet<br />

auch Einsteigern<br />

den unkomplizierten<br />

Zugang.<br />

Jörg Luther<br />

reADMe<br />

Der Franzis-Verlag<br />

schnürt ein Freeduino<br />

Board mit ATmega168-<br />

Controller, Software, etliche<br />

Bauteile für Experimente<br />

sowie ein<br />

200-seitiges Handbuch<br />

zu einem kompakten<br />

und instruktiven Lernpaket<br />

für Einsteiger.<br />

GlossAr<br />

Breadboard: Steckplatine<br />

zum mechanischen<br />

Befestigen und lötfreien<br />

elektrischen Verbinden<br />

elektronischer Bauteile.<br />

Arduino-Lernpaket von Franzis<br />

Plug & Play<br />

Ursprünglich entstand das Arduino-Projekt<br />

[1] an einem mittlerweile<br />

geschlossenen Design-Institut<br />

[2] im italienischen Turin und<br />

verdankt seinen Namen einem<br />

beliebten Studentencafé in dessen<br />

Nähe. Die Arduino-Plattform<br />

verbindet die freie Architektur eines<br />

Mikrocontroller-Boards mit<br />

analogen und digitalen Schnittstellen<br />

sowie einer zugehörigen<br />

Entwicklungsumgebung. Auf diese<br />

Weise ermöglicht sie den <strong>Einstieg</strong><br />

ins sogenannte Physical<br />

Computing, also das Ansteuern<br />

von Sensoren, Motoren und diversen<br />

Ausgabegeräten wie etwa<br />

LEDs vom PC aus [3].<br />

Zwar gibt sich die Arduino-Plattform<br />

deutlich zugänglicher als die<br />

meisten anderen Microcontroller-<br />

Systeme, bei denen es schwer verständliche<br />

Datenblätter zu wälzen<br />

und komplizierte Programmoberflächen<br />

kennenzulernen gilt. Gerade<br />

für Neueinsteiger gestaltet<br />

sich der Weg in die schöne neue<br />

Microcontroller-Welt jedoch auch<br />

mit Arduino auf den ersten Blick<br />

steinig: Welche Hardware-Komponenten<br />

braucht man, und wo bekommt<br />

man sie her? Was kann<br />

© Franzis Verlag<br />

man mit dem Board alles machen,<br />

und welche zusätzlichen Bauteile<br />

sind dazu nötig? Womit und wie<br />

programmiert man das System?<br />

Franzis tritt mit dem „Einsteigerpaket<br />

Arduino“ an, diese <strong>Einstieg</strong>shürden<br />

zu verkleinern.<br />

Dazu hat der Verlag aus Poing<br />

bei München ein Bündel aus Platine,<br />

Microcontroller, Breadboard,<br />

diversen Bauteilen und Software<br />

geschnürt – eine genaue Aufstellung<br />

des Inhalts finden Sie in der<br />

Tabelle Produktübersicht. Beim<br />

Öffnen des etwa pralinenschachtelgroßem<br />

Experimentier-Sets<br />

kommt zudem ein Brevier zum<br />

Vorschein, das auf gut 200 Seiten<br />

Grundlagen zu Microcontrollern<br />

und Elektronik im Allgemeinen<br />

sowie dem Arduino im Besonderen<br />

vermittelt. Daneben bietet es<br />

einen gründlichen <strong>Einstieg</strong> in die<br />

Programmierung des Systems und<br />

erläutert alle Befehle anhand ausführlicher<br />

Programmbeispiele.<br />

Auf einer CD-ROM liegt neben<br />

Datenblättern und Schaltplänen<br />

zum Arduino sowie dem kompletten<br />

Beispiel-Code auch zahlreiche<br />

Tools sowie die Arduino-Entwicklungsumgebung<br />

bei.<br />

Theorie und Praxis<br />

Bei genauem Hinsehen fällt allerdings<br />

auf, dass das Lernpaket<br />

nicht ganz so komplett ausfällt<br />

wie erhofft. Zum einen fehlt ein<br />

Kabel zur Stromversorgung und<br />

Kommunikation mit dem Arduino-Board<br />

– hier benötigen Sie ein<br />

USB-Kabel mit einem Typ-B-Stecker.<br />

Zum anderen laufen mit<br />

Ausnahme der Entwicklungsumgebung<br />

die mitgelieferten Programme<br />

ausschließlich unter<br />

Windows. Obendrein beschreibt<br />

das Handbuch die Inbetriebnahme<br />

ebenfalls nur für Windows; Linux-Anwender<br />

(und auch Mac-<br />

Nutzer) lässt es im Regen stehen.<br />

Dass man die Beinchen des lose<br />

mitgelieferten ATmega-Chips<br />

möglicherweise etwas nach innen<br />

biegen muss, um ihn in den Sockel<br />

zu bekommen, und dass beim<br />

Einbau die halbrunde Nut am<br />

Controller mit der ebensolchen<br />

am Sockel zu koinzidieren hat,<br />

könnte ein Lernpaket dem Einsteiger<br />

ebenfalls ruhig verraten.<br />

Dass das Handbuch auf satten 8<br />

Seiten ausführlich die (offensichtlich<br />

recht komplizierte) Einrichtung<br />

von Windows-Treibern für<br />

den USB/ Serial-Converter-Baustein<br />

des Boards beschreibt, jedoch<br />

kein einziges Wort über entsprechende<br />

Arbeiten bei Linux<br />

verliert, dürfte für zusätzliches<br />

Stirnrunzeln sorgen. Das vermeintliche<br />

Problem ist aber gar<br />

keines, denn anders als das widerspenstige<br />

Produkt aus Redmond<br />

bringt Linux in aktuellen Kerneln<br />

(ab 2.4.20/ 2.6.31) bereits den<br />

passenden Treiber mit und lädt<br />

ihn beim Anstecken des Boards<br />

automatisch, wie Sie leicht mithilfe<br />

von Lsmod prüfen (Listing 1).<br />

Weitere Tipps liefert die offizielle<br />

Arduino-Website [1], wo sich im<br />

Bereich Getting Started auch präzise<br />

Handreichungen zum Einrichten<br />

unter gängigen Distributi-<br />

listinG 1<br />

$ lsmod | grep ftdi<br />

ftdi_sio 33573 0<br />

usbserial 33019 1 ftdi_sio<br />

36 02 | 11<br />

www.linux-user.de


Arduino<br />

schwerpunkt<br />

onen wie Debian, Fedora, Gentoo,<br />

OpenSuse, Slackware und Ubuntu<br />

finden. Insbesondere gilt es, die<br />

Rechte zum Zugriff auf die frisch<br />

eingerichtete serielle Schnittstelle<br />

(in der Regel heißt sie ttyUSB0) zu<br />

sichern, die ansonsten dazwischen<br />

funkenden Braille-Komponenten<br />

zu deinstallieren sowie<br />

den Compiler und die Libraries<br />

für den Atmel-Microcontroller<br />

(gcc-avr, avr-libc) einzurichten.<br />

Anschließend laden Sie aus dem<br />

Download-Areal [4] noch die neueste<br />

Version der Arduino-Entwicklungsumgebung<br />

herunter –<br />

das dem Lernpaket beiliegende<br />

Exemplar ist schon etwas älteren<br />

Datums. Den entsprechenden<br />

Tarball entpacken Sie in einem beliebigen<br />

Verzeichnis und wechseln<br />

in den dabei neu entstandenen<br />

Ordner arduino-00xx (wobei xx für<br />

die Versionsnummer des aktuellen<br />

Releases steht). In diesen kopieren<br />

Sie gleich noch das Verzeichnis<br />

Beispiele von der Lernpaket-CD,<br />

um die Programme gleich<br />

zur Hand zu haben.<br />

Nun starten Sie mit dem Aufruf<br />

arduino die in Java geschriebene<br />

Entwicklungsumgebung (Abbildung<br />

). Hier stellen Sie im Menü<br />

Tools unter Board noch das verwendete<br />

Board ein (Arduino Diecimila<br />

… w/ ATmega 168) sowie unter<br />

Serial Port den passenden Anschluss<br />

(meist /dev/ttyUSB0). Nun<br />

steht dem Experimentiervergnügen,<br />

wie ab Kapitel 8 des Handbuchs<br />

beschrieben, nichts mehr<br />

im Weg: Laden Sie eines der Beispielprogramme<br />

– etwa das aus<br />

dem Ordner Beispiele/Erstes_Programm<br />

– und übersetzen Sie es<br />

durch einen Klick auf das Icon mit<br />

dem Dreieck ganz links in der<br />

inFo<br />

[1] Arduino-Website: http://arduino.cc<br />

[2] Interaction Design Institute Ivrea:<br />

http://interactionivrea.org<br />

[3] Programmieren mit Arduino: C. C. Mierau,<br />

„Let’s Get Physical“, LU 07/ 2010, S. 80,<br />

http://www.linux-community.de/21096<br />

[4] IDE herunterladen:<br />

http://arduino.cc/en/Main/Software<br />

Werkzeugleiste (Verify)<br />

oder mittels<br />

[Strg]+[R]. Dann laden<br />

Sie es über das<br />

Icon mit dem nach<br />

rechts weisenden Pfeil<br />

(Upload) oder [Strg]+<br />

[U] zum Ausführen<br />

auf das Board. Um<br />

Rückgaben des Arduino<br />

anzuzeigen, starten<br />

Sie den Serial Monitor<br />

über das Icon<br />

ganz rechts in der<br />

Werkzeugleiste oder<br />

mittels [Strg]+[Umschalt]+[M]).<br />

Bei der Anzahl der<br />

möglichen Versuche<br />

hat Franzis ein wenig<br />

geflunkert und bei<br />

den beworbenen „70 Experimenten“<br />

offenbar die Beispiele zum Erlernen<br />

der Programmierung mitgezählt.<br />

Immerhin lassen sich aber<br />

27 zum Teil recht anspruchsvolle<br />

Aufbauten betreiben, von der<br />

LED-Lichtorgel über Lüftersteuerung<br />

und Temperaturschalter bis<br />

hin zum Speicheroszilloskop.<br />

Fazit<br />

Beim Franzis-Lernpaket Arduino<br />

liegen Licht und Schatten nah beieinander.<br />

Einerseits ärgert, dass<br />

der Anbieter bei einem Preis von<br />

80 Euro nicht einmal ein USB-Kabel<br />

zur Kommunikation mit dem<br />

Board beilegt und zwar die Eignung<br />

des Pakets für Linux ausdrücklich<br />

bewirbt, dessen Anwender<br />

aber in Sachen Dokumentation<br />

am ausgestreckten Arm verhungern<br />

lässt. Andererseits ebnen<br />

das geschickt zusammengestellte<br />

Paket und insbesondere das (bis<br />

auf die Lücke in Sachen Linux)<br />

sehr gute Handbuch dem Einsteiger<br />

den Weg in die Microcontroller-Welt<br />

ganz erheblich. Wer die<br />

27 spannenden und instruktiven<br />

Experimente des Pakets einmal<br />

hinter sich gebracht hat, ist sicherlich<br />

dauerhaft Arduino-infiziert<br />

– und findet auf der Website<br />

der Arduino-Community zuhauf<br />

weitere Anregungen. (jlu) ■<br />

proDuktÜBersicht<br />

Produkt<br />

Lernpaket Arduino<br />

Hersteller Franzis Verlag GmbH<br />

ISBN 978-3-645-65007-6<br />

Voraussetzungen Pentium-III-PC, CD-ROM-Laufwerk, Java<br />

Preis<br />

79,95 Euro<br />

URL http:// www. franzis. de/ elektronik/ lernpakete-elektronik/ lernpaket-ardunio (1)<br />

Lieferumfang<br />

Board<br />

Controller<br />

Bauteile<br />

Handbuch<br />

Software<br />

(1)<br />

kein Druckfehler, URL ebenso<br />

Die Entwicklungsumgebung<br />

für das Arduino-Board.<br />

Wie Sie<br />

im Serial Monitor<br />

se-<br />

hen, kann der Arduino<br />

auch gut rechnen.<br />

Freeduino (kompatibel zu Arduino Duemilanove), Reset-Taster, USB 2.0, USB-Serial-Chip<br />

FTDI FT232RL<br />

Atmel ATmega 168, 16 MHz<br />

Breadboard (Tiny), Fotowiderstand, Bipolartransistor (NPN), Siliziumdiode, Piezo-Schallwandler,<br />

linearer Trimmwiderstand (10 kOhm), 2 Printtaster, 4 LEDs (rot, grün, gelb),<br />

7 Widerstände (1,5 bis 68 kOhm), 1m Schaltdraht<br />

210 Seiten, deutsch, 27 Experimente<br />

CD-ROM (Entwicklungsumgebung Arduino 0018 für Linux, Mac und Windows; zahlreiche<br />

Zusatztools ausschließlich für Windows, alle Code-Beispiele, Datenblätter und Schaltpläne)<br />

www.linux-user.de<br />

02 | 11 37


SCHWERPUNKT<br />

<strong>Crosscompiling</strong><br />

Crosscompiler – Entwickeln für andere Systeme<br />

Fremde Welten<br />

Der große Vorteil freier Software ist die Zugänglichkeit des Quellcodes.<br />

Mithilfe eines Crosscompilers bringen Sie so viele Programme auch auf fremde<br />

Betriebssysteme oder andere Hardwareplattformen. Wolfgang Dautermann<br />

© Spectral, 123rf.com<br />

README<br />

Um Linux als Entwicklungssystem<br />

für andere<br />

Systeme zu verwenden,<br />

benötigt man einen<br />

Crosscompiler. Dieser<br />

Artikel zeigt, wie Sie<br />

Crosscompiler für Windows<br />

und ältere Computersysteme<br />

wie etwa<br />

den C64 verwenden.<br />

DER AUTOR<br />

Der Systemadministrator<br />

Wolfgang Dautermann<br />

begann seine<br />

Computerkarriere mit<br />

einem Commodore<br />

VC20, der bald von<br />

einem Commodore 64<br />

abgelöst wurde. Neben<br />

vielen Linuxen hat<br />

er auch schon diverse<br />

Unixe wie Solaris, Irix<br />

oder Tru64 gebändigt.<br />

Heute zählt er zu den<br />

Organisatoren der<br />

Grazer Linux-Tage.<br />

Wer hier und da programmiert<br />

oder Software kompiliert, der<br />

kennt die üblichen Prozeduren,<br />

um ein einfaches C-Programm zu<br />

übersetzen und auszuführen, wie<br />

gcc -Wall -o helloworld<br />

helloworld.c ; ./helloworld<br />

oder auch den Dreisatz ./configure;<br />

make; make install, um<br />

Programme einzurichten, die das<br />

GNU-Automake-System verwenden.<br />

Daneben gibt es noch etliche<br />

andere Build-Systeme wie etwa<br />

Cmake, Scons und Konsorten.<br />

Meist liegt der Software eine Datei<br />

INSTALL bei, die dokumentiert,<br />

wie man das Programm übersetzt<br />

und auf dem System einrichtet.<br />

Was haben alle diese Prozeduren<br />

und Anleitungen – so verschieden<br />

sie erscheinen mögen – gemeinsam?<br />

Klar: Man kompiliert das<br />

Programm üblicherweise auf demselben<br />

System, auf dem man es<br />

LISTING 1<br />

#include <br />

int main()<br />

{<br />

printf("Hello World\n");<br />

return 0;<br />

}<br />

später auch ausführt. Freilich<br />

lässt sich ein übersetztes Programm<br />

auch auf andere Rechner<br />

transferieren oder auch bereits als<br />

Binary herunterladen – aber das<br />

Betriebssystem und die CPU-Architektur<br />

der Zielplattform muss<br />

passen. Linux-Software läuft auf<br />

Windows gar nicht, und auch umgekehrt<br />

geht es per Wine nur<br />

recht mühsam. Von anderen Systemen,<br />

wie OpenSolaris oder Irix<br />

schweigt des Sängers Höflichkeit.<br />

Crosscompiler<br />

Hier kommen Crosscompiler ins<br />

Spiel: Sie erzeugen Programme für<br />

andere Zielsysteme. Dabei dürfen<br />

sich alle Komponenten des sogenannten<br />

Targets unterscheiden,<br />

sei es das Betriebssystem, die Registerbreite<br />

(von 8 bis 64 Bit) oder<br />

LISTING 2<br />

$ gcc -Wall -o helloworld helloworld.c<br />

$ file helloworld<br />

sogar der CPU-Typ an sich. Die<br />

Zielplattform muss nicht einmal<br />

existieren: So portierte etwa das<br />

Projekt Trillian [1] Linux-Kernel<br />

schon auf Intels IA64-Plattform,<br />

bevor es überhaupt eine Itanium-<br />

CPU gab – der Linux-Port lief vorher<br />

nur im Simulator.<br />

Portierungen auf noch nicht<br />

existente Targets stellen freilich<br />

eher die Ausnahme dar. Doch<br />

selbst, wenn die Zielplattform bereits<br />

existiert, gibt es anfangs in<br />

der Regel weder ein Betriebssystem<br />

noch einen Compiler darauf.<br />

Beide muss man also auf einem<br />

anderen System für das neue Target<br />

übersetzen – das nennt der<br />

Fachmann Bootstrapping.<br />

Hier und da kommt es auch vor,<br />

dass es die Zielplattform zwar<br />

gibt, man aber keinen Zugriff da-<br />

helloworld: ELF 64-bit LSB executable, x86-64, version 1 (SYSV),<br />

dynamically linked (uses shared libs), for GNU/Linux 2.6.8, not<br />

stripped<br />

$ gcc -Wall -m32 -o helloworld helloworld.c<br />

$ file helloworld<br />

helloworld: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV),<br />

dynamically linked (uses shared libs), for GNU/Linux 2.6.8, not<br />

stripped<br />

38 02 | 11<br />

www.linux-user.de


<strong>Crosscompiling</strong><br />

SCHWERPUNKT<br />

rauf hat. Möglicherweise läuft<br />

dort ein Closed-Source-Betriebssystem,<br />

das man als Open-Source-<br />

Verfechter nicht anfassen will –<br />

oder schlicht die Lizenzgebühren<br />

für Betriebssystem und Entwicklungstools<br />

nicht zahlen kann oder<br />

möchte. In vielen Fällen ziehen es<br />

Entwickler aber auch nur vor, die<br />

gewohnten und bewährten Entwicklungstools<br />

zu nutzen, um<br />

Executables für andere Plattformen<br />

zur Verfügung zu stellen.<br />

Ein gängiges Einsatzfeld für<br />

<strong>Crosscompiling</strong> bieten <strong>Embedded</strong>-<br />

Systeme: kleine und kleinste<br />

Rechner mit mickrigen CPUs, wenig<br />

RAM und kaum Massenspeicher.<br />

Selbst wenn die Ressourcen<br />

eines solchen Systems ausnahmsweise<br />

für den Compiler und dessen<br />

Infrastruktur ausreichen,<br />

kann man in aller Regel durch<br />

<strong>Crosscompiling</strong> auf einem schnelleren<br />

Rechner viel Zeit sparen.<br />

Möglicherweise haben auch Sie<br />

schon mit einem Crosscompiler<br />

gearbeitet, ohne sich dessen bewusst<br />

zu sein: Auf 64-Bit-Linux-<br />

Systemen ist der GNU-Compiler<br />

gcc so installiert, dass er sowohl<br />

32- als auch 64-Bit-Executables<br />

erzeugen kann. Es handelt sich<br />

also um einen sogenannten Bi-<br />

Arch-Compiler: In der Vorgabe<br />

übersetzt er Programme wie das<br />

typische helloworld.c (Listing 1)<br />

für ein 64-Bit-System; über die<br />

Option -m32 weisen Sie ihn im Bedarfsfall<br />

an, ein 32-Bit-Binary zu<br />

erzeugen (Listing 2).<br />

Windows als Target<br />

Warum sollte man unter Linux<br />

ausgerechnet für Windows entwickeln<br />

wollen? Ganz einfach: Eine<br />

Version der eigenen Software für<br />

Microsofts Plattform verbreitert<br />

das Zielpublikum deutlich. Zudem<br />

erspart das <strong>Crosscompiling</strong><br />

hier sowohl das Arbeiten unter<br />

Windows als auch die Pflege verschiedener<br />

Build-Systeme – etwa<br />

Autoconf/ Automake für Linux<br />

und diverse andere Unix-Varianten<br />

sowie zusätzlich Visual-C-<br />

Projekte für Windows.<br />

Passende Windows-Crosscompiler<br />

bringen die meisten Distributionen<br />

bereits in ihren Repositories mit.<br />

Unter Debian/ Ubuntu genügt der<br />

Befehl apt-get install mingw32, um<br />

den Crosscompiler zu installieren.<br />

Das Kürzel Mingw steht für „Minimalist<br />

GNU for Windows“, eine<br />

minimale Portierung der GNU-<br />

Entwicklungstools auf Windows.<br />

Im Gegensatz zu Cygwin, einer<br />

umfassenden Portierung der<br />

GNU-Umgebung auf Windows,<br />

braucht man hier keine zusätzliche<br />

DLLs als Emulationsschicht.<br />

Bei OpenSuse 11.3 fehlt ein<br />

Windows-Crosscompiler im Standard-Repository,<br />

lässt sich jedoch<br />

recht einfach vom OpenSuse-Server<br />

nachziehen. Dazu fügen Sie in<br />

YaST unter Software | Software-<br />

Repositories das Repository<br />

http://download.opensuse.org/<br />

repositories/CrossToolchain:/<br />

mingw/openSUSE_11.3/<br />

hinzu und installieren anschließend<br />

das Paket cross-mingw-gcc<br />

über Yast2 nach. Ist der Crosscompiler<br />

schließlich im System<br />

installiert, übersetzen Sie beispielsweise<br />

das helloworld.c aus<br />

Listing 1 kurzerhand als Windows-Programm<br />

(Listing 3).<br />

Das resultierende Programm<br />

helloworld.exe, hergestellt nur mit<br />

freier Software, lauft nur auf<br />

Windows (bitte testen, wenn vorhanden)<br />

– oder unter Linux mithilfe<br />

von Wine.<br />

Unter Debian/ Ubuntu funktioniert<br />

das Ganze nahezu identisch,<br />

nur heißt der Compiler in diesem<br />

Fall i586-mingw32msvc-gcc und liegt<br />

direkt unter /usr/bin. Zum Übersetzen<br />

des kleinen Windows-Programms<br />

genügt also der Befehl<br />

$ i586-mingw32msvc-gcc -Wall -o<br />

helloworld.exe helloworld.c<br />

Lassen Sie die Option -o mit dem<br />

Namen der Ausgabedatei (-o helloworld.exe)<br />

weg, dann lautet der<br />

Standard-Dateiname des Binaries<br />

unter Unix a.out. Unter Windows<br />

ist die Dateierweiterung relevant,<br />

der Vorgabename lautet hier daher<br />

a.exe.<br />

Umfangreiche Software<br />

Unser helloworld.exe ist ja ganz<br />

nett, aber noch nicht wirklich anspruchsvoll.<br />

Aber auch komplexere<br />

Programme stellen kein wirkliches<br />

Problem dar, allerdings setzt<br />

eine erfolgreiche Kompilierung<br />

das Vorhandensein gewisser<br />

DLLs, Headerfiles und Hilfsprogramme<br />

auch unter Linux voraus.<br />

Um beispielsweise Anwendungen<br />

zu übersetzen, welche die<br />

LibSDL verwenden (eine bekannte<br />

plattformübergreifende Grafikbibliothek,<br />

häufig eingesetzt in<br />

Seine unverkennbare<br />

Form trug dem<br />

Commodore 64 den<br />

liebvollen Spitznamen<br />

„Brotkorb“ ein.<br />

LISTING 3<br />

$ /opt/cross/bin/i386-mingw32msvc-gcc -Wall -o<br />

helloworld.exe helloworld.c<br />

$ file helloworld.exe<br />

helloworld.exe: PE32 executable for MS Windows (console)<br />

Intel 80386 32-bit<br />

$ /opt/cross/bin/i386-mingw32msvc-gcc -Wall -o<br />

helloworld.exe helloworld.c<br />

$ file helloworld.exe<br />

helloworld.exe: PE32 executable for MS Windows (console)<br />

Intel 80386 32-bit<br />

$ wget http://www.libsdl.org/release/<br />

SDL-devel-1.2.14-mingw32.tar.gz<br />

$ tar xvf SDL-devel-1.2.14-mingw32.tar.gz<br />

$ cd SDL-devel-1.2.14<br />

$ sudo make cross CROSS_PATH=/opt/cross<br />

$ /opt/cross/bin/i386-mingw32msvc-gcc -Wall -o<br />

sdlhelloworld.exe sdlhelloworld.c $(/opt/cross/bin/<br />

sdl-config --libs --cflags)<br />

LISTING 4<br />

www.linux-user.de<br />

02 | 11 39


SCHWERPUNKT<br />

<strong>Crosscompiling</strong><br />

Das erste Helloworld-Programm<br />

in C<br />

auf dem (virtuellen)<br />

Commodore 64.<br />

GLOSSAR<br />

Hardware-Sprites: Die<br />

Sprites waren kleine<br />

Grafiken im Format 24 x<br />

21 Pixel. Die Hardware<br />

unterstützte wichtige<br />

Features wie das Positionieren<br />

auf dem Bildschirm<br />

und die Kollisionserkennung<br />

direkt.<br />

Das vereinfachte insbesondere<br />

die Spieleprogrammierung<br />

enorm,<br />

bei der die Sprites etwa<br />

als Spielfigur oder Opponent<br />

Verwendung<br />

fanden.<br />

INSTALLATIONSPAKETE FÜR WINDOWS<br />

Ein mit freier Software erzeugtes meinprogramm.exe ist ja ganz<br />

nett, und jeder Linux-User weiß auch, wie er so etwas startet –<br />

Windows-User dagegen tun sich damit oft schwer. Sie suchen<br />

nach einem Installer namens setup.exe, der auf dem Desktop<br />

noch ein Icon und zusätzlich einen Eintrag im Startmenü erzeugt.<br />

Auch so etwas lässt sich unter Linux realisieren: Beim Nullsoft<br />

Scriptable Install System (NSIS, [4]) handelt es sich um freie<br />

Software, die auch nativ unter Linux läuft.<br />

DER BROTKORB<br />

Viele Leser dürften ihre ersten Erfahrungen mit Rechnern in den<br />

1980ern mit einem der damals verbreiteten sogenannten Heimcomputer<br />

gemacht haben. Das erfolgreichste Modell dieser Gattung<br />

war der Commodore 64 (Abbildung , vorige Seite), der von<br />

1982 bis 1994 gebaut wurde. Seine 8-Bit-CPU des Typs MOS<br />

Technology 6510 war mit 1 MHz getaktet, als Arbeitsspeicher<br />

brachte er 64 KByte RAM mit. Daneben gab es 20 KByte ROM, in<br />

denen unter anderem das Betriebssystem und der eingebaute<br />

Basic-Interpreter lagerten. Der Grafikchip VIC-II brachte es auf<br />

eine Auflösung von 320 x 200 Pixeln bei 16 Farben und steuerte<br />

bis zu acht Hardware-Sprites an. Als Soundchip kam ein 3-stimmiger<br />

SID 6581 zum Einsatz. Die Daten speicherte man auf externen<br />

Massenspeichern. Dazu fand zunächst die „Datasette“<br />

Verwendung, ein Bandlaufwerk mit Musikkassetten. Diese löste<br />

später eine 5¼-Zoll-Floppydisk ab, die 170 KByte Kapazität bot.<br />

Spielen), müssen Sie von der SDL-<br />

Homepage [2] erst die entsprechenden<br />

Windows-Pakete herunterladen<br />

und unter /opt/cross einrichten<br />

(Listing 4, vorige Seite).<br />

Erst dann klappt das Kompilieren<br />

eines SDL-Programms.<br />

Der Aufruf von /opt/cross/bin/<br />

sdl-config am Ende der Compiler-<br />

Zeile von Listing 4 liefert Pfade<br />

und Libraries für die Windows-<br />

Umgebung – für ein Linux-Programm<br />

würde man stattdessen<br />

sdl-config heranziehen.<br />

Um das Programm unter Linux<br />

(Wine) oder Windows zu testen,<br />

benötigen Sie dann noch die Datei<br />

SDL.dll aus SDL-1.2.14-win32.<br />

zip. Auch andere Bibliotheken gilt<br />

es gegebenenfalls für Windows<br />

nachzuinstallieren. Hier verwenden<br />

Sie, sofern vorhanden, die<br />

Entwicklerpakete für Windows<br />

oder müssen anderenfalls die Bibliotheken<br />

selbst crosskompilieren.<br />

LISTING 5<br />

$ make -f make/gcc.mak<br />

$ su -c "make -f make/gcc.mak<br />

install"<br />

LISTING 6<br />

#include <br />

int main()<br />

{<br />

VIC.bordercolor = COLOR_GREEN;<br />

VIC.bgcolor0 = COLOR_BLACK;<br />

return(0);<br />

}<br />

Spezial-Crosscompiler<br />

Der bislang in diesem Artikel verwendete<br />

GCC unterstützt als<br />

Crosscompiler zwar eine beeindruckende<br />

Menge an Targets,<br />

doch gibt es auch viele mehr oder<br />

weniger exotische Plattformen,<br />

die er nicht ansteuert. Für diese<br />

existieren oft Spezial-Crosscompiler,<br />

die meist ausschließlich Code<br />

für die Zielplattform erzeugen.<br />

Ein typisches Beispiel für eine<br />

solche exotische Plattform ist der<br />

Commodore 64 (C64) aus den<br />

80er-Jahren des letzten Jahrhunderts<br />

(siehe Kasten Der Brotkorb).<br />

Solche Heimcomputer wurden<br />

entweder in Basic (eingebaut,<br />

langsam) oder in Assembler programmiert.<br />

Sprachen wie Logo,<br />

Forth oder Pascal standen zwar<br />

auch zur Auswahl, wurden aber<br />

selten benutzt. Ein Compiler für<br />

C – heute die führende Programmiersprache<br />

– existierte 1982<br />

noch nicht. Heute gibt es ihn.<br />

6502-Crosscompiler<br />

Das freie Softwareprojekt CC65<br />

[3] stellt einen C-Crosscompiler<br />

für die MOS-6502-CPU-Familie<br />

zur Verfügung, wie sie nicht nur<br />

im Commodore 64, sondern auch<br />

in Heimcomputern wie dem<br />

VC20, C16, Apple II oder Atari<br />

verwendet wurde. Damit lassen<br />

sich C64-Programme auch in C<br />

programmieren.<br />

Mit den Befehlen aus Listing 5<br />

übersetzen Sie den Compiler<br />

recht einfach aus dem Quellcode<br />

selbst und installieren ihn nach<br />

/ usr/local. Alternativ finden Sie<br />

auf der Homepage auch RPM-Pakete<br />

sowie ein Debian-Repository.<br />

Nach der Installation stehen neben<br />

dem C-Compiler cc65 unter<br />

anderem ein Assembler (ca65), ein<br />

Disassembler (da65) und ein Linker<br />

(cl65) zur Verfügung. Als besonders<br />

praktisch erweist sich<br />

das Compile-and-Link-Dienstprogramm<br />

cl65: Es erkennt die Inputfiles<br />

(Assembler, Object-File, C-<br />

File) automatisch anhand der Endung<br />

und generiert ein ausführbares<br />

Programm. Das Kompilieren<br />

und Ausführen unseres kleinen<br />

Helloworld-Programms aus<br />

Listing 1 klappt daher ohne großen<br />

Aufwand:<br />

$ cl65 helloworld.c<br />

$ x64 -autoload helloworld<br />

In der zweiten Zeile lädt und startet<br />

der C64-Emulator x64 (siehe<br />

Kasten Commodore 64 emulieren)<br />

das Programm helloworld von<br />

der virtuellen Floppy. Mit dem<br />

Basic-Befehl LIST lassen Sie sich<br />

das Programm anzeigen – ein Basic-Programm,<br />

das nur aus einem<br />

Befehl besteht: SYS 2061. Das bedeutet:<br />

Rufe das Assemblerprogramm<br />

an der Speicherstelle 2061<br />

40 02 | 11<br />

www.linux-user.de


<strong>Crosscompiling</strong><br />

SCHWERPUNKT<br />

auf (dort steht unser compilierter<br />

Code). Nun starten Sie das Programm<br />

mit RUN (Abbildung )<br />

und erhalten die Ausgabe Hello<br />

world. Ersetzen Sie im Befehl<br />

-autoload durch -autostart, startet<br />

das Programm sofort.<br />

Programmatisches<br />

Abgesehen von wenigen, meist<br />

hardwarebedingten Einschränkungen<br />

im Sprachumfang unterstützt<br />

der CC65-Crosscompiler<br />

die C-Programmierung für den<br />

Commodore 64 recht problemlos.<br />

Was noch fehlt, sind Grafik und<br />

Sound. Der C64 hatte für damalige<br />

Verhältnisse sehr leistungsfähige<br />

Grafik- und Sound-Chips.<br />

Diese steuerte man meist direkt<br />

über Register. Unter Basic schrieb<br />

man mit POKE Zelle,Wert einen<br />

Wert direkt in eine Speicherstelle,<br />

mit Variable = PEEK(Zelle) wurde<br />

er wieder ausgelesen. Echte Fans<br />

kannten damals die Position und<br />

Bedeutung der Register auswendig.<br />

PEEK und POKE lassen sich in C<br />

auf mehrere Weisen emulieren.<br />

Dem routinierten C-Programmierer<br />

fällt für POKE sofort die Funktion<br />

memset() (string.h) ein. Mit<br />

memset((void*)53280U,1,1); ließe<br />

sich etwa der Wert der Speicherstelle<br />

53280 auf 1 und damit die<br />

Farbe des Bildschirmrahmens auf<br />

Weiß ändern.<br />

Viel vorbildnäher klappt es,<br />

wenn Sie mit #include <br />

die entsprechende Header-Datei<br />

ins Programm einbinden. Sie definiert<br />

die Makros POKE(addr,val),<br />

POKEW(addr,val), PEEK(addr) und<br />

PEEKW(addr), um Speicherzellen zu<br />

beschreiben und auszulesen. POKEW<br />

und PEEKW schreiben beziehungsweise<br />

lesen gleich ein ganzes<br />

Wort, also 16 Bit. Die ebenfalls<br />

16 Bit langen Adressen müssen<br />

als Unsigned angegeben werden<br />

(65535U statt 65535), sonst gibt der<br />

Compiler eine Warnung aus.<br />

Die zusätzliche Include-Datei<br />

c64.h bildet die Hardwarefähigkeiten<br />

des Systems ab: Dort gibt es<br />

#defines für die Farben; die Register<br />

des Grafik- und des Sound-<br />

Die Hardware-Einstellungen von<br />

x64 (rechte Maustaste).<br />

Chips sind als Structs definiert.<br />

Daneben setzt c64.h die Basisadresse<br />

des Grafikchips und stellt<br />

sie als VIC-Struktur zur Verfügung.<br />

Ein Programm, um die Rahmenfarbe<br />

auf Grün und die Hintergrundfarbe<br />

auf Schwarz zu setzen,<br />

könnte dann so aussehen wie<br />

in Listing 6. Das lässt sich wesentlich<br />

leichter lesen als in Form<br />

von PEEKs und POKEs. Auch für<br />

die anderen Chips (den Soundchip<br />

SID und die IO-Chips CIA1<br />

und CIA2) gibt es solche Strukturen.<br />

Zur Ansteuerung des Textbildschirms<br />

stellt die Headerdatei<br />

conio.h einige interessante Funktionen<br />

zur Verfügung.<br />

INFO<br />

[1] Linux auf Itanium:<br />

http://en.wikipedia.org/wiki/Project_Trillian<br />

[2] Simple DirectMedia Layer:<br />

http://www.libsdl.org/download-1.2.php<br />

[3] CC65-Projekt: http://www.cc65.org<br />

[4] Nullsoft Scriptable Install System:<br />

http://nsis.sourceforge.net/<br />

[5] Emulator Vice: http://www.viceteam.org<br />

Ausblick<br />

Die Website des CC65-Projekts<br />

[3] liefert zahlreiche konkrete<br />

Tipps zur Code-Optimierung. So<br />

sollten Sie etwa statt Postinkrement<br />

(i++) stets Präinkrement<br />

verwenden (++i) und die Deklaration<br />

sowie Initialisierung von Variablen<br />

in einem Aufwasch erledigen<br />

(int i=1; statt int i; i=1;). Da<br />

es sich beim MOS 6502 um eine<br />

8-Bit-CPU handelt, empfiehlt es<br />

sich, grundsätzlich Unsigned-Datentypen<br />

zu verwenden, möglichst<br />

char statt int einzusetzen<br />

und long tunlichst zu vermeiden:<br />

Längere Datentypen verbrauchen<br />

mehr Speicher und Rechenzeit.<br />

Derlei Ratschläge zeigen auch<br />

deutlich, dass das Übersetzen von<br />

Software für andere Plattformen<br />

meist wesentlich mehr bedeutet,<br />

als einfach nur ein gegebenes<br />

Stück Quellcode durch einen<br />

Crosscompiler laufen zu lassen.<br />

Gerade, wenn sich die Hardware<br />

des Targets deutlich von jener der<br />

Ursprungsplattform unterscheidet,<br />

verlangt ein erfolgreiches<br />

Übertragen dem Entwickler gewisse<br />

Kenntnisse der Eigenschaften<br />

der Zielplattform sowie ein intelligentes<br />

Anpassen des Codes an<br />

die Gegebenheiten ab. Genau das<br />

macht aber auch den Reiz der Aufgabe<br />

aus, ein Stück Software auf<br />

einem anderen System zum Laufen<br />

zu bringen. (jlu) ■<br />

Die Image-Einstellungen<br />

von x64 (linke<br />

Maustaste).<br />

TIPP<br />

Falls Sie früher einmal<br />

mühsam<br />

6502-Assembler gelernt<br />

haben und<br />

schnell wieder einsteigen<br />

wollen: Der Befehl<br />

cl65 --listing<br />

helloworld.c erzeugt<br />

ein Assembler-Listing<br />

aus dem C-Code.<br />

COMMODORE 64 EMULIEREN<br />

Das Emulator-Paket Vice [5] für den Commodore 64 und seine<br />

Verwandten installiert sich unter Debian/ Ubuntu fast von selbst,<br />

es genügt der Aufruf apt-get install vice. Unter OpenSuse<br />

müssen Sie erst das Repository http://download.opensuse.org/<br />

repositories/Emulators/openSUSE_11.3/ in YaST hinzufügen, um<br />

Vice einzurichten. Nach der Installation rufen Sie mit x64 den<br />

C64-Emulator auf. Er bietet unzählige Kommandozeilenoptionen,<br />

um Einstellungen zu ändern (x64 -h). Drücken Sie im Emulatorfenster<br />

die rechte Maustaste, können Sie Einstellungen zur Hardware<br />

treffen (Abbildung ). Ein Linksklick fördert das Menü zur<br />

Behandlung von Disk- und Tape-Images zutage (Abbildung ).<br />

www.linux-user.de<br />

02 | 11 41


PRAXIS<br />

Ding 1.7<br />

Wörter offline suchen und übersetzen<br />

Dickes Ding<br />

Ding kombiniert als leistungsstarkes Frontend die Wörterbuch-Suche, einen Thesaurus<br />

und das Übersetzen vom Deutschen ins Englische und umgekehrt. Karsten Günther<br />

© Norriuke, sxc.hu<br />

Ding 1.7, Wörterbuch<br />

LU/ding<br />

Kaum zu glauben, dass es so etwas<br />

gibt: Ein kleines Nachschlagewerk,<br />

das immer – also unabhängig<br />

von einer Netzwerkverbindung<br />

– schnell und zuverlässig<br />

funktioniert. Und dabei benötigt<br />

Ding [1] noch nicht einmal besondere<br />

Bibliotheken oder Zusatzprogramme,<br />

sondern kommt<br />

mit Bordmitteln aus. Für die grafische<br />

Oberfläche (Abbildung )<br />

benötigt das Programm allerdings<br />

Tk ab Version 8.3.<br />

Der Name Ding leitet sich von<br />

den verwendeten Tools („Dictionary<br />

Nice Grep“) ab und erklärt<br />

damit auch schon die Funktionsweise<br />

der Anwendung: Eine Grep-<br />

Variante durchsucht ein zeilenweise<br />

aufgebautes Wörterbuch<br />

(„dictionary“) und gibt die Trefferzeilen<br />

aus. Steht das Agrep<br />

(„approximate grep“) bereit, erfolgt<br />

die Suche auf Wunsch fehlertolerant.<br />

Um möglichst schnell<br />

Ergebnisse zu erhalten, lohnt die<br />

Installation des ursprünglichen<br />

Agrep [2]. Es ist deutlich schneller<br />

als die TRE-Variante, die viele<br />

Repositories enthalten.<br />

<strong>Einstieg</strong> in Ding<br />

Nicht alle Distributionen haben<br />

die aktuelle Version von Ding im<br />

Repository. Für RPM-basierte<br />

Distributionen wie Red Hat,<br />

OpenSuse oder Fedora stellt Ding-<br />

Entwickler Frank Richter selbst<br />

Pakete bereit [3]. Mittels Alien [4]<br />

wandeln Sie diese schnell in Pakete<br />

für andere Distributionen um.<br />

Ein Debian/ Ubuntu-Archiv erzeugen<br />

Sie zum Beispiel mit dem folgenden<br />

Befehl:<br />

$ alien -d -v -c /tmp/ding-1.7-1U<br />

.noarch.rpm<br />

README<br />

Ding ist ein echter Klassiker:<br />

Schon seit 1999<br />

entwickelt Frank Richter<br />

sein Wörterbuch-Frontend<br />

für Übersetzungen<br />

und zum Nachschlagen.<br />

Es steht für alle gängigen<br />

Linux-Distributionen<br />

zur Verfügung.<br />

Ding startet ohne eine Anfrage. In diesem Modus zeigt das Programm eine<br />

Reihe der wichtigsten Parameter an.<br />

Es gibt zwei Möglichkeiten, Ding<br />

aufzurufen: Aus dem Desktop-<br />

Menü heraus startet das Programm<br />

ohne ein Suchwort. Auf<br />

der Befehlszeile dagegen übergeben<br />

Sie der Software höchstwahrscheinlich<br />

gleich einen Suchbegriff<br />

als Parameter. Das führt<br />

dann direkt zu Ergebnissen (Abbildung<br />

, nächste Seite). Der<br />

Suchbegriff darf bis zu 30 Zeichen<br />

umfassen und – sofern er von<br />

Hochkommata eingeschlossen ist<br />

– auch Leerzeichen enthalten.<br />

42 02 | 11<br />

www.linux-user.de


JAHRES-DVD<br />

Den kompletten <strong>LinuxUser</strong>-Jahrgang 2010<br />

gibt es jetzt auf einer DVD!<br />

Fedora 14<br />

Install-DVD (32 Bit)<br />

• Sämtliche Artikel<br />

der Ausgaben 01/2010 bis<br />

12/2010 als HTML-Seiten<br />

• Unkomplizier te, schnelle<br />

Volltextsuche für alle<br />

gängigen Browser<br />

• Bootfähiger Datenträger –<br />

auch für die Daten- und<br />

Systemrettung einsetzbar<br />

JETZT<br />

BESTELLEN:<br />

• Telefon 089 / 99 34 11-0 • Fax 089 / 99 34 11-99<br />

• E-Mail: info@linux-user.de<br />

• Internet: http://www.linux-user.de/DVD2010<br />

NUR 14,95 <br />

Ihr Widerrufsrecht: Sie können Ihre Bestellung innerhalb von 14 Tagen beim Linux-User-Leserservice,<br />

Putzbrunner Straße 71, D-81739 München, widerrufen. Zur Wahrung der Frist genügt die rechtzeitige Absendung des Widerrufs.


PRAXIS<br />

Ding 1.7<br />

Mit einem Suchwort<br />

gestartet, zeigt Ding<br />

sofort den ersten Teil<br />

der Ergebnisse.<br />

WICHTIGE TASTENKÜRZEL FÜR DING<br />

Kürzel<br />

Wirkung<br />

Im Suchfeld<br />

[Esc]/<br />

Suchwort löschen<br />

[Umschalt]+[Zurück]<br />

[Strg]+[A]<br />

ans Ende des Suchfelds<br />

[Strg]+[E]<br />

an den Anfang des Suchfelds<br />

[Strg]+[K]<br />

löschen ab aktueller Position<br />

Suchmethode ändern<br />

[Strg]+[1]/[2]/…<br />

Suche mit Methode 1, 2,…<br />

Im Ergebnisfenster<br />

[Pos1]<br />

an den Anfang der Liste<br />

[Ende]<br />

ans Ende der Liste<br />

[Umschalt]+[Pfeil<br />

links]/ [Pfeil rechts]<br />

Ausschnitt nach links (rechts) verschieben<br />

(bei langen Zeilen)<br />

[Strg]+[Bild oben]/ Ausschnitt nach oben (unten) verschieben<br />

[Bild unten]<br />

[Strg]+Mausrad frühere Suchergebnisse anzeigen<br />

Menü-Funktionen<br />

[Strg]+[Q]<br />

Programm beenden<br />

[Strg]+[N]<br />

neues Fenster öffnen<br />

[Strg]+[S]<br />

aktuelles Ergebnis speichern<br />

[Strg]+[L]<br />

alle Ergebnisse speichern<br />

[Strg]+[M]<br />

E-Mail an den Autor senden (nur Unix)<br />

[Strg]+[O]<br />

Notiz in .dingnotice.txt schreiben<br />

Sonstiges<br />

[F1]<br />

Hilfe<br />

[Strg]+[+]<br />

Schrift vergrößern<br />

[Strg]+[–]<br />

Schrift verkleinern<br />

[Strg]+[0]<br />

Standard-Schriftgröße<br />

[Strg]+[Linksklick] Ergebnisse ein- oder ausklappen<br />

[Esc]<br />

Suchwort löschen, eventuell Suche<br />

stoppen, Oberfläche zurücksetzen<br />

[Umschalt]+[Esc] Voreinstellungen wiederherstellen<br />

LISTING 1<br />

Deutsche Rechtschreibprüfung<br />

Vorschläge:<br />

The file "/usr/lib/aspell/<br />

ngerman" can not be opened for<br />

reading.<br />

Meist liefert Ding sehr viele Ergebnisse,<br />

da die Grep-Varianten<br />

aufgrund der zeilenweisen Suche<br />

sowohl in den deutschen als auch<br />

in den englischen Texten Treffer<br />

erzielen. Ding bereitet die Ergebnisse<br />

aber gut und übersichtlich<br />

auf (Abbildung ). Die von Ding<br />

angezeigten Treffer eignen sich<br />

als Eingabe für eine neue Suche –<br />

ein Doppelklick auf ein angezeigtes<br />

Wort setzt dies sofort ins Eingabefeld<br />

und startet eine solche.<br />

Ding kommuniziert mit anderen<br />

Programmen. Schon in der Standard-Konfiguration<br />

ist es in der<br />

Lage, jedes in einem beliebigen<br />

Fenster markierte Wort als Suchbegriff<br />

zu verwenden, sofern Sie<br />

nach dem Auswählen die mittlere<br />

Maustaste über dem Ergebnisfenster<br />

des Programms betätigen.<br />

Das geht schnell und simpel. Noch<br />

einfacher gestaltet es sich mit den<br />

im Menü Suchverhalten bereitstehenden<br />

Funktionen Suche sobald<br />

Maus über dem Fenster oder Suche<br />

sofort bei neuer Textauswahl.<br />

In der Praxis kommt vermutlich<br />

häufig ein einzelnes Suchwort<br />

zum Einsatz. Ding unterstützt jedoch<br />

die Eingabe von mehreren<br />

Wörtern (etwa von Phrasen) mit<br />

Leerzeichen. Das voreingestellte<br />

Wörterbuch [5] enthält zahlreiche<br />

Beispiele dafür. Alternativ dazu<br />

übergeben Sie verknüpfte Suchen<br />

an das Programm: Ein Komma<br />

verbindet zwei Suchwörter mit einem<br />

logischen Oder, ein<br />

Pluszeichen mit einem logischen<br />

Und. Das funktioniert<br />

sogar, wenn die beiden<br />

Wörter nicht in derselben<br />

Kategorie stehen –<br />

also nicht beide aus dem<br />

Deutschen oder dem Englischen<br />

stammen.<br />

Manchmal gibt es Probleme<br />

bei der Eingabe<br />

deutscher Sonderzeichen.<br />

Dafür kennt Ding ähnlich<br />

wie etwa LaTeX eine Ersatzsyntax:<br />

Die Umlaute<br />

„ä“, beziehungsweise „Ä“<br />

schreiben Sie als "a beziehungsweise<br />

"A. Analog verfahren Sie mit<br />

„ö“ und „ü“ sowie deren großgeschriebenen<br />

Varianten. Das<br />

scharfe S geben Sie als "s ein. Dafür<br />

gibt es auch Schaltflächen in<br />

der Werkzeugleiste, die Sie über<br />

Einstellungen | Umlautknöpfe anzeigen<br />

aktivieren.<br />

Wie, nix gefunden?<br />

Ding bringt in der Grundversion<br />

ein umfangreiches Deutsch-Englisch-Wörterbuch<br />

(de-en.txt) mit.<br />

Bei einigen Distributionen wie<br />

etwa Ubuntu installieren Sie das<br />

Wörterbuch separat. In der derzeit<br />

aktuellen Version umfasst es<br />

mehr als 160 000 Zeilen mit etwa<br />

270 000 Einträgen. Falls Sie Dict,<br />

Ispell oder Aspell installiert haben,<br />

stehen deren einsprachige<br />

Wortlisten ebenfalls bereit.<br />

Angesichts dieser Fülle erstaunt<br />

es, wenn Ding zu einem bestimmten<br />

Wort gar kein Ergebnis liefert.<br />

Normalerweise deutet das auf wenigstens<br />

einen Schreib fehler hin.<br />

Das ist jedoch kein Problem, da<br />

die Software unter Suchparameter<br />

die Möglichkeiten bietet, bis zu<br />

vier Fehler zu tolerieren. Die Option<br />

bis Treffer liefert stets mindestens<br />

ein Ergebnis, allerdings<br />

oft nicht das richtige. Da Ding die<br />

Ergebnisse nach der Fehlerzahl<br />

sortiert, eignet sich die Einstellung<br />

1 Fehler oft am besten.<br />

Voreingestellt sucht Ding Teilwörter,<br />

vergleicht also die eingegebene<br />

Zeichenkette mit der<br />

44 02 | 11<br />

www.linux-user.de


Ding 1.7<br />

PRAXIS<br />

Wörterbuchdatei. Wenn das zu<br />

viele Treffer liefert, weil die Zeichenkette<br />

zu kurz ausfällt oder<br />

einfach zu oft auftaucht, hilft der<br />

Menüpunkt ganze Wörter. Entsprechendes<br />

gilt für Groß-/ klein<br />

egal versus Groß-/ klein exakt.<br />

Unter Einstellung finden Sie die<br />

Möglichkeit, diese Optionen<br />

durch Suchparameter anzeigen als<br />

Schalter in die Werkzeugleiste zu<br />

hieven. Sehr interessant ist die<br />

Möglichkeit, neben Zeichenketten<br />

nach Mustern – ausgedrückt<br />

durch reguläre Ausdrücke – zu suchen.<br />

Im Web finden sich mehrere<br />

Anleitungen, die diesen Einsatz<br />

gut beschreiben ([6],[7],[8]).<br />

Versuchen Sie, eine Suche mit<br />

falschen Einstellungen vorzunehmen,<br />

moniert Ding dies im Ergebnisfenster<br />

(Listing 1). Die erste<br />

Zeile bezeichnet die verwendete<br />

Suchmethode, unter Vorschläge erscheint<br />

die Ausgabe des fehlerhaften<br />

Programms. Im Beispiel<br />

macht der Wechsel von Ispell zu<br />

Aspell die Angabe eines neuen<br />

Wörterbuchs erforderlich: Ersetzen<br />

Sie hier ngerman durch DE_de.<br />

[1] Ding-Homepage:<br />

http://www.tu-chemnitz.de/ ~fri/ding/<br />

INFO<br />

[2] Schnelles Agrep: http://ftp.tu-chemnitz.de/<br />

pub/Local/urz/ding/contrib/<br />

[3] Ding herunterladen: http://ftp.tu-chemnitz.<br />

de/pub/Local/urz/ding/<br />

[4] Alien: http://kitenet.net/ ~joey/code/alien/<br />

[5] Wörterbuch: http://ftp.tu-chemnitz.de/pub/<br />

Local/urz/ding/de-en/<br />

Aus anderen Quellen<br />

In der Regel genügt das mit Ding<br />

gelieferte Wörterbuch den Ansprüchen<br />

des Alltags. Durch die<br />

Form der Wörterbuchdatei lässt<br />

es sich in gewissem Maß als Thesaurus<br />

(Synonymwörterbuch)<br />

verwenden. Noch besser geht das<br />

aber mit einer speziellen Thesaurus-Datei<br />

– etwa der von Open-<br />

Thesaurus ([9],[10]), die ebenfalls<br />

in OpenOffice und KWord zum<br />

Einsatz kommen.<br />

Unter Ubuntu heißt diese Datei<br />

/usr/share/openthesaurus-de/thesaurus.txt.<br />

Sie lässt sich bei Ding vorab<br />

einstellen: Einstellungen | Suchmethoden…<br />

öffnet das Fenster aus<br />

Abbildung . Als Trennzeichen<br />

verwenden Sie hier das Semikolon.<br />

Unter De En stehen die<br />

detaillierten Einstellungen mit<br />

Ändern zum Anpassen bereit.<br />

Dort definiert der Eintrag Wörterbuchdatei<br />

den Pfad zum eingesetzten<br />

Wörterbuch. Ding<br />

ist zudem in der Lage, Dict zu<br />

nutzen und damit auf Dict-<br />

Server [11] zuzugreifen (und<br />

damit wieder online zu sein).<br />

te die Tabelle Wichtige Tastenkürzel<br />

für Ding zusammenfasst.<br />

Fazit<br />

Ding präsentiert sich als ein einfaches,<br />

aber leistungsfähiges Werkzeug.<br />

Es lohnt sich unbedingt, es<br />

auf dem System zu installieren,<br />

wenn Sie oft mit englischen Texten<br />

zu tun haben. Zwar liefert<br />

Ding keine fertigen Übersetzungen,<br />

durch das gute Wörterbuch<br />

aber (meistens) mehr als nur<br />

übersetzte Wörter. Die vielen<br />

möglichen Konfigurationen erlauben<br />

es, weitere Tools unter der<br />

Oberfläche zu verwenden.<br />

Es fehlt noch die Möglichkeit,<br />

mittels Ding erzeugte Ausgaben<br />

direkt auf der Befehlszeile weiterzuverarbeiten.<br />

Da ist es dann<br />

sinnvoll, auch weiterhin die Wörterbücher<br />

direkt mit Grep oder<br />

Agrep zu durchsuchen. (agr) ■<br />

Umfangreiche Ergebnisse<br />

gibt die Software<br />

in einer strukturierten<br />

Form wieder.<br />

Nach dem Anklicken<br />

des Pluszeichens vor<br />

einem Begriff zeigt sie<br />

weitere Varianten an.<br />

[6] Reguläre Ausdrücke: http://de.wikipedia.<br />

org/wiki/Regul%C3%A4rer_Ausdruck<br />

[7] Einführung in reguläre Ausdrücke:<br />

http://www.danielfett.de/internet-und-open<br />

source,artikel,regulaere-ausdruecke<br />

[8] Buch zu regulären Ausdrücken: Tony Stubblebine,<br />

„Reguläre Ausdrücke – kurz & gut“,<br />

O’Reilly 2004, ISBN 978-3-89721-264-0,<br />

http://www.oreilly.de/catalog/regexpprger/<br />

[9] OpenThesaurus (Homepage):<br />

http://www.openthesaurus.de<br />

[10] OpenThesaurus (Wikipedia): http://de.<br />

wikipedia.org/wiki/OpenThesaurus<br />

[11] Dict-Server: Erik Bärwaldt, „Babylonische<br />

Sprachentwirrung“, LU 07/ 2007, S. 79,<br />

http://www.linux-community.de/13085<br />

Und sonst?<br />

Das Programm verfügt darüber<br />

hinaus über eine Reihe<br />

von weiteren praktischen<br />

Funktionen: Bereits verwendete<br />

Suchwörter speichert<br />

das Programm in einer History,<br />

auf die Sie über die nach<br />

links und rechts weisenden<br />

Pfeilspitzen neben dem Suchfeld<br />

zugreifen. Auf der anderen<br />

Seite schaltet der Knopf<br />

(voreingestellt mit De <br />

En) die Suchfunktion um.<br />

Für viele Funktionen gibt es<br />

Tastenkürzel, deren gängigs-<br />

Ding verwendet bei<br />

Bedarf alternative<br />

Wörterbücher. Im<br />

Fenster oben legen Sie<br />

fest, in welcher Reihenfolge<br />

Ding sucht.<br />

Die kleinen Pfeilspitzen<br />

rechts neben der<br />

Liste erlauben, diese<br />

neu zu sortieren.<br />

www.linux-user.de<br />

02 | 11 45


PRAXIS<br />

X File Explorer<br />

© Gabriel77, sxc.hu<br />

Dateien verwalten mit XFE<br />

Robuster Winzling<br />

Mit dem schlanken X File Explorer und den kleinen Helfern, die er im Gepäck hat, verwalten Sie<br />

Dateien effizient und ohne jeden Schnickschnack. Vincze-Aron Szabo<br />

XFE 1.32.2<br />

LU/xfe/<br />

README<br />

Kleine Helfer wie der<br />

Dateimanager XFE und<br />

seine Tools bieten sich<br />

als ressourcenschonende<br />

Alternative für<br />

die alltäglichen Arbeiten<br />

auf dem Desktop an.<br />

Die großen Desktop-Umgebungen<br />

KDE und Gnome bringen von<br />

Haus aus einen Dateimanager<br />

mit, der sich perfekt in die jeweilige<br />

Oberfläche integriert. Mitunter<br />

passen diese Standardwerkzeuge<br />

jedoch nicht optimal zu den<br />

eigenen Bedürfnissen, oder man<br />

hat aufgrund der eigenen Arbeitsweise<br />

besondere Ansprüche an<br />

eine entsprechende Software.<br />

Dazu gehört zum Beispiel beim<br />

Einsatz eines älteren Rechners oft<br />

der schonende Umgang mit Hardwareressourcen.<br />

Der X File Explorer [1], kurz:<br />

XFE, bietet sich als Alternative<br />

zum Verwalten von Dateien unter<br />

Linux an. Der übersichtliche<br />

Funktionsumfang und das Bedienkonzept<br />

erinnern an den<br />

Windows Explorer, ohne sich zu<br />

sehr an ihm zu orientieren, was in<br />

INSTALLATION<br />

XFE steht erfreulicherweise in den Repositories aller gängigen<br />

Distributionen bereit, was die Installation sehr vereinfacht. Falls<br />

eine Suche in den Repos Ihrer Lieblingsdistribution vergeblich<br />

bleibt, laden Sie XFE als DEB- oder RPM-Paket herunter [3]. Bevor<br />

Sie das Programm installieren, ziehen Sie zunächst bei Bedarf<br />

die Fox-Bibliotheken nach, die Sie – sofern nicht über die<br />

Repositories erhältlich – ebenfalls entweder als DEB- oder als<br />

RPM-Paket aus dem Netz [4] fischen. Haben Sie Fox installiert,<br />

spielen Sie im Anschluss das XFE-Paket ein. Danach steht die<br />

Software wie gewohnt über das Startmenü bereit.<br />

Redmond bis Windows XP den<br />

Standard markierte. Die Ähnlichkeit<br />

kommt nicht von ungefähr:<br />

XFE basiert auf dem X Win Commander<br />

[2], an dem die Entwickler<br />

mittlerweile jedoch nicht mehr<br />

weiterarbeiten. Das Projekt richtete<br />

sich seinerzeit an Nutzer der<br />

Windowmanager Icewm, Qvwm<br />

sowie Windowmaker, die auf ressourcenschonende<br />

Anwendungen<br />

Wert legen.<br />

Dasselbe gilt für XFE: Bei dem<br />

Programm handelt es sich ebenfalls<br />

um einen Dateimanager, der<br />

im Betrieb durch seine Schnelligkeit<br />

besticht und der daher gut<br />

auf Rechnern läuft, deren Hardwareressourcen<br />

Sie mit Bedacht<br />

einteilen müssen. Auch für Rechner<br />

mit mehr Dampf unter der<br />

Haube erweist sich XFE aufgrund<br />

seiner Funktionen als interessante<br />

Alternative, sofern Sie die fehlende<br />

optische Integration in den<br />

Desktop nicht stört. Das Setup gestaltet<br />

sich in jedem Fall einfach<br />

(siehe Kasten Installation).<br />

Bedienung<br />

Im Bedienkonzept gleicht XFE<br />

den meisten anderen Dateimanagern:<br />

Links im Fenster finden Sie<br />

die Ordnerstruktur der vorhandenen<br />

Festplatten. Wählen Sie dort<br />

einen Ordner per Mausklick aus,<br />

zeigt das Programm dessen Inhalt<br />

an. Daneben unterstützt die Applikation<br />

einen Modus, der dem<br />

des Midnight Commanders [5]<br />

ähnelt und zwei Ordner parallel<br />

anzeigt (Abbildung ). Sie erreichen<br />

diese Anzeigeart über<br />

[Strg]+[F4] oder den Menüpunkt<br />

Anzeigen | Baum und zwei Felder.<br />

Für jedes Ordnerfeld stellt die<br />

Software gleichzeitig einen eigenen<br />

Eintrag im Menü bereit (etwa<br />

Linkes Anzeigefeld). Dort wählen<br />

Sie die Sortierfolge sowie die Darstellungsweise<br />

(kleine beziehungsweise<br />

große Symbole oder<br />

Detailliste) aus. Die meisten<br />

Funktionen erreichen Sie ebenfalls<br />

über die Symbolleiste. Benötigen<br />

Sie die Ordnerstruktur auf<br />

der linken Seite nicht, blenden Sie<br />

diese einfach aus, indem Sie über<br />

das Menü Anzeigen eine entsprechende<br />

Ansicht aktivieren.<br />

Spezielle Funktionen für die tägliche<br />

Arbeit unter Linux finden<br />

Sie unter Werkzeuge. Hier starten<br />

Sie beispielsweise ein neues Programmfenster<br />

sowie eine XFE-<br />

Instanz mit Administratorrechten.<br />

Darüber hinaus haben Sie die<br />

Möglichkeit, einen Befehl direkt<br />

48 02 | 11<br />

www.linux-user.de


X File Explorer<br />

PRAXIS<br />

auszuführen oder eine Konsole<br />

aufzurufen, um darin weiterzuarbeiten.<br />

Für den Papierkorb gibt es<br />

einen eigenen Eintrag in der<br />

Menüleiste, über den Sie direkt<br />

zum entsprechenden Ordner<br />

springen und separat die Größe<br />

des Datenmülls abfragen. Für die<br />

meisten Funktionen stehen entsprechende<br />

Tastenkürzel bereit.<br />

Lesezeichen erleichtern mitunter<br />

die alltägliche Arbeit in XFE. Sie<br />

finden diese in der Menüleiste<br />

über dem entsprechenden Eintrag.<br />

Um ein Bookmark hinzuzufügen,<br />

navigieren Sie einfach in den entsprechenden<br />

Ordner und klicken<br />

nun im Menü auf den Eintrag Lesezeichen<br />

| Lesezeichen hinzufügen.<br />

Eine umfassende Lesezeichenverwaltung<br />

mit Ordnern und Unterordnern<br />

(oder gar Schlagworten<br />

wie zum Beispiel in Firefox)<br />

enthält XFE aber nicht. Daher gerät<br />

die Lesezeichenliste im Menü<br />

schnell ein wenig unübersichtlich.<br />

Dennoch empfiehlt es sich nur im<br />

Ausnahmefall, kurzentschlossen<br />

auf Lesezeichen | Lesezeichen löschen<br />

zu klicken: Damit entfernen<br />

Sie unglücklicherweise gleich alle<br />

gespeicherten Einträge.<br />

Einstellungssache<br />

Falls Ihnen die großen Schriften<br />

in der Benutzeroberfläche von<br />

XFE zu opulent erscheinen, passen<br />

Sie diese über die Programmeinstellungen<br />

unter Bearbeiten |<br />

Einstellungen an. Im sich öffnenden<br />

Dialog wechseln Sie auf den<br />

Reiter Schriftarten und klicken auf<br />

Auswählen…. Hier stellen Sie beispielsweise<br />

die Schriftart auf Arial<br />

[monotype] in Schriftgröße 9. Unter<br />

Thema wählen Sie zusätzlich<br />

bei Bedarf ein anderes Farbschema<br />

aus, etwa um XFE optisch besser<br />

in den Desktop zu integrieren.<br />

Poweruser schwören auf den<br />

Einsatz von Tastenkombinationen.<br />

Diese dürfen Sie in XFE nach<br />

Ihren Bedürfnissen anpassen.<br />

Dazu nutzen Sie im Einstellungsdialog<br />

unter dem Reiter Tastenbelegung<br />

das Control Tastenbelegung<br />

ändern (Abbildung ).<br />

Zusatztools<br />

Mit der Installation<br />

von XFE<br />

kommen einige<br />

zusätzliche<br />

kleine Programme<br />

auf<br />

die Festplatte,<br />

die XFE zum<br />

Beispiel zum<br />

Anzeigen von<br />

Grafikdateien<br />

verwendet<br />

(Abbildung ,<br />

nächste Seite).<br />

Öffnen Sie mit<br />

XFE eine Bilddatei,<br />

übergibt<br />

die Software<br />

diese an X File Image (XFI) und<br />

bietet unter der Bildanzeige den<br />

übrigen Ordnerinhalt für das Öffnen<br />

anderer Bilder an.<br />

Über die Symbol- beziehungsweise<br />

die Menüleiste stehen die<br />

wichtigsten Funktionen wie Zoomen<br />

und Drehen bereit. Über Anzeigen<br />

| Thumbnails betrachten Sie<br />

den Ordnerinhalt in Form kleiner<br />

<strong>Vorschau</strong>bilder. Allerdings nimmt<br />

diese Funktion in einem Ordner<br />

beim ersten Mal ein wenig Zeit in<br />

Anspruch, sodass der Bildbetrachter<br />

so lange nicht bereitsteht.<br />

In vielerlei Hinsicht wirkt der<br />

Bildbetrachter recht spartanisch:<br />

So ist beispielsweise ein bequemes<br />

Blättern mit den Pfeiltasten oder<br />

der Maus nicht möglich. Sie müssen<br />

stattdessen Bilder für die Anzeige<br />

direkt mit der Maustaste<br />

doppelklicken oder mit der Eingabetaste<br />

öffnen.<br />

Ein weiteres Manko: XFE passt<br />

besonders große Bilder beim Öffnen<br />

nicht ins Programmfenster<br />

ein. Dies müssen Sie manuell mithilfe<br />

der Funktion Fenster anpassen<br />

aus dem Menü Bild erledigen.<br />

Für Tastaturfreunde steht dazu<br />

das Kürzel [Strg]+[F] bereit. Alternativ<br />

legen Sie das Verkleinern<br />

auf die Fenstergröße per Einstellungen<br />

| Fensterfüllend öffnen als<br />

Standardverhalten fest. Allerdings<br />

speichert XFE diesen Parameter<br />

nicht, sodass Sie beim nächsten<br />

Aufruf von X File Image erneut einen<br />

Bildausschnitt vorfinden.<br />

XFE bietet zum effizienten<br />

Verwalten von<br />

Dateien eine zweispaltige<br />

Ansicht. Diese rufen<br />

Sie über [Strg]+<br />

[F4] auf.<br />

Bei Bedarf passen<br />

Sie XFE exakt an Ihre<br />

Bedürfnisse an: Für<br />

jede Funktion in der<br />

Liste steht eine Tastenkombinationen<br />

bereit.<br />

www.linux-user.de<br />

02 | 11 49


PRAXIS<br />

X File Explorer<br />

Audacious erinnert optisch<br />

und funktional an XMMS und<br />

Winamp.<br />

Der spartanische<br />

Bildbetrachter X File<br />

Image verlangt etwas<br />

Einarbeitung.<br />

Audacious besticht<br />

in der Version 2.3<br />

durch seine Anpassungsfähigkeit.<br />

Musik<br />

Sofern nicht bei der Installation<br />

deaktiviert, kommt zusammen<br />

mit XFE auch Audacious ins System.<br />

Rufen Sie aus XFE heraus<br />

Audiodateien auf, landen sie in<br />

diesem Player. Bei vielen Distributionen<br />

– vor allem solchen, die auf<br />

Debian basieren – liegt Audacious<br />

noch in der Version 2.3 vor (Abbildung<br />

). Mittlerweile gibt es<br />

den Player bereits in Version 2.4,<br />

die etwas anders aussieht.<br />

Audacious, ein Verwandter des<br />

Winamp-Klons XMMS, besticht<br />

vor allem durch sein schlankes<br />

Auftreten. Er stellt<br />

alle notwendigen<br />

Funktionen zum Abspielen<br />

von Audiodateien<br />

und Internetradios bereit.<br />

Neben MP3 und OGG Vorbis unterstützt<br />

das Programm auch<br />

MPEG-4 und AAC.<br />

Die Oberfläche gliedert sich in<br />

klassischer Winamp-Manier: Neben<br />

den Steuerelementen zum<br />

Starten, Stoppen und Vor- sowie<br />

Zurückspulen stehen ein Equalizer<br />

und eine Playlist-Ansicht bereit.<br />

Über das Playlist-Fenster<br />

passen Sie die Abspielliste mittels<br />

Schaltflächen mit dem Plus- beziehungsweise<br />

Minus-Zeichen an.<br />

Über das Notensymbol hilft Ihnen<br />

der Wiedergabenlisten-Manager<br />

dabei, Ihre Abspiellisten<br />

zu<br />

verwalten. Darüber<br />

hinaus<br />

stehen Funktionen<br />

zum<br />

Import und<br />

Export von<br />

Playlists bereit.<br />

Das schlanke-<br />

Audacious lässt<br />

sich auch weitgehend<br />

den eigenen<br />

Vorlieben<br />

anpassen:<br />

Klicken Sie mit<br />

der rechten<br />

Maustaste auf<br />

das Hauptfenster<br />

mit der Abspielsteuerung,<br />

rufen Sie die<br />

Einstellungen auf. Hier passen<br />

Sie die Oberfläche an<br />

und finden eine umfangreiche<br />

Liste von Plugins, mit<br />

deren Hilfe Sie zum Beispiel<br />

optische Effekte aktivieren<br />

(Abbildung ).<br />

Bei der Installation sucht<br />

sich XFE noch weitere Tools<br />

zur Unterstützung heraus.<br />

Zum Editieren von Dateien dient<br />

von Haus aus X File Write (XFW),<br />

zum Betrachten und Installieren<br />

von RPM- oder DEB-Paketen öffnet<br />

sich beim Doppelklick auf entsprechende<br />

Dateien X File Package<br />

(XFP). Über Bearbeiten | Einstellungen<br />

stellen Sie in XFE unter<br />

dem Reiter Programme alternativ<br />

Ihre Lieblingstools als Standardwerkzeug<br />

ein.<br />

Fazit<br />

XFE entpuppt sich bei genauerem<br />

Hinsehen als ein sympathisches<br />

Allround-Werkzeug. Er zeigt<br />

durch seine kleinen Begleiter wie<br />

X File Image und Audacious, dass<br />

es auch abseits der ausgetretenen<br />

Desktop-Pfade Anwendungen<br />

gibt, die ihre eigenen Stärken aufweisen.<br />

Besonders wenn Sie<br />

Linux auf älterer Hardware einsetzen,<br />

erweisen sich diese nützlichen<br />

Helferlein als großer Gewinn.<br />

Doch selbst wenn Ihnen<br />

leistungsfähige Hardware zur<br />

Verfügung steht, lohnt sich ein<br />

Blick auf XFE allemal. (agr) ■<br />

INFO<br />

[1] XFE: http://roland65.free.fr/xfe/<br />

[2] X Win Commander:<br />

http://xwc.sourceforge.net<br />

[3] XFE-Download:<br />

http://sourceforge.net/projects/xfe/<br />

[4] Fox-Download: http://roland65.free.fr/xfe/<br />

index.php?page=download<br />

[5] Midnight Commander:<br />

http://www.midnight-commander.org<br />

50 02 | 11<br />

www.linux-user.de


OpenSUSE 11.3<br />

- ganz easy!<br />

Print oder<br />

PDF-Download<br />

NUR 14,90<br />

Der <strong>Einstieg</strong> in Linux war nie so einfach:<br />

Mit OpenSuse 11.3 erhalten Sie eine aktuelle<br />

und leicht zu installierende Version<br />

des freien Betriebssystems – und mit<br />

diesem Buch auf 180 Seiten alles, was<br />

Sie für die ersten Schritte benötigen.<br />

Aus dem Inhalt:<br />

• Installation von der Buch-DVD<br />

• Die grafi sche Oberfl äche von Linux<br />

• Sicher ins Internet mit Linux<br />

• Tipps zur Hardware-Einrichtung<br />

• Arbeiten mit der Kommandozeile<br />

• Hilfe bei der Linux-Community finden<br />

Der Autor: Hans-Georg Eßer arbeitet<br />

seit Mitte der 90er Jahre mit Linux. Er<br />

hat 2000 die Zeitschrift <strong>LinuxUser</strong> und<br />

2003 das Einsteigermagazin EasyLinux<br />

gegründet. EasyLinux betreut er noch<br />

heute als Chefredakteur.<br />

Jetzt bestellen:<br />

Shop: http://shop.linuxnewmedia.de/Buch (versandkostenfrei als Print-Version)<br />

Telefon: +49 (89) 993 41 - 0 • Fax: +49 (89) 993 41 - 199 • E-mail: order@linuxnewmedia.de<br />

Inhalt, Probekapitel, Kauf der PDF-Version: www.easylinux.de/opensuse-buch


praxis<br />

Beets<br />

Musiksammlungen verwalten mit Beets<br />

Ton-Leiter<br />

Viele Musikliebhaber hören Songs am liebsten direkt aus der<br />

MP3-Sammlung. Beets bringt Ordnung in die<br />

Lieder und Alben, damit Sie schnell die<br />

Lieblingsmusik finden. Florian Effenberger<br />

rEaDME<br />

Ganz ohne GUI und<br />

ausschließlich per<br />

Konsole indiziert die<br />

Musikverwaltung<br />

Beets Audiodateien<br />

und bietet dabei zahlreiche<br />

Möglichkeiten,<br />

die Datenbank zu<br />

durchsuchen und die<br />

Metadaten der Stücke<br />

zu aktualisieren.<br />

Musikliebhaber, die ihr Archiv<br />

in digitaler Form vorwiegend<br />

auf der Festplatte<br />

vorhalten, kennen das Problem:<br />

Schnell geht die Übersicht<br />

über die Sammlung<br />

verloren, das Finden einzelner<br />

Tracks artet zum Geduldsspiel<br />

aus. Abhilfe<br />

schafft das kommandozeilenorientierte<br />

Programm<br />

Beets [1]: Es indiziert rekursiv<br />

ganze Verzeichnisbäume,<br />

schreibt die Treffer<br />

in eine Datenbank und sortiert<br />

die Audiodateien an<br />

anderer Stelle in eine übersichtliche<br />

Ordnerstruktur.<br />

Als Dreingabe korrigiert<br />

oder ergänzt es dabei noch<br />

fehlerhafte oder fehlende<br />

ID3-Tags.<br />

Installation<br />

Bei dem Tool Beets handelt<br />

es sich um ein <strong>Python</strong>-Programm,<br />

das Sie beispielsweise<br />

unter Ubuntu direkt über Pip<br />

[2] einrichten, den <strong>Python</strong><br />

Package Installer. Als Grundlage<br />

für Pip und Beets benötigen<br />

Sie vorab noch die Bibliotheken<br />

python-dev, python-setuptools<br />

und python-pip. Das Installieren<br />

der Musikverwaltung übernimmt<br />

dann im Anschluss der<br />

Kommandozeilen-Befehl sudo<br />

pip install beets.<br />

Nutzen Sie eine Distribution, für<br />

die Pip nicht zur Verfügung steht,<br />

laden Sie den Beets-Tarball von<br />

der Projektseite herunter [3], entpacken<br />

ihn und richten das Programm<br />

mit dem Kommando sudo<br />

python setup.py install im System<br />

ein. Der Installer lädt dabei automatisch<br />

einige weitere benötigte<br />

Bibliotheken, etwa python-musicbrainz2<br />

aus dem Internet nach.<br />

Am Anfang war...<br />

Bevor Sie richtig loslegen, gilt es,<br />

Beets zu konfigurieren. Dazu legen<br />

Sie, falls nicht vorhanden, die<br />

Konfigurationsdatei .beetsconfig<br />

in Ihrem Heimatverzeichnis an.<br />

Darin legen Sie fest, welche Pfade<br />

das Programm zukünftig verwendet.<br />

Im Beispiel aus Listing 1 verwendet<br />

das Programm das Verzeichnis<br />

~/Musikdatenbank/beets.blb<br />

zum Speichern der Datenbank<br />

und ~/Musik für die Ablage der Audiodateien<br />

selbst.<br />

Beachten Sie, dass Beets ähnlich<br />

wie iTunes sämtliche von ihm<br />

verwalteten Stücke in das gewählte<br />

Musikverzeichnis kopiert, sodass<br />

die Dateien anschließend<br />

doppelt auf der Festplatte liegen.<br />

Listing 1<br />

[beets]<br />

directory: ~/Musik<br />

library: ~/Musikdatenbank/beets.<br />

blb<br />

52 02 | 11<br />

www.linux-user.de


Beets<br />

praxis<br />

In der Konfigurationsdatei geben<br />

Sie daher nicht die Quelle Ihrer<br />

bestehenden Sammlung, sondern<br />

das Ziel für die Beets-Bibliothek<br />

an. Das hat auch einen guten<br />

Grund, denn wenn beim Import<br />

der Dateien etwas schiefgeht,<br />

bleiben die Originale unangetastet.<br />

Möchten Sie lieber Platz sparen,<br />

ergänzen Sie die Konfigurationsdatei<br />

um die Anweisung<br />

import_copy: no. In diesem Fall belässt<br />

Beets die Dateien am ursprünglichen<br />

Platz.<br />

Der erste Import<br />

Nach Abschluss der Vorarbeiten<br />

beginnen Sie mit dem Import der<br />

ersten Lieder. Der Aufruf beet<br />

import -A ~/Desktop/alben/pink_<br />

floyd_pulse/ (beachten Sie, dass<br />

der Befehl beet ohne abschließendes<br />

s heißt) liest das im angegebenen<br />

Verzeichnis enthaltene<br />

Album in die Datenbank ein und<br />

kopiert die Lieder in das in der<br />

Konfigurationsdatei festgelegte<br />

Musikverzeichnis.<br />

Da Beets die Verzeichnisse rekursiv<br />

abarbeitet, können Sie<br />

auch einfach das übergeordnete<br />

Verzeichnis benennen, um alle<br />

darin enthaltenen Musikdateien<br />

zu indizieren. Ein beet import -A<br />

~/Desktop/alben/ lädt so nicht nur<br />

das Pink-Floyd-Meisterwerk in<br />

die Datenbank, sondern berücksichtigt<br />

auch die Beatles-Sammlung<br />

und die Diskografie des London<br />

Symphony Orchestra im<br />

zweiten und dritten Unterordner.<br />

Der im Beispiel verwendete<br />

Schalter -A sorgt dafür, dass bestehende<br />

Metadaten (MP3-Tags<br />

wie Titel oder Album) bestehen<br />

bleiben. Soll Beets stattdessen automatisch<br />

versuchen, die passenden<br />

ID3-Tags über das Internet<br />

zu ermitteln, dann lassen<br />

Sie den Parameter einfach<br />

weg und rufen nur beet<br />

import ~/Desktop/alben/ auf.<br />

Im Test funktionierte das<br />

allerdings nur sehr bedingt:<br />

Im Fall der losen<br />

Beatles-Sammlung schlug<br />

das sogenannte Autotagging<br />

ganz fehl, da kein korrektes<br />

Album zugeordnet war. Bei Pink<br />

Floyds „Pulse“ zeigte Beets zahlreiche<br />

Alternativvorschläge – auf<br />

die einfache Idee, dass es sich bei<br />

den Aufnahmen um CD 1 und CD<br />

2 handelte, kam es jedoch nicht,<br />

obwohl diese Angaben sogar in<br />

den Metadaten der Audiodateien<br />

standen. Immerhin lädt Beets zusätzlich<br />

zu den Tags auch die jeweiligen<br />

CD-Cover herunter, sofern<br />

vorhanden.<br />

Zwar kopiert das Programm bei<br />

einem erneuten Import der Musiksammlung<br />

die bereits eingefügten<br />

Lieder nicht noch einmal,<br />

legt sie aber ein zweites Mal in<br />

der Datenbank an.<br />

Wer sucht, …<br />

Einen ersten Überblick über das<br />

vorhandene Material liefert die<br />

Statistikfunktion, die Sie mit beet<br />

stats abrufen (Abbildung ). Die<br />

im Test verwendete Zusammenstellung<br />

sorgt immerhin schon<br />

für fast zehn Stunden Musikgenuss<br />

in 124 Liedern aus 93 verschiedenen<br />

Alben.<br />

Neben diesen generellen Informationen<br />

beherrscht Beets natürlich<br />

auch weitaus mächtigere Abfragen,<br />

die Sie mit dem Befehl<br />

beet list abrufen. So liefert beet<br />

list love alle Einträge, in deren<br />

Metadaten die Zeichenfolge Love<br />

vorkommt<br />

(Abbildung<br />

). Die<br />

Schreibweise<br />

spielt keine<br />

Rolle, das<br />

heißt, LOVE<br />

wird genauso<br />

gefunden<br />

wie LoVe<br />

oder love.<br />

Die Statistikfunktion von Beets<br />

gibt Auskunft über den Umfang der<br />

Musiksammlung.<br />

Die Auflistung erfolgt dabei immer<br />

nach dem Schema Interpret/<br />

Album/ Titel. Das Programm erlaubt<br />

auch die Abfrage mehrerer<br />

Suchbegriffe. So zeigt beet list<br />

love radar beispielsweise alle Einträge,<br />

die sowohl die Zeichenfolgen<br />

love als auch radar enthalten,<br />

etwa den Golden-Earring-Klassiker<br />

„Radar Love“.<br />

Für eine noch genauere Suche<br />

fügen Sie dem Suchtext ein qualifizierendes<br />

Schlüs sel wort hinzu.<br />

Mittels beet list album:heavy rotation<br />

erfahren Sie, welche Lieder<br />

des Anastacia-Albums Ihre Sammlung<br />

enthält (Abbildung ).<br />

… der findet<br />

Bei Alben, die aus mehreren CDs<br />

bestehen, schränken Sie die Suche<br />

mit der Angabe der CD (beispielsweise<br />

disc 1 oder disc 2) ein.<br />

Alles, was nach dem Schlüsselwort<br />

album: steht, durchsucht die<br />

Namen der vorhandenen Alben.<br />

DEr aUtOr<br />

Florian Effenberger<br />

engagiert sich seit<br />

vielen Jahren ehrenamtlich<br />

für freie Software.<br />

Er ist Gründungsmitglied<br />

und<br />

Mitglied des Steering<br />

Committee der Document<br />

Foundation. Zuvor<br />

war er fast sieben<br />

Jahre im Projekt<br />

OpenOffice.org aktiv,<br />

zuletzt als Marketing<br />

Project Lead. Zudem<br />

schreibt er regelmäßig<br />

für zahlreiche<br />

deutsch- und englischsprachige<br />

Fachpublikationen.<br />

Bei Bedarf korrigiert<br />

Beets auch die<br />

IDv3-Tags in den Files.<br />

Die detailliertere<br />

List-Abfrage zeigt alle<br />

Songtitel, in deren<br />

Meta-Informationen<br />

das Suchwort vorkommt.<br />

www.linux-user.de<br />

02 | 11 53


praxis<br />

Beets<br />

Beets ermöglicht<br />

durch Angabe von Keywords<br />

nach ganz<br />

bestimmten Interpreten<br />

oder Alben zu<br />

fahnden.<br />

Dabei müssen Sie keinen zusammenhängenden<br />

Text angeben: Es<br />

genügt, wenn die Zeichen an einer<br />

beliebigen Stelle vorkommen.<br />

Die Abfrage auf Lieder von CD 2<br />

können Sie daher auch auf beet<br />

list album:pulse 2 verkürzen, die<br />

Ausgabe bleibt dieselbe. Theoretisch<br />

genügt auch ein beet list<br />

album:pu 2, sofern die Datenbank<br />

kein anderes Album mit der<br />

Buchstabenfolge pu enthält.<br />

Optionen<br />

Kommt das Schlüsselwort zum<br />

Schluss, lässt es sich auch mit einer<br />

generischen Abfrage kombinieren.<br />

So liefert beet list the<br />

album:pulse alle Lieder aus dem<br />

Pulse-Album von Pink Floyd, (CD<br />

1 und 2), welche die Zeichenfolge<br />

the enthalten. Eine Suche nach<br />

zwei zusammenhängenden Begriffen<br />

erlaubt das Programm jedoch<br />

nicht. Geben Sie in the als<br />

Suchbegriff ein, so liefert Beets<br />

nicht etwa alle Lieder mit dieser<br />

Zeichenfolge, sondern alle Titel,<br />

die sowohl die Zeichenketten in<br />

als auch the enthalten. Dafür erlaubt<br />

das Tool mit dem Schalter<br />

-a die explizite Suche nach Alben,<br />

ohne die enthaltenen Titel anzuzeigen.<br />

So zeigt beispielsweise<br />

beet list -a heavy rotation nur<br />

das Anastacia-Album an, ohne die<br />

einzelnen Lieder aufzulisten.<br />

Das Programm stellt zudem weitere<br />

Schlüsselworte bereit. So liefert<br />

beet list year:2010 alle Titel<br />

aus dem Jahr 2010, beet list<br />

title:wall dagegen sämtliche Stücke<br />

mit wall im Liedtitel. Auch<br />

diese Keywords erlauben eine<br />

Kombination untereinander. Ein<br />

Beispiel für eine komplexe Abfrage:<br />

beet list live album:pulse<br />

title:wall year:1995. Diese Befehlszeile<br />

listet alle Stücke aus Alben<br />

mit pulse, welche die Zeichenfolge<br />

wall enthalten und aus dem<br />

Jahr 1995 stammen, wobei zudem<br />

ein beliebiges Feld den Begriff<br />

live enthalten muss. Musikliebhaber<br />

erkennen es sofort: Die<br />

Suche zielt auf die Live-Version<br />

von The Wall, Part II, aus dem<br />

1995er Pulse-Album.<br />

Schweigen im Walde?<br />

Doch wie hören sich all die schönen<br />

Lieder jetzt eigentlich an?<br />

Mit Beets gar nicht: Das Programm<br />

konzentriert sich darauf,<br />

Lieder zu verwalten, nicht sie abzuspielen.<br />

Um das gewünschte<br />

Lied zu hören, öffnen Sie die<br />

MP3-Datei im jeweiligen Verzeichnis.<br />

In der Grundeinstellung<br />

sortiert Beets die importierten<br />

Lieder nach dem Schema Interpret/<br />

Album/ Liedtitel in Unterverzeichnisse.<br />

„I Can Feel You“<br />

von Anastacia befindet sich in unserem<br />

Beispiel im Ordner ~/Musik/<br />

Anastacia/Heavy Rotation/. Wem<br />

das zu umständlich erscheint, der<br />

behilft sich durch ein Plugin, das<br />

Beets um einen rudimentären<br />

MP3-Player erweitert [4].<br />

Dokumentation<br />

Die Dokumentation von Beets<br />

fällt eher dürftig aus. Hilfe erhalten<br />

Sie auf der Kommandozeile<br />

mit beet help, wobei jeder der Befehle<br />

seinerseits noch eine separate<br />

Hilfeseite besitzt. Mehr Informationen<br />

zu den Parametern<br />

beim Entfernen von Liedern erhalten<br />

Sie beispielsweise mittels<br />

beet help remove. Wesentlich informativer<br />

zeigt sich aber das Beets-<br />

Wiki [5], das unter anderem die<br />

Konfigurationsdatei im Detail beschreibt.<br />

Falls Sie auf der Kommandozeile<br />

häufig dieselben<br />

Parameter nutzen, bietet es sich<br />

an, den Eintrag direkt in der<br />

~/.beetsconfig vorzunehmen.<br />

Fazit<br />

Beets richtet sich in erster Linie<br />

an Puristen, die ihre Musikdatenbank<br />

entweder per Kommandozeile<br />

beziehungsweise via SSH abfragen<br />

möchten, oder aber das<br />

Tool direkt per Skript einbinden.<br />

Allerdings offenbarte der Test einige<br />

Schwächen. Zu diesen zählt<br />

neben der mageren Dokumentation<br />

nicht zuletzt die Tatsache,<br />

dass Beets Lieder beim zweiten<br />

Import doppelt in der Datenbank<br />

mitführt. Auch fehlt dem Tool<br />

derzeit noch die Möglichkeit der<br />

Suche nach zusammenhängenden<br />

Zeichenfolgen.<br />

Fraglich bleibt, ob die anvisierte<br />

Zielgruppe auf ein Tool wie Beets<br />

setzen würde oder nicht doch lieber<br />

direkt eine eigene Datenbank<br />

aufsetzt. Auch eine Kombination<br />

aus find, sed, grep und awk leistet<br />

schon recht gute Arbeit.<br />

Wer dagegen etwas fürs Auge<br />

sucht, greift ohnehin zu einer der<br />

grafischen Alternativen.<br />

Unabhängig davon erscheint der<br />

Ansatz von Beets jedoch allemal<br />

interessant. (tle) ■<br />

inFO<br />

[1] Beets: http://code.google.com/p/beets/<br />

[2] Pip: http://pip.openplans.org<br />

[3] Beets Downloads: http://code.google.com/<br />

p/beets/downloads/list<br />

[4] BPD-Plugin für MP3-Wiedergabe:<br />

http://code.google.com/p/beets/wiki/BPD<br />

[5] Hilfe im Wiki:<br />

http://code.google.com/p/beets/w/list<br />

54 02 | 11<br />

www.linux-user.de


Community-Abo<br />

Schließen Sie jetzt ein Community-Abo ab<br />

und lesen Sie alle Artikel online!<br />

Nur 1 E<br />

im Monat * !<br />

* zusätzlich zum Print-Abo<br />

Die ideale Ergänzung zu Ihrem<br />

<strong>LinuxUser</strong>- und EasyLinux-Abo!<br />

◗ Online-Zugriff auf alle Artikel für 1 *<br />

◗ Online-Workshops und Live-Support<br />

◗ Aktuelle Artikel, bevor das Heft in Druck geht!<br />

* zusätzlich zum Printabo<br />

JETZT ABONNIEREN:<br />

◗ Telefon: 089 / 2095 9127 ◗ Fax: 089 / 2002 8115<br />

◗ E-Mail: abo@linux-community.de ◗ Web: www.linux-community.de/abo<br />

Linux New Media AG • Putzbrunner Str. 71 • 81739 München


PRAXIS<br />

Blender 2.5<br />

Einführung in Blender 2.5: Materialien<br />

Haarige Angelegenheit<br />

In Teil 2 unseres Workshops mutiert der bislang recht nackte Dust Puppy endlich zum haarigen Puschel. Gottfried Hofmann<br />

Beispieldateien,<br />

Teil 1 des Artikels<br />

LU/blender/<br />

README<br />

Mit Materialien geben<br />

Sie Ihren Blender-Kreationen<br />

ein wesentlich realistischeres<br />

Aussehen<br />

und modellieren überzeugend<br />

aussehende<br />

Haut, Haare und Augen.<br />

EINFÜHRUNG IN BLENDER<br />

Teil 1: Grundlagen LU 01/ 2011, S. 28<br />

Teil 2: Materialien LU 02/ 2011, S. 56<br />

Teil 3: Rigging LU 03/ 2011<br />

Die Maxime des 3D-Hobbyisten<br />

lautet: Das Werk soll so früh wie<br />

möglich so gut wie möglich aussehen<br />

– dann macht das Weiterarbeiten<br />

deutlich mehr Freude. Daher<br />

spendieren wir in diesem Teil<br />

der Serie dem Dust Puppy bereits<br />

das Fell sowie die Haut, auch<br />

wenn das bei einer normalen Produktion<br />

vorerst noch hintenanstehen<br />

würde.<br />

Um die Haare kümmert sich das<br />

in Blender 2.5 integrierte Partikel-System.<br />

Wer die Entwicklung<br />

von Blender ein wenig verfolgt<br />

hat, der erinnert sich sicher an die<br />

drei „Open Movies“-Kurzfilme,<br />

die komplett mit freier Software<br />

(vornehmlich natürlich Blender)<br />

erstellt und unter einer Creative-<br />

Commons-Lizenz freigegeben<br />

wurden. Alle drei hatten neben einer<br />

Demonstration der Möglichkeiten<br />

von Blender immer auch<br />

die Weiterentwicklung der Software<br />

zum Ziel, und Haare waren<br />

in jedem der Projekte gefragt.<br />

Das erste Open Movie, „Elephants<br />

Dream“ [1] aus dem Jahr<br />

2006, legte den Grundstein für<br />

die heutige Haarsimulation. Zwei<br />

Jahre danach waren Cartoon-Gras<br />

und Fell für „Big Buck Bunny“ [2]<br />

an der Reihe. Für das 2010 fertiggestellte<br />

„Sintel“ [3] wurde das<br />

System weiter optimiert, um auch<br />

bei längeren Frisuren gute Dienste<br />

zu leisten.<br />

Die lange Entwicklungszeit, ausgiebige<br />

Tests sowie der Einsatz<br />

unter professionellen Produktionsbedingungen<br />

bedeuten aber<br />

noch lange nicht, dass die Arbeit<br />

mit Haaren in Blender frei von<br />

Schwierigkeiten wäre. Dieser Artikel<br />

beschreibt daher einen möglichst<br />

simplen Aufbau. Zuerst<br />

weisen Sie dem Dust Puppy aber<br />

Materialien für die Füße und den<br />

Körper zu, damit das derzeit<br />

noch hellgraue Objekt ein wenig<br />

an Farbe gewinnt.<br />

Materialien<br />

Bei 3D-Modellen handelt es sich<br />

meist nur um eine leere Hülle, deren<br />

Aussehen die Geometrie und<br />

Oberfläche bestimmen. Um die<br />

Geometrie haben Sie sich im vorigen<br />

Teil des Workshops gekümmert,<br />

nun kommt die Oberfläche<br />

an die Reihe. In Blender definieren<br />

Sie wie in den meisten anderen<br />

3D-Programmen die Oberfläche<br />

eines Objekts über sogenannte<br />

Materialien: Dabei handelt es<br />

sich um die Eigenschaften der<br />

Oberfläche und deren Interaktion<br />

mit dem Licht. Hier gilt es, eine<br />

ganze Reihe von Punkten zu klären:<br />

Welche Farbe hat die Oberfläche,<br />

und wie stark glänzt sie? Reflektiert<br />

sie, oder ist sie vielleicht<br />

sogar durchsichtig? Wirft sie<br />

Schatten, und falls ja, wie?<br />

Wie Sie vermutlich schon ahnen,<br />

definiert man Materialien in<br />

Blender über das Properties Panel.<br />

Wählen Sie das Modell des Dust<br />

Puppy aus und klicken Sie auf den<br />

Reiter mit dem runden Material-<br />

Symbol (Abbildung ). Da das<br />

Modell aus dem Standardwürfel<br />

entstand, ist bereits ein Material<br />

zugewiesen. Ändern Sie den Namen<br />

in „Beine“ oder „Haut“ oder<br />

In diesem Panel definieren Sie das<br />

Aussehen von Oberflächen. Wichtig<br />

sind hier aussagekräftige Namen.<br />

56 02 | 11<br />

www.linux-user.de


Blender 2.5<br />

PRAXIS<br />

© Blender Foundation, http:// www. blender. org, Creative Commons Attribution 3.0<br />

eine andere eindeutige Bezeichnung,<br />

denn das Modell soll zwei<br />

verschiedene Materialien erhalten,<br />

und Sie wollen später nicht<br />

durcheinandergeraten.<br />

Unterhalb des Materialien-Panels<br />

finden Sie zahlreiche Optionen,<br />

von denen Sie in diesem Fall<br />

aber nur zwei benötigen. Unter<br />

Diffuse definieren Sie die Farbe<br />

und das grundlegende Verhalten<br />

der Oberfläche bei Lichteinfall.<br />

Die derzeitigen Lichteinstellungen<br />

(nur Environment Lightning)<br />

spiegeln jedoch kaum die unterschiedlichen<br />

Möglichkeiten der<br />

Shader wider. Es genügt also, einfach<br />

nur die Farbe zu definieren.<br />

Das erledigen Sie über einen<br />

Klick auf das Feld unter Diffuse.<br />

Es öffnet sich ein Dialog zur Farbwahl<br />

(Abbildung ). Im Slider<br />

rechts neben dem Farbkreis legen<br />

Sie die Helligkeit fest. Unter Hex<br />

geben Sie die Farben wie von<br />

HTML bekannt hexadezimal an.<br />

Der genaue Hex-Wert für das<br />

Beinmaterial des Dust Puppy lautet<br />

FFDFB4. Die Einstellung Intensity<br />

definiert, wie viel Licht die<br />

Oberfläche reflektiert – hier<br />

passt die Voreinstellung.<br />

Direkt unter Diffuse findet sich<br />

Specular. Diese Einstellung beeinflusst,<br />

wie stark eine Oberfläche<br />

glänzt. Die Voreinstellung von Intensity<br />

fällt mit 0.5 für die meisten<br />

Oberflächen viel zu hoch aus.<br />

Reduzieren Sie den Wert auf 0.<br />

Eine Faustregel lautet, den Wert<br />

für die Specular Intensity nur so<br />

hoch einzustellen, dass er addiert<br />

mit der Intensity unter Diffuse<br />

nicht größer als eins ist: Sonst<br />

hätten Sie ein Material, das mehr<br />

Licht zurückwirft als auftrifft.<br />

Nun haben Sie ein Material für<br />

die Beine des Dust Puppy definiert.<br />

Noch erstreckt es sich aber<br />

über den gesamten Körper. Für<br />

den Kugelkörper, aus dem später<br />

die Haare wachsen werden, empfiehlt<br />

sich aber eine andere Farbe.<br />

Daher wechseln Sie mittels [Tab]<br />

in den Edit Mode und wählen sämtliche<br />

Flächen des Körpers aus. Klicken<br />

Sie nun auf das Plus-Zeichen<br />

im Material Panel (Abbildung ).<br />

Es erscheint ein weiteres Material<br />

in der Liste, das den gleichen Namen<br />

trägt wie das bisherige.<br />

Es handelt sich dabei um eine<br />

verlinkte Kopie. Um die Bindung<br />

zu lösen, klicken Sie auf den Schalter<br />

2 neben dem Feld Names. Nun<br />

sollte das Material<br />

beispielsweise<br />

Beine.001<br />

heißen.<br />

Es handelt sich<br />

nun um ein eigenständiges<br />

Material, das<br />

allerdings immer<br />

noch die<br />

gleichen Einstellungen<br />

aufweist<br />

wie das<br />

Ausgangsmaterial.<br />

Das ist ziemlich praktisch,<br />

denn so müssen Sie sich nicht<br />

abermals um die Diffuse-Einstellungen<br />

kümmern. Zunächst ändern<br />

Sie nun den Namen, dann<br />

wählen Sie eine beinahe schwarze<br />

Farbe aus, etwa 0E0E0E (kein Gegenstand<br />

in der Natur ist absolut<br />

schwarz). Damit haben Sie zwar<br />

das zweite Material definiert, es<br />

erscheint aber noch nicht auf dem<br />

Modell. Deswegen weisen Sie es<br />

nun mittels Assign zu (Abbildung<br />

, nächste Seite).<br />

Zur Farbauswahl<br />

präsentiert Blender<br />

einen Farbkreis.<br />

Über das Material<br />

Panel fügen Sie ein<br />

weiteres Material<br />

hinzu.<br />

MEHR ALS OBERFLÄCHE<br />

Seit Version 2.5x stellt Blender<br />

auch ein sogenanntes Volume Material<br />

zur Verfügung, das sich nicht<br />

auf die Oberfläche beschränkt, sondern<br />

das Innere des Objekts berücksichtigt.<br />

Nützlich ist dies etwa bei<br />

Wolken, Rauch, Feuer oder Muffins.<br />

www.linux-user.de 02 | 11 57


Über Assign weisen<br />

Sie den ausgewählten<br />

Flächen ein eigenes<br />

Material zu.<br />

Für schnelle Previews<br />

bietet Blender<br />

einfache Farbübergänge<br />

am Horizont. Der<br />

Dust Puppy hat nun<br />

Haut, als Nächstes folgen<br />

die Haare.<br />

Nun steht ein Zwischen-Rendering<br />

an: Die bisher eingestellte<br />

dunkle Farbe für den Horizont<br />

eignet sich zwar für „Clay Renderings“<br />

wie am Schluss des vorigen<br />

Workshop-Teils, den dunklen<br />

Körper des Dust Puppy erkennen<br />

Sie so aber nur schlecht. Ändern<br />

Sie also die Einstellungen im<br />

World Panel wie in Abbildung <br />

dargestellt. Der Wert für die Horizon<br />

Color lautet EBEBEB. Blend Sky<br />

erzeugt einen einfachen Farbübergang,<br />

Real Sky richtet den<br />

Übergang am Kamerawinkel aus.<br />

Die eben genutzten Optionen<br />

verwendet man zwar nur selten<br />

für fertige Renderings, sie bieten<br />

allerdings eine Möglichkeit, den<br />

Hintergrund während der Arbeit<br />

deutlich aufzuwerten. Ihr Test-<br />

Render sollte nun ungefähr so<br />

aussehen wie in Abbildung .<br />

Eine haarige Angelegenheit<br />

Bevor Sie die Haare hinzufügen,<br />

gilt es noch einiges vorzubereiten.<br />

Beispielsweise funktioniert die<br />

Haarsimulation nicht mit dem<br />

Mirror Modifier. Diese Einschränkung<br />

können Sie aber ausnutzen:<br />

Exakt symmetrische Modelle wirken<br />

selten lebensnah. Daher ist es<br />

eine gute Idee, hier den Mirror<br />

Modifier anzuwenden. Drücken<br />

Sie dafür einfach im Object Mode<br />

auf Apply (Abbildung ).<br />

Damit verlieren Sie zwar die Flexibilität,<br />

die der Modifier dank<br />

seiner nicht zerstörenden Änderungen<br />

bietet, können dafür aber<br />

auch Teile des Objektes bearbeiten,<br />

die vorher in der Domäne des<br />

Modifiers lagen. Wenn Sie nun im<br />

Edit Mode ein paar Vertices an beiden<br />

Beinen etwas bewegen, wirkt<br />

der Dust Puppy deutlich echter.<br />

Es empfiehlt sich, beide Beine und<br />

Füße vom Aussehen her ein wenig<br />

zu optimieren. Das sorgt auf ganz<br />

natürlichem Weg für Unterschiede<br />

zwischen den bisher gleich aussehenden<br />

Seiten.<br />

Die einfachste Möglichkeit, Haare<br />

in Blender zu erzeugen, bietet<br />

das Partikelsystem. Dafür müssen<br />

Sie lediglich im Object Mode den<br />

Dust Puppy anwählen und im Particle<br />

Tab des Properties Panel über<br />

das Plus-Symbol ein neues Partikelsystem<br />

hinzufügen (Abbildung<br />

). Bei den nun erscheinenden<br />

Einstellungen geben Sie dem<br />

Partikelsystem zuerst einen passenden<br />

Namen wie etwa Haare<br />

und wählen danach Type | Hair.<br />

Jetzt sieht der Dust Puppy aus<br />

wie eine Voodoo-Puppe, in die<br />

tausend Nadeln gestochen wurden<br />

(Abbildung ) –<br />

doch das können Sie<br />

leicht ändern. Damit<br />

die Vielfalt der Optionen<br />

Sie nicht verwirrt,<br />

verstecken Sie<br />

zunächst alle nicht<br />

benötigten Sektionen<br />

über das kleine Dreieck<br />

rechts. Dann öffnen<br />

Sie lediglich die<br />

Sektion mit der Bezeichnung<br />

Render und<br />

Sämtliche Modifier<br />

können Sie über Apply<br />

dauerhaft anwenden.<br />

58 02 | 11<br />

www.linux-user.de


Der Dust Puppy erhält ein Partikelsystem,<br />

das später die Haare<br />

kontrollieren wird.<br />

wählen dort das Material Nummer<br />

zwei. Die Haare sollten nun<br />

das gleiche, fast schwarze Material<br />

tragen wie der Körper des Dust<br />

Puppy. Es stört aber immer noch<br />

die Tatsache, dass sich die Haare<br />

auch an den Beinen finden, wo sie<br />

definitiv nicht hingehören. Das<br />

beheben Sie im nächsten Schritt.<br />

Gruppierungen<br />

Um anzugeben, wo sich auf dem<br />

Modell Haare befinden und wo<br />

nicht, nutzen Sie sogenannte Vertex<br />

Groups. Dabei definieren sowohl,<br />

aus welchen Bereichen des<br />

Dust Puppy Haare wachsen als<br />

auch, wie dicht der Bewuchs jeweils<br />

ausfällt. Nutzen Sie dafür<br />

wieder den Edit Mode, wo Sie erst<br />

einmal sämtliche Vertices oder<br />

Faces der Körperkugel auswählen.<br />

Im Properties Panel finden Sie<br />

zwischen den Modifiers und den<br />

Materials den Reiter Object Data.<br />

Dort fügen Sie eine neue Vertex<br />

Group hinzu (Abbildung ).<br />

Auch hier ist es sinnvoll, gleich<br />

einen passenden Namen zu vergeben.<br />

Damit die Gruppe auch einen<br />

Inhalt hat, müssen Sie ihr zunächst<br />

noch die gerade ausgewählten<br />

Bereiche hinzufügen.<br />

Dies geschieht durch einen Klick<br />

auf Assign. Es ist bisher noch<br />

nichts passiert, denn alles was Sie<br />

getan haben, war einen möglichen<br />

Einflussbereich zu definieren.<br />

Was genau er beeinflusst, ist noch<br />

nicht festgelegt. Begeben Sie sich<br />

daher wieder in den Object Mode<br />

und öffnen Sie im Particles Tab<br />

den Reiter Vertex Groups. Es erscheint<br />

eine Liste von Eigenschaften,<br />

die über Vertex Groups gesteuert<br />

werden können. Wählen Sie<br />

hier unter Density die eben erstellte<br />

Gruppe (Abbildung ). Nun<br />

sollten die Beine haarfrei sein.<br />

Wachsen trotzdem aus den<br />

Oberschenkeln noch ein paar<br />

Haare, so ändern Sie das, indem<br />

Sie Knoten aus der Gruppe entfernen.<br />

Der kleine Ring aus Flächen,<br />

den Sie beim Erstellen des<br />

Modells um den Austrittspunkt<br />

der Beine herum gebaut haben,<br />

hilft hierbei: Wählen Sie ihn komplett<br />

aus und klicken Sie dann in<br />

den Einstellungen der Vertex<br />

Group auf Remove. Das sollte das<br />

Problem beheben (Abbildung ,<br />

nächste Seite). Falls sich dadurch<br />

nichts ändert, aktualisieren Sie<br />

das Partikelsystem durch Füttern<br />

des Zufallsgenerators mit einer<br />

anderen Zahl (Seed im Particles<br />

Tab, Abbildung , nächste Seite).<br />

Dreadlock Holiday<br />

Die Haare haben nun die richtige<br />

Farbe und befinden sich am richtigen<br />

Platz. Trotzdem sieht der<br />

Gegen wen richtet<br />

sich dieser Voodoo-<br />

Zauber?<br />

Die Haarwuchs-<br />

Dichte steuern Sie<br />

über die eben erstellte<br />

Vertex-Gruppe.<br />

Über Vertex Groups definieren Sie<br />

das Einflussgebiet von Partikelsystemen<br />

(und noch vieles mehr).<br />

www.linux-user.de 02 | 11 59


Den Vertex-Gruppen<br />

können Sie auch Mitglieder<br />

entziehen.<br />

Mittels Seed füttern<br />

Sie den Zufallsgenerator<br />

des Partikelsystems.<br />

Ein Beispiel, wie<br />

sich die Werte für die<br />

Kind-Partikel gestalten<br />

lassen. Nun fehlen<br />

nur noch die Augen.<br />

Dust Puppy aber immer noch aus<br />

wie ein Nadelkissen. Es fehlen vor<br />

allem mehr Haare, und die kann<br />

Blender auf eine sehr geschickte<br />

Art hinzufügen.<br />

Sie könnten jetzt einfach die Anzahl<br />

der Haare in den Partikeleinstellungen<br />

erhöhen. Dies hätte<br />

aber den Nebeneffekt, dass die<br />

Performance im Viewport deutlich<br />

absinken und das Rendern länger<br />

dauern würde. Als Abhilfe bietet<br />

Blender sogenannte Children Particle,<br />

zu finden im gleichnamigen<br />

Reiter in den Partikel-Einstellungen.<br />

Es gibt grundsätzlich<br />

zwei Möglichkeiten,<br />

die Kindpartikel zu verteilen:<br />

um die vorhandenen herum<br />

– das erreichen Sie über die<br />

Option Particles – oder<br />

gleichmäßig (Faces). Für den<br />

Dust Puppy stellt das Verteilen<br />

um die bestehenden Haare<br />

herum die bessere Wahl dar.<br />

Sobald Sie Children | Particles<br />

auswählen, erscheint eine große<br />

Auswahl an Optionen. Da der<br />

Dust Puppy relativ gerade Haare<br />

hat, müssen Sie sich mit den meisten<br />

davon nicht befassen. Senken<br />

Sie die Zahl unter Render auf 20.<br />

Das fügt für jedes vorhandene<br />

Haar 20 weitere hinzu, sobald Sie<br />

rendern – das sollte für ausreichend<br />

dichten Bewuchs sorgen.<br />

Unter Radius stellen Sie den Wert<br />

0.3 ein und direkt darunter unter<br />

Roundness das Maximum.<br />

Radius definiert<br />

dabei, wie weit<br />

die Kind-Haare von ihren Eltern<br />

entfernt sein dürfen, während die<br />

Roundness sie ein wenig versetzt,<br />

was den Anschein erweckt, als<br />

hätten die Haare des Dust Puppy<br />

leicht unterschiedliche Länge.<br />

Rough Endpoint ermöglicht es,<br />

die Haare nach außen (oder innen,<br />

je nach Einstellung von<br />

Shape) aufzufächern, was den Anschein<br />

einer gleichmäßigen Verteilung<br />

erweckt. Hier stellen Sie<br />

den Wert 0.2 bei einer Shape von<br />

1.0 ein. Mit den beiden Werten<br />

für Rough1 und Rough2 können<br />

Sie ein wenig spielen, um das Fell<br />

struppiger aussehen zu lassen.<br />

Beispielwerte sowie die kompletten<br />

Einstellungen finden Sie in<br />

Abbildung . Nun sollte der Dust<br />

Puppy ungefähr so aussehen wie<br />

rechts im Bild. Was nun noch<br />

fehlt, sind die Augen.<br />

Was guckst du?<br />

Um die Augen zu modellieren,<br />

bietet sich<br />

wieder die im ersten<br />

Teil des Workshops<br />

vorgestellte Technik<br />

Box Modelling an. Klicken<br />

Sie mit der linken<br />

Maustaste auf einen<br />

Bereich außerhalb<br />

des Dust Puppy.<br />

Daraufhin bewegt<br />

sich der 3D Cursor<br />

von Blender ebenfalls<br />

dorthin (Abbildung<br />

). Das Konzept<br />

des 3D Cursors<br />

ähnelt dem einer normalen<br />

Zeichenmarke,<br />

60 02 | 11<br />

www.linux-user.de


Platzieren Sie den 3D-<br />

Cursor etwas abseits,<br />

bevor Sie den Würfel für<br />

die Augen hinzufügen.<br />

Langsam geben sich<br />

die Augen zu erkennen.<br />

wie etwa in einer Textverarbeitung:<br />

Tippen Sie dort einen Buchstaben,<br />

erscheint er an der Stelle,<br />

an der sich der Cursor befindet. In<br />

Blender funktioniert das genauso,<br />

nur dass Sie den Cursor im 3D-<br />

Raum frei positionieren können<br />

und er noch weitere Aufgaben<br />

übernimmt (siehe Kasten Was<br />

kann der 3D-Cursor sonst noch?).<br />

Fügen Sie nun mithilfe von<br />

[Umschalt]+[A] oder Add | Mesh |<br />

Cube) einen Würfel hinzu und<br />

spendieren Sie diesem einen Subsurf<br />

Modifier. Den fügen Sie so<br />

hinzu, wie Sie es im ersten Teil<br />

des Workshops kennengelernt haben,<br />

oder aber über eine Abkürzung:<br />

Mittels [Strg]+[3] erhält der<br />

Würfel einen Subsurf-Modifier, der<br />

bereits auf drei Unterteilungen<br />

sowohl im Viewport als auch beim<br />

Rendern eingestellt ist. Begeben<br />

Sie sich nun in den Edit Mode.<br />

Über [Strg]+[R] fügen Sie drei<br />

Loop Cuts hinzu. Das erreichen<br />

Sie, indem Sie das<br />

Mausrad nach<br />

oben drehen, sobald<br />

die pinkfarbene<br />

Linie erscheint.<br />

Nachdem Sie die<br />

Loop Cuts hinzugefügt<br />

haben, drücken<br />

Sie [S],[X],<br />

So könnten Sie<br />

die Augen modellieren.<br />

um diese auf der X-<br />

Achse zu skalieren. Da<br />

Sie nur eine Achse ausgewählt<br />

haben, ändert sich die<br />

Größe des Würfels nicht, die drei<br />

Umrundungen bewegen sich aber<br />

aufeinander zu. Dabei entsteht<br />

die Verbindung zwischen den beiden<br />

Augen.<br />

Achten Sie darauf, dass sich die<br />

Seiten bei der Operation nicht<br />

vertauschen: Das würde sich später<br />

in Störungen beziehungsweise<br />

Artefakten bei den weiteren Arbeiten<br />

äußern. Wenn Sie nach der<br />

Skalierung auf der X-Achse noch<br />

[S],[Z] benutzen, um die Stelle<br />

über die Z-Achse einzubuchten,<br />

erkennen Sie bereits, wo die Reise<br />

hingehen soll (Abbildung ).<br />

Über [A] wählen Sie das gesamte<br />

Gitter („Mesh“) der Augen aus.<br />

Gestalten Sie nun mittels [S],[Y]<br />

die Augen schmaler, erhalten Sie<br />

den gewünschten Comic-Look. Etwas<br />

Kosmetik ist aber noch vonnöten,<br />

bevor Sie die Augen an die<br />

richtige Stelle bringen können:<br />

Fügen Sie links und rechts jeweils<br />

noch einen Loopcut hinzu. Jetzt<br />

haben Sie genug Kontrollpunkte,<br />

um über die Augen Emotionen<br />

wie Erstaunen darzustellen. Setzen<br />

Sie nun das Shading auf<br />

Smooth und geben Sie den Augen<br />

ein rein weißes Material ohne Specularity.<br />

Abbildung zeigt ein<br />

mögliches Mesh für die Augen.<br />

Nun ist es an der Zeit, das neue<br />

Mesh korrekt zu platzieren und<br />

zu skalieren. Setzen Sie die Augen<br />

möglichst nahe an den tatsächlichen<br />

Körper. Bringen Sie sie leicht<br />

schräg an und stören Sie sich<br />

nicht daran, dass derzeit noch<br />

zahlreiche Haare hindurchgehen –<br />

diese entfernen Sie als Nächstes.<br />

Blender bietet dazu mehrere Möglichkeiten,<br />

von denen wir hier das<br />

Weight Painting einsetzen. In den<br />

entsprechenden Modus gelangen<br />

Sie über den Modus-Selektor im<br />

Viewport Header (Abbildung ,<br />

nächste Seite).<br />

Weight Painting stellt eine Verfeinerung<br />

der Zuordnung von Vertex<br />

Groups dar. Sie bestimmen da-<br />

DER AUTOR<br />

Gottfried Hofmann<br />

studiert derzeit Informatik<br />

an der FAU Erlangen-Nürnberg.<br />

In<br />

seiner Freizeit erstellt<br />

er digitale Spezialeffekte<br />

für Kurzfilme sowie<br />

diverse Trainingsmaterialien<br />

für die<br />

von ihm meistgenutzte<br />

Software, Blender.<br />

Außerdem ist er<br />

Mitglied im aufstrebenden<br />

Filmteam<br />

Raubkopictures.<br />

WAS KANN DER 3D-CURSOR SONST NOCH?<br />

Der 3D-Cursor lässt sich auch als Anlenkpunkt bzw. Pivot Point<br />

für Rotationen und Skalierungen nutzen. Das bedeutet, dass in<br />

diesem Fall das Objekt um den 3D-Cursor rotiert beziehungsweise<br />

die Skalierung relativ zur Position des 3D-Cursors erfolgt.<br />

www.linux-user.de<br />

02 | 11 61


Im Bereich unter<br />

den Augen gilt es,<br />

etwas mehr Bewuchs<br />

zu entfernen.<br />

Weight Painting aktivieren<br />

Sie über den<br />

Modus-Selektor im<br />

Viewport-Header.<br />

Dieses Mal schaut<br />

der Dust Puppy etwas<br />

freundlicher als im<br />

Preview für den ersten<br />

Teil des Workshops.<br />

mit nicht nur, welche Vertices zu<br />

einer Gruppe gehören, sondern<br />

auch wie stark und mit welchem<br />

Gewicht. Blender signalisiert dies<br />

mithilfe von Farben. Blau bedeutet<br />

dabei, dass ein Knoten oder<br />

Bereich nicht zu einer Gruppe gehört,<br />

Rot steht für hundertprozentige<br />

Zugehörigkeit.<br />

Von den Einstellungen, die im<br />

Tool Shelf (links neben dem Viewport)<br />

erschienen sind, benötigen<br />

Sie nur Weight, Strength und Radius.<br />

Stellen Sie Weight auf null,<br />

wenn Sie Haare entfernen wollen,<br />

und auf eins, falls Sie wieder Haare<br />

hinzufügen wollen. Radius legt<br />

die Größe des Pinsels fest und<br />

Strength dessen Stärke. Hier empfiehlt<br />

sich jeweils ein Wert von<br />

eins. Das Malen selbst geht wie in<br />

anderen Programmen vonstatten,<br />

allerdings in 3D, was am Anfang<br />

etwas irritieren kann.<br />

Rotieren Sie daher häufig, um<br />

immer möglichst „von oben“ zu<br />

pinseln. Auch empfiehlt es sich,<br />

möglichst kurze Striche zu zeichnen,<br />

da Blender erst nach dem<br />

Absetzen den Bewuchs aktualisiert.<br />

Manchmal bleiben kleine<br />

Büschel auf blau markierten Bereichen<br />

stehen. In einem solchen<br />

Fall suchen Sie die direkte Umgebung<br />

ab: Meist findet sich dort<br />

eine kleine Insel, die noch grünlich<br />

schimmert, oder die direkte<br />

Umgebung weist noch Buchten<br />

auf, die nicht komplett blau sind.<br />

Eine mögliche Bemalung zeigt<br />

Abbildung .<br />

Zu guter Letzt fügen Sie den Augen<br />

noch die Pupillen hinzu. Die<br />

dafür nötigen Operationen kennen<br />

Sie noch aus dem ersten Teil<br />

des Workshops. Nutzen Sie diesmal<br />

eine UVsphere mit 16 Segmenten<br />

und Ringen. Diese rotieren Sie<br />

um 90 Grad um die X-Achse, bevor<br />

Sie die Proportionen ändern: Auf<br />

diese Weise zeigt die Spitze der<br />

Kugel nach vorne, was für den<br />

weiteren Verlauf des Projektes ein<br />

klein wenig Ärger erspart. Nach<br />

Set Smooth und dem Hinzufügen<br />

eines Materials (wieder<br />

mit Specular Intensity<br />

auf null) duplizieren<br />

Sie die Pupille<br />

mittels [Umschalt]+[D], wobei<br />

Blender das Material und alles<br />

Weitere bereits richtig einfügt.<br />

Jetzt steht der Dust Puppy zum<br />

finalen Rendering bereit – das Ergebnis<br />

könnte so aussehen wie in<br />

Abbildung .<br />

Ausblick<br />

Hier muss noch lange nicht<br />

Schluss sein: Wenn Sie sich die<br />

Comics von Userfriendly genauer<br />

ansehen, stellen Sie fest, dass der<br />

Dust Puppy noch allerlei Details<br />

aufweist. So hat er zum Beispiel<br />

deutlich hervorstehende Knöchel<br />

(die in diesem Artikel komplett<br />

ausgespart wurden) sowie Zehennägel.<br />

Beides können Sie mit dem<br />

bisher gesammelten Wissen leicht<br />

hinzufügen, um Ihre 3D-Kreation<br />

dem Original ähnlicher zu machen.<br />

Sehen Sie diesen Artikel<br />

also als Sprungbrett um selbstständig<br />

weiterzuarbeiten. (jlu) ■<br />

[1] Elephants Dream:<br />

http://www.elephantsdream.org<br />

[2] Big Buck Bunny:<br />

http://www.bigbuckbunny.org<br />

[3] Sintel: http://www.sintel.org<br />

[4] Deutsches Blender-Forum:<br />

http://www.blendpolis.de<br />

[5] Blender-Seite des Autors:<br />

http://www.blenderdiplom.com<br />

INFO<br />

62 02 | 11 www.linux-user.de


HIER STARTET<br />

IHR UBUNTU!<br />

● JAHRES-ABO FÜR NUR 26,90<br />

●<br />

IMMER MIT AKTUELLSTER<br />

UBUNTU-DISTRIBUTION AUF DVD<br />

15%<br />

SPAREN<br />

MEINE VORTEILE:<br />

● Ich erhalte vier Ausgaben des<br />

Ubuntu Users frei Haus für<br />

26,90* statt 31,60<br />

● Das Abonnement ist jeder zeit<br />

kündbar. Ich gehe kein Risiko ein<br />

● Aktuell informiert mit allen Neuigkeiten<br />

rund um das Thema Ubuntu<br />

JETZT BESTELLEN<br />

Telefon: 089 / 2095 9127<br />

Fax: 089 / 2002 8115<br />

E-Mail: abo@ubuntu-user.de<br />

Internet: http://www.ubuntu-user.de<br />

ich möchte Ubuntu User für nur 6,73<br />

JA,<br />

pro Ausgabe abonnieren.<br />

Ich erhalte Ubuntu User viermal im Jahr zum Vorzugs preis von 6,73 statt 7,90 im Einzelverkauf,<br />

bei jährlicher Verrechnung 26,90 (*Österreich: 29,90, Schweiz: SFr 53,90,<br />

restliches Europa: 33,90). Ich gehe keine langfristige Bindung ein. Möchte ich das Abo<br />

nicht länger beziehen, kann ich die Bestellung jederzeit und fristlos kündigen. Geld für bereits<br />

bezahlte, aber noch nicht gelieferte Ausgaben erhalte ich zurück. Sollten Sie noch Fragen<br />

haben, hilft Ihnen unser Abo-Service gerne weiter (089-20959127).<br />

Linux New Media AG, Putzbrunner Straße 71, 81739 München; Aufsichtsrat: Rudolf Strobl<br />

(Vorsitz), Vorstand: Brian Osborn, Hermann Plank, Handelsregister: HRB 129161 München<br />

Name, Vorname<br />

Datum<br />

Unterschrift<br />

Mein Zahlungswunsch: Bequem per Bankeinzug Gegen Rechnung<br />

Straße, Nr.<br />

BLZ<br />

Konto-Nr.<br />

PLZ<br />

Ort<br />

Bank


PRAXIS<br />

Gpredict<br />

Satelliten verfolgen mit Gpredict<br />

Seh dich!<br />

Eine Vielzahl unterschiedlichster Satelliten umkreist mittlerweile unseren<br />

Planeten. Welche davon Sie wo am nächtlichen Himmel als Lichtpunkt<br />

beobachten können, sagt Ihnen Gpredict. Michael Gottwald<br />

© NASA/ JPL<br />

Gpredict 1.2,<br />

Handbuch (PDF)<br />

LU/gpredict/<br />

README<br />

Die Satelliten-Tracking-<br />

Software Gpredict bietet<br />

Funktionen zur Vorhersage<br />

und Verfolgung<br />

von Satellitenbahnen<br />

am Himmel sowie zur<br />

Steuerung von Amateurfunkanlagen<br />

für Computer<br />

Aided Tracking.<br />

Seit dem Start des ersten Erdsatelliten,<br />

des sowjetischen Sputnik<br />

im Jahre 1957, umkreist eine große<br />

Zahl unterschiedlichster<br />

Raumflugkörper die Erde. Vom<br />

einfachen Kommunikationssatelliten<br />

über mit komplexen Instrumenten<br />

ausgestatteten Erdbeobachtungssonden<br />

bis hin zur Internationalen<br />

Raumstation ISS<br />

reicht hier das Spektrum.<br />

Die meisten dieser künstlichen<br />

Erdbegleiter befinden sich in erdnahen<br />

Umlaufbahnen (LEO) von<br />

wenigen hundert Kilometern<br />

Höhe. TV- und Wettersatelliten<br />

dagegen nutzen den geostationären<br />

Orbit (GEO). Viele dieser Satelliten<br />

kann man in einer klaren<br />

Nacht als sich am Himmel bewegenden<br />

Lichtpunkt erkennen –<br />

ungeübte Beobachter verwechseln<br />

sie gerne mit Flugzeugen.<br />

Um Satelliten zu identifizieren<br />

und ihre Bahnen vorherzusagen,<br />

gibt es mehrere Möglichkeiten. Zu<br />

den weithin bekannten zählt Heavens<br />

Above [1]: Die Website bietet<br />

solche Vorhersagen bereits seit<br />

vielen Jahren an und zeichnet die<br />

Satellitenbahnen auch in Sternkarten<br />

ein. Daneben unterstützen<br />

immer mehr Planetariumsprogramme<br />

das Satelliten-Tracking<br />

und stellen die künstlichen Erdbegleiter<br />

in ihren Sternkarten dar.<br />

Gnome Predict (oder kurz: Gpredict,<br />

[2]) dagegen konzentriert<br />

sich ganz auf die Satelliten und<br />

bietet daher in dieser Hinsicht<br />

wesentlich mehr Möglichkeiten<br />

als Heavens Above. Doch vor dem<br />

Vergnügen steht die Installation –<br />

und hier gibt es, wie so oft bei<br />

Linux, mehrere Möglichkeiten.<br />

Installationsvarianten<br />

Viele Distributionen stellen Gpredict<br />

in ihren Repositories bereit,<br />

so auch das im Test verwendete<br />

Ubuntu. Während im Universe-<br />

Zweig von Ubuntu 9.04 nur das<br />

ältere Paket Gpredict 0.90 vorliegt,<br />

bietet Ubuntu 10.04 bereits<br />

die aktuellere Version 1.10 an. Aktuell<br />

ist allerdings Gpredict 1.20.<br />

Um es zu installieren, laden Sie<br />

über die Gpredict-Homepage oder<br />

von der Heft-DVD den Quellcode<br />

[3] herunter und übersetzen<br />

ihn. Hier gibt es allerdings so<br />

manche Hürde zu meistern: Einige<br />

Abhängigkeiten von Gpredict<br />

64 02 | 11<br />

www.linux-user.de


Gpredict<br />

PRAXIS<br />

Das Hauptfenster<br />

von Gpredict mit der<br />

(durch das maximierte<br />

Fenster stark verzerrten)<br />

Weltkarte, Informationen<br />

zum Weltraumteleskop<br />

Hubble<br />

und der Polar View.<br />

GLOSSAR<br />

LEO: Low Earth Orbit.<br />

Niedrige Erdumlaufbahn<br />

zwischen 200 und<br />

1200 Kilometern Höhe.<br />

GEO: Geostationary<br />

Earth Orbit. In knapp<br />

36 000 Kilometern<br />

Höhe über dem Äquator<br />

entspricht die Winkelgeschwindigkeit<br />

einer Erdumkreisung<br />

pro Tag. Ein<br />

dort platzierter Satellit<br />

befindet sich stets über<br />

der gleichen Stelle der<br />

Erdoberfläche.<br />

Footprint: Der Bereich<br />

auf der Erdoberfläche,<br />

von dem aus der Satellit<br />

zu sehen ist.<br />

QTH-Locator: auch QRAoder<br />

Maidenhead-Locator<br />

[7]. Definiert den<br />

Standort anhand von<br />

Feldern eines geodätischen<br />

Netzes. Vor rund<br />

50 Jahren von Funkamateuren<br />

entwickelt und<br />

mehrfach modifiziert,<br />

dient er der einfacheren<br />

Berechnung von Entfernung<br />

und Richtung zwischen<br />

Funkteilnehmern.<br />

Der QTH-Locator für<br />

Stuttgart lautet beispielsweise<br />

JN48OQ.<br />

1.20 lassen sich unter Ubuntu<br />

9.04 nicht auflösen, da hier unter<br />

anderem die neueren Versionen<br />

für GTK+ und Glib nicht als Pakete<br />

zur Verfügung stehen.<br />

Trotz der Fehlermeldung, dass<br />

Intltool zu alt sei, ließ sich Gpredict<br />

1.20 unter Ubuntu 10.04<br />

kompilieren. Die benötigten Libfreetype6-Pakete<br />

mochte Ubuntu<br />

nicht herunterladen, obwohl es<br />

sie in der Paketverwaltung aufführt.<br />

Sie fanden sich aber auf der<br />

Packages-Search-Seite [4]. Zum<br />

Übersetzen der Quellen benötigen<br />

Sie die Devel-Pakete einiger Bibliotheken.<br />

Das betrifft GTK+ 2.12,<br />

Glib 2.16, Libcurl 7.16.0, Goocanvas<br />

0.9, Libfreetype6, Hamlib (nur<br />

die Laufzeitumgebung) sowie – je<br />

nach Distribution – eventuell weitere<br />

Abhängigkeiten.<br />

Kontrollzentrum<br />

Nach dem Start von Gpredict<br />

fühlt man sich an ein Raumfahrt-<br />

Kontrollzentrum erinnert, dessen<br />

Bildschirm die Bahnen von<br />

Raumstationen als Kurven über<br />

einer Weltkarte darstellt (Abbildung<br />

). In der Grundkonfiguration<br />

teilt sich das Fenster in drei<br />

Bereiche: die erwähnte Weltkarte,<br />

den Infobereich eines Satelliten<br />

sowie die Polar View. Auf der<br />

Weltkarte tummeln sich alle ausgewählten<br />

Satelliten inklusive ihres<br />

jeweiligen Footprints.<br />

Im ersten Schritt legen Sie den<br />

eigenen Standort fest, den Gpredict<br />

als Bodenstation (Ground<br />

Station) bezeichnet. Meist können<br />

Sie diesen aus einer umfangreichen<br />

Liste von Orten auswählen,<br />

die Gpredict unter Edit | Preferences<br />

im Reiter Ground Stations der<br />

Hauptgruppe General vorhält. Zur<br />

besseren Übersicht sortiert das<br />

Programm die Aufstellung nach<br />

Regionen. Befindet sich keine der<br />

angebotenen Städte in der Nähe<br />

Ihres Wohnortes,<br />

legen Sie diesen<br />

selbst an.<br />

Dazu müssen Sie<br />

lediglich den Namen<br />

des Ortes sowie<br />

dessen geografische<br />

Koordinaten<br />

angeben, alle anderen<br />

Angaben sind<br />

optional. Mithilfe<br />

der Angabe der<br />

Höhe über dem<br />

Meeresspiegel (Altitude)<br />

berücksichtigt<br />

Gpredict bei der genauen<br />

Berechnung<br />

der Bahn am Himmel<br />

die Lichtbrechung<br />

in der Atmosphäre.<br />

Den QTH-<br />

Locator brauchen Sie nicht anzugeben,<br />

da das Programm ihn<br />

selbstständig berechnet.<br />

Im Preferences-Fenster legen Sie<br />

außerdem die zu verwendenden<br />

Zahlenformate, die Aufteilung der<br />

Module, den Inhalt der Vorhersage-Listen,<br />

die Zeitauflösung und<br />

vieles andere mehr fest. Hier konfigurieren<br />

Sie daneben gegebenenfalls<br />

auch vorhandene Funkanlagen<br />

und Antennenantriebe.<br />

Achtung: Bei Number Formats sollten<br />

Sie auf jeden Fall das Häkchen<br />

bei Show local time instead of UTC<br />

Zur Auswahl stehen<br />

1200 wahlweise gruppierte<br />

Satelliten.<br />

www.linux-user.de<br />

02 | 11 65


PRAXIS<br />

Gpredict<br />

Die Passage-Details<br />

für den Infrarot-Teleskop-Satelliten<br />

WISE<br />

(Wide-field Infrared Survey<br />

Explorer) am 7. Dezember<br />

2010 morgens.<br />

DER AUTOR<br />

Michael Gottwald<br />

testet seit knapp 20<br />

Jahren Astronomiesoftware,<br />

anfangs für<br />

Amiga-Zeitschriften,<br />

inzwischen vorwiegend<br />

für „Sterne und<br />

Weltraum“. Der ehemalige<br />

Amiga-Freak<br />

ist inzwischen ein begeisterter<br />

Linux-User.<br />

In einschlägigen Internetseiten<br />

verfolgt er<br />

laufend die Aktivitäten<br />

in Astronomie und<br />

Raumfahrt.<br />

Das Polardiagramm<br />

zeigt die Flugbahn<br />

(Passage) der Internationalen<br />

Raumstation<br />

ISS am Himmel über<br />

Stuttgart frühmorgens<br />

am 13. Dezember 2010.<br />

setzen, da Gpredict anderenfalls<br />

alle Zeiten in Weltzeit (UTC) statt<br />

in Ortszeit angibt.<br />

Sofern Gpredict nicht ohnehin<br />

schon selbst darauf hinweist, sollten<br />

Sie die Bahnelemente der Satelliten<br />

direkt nach der Installation<br />

und später jeweils nach wenigen<br />

Tagen aktualisieren: Bei<br />

erdumkreisenden Satelliten ändert<br />

sich die Bahn unter anderem<br />

aufgrund der Abbremsung<br />

in der Restatmosphäre mit<br />

der Zeit. Der Effekt fällt<br />

zwar relativ geringfügig<br />

aus, hat aber doch deutliche<br />

Auswirkungen auf die<br />

Vorhersagegenauigkeit.<br />

Die Datenauffrischung erledigen<br />

Sie via Edit | Update<br />

TLE | from network<br />

schnell und unkompliziert<br />

über das Internet. Die Aktualisierung<br />

lädt für alle<br />

Satelliten deren aktuelle<br />

TLE-Bahnelemente.<br />

Modular<br />

Grundsätzlich basiert<br />

Gpredict auf einem modularen<br />

Konzept. Jedes Modul<br />

enthält dabei eine beliebige<br />

Anzahl an Satelliten sowie<br />

eine Bodenstation. Jedes Modul<br />

ordnet das Programm dann als<br />

Reiter an, zwischen denen Sie jederzeit<br />

rasch wechseln können.<br />

Dieses Konzept ermöglicht beispielsweise,<br />

die zu überwachenden<br />

Satelliten nach Themen (Astronomie,<br />

Wetter, etc.) zu gruppieren<br />

(Abbildung , vorige Seite)<br />

oder Listen für unterschiedliche<br />

Bodenstationen (Wohnort, Urlaubsorte,<br />

…) vorzuhalten.<br />

Beim Anlegen eines neuen Moduls<br />

geben Sie diesem zunächst<br />

einen Namen, wählen die Bodenstation<br />

aus und anschließend den<br />

oder die Satelliten (Abbildung ,<br />

vorige Seite). Die Auswahl nehmen<br />

Sie dabei entweder aus der<br />

kompletten alphabetisch sortierten<br />

Auswahlliste vor oder suchen<br />

einen Satelliten durch Eintippen<br />

seines Namens direkt. Allerdings<br />

arbeitet der Suchalgorithmus etwas<br />

seltsam: Gpredict sucht die<br />

eingetippte Zeichenkette nicht<br />

am Namensanfang, sondern gibt<br />

den ersten Namen aus, der den<br />

String an irgendeiner Stelle enthält.<br />

So springt die Markierung<br />

beispielsweise bei Eingabe von<br />

IRA (um den Infrarotsatelliten<br />

IRAS zu suchen) erst einmal auf<br />

ARIRANG 1 und erst beim vollständigen<br />

Namen auf IRAS. Außerdem<br />

arbeitet die Erkennung<br />

auch noch schreibweisenabhängig,<br />

was aber kaum eine Rolle<br />

spielt, da die Satellitennamen in<br />

der Liste ohnehin nur in Großbuchstaben<br />

vorliegen.<br />

Als sehr hilfreich bei der Suche<br />

erweist sich die Möglichkeit, die<br />

Auswahlliste nur für eine bestimmte<br />

Kategorie anzeigen zu<br />

lassen, etwa Space & Earth Science<br />

(Weltraum- und Erderkundung)<br />

oder Geostationary. Es gibt aber<br />

auch Kategorien (Groups) wie<br />

etwa Latest Launches, also die zuletzt<br />

gestarteten Satelliten.<br />

Jedes neu angelegte Modul findet<br />

seinen Platz in einem eigenen<br />

Reiter. Die zugehörigen Satelliten<br />

erscheinen in der Weltkarte mit<br />

ihrer jeweiligen Ausleuchtzone.<br />

Positionieren Sie den Mauszeiger<br />

über einem Satelliten, erscheint<br />

(bei Versionen nach Gpredict 0.9)<br />

eine kleine Info mit den aktuellen<br />

Koordinaten und der verbleibenden<br />

Zeit in Minuten bis zum<br />

nächsten Aufgang (AOS) über dem<br />

Horizont des Beobachtungsortes.<br />

Ist der Satellit gerade über dem<br />

Beobachtungsort zu sehen, gibt<br />

Gpredict stattdessen die Anzahl<br />

66 02 | 11<br />

www.linux-user.de


Gpredict<br />

PRAXIS<br />

der Minuten bis zum Untergang<br />

(LOS) aus. Um die Bahnkurve<br />

(Ground track) eines Satelliten zu<br />

sehen, aktivieren Sie die Funktion<br />

über das Kontextmenü mittels<br />

rechter Maustaste.<br />

Bahndaten<br />

Mit dem Menüpunkt Future passes<br />

erhalten Sie eine Tabelle mit<br />

den in den nächsten drei Tagen<br />

stattfindenden Passagen. Die<br />

rechte Spalte Vis („Visibility“)<br />

zeigt an, ob Sie die Passage auch<br />

beobachten können (V). Ein E<br />

(„eclipsed“) weist darauf hin, dass<br />

der Satellit vermutlich verfinstert<br />

ist: Ein Satellit lässt sich dann am<br />

besten als Lichtpunkt erkennen,<br />

wenn die Sonne ihn noch bescheint,<br />

während am Beobachterstandort<br />

bereits Nacht oder zumindest<br />

fortgeschrittene Dämmerung<br />

herrscht.<br />

Um diese Spalte zu aktivieren,<br />

setzen Sie unter Edit | Preferences<br />

in der Hauptgruppe Predict des<br />

Reiters Multiple Passes das Häkchen<br />

bei Visibility during pass. Diese<br />

Einstellung hat Gpredict übrigens<br />

dem bereits erwähnten Heavens<br />

Above voraus, das nur sichtbare<br />

Passagen liefert. Das kann<br />

(unter anderem) auch ein Grund<br />

sein, wenn sich die Angaben der<br />

beiden Anwendungen zu Satellitendurchläufen<br />

unterscheiden.<br />

Der Doppelklick auf eine Zeile<br />

der Satellitenliste zeigt dann eine<br />

detaillierte Aufstellung mit Informationen<br />

über die Passage (Abbildung<br />

), wobei der erste Reiter<br />

eine Tabelle mit Daten einzelner<br />

Positionen auf der Bahn am Himmel<br />

enthält. Dazu zählen unter<br />

anderem Datum und Uhrzeit sowie<br />

die Koordinaten in Form von<br />

Azimut (Az) und Elevation (El).<br />

Die Gradangaben in der Spalte El<br />

zeigen, wie hoch sich der Satellit<br />

zu einem bestimmten Zeitpunkt<br />

über dem lokalen Horizont befindet<br />

(größter positiver Wert). Je<br />

nach maximaler Elevation und<br />

Höhe der Umlaufbahn zieht der<br />

jeweilige Satellit schneller oder<br />

langsamer über den Himmel.<br />

Anschauliches<br />

Zur grafischen Veranschaulichung<br />

bietet<br />

der zweite Reiter ein<br />

sogenanntes Polardiagramm<br />

(Abbildung<br />

), das in der<br />

Voreinstellung auch<br />

im Hauptfenster unten<br />

links erscheint. Es<br />

zeigt den lokalen Himmel ohne<br />

Sterne und Sternbilder, lediglich<br />

mit den Himmelsrichtungen. Die<br />

Orientierung der Karte passen Sie<br />

je nach Beobachtungsrichtung an.<br />

Dazu setzen Sie in Edit | Preferences<br />

in der Hauptgruppe General<br />

des Reiters Polar View den Radiobutton<br />

bei N/ W/ S/ E.<br />

Der dritte Reiter Az/ El enthält<br />

ein sogenanntes Sichtbarkeitsdiagramm,<br />

das die Sichtbarkeit des<br />

gewählten Satelliten recht einfach<br />

erkennen lässt. Die Tabelle (des<br />

ersten Reiters) lässt sich auch ausdrucken<br />

und speichern.<br />

Jedes Modul besitzt auf der<br />

rechten Seite einen kleinen Pfeilknopf,<br />

der ein Popup-Menü mit<br />

zehn Einträgen aufklappt. Als besonders<br />

interessanter Menüpunkt<br />

fällt hier Sky at a Glance auf, der<br />

ein Sichtbarkeitsdiagramm der im<br />

Modul zugeordneten Satelliten<br />

auf einer Zeitachse darstellt (Abbildung<br />

). Mit dessen Hilfe erkennen<br />

Sie schnell, welcher Satellit<br />

wie oft innerhalb eines in den<br />

Voreinstellungen konfigurierten<br />

Zeitraums (Vorgabe: 8 Stunden)<br />

sichtbar ist.<br />

Gpredict beschränkt sich aber<br />

nicht auf den aktuellen Tag oder<br />

auf Vorhersagetabellen: Die Anwendung<br />

bietet daneben auch die<br />

Möglichkeit, Zeitabläufe zu beschleunigen<br />

und sogar die Zeit<br />

rückwärts laufen zu lassen. Dies<br />

ermöglicht der Time Controller aus<br />

demselben Popup-Menü.<br />

Ferngesteuert<br />

Zu guter Letzt darf noch ein wichtiges<br />

Feature von Gpredict nicht<br />

unerwähnt bleiben: die Radiound<br />

Antennensteuerung mittels<br />

der Hamlib-Bibliotheken. Diese<br />

ermöglichen eine Bedienung von<br />

Amateurfunkanlagen vom PC aus<br />

und steuern bei Bedarf spezielle<br />

Antennenrotierer an, die Gpredict<br />

auf diesem Weg einem ausgewählten<br />

Satelliten nachführt. Mangels<br />

entsprechender Hardware konnte<br />

der Autor dieses Features allerdings<br />

nicht testen. Allgemeine Informationen<br />

zu diesem als Computer<br />

Aided Tuning bezeichneten<br />

Verfahren finden Sie in der Wikipedia<br />

[5], alle Details liefert ein<br />

ausführliches Hamlib-Tutorial im<br />

Gpredict-Handbuch ([6], auch auf<br />

der Heft-DVD).<br />

Fazit<br />

Gpredict präsentiert sich als rundum<br />

gelungene Tracking-Software<br />

zur Vorhersage von Satellitenpassagen<br />

und nebenbei als Fernsteuerung<br />

für Amateurfunkanlagen.<br />

Die Programmoberfläche lässt<br />

sich einfach bedienen und bietet<br />

alle wichtigen Funktionen. Das<br />

sauber strukturierte 64-seitige<br />

PDF-Handbuch und fast durchgängig<br />

gut gepflegte Tooltipps helfen<br />

dabei, mit dem Programm gut<br />

zurechtzukommen. (jlu) ■<br />

INFO<br />

[1] Heavens Above:<br />

http://www.heavens-above.com<br />

[2] Gpredict-Homepage:<br />

http://gpredict.oz9aec.net<br />

[3] Gpredict herunterladen: http://sourceforge.<br />

net/projects/gpredict/files/<br />

[4] Ubuntu Packages Search:<br />

http://packages.ubuntu.com<br />

[5] Computer Aided Tuning: http://de.<br />

wikipedia.org/wiki/CAT_(Amateurfunk)<br />

[6] Gpredict-Handbuch:<br />

http://tinyurl.com/gpredict-manual<br />

[7] Näheres zum QTH-Locator:<br />

http://de.wikipedia.org/wiki/QTH<br />

Äußerst nützlich:<br />

das Sichtbarkeitsdiagramm<br />

der gewählten<br />

Satelliten.<br />

GLOSSAR<br />

TLE: Two Line Elements.<br />

Gebräuchliches Format,<br />

das Satellitenbahnelemente<br />

als Ziffernblöcke<br />

in zwei Zeilen darstellt.<br />

AOS: Acquisition of Signal.<br />

Die Erfassung des<br />

Satellitensignals.<br />

LOS: Loss of Signal.<br />

Der Verlust des Satellitensignals.<br />

Azimut: Der an den Himmelsrichtungen<br />

orientierte<br />

horizontale Winkel<br />

am Horizont.<br />

Elevation: Der Höhenwinkel<br />

über dem lokalen<br />

Horizont.<br />

Hamlib: Die HAM-Funkanlagen-Bibliotheken<br />

ermöglichen<br />

es, Steuerungsprogramme<br />

für<br />

Amateurfunkausrüstung<br />

wie Sender/ Empfänger<br />

oder Antennenrotierer<br />

zu schreiben. „Ham“ ist<br />

ein angelsächsischer<br />

Jargonausdruck für<br />

Funkamateure.<br />

www.linux-user.de<br />

02 | 11 67


im test<br />

Fotobuch-Software von Cewe<br />

Cewe Fotobuch-Designer für Linux<br />

Gut eingebunden<br />

Die Fotobuch-<br />

Software von<br />

Cewe gilt seit Jahren<br />

als eine der<br />

wenigen brauchbaren<br />

Lösungen<br />

für Linux. Auch die<br />

neueste Version<br />

überzeugt hinsichtlich<br />

Funktionalität<br />

und Benutzerfreundlichkeit.<br />

Thomas Leichtenstern<br />

ReADme<br />

Cewe, einer der ersten<br />

Anbieter von brauchbarer<br />

Fotobuchsoftware<br />

für Linux, veröffentlichte<br />

zur Photokina 2010 eine<br />

neue Version, die nach<br />

eigenem Bekunden mit<br />

vielen Änderungen und<br />

Verbesserungen aufwartet.<br />

Was die Software im<br />

Vergleich zum Farbglanz-<br />

Programm leistet, das in<br />

der letzten Ausgabe den<br />

Parcours bestritt, zeigt<br />

der Test.<br />

Bei anbietergebundener Software<br />

zum Erstellen von Fotobüchern<br />

und Kalendern dominiert<br />

Cewe [1] seit Jahren den Markt:<br />

Das Programm beziehungsweise<br />

den Fotodienst nutzen unter anderem<br />

Branchengrößen wie Rewe,<br />

Saturn Hansa, Amazon und viele<br />

andere mehr [2]. Bot Cewe bisher<br />

seine Software lediglich über die<br />

Reseller an, stellt es jetzt eine generische<br />

Version zum Download<br />

bereit, bei der man sich erst beim<br />

Bestellvorgang auf einen Händler<br />

festlegt (Abbildung A).<br />

Im Design unterscheidet sich<br />

das Programm nur marginal von<br />

den angepassten Versionen der<br />

Reseller. Allerdings beschränkt<br />

sich der Funktionsumfang der<br />

Cewe-Version auf das Erstellen<br />

von Fotobüchern, während die der<br />

Reseller häufig auch andere Bearbeitungsmodule<br />

enthalten, etwa<br />

für Kalender. Im Test trat die generische<br />

Version 4.6.5 von Cewe<br />

an, die zur Photokina im Oktober<br />

generalüberholt wurde. Sie verwendet<br />

zum Darstellen der Fenster<br />

Qt 4.6.2, dessen Bibliotheken<br />

das Programm selbst mitbringt.<br />

Installation<br />

Das Paket, das Cewe zum Download<br />

bereitstellt, besteht lediglich<br />

aus einem wenige KByte kleinen<br />

Perl-Skript, das beim Start alle<br />

benötigten Dateien – im Ganzen<br />

etwa 100 MByte – aus dem Internet<br />

herunterlädt. Nach Anzeige<br />

und dem Bestätigen der EULA erstellt<br />

der Installer das Verzeichnis<br />

~/CeWe Color/, in dessen Unterordner<br />

Mein CEWE FOTOBUCH sich eine<br />

gleichnamige ausführbare Datei<br />

befindet. Ein Klick darauf startet<br />

die Applikation.<br />

Auf einem schnellen Rechner erscheint<br />

das Programmfenster<br />

nach etwa 15 Sekunden. Ein Blick<br />

mit top auf den Ressourcenverbrauch<br />

zeigt, dass sich die Anwendung<br />

nach dem Start stattliche<br />

240 MByte an Hauptspeicher genehmigt.<br />

Je nach Umfang des<br />

Fotobuchs und Größe der Bilder<br />

steigt der Speicherbedarf aber zügig<br />

auf Werte über 600 MByte an.<br />

Neueröffnung<br />

Beim Start zeigt die Software im<br />

Hauptfenster zunächst eine Auswahl<br />

verschiedener Fotobuchformate.<br />

Im darüberliegenden Menü<br />

erreichen Sie weitere Größen und<br />

Qualitäten (Abbildung B). Nach<br />

Wahl der gewünschten Variante<br />

startet der Abfrage-Assistent, über<br />

den Sie unter anderem die Seitenzahl,<br />

das Layout und den Einband<br />

festlegen. Dabei weisen Sie dem<br />

Fotobuch bereits die<br />

dafür vorgesehenen<br />

Bilder zu. Die Software berechnet<br />

anhand der Bildanzahl pro<br />

Seite, die Sie per Schieberegler einstellen,<br />

selbstständig die benötigte<br />

Seitenzahl. Jeden Schritt des Abfrage-Assistenten<br />

brechen Sie bei<br />

Bedarf mit einem Klick auf den<br />

Schalter Ohne Assistenten gestalten<br />

ab. In diesem Fall öffnet die Software<br />

das Fotobuch lediglich mit<br />

der gewählten Größenvorgabe (Abbildung<br />

C, nächste Doppelseite).<br />

Alle Eckdaten wie Seitenzahl,<br />

Einband oder Papierqualität passen<br />

Sie nach Bedarf nachträglich<br />

links unten an. Den Preis für das<br />

Fotobuch aktualisiert die Software<br />

gemäß den Einstellungen automatisch<br />

und zeigt ihn daneben an.<br />

Um Bilder manuell ins Projekt zu<br />

importieren, wählen Sie links im<br />

Dateibrowser zunächst das Verzeichnis,<br />

in dem sich die gewünschten<br />

Bilder befinden. Danach<br />

erscheinen diese im <strong>Vorschau</strong>fenster<br />

darunter. Ziehen Sie<br />

die Fotos per Drag & Drop in einen<br />

Fotoframe. Das Programm<br />

markiert alle bereits importierten<br />

Aufnahmen mit einem grünen<br />

Häkchen – ein Zähler fehlt jedoch.<br />

70 02 | 11<br />

www.linux-user.de


Fotobuch-Software von Cewe<br />

im test<br />

Album auffüllen<br />

Möchten Sie mehrere Bilder auf<br />

einmal in das Album kopieren,<br />

wählen Sie die gewünschten Fotos<br />

bei gedrückter [Strg]-Taste mit<br />

der Maus aus und ziehen Sie sie<br />

danach in das Bearbeitungsfenster.<br />

Die Software ordnet sie dann<br />

der Reihenfolge nach im Buch an.<br />

[Strg]+[A] markiert alle im Verzeichnis<br />

enthaltenen Dateien, die<br />

Sie wie beschrieben ins Album<br />

einfügen. Die Größe der Seitenansicht<br />

variieren Sie mit dem Schieberegler<br />

am unteren Fensterrand.<br />

Rechts daneben befindet sich ein<br />

Knopf mit zwei diagonal angeordneten<br />

Pfeilen. Ein Klick drauf öffnet<br />

die bildschirmfüllende <strong>Vorschau</strong>ansicht<br />

des Fotobuchs. Um<br />

sie zu beenden, drücken Sie [Esc].<br />

Am unteren Fensterrand zeigt<br />

die Software die Seiten des Albums<br />

in einer verkleinerten <strong>Vorschau</strong>.<br />

Sie eignen sich sowohl zur<br />

Navigation als auch zum Ergänzen<br />

mit zusätzlichen Bildern. Ziehen<br />

Sie dafür die gewünschten<br />

Aufnahmen aus der Bildervorschau<br />

links in das entsprechende<br />

Blatt. Möchten Sie eine Aufnahme<br />

als Hintergrund definieren, klicken<br />

Sie in der <strong>Vorschau</strong> mit der<br />

linken Maustaste darauf. Im Kontextmenü<br />

legen Sie fest, ob das<br />

Bild für die rechte, linke oder beide<br />

Seiten als Hintergrund dient.<br />

Zur Suche nach inhaltlich und<br />

farblich ähnlichen Aufnahmen<br />

wählen Sie im selben Kontextmenü<br />

den Punkt Ähnliche finden…<br />

aus. Im Dialog stellen Sie über einen<br />

Schieberegler die geforderten<br />

Übereinstimmungen von fast<br />

gleich… bis …ähnlich aussehend<br />

stufenlos ein. Ein anschließender<br />

Klick auf OK zeigt die Treffer in<br />

der <strong>Vorschau</strong> an.<br />

portionen von Aufnahme<br />

und Box<br />

nicht überein, zeigt<br />

die Software nur einen<br />

Ausschnitt an.<br />

Diesen ändern Sie,<br />

indem Sie auf das<br />

Bild klicken und es<br />

bei gedrückter<br />

Maustaste im Rahmen<br />

verschieben.<br />

Zum Ändern der<br />

Rahmen- und damit<br />

Bildgröße dienen<br />

die Anfasser, die es<br />

an jeder Ecke und<br />

Kante gibt. Ein Ziehen<br />

an den Kanten verändert die<br />

Proportionen, das Verändern der<br />

Ecken skaliert das Bild.<br />

Anders als die in der letzten<br />

Ausgabe getestete Software von<br />

Farbglanz [3] unterstützt die<br />

Cewe-Software alle gängigen Tastaturkürzel<br />

und Funktionstasten.<br />

Zum Löschen eines Bildes reicht<br />

es entsprechend aus, [Entf] zu<br />

drücken. Die Software erkennt<br />

dabei auch eine Mehrfachauswahl<br />

und entfernt alle angewählten<br />

Aufnahmen. Per [Strg]+[X] und<br />

[Strg]+[V] verschieben Sie ein Bild<br />

von der einen Stelle an eine andere,<br />

was im Test aber nicht komplikationsfrei<br />

funktioniert. Das<br />

Rückgängigmachen der letzten<br />

Aktionen via [Strg]+[Z] bereitete<br />

dagegen keinerlei Probleme.<br />

Um das Bild an einer anderen<br />

Stelle auf der Seite zu platzieren,<br />

markieren Sie es und ziehen es<br />

bei gedrückter Maustaste am<br />

Rahmen an die gewünschte Stelle.<br />

Die Position überlappender<br />

Aufnahmen legen Sie über Objekt<br />

eine Ebene nach vorne|hinten aus<br />

dem Kontextmenü fest. Eine einstellbare<br />

Transparenz, wie sie die<br />

Software von Farbglanz bietet,<br />

fehlt der von Cewe allerdings.<br />

Möchten Sie eine vielleicht<br />

nicht hundertprozentig gelungene<br />

Aufnahme aufwerten, legen<br />

Sie ein Passepartout darüber.<br />

Wechseln Sie dazu in der linken<br />

Spalte in den Reiter Layout und<br />

danach in Passepartout. Die Software<br />

enthält bereits mehrere<br />

Dutzend davon, die Sie via<br />

A Die händlerunabhängige<br />

Fotobuchsoftware<br />

von Cewe lässt<br />

Ihnen bis zur Bestellung<br />

die Wahl des Handelspartners.<br />

Test des Fotobuchprogramms<br />

von Farbglanz<br />

aus LU 12/ 2010<br />

LU/dps/<br />

Auf die Plätze…<br />

Nach dem Befüllen des Albums<br />

geht es daran, die Bilder auszurichten<br />

und möglichst ansprechend<br />

darin zu platzieren. Die<br />

Software passt Aufnahmen automatisch<br />

so gut wie möglich in den<br />

Bildboxen ein. Stimmen die Pro-<br />

B Neben diversen<br />

Größenformaten wählen<br />

Sie im Hauptfenster<br />

der Cewe-Software<br />

auch die Papierqualität<br />

und die Bindung.<br />

www.linux-user.de<br />

02 | 11 71


im test<br />

Fotobuch-Software von Cewe<br />

C Bilder ziehen Sie via<br />

Drag & Drop an die gewünschte<br />

Stelle im<br />

Fotoalbum.<br />

Der Funktionsumfang<br />

des Cewe-<br />

Fotoeditors genügt<br />

auch für die wichtigsten<br />

Bildkorrekturen.<br />

Drag & Drop auf die gewünschte<br />

Aufnahme ziehen. Reicht die Auswahl<br />

nicht aus, genügt ein Klick<br />

auf den Button mehr herunterladen…,<br />

um weitere Passepartouts<br />

auf dem Rechner zu installieren.<br />

Feinschliff<br />

Zum Nachbearbeiten von Bildern<br />

bringt die Cewe-Software ein rudimentäres<br />

Bildbearbeitungsprogramm<br />

mit. Um es zu nutzen,<br />

klicken Sie doppelt auf die gewünschte<br />

Aufnahme, worauf das<br />

Modul startet (Abbildung ). Da<br />

das Öffnen des Fotoeditors im<br />

Test sporadisch zum Absturz des<br />

Programms führte, empfiehlt es<br />

sich, das Album zuvor via [Strg]+<br />

[S] zu sichern.<br />

Der Bildeditor enthält neben<br />

dem Bearbeitungwerkzeug allerdings<br />

noch diverse andere Elemente,<br />

etwa zum Festlegen der<br />

Grundeinstellungen, weswegen<br />

sein Aufbau unübersichtlich erscheint.<br />

Ein Klick auf das Icon mit<br />

den stilisierten Schiebereglern in<br />

der Menüleiste öffnet das Korrekturwerkzeug<br />

für Helligkeit, Kontrast<br />

und Farbton. Ein vernünftiger<br />

Weißabgleich fehlt dem<br />

Programm.<br />

Eher an die verspielten Naturen<br />

richten sich die Funktionen, die<br />

sich hinter dem Icon F (Fenster für<br />

Fotoeffekte) verbergen. Mit ihnen<br />

verzerren Sie die Aufnahmen in<br />

allen denkbaren Varianten oder<br />

lassen sie als Gemälde oder Kohlezeichnung<br />

erscheinen. Im Test fiel<br />

dabei auf, dass zum einen die angezeigte<br />

<strong>Vorschau</strong> nicht immer<br />

mit der tatsächlichen Ausgabe<br />

übereinstimmt und zum anderen<br />

das Anwenden des Effektes unter<br />

Umständen minutenlang dauert<br />

und dabei den im Testrechner verbauten<br />

Prozessor Intel Core i5<br />

650 beinahe vollständig auslastet.<br />

Ärgerlich auch, dass eine Funktion<br />

zum Rückgängigmachen der<br />

letzten Aktion fehlt. Ein Klick auf<br />

Verwerfen setzt stets sämtliche<br />

Bearbeitungsschritte zurück.<br />

Schreib mal wieder…<br />

Wie alle Fotobuchprogramme verfügt<br />

auch das von Cewe über ein<br />

Textmodul, mit dem Sie Seiten<br />

oder Bilder beschriften. Um einen<br />

Text hinzuzufügen, klicken Sie in<br />

der Schalterleiste über dem<br />

Hauptfenster auf das Symbol T<br />

mit einem Plus darüber. Daraufhin<br />

öffnet sich eine Box, in die Sie<br />

Ihren Text schreiben. Anders als<br />

die Farbglanz-Software enthält<br />

dieses Programm eine auf Hunspell<br />

basierende Rechtschreibkorrektur,<br />

die falsch geschriebene<br />

Wörter rot unterstreicht und im<br />

Kontextmenü entsprechende Korrekturvorschläge<br />

unterbreitet. Neben<br />

den üblichen Formatierungen<br />

wie Größe oder Farbe ermöglicht<br />

das Programm es Ihnen, BuchstaiNFO<br />

[1] Cewe: http://www.cewe-fotobuch.de<br />

[2] Händlerübersicht: http://www.cewe.de/<br />

fotobuecher/fotobuch-haendler-uebersicht/<br />

[3] DPS-Artikel: Thomas Leichtenstern, „Buchmacher“,<br />

<strong>LinuxUser</strong> 12/ 2010, S. 70:<br />

http://www.linux-community.de/22211<br />

72 02 | 11<br />

www.linux-user.de


Fotobuch-Software von Cewe<br />

im test<br />

ben farbig zu umranden. Vor allem<br />

wenn Sie den Text auf Bildern mit<br />

unruhigem Hintergrund platzieren,<br />

steigert das die Lesbarkeit erheblich<br />

(Abbildung ).<br />

Um an diese Funktion zu gelangen,<br />

klicken Sie zunächst auf den<br />

kleinen abwärts gerichteten Pfeil<br />

unterhalb des Textmenüs und klicken<br />

im Flyout-Menü auf das<br />

Schraubenschlüsselsymbol. Im<br />

Konfigurationsfenster aktivieren<br />

Sie die Checkbox Farbige Buchstabenränder<br />

und wählen danach dessen<br />

Farbe und Stärke. Möchten<br />

Sie die Änderungen nur auf den<br />

markierten Text anwenden, klicken<br />

Sie auf Aktuell ausgewählte<br />

Texte ändern. Um die Einstellungen<br />

auf das komplette Dokument<br />

anzuwenden, wählen Sie Alle Texte<br />

im Buch anpassen.<br />

Negativ fiel der relativ begrenzte<br />

Umfang an verfügbaren Schriften<br />

auf, der neben den Standards wie<br />

Verdana und Arial nur wenig zu<br />

bieten hat. Eine<br />

nachträgliche<br />

Installation von<br />

Fonts, wie dies<br />

die Software von<br />

Farbglanz erlaubt,<br />

kennt die<br />

Cewe-Anwendung<br />

nicht.<br />

Fazit<br />

Die Fotobuchsoftware<br />

von<br />

Cewe erweist<br />

sich wie bereits<br />

der Vorgänger als<br />

solide, weitgehend übersichtlich<br />

strukturiert und einfach zu bedienen.<br />

Bereits nach kurzer Einarbeitungszeit<br />

kommen auch Einsteiger<br />

problemlos mit dem Programm<br />

zurecht. Im direkten Vergleich<br />

mit der Software von Farbglanz,<br />

die wir in der letzten Ausgabe<br />

testeten, bietet die Cewe-<br />

Anwendung einige Vorteile – aber<br />

auch Nachteile. Auf der Habenseite<br />

verbucht Cewe das besser ausgestattete<br />

Bildbearbeitungsmodul,<br />

die automatische Rechtschreibkorrektur<br />

und die farbliche<br />

Umrandung der Schriften.<br />

Dagegen fehlen Transparenzen<br />

für Bilder oder das Verwenden<br />

nachträglich installierter Systemfonts.<br />

(tle) ■<br />

Mit der farblichen<br />

Umrandung lässt sich<br />

die Schrift vor allem<br />

über unruhigen Hintergründen<br />

deutlich<br />

besser lesen.


LINUX-MAGAZIN –<br />

das Magazin für den<br />

MAGAZIN<br />

• die Fachzeitschrift für Profis aus der IT-Branche<br />

• Know-How für Programmierer, Netzwerker und<br />

Manager sowie Systemintegratoren und Consultants<br />

• Hintergrundwissen zu Software, Hardware, Netzwerk,<br />

Administration und Entwicklung<br />

JETZT<br />

MIT DVD!<br />

Linux-Magazin MINI-ABO<br />

Lernen Sie das Linux-Magazin kennen!<br />

Lesen Sie 3 Ausgaben für nur 3 Euro!<br />

Jetzt MINI-ABO bestellen:<br />

www.linux-magazin.de/miniabo<br />

SONDERAKTION<br />

Testen Sie jetzt<br />

3 Ausgaben<br />

für 3 Euro!<br />

Linux-Magazin Studenten-Abo<br />

Profiwissen fürs Studium mit 20% Rabatt<br />

www.linux-magazin.de/studentenabo


professionellen Einsatz<br />

MAGAZIN<br />

ONLINE<br />

www.linux-magazin.de<br />

• ist das Internetportal<br />

von Europas renommiertester<br />

Linux-<br />

Zeitschrift.<br />

• informiert über<br />

Business-Aspekte<br />

rund um OpenSource<br />

• Profiwissen kompetent<br />

und wegweisend<br />

Linux-Magazin Newsletter<br />

Lesen Sie täglich Hintergrundwissen von und für<br />

professionelle Linux Anwender!<br />

Abonnieren Sie hier: www.linux-magazin.de/newsletter<br />

So können Sie das Linux-Magazin bestellen:<br />

• Telefon 089 / 2095 9127<br />

• Fax 089 / 2002 8115<br />

• E-Mail: abo@linux-magazin.de<br />

• Web: http://www.linux-magazin.de/abo<br />

• Shop: Shop.LinuxNewMedia.de<br />

Miniabo-Gewinnspiel: Outdoor IP-Kamera<br />

Infos unter: www.linux-magazin.de/miniabo<br />

ABOVORTEILE<br />

• Preisvorteil gegenüber Kioskkauf<br />

• kostenlose & sichere Zustellung<br />

• Zustellung vor dem offiziellen<br />

Verkaufstermin


NETZ&SYSTEM<br />

Lshw<br />

© Adamcl, sxc.hu<br />

Hardware-Informationen sammeln mit Lshw<br />

Durchleuchtet<br />

Was steckt unter der Haube des Computers? Mit Lshw enthüllen Sie dabei Details der PC-Hardware, die<br />

Sie in einigen Fällen noch nicht einmal in den Datenblättern der Hersteller finden. Karsten Günther<br />

README<br />

Welche Hardware befindet<br />

sich im Rechner?<br />

Die Antwort fällt oft<br />

nicht leicht, und je genauer<br />

die Informationen<br />

sein sollen, desto komplizierter<br />

gerät die Analyse.<br />

Mit Lshw haben<br />

Sie ein Werkzeug an der<br />

Hand, das Ihnen schnell<br />

und zuverlässig umfangreiche<br />

Daten über die<br />

Komponenten im System<br />

liefert.<br />

WICHTIGE OPTIONEN<br />

Option<br />

Beschreibung<br />

-html<br />

HTML-Ausgaben generieren<br />

-xml<br />

XML-Ausgaben generieren<br />

-short<br />

kurze Zusammenfassung erzeugen<br />

-businfo<br />

Bus-Information ausgeben<br />

-X grafische Oberfläche verwenden<br />

Aktionen<br />

-c, -C, -class Klasse Informationen zu Klasse zeigen<br />

-disable Test<br />

Test auslassen<br />

-enable Test<br />

Test vornehmen<br />

-quiet<br />

Statuszeile nicht anzeigen<br />

-sanitize<br />

sensible Informationen unterdrücken<br />

-numeric<br />

numerische IDs anzeigen<br />

Jede vom Kernel und seinen Modulen<br />

erkannte Hardware hinterlässt<br />

Spuren in den Log-Dateien<br />

oder den Pseudo-Dateisystemen<br />

/ proc und /sys. Das Zusammentragen<br />

der Informationen von<br />

Hand fällt recht aufwendig aus.<br />

Einige Distributionen versuchen<br />

daher mit verschiedenen Programmen<br />

und unterschiedlichem<br />

Erfolg, dem Anwender diese Arbeit<br />

abzunehmen. Lshw [1] erweist<br />

sich dagegen als ein Programm,<br />

das auf allen Plattformen<br />

gut funktioniert.<br />

Der Name der Software leitet<br />

sich von „List Hardware“ ab. Das<br />

Programm ermittelt Informationen<br />

zu Hardwarekomponenten<br />

wie CPU, Speichermodulen oder<br />

auch zu Geräten, die Sie an PCI-,<br />

USB- oder IDE-Schnittstellen angeschlossen<br />

haben (zum Beispiel<br />

Soundkarte, Grafikkarte oder externe<br />

Laufwerke). Das Tool arbeitet<br />

auf der Kommandozeile. Sie<br />

steuern es durch Optionen (Tabelle<br />

Wichtige Optionen).<br />

Die erste Gruppe von Optionen<br />

steuert das Ausgabeformat. Voreingestellt<br />

schreibt Lshw die Ausgaben<br />

als Klartext auf das Terminal<br />

(Listing 1). Das ist praktisch,<br />

wenn es darum geht, die Ausgaben<br />

zu archivieren oder automatisch<br />

zu bearbeiten – etwa um<br />

mittels Grep Zeilen herauszufiltern<br />

und weiterzuverarbeiten<br />

(lshw ... | grep size ...).<br />

Für ähnliche Anwendungen<br />

existiert die Option -xml, die ein<br />

vollständiges, wohlformatiertes<br />

76 02 | 11<br />

www.linux-user.de


Lshw<br />

NETZ&SYSTEM<br />

XML-Dokument erzeugt, das sich<br />

gut für das Archivieren in einer<br />

Datenbank eignet. Schöner und<br />

für Menschen besser zu lesen erscheinen<br />

die Ausgaben als HTML-<br />

Seite, wie sie die gleichnamige<br />

Option (kleingeschrieben: -html)<br />

erzeugt. Noch einen Schritt weiter<br />

geht -X, das eine grafische<br />

Oberfläche startet.<br />

Um nur eine kurze Übersicht<br />

statt der teilweise wirklich sehr<br />

detaillierten Informationen, wie<br />

Lshw sie voreingestellt ausgibt,<br />

zu erhalten, stehen die Optionen<br />

-businfo und -short für die Kommandozeile<br />

bereit.<br />

Ohne Root-Privilegien hat Lshw<br />

nur begrenzten Zugriff auf die<br />

Systeminformationen. Entsprechend<br />

schlanker fällt die Ausgabe<br />

aus, allerdings fehlen dann relevante<br />

Teile. Normalerweise sollten<br />

Sie Lshw daher als Root (sudo<br />

lshw) verwenden. Mit den entsprechenden<br />

Optionen passen Sie<br />

die Ausgabe an. Dazu nutzen Sie<br />

zum Beispiel Klassen (Tabelle<br />

Klassen) und Tests (Tabelle<br />

Tests).<br />

Sensible Informationen<br />

Mithilfe der Option -sanitize ersetzt<br />

Lshw sensible Informationen<br />

(wie Seriennummern und IP-<br />

Adressen) durch die Zeichenkette<br />

[REMOVED]. Das erweist sich besonders<br />

dann als sinnvoll, wenn Sie<br />

diese Informationen an Dritte<br />

weitergeben möchten, etwa bei<br />

Anfragen in Foren oder Ähnlichem.<br />

Die Option -quiet verhindert,<br />

dass Lshw auf dem Terminal<br />

anzeigt, welche Klasse die Software<br />

gerade testet.<br />

Ganz anders -numeric: Diese Option<br />

veranlasst die Ausgabe numerischer<br />

IDs für PCI, USB und<br />

andere Geräte. Die Ausgaben der<br />

einzelnen Klassen zeigt Lshw in<br />

einer Baumstruktur. Die Äste<br />

KLASSEN<br />

address Speicheradressen für Extension-ROM oder Videospeicher<br />

bridge<br />

PCI-to-PCI, AGP, PCMCIA<br />

bus<br />

nur Busse, ohne daran hängende Hardware<br />

communication serielle Ports, Modem<br />

disk<br />

Laufwerke (auch optische)<br />

display Grafikkomponenten (ohne Monitor)<br />

generic andere Komponenten<br />

input<br />

Tastaturen, Mäuse, Joysticks<br />

memory<br />

RAM, BIOS, Firmware<br />

multimedia Sound-, TV- und Video-Karten<br />

network Bluetooth, Ethernet, FDDI, WLAN<br />

power<br />

Stromversorgungen, Batterien<br />

printer Drucker, All-in-one-Geräte<br />

processor CPU, aber auch RAID-Controller<br />

storage SCSI- oder IDE-Controller<br />

system<br />

Art des Systems: Laptop, Desktop, Server oder „Computer“<br />

tape<br />

DAT/ DDS-Streamer<br />

volume<br />

Dateisysteme, Partitionen<br />

cpuid<br />

die ausgelesene CPU-ID<br />

cpuinfo<br />

Daten der CPU<br />

device-tree OpenFirmware Device Tree (PowerPC)<br />

dmi<br />

DMI/ SMBIOS-Erweiterungen<br />

ide<br />

klassische IDE- und ATAPI-Geräte<br />

isapnp<br />

ISA-PnP-Erweiterungen<br />

pci<br />

PCI- und AGP-Geräte<br />

pcmcia<br />

PCMCIA- und PC-Card-Erweiterungen<br />

memory<br />

Memory-Size-Heuristiken<br />

network<br />

Netzwerk-Interfaces<br />

scsi<br />

echte und simulierte SCSI-Geräte<br />

spd Serial Presence Detect [2]<br />

usb<br />

alle USB-Geräte<br />

TESTS<br />

# lshw<br />

...<br />

*-multimedia<br />

description: Audio device<br />

product: Azalia Audio Controller<br />

vendor: Silicon Integrated Systems [SiS]<br />

physical id: f<br />

bus info: pci@0000:00:0f.0<br />

version: 00<br />

width: 32 bits<br />

clock: 33MHz<br />

capabilities: pm bus_master cap_list<br />

configuration: driver=HDA Intel latency=0<br />

maxlatency=11 mingnt=52<br />

resources: irq:18 memory:d4200000-d4203fff<br />

...<br />

*-usb:1<br />

description: USB Controller<br />

product: USB 1.1 Controller<br />

vendor: Silicon Integrated Systems [SiS]<br />

physical id: 3.1<br />

bus info: pci@0000:00:03.1<br />

version: 0f<br />

width: 32 bits<br />

clock: 33MHz<br />

capabilities: bus_master<br />

configuration: driver=ohci_hcd latency=32<br />

maxlatency=80<br />

resources: irq:21 memory:d4205000-d4205fff<br />

*-usb:2<br />

description: USB Controller<br />

product: USB 2.0 Controller<br />

vendor: Silicon Integrated Systems [SiS]<br />

physical id: 3.3<br />

bus info: pci@0000:00:03.3<br />

version: 00<br />

width: 32 bits<br />

clock: 33MHz<br />

capabilities: pm debug bus_master cap_list<br />

configuration: driver=ehci_hcd latency=32<br />

maxlatency=80<br />

resources: irq:22 memory:d4206000-d4206fff<br />

...<br />

LISTING 1<br />

www.linux-user.de<br />

02 | 11 77


NETZ&SYSTEM<br />

Lshw<br />

Die grafische Oberfläche<br />

Lshw-gtk bietet<br />

einen einfacheren Zugriff<br />

auf den Baum der<br />

Informationen, der<br />

Software fehlen aber<br />

die nützlichen Optionen<br />

des Kommandozeilenwerkzeugs.<br />

(„nodes“) können dabei mit einem<br />

von vier möglichen Schlüsselwörtern<br />

gekennzeichnet sein:<br />

• CLAIMED – es gibt einen geeigneten<br />

Treiber und er ist geladen<br />

(oft zeigt Lshw direkt die entsprechenden<br />

Informationen).<br />

• UNCLAIMED – markiert Klassen,<br />

für die es (derzeit) keinen Treiber<br />

gibt.<br />

• ENABLED – kennzeichnet Klassen<br />

mit voll funktionsfähigen Treibern<br />

(oft zeigt Lshw direkt die<br />

entsprechenden Informationen).<br />

• DISABLE – erscheint, falls es mit<br />

dem Treiber ein Problem gibt.<br />

Für die Interpretation der Angaben<br />

gilt: Die Aussagen in den Bereichen<br />

size und capacity hängen<br />

von der jeweiligen Klasse ab. Sie<br />

unterscheiden sich danach, ob Sie<br />

eine CPU oder einen Speicher<br />

analysieren. Die Angabe serial bezieht<br />

sich auf die Seriennummern<br />

von Geräten wie Festplatten,<br />

Speicherriegel, Prozessoren oder<br />

Mainboards. Bei Netzwerkgeräten<br />

gibt sie die MAC-Adresse an,<br />

bei Partitionen die GUID.<br />

Logische Partitionen<br />

Festplatten mit mehreren logischen<br />

Partitionen erscheinen<br />

mehrfach: Einmal als logische<br />

Partition, einmal in der sie enthaltenen<br />

erweiterten Partition.<br />

Unter capabilities fasst Lshw die<br />

jeweils verfügbaren Features der<br />

Klassen zusammen. Für Lshw<br />

gibt es eine grafische Oberfläche:<br />

Lshw-gtk (Abbildung ). Sie starten<br />

diese zum einen direkt unter<br />

diesem Namen oder via Lshw mit<br />

der Option -X. Diese Ansicht spiegelt<br />

die Baumstruktur der von<br />

Lshw erhobenen Informationen<br />

wider. Diese erscheinen in bis zu<br />

drei Ebenen verschachtelt, ein<br />

Doppelklick öffnet die jeweils<br />

nächste Ebene. Das klappt nur bei<br />

Einträgen, für die Lshw durch<br />

Fettung das Vorhandensein von<br />

Untereinträgen signalisiert. Ganz<br />

rechts zeigt das Fenster die jeweiligen<br />

Daten an. Die grafische<br />

Oberfläche unterstützt nicht die<br />

Optionen der Befehlszeile, sodass<br />

hier geduldiges Suchen angesagt<br />

ist, wenn es darum geht, bestimmte<br />

Einträge zu finden.<br />

Einfaches Konzept<br />

Lshw erweist sich als ein nützliches<br />

Werkzeug, das durch ein<br />

wirklich einfaches Bedienkonzept<br />

überzeugt. Es zeigt überaus viele<br />

Informationen zu der im lokalen<br />

Rechner verbauten Hardware an<br />

und deckt dabei so manches auf,<br />

was die Hersteller weder im Datenblatt<br />

noch sonstwo dokumentierten.<br />

Natürlich bedarf es einiges<br />

Grundwissens über die Hardware,<br />

und auch Geduld sowie eine<br />

gute Internetverbindung schaden<br />

nicht, will man Wissenslücken<br />

füllen. Da erfreut, dass Lshw einiges<br />

Expertenwissen schon direkt<br />

mit in seine Ausgabe packt.<br />

Zunächst ist der Zugang über<br />

die grafische Oberfläche wohl am<br />

einfachsten, später und bei mehreren<br />

Rechnern stellt sich aber<br />

die Befehlszeilenvariante als sehr<br />

elegant heraus. Nach dem Einbau<br />

neuer Hardware erstellt ein Scan<br />

mit Lshw schnell einen neuen<br />

Eintrag für die persönliche Datenbank<br />

mit den Hardware-Informationen.<br />

Später, bei einem Defekt,<br />

mag es dafür zu spät sein.<br />

Datenqualität<br />

Bleibt nur noch ein Blick auf die<br />

von Lshw erzeugte Datenqualität:<br />

Das Programm zeigt natürlich<br />

nur das an, was die Hardware<br />

freiwillig preisgibt. Nicht immer<br />

fallen die Daten daher vollständig<br />

aus: So gibt eine im Testsystem<br />

verbaute ATI-Grafikkarte des<br />

Typs Radeon X1600 für den Standardausgang<br />

zwar die korrekte<br />

Produktbezeichnung, für den<br />

zweiten Port aber nur noch ATI<br />

Technologies Inc an. Hier heißt es<br />

also, die Ausgaben richtig zu interpretieren<br />

(sprich: begründet<br />

zu raten), um zu vernünftigen Ergebnissen<br />

zu kommen. (agr) ■<br />

INFO<br />

[1] Projektseite:<br />

http://ezix.org/project/wiki/HardwareLiSter<br />

[2] Serial Presence Detect: http://en.<br />

wikipedia.org/wiki/Serial_presence_detect<br />

78 02 | 11<br />

www.linux-user.de


ALLE AUSGABEN DES JAHRES 2010<br />

SIE HABEN EIN ADMIN VERPASST? KEIN PROBLEM!<br />

Bei uns können Sie alle Ausgaben des ADMIN Magazin<br />

aus dem Jahr 2010 ganz einfach und versandkostenfrei<br />

unter www.admin-magazin.de/einzelheft nachbestellen:<br />

ADMIN 01/2010 ADMIN 02/2010 ADMIN 03/2010<br />

Ausverkauft, aber<br />

als PDF verfügbar!<br />

ADMIN 04/2010 ADMIN 05/2010 ADMIN 06/2010<br />

Ausverkauft, aber<br />

als PDF verfügbar!<br />

Damit Sie keine Ausgabe mehr verpassen,<br />

bestellen Sie am besten gleich ein Abo<br />

vom ADMIN Magazin und sparen:<br />

Telefonisch unter: 089/2095 9127,<br />

per Fax 089/2002 8115 oder<br />

E-Mail: abo@admin-magazin.de,<br />

Web: www.admin-magazin.de/abo


Hardware<br />

Huawei E5<br />

Mit dem E5 offeriert<br />

der chinesische<br />

Anbieter<br />

Huawei einen kombinierten<br />

UMTS-WLAN-<br />

Router, der Sie von überall<br />

innerhalb von Sekunden ins<br />

Internet bringt. Erik Bärwaldt<br />

© Luke-sz, sxc.hu<br />

Huawei E5: WLAN, WWAN und Server im Handyformat<br />

Mobiler Hotspot<br />

readMe<br />

Mobile Linux-Anwender<br />

können jetzt mit dem<br />

Huawei E5 unterwegs<br />

im Handumdrehen einen<br />

WLAN-Hotspot mit<br />

schnellem HSPA-Zugang<br />

ins Internet aufbauen.<br />

Obendrein zeigt das Gerät<br />

durchgängig bessere<br />

Leistungsdaten als herkömmliche<br />

USB-Surfsticks<br />

und viele HSPA-<br />

Karten und lässt sich<br />

auch noch als Dateiserver<br />

nutzen.<br />

Welcher Road Warrior träumt<br />

nicht davon, mit seinem Notebook<br />

drahtlos überall im Internet<br />

zu surfen? Dazu benötigt man einen<br />

mobilen Hotspot mit UMTS-<br />

Anbindung, der vielleicht zusätzlich<br />

als Server dient und trotzdem<br />

kleiner ausfällt als die meisten<br />

Handys. Gibt’s nicht? Doch, der<br />

Huawei E5 [1] macht’s möglich.<br />

Das Design des E5 erinnert sowohl<br />

in der Form als auch der<br />

Größe an ein etwas geschrumpftes<br />

Smartphone (Abbildung A).<br />

Eine dezent silberfarbene Oberseite<br />

mit schwarz spiegelndem<br />

Display ergänzt den abgerundeten,<br />

weißen Gehäusekorpus. Die<br />

Bedienelemente fallen spartanisch<br />

aus: An der rechten Seite<br />

des E5 finden sich drei kleine Tasten<br />

mit spürbarem Druckpunkt.<br />

Eine dient zum Ein- und Ausschalten<br />

des Gerätes, die mittlere<br />

für den schnellen Verbindungsaufbau<br />

ohne Konfiguration von<br />

Sicherheitsparametern über das<br />

WPS-Protokoll und die dritte dem<br />

Abmelden im manuellen Modus.<br />

An der linken Seite befindet sich<br />

ein Kartenslot für eine MicroSD-<br />

Karte. Neben dem eigentlichen<br />

UMTS-WLAN-Router purzelten<br />

beim Auspacken ein USB-Kabel,<br />

ein Lithium-Polymer-Akku, ein<br />

weltweit einsetzbares Netzteil<br />

mit Eurostecker sowie eine rund<br />

30 Seiten umfassende Kurzanleitung<br />

in fehlerfreiem Deutsch aus<br />

dem Karton. Ein Hinweis auf die<br />

GNU General Public License in<br />

dem Handbuch lässt schon vermuten,<br />

was sich bei genauerem<br />

Hinsehen bestätigt: Im E5 versieht<br />

ein <strong>Embedded</strong> Linux als Betriebssystem<br />

den Dienst.<br />

Erster Kontakt<br />

Im Gegensatz zu vielen stationären<br />

UMTS-WLAN-Routern, die<br />

einen USB-Surfstick zum Betrieb<br />

benötigen, verfügt der Huawei<br />

über ein eingebautes UMTS-Modem<br />

und kommt daher ohne zusätzliche<br />

Hilfsmittel aus. Um den<br />

UMTS-WLAN-Router einsatzbereit<br />

zu machen, öffnen Sie zunächst<br />

das Gehäuse, indem Sie an<br />

der Oberseite des Gerätes eine<br />

kleine Taste gedrückt halten und<br />

gleichzeitig die Unter- von der<br />

Oberschale trennen. Dann schieben<br />

Sie in den mit einem Metallrahmen<br />

versehenen Kartenslot<br />

die SIM-Karte Ihres Providers.<br />

Nach dem Einlegen der Karte<br />

80 02 | 11<br />

www.linux-user.de


Huawei E5<br />

Hardware<br />

fixieren Sie den Akku darüber und<br />

verschließen das Gehäuse wieder.<br />

Den Akku laden Sie über den<br />

Mini-USB-Anschluss an der Unterseite<br />

des Routers auf. Betreiben<br />

Sie den E5 stationär, bietet es sich<br />

an, das mitgelieferte Netzteil mit<br />

dem Mini-USB-Stecker zu verbinden.<br />

Beim Mobileinsatz bezieht<br />

der Router die erforderliche Energie<br />

vorzugsweise über eine herkömmliche<br />

USB-Verbindung. Haben<br />

Sie den Router ausgeschaltet,<br />

lädt sich der Akku bei bestehendem<br />

Anschluss an ein eingeschaltetes<br />

Notebook oder das Netzteil<br />

automatisch. Im Akkubetrieb bietet<br />

das Gerät laut Hersteller bis zu<br />

4 Stunden Betriebszeit und maximal<br />

100 Stunden Standby. Diese<br />

Daten bestätigten sich im Test.<br />

Nach dem ersten Einschalten erscheinen<br />

auf dem hell leuchtenden<br />

LED-Display gut sichtbar einige<br />

Statusmeldungen. Neben<br />

dem gewählten Netz zeigt der E5<br />

die Signalstärke, den WWAN-Modus<br />

(2G für GPRS oder EDGE, 3G<br />

für UMTS oder HSPA), die Anzahl<br />

der aktiven WLAN-Clients, den<br />

gewählten Betriebsmodus des<br />

Routers (automatisch oder manuell),<br />

den Akkuzustand und – mit<br />

einem kleinen Globus – den Zugang<br />

ins Internet an.<br />

Der Router ermöglicht maximal<br />

fünf WLAN-Clients den Internet-<br />

Zugriff. Der E5 unterstützt dazu<br />

die Standards 802.11b und<br />

802.11g, was eine maximale Datenrate<br />

von 54 Mbit/ s ermöglicht.<br />

Auf der WWAN-Seite bietet der<br />

UMTS-WLAN-Router dank HSPA<br />

eine maximale Downlink-Geschwindigkeit<br />

von 7,2 Mbit/ s und<br />

eine Uplink-Transferrate von bis<br />

zu 5,76 Mbit/ s. Allerdings stehen<br />

entsprechende Verbindungen in<br />

Deutschland noch nicht flächendeckend<br />

zur Verfügung.<br />

Konfiguration<br />

Die Konfiguration des E5 nehmen<br />

Sie über ein Webinterface<br />

vor. Dazu geben Sie bei bestehender<br />

WLAN-Verbindung im Browser<br />

die Adresse http://192.168.1.1<br />

oder alternativ http://e5.home ein.<br />

So gelangen Sie umgehend auf die<br />

Startseite des Konfigurationsmenüs,<br />

wo Sie sich beim erstmaligen<br />

Anmelden mit dem Standardpasswort<br />

admin authentifizieren.<br />

Das aufgeräumt wirkende Interface<br />

gliedert sich in drei Bereiche:<br />

Die oben im Management-Portal<br />

befindliche Reiterleiste mit vier<br />

großen, horizontal angeordneten<br />

Reitern dient dem Aufruf der entsprechenden<br />

Menüs.<br />

Der rechts angeordnete Reiter<br />

Einstellungen ermöglicht das Einrichten<br />

eines Internet- und<br />

WLAN-Zugangs entweder mithilfe<br />

eines Assistenten oder manuell<br />

durch Anklicken der vertikal angeordneten<br />

Schaltflächen im linken<br />

Bereich des Fensters. Der<br />

links daneben befindliche Reiter<br />

microSD-Karte verzweigt in ein<br />

Menü, mit dessen Hilfe Sie Dateien<br />

verwalten und im Netz bereitstellen,<br />

die Sie auf einer in den<br />

Router eingeschobenen MicroSD-<br />

Karte abgespeichert haben.<br />

Der zweite Reiter von links erlaubt<br />

bis zu 250 SMS über das<br />

Web interface zu empfangen und<br />

zu versenden, während der ganz<br />

links angeordnete Reiter Verbindung<br />

den Status des Routers visualisiert.<br />

Diese Seite hilft bei Problemen<br />

im Netz, weil sie Verbindungsmängel<br />

sowohl im WLAN<br />

als auch im WWAN sofort aufzeigt<br />

(Abbildung , nächste Seite).<br />

Der Hauptbereich des Fensters<br />

bietet links Verzweigungen in Untermenüs<br />

an, während der größte<br />

Teil des Fensters den eigentlichen<br />

Einstelloptionen vorbehalten<br />

bleibt. In den Untermenüs tragen<br />

Sie kontextsensitiv Adressen und<br />

Ports ein, verwalten die Einstellungen<br />

zur SIM-Karte und konfigurieren<br />

die eingebaute Firewall<br />

sowie die Serverdienste.<br />

Zwar arbeitet die im E5 eingebaute<br />

Firewall als reiner Paketfilter<br />

anhand von IP- und MAC-Adressen<br />

und erlaubt keine Stateful<br />

Packet Inspection, doch fallen einige<br />

protokollabhängige Einstellungen<br />

ungewöhnlich detailliert<br />

aus. So erlaubt es die<br />

Software des Huawei-<br />

Gerätes, SIP-ALG-Einstellungen<br />

zu konfigu-<br />

rieren, die Sie zum Aufbau<br />

einer Voice-over-IP-<br />

Verbindung benötigen.<br />

Für Anwendungen, die<br />

fest definierte Ports verwenden,<br />

wie etwa Programme zum<br />

Aufbau von Videokonferenzen,<br />

steht im Huawei-Router eine eigene<br />

Konfigurationsseite bereit.<br />

Auch virtuelle Serverports aktivieren<br />

Sie problemlos, sodass der<br />

UMTS-WLAN-Router für unterschiedlichste<br />

Anwendungen im<br />

Client-Bereich vorbereitet ist.<br />

Weltweiter Einsatz<br />

Wer oft im Ausland einen Internet-Zugang<br />

benötigt, beschafft<br />

sich dazu aus Kostengründen in<br />

aller Regel am Zielort eine Prepaid-SIM-Karte<br />

eines lokalen Anbieters.<br />

Der Huawei E5 bietet hier<br />

eine Option, um unter schied liche<br />

Profile anzulegen. Da er verschiedene<br />

Netze unterstützt (Quad-<br />

Band für weltweites 2G, Dualband<br />

im 2100-MHz-Band des 3G-Segments),<br />

eignet sich die Hardware<br />

A Klein, leicht und<br />

elegant präsentiert<br />

sich der Huawei E5.<br />

UMTS-wLaN-rOUTer HUaweI e5 (TYP 5832)<br />

WLAN<br />

802.11b/ g (WEP, WPA-PSK, WPA2-PSK)<br />

WWAN GSM/ GPRS/ EDGE (850/ 900/ 1800/ 1900<br />

MHz), UMTS/ HSPA (2100 MHz)<br />

Uplink<br />

max. 5,76 Mbit/ s (HSUPA)<br />

Downlink<br />

max. 7,2 Mbit/ s (HSDPA)<br />

Funktionen<br />

Hotspot<br />

maximal fünf Clients<br />

Netzwerk<br />

Firewall, DHCP-Server, DNS-Relay, NAT<br />

Fileserver Zugriff vom WLAN auf die Daten einer<br />

optionalen MicroSD-Karte<br />

Betriebszeiten<br />

Akku<br />

3,3 Watt, 4,2 Volt, 1500 mAh<br />

(Lithium-Polymer)<br />

Standby 100 Stunden 1<br />

Betrieb 4 Stunden 1<br />

Extras<br />

MicroSD-Kartenslot (32 GByte)<br />

Anschlüsse Mini-USB<br />

Größe und Gewicht<br />

Größe<br />

95,5 x 48,6 x 13,7 Millimeter<br />

Gewicht<br />

90 Gramm<br />

Preis<br />

Preis<br />

ca. 110 Euro (Amazon)<br />

1<br />

Herstellerangabe<br />

www.linux-user.de<br />

02 | 11 81


Hardware<br />

Huawei E5<br />

Der webbasierte<br />

Manager zeigt alle<br />

wichtigen Infos zur<br />

Funktion des E5 an.<br />

Erstklassige und<br />

konstante Empfangsleistung<br />

– hier unter<br />

Mandriva 2010.1 – bietet<br />

der Huawei E5.<br />

für den Einsatz auf allen Kontinenten.<br />

Im Untermenü Verbindungsaufbau<br />

| Profilverwaltung legen<br />

Sie ein neues Profil an oder<br />

verwalten bestehende. So stellen<br />

Sie durch einfachen Wechsel der<br />

SIM-Karte und Aktivieren des<br />

passenden Profils die Funktion<br />

des E5 auch im Ausland sicher.<br />

Qualitätsmanagement<br />

Im Vergleich zu mehreren dedizierten<br />

UMTS-HSPA-Karten und<br />

USB-Surfsticks für den Einsatz<br />

mit dem Notebook zeigte der<br />

Huawei E5 im Test ein erfreulich<br />

konstantes Leistungsverhalten.<br />

So beeindruckte das Gerät mit<br />

gleichbleibend hohen Datenübertragungsraten<br />

ohne unmotivierte<br />

Verbindungsabbrüche, und das<br />

sowohl im EDGE- als auch im<br />

HSPA-Betriebsmodus.<br />

Die zum direkten Leistungsvergleich<br />

herangezogenen und im<br />

gleichen Netz betriebenen Option-Cardbus-Karten<br />

zeigten selbst<br />

mit einem angeschlossenen externen<br />

Rundstrahler keine nur annähernd<br />

so ausgeglichene Leistung<br />

beim Senden und Empfangen wie<br />

der Huawei E5. Zudem fielen die<br />

Ping-Zeiten bei dem kleinen<br />

UMTS-WLAN-Router deutlich<br />

besser aus als bei Cardbus-Karten<br />

und Sticks, sodass der E5 durchaus<br />

als ernst zu nehmende Alternative<br />

für handelsübliche USB-<br />

Surfsticks und UMTS-Karten in<br />

Betracht kommt (Abbildung ).<br />

Datenspeicher<br />

USB-Speichersticks haben sich als<br />

Medium für den Datenaustausch<br />

und das Backup fest etabliert.<br />

Mobile Anwender jedoch sind<br />

froh über jede Komponente, die<br />

sie nicht mit herumtragen müssen.<br />

Der Huawei E5 entlastet den<br />

Road Warrior von den kleinen<br />

Speichermedien, indem er durch<br />

den einfachen Einschub einer<br />

handelsüblichen MicroSD-Karte<br />

zum Flash-Speicher mutiert.<br />

Den MicroSD-Speicher nutzen Sie<br />

dann entweder lokal via USB oder<br />

rechnerübergreifend im WLAN.<br />

Dazu schieben Sie lediglich eine<br />

handelsübliche MicroSD-Karte in<br />

den Slot an der linken Seite des<br />

E5 und wählen anschließend im<br />

Kon fi gu ra tions menü des Routers<br />

den Reiter microSD-Karte an. Ein<br />

nachfolgender Klick auf die<br />

Schaltfläche SD-Karten-Einstellungen<br />

oben rechts im Fenster<br />

öffnet den Konfigurationsdialog.<br />

Hier legen Sie zunächst fest, ob<br />

Sie den Speicher über den Webbrowser<br />

für alle im Netz des<br />

Huawei-Gerätes befindlichen<br />

Computer freigegeben möchten<br />

oder ob Sie ausschließlich über die<br />

USB-Schnittstelle des Routers auf<br />

die Speicherkarte zugreifen wollen.<br />

Haben Sie die Freigabe des<br />

Speichers aktiviert, dürfen Sie im<br />

Falle mehrerer Partitionen auf der<br />

MicroSD-Karte den freizugebenden<br />

Bereich festlegen. Last, but<br />

not least müssen Sie noch definieren,<br />

ob die Anwender im Netz nur<br />

eine Leseberechtigung erhalten<br />

oder den Wechselspeicher auch beschreiben<br />

dürfen (Abbildung ).<br />

Die Software erlaubt nicht den<br />

simultanen Zugriff auf die Speicherkarte<br />

sowohl über eine lokale<br />

USB-Schnittstelle als auch mithilfe<br />

des Web-Managers. Ein weiteres<br />

Manko der Serverfunktion besteht<br />

in der mangelnden Flexibilität<br />

der Browserschnittstelle. So<br />

ist es nicht möglich, komplette<br />

Ordnerhierarchien in einem<br />

Rutsch zu kopieren, was die Funktionalität<br />

des E5 als Backup-Medium<br />

bei mehreren angeschlossenen<br />

Clients stark einschränkt.<br />

Das Löschen mehrerer Dateien<br />

vom Huawei E5 gestaltet sich per<br />

Webinterface eher umständlich:<br />

Nach dem Wechsel in den entsprechenden<br />

Ordner wählen Sie<br />

die zu löschenden Daten einzeln<br />

durch Setzen eines Häkchens vor<br />

INFO<br />

1] Huawei E5: http://www.huaweidevice.com/<br />

worldwide/productFeatures.do?pinfoId=<br />

2558&directoryId=2462&treeId=462<br />

82 02 | 11<br />

www.linux-user.de


Huawei E5<br />

Hardware<br />

jeder zu entfernenden Datei aus.<br />

Befinden sich einige hundert Dateien<br />

in einem Ordner, artet das<br />

schnell zu einer Geduldsprobe aus.<br />

Daher empfiehlt es sich bei großen<br />

zu sichernden und freizugebenden<br />

Datenbeständen, den<br />

Huawei E5 zunächst als lokalen<br />

Datenträger an der USB-Schnittstelle<br />

einzurichten, um dann ganze<br />

Verzeichnisbäume per Drag & Drop<br />

zu kopieren. Anschließend stehen<br />

diese Datenbestände nach Aktivieren<br />

der Freigabe allen angeschlossenen<br />

Rechnern zur Verfügung.<br />

Fazit<br />

Beim Huawei E5 stimmt fast alles:<br />

das einfache Bedienkonzept, die<br />

durchdachte Konfiguration, das<br />

solide Gehäuse und der nahezu<br />

perfekt auf den Einsatzbereich abgestimmte<br />

Funktionsumfang.<br />

Lediglich das etwas umständliche<br />

Interface des Dateiservers und die<br />

daraus resultierenden Einschränkungen<br />

beim Verwalten größerer<br />

Datenarchive fallen unangenehm<br />

auf. Mobilen Anwendern, die den<br />

Netzzugriff bislang mithilfe eines<br />

USB-Surfsticks oder einer Cardbus-UMTS-Karte<br />

realisiert haben,<br />

bietet der Huawei E5 zudem aufgrund<br />

seines ausgeglichenen Leistungsverhaltens<br />

eine ernsthafte<br />

Alternative. (agr) ■<br />

Auch die Betriebsmodi<br />

für die Speicherkarte<br />

legen Sie im<br />

Webmanager fest.<br />

7,90€<br />

100 Seiten Linux<br />

+ DVD<br />

Entdecken Sie die wunderbare Welt<br />

der Apps und Smartphones!<br />

Mit zahlreichen Gerätetests und<br />

Workshops zu Android und anderen<br />

mobilen Betriebssystemen.<br />

Jetzt bestellen:<br />

www.linuxuser.de/spezial<br />

Tel.: 089-9934110, Fax: 089-99341199, E-Mail: order@linuxnewmedia.de<br />

www.linux-user.de<br />

02 | 11 83


hardware<br />

Intel „Sandy Bridge“<br />

Intels neue<br />

Prozessorarchitektur „Sandy Bridge“<br />

Brücken<br />

aus Sand<br />

© Intel<br />

Obwohl die Entwicklung in der Computerbranche meist rasend schnell zu verlaufen scheint,<br />

haben Prozessorarchitekturen oft ein erstaunlich langes Leben. Mit „Sandy Bridge“ führt Intel<br />

nun nach rund zehn Jahren wieder einmal eine komplett neue ein. Daniel Kottmair<br />

readMe<br />

Intels neue Prozessorgeneration<br />

Sandy Bridge<br />

liefert überzeugende<br />

Leistung zum erschwinglichen<br />

Preis und hat<br />

dank neuer Befehle in<br />

Zukunft noch Leistungsspielraum<br />

nach oben.<br />

Glossar<br />

TDP: Thermal Design<br />

Power. Typischer Wert für<br />

die Verlustleistung eines<br />

Prozessors (oder anderer<br />

elektronischer Bauteile),<br />

auf dessen Grundlage<br />

die Kühlung des<br />

Sys tems ausgelegt wird.<br />

Bei „Sandy Bridge“ handelt es<br />

sich um Intels erste wirklich neue<br />

Prozessorarchitektur seit dem<br />

Pentium 4 vor zehn Jahren. Die<br />

CPUs der offiziell als „Core i7<br />

Second Generation“ bezeichneten<br />

Serie tragen deshalb auch vierstellige<br />

Typbezeichnungen statt der<br />

dreistelligen Modellnummern der<br />

bisherigen Prozessoren.<br />

Freilich erfand der Halbleitergigant<br />

für Sandy Bridge das Rad<br />

nicht neu, auf den 32-Nanometer-<br />

Chips finden sich auch bekannte<br />

und bewährte Techniken, teilweise<br />

auch in verbesserter Ausführung.<br />

Die „Brücke aus Sand“<br />

(sprich: Silizium) kommt nicht<br />

von ungefähr: Im CPU-Teil finden<br />

sich sowohl Techniken der Corei7-Generation<br />

als auch des P6-<br />

Nachfolgers „Netburst“. Daneben<br />

flossen auch Erfahrungen aus der<br />

von Intel ursprünglich als GPU<br />

geplanten und später als Numbercruncher<br />

umetikettierten<br />

„Larrabee“-Serie mit ihren zig<br />

Kernen in Intels neueste CPUs<br />

ein. All das verheiratet Intel mit<br />

der aktuellsten Ausführung seiner<br />

integrierten Chipsatzgrafik, die<br />

dem Hersteller zufolge zumindest<br />

dedizierte Einsteiger-Grafikkarten<br />

schlagen soll.<br />

Auf den ersten Blick (Abbildung<br />

) hat sich wenig geändert:<br />

Bis zu vier Kerne, 256 KByte L2-<br />

Cache pro Kern, Hyperthreading,<br />

integrierter Zweikanal-Speichercontroller<br />

und PCI-Express-Interface,<br />

8 MByte L3-Cache, 3.4 GHz<br />

Taktrate, 95 Watt TDP – das<br />

kennt man alles schon von der<br />

Vorgänger-Generation. Die wirklichen<br />

Neuerungen zeigen sich erst<br />

beim Blick unter die Haube.<br />

Neuerungen<br />

Die sicherlich größte Neuerung<br />

stellt das mit 256 Bit gegenüber<br />

den Vorgängern doppelt so breite<br />

Vektor-Register dar. Mit den neuen<br />

AVX-SIMD-Befehlen (siehe<br />

Kasten Advanced Vector Extensions)<br />

verrechnet man damit<br />

8 Fließkommazahlen doppelter<br />

Präzision oder 16 in einfacher<br />

Präzision in einem Rutsch. Das<br />

funktioniert, wie man es von anderen<br />

Architekturen (PA-RISC,<br />

Itanium, SPARC64, PowerPC) teils<br />

schon seit Jahrzehnten kennt,<br />

auch endlich nicht-destruktiv mit<br />

mehreren Operanden sowie Addition<br />

und Multiplikation in einem<br />

Befehl (FMA).<br />

Ebenfalls komplett neu ist ein<br />

schneller Ring-Bus, der den L3-<br />

Cache, die CPU-Kerne, die GPU<br />

und den „Uncore“-Bereich verbin-<br />

86 02 | 11<br />

www.linux-user.de


Intel „Sandy Bridge“<br />

hardware<br />

det. Letzterer bildet die Schnittstelle<br />

zum Rest des Systems. Diesen<br />

bereits im Larrabee erfolgreich<br />

erprobten Ansatz vergleicht<br />

Intel mit einem Paternoster, auf<br />

den die Daten auf- und an der<br />

richtigen Stelle wieder abspringen.<br />

Der Bus besteht eigentlich<br />

aus vier Ringen (Data, Request,<br />

Acknowledge, Snoop), die zusammen<br />

mit einem eigenen Protokoll<br />

auch die Cache-Kohärenz sicherstellen.<br />

Der Vorteil zum bisherigen<br />

Crossbar-Switch-Ansatz: Es<br />

lassen sich beliebig viele Stationen<br />

(sprich: CPU-Kerne) hinzufügen,<br />

ohne dafür den Ringbus anpassen<br />

zu müssen.<br />

Der „Trace Cache“ des Pentium 4<br />

erlebt in Sandy Bridge einen zweiten<br />

Frühling. Der neue Cache puffert<br />

als Micro-Ops (uOps) decodierte<br />

x86-Instruktionen. Das erhöht<br />

den Datendurchsatz und verbessert<br />

die Latenz, da wiederkehrende<br />

Befehle nun nicht mehr aus<br />

dem L1-Befehls-Cache geladen<br />

und erst decodiert werden müssen.<br />

Obendrein spart es Strom, da<br />

der Befehlsdecoder sich derweil<br />

schlafen legen kann. Intel nennt<br />

den neuen Trace-Cache L0, weil er<br />

quasi unter dem L1-Befehls-Cache<br />

sitzt (aber dennoch Teil von diesem<br />

ist). Bei einer Kapazität von<br />

1500 Micro-Ops findet sich laut<br />

Intel in 80 Prozent aller Fälle die<br />

Instruktion bereits decodiert im<br />

L0-Cache. Das ermöglicht einen<br />

besseren dauerhaften Durchsatz<br />

von 4 Micro-Ins truktionen pro<br />

Takt („4-issue“).<br />

Auch die Sprungvorhersage<br />

(Branch Prediction Unit, BPU)<br />

hat Intel verbessert. Moderne<br />

Prozessoren schauen per Lookahead-Buffer<br />

quasi in die Zukunft<br />

und versuchen, Sprungziele vorherzusagen.<br />

Verschätzt sich die<br />

CPU, muss sie die gesamte Pipeline<br />

mit bis zu 100 „In-Flight-<br />

In structions“ leeren, den Code für<br />

das korrekte Sprungziel neu laden<br />

und ausführen (eine sogenannte<br />

„Bubble“). Durch Verkürzen<br />

der Sprungvektoren auf die<br />

relative Entfernung statt der absoluten<br />

Speicherposition kann<br />

Sandy Bridge mehr Sprungadressen<br />

im Branch Target Buffer<br />

(BTB) vorhalten, da die meisten<br />

Schleifen relativ klein ausfallen.<br />

Mehr History-Bits ermöglichen,<br />

die Wahrscheinlichkeit eines<br />

Sprungs nun auch besser zu bestimmen,<br />

die Confidence-Bits<br />

können nun obendrein für mehrere<br />

Sprungadressen gelten.<br />

Neu arrangiert<br />

Per Reorder-Buffer (ROB) arrangiert<br />

der Prozessor Befehlsfolgen<br />

zur effizienteren Abarbeitung.<br />

Diesen hat Intel ebenfalls verbessert:<br />

Es gibt nun wie beim Pentium<br />

4 ein PRF (Physical Register<br />

File). Das erleichtert das Verwalten<br />

vieler Befehle, da nur Vektoren<br />

ins PRF geändert werden<br />

müssen, zudem benötigt auch<br />

Die neue Befehlserweiterung AVX kombiniert Ideen<br />

aus Intels LRBNI („Larrabee New Instructions“) und<br />

AMDs SSE5. Die 16 XMM-Register von SSE wurden<br />

in der Breite auf 256 Bit verdoppelt und heißen nun<br />

YMM; die SSE-Befehle nutzen nur die untere Hälfte<br />

der Register. Daneben macht eine Vielzahl von Instruktionen<br />

das nicht-destruktive Rechnen mit mehreren<br />

Operanden möglich, was Register-Befehle zum<br />

Sichern der Operanden einspart. Als dritte Neuerung<br />

muss die Anordnung der SIMD-Daten zur flüssigen<br />

Abarbeitung (Alignment) nun nicht mehr so strikt<br />

sein. Drei Byte große VEX-Präfixe signalisieren der<br />

CPU, dass es sich bei der folgenden Instruktion um<br />

ein AVX-Kommando handelt, und mit wie vielen und<br />

welchen Operanden der Befehl rechnet. Ähnlich wie<br />

bei AMD64 muss das Betriebssystem explizit AVX<br />

unterstützen, anderenfalls funktioniert der Prozessor<br />

wie eine herkömmliche CPU und kann AVX-Software<br />

AVX dieses Feature. Insider vermuten,<br />

dass Intel den ROB auch<br />

deswegen überarbeitet hat, um einen<br />

bekannten Hotspot besser<br />

über den Prozessorkern zu verteilen,<br />

was höheren Takt erlaubt.<br />

Nicht zuletzt hat Intel auch den<br />

Turbo-Modus für CPU und GPU<br />

modernisiert („Turbo 2.0“). Statt<br />

wie bisher einfach bei Erreichen<br />

der maximalen TDP herunterzutakten,<br />

orientiert sich der Modus<br />

nun auch an der tatsächlichen<br />

Temperatur. Intel vergleicht das<br />

mit einem Kessel Wasser, den<br />

man auf den Herd stellt: Auch bei<br />

voller Heizleistung kocht das<br />

Wasser erst nach einiger Zeit. Bis<br />

es so weit ist, übertaktet „Turbo<br />

2.0“ munter weiter und darf dabei<br />

sogar die TDP kurzzeitig überschreiten.<br />

Erst bei Erreichen der<br />

kritischen Temperatur taktet die<br />

Der Sandy Bridge-<br />

Die mit seinen einzelnen<br />

Komponenten.<br />

adVanCed VeCtor eXtensions<br />

nicht verarbeiten. Linux kann schon seit Kernel<br />

2.6.30 (Juni 2009) mit AVX umgehen, Windows ab<br />

Windows 7 respektive Windows Server 2008 SP1.<br />

AVX rechnet ausschließlich mit Fließkommazahlen<br />

und schließt gleichzeitige Integer-Operationen aus.<br />

Der Grund dafür: Statt das Fließkomma-Rechenwerk<br />

auf 256 Bit zu verbreitern, kombiniert Intel bei AVX<br />

die 128 Bit breite SIMD-Fließkomma-Unit mit den<br />

128 Bit der SIMD-Integer-Unit. Viele Programme setzen<br />

jedoch auch stark Ganzzahlen ein. Wo sie hohe<br />

Präzision und ellenlange Mantissen nicht brauchen,<br />

setzen Entwickler gerne auf schnelle Fixed-Point-<br />

Arithmetik über Integer, etwa beim beliebten H.264-<br />

Encoder x264. AMD agiert hier schlauer: Deren mit<br />

„Bulldozer“ kommende Befehlserweiterung XOP<br />

bleibt zwar in der Struktur weitgehend zu AVX befehlskompatibel,<br />

soll jedoch neben FMA4 auch<br />

eigene neue Integer-Instruktionen umfassen.<br />

www.linux-user.de<br />

02 | 11 87


hardware<br />

Intel „Sandy Bridge“<br />

Glossar<br />

OpenCL: Open Computing<br />

Language. Eine von<br />

AMD, Apple, IBM, Intel<br />

und Nvidia gemeinsam<br />

spezifizierte Programmierplattform,<br />

vorrangig<br />

für GPUs, aber auch für<br />

CPUs und DSPs, welche<br />

die Nutzung der Chips<br />

für rechenintensive Aufgaben<br />

ermöglicht.<br />

QPI: QuickPath Interconnect.<br />

Eine Punkt-zu-<br />

Punkt-Verbindung für die<br />

Kommunikation zwischen<br />

Prozessoren untereinander<br />

sowie zwischen<br />

Prozessoren und<br />

Chipsatz. Löste im<br />

Core i7 Intels Front-<br />

Side-Bus ab.<br />

CPU schrittweise herunter. Da<br />

sich in den meisten Programmen<br />

rechenintensiver und weniger anspruchsvoller<br />

Code abwechseln,<br />

funktioniert dieser Ansatz gut.<br />

Der Grafikkern residiert nun wie<br />

beim „Pinetrail“-Atom direkt auf<br />

dem Prozessor-Die. Dies ermöglicht<br />

eine engere Integration von<br />

GPU und CPU: So können etwa<br />

beide auf den L3-Cache (von Intel<br />

nur noch LLC, also „Last Level<br />

Cache“, genannt) zugreifen. Intel<br />

verspricht eine gegenüber dem<br />

Vorgänger GMA HD verdoppelte<br />

Leistung. Ärgerlicherweise hat Intel<br />

der neuen GPU keine OpenCL-<br />

Unterstützung spendiert, auch<br />

neue Shader-Features wie Tesselation<br />

(OpenGL 4.0 / DirectX 11)<br />

sucht man vergeblich. OpenGL<br />

2.1 und DirectX 10.1 bleiben das<br />

Höchste der Gefühle.<br />

Die integrierte Media-Engine<br />

überarbeitete Intel ebenfalls<br />

gründlich. Sandy Bridge kann<br />

zwar immer noch zwei H.264-<br />

Streams gleichzeitig decodieren,<br />

erledigt dies jedoch in der Media-<br />

Engine statt über die Shader des<br />

Grafikkerns. Das ist wesentlich<br />

energieeffizienter und lässt den<br />

Grafikkern für andere Aufgaben<br />

frei. Intel verspricht auch eine<br />

doppelt so hohe Encoding-Leistung<br />

wie zuvor, dies dann aber in<br />

Kombination mit dem Grafikkern.<br />

Zu guter Letzt wäre noch die<br />

Crypto-Engine AES-NI zu nennen,<br />

deren Leistung Intel in der<br />

Sandy-Bridge-Architektur deutlich<br />

verbessert haben will, insbesondere<br />

bei RSA und SHA-1.<br />

sandy-BridGe-Modelle<br />

Bezeichnung CPU-Takt (GHz)<br />

Basis/ Turbo<br />

Cores /<br />

Threads<br />

L3-Cache TDP erscheint Preis (US-<br />

Dollar)<br />

Core i7 2600K 3,4 / 3,8 4 / 8 8 MByte 95 W Januar 2011 317<br />

Core i7 2600 3,4 / 3,8 4 / 8 8 MByte 95 W Januar 2011 294<br />

Core i7 2600S 2,8 / 3,8 4 / 8 8 MByte 65 W Januar 2011 306<br />

Core i5 2500K 3,3 / 3,7 4 / 4 6 MByte 95 W Januar 2011 216<br />

Core i5 2500 3,3 / 3,7 4 / 4 6 MByte 95 W Januar 2011 205<br />

Core i5 2500S 2,7 / 3,7 4 / 4 6 MByte 65 W Januar 2011 216<br />

Core i5 2500T 2,3 / 3,3 4 / 4 6 MByte 45 W Januar 2011 216<br />

Core i5 2400 3,1 / 3,4 4 / 4 6 MByte 95 W Januar 2011 184<br />

Core i5 2400S 2,5 / 3,3 4 / 4 6 MByte 65 W Januar 2011 195<br />

Core i5 2300 2,8 / 3,1 4 / 4 6 MByte 95 W Januar 2011 177<br />

Core i5 2390T 2,7 / 3,5 2 / 4 3 MByte 35 W Februar 2011 195<br />

Core i3 2120 3,3 / – 2 / 4 3 MByte 65 W Februar 2011 138<br />

Core i3 2100 3,1 / – 2 / 4 3 MByte 65 W Februar 2011 117<br />

Core i3 2100T 2,5 / – 2 / 4 3 MByte 35 W Februar 2011 127<br />

Pentium G850 2,9 / – 2 / 2 3 MByte 65 W Q2/ 2011 86<br />

Pentium G840 2,8 / – 2 / 2 3 MByte 65 W Q2/ 2011 75<br />

Pentium G620 2,6 / – 2 / 2 3 MByte 65 W Q2/ 2011 64<br />

Pentium G620T 2,2 / – 2 / 2 3 MByte 35 W Februar 2011 70<br />

Sockel und Varianten<br />

Zusammen mit Sandy Bridge<br />

führt Intel nach LGA1366 (2008)<br />

und LGA1156 (2009) schon wieder<br />

einen neuen Sockel und Chipsatz<br />

ein: Der neue LGA1155 weist<br />

einen Pin weniger auf als sein<br />

Vorgänger, die zwei neuen Chipsätze<br />

H67 und P57 peilen einerseits<br />

den Einsteiger-Markt und<br />

andererseits den „Top-Midrange-<br />

Consumer“ an. Damit zeigt Intel<br />

dem Upgrade-Markt einmal mehr<br />

die kalte Schulter. Bei AMD kann<br />

man auch aktuellste Sechskern-<br />

Chips noch in AM2-Motherboards<br />

von 2006 stecken – ein passendes<br />

BIOS-Upgrade des Board-Herstellers<br />

vorausgesetzt.<br />

Die ersten Sandy-Bridge-CPUs<br />

gelten offiziell als Nachfolger der<br />

LGA1156-„Clarkdales“ und<br />

„Lynn fields“ (bis Core i7 8xx) im<br />

sogenannten Value-Segment. Den<br />

mit LGA1366 (Core i7 9xx) bedienten<br />

High-End-Consumer-Sektor<br />

will Intel erst 2012 mit der<br />

neuen Architektur beliefern. Mit<br />

dem Sandy Bridge EP (Dual-Socket)<br />

beziehungsweise EX (Quad-<br />

Socket) soll im zweiten Halbjahr<br />

2011 eine Server-Variante ohne<br />

Grafik mit bis zu acht Kernen und<br />

16 MByte L3-Cache erscheinen,<br />

ebenfalls mit neuem Sockel:<br />

LGA2011 bietet Platz für vier<br />

Speicherkanäle und zwei QPI-<br />

Links in Version 1.1.<br />

Intel bringt Sandy Bridge Anfang<br />

Januar in Core-i5- und -i7-<br />

Varianten heraus, Ende Februar<br />

kommen dann die Core i3 dazu,<br />

noch etwas später Billigvarianten<br />

unter dem Pentium-Label (siehe<br />

Tabelle Sandy-Bridge-Modelle).<br />

Die bisherige Unterscheidung behält<br />

Intel bei, inklusive Ausnahmen<br />

bei einigen Topmodellen:<br />

• Doppelkern mit Hyperthreading<br />

und wenig Cache, aber<br />

ohne Turbo beim i3,<br />

• Vierkern ohne Hyperthreading<br />

mit mehr Cache beim i5,<br />

• Vierkern mit Hyperthreading<br />

und maximalgroßem Cache<br />

beim Core i7. Dem Sandy-<br />

Bridge-Pentium fehlen sowohl<br />

Hyperthreading als auch der<br />

Turbo-Modus. Die für Übertaktungswillige<br />

gedachten, nur wenig<br />

teureren K-Varianten verfügen<br />

über einen frei einstellbaren<br />

Multiplikator. Die Preise (in<br />

10 000er-Stückzahlen) bewegen<br />

sich zwischen 64 US-Dollar für<br />

den günstigsten Pentium und<br />

317 Dollar für den Core i7<br />

2600K. Damit liegt selbst der<br />

teuerste Sandy Bridge preislich<br />

nur auf dem Niveau eines<br />

Core i7 870.<br />

Core-i7-Mobilvarianten von<br />

Sandy Bridge sollen noch im<br />

Januar ebenfalls erscheinen, im<br />

Februar folgen weitere sowie<br />

mobile Core i5. Der Basistakt<br />

reicht hier je nach Variante von 2<br />

bis 2,7 GHz, der Turbo-Takt von<br />

3 bis 3,5 GHz. Die TDP beträgt je<br />

info<br />

[1] Intel Linux Graphics Paket 2010Q3:<br />

http:// intellinuxgraphics. org/ 2010Q3. html<br />

88 02 | 11<br />

www.linux-user.de