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 QtApplikationen<br />
oder selbst EricPlugins<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 StandardPlugin<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 />
EricMaskottchen – 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 />
DropdownMenü 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 />
SyntaxHighlighting,<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 PDFDatei, HTML, RTF oder<br />
als TeXDokument.<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 DebuggingModus<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 />
AnalyseListen (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 />
SoftwareEntwicklung.<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 StandardHierarchiestruktur<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 StandardDistribution.<br />
Um also beispielsweise die Funktion<br />
für den QuellcodeChecker<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 CodeProfiling<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 />
CodeRefactoring, 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 StandardElemente,<br />
eine Gültigkeitsprüfung, ein Testfeld,<br />
eine Undo/ RedoFunktion<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 />
GUIFramework 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 GUIFramework, verfügt<br />
die Applikation über eine<br />
Reihe von Autopiloten zum Generieren<br />
von <strong>Python</strong>Code, mit dem<br />
Sie QtElemente über die PyQt<br />
Bindings [12] ansprechen. Möchten<br />
Sie eine Stufe weitergehen,<br />
rufen Sie den Qt4Designer 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 QtApplikationen<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 EinzelpersonProjekte<br />
wie dieses – an der Dokumentation,<br />
die sich bisher rein auf das<br />
Niveau der QuellcodeDokumentation<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 />
EricMailingliste [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 />
Qt4Bibliothek für GUIWidgets.<br />
Diese besonders enge Bindung<br />
macht Eric besonders interessant<br />
für Entwickler, die selbst<br />
QtApplikationen auf der Grundlage<br />
von <strong>Python</strong> erstellen wollen.<br />
Zwei Anwendungsstudien auf der<br />
Homepage des Projektes, die Implementation<br />
eines LogParsers<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 TabulatorWeite,<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 GanzzahlObjekt 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 />
DefaultArgumente werden nur<br />
einmal erzeugt, nämlich während<br />
der Definition der Funktion oder<br />
Methode. Daher bleibt das ListenObjekt<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 NullWerte (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 whileBedingungen<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 ContainerTyp ä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 PersonenDatensatz<br />
im Dictionary<br />
person gibt. (Der DictionaryZugriff<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 DictionaryZugriff,<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 DatenbankVerbindungen,<br />
dann sollten Sie diese nach der<br />
Verwendung mit einem try/<br />
finally oder einem withKonstrukt<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“ exceptAnweisungen wie in<br />
Listing 16. Der Hintergedanke des<br />
ProgrammAutors 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 />
exceptZweig auch Schreibfehler<br />
in Form von NameError und AttributeErrorAusnahmen<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 tryBlock. 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 AusnahmeObjekt<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 AusnahmeObjekt<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 exceptZweigen 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 exceptZweig 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 evalAusdruck 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 Modulglobale 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 />
XWert 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 />
ParserFrame works für <strong>Python</strong> [6].<br />
Interessanterweise findet sich im<br />
dort genannten PyParsingPaket<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 />
JSONFormats [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 lsBefehl, ohne<br />
Interpretation durch eine Shell.<br />
Im subprocessModul 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 forSchleife 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 UnicodeStrings, 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 StringObjekt 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 ifAnwei<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 ZeichenkettenMethoden,<br />
um festzustellen, ob ein<br />
String mit einer bestimmten Zeichenkette<br />
beginnt beziehungsweise<br />
endet. Das demonstrieren<br />
die beiden weiteren ifAnweisungen<br />
des Listings.<br />
Wichtig für robuste <strong>Python</strong>Programme<br />
ist auch die Unterscheidung<br />
zwischen ByteStrings und<br />
UnicodeStrings. 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>UnicodeFAQ [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 />
LinuxMagazin [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 OpenSourceWerkzeuge,<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 ifAnweisungen. (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