anderes, zunehmend interessantes Anwendungsgebiet ist die … · 2017-05-21 · anderes, zunehmend...

37
freies Magazin Juni 2012 Topthemen dieser Ausgabe Ubuntu und Kubuntu 12.04 LTS Seite 3 Als äußerst geschliffenes Produkt präsentiert sich das neue Ubuntu 12.04 LTS „Precise Pango- lin“, wie es sich für eine Distribution mit mehrjähriger Stabilitätsgarantie gehört. Der Artikel soll einen Überblick über die Neuerungen der beiden Version mit Unity und KDE als Desktopmana- ger geben. (weiterlesen) Routino Seite 22 Kaum ein Gemeinschaftsprojekt hat in kurzer Zeit soviel Zuspruch und Unterstützung erhalten wie OpenStreetMap. Die weltweite Karte hat in vielen Ländern, darunter auch Deutschland, einen Detailreichtum erlangt, der kommerzielle Kartenanbieter schlecht aussehen lässt. Ein anderes, zunehmend interessantes Anwendungsgebiet ist die Navigation auf Basis der OSM- Daten. Im Wiki von OSM werden verschiedene Programme und Web-Seiten vorgestellt. Dieser Artikel greift ein Programm heraus, das etwas unglücklich im Wiki als „web-based router“ be- zeichnet wird: Routino. (weiterlesen) Trine 2 Seite 28 Genau ein Jahr, nachdem das Erfolgsspiel Trine im Humble Frozenbyte Bundle erschienen ist, hat der finnische Spieleentwickler Frozenbyte den zweiten Teil für Linux im April 2012 vorgestellt. Der Artikel wirft einen Blick auf Trine 2 und vergleicht ihn mit seinem Vorgän- ger. (weiterlesen) © freiesMagazin CC-BY-SA 3.0 Ausgabe 06/2012 ISSN 1867-7991

Transcript of anderes, zunehmend interessantes Anwendungsgebiet ist die … · 2017-05-21 · anderes, zunehmend...

  • freiesMagazin Juni 2012

    Topthemen dieser Ausgabe

    Ubuntu und Kubuntu 12.04 LTS Seite 3

    Als äußerst geschliffenes Produkt präsentiert sich das neue Ubuntu 12.04 LTS „Precise Pango-lin“, wie es sich für eine Distribution mit mehrjähriger Stabilitätsgarantie gehört. Der Artikel solleinen Überblick über die Neuerungen der beiden Version mit Unity und KDE als Desktopmana-ger geben. (weiterlesen)

    Routino Seite 22Kaum ein Gemeinschaftsprojekt hat in kurzer Zeit soviel Zuspruch und Unterstützung erhaltenwie OpenStreetMap. Die weltweite Karte hat in vielen Ländern, darunter auch Deutschland,einen Detailreichtum erlangt, der kommerzielle Kartenanbieter schlecht aussehen lässt. Einanderes, zunehmend interessantes Anwendungsgebiet ist die Navigation auf Basis der OSM-Daten. Im Wiki von OSM werden verschiedene Programme und Web-Seiten vorgestellt. DieserArtikel greift ein Programm heraus, das etwas unglücklich im Wiki als „web-based router“ be-zeichnet wird: Routino. (weiterlesen)

    Trine 2 Seite 28

    Genau ein Jahr, nachdem das Erfolgsspiel Trine im Humble Frozenbyte Bundle erschienenist, hat der finnische Spieleentwickler Frozenbyte den zweiten Teil für Linux im April 2012vorgestellt. Der Artikel wirft einen Blick auf Trine 2 und vergleicht ihn mit seinem Vorgän-ger. (weiterlesen)

    © freiesMagazin CC-BY-SA 3.0 Ausgabe 06/2012 ISSN 1867-7991

    http://creativecommons.org/licenses/by-sa/3.0/deed.de

  • MAGAZIN

    Editorial

    Spielen unter LinuxVor wenigen Tagen erschien das Humble IndieBundle V [1] und wirft damit wieder einmal dieFrage nach Linux als Spieleplattform auf.

    Der Hintergrund: Das erste Humble Bundle er-schien vor gut zwei Jahren im Mai 2010 und botfünf Spiele diverser unabhängiger Entwicklerfir-men zum Selbstbestimmungspreis an. Die Be-sonderheit: Die Spiele standen nicht nur wie ge-wöhnlich unter Windows zur Verfügung, sondernebenso unter Mac OS X und – was wesentlichinteressanter war – auch unter Linux.

    Im Laufe der zwei Jahre gab es immer mehr Hum-ble Bundles (hier ein paar Statistiken [2]) in ver-schiedenen Ausprägungen. Die letzten Monatehäuften sich die Veröffentlichungen aber und dieQualität der Spiele sank etwas, sodass sich et-was Unmut breit machte. Als das letzte HumbleBotanicula Bundle auch noch ein Spiel lieferte,welches auf Adobe Air aufsetzt, welches unterLinux schon seit längerem nicht mehr von Adobegepflegt wird, fühlten sich die Linux-Anhängerdoch etwas veralbert. Im neuesten Humble Bund-le treiben die Macher das Ganze mit dem SpielLimbo auf die Spitze: Denn effektiv wird Wine mitausgeliefert, in dem Limbo dann läuft.

    Da stellt sich die Frage: Was erwarten Spieler un-ter Linux von den Spieleherstellern? Muss es im-mer eine native Version sein, die extra für Linuxangepasst werden muss? Eine native Version hat

    sicherlich ihre Vorteile, wie der Artikel zu Trine 2zeigt, kostet aber natürlich auch viel Know Howsowie natürlich Geld und noch mehr Zeit. Oderreicht vielleicht schon eine Flash-Version? Natür-lich handelt es sich um eine unfreie Lösung, aberes ist besser als gar keine Linux-Unterstützung.

    Man könnte also froh sein, dass die Macher vonLimbo sich zumindest ansatzweise angestrengtund die Linux-Nutzer auf ihrem Schirm haben.Die Frage ist, ob das stimmt. Und ebenfalls fragtman sich als Spieler unter Linux, ob man alleshinnehmen muss, was einem vorgesetzt wird, nurweil man dankbar sein soll, nicht übersehen wor-den zu sein.

    Es gibt gewiss keine einfache Antwort auf die-se Fragen, aber zumindest zeigen die Spiele ausdem Humble Bundle immer wieder, dass es im-mer mehr Spielerhersteller gibt, die zumindestvon Linux gehört haben – auch wenn Tim Schae-fer im Ankündigungsvideo einen anderen Ein-druck vermittelt [3].

    Wie stehen Sie denn zu dem Thema? Ist derLinux-Desktop eine realistische Alternative zuWindows, wenn es um Spiele geht? Und fallsja, reicht Wine aus oder sollte es mehr na-tive Unterstützung seitens der Spieleherstellergeben? Schreiben Sie uns Ihre Meinung unter

    oder in den Kom-mentaren über den Link am Ende der Seite.

    Ihre freiesMagazin-Redaktion

    InhaltLinux allgemeinUbuntu und Kubuntu 12.04 LTS S. 3Der Mai im Kernelrückblick S. 11

    AnleitungenObjektorientierte Programmierung: Teil 4 –Strategie, wechsel Dich!

    S. 13

    Cloud-Backup mit Bordmitteln S. 17

    SoftwareRoutino S. 22Trine 2 S. 28

    CommunityRezension: LPIC-1 – Sicher zur erfolgrei-chen Linux-Zertifizierung

    S. 33

    MagazinLeserbriefe S. 35Veranstaltungen S. 36Vorschau S. 36Konventionen S. 36Impressum S. 37

    LINKS[1] http://www.humblebundle.com/[2] http://cheesetalks.twolofbees.com/humble/[3] http://www.youtube.com/watch?v=zwANFc7D1

    ac

    Das Editorial kommentieren

    © freiesMagazin CC-BY-SA 3.0 Ausgabe 06/2012 2

    http://www.humblebundle.com/http://cheesetalks.twolofbees.com/humble/http://www.youtube.com/watch?v=zwANFc7D1achttp://www.humblebundle.com/http://cheesetalks.twolofbees.com/humble/http://www.youtube.com/watch?v=zwANFc7D1achttp://www.youtube.com/watch?v=zwANFc7D1achttp://www.freiesmagazin.de/comment/reply/275?edit[subject]=Editorial#comment-formhttp://creativecommons.org/licenses/by-sa/3.0/deed.de

  • DISTRIBUTION

    Ubuntu und Kubuntu 12.04 LTS von Hans-Joachim Baader

    A ls äußerst geschliffenes Produktpräsentiert sich das neue Ubuntu12.04 LTS „Precise Pangolin“, wie essich für eine Distribution mit mehrjährigerStabilitätsgarantie gehört. Der Artikel solleinen Überblick über die Neuerungen der bei-den Version mit Unity und KDE als Desktop-manager geben.

    Redaktioneller Hinweis: Der Artikel „Ubuntuund Kubuntu 12.04 LTS“ erschien erstmals beiPro-Linux [1].

    VorwortZwei Jahre nach Ubuntu 10.04 LTS [2] ist Ubuntu12.04 LTS die nächste Version mit einer auf fünfJahre ausgedehnten Unterstützung (Long TermSupport, LTS). Diese fünf Jahre Unterstützunggelten jetzt ebenso für den Desktop, sowohl fürUnity als auch für KDE und die meisten ande-ren Varianten. Die neue Version ist nach Anga-ben des Herstellers die bisher umfangreichste.Nicht nur viele neue Funktionen, sondern auch ei-ne verbesserte Qualitätssicherung sollen Ubuntu12.04 LTS auszeichnen.

    Die neue Version bringt, in aller Kürze zu-sammengefasst, den Kernel Linux 3.2.14, dieneuesten Versionen der Desktopumgebun-gen, viele neue bzw. aktualisierte Programme,das Head-Up-Display (HUD) für Unity, Server-Erweiterungen vor allem im Bereich Virtuali-sierung und Cloud, aber auch Varianten für

    Unity-Übersichtsseite mit Linsen.

    ARM-basierte Geräte. Im Rahmen des Mögli-chen sollen die Änderungen genauer betrachtetwerden. Dabei wird sich der Artikel auf die Desk-topumgebungen Unity und KDE beschränken.

    Wie immer sei angemerkt, dass es sich hiernicht um einen Test der Hardwarekompatibilitäthandelt. Es ist bekannt, dass Linux mehr Hard-ware unterstützt als jedes andere Betriebssys-

    © freiesMagazin CC-BY-SA 3.0 Ausgabe 06/2012 3

    http://www.pro-linux.de/artikel/2/1567/ubuntu-und-kubuntu-1204-lts.htmlhttp://www.freiesmagazin.de/freiesMagazin-2010-06http://www.freiesmagazin.de/mobil/2012-06-bilder/ubuntu1204_linsen.jpghttp://www.freiesmagazin.de/mobil/2012-06-bilder/ubuntu1204_linsen.jpghttp://creativecommons.org/licenses/by-sa/3.0/deed.de

  • DISTRIBUTION

    tem, und das überwiegend bereits im Standard-Lieferumfang. Ein Test spezifischer Hardware wä-re zu viel Aufwand für wenig Nutzen. Falls manauf Probleme mit der Hardware stößt, stehen dieWebseiten von Ubuntu zur Lösung bereit.

    Da eine Erprobung auf realer Hardware nicht dasZiel des Artikels ist, werden für den Artikel zweiidentische virtuelle Maschinen, 64 Bit, unter KVMmit jeweils 768 MB RAM verwendet.

    InstallationUbuntu wird meist von einem Live-System aus,das als CD und umfangreichere DVD verfüg-bar ist, installiert. Die DVD wurde gegenüberfrüheren Versionen deutlich verkleinert und istnur noch 1,5 GB groß, was das Herunterladenerleichtert. Ferner ist eine Installation von derAlternate-CD möglich, die im Textmodus läuft,aber wesentlich mehr Flexibilität als die grafischeInstallation besitzt.

    Für Ubuntu 12.04 [3] werden nach wie vor384 MB RAM für den Unity-Desktop als Mindest-anforderung angegeben [4]. Mehr ist allerdingsbesser. Auch für Kubuntu sollten es 512 MB RAModer mehr sein. Xubuntu und die Server-Editionsollten weiterhin mit 128 MB auskommen.

    Hier soll nur die Installation von der Desktop-DVD kurz vorgestellt werden. Wer den Logical Vo-lume Manager (LVM) verwenden will, muss zurtextbasierten Installation von der DVD oder derAlternate-CD wechseln, da diese Möglichkeit imgrafischen Installer weiterhin fehlt. Die Alternate-Installation läuft ansonsten fast genauso ab wie

    die grafische Installation. Durch Boot-Optionensteht aber eine erweiterte Installation zur Verfü-gung, mit der man weitgehende Kontrolle überden ganzen Vorgang hat. Auch die auf Laptopszu empfehlende Option, die gesamte Festplattezu verschlüsseln, gibt es nur auf der Alternate-CD.

    Die Installation unterlag keinen sichtbaren Ände-rungen gegenüber der letzten Version. Standard-mäßig wird nur eine einzige große Partition mitdem Dateisystem ext4 sowie eine Swap-Partitionangelegt. Will man mehr Flexibilität, muss man„Etwas anderes“ auswählen, wodurch das Parti-tionierungswerkzeug gestartet wird. Dort könnendie gängigen Dateisysteme einschließlich Btrfsausgewählt werden.

    Partitionierungswerkzeug.

    Direkt nach der Definition der Partitionen beginntder Installer mit der Partitionierung und der Instal-lation der Pakete im Hintergrund. Ein Fortschritts-balken zeigt von hier an den Stand der Instal-lation an. Parallel dazu kann man die Zeitzoneauswählen und danach das gewünschte Tastatur-Layout einstellen.

    Im letzten Schritt gibt man seinen Namen, Anmel-denamen, Passwort und den Computernamenein. Wenn zuvor bereits per DHCP ein Nameermittelt werden konnte, wird dieser als Vorga-be angezeigt. Wenn erkannt wird, dass die In-stallation in einer virtuellen Maschine läuft, wirddagegen der Name benutzer-virtual-machine vor-gegeben. Optional können Daten im Home-Verzeichnis verschlüsselt werden. Während man

    das Ende der Installa-tion abwartet, kann mannun noch einige Tipps zuUbuntu ansehen.

    AusstattungSowohl Ubuntu als auchKubuntu starten schnell,mindestens genausoschnell wie in der Vorver-sion. Wieder wurde dasAussehen des Desktopsleicht modifiziert, unter Ku-buntu etwas mehr als unterUbuntu.

    X.org 7.6 mit dem X-Server1.11.3 und Mesa 8.0.2

    © freiesMagazin CC-BY-SA 3.0 Ausgabe 06/2012 4

    https://help.ubuntu.com/12.04/https://wiki.ubuntu.com/PrecisePangolin/ReleaseNotes/UbuntuDesktophttp://www.freiesmagazin.de/mobil/2012-06-bilder/ubuntu1204_partitionierung.pnghttp://www.freiesmagazin.de/mobil/2012-06-bilder/ubuntu1204_partitionierung.pnghttp://creativecommons.org/licenses/by-sa/3.0/deed.de

  • DISTRIBUTION

    bilden die Basis für die grafische Oberflä-che einschließlich der 3-D-Beschleunigung. DerKernel 3.2.14 ist zwei Versionen neuer als inUbuntu 11.10 und ein langfristig unterstützterKernel. Aus Benutzersicht bedeutet das eine Viel-zahl zusätzlicher Treiber und viele Optimierun-gen. Daneben enthält der Kernel viele neue Fea-tures, die nur für Spezialisten von Interesse sind.

    Für Entwickler stehen GCC 4.6.3, Python 2.7.3und 3.2.3, OpenJDK 6b24 und 7u3 und vielesmehr bereit.

    Die DNS-Auflösung wird jetzt von dem immerinstallierten dnsmasq übernommen, wovon sichder Distributor eine schnellere Auflösung undbessere VPN-Unterstützung verspricht.

    Serverseitig wurden die neue Metal as a Ser-vice (MAAS) Infrastruktur [5] und der Juju CharmStore eingeführt. OpenStack wurde auf dieneueste Version Essex aktualisiert. Zentyal undOpenMPI 1.5 für ARM wurden den Repositoryshinzugefügt. Das in Version 1.0 enthaltene KVMerlaubt nun virtuelle Maschinen innerhalb von vir-tuellen Maschinen. Damit können Instanzen, diein einer Cloud laufen und somit bereits selbst vir-tuelle Maschinen sind, eigene virtuelle Maschi-nen definieren.

    Wie gewohnt hat Root keinen direkten Zugangzum System, sondern die Benutzer der Gruppesudo können über das Kommando sudo Befehleals Root ausführen. Der Gruppenname sudo istneu in dieser Version; der bisherige Gruppenna-me admin funktioniert aber immer noch. Wenn

    man, nachdem man als Root eingeloggt ist, einPasswort vergibt, ist auch das direkte Einloggenals Root möglich.

    Unity und KDE benötigen in der Standardinstalla-tion mit einem geöffneten Terminal-Fenster jetztfast gleich viel Speicher – etwa 380 MB RAM ein-schließlich der im Swap ausgelagerten Seiten.Die Messung des Speicherverbrauchs der Desk-tops kann jeweils nur ungefähre Werte ermitteln,die zudem in Abhängigkeit von der Hardware undanderen Faktoren schwanken. Aber als Anhalts-punkt sollten sie allemal genügen.

    Das HUD mit Firefox.

    Bei der Geschwindig-keit lässt sich keinnennenswerter Unter-schied zwischen denDesktops feststellen,sofern genug RAMvorhanden ist. Mitden hier verwendeten768 MB RAM laufendie meisten Aktionenflüssig.

    UnityUnity ist das großeDesktop-Thema fürUbuntu. Nachdem Ku-buntu zum Gemein-schaftsprojekt herun-tergestuft wurde, gibtes keine Desktopum-gebung mehr, die ganz

    gleichberechtigt neben Unity steht. Dennochsoll im nächsten Abschnitt auch KDE betrachtetwerden, da es eines der wichtigsten Desktop-Systeme für Linux ist.

    In dieser Version wurde Unity wieder stark über-arbeitet, poliert und zum krönenden Abschlussgebracht. Unter Unity arbeiten viele Komponen-ten von GNOME 3. Das eigentliche Unity setzt ei-ne Hardwarebeschleunigung der 3-D-Grafik vor-aus und nutzt den Compositing-Manager Com-piz. Steht keine Hardwarebeschleunigung zurVerfügung, wird automatisch Unity 2D genutzt,

    © freiesMagazin CC-BY-SA 3.0 Ausgabe 06/2012 5

    http://www.pro-linux.de/news/1/18238/canonical-bringt-metal-as-a-service-maas.htmlhttp://www.freiesmagazin.de/mobil/2012-06-bilder/ubuntu1204_hud.jpghttp://www.freiesmagazin.de/mobil/2012-06-bilder/ubuntu1204_hud.jpghttp://creativecommons.org/licenses/by-sa/3.0/deed.de

  • DISTRIBUTION

    das kaum vom normalen Unity zu unterscheidenist. Zwar ist Unity 2D mit Qt implementiert unddürfte sich damit intern erheblich von Unity un-terscheiden, aber es nutzt sogar Grafikeffekte,wenn auch weniger als Unity.

    Die größte Änderung in dieser Version von Uni-ty ist natürlich das Head-Up-Display (HUD). Esfunktioniert tatsächlich so wie angekündigt [6]und stellt eine echte Innovation und Bereiche-rung dar. Die Funktionsweise ist, dass nach ei-nem kurzen Drücken der Alt -Taste eine Einga-bemaske erscheint, die eine Suchfunktion für dieMenüpunkte der Anwendung implementiert. Sieunterstützt die inkrementelle Suche, d. h. mit je-der eingegebenen Taste wird das Ergebnis ver-feinert. Das System führt eine unscharfe Suchedurch und zeigt alle passenden Menüpunkte un-mittelbar an. Daraus kann man schnell den ge-wünschten auswählen.

    Das System ist lernfähig und stellt die Menüein-träge ganz oben dar, die man am häufigsten ge-wählt hat. Neben der aktiven Anwendung werdenauch Systemaktionen in die Auswahl einbezogen,so dass man auch schnell Funktionen erreichenkann, die in den System-Menüs liegen. Will mandas HUD loswerden, ohne einen Eintrag auszu-wählen, muss man noch einmal Alt drücken.

    Die größte optische Änderung von Unity ist indieser Version, dass der Starter immer sichtbarbleibt. Es lässt sich auch konfigurieren, dass derStarter wie früher ausgeblendet wird, wenn ergerade nicht benötigt wird. Die Icons im Starter

    Tradition: So kann Unity nach einigen Änderungen aussehen.

    zeigen nützliche Informationen an, z. B. wievie-le Fenster einer Anwendung offen sind und obsie aktiviert sind. Zudem ist der Programmstartan animierten Icons zu erkennen. Optisch ver-bindet der Starter also Nützliches und Ange-nehmes. Und endlich einmal werden Effekte so

    angewandt, dass sie nützlich sind und nicht stö-ren. Es sind solche eher kleinen Details, die dieArbeit angenehm machen.Die in der letzten Version eingeführten „Linsen“sind im Wesentlichen gleich geblieben. Die Start-seite (Dash) enthält eine allgemeine Suche, da-

    © freiesMagazin CC-BY-SA 3.0 Ausgabe 06/2012 6

    http://www.pro-linux.de/news/1/17957/head-up-display-revolutioniert-menues-in-ubuntu-1204.htmlhttp://www.freiesmagazin.de/mobil/2012-06-bilder/ubuntu1204_libreoffice.jpghttp://www.freiesmagazin.de/mobil/2012-06-bilder/ubuntu1204_libreoffice.jpghttp://creativecommons.org/licenses/by-sa/3.0/deed.de

  • DISTRIBUTION

    neben gibt es noch Linsen für Anwendungen,Dateien, Musik und Videos. Die Suchergebnis-se beziehen auch Musik und Videos aus demUbuntu One Online-Shop ein.

    Richtig konfigurierbar ist Unity auch weiterhinnicht. Die schon erwähnte Einstellung des Star-ters, immer oder nur bei Bedarf sichtbar zu sein,ist die einzige direkt zugängliche, und in die Sys-temeinstellungen integriert. Einiges mehr kannman über Compiz konfigurieren. Dazu muss manCompizConfig nachinstallieren. Für noch mehrKonfigurierbarkeit sollte man auch dconf-toolsinstallieren. Allerdings ist besonders letzteresProgramm eher für Experten. Leicht zu benutzenist dagegen das neue MyUnity. Es erlaubt aller-dings auch nur eine begrenzte Zahl von Einstel-lungen, darunter die Auswahl von Themes. Wei-tere Eingriffsmöglichkeiten bieten die Indikator-Applets [7].

    Die drei größten Kritikpunkte an Unity, nebenden begrenzten Einstellmöglichkeiten, dürftendie Scroll-Indikatoren anstelle der Scrollbalken,die Anordnung der Fenster-Buttons links unddas globale Menü sein. Für die Anordnung derFenster-Buttons ist kein guter Grund ersichtlich,und wer sich nicht daran gewöhnen will, kann

    $ gconftool -2 --set /apps/metacity/ygeneral/button_layout --type stringy"menu:minimize,maximize,close"

    eingeben, und der Spuk ist vorbei. Die norma-len Scrollbalken lassen sich mit einer Compiz-Einstellung wieder herstellen, und wem das von

    den Anwendungen getrennte und in das Pa-nel verlegte Anwendungsmenü nicht zusagt, derkann das Paket indicator-appmenu entfernen– damit hört aber anscheinend auch das HUDauf zu funktionieren. Bevor man also alles um-biegt, sei aber noch gesagt, dass die Änderun-gen für kleine Bildschirme durchaus sinnvoll sind.So sparen sie durchaus Platz, auf entsprechen-den Geräten sollte man sie vielleicht besser bei-behalten.

    Erweiterungen von Unity gibt es in geringemUmfang – zusätzliche Linsen und Indikator-Applets sind teilweise aus externen Repositorysverfügbar. Nicht vorgesehen ist dagegen eine

    Das Software Center.

    Sitzungsverwaltung, da dieEntwickler dafür keine Not-wendigkeit sahen. DieseEntscheidung ist zumin-dest für Desktops und Lap-tops einigermaßen fragwür-dig.

    Das globale Menü, so-fern man es beibehält,funktioniert ebenso mitKDE-Anwendungen. Auchdas HUD spielt mit KDE-Programmen zusam-men, so dass sich KDE-Anwendungen sehr gutin Unity integrieren undfast keinen Unterschiedzu GNOME-Anwendungenaufweisen.

    Der Desktop ist natürlich nicht Unity allein.Ubuntu hat nun GNOME 3.4 integriert, undwer will, kann den originalen GNOME-Desktopdurch die Installation der GNOME-Shell oder desGNOME-Panels („klassisches“ GNOME) wiederherstellen. Das GNOME-Mailprogramm Evolu-tion wurde allerdings durch Mozilla Thunder-bird 12 ersetzt, der wie Firefox eine Integrationin den Starter und das Menü aufweist.

    Als Webbrowser ist jetzt Firefox 12 dabei. DasStandard-Office-Paket ist LibreOffice 3.5.2.2.Installiert sind auch Inkscape 0.48.3.1, GIMP2.6.12, Shotwell 0.12.2, Pitivi 0.15.0, sowiedie GNOME-Anwendungen Empathy, Gwibber

    © freiesMagazin CC-BY-SA 3.0 Ausgabe 06/2012 7

    http://wiki.ubuntuusers.de/Unity/FAQhttp://www.freiesmagazin.de/mobil/2012-06-bilder/ubuntu1204_software_center.jpghttp://www.freiesmagazin.de/mobil/2012-06-bilder/ubuntu1204_software_center.jpghttp://creativecommons.org/licenses/by-sa/3.0/deed.de

  • DISTRIBUTION

    und Totem. Der Remote-Desktop-Client Vinagrewurde durch Remmina 1.0.0 ersetzt.

    Das Software-Center, das Hauptwerkzeug zur In-stallation und Verwaltung von Paketen, nicht je-doch zum Einspielen von Updates, wurde wei-ter verbessert. Das Programm startet mit einemWerbebanner (für Anwendungen aus dem Repo-sitory) sowie Listen von neuen und bestbewer-teten Anwendungen. Gegenüber der Vorversiongibt es nun die Möglichkeit, sich Empfehlungengeben zu lassen. Um diese zu erhalten, mussdas Programm allerdings von Zeit zu Zeit eineListe der installierten Anwendungen an Canoni-cal senden. Diese Option muss daher von Handeingeschaltet werden.

    Wenn man ein proprietäres Programm ein-kauft, kann man jetzt auch mit Paypal zahlen.Man kann eigene Anwendungen in ein Web-Verzeichnis hochladen und mit anderen gemein-sam nutzen. Die Detailbeschreibung einer An-wendung kann nun mehrere Screenshots oderVideos enthalten. Außerdem wird es leicht mög-lich sein, mehrere Versionen eines Programmeszu installieren, da das Ubuntu-Backports-Projektkünftig verstärkt neue Versionen von Program-men bereitstellen soll. Hierzu ist das Reposito-ry precise-backports standardmäßig aktiviert.Für die neueren Versionen gibt es aber vonUbuntu keine Updates und keinen Support.

    KDE (SC)In Kubuntu [8] wurde KDE SC auf die Ver-sion 4.8.2 aktualisiert. Diese Version soll unter

    Desktop von Kubuntu.

    anderem schneller und stabiler sein als Version4.7. So wurde die Display-Engine des Datei-manager Dolphin unter diesem Aspekt überar-beitet. Der Standard-Browser ist Rekonq, jetztin Version 0.9.1. Man braucht kein Prophet zusein, um Rekonq ähnlich wie Konqueror völlige

    Bedeutungslosigkeit zu bescheinigen, denn erbesitzt keine Plug-ins und keine der fortgeschrit-tenen Funktionen von Firefox.Als Musik-Player vorinstalliert ist Amarok 2.5,das jetzt an den Amazon-MP3-Shop angebun-den ist. OwnCloud wurde erweitert und bringt

    © freiesMagazin CC-BY-SA 3.0 Ausgabe 06/2012 8

    http://www.kubuntu.org/http://www.freiesmagazin.de/mobil/2012-06-bilder/ubuntu1204_kubuntu_desktop.jpghttp://www.freiesmagazin.de/mobil/2012-06-bilder/ubuntu1204_kubuntu_desktop.jpghttp://creativecommons.org/licenses/by-sa/3.0/deed.de

  • DISTRIBUTION

    Die Paketverwaltung Muon.

    jetzt unter anderem einen Streaming-Musik-player mit.

    knotify4, dem man in der letzten Versionnoch übermäßigen Ressoucenverbrauch an-lasten musste, wurde offenbar korrigiert undverhält sich jetzt unauffällig. Die Paketver-waltung Muon wurde laut den Entwicklernschneller und robuster, und die zugehöri-ge „Muon-Aktualisierungsverwaltung“ wurdeüberarbeitet. Leider findet die vereinfachteOberfläche Muon-Programmverwaltung beiweitem nicht alles, so die unten erwähn-ten Pakete kubuntu-low-fat-settings undkde-window-manager-gles. Nur mit dem

    Programm Muon-Paketverwaltungwird man fündig. Ganz schönviel Verwirrung für ein Pro-gramm, das man mühelos durchSoftware-Center hätte erset-zen können. Das Software-Center zieht zwar zahlreicheGTK/GNOME-Bibliotheken nachsich und wurde deshalb von denKubuntu-Entwicklern nicht aufge-nommen, aber diese Bibliothe-ken benötigt man in der Regelsowieso irgendwann.

    Damit sich GTK-Anwendungengut in KDE integrieren, wurdeOxygen-GTK 3 installiert. DieStandard-Büroanwendung istauch unter KDE LibreOffice, je-doch steht Calligra 2.4 in den

    Repositorys zur Verfügung. Ebenfalls steht Tele-pathy für Instant Messaging zur Verfügung, dasauf Wunsch das vorinstallierte Kopete ersetzt.

    Kubuntu hat an alle Benutzer gedacht, die dieLeistung ihres KDE maximieren wollen und bie-tet ein Paket kubuntu-low-fat-settings an, daseinige Dienste entfernt und somit Speicher spart.Außerdem kann man mittels des experimentel-len Pakets kde-window-manager-gles eine An-passung von KWin an OpenGL ES ausprobieren.OpenGL ES stellt wie OpenGL 3-D-Hardwarebe-schleunigung für die Effekte von KWin bereit, sollaber, da es sich um eine Untermenge handelt,kompatibler sein.

    Multimedia im Browser und auf demDesktopFirefox ist jetzt in Version 12 enthalten. Mehre-re Plug-ins zum Abspielen von Videos in freienFormaten sind vorinstalliert. Die vorinstallierte Er-weiterung Ubuntu Firefox Modifications hat Ver-sion 2.0.2 erreicht. Darin ist der Plugin-Finder-Service enthalten, mit dem sich komfortabel pas-sende Plug-ins finden und installieren lassen soll-ten, wenn man beispielsweise ein Video in einerWebseite abspielen will. Das funktionierte bei mirin keinem Fall, was aber auch in der letzten Ver-sion schon so war.

    So funktionieren ohne weiteres Zutun Videosbei einigen Anbietern (z. B. tagesschau.de), beianderen nicht (heute.de). Flash ist wiederumein anderes Thema. Standardmäßig ist keinFlash-Player vorinstalliert, so dass sich keinFlash-Video abspielen lässt. Man muss also vonHand ein Flash-Plug-in für Firefox installieren,dabei hat man die Wahl zwischen dem frei-en Lightspark (browser-plugin-lightspark) unddem Adobe Flash Player. Im Endeffekt bleibt nurletzterer, da Lightspark nach wie vor bei vielenVideos versagt. Die Alternative zu Flash, dasWebM-Format, sollte in Firefox seit Version 4kaum Probleme bereiten und im Großen undGanzen funktionieren.

    Das gleiche Bild zeigt sich unter KDE, auch wenndort Rekonq statt Firefox zum Einsatz kommt.

    In den bekannten Anwendungen Rhythmbox,das jetzt wieder Banshee in der Standardinstal-

    © freiesMagazin CC-BY-SA 3.0 Ausgabe 06/2012 9

    http://www.freiesmagazin.de/mobil/2012-06-bilder/ubuntu1204_muon.pnghttp://www.freiesmagazin.de/mobil/2012-06-bilder/ubuntu1204_muon.pnghttp://creativecommons.org/licenses/by-sa/3.0/deed.de

  • DISTRIBUTION

    lation ersetzt hat, und Totem sollte bei standard-mäßig nicht unterstützten Formaten eine Dialog-box erscheinen, die eine Suche nach passen-den GStreamer-Plug-ins ermöglicht und sie in-stalliert. Wenn Ubuntu mehr als ein Paket findet,das geeignet ist, kann man auswählen, welchesinstalliert werden soll. Beim MP3-Format sinddas beispielsweise ein Fluendo-Plug-in und eineGStreamer-Plug-in-Sammlung. Es ist zu empfeh-len, das Fluendo-Plug-in zu ignorieren, so dassdas FFmpeg-Plug-in installiert wird.

    Die Erkennung der benötigten Formate funktio-niert in manchen Fällen, in manchen leider nicht.Es kann also unter Umständen nötig sein, wei-tere GStreamer-Pakete von Hand zu installieren,beispielsweise für das MPEG2-Format.

    Unter KDE funktioniert das im Prinzip genau-so. Amarok ist der Standard-Audioplayer. Ama-rok oder Dragonplayer erkennen fehlende Plug-ins und starten die Paketverwaltung, um danachzu suchen. Es kann jedoch passieren, dass beimersten Installationslauf nicht alle benötigten Plug-ins installiert wurden – womöglich erkennen dieProgramme immer nur eine fehlende Komponen-te nach der anderen. In einem Fall waren sageund schreibe drei Startversuche nötig, bis allePlug-ins vorhanden waren.

    Im Dateimanager Dolphin fehlt weiterhin eine Da-teizuordnung von Dateien mit dem Suffix .flv.Wenn man diese mit „Öffnen mit. . . “ hinzufügt,kann man z. B. Dragonplayer als Programm ein-tragen, dann läuft alles rund. Insgesamt ist derTest zur Multimedia-Integration knapp bestanden.

    Optimal ist das alles nicht, aber immerhin besserals in der Version 11.10.

    FazitUbuntu hat es geschafft, mit dem Ende des Zwei-jahreszyklus eine ausgereifte, stabile und in viel-facher Hinsicht attraktive Distribution zu produzie-ren. Während ich die Ubuntu-Versionen, die zwi-schen zwei LTS-Versionen liegen, mittlerweile alsreine Betaversionen ansehe, gilt das für die LTS-Versionen nicht. Diese sind stabil und ausgereift,wobei etwaige anfängliche Probleme unvermeid-lich sind, aber nachträglich noch behoben wer-den. Und mit Version 12.04 LTS steht zweifellosdie beste Ubuntu-Version bisher zur Verfügung.Sicher hat es Mark Shuttleworth durchaus ernstgemeint, als er die intensivierte Qualitätssiche-rung vor kurzem hervorhob [9]. Allen Benutzern,von Einsteigern bis zu erfahrenen Anwendernund Entwicklern, kann Ubuntu 12.04 empfohlenwerden. Normale Benutzer sollten immer bei ei-ner LTS-Version bleiben, da diese die beste Sta-bilität bietet. Dabei ist es bedarfsweise möglichund relativ einfach, veraltete Software-Versionendurch neuere zu ersetzen.

    Die Wahl des Desktop-Systems bleibt weiterhineine Geschmacksfrage. Mit Unity hat Ubuntuzwar eine klare Präferenz gesetzt, schließt aberAlternativen nicht aus. Die Entwicklung von Uni-ty hatte kommerzielle Hintergründe, die durchausnachvollziehbar sind, denn es geht schließlichum die Verbreitung von Ubuntu auf verschiedens-ten Gerätetypen und somit um Einnahmequellenfür Canonical. Das Ergebnis kann sich jetzt in je-

    der Hinsicht sehen lassen, wird aber mit Sicher-heit nicht jeden zufriedenstellen. Aber ob Uni-ty, KDE, GNOME, Xfce, LXDE oder eine ande-re Oberfläche, ist letztlich jedem Benutzer selbstüberlassen. Das System bleibt in jedem Fall das-selbe.

    LINKS[1] http://www.pro-linux.de/artikel/2/1567/ubuntu-

    und-kubuntu-1204-lts.html[2] http://www.freiesmagazin.de/freiesMagazin-2010-

    06[3] https://help.ubuntu.com/12.04/[4] https://wiki.ubuntu.com/PrecisePangolin/

    ReleaseNotes/UbuntuDesktop[5] http://www.pro-linux.de/news/1/18238/canonical-

    bringt-metal-as-a-service-maas.html[6] http://www.pro-linux.de/news/1/17957/head-up-

    display-revolutioniert-menues-in-ubuntu-1204.html

    [7] http://wiki.ubuntuusers.de/Unity/FAQ[8] http://www.kubuntu.org/[9] http://www.pro-linux.de/news/1/18289/ubuntu-

    1210-soll-quantal-quetzal-heissen.html

    Autoreninformation

    Hans-Joachim Baader (Webseite)befasst sich seit 1993 mit Linux und isteiner der Betreiber von Pro-Linux.de.

    Diesen Artikel kommentieren

    © freiesMagazin CC-BY-SA 3.0 Ausgabe 06/2012 10

    http://www.pro-linux.de/news/1/18289/ubuntu-1210-soll-quantal-quetzal-heissen.htmlhttp://www.pro-linux.de/artikel/2/1567/ubuntu-und-kubuntu-1204-lts.htmlhttp://www.pro-linux.de/artikel/2/1567/ubuntu-und-kubuntu-1204-lts.htmlhttp://www.freiesmagazin.de/freiesMagazin-2010-06http://www.freiesmagazin.de/freiesMagazin-2010-06https://help.ubuntu.com/12.04/https://wiki.ubuntu.com/PrecisePangolin/ReleaseNotes/UbuntuDesktophttps://wiki.ubuntu.com/PrecisePangolin/ReleaseNotes/UbuntuDesktophttp://www.pro-linux.de/news/1/18238/canonical-bringt-metal-as-a-service-maas.htmlhttp://www.pro-linux.de/news/1/18238/canonical-bringt-metal-as-a-service-maas.htmlhttp://www.pro-linux.de/news/1/17957/head-up-display-revolutioniert-menues-in-ubuntu-1204.htmlhttp://www.pro-linux.de/news/1/17957/head-up-display-revolutioniert-menues-in-ubuntu-1204.htmlhttp://www.pro-linux.de/news/1/17957/head-up-display-revolutioniert-menues-in-ubuntu-1204.htmlhttp://wiki.ubuntuusers.de/Unity/FAQhttp://www.kubuntu.org/http://www.pro-linux.de/news/1/18289/ubuntu-1210-soll-quantal-quetzal-heissen.htmlhttp://www.pro-linux.de/news/1/18289/ubuntu-1210-soll-quantal-quetzal-heissen.htmlhttp://www.pro-linux.de/http://www.freiesmagazin.de/comment/reply/275?edit[subject]=Ubuntu 12.04#comment-formhttp://creativecommons.org/licenses/by-sa/3.0/deed.de

  • KERNEL

    Der Mai im Kernelrückblick von Mathias Menzer

    B asis aller Distributionen ist der Linux-Kernel, der fortwährend weiterent-wickelt wird. Welche Geräte in einemhalben Jahr unterstützt werden und welcheFunktionen neu hinzukommen, erfährt man,wenn man den aktuellen Entwickler-Kernel imAuge behält.

    Entwicklung von Linux 3.4Zusammen mit der letzten Ausgabe vonfreiesMagazin gab es die sechste Entwickler-version des Kernels 3.4 [1]. Diese Version hat-te durchweg Fehlerkorrekturen im Programm,wenn man von Änderungen am Controller für dieUSB-2.0-Schnittstelle des Tegra-Chipsatzes ausdem Hause NVIDIA absieht. Hier wurde der Trei-ber für das Power Management so angepasst,dass er den von anderen USB-Treiber bekann-ten Spezifikationen entspricht. Somit könnenEntwickler künftig Standard- anstelle von Treiber-spezifischen Methoden nutzen und gleichzeitigbleibt der Treiber ohne größere Nacharbeit kom-patibel zu den laufenden Änderungen an denUSB-Kernkomponenten.

    Die Änderungen am -rc7 [2] waren wieder sehrüberschaubar. Die herausstechendste Änderungwar die Rücknahme einer Behelfslösung für einProblem zwischen dem i2c-Datenbus und demfreie Grafiktreiber Nouveau. Sie war als Quel-le anderer Probleme erkannt worden und konn-te wieder entfernt werden, da das ursprünglicheProblem zwischenzeitlich auf Seiten i2c beho-

    ben worden war. Dies blieb dann allerdings dieletzte Entwicklerversion, denn anstelle eines -rc8gab Torvalds den Kernel 3.4 frei [3]. Er konntenoch die Korrektur eines Fehlers mit dem Lin-ker [4], der beim Kompilieren und Linken von x86-spezifischen Code auftritt, vorweisen.

    Die Neuerungen von Linux 3.4Mit nur 63 Tagen Entwicklungsdauer zählt Linux3.4 zu den am Kernel-Versionen, die ihren Ent-wicklungszyklus im Schnelldurchlauf hinter sichgebracht haben. Linux 3.0 kommt mit 64 Ta-gen dicht heran, doch der aktuellste Kernel warschneller. Dies tut den enthaltenen Neuerungenjedoch keinen Abbruch.

    Btrfs wird derzeit noch nicht für den Einsatz inproduktiven Umgebungen empfohlen, doch dieEntwicklung bewegt sich mit großen Schritten ineben jene Richtung. Nicht die Sicherheit, son-dern die Rettung von Daten aus einem zerstör-ten Dateisystem hat das neue Werkzeug „btrfs-restore“ zum Ziel. Metadaten, also Informationenrund um die eigentlichen zu speichernden Da-ten herum, können nun in bis zu 64 KB großenBlöcken abgelegt werden, bislang waren maxi-mal 4 KB möglich. Im Ergebnis soll hier weni-ger Fragmentierung auftreten, was sich auch bes-ser auf die Leistung auswirkt. Verbesserungen inder Fehlerbehandlung, Btrfs gibt dem Nutzer nunaussagekräftige Fehlermeldungen aus und ver-setzt sich selbst in einen Nur-Lesen-Modus, run-den das ganze ab.

    Auf der Grafik-Seite braucht sich Linux 3.4 auchnicht zu verstecken. Die neuen Kepler-Chips (Ge-Force 600 Serie) aus dem Hause NVIDIA wer-den fast von Beginn an von dem freien Treiber„Nouveau“ unterstützt, wenn auch noch ohne die3-D-Beschleunigung. Auch mit Radeon 7xxx undden Grafikeinheiten der Trinity-Prozessoren kannNouveau nun umgehen. Daneben wurde der Trei-ber aus dem Staging-Bereich entlassen und wirdals tauglich für den breiten Einsatz angesehen.Weiterhin wird nun auch die Grafikkomponentevon Intels GMA500-Chipsatz unterstützt, wenndies im Moment auch nur als experimentell anzu-sehen ist. GMA500 oder „Medfield“ ist eine Platt-form, die für den Einsatz in Smartphones vorge-sehen ist.

    Ein kleines Highlight stellt die neue x32-ABI dar.Dies ist eine Schnittstelle für die Ausführung von32-Bit-Anwendungen in einer 64-Bit-Umgebung.Zwar existieren hierfür mit x86_64 und i386 be-reits passende Schnittstellen, jedoch versprichtx32 eine bessere Leistung, dafür jedoch müssenProgramme speziell für die Verwendung mit x32kompiliert werden.

    Bei Gerätetreibern wird dies schon länger so ge-handhabt, nun kommt „Autoprobing“, die automa-tische Erkennung bestimmter Voraussetzungenfür einen Treiber, auch für Module zum Einsatz,die die verschiedenen Erweiterungen des Pro-zessors betreffen. Dies soll dafür sorgen, dasskünftig auch wirklich alle Module verfügbar und

    © freiesMagazin CC-BY-SA 3.0 Ausgabe 06/2012 11

    https://lwn.net/Articles/496079/https://lkml.org/lkml/2012/5/12/60https://lkml.org/lkml/2012/5/20/126https://de.wikipedia.org/wiki/Linker_%28Computerprogramm%29http://creativecommons.org/licenses/by-sa/3.0/deed.de

  • KERNEL

    geladen sind, die für die Nutzung der vorhande-nen CPU-Erweiterungen benötigt werden.

    In den Bereich der Sicherheit läuft das neue Si-cherheitsmodul „Yama“. Es ermöglicht bestimm-te Beschränkungen, die der Kernel mit seinenKernkomponenten nicht umsetzen kann. Derzeitbetrifft dies Funktionen rund um den Systemauf-ruf ptrace – Yama verhindert hier, dass Prozes-se auf den Speicherbereich und Statusinforma-tionen anderer Prozesse zugreifen können.

    Wer einen Blick darauf werfen möchte, wie sichÄnderungen am Kernel oder Eigenentwicklungenauf die Systemleistung auswirken, dem steht derLeistungsmesser „perf“ zur Verfügung. Die Aus-wertung dessen Ausgaben wird nun etwas einfa-cher, da Reports nun mittels einer auf GTK2 ba-sierenden Bedienoberfläche betrachtet werdenkönnen. Die Oberfläche ist allerdings noch aus-baufähig.

    Mancher mag nicht sicher sein, ob „dm-verity“ tat-sächlich im Interesse der Linux-Anwender liegt.Diese Erweiterung für den Device Mapper [5] er-möglicht gesicherte, nicht beschreibbare Datei-systeme, deren Inhalt mittels kryptografischerPrüfsummen verifiziert wird. So wird bei jedemLesezugriff sichergestellt, dass die Informationauch die ist, die irgendwann einmal hineinge-legt wurde. Dies ließe sich zum Beispiel zur Ab-sicherung von Unterhaltungshardware insofern

    nutzen, dass nur überprüfte Firmware genutztwird, wie dies zum Beispiel ChromeOS bereitsvormacht. Als kleine Anekdote hierzu: Ein Mit-arbeiter des Online-TV-Dienstes Netflix [6] batum die Aufnahme der Erweiterung in den Kernelmit dem Hinweis auf Unterhaltungsgeräte, die mitLinux betrieben werden [7].

    Diese Liste ist bei weitem nicht komplett. Einesehr ausführliche, jedoch in Englisch verfassteSeite über alle neuen Funktionen und Treiber bie-tet KernelNewbies.org [8].

    Das Merge Window für Linux 3.5 war zu Re-daktionsschluss noch offen. Insofern muss esnoch nichts bedeuten, dass bislang kaum Än-derungen für das Dateisystem Btrfs in die Ent-wicklerversion des Kernels aufgenommen wur-den. Anders dagegen sieht es bei den Netzwerk-Dateisystemen NFS und CIFS aus – hier fin-det sich bereits eine Vielzahl an Korrekturenin der Liste der eingegangenen Patches. Auchder Nouveau-Treiber weist bislang hauptsächlichFehlerkorrekturen auf. Eine theoretisch kleine-re Umstellung der Schnittstelle eines Treibersfür die Fehlerkontrolle von Arbeitsspeichermodu-len (EDAC) dürfte ein wenig Staub aufwirbeln.Hier müssen in nächster Zeit viele Treiber an-gepasst werden, die auf diese Komponente auf-bauen, was eine Vielzahl an zu ändernden Da-teien im Kernel-Tree bedeutet. Konkret wurdenbislang die Treiber für Intels i3/i5/i7- sowie ei-

    nige Xeon-Plattformen angepasst. VerschiedeneAMD-bezogene Treiber und auch andere Herstel-ler und Architekturen werden noch im Kernel 3.5folgen.

    Einen ersten Überblick über die tatsächlich zuerwartenden Neuerung des kommenden Linux-Kernels wird es jedoch frühestens in der Juli-Ausgabe von freiesMagazin geben.

    LINKS[1] https://lwn.net/Articles/496079/[2] https://lkml.org/lkml/2012/5/12/60[3] https://lkml.org/lkml/2012/5/20/126[4] https://de.wikipedia.org/wiki/Linker_(Computer

    programm)[5] https://de.wikipedia.org/wiki/Device_Mapper[6] https://de.wikipedia.org/wiki/Netflix[7] https://lwn.net/Articles/459422/[8] http://kernelnewbies.org/Linux_3.4

    Autoreninformation

    Mathias Menzer (Webseite) hälteinen Blick auf die Entwicklung desLinux-Kernels und erfährt frühzeitigDetails über interessante Funktionen.

    Diesen Artikel kommentieren

    © freiesMagazin CC-BY-SA 3.0 Ausgabe 06/2012 12

    https://de.wikipedia.org/wiki/Device_Mapperhttps://de.wikipedia.org/wiki/Netflixhttps://lwn.net/Articles/459422/http://kernelnewbies.org/Linux_3.4https://lwn.net/Articles/496079/https://lkml.org/lkml/2012/5/12/60https://lkml.org/lkml/2012/5/20/126https://de.wikipedia.org/wiki/Linker_%28Computerprogramm%29https://de.wikipedia.org/wiki/Linker_%28Computerprogramm%29https://de.wikipedia.org/wiki/Device_Mapperhttps://de.wikipedia.org/wiki/Netflixhttps://lwn.net/Articles/459422/http://kernelnewbies.org/Linux_3.4http://www.menzer.net/http://www.freiesmagazin.de/comment/reply/275?edit[subject]=Der Mai im Kernelr%C3%BCckblick#comment-formhttp://creativecommons.org/licenses/by-sa/3.0/deed.de

  • PROGRAMMIERUNG

    Objektorientierte Programmierung: Teil 4 – Strategie, wechsel Dich! von Dominik Wagenführ

    D er Begriff der objektorientierten Pro-grammierung (kurz OOP [1]) existiertschon eine ganze Weile. Wer zuvorprozedural programmiert hat, erwischt sichbeim Übergang zu OOP öfters dabei, wie erdie früheren Funktionen einfach mit einerKlasse umgibt und dies als objektorientierteProgrammierung verkauft. Diese Artikelreihesoll an einem einfachen Beispiel zeigen, wasman in diesem Fall besser machen könnte.

    Bevor man im Artikel fortfährt, sollte man sichden vorherigen Teil der Reihe durchgelesen ha-ben (siehe freiesMagazin 05/2012 [2]).

    Eine neue StrategieVon den drei bisher verwendeten Strategien wareine dabei, deren Verhalten sehr ähnlich zu denanderen beiden war. Zur Erinnerung die drei Bot-Strategien:

    1. Immer annehmen2. Immer ablehnen3. Annahme, wenn größer gleich 200. Wenn drei-

    mal nacheinander kleiner 200, dann immerAblehnung; wenn dreimal nacheinander grö-ßer als 700, dann immer Annahme.

    Bei der dritten Strategie ist es also so, dass manab einem gewissen Punkt zu Strategie 1 oder 2wechselt. Es wäre gut, wenn diese Strategie al-so dem Bot eine neue Strategie unterschiebt, an-statt Strategie 1 und 2 intern nachzubilden.

    Hierfür gibt es natürlich auch ein Entwurfsmus-ter, welches sich Zustandsmuster nennt [3]. DasZustandsmuster besteht aus Zuständen (im Bei-spiel also den Strategien) und aus Zustandsüber-gängen, welche einen Zustand in einen anderenüberführen.

    Hinweis: Das Beispiel ist natürlich extrem verein-facht. Man stelle sich aber vor, Strategie 1 und2 müssten komplizierte Berechnungen durchfüh-ren. Diese eins zu eins in Strategie 3 nachzubil-den, wäre wegen Code-Redundanz unsinnig.

    DesignDie essentiellen Fragen für das Design sind:

    1. Wie kommen die konkreten Strategien an dieanderen konkreten Strategien, zu denen siewechseln sollen?

    2. Wie können sie dem Bot diese neue Strategiegeschickt unterschieben?

    Frage 1 ist leicht zu beantworten: Sie nutzen ein-fach die StrategyFactory, um die neue konkre-te Strategie zu erstellen. Dafür müssen sie abernatürlich auch wissen, zu welcher Strategie siewechseln wollen.

    Hinweis: Es gibt hier auch andere Ansätze, dassz.B. der Kontext (im Beispiel die Klasse Bot) alleStrategien einmal als Instanz hält und diese her-ausgeben kann, sodass ein Wechsel möglich ist.

    Frage 2 ist etwas schwieriger zu beantwor-ten. Bisher war es so, dass im Paketdiagramm

    libbot immer libstrategy nutzt. Würde mannun von den konkreten Strategien direkt auf Botzugreifen, hätte man auch eine Abhängigkeit vonlibstrategy zu libbot und damit eine zykli-sche Paketabhängigkeit geschaffen, was in denseltensten Fällen gut endet.

    Um dieses Problem zu lösen, hilft das Dependen-cy Inversion Principle [4]. Hier könnte man ein In-terface IBot unter die Klasse Bot legen, welchesdie Strategien nutzen könnte. Natürlich ist die Ab-hängigkeit immer noch zyklisch, wenn IBot imPaket libbot liegt. Man könnte das Interface al-so in libstrategy auslagern, aber das passtkontextuell nicht mehr in das Strategie-Paket. Eineinzelnes Paket mit dem Interface ist aber eben-so übertrieben.

    Was ist also die Lösung? Ganz simpel: Eine Na-mensänderung. Wieso heißt das Interface IBot?Es soll eigentlich nur eine Schnittstelle anbieten,damit Strategien den umliegenden Kontext verän-dern können. Vor allem ist nicht gesagt, dass inferner Zukunft niemand die Strategien auch an-ders als für einen Bot einsetzen will.

    Aus dem Grund ist die Integration des Interfa-ces in das Paket libstrategy korrekt, der Namesollte aber IStrategyContext lauten und dieKlasse sollte nur eine Operation setStrategybesitzen.

    Dennoch fehlt etwas: Die konkreten Strate-gien müssen auch an den Kontext kommen,

    © freiesMagazin CC-BY-SA 3.0 Ausgabe 06/2012 13

    https://de.wikipedia.org/wiki/Objektorientierte_Programmierunghttp://www.freiesmagazin.de/freiesMagazin-2012-05https://de.wikipedia.org/wiki/Zustand_%28Entwurfsmuster%29https://de.wikipedia.org/wiki/Dependency_Inversion_Principlehttp://creativecommons.org/licenses/by-sa/3.0/deed.de

  • PROGRAMMIERUNG

    Das Interface IStrategyContext und deren Nutzer.

    also an den Nutzer der jeweiligen Strategie. Diesgeschieht am besten, indem die Basisklasseunter den Strategien den Kontext IStrategyContext verwaltet und bei Bedarf an die

    Generalisierungen gibt. Dies ist dann auch derGrund, wieso das Interface IStrategy der Basis-klasse BaseStrategy weichen muss. Jetzt fehltnur noch die Beschreibung der Zustände. Diese

    entsprechen im vorliegenden Fall den drei kon-kreten Strategien. Als Zustandsübergang funktio-niert die Methode acceptOffer, wobei der jewei-lige Übergang aus dem Zustand variable her-aus an eine Bedingung geknüpft ist:

    � Liegt der übergebene Wert zwischen 200 und700 (inklusive), bleibt man in dem Zustand undsetzt die Zählwerte mNumDeclineInRow undmNumAcceptInRow zurück.

    � Ist der Wert kleiner als 200 und hat man schondreimal abgelehnt, geht man in den Zustanddecline über.

    � Ist der Wert größer als 700 und hat man schondreimal angenommen, geht man in den Zu-stand accept über.

    Die Zustände accept und decline können dannnur noch durch das Spielende verlassen werden.

    Achtung: Der Zustandsautomat hat eine kleineUnschärfe und ist der Einfachheit halber nicht ein-hunderprozentig korrekt dargestellt. So fehlt näm-lich die eigentliche Aktion des Zählens, wie oftein Angebot abgelehnt oder angenommen wur-de. Wenn man es sehr genau nehmen würde,dann müsste man hierfür Zwischenzustände ein-bauen, deren einzige Aufgabe es wäre, die jewei-lige Anzahl an Ablehnungen bzw. Annahmen zuzählen. Sie wechseln nach dem Zählen ohne Zu-standsübergang direkt in den nächsten Zustand,der eben von der Anzahl abhängt.

    KlassenaufteilungKlasse: IStrategyContexBenötigt: –

    © freiesMagazin CC-BY-SA 3.0 Ausgabe 06/2012 14

    http://www.freiesmagazin.de/mobil/2012-06-bilder/oop7-design.pnghttp://www.freiesmagazin.de/mobil/2012-06-bilder/oop7-design.pnghttp://creativecommons.org/licenses/by-sa/3.0/deed.de

  • PROGRAMMIERUNG

    Verantwort.: Interface für Nutzer von Strategi-en, um neue Strategien zu setzen

    Klasse: BaseStrategyBenötigt: IStrategyContextVerantwort.: Basisklasse für die konkreten

    Strategien, um ein Angebot anzu-nehmen oder abzulehnen.Merkt sich den Kontext, in dem esbenutzt wird.

    Hinweis: Hier muss man aufpassen, dass esnicht zu einer zyklischen Abhängigkeit kommt.Da IStrategyContex aber nur ein Interface ist,muss es nicht BaseStrategy selbst, sondern nurden Namen kennen.

    Klasse: AcceptStrategyBasisklasse: BaseStrategyBenötigt: –Verantwort.: nimmt ein Angebot immer an

    Klasse: DeclineStrategyBasisklasse: BaseStrategyBenötigt: –Verantwort.: lehnt ein Angebot immer ab

    Klasse: VariableStrategyBasisklasse: BaseStrategyBenötigt: StrategyFactory,

    IStrategyContexVerantwort.: entscheidet variabel, ob ein Ange-

    bot abgelehnt oder angenommenwird

    Klasse: StrategyFactoryBenötigt: BaseStrategyVerantwort.: lässt neue Strategien anmelden

    und erstellt diese auf Zuruf

    Klasse: BotBasisklasse: IStrategyContexBenötigt: BaseStrategyVerantwort.: zählt die angenommenen Punkte

    Klasse: GameBenötigt: StrategyFactory, BotVerantwort.: erstellt den Bot und setzt die von

    der Fabrik erzeugte Strategie;liest die Benutzereingabe undfragt Bot nach Annahme oder Ab-lehnung

    AbhängigkeitenEs gibt nun zwar mehr Abhängigkeiten, aber eshandelt sich dabei immer nur um zusätzlicheAbhängigkeiten zu einem Interface, welche sehrleichtgewichtig sind.

    Ebenso sind durch die Ersetzung von IStrategydurch die Basisklasse BaseStrategy keine neu-en Abhängigkeiten entstanden.

    Vor- und NachteileNachteile ergeben sich keine aus der Lösung.Der Vorteil ist, dass die Strategien nun ineinaderwechseln können und diese vor allem bei kom-plexeren Strategien wieder verwendbar sind.

    ImplementierungDie potentielle zyklische Abhängigkeit vonIStrategyContext zu BaseStrategy lässt sichleicht durch Vorwärtsdeklarationen lösen. Mankann in C++ sogar noch einen Schritt weiterge-hen und in BaseStrategy mit einer Vorwärts-deklaration auf IStrategyContext auskommen.Der Grund ist, dass BaseStrategy das Interfacenie selbst nutzt, sondern nur verwaltet. Und da-für muss es nur den Namen kennen, nicht deneigentlichen Code, der dahintersteckt.

    Die C++-Implementierung der obigen Klassenkann als Archiv heruntergeladen werden: oop7-beispiel.tar.gz.

    AbschlussDie vier Teile zur objektorientierten Programmie-rung sollten einen kleinen Einblick geben, wieman aus einem einfachen Problem etwas desi-gntechnisch extrem kompliziertes machen kann.Natürlich nicht, damit es niemand mehr versteht,sondern damit die Lösung auch für die Zukunftleicht erweiterbar und wartbar ist. Und in der Re-gel hilft ein gutes Design dem Verständnis.

    Wie im ersten Teil erwähnt, gibt es zu einer Auf-gabe aber immer mehrere Lösungen. Und sogibt es für das gestellte Problem natürlich auchmehrere Designentscheidungen in die eine oderandere Richtung. Vorrangig sollten in der Rei-he aber verschiedene Design-Prinzipien und Ent-wurfsmuster vorgestellt werden.

    Man sollte sich auch im Klaren darübersein, dass eine sture Entwicklung nach dem

    © freiesMagazin CC-BY-SA 3.0 Ausgabe 06/2012 15

    http://www.freiesmagazin.de/mobil/2012-06-listings/oop7-beispiel.tar.gzhttp://www.freiesmagazin.de/mobil/2012-06-listings/oop7-beispiel.tar.gzhttp://creativecommons.org/licenses/by-sa/3.0/deed.de

  • PROGRAMMIERUNG

    Zustandsautomat mit der variablen Strategie als Start-Strategie.

    Motto „Erst das Design, dann die Implementie-rung” selten funktioniert. In der Regel erkenntman während der Implementierung, dass manim Design etwas falsch gemacht hat, etwas fehltoder einfach gar nicht in der benutzten Sprachezu realisieren ist. Daher sollte das Design zwarzuerst entstehen, während der Umsetzung aberiterativ angepasst werden.

    Literatur

    � E. Gamma, R. Helm, R. Johnson und J. Vlis-sides: „Design Patterns. Elements of Reusable

    Object-Oriented Software“, Addison-Wesley1994, ISBN 978-0201633610 [5]

    � E. Gamma, R. Helm, R. Johnson undJ. Vlissides: „Entwurfsmuster: Elementewiederverwendbarer objektorientierter Soft-ware“, Addison-Wesley 2004, ISBN 978-3827321992 [6]

    � E. & E. Freeman, B. Bates und K. Sierra:„Head First Design Patterns“, O’Reilly Media2004, ISBN 978-0596007126 [7]

    � R. C. Martin: „Clean Code - Refactoring,Patterns, Testen und Techniken für saube-

    ren Code“, mitp-Verlag 2009, ISBN 978-3826655487 [8]

    LINKS[1] https://de.wikipedia.org/wiki/Objektorientierte_

    Programmierung[2] http://www.freiesmagazin.de/freiesMagazin-2012-

    05[3] https://de.wikipedia.org/wiki/Zustand_(Entwurfs

    muster)[4] https://de.wikipedia.org/wiki/Dependency_

    Inversion_Principle[5] http://www.amazon.de/Patterns-Elements-

    Reusable-Object-Oriented-Software/dp/0201633612/

    [6] http://www.amazon.de/Entwurfsmuster-Elemente-wiederverwendbarer-objektorientierter-Software/dp/3827321999/

    [7] http://www.amazon.de/Head-First-Design-Patterns-Freeman/dp/0596007124/

    [8] http://www.amazon.de/Clean-Code-Refactoring-Patterns-Techniken/dp/3826655486/

    Autoreninformation

    Dominik Wagenführ (Webseite) istC++-Software-Entwickler und hattäglich mit Software-Design zu tun.Dabei muss er sich immer Gedankenmachen, dass seine Software auchin Zukunft wart- und erweiterbar bleibt.

    Diesen Artikel kommentieren

    © freiesMagazin CC-BY-SA 3.0 Ausgabe 06/2012 16

    http://www.freiesmagazin.de/mobil/2012-06-bilder/oop7-design-states.pnghttp://www.freiesmagazin.de/mobil/2012-06-bilder/oop7-design-states.pnghttp://www.amazon.de/Patterns-Elements-Reusable-Object-Oriented-Software/dp/0201633612/http://www.amazon.de/Entwurfsmuster-Elemente-wiederverwendbarer-objektorientierter-Software/dp/3827321999/http://www.amazon.de/Head-First-Design-Patterns-Freeman/dp/0596007124/http://www.amazon.de/Clean-Code-Refactoring-Patterns-Techniken/dp/3826655486/https://de.wikipedia.org/wiki/Objektorientierte_Programmierunghttps://de.wikipedia.org/wiki/Objektorientierte_Programmierunghttp://www.freiesmagazin.de/freiesMagazin-2012-05http://www.freiesmagazin.de/freiesMagazin-2012-05https://de.wikipedia.org/wiki/Zustand_%28Entwurfsmuster%29https://de.wikipedia.org/wiki/Zustand_%28Entwurfsmuster%29https://de.wikipedia.org/wiki/Dependency_Inversion_Principlehttps://de.wikipedia.org/wiki/Dependency_Inversion_Principlehttp://www.amazon.de/Patterns-Elements-Reusable-Object-Oriented-Software/dp/0201633612/http://www.amazon.de/Patterns-Elements-Reusable-Object-Oriented-Software/dp/0201633612/http://www.amazon.de/Patterns-Elements-Reusable-Object-Oriented-Software/dp/0201633612/http://www.amazon.de/Entwurfsmuster-Elemente-wiederverwendbarer-objektorientierter-Software/dp/3827321999/http://www.amazon.de/Entwurfsmuster-Elemente-wiederverwendbarer-objektorientierter-Software/dp/3827321999/http://www.amazon.de/Entwurfsmuster-Elemente-wiederverwendbarer-objektorientierter-Software/dp/3827321999/http://www.amazon.de/Head-First-Design-Patterns-Freeman/dp/0596007124/http://www.amazon.de/Head-First-Design-Patterns-Freeman/dp/0596007124/http://www.amazon.de/Clean-Code-Refactoring-Patterns-Techniken/dp/3826655486/http://www.amazon.de/Clean-Code-Refactoring-Patterns-Techniken/dp/3826655486/http://www.deesaster.org/blog/http://www.freiesmagazin.de/comment/reply/275?edit[subject]=Objektorientierte Programmierung: Teil 4#comment-formhttp://creativecommons.org/licenses/by-sa/3.0/deed.de

  • DATENSICHERUNG

    Cloud-Backup mit Bordmitteln von Hauke Goos-Habermann

    N iemand will „Backup“, alle wollen nur„Restore“. Natürlich kommt man alsNutzer nicht um das Thema „Backup“herum, will man seine Daten nicht unnötigaufs Spiel setzen. Neben den klassischenMöglichkeiten, Daten lokal – auf externenFestplatten oder einem Netzwerkspeicher –zu sichern, könnte man auf die Idee kommen,eine Sicherung in das Internet vorzunehmen.Sogenannte „Cloud-Backup“-Lösungen gibtes viele, doch möchte man seine persönli-chen Daten vielleicht nicht unbedingt einemDienstleister anvertrauen, von dem man nichtgenau weiß, was dieser mit den Daten anstellt.Außerdem sollte man eine solche Lösung kei-nesfalls als Ersatz für normale Backups, son-dern als Ergänzung sehen.

    Möchte man dennoch dieses Wagnis auf sichnehmen, so sollte man von einer solchen LösungFolgendes erwarten:

    � Die Daten sollten lokal verschlüsselt werden,damit keine sensiblen Informationen nach au-ßen gelangen.

    � Dateien sollten versioniert werden, um ein „Zu-rückspringen“ zu bestimmten vorherigen Zu-ständen zu ermöglichen.

    � Die Backups sollten platzsparend gesichertwerden.

    � Das Hochladen der Backups sollte band-breitenschonend erfolgen, denn Internet-

    Anschlüsse mit guten Upload-Raten sind im-mer noch Mangelware.

    Dieser Artikel beschreibt eine Lösung, die alleoben genannten Punkte abdeckt und zudem mitden Werkzeugen von halbwegs modernen Distri-butionen zu realisieren ist.

    VorbereitungenFür die „Cloud-Backup“-Lösung „Marke Eigen-bau“ benötigt man auf dem eigenen Rech-ner die Pakete encfs, bup, git und rsync.Der Rechner im Internet benötigt das Paketrsync neben der Möglichkeit, sich dort ein-zuloggen und Dateien beziehungsweise Ver-zeichnisse abzulegen. Die Pakete können

    Entschlüsseltes und verschlüsseltes EncFS-Verzeichnis.

    mit der jeweiligen Paketverwaltung eingespieltwerden.

    EncFSDen Part des Verschlüsslers spielt die FUSE-Erweiterung EncFS [1]. EncFS wird als normalerBenutzer, nicht als Root, verwendet und benötigtlediglich zwei Verzeichnisse. Das eine enthält dieverschlüsselten Daten, das andere die transpa-rent entschlüsselten. Die Dateien und Verzeich-nisse im entschlüsselten Verzeichnis sind reinvirtuell und werden also nicht auf die Festplattegeschrieben. Änderungen, die im entschlüssel-ten Verzeichnis durchgeführt werden, werdenautomatisch als verschlüsselte Gegenstückeim anderen Verzeichnis abgebildet. Neben den

    © freiesMagazin CC-BY-SA 3.0 Ausgabe 06/2012 17

    http://www.freiesmagazin.de/mobil/2012-06-bilder/cloud_encfs.pnghttp://www.freiesmagazin.de/mobil/2012-06-bilder/cloud_encfs.pnghttp://www.arg0.net/encfshttp://creativecommons.org/licenses/by-sa/3.0/deed.de

  • DATENSICHERUNG

    Dateiinhalten werden auch die Datei- und Ver-zeichnisnamen verschlüsselt, sodass es füreinen Unbefugten, der Zugriff auf das verschlüs-selte Verzeichnis erhält, nur sehr schwer ist,Rückschlüsse auf den tatsächlichen Inhalt zu zie-hen.

    Zum Anlegen der beiden Verzeichnisse undgrundlegenden Konfiguration von EncFS reichtfolgender Einzeiler, der im Verzeichnis des ak-tuellen Benutzers das Verzeichnis v für die ver-schlüsselten Daten und e für die entschlüsseltenanlegt:

    $ encfs ~/v ~/e

    Bei der Frage „Bitte wählen Sie eine der folgen-den Optionen“ kann man einfach p für den vor-konfigurierten Paranoia-Modus wählen und da-nach einen möglichst komplizierten Passsatz an-geben. Anschließend befindet sich unter v dieKonfigurationsdatei .encfs*.xml mit Einstellun-gen zum angelegten EncFS.

    Ein späteres Mounten erfolgt über dasselbe Kom-mando. Möchte man das EncFS wieder aushän-gen, so macht man dies mit:

    $ fusermount -u ~/e

    bupDie Software bup [2] löst gleich zwei Proble-me. Zum einen archiviert bup alle übergebe-nen Daten und ermöglicht deren Wiederherstel-lung. Zum anderen werden bei jedem Speicher-vorgang nur die Änderungen zu bereits in bup

    gesicherten Daten auf der Festplatte abgelegt.Aus Anwendersicht kann man sich bup als Da-tenbank vorstellen, die Daten besonders effizientspeichert. Gerade diese Effizienz ist wichtig, da-mit nur ein Minimum an Daten an den Rechnerim Internet übertragen werden muss.

    Intern verwendet bup Strukturen des Versions-verwaltungssystems git (z. B. das git packfileformat) und bietet ein wahres Füllhorn an Funk-tionen [3]: Den Zugriff auf den Datenbestand viaWebbrowser oder als FUSE-Modul, die Möglich-keit, mit git-Programmen auf die bup-Daten zu-zugreifen und die Sicherung der Datenintegritätmittels PAR2 [4].

    bup-Repository erstellenBevor man mit bup arbeiten kann, muss man einbup-Repository erstellen. bup legt hierbei stan-dardmäßig seine Daten unter ~/.bup, also imjeweiligen Heimatverzeichnis des aktiven Benut-zers, ab. Möchte man den Pfad ändern, so ge-schieht dies über den Parameter -d . Alsersten Test kann man mittels des folgenden Be-fehls ein temporäres bup-Archiv (für den Produk-tivbetrieb muss natürlich ein anderes Verzeichnisgewählt werden) anlegen:

    $ bup -d /tmp/b init

    Daten an bup sendenBup sieht zwei verschiedene Arten vor, wie Da-ten zum Speichern eingereicht werden können.Über das Kommando split können beliebigeDatenströme (z. B. die Ausgabe von tar oderdd) in bup umgeleitet werden. Um beispielsweise

    das eigene Heimatverzeichnis in bup zu sichern,könnte man folgenden Einzeiler verwenden:

    $ tar cv ~ | bup -d /tmp/b split -ny"tar-Test"

    Diese Methode hat den Vorteil, dass auch Zu-griffsrechte sowie Benutzer- und Gruppenzuge-hörigkeiten gesichert werden, hat aber auch denNachteil, dass man nicht gezielt auf einzelne Da-teien der Sicherung zurückgreifen kann. Mit -nwird hierbei der Name des Backup-Satzes ange-geben. Für regelmäßige Backups (und der Ord-nung wegen) empfielt es sich, für verschiedeneAufgaben eigene Backup-Sätze zu verwenden(z. B. konfig für /etc oder meins für ~). Für dieEffizienz von bup ist es allerdings unerheblich,wieviele Backups ein Backup-Satz enthält, da im-mer nur Differenzen zu allen zuvor in bup gesi-cherten Daten gespeichert werden.

    Möchte man auf einzelne Dateien in bup überFUSE [5], den integrierten Webserver oder dasKommandozeilenwerkzeug zugreifen können, sogeschieht die Sicherung über:

    $ bup -d /tmp/b index ~$ bup -d /tmp/b save -n "datei-Testy" ~

    Die erste Zeile legt eine Liste aller zu sicherndenDateien und Verzeichnisse an, die zweite sichertdiese anschließend in der bup-Datenbank. DieseVariante hat aber (derzeit) den Nachteil, dass kei-ne Dateirechte gesichert werden.

    © freiesMagazin CC-BY-SA 3.0 Ausgabe 06/2012 18

    https://github.com/apenwarr/buphttp://zoranzaric.de/bup-cda.pdfhttp://de.wikipedia.org/wiki/PAR2http://fuse.sourceforge.nethttp://creativecommons.org/licenses/by-sa/3.0/deed.de

  • DATENSICHERUNG

    Daten aus bup herausbekommenDas Ablegen von Daten in bup ist relativ einfach.Doch wie kommt man an die Daten wieder her-an?

    Da bup intern die git-Struktur verwendet, bei derjedes Backup über eine eindeutige „CommitID“auffindbar ist, wird für das Wiederherstellen ei-nes Datenstromes ebendiese Nummer benötigt.Zum Auflisten dieser Nummern für das obenangelegte tar-Backup dient das git-Programmselbst:

    $ GIT_DIR="/tmp/b" git log "tar-yTest"

    Das git-Protokoll mit erfolgten Sicherungen.

    Jede Sicherung wird im git-Protokoll mit Com-mitID, dem Ersteller des Backups sowie dem Zeit-punkt der Sicherung vermerkt. Zum Auslesendient das Kommando join, dem die CommitIDübergebenen wird:

    $ bup -d /tmp/b join c9242bd6bb9cfd9c285f01ebb0dcdacf0c620038 | tar xv

    Auf einzelne Dateien in bup kann man mittels desKommandos fuse via beliebiger Dateimanagerlesend zugreifen:

    $ mkdir /tmp/mountpunkt$ bup -d /tmp/b fuse /tmp/mountpunkt

    Möchte man dem FUSE-Modul beim Arbeiten zu-sehen, so erweitert man den Aufruf nach fusenoch um -f. Anschließend kann man im Datei-manager /tmp/mountpunkt als Adresse ange-ben und Dateien aus dem Archiv heraus kopie-ren.

    Um den Zugriff über FUSE zu beenden und bupaus dem Verzeichnis auszuhängen, genügt:

    $ fusermount -u /tmp/mountpunkt

    Der Zugriff über den Webbrowser geschieht ähn-lich:

    $ bup -d /tmp/b web

    Der bup-Webserver lauscht nun an Port8080 und nimmt Verbindungen entgegen.Im Browser gibt man in der Adresszeilehttp://127.0.0.1:8080 an und kann dannDateien aus bup herunterladen. Den Server be-endet man nach getaner Arbeit über die Tasten-kombination Strg + C .

    Von der Kommandozeile kann man natürlichauch seine Backups wiederherstellen. Hierzudient das bup-Kommando restore. Dieses

    benötigt zusätzlich zum Namen des Backup-Satzes auch noch das Datum der Siche-rung. Möchte man die letzte Sicherung

    wiederherstellen, so lautet das Datumlatest.

    Zum Auflisten aller Sicherungszeitpunktedes Backup-Satzes datei-Test dient:

    $ bup -d /tmp/b ls datei-Test | ysort -r

    Der folgende Einzeiler stellt schließlich alle Datei-en und Verzeichnisse aus datei-Test vom Da-tum 2012-04-23-171250 im aktuellen Verzeich-nis wieder her:

    $ bup -d /tmp/b restore "/datei-yTest/2012-04-23-171250/"

    bup-Archiv via FUSE gemountet.

    © freiesMagazin CC-BY-SA 3.0 Ausgabe 06/2012 19

    http://www.freiesmagazin.de/mobil/2012-06-bilder/cloud_gitlslog.pnghttp://www.freiesmagazin.de/mobil/2012-06-bilder/cloud_gitlslog.pnghttp://www.freiesmagazin.de/mobil/2012-06-bilder/cloud_konqueror-fuse.pnghttp://www.freiesmagazin.de/mobil/2012-06-bilder/cloud_konqueror-fuse.pnghttp://creativecommons.org/licenses/by-sa/3.0/deed.de

  • DATENSICHERUNG

    Und jetzt alle zusammenBis auf rsync, das den Transfer der Daten vomeigenen Rechner zum Server im Internet über-nimmt, wurden alle Komponenten vorgestellt.Jetzt kommt es nur noch auf das Zusammenspielan. In der Theorie soll das bup-Repository inEncFS abgelegt und dieses verschlüsselte bup-Archiv wiederum hochgeladen werden.

    Um die Sache zu vereinfachen, habe ich dasSkript encfsBupBackup (Download unter [6]) ge-schrieben, das diese einzelnen Schritte zusam-menfasst und für den Benutzer vereinfacht. Da-mit das Skript einfach genutzt werden kann,sollte man es in ein Verzeichnis, das im Pfadfür ausführbare Dateien (z. B. /usr/local/bin)aufgelistet ist, ablegen und mittels chmod +xencfsBupBackup ausführbar machen.

    Beim ersten Aufruf von encfsBupBackupwird eine Vorlage für die Konfigurationsdatei~/encfsBupBackup.rc angelegt, die man dannmit einem Editor anpassen muss. Neben denVerzeichnissen für EncFS und das bup-Archivsind das EncFS-Password für das automati-sche Mounten, sowie die Zugangsdaten für denInternet-Server anzugeben.

    Daten sichernDas Anlegen von EncFS und bup-Repositoryübernimmt encfsBupBackup, sodass man gleichmit dem Sichern von Daten beginnen kann:

    $ tar cv ~ | encfsBupBackup pipeIn y"tar-Test2"

    Oder auf Dateiebene:

    $ encfsBupBackup filesIn "datei-yTest2" ~

    Das Einhängen vor dem Sichern und anschlie-ßende Aushängen übernimmt wiederum dasSkript.

    Status abfragenZur weiteren Vereinfachung enthält encfsBup-Backup Funktionen, um den Status des bup-Archives abzufragen.

    Neben den Protokollen, die git/bup mitbringen,legt encfsBupBackup ein Eigenes an, das die Na-men der Backup-Sätze und die CommitID einerjeden Sicherung enthält. Dieses kann man sichanzeigen lassen mit:

    $ encfsBupBackup lsLog

    Um nur die Namen aller Backup-Sätze zu bekom-men, verwendet man:

    $ encfsBupBackup lsBackups

    Für die Auflistung der CommitIDs aus demBackup-Satz tar-Test2 dient folgender Einzei-ler:

    $ encfsBupBackup lsCommits "tar-yTest2"

    Die Sicherungsdaten ermittelt man mittels:

    $ encfsBupBackup lsDates "datei-yTest2"

    Daten wiederherstellenDas Wiederherstellen eines Datenstromes an-hand seiner CommitID geschieht unspektakulärvia:

    $ encfsBupBackup pipeOutc9242bd6bb9cfd9c285f01ebb0dcdacf0c620038| tar xv

    Dateien können folgendermaßen zurückgesi-chert werden:

    $ encfsBupBackup filesOut "datei-yTest2" "2012-04-23-171250"

    Der Zugriff via FUSE und Webserver geschiehtüber:

    $ encfsBupBackup fuse /tmp/ymountpunkt

    bzw. über:

    $ encfsBupBackup web

    Was tun wenn’s klemmt?In seltenen Fällen kann es vorkommen, dass ei-ne Wiederherstellung aufgrund angeblich fehlen-der Dateien nicht vorgenommen werden kann.Dies ist aber kein Grund zur Panik, denn nachdem Entschlüsseln des bup-EncFS-Archivesfunktioniert die Wiederherstellung tadellos.

    Um die Entschlüsselung vorzunehmen, verwen-det man folgendes Kommando:

    $ encfsBupBackup decrypt

    © freiesMagazin CC-BY-SA 3.0 Ausgabe 06/2012 20

    http://sourceforge.net/projects/dodger-tools/files/scripts/encfsBupBackuphttp://creativecommons.org/licenses/by-sa/3.0/deed.de

  • DATENSICHERUNG

    Nachfolgende Wiederherstellungsaktionen wer-den nun aus dem (temporär) entschlüsselten Ar-chiv vorgenommen. Für das Löschen des unge-schützten Archivs gibt es:

    $ encfsBupBackup rmDecrypt

    Zum Überprüfen der Datenintegrität dient:

    $ encfsBupBackup fsck

    Hoch damitDamit aus dem lokalen Backup auch ein „Cloud-Backup“ wird, muss es natürlich noch hochgela-den werden. Dies erledigt:

    $ encfsBupBackup upload

    Warum das Ganze?Meine Motivation war anfangs das Sichern vonThunderbird-Postfächern, bei denen die E-Mailsjeweils in großen Dateien zusammenfasst wer-den. Innerhalb dieser Dateien verändert sich bei

    jedem Abholen oder Senden von E-Mails aller-dings nur wenig. Daher macht das Sichern vonkompletten Zuständen wenig Sinn. Eine intelli-gente Lösung, die jeweils nur die Differenz spei-chert, mir aber das Zurücksetzen der Postfächerauf den Zustand eines beliebigen Datums er-laubt, musste her. Nachdem ich ein Skript er-stellt hatte, das den kompletten E-Mail-Backup-Vorgang mit den vorgestellten Werkzeugen ab-deckte, wollte ich auch weitere Daten effizient si-chern. So kam es zu der Entwicklung des Skrip-tes encfsBupBackup, mit dem ich beliebige Da-ten durch kurze Skripte sichern lassen kann. Ne-ben den E-Mail-Postfächern sichere ich nun al-le wichtigen Dateien und Dokumente sowie denEntwicklungszweig von m23 nebst Datenbankmittels encfsBupBackup.

    Quellen: LINKS

    [1] http://www.arg0.net/encfs[2] https://github.com/apenwarr/bup

    [3] http://zoranzaric.de/bup-cda.pdf[4] http://de.wikipedia.org/wiki/PAR2[5] http://fuse.sourceforge.net[6] http://sourceforge.net/projects/dodger-tools/files/

    scripts/encfsBupBackup

    Autoreninformation

    Hauke Goos-Habermann (Webseite)arbeitet freiberuflich als Entwicklerund Trainer für Linux und OpenSource Software. Er ist zudemHauptentwickler des Softwarevertei-lungssystems m23 und weiterer OSSsowie Mitorganisator der Kieler OpenSource und Linux Tage.

    Diesen Artikel kommentieren

    „Form“ © by Randall Munroe (CC-BY-NC-2.5), http://xkcd.com/608/

    © freiesMagazin CC-BY-SA 3.0 Ausgabe 06/2012 21

    http://www.arg0.net/encfshttps://github.com/apenwarr/buphttp://zoranzaric.de/bup-cda.pdfhttp://de.wikipedia.org/wiki/PAR2http://fuse.sourceforge.nethttp://sourceforge.net/projects/dodger-tools/files/scripts/encfsBupBackuphttp://sourceforge.net/projects/dodger-tools/files/scripts/encfsBupBackuphttp://m23.goos-habermann.de/http://www.freiesmagazin.de/comment/reply/275?edit[subject]=Cloud-Backup mit Bordmitteln#comment-formhttp://xkcd.com/608/#'This space intentionally left blank' is less immediately provocative but more Hofstadterially confusing.http://creativecommons.org/licenses/by-nc/2.5/http://xkcd.com/608/http://creativecommons.org/licenses/by-sa/3.0/deed.de

  • NAVIGATION

    Routino von Uwe Steinmann

    K aum ein Gemeinschaftsprojekt hat inkurzer Zeit soviel Zuspruch und Un-terstützung erhalten wie OpenStreet-Map (siehe „OpenStreetMap – Eine virtuel-le Welt gedeiht“, freiesMagazin 03/2012 [1]).Die weltweite Karte hat in vielen Ländern,darunter auch Deutschland, einen Detailreich-tum erlangt, der kommerzielle Kartenanbieterschlecht aussehen lässt. Ein anderes, zuneh-mend interessantes Anwendungsgebiet istdie Navigation auf Basis der OSM-Daten. ImWiki von OSM [2] werden verschiedene Pro-gramme und Web-Seiten vorgestellt. DieserArtikel greift ein Programm heraus, das etwasunglücklich im Wiki als „web-based router“bezeichnet wird: Routino [3].

    Grundsätzlich gilt: Wie hoch die Qualität der ge-fundenen Routen ist, hängt stark von der Genau-igkeit und Vollständigkeit des Datenmaterials ab.Hier gilt für OSM noch immer: Ländliche Gebie-te sind oft ungenügend erfasst, Städte und Bal-lungszentren dagegen so gut, dass selbst geeig-nete Wege für beispielsweise Rollstuhlfahrer ge-funden werden. Die Daten sind das Eine, darüberhinaus ist aber auch passende Software für dasRouting notwendig. Routino ist so eine Software,die neben der Web-Schnittstelle auch ohne die-se auskommt und beispielsweise aus Marble [4]heraus verwendet werden kann. Mit Routino undden OSM-Daten ergeben sich Möglichkeiten, diesonst kaum zu finden sind, beispielsweise eineRollstuhlroute durch den Wuppertaler Zoo.

    Mit dem Rollstuhl durch den Wuppertaler Zoo.

    InstallationDie Installation von Routino ist besonders ein-fach unter Debian. In der testing-Distributionist die aktuelle Version 2.2 enthalten. Kon-kret findet man zwei Pakete vor: Den Routerselbst (routino) und eine grafische Oberfläche(routino-www), die schlicht aber sehr funktionalist. Beides findet man auch in der Download-datei, die man von der Routino-Homepage [5]

    herunterladen kann. Eine Installationsanleitungaus den Quellen der Software findet man eben-falls dort [6]. Im Folgenden wird jedoch von derInstallation der Debian-Pakete ausgegangen.

    Nach der Installation (bei der möglicherwei-se noch weitere Pakete installiert werden,um Abhängigkeiten aufzulösen) kann die Web-Schnittstelle unter http://localhost/routinoeingesehen werden. Im Unterschied zur Original-

    © freiesMagazin CC-BY-SA 3.0 Ausgabe 06/2012 22

    http://www.freiesmagazin.de/freiesMagazin-2012-03http://wiki.openstreetmap.org/wiki/Routinghttp://www.routino.orghttp://edu.kde.org/marble/http://www.freiesmagazin.de/mobil/2012-06-bilder/routino-zoo.pnghttp://www.freiesmagazin.de/mobil/2012-06-bilder/routino-zoo.pnghttp://www.routino.org/download/http://www.routino.org/documentation/installation.htmlhttp://creativecommons.org/licenses/by-sa/3.0/deed.de

  • NAVIGATION

    version zeigt diese als Kartenausschnitt die ge-samte Erde (und nicht nur Großbritannien) undbietet die OSM Cycle Map als alternative Karten-darstellung an.

    Ein Routing kann aber noch nicht stattfinden, weilnoch eine geeignete Datenbank mit dem Karten-material fehlt. Routino nutzt nicht die OSM-Datendirekt, sondern konvertiert die Daten zunächstin ein eigenes, optimiertes Format. Die etwa 20GB unkomprimierte OSM-Daten für Deutschlandschrumpfen somit auf etwa 800 MB, die sich übervier Dateien verteilen.

    Erstellung der Routino-DatenbankDer Download, das Dekomprimieren der Da-ten und die Erzeugung der Routino-Datenbankfür Deutschland kann durch das folgende Shell-Skript erfolgen. Auf den Seiten von Geofrabrik [7]finden sich weitere kleinere aber auch größereBereiche der Welt.

    #!/bin/shwget http://download.geofabrik.de/osm/europe/germany.osm.bz2[ -f germany.osm ] && rm germany.osmmkdir -p data[ -d data ] && rm -f data/*pbzip2 -d germany.osm.bz2planetsplitter --dir=data --prefix=de germany.osm

    Listing 1: create.sh

    Zum Entpacken der Daten wird pbzip2 verwen-det, das mehrere Prozessoren nutzen und so-mit auf Mehrprozessorsystemen deutlich schnel-ler entpacken kann. Die Standardvariante bzip2kann aber ebenso verwendet werden.

    planetsplitter ist ein Programm aus der Routino-Distribution, das die eigentliche Erzeugung derDatenbank übernimmt. Während das Programmläuft, wird ständig der aktuelle Status ausgege-ben. Bei einem Aufruf als cronjob ist es daherratsam, den Parameter --loggable zu verwen-den und die Ausgaben in eine Datei zu schreiben.planetsplitter --help listet alle verfügbarenOptionen auf.

    Auf einem Server mit einem Intel XEON 2.4 GHzmit vier Kernen sowie 8 GB RAM dauert die Da-tenbankerzeugung etwa eine Stunde.

    Das Ergebnis liegt in dem Verzeichnis data undbesteht aus den vier Dateien

    de-nodes.memde-relations.memde-segments.memde-ways.mem

    Routino un-ter Debianerwartet die-se vier Da-teien oh-ne das Prä-fix de- indem Ver-zeichnis

    /var/lib/routino/data. Sie sollten also dort-hin kopiert werden (dafür sind Root-Rechte er-forderlich). Damit ist bereits alles für einen ers-ten Test vorbereitet, der bequem über die Web-Schnittstelle erfolgen kann.

    Der erste TestDas Routino-Web-Frontend ist in eine linke Spal-te mit dem Bedienpanel und eine rechte Spaltemit der Karte aufgeteilt. Zunächst sollte man inder Karte auf Deutschland zoomen, weil das Rou-ting aufgrund der erstellten Datenbank nur dortfunktionieren kann.

    In dem Bedienpanel befinden sich auf dem Rei-ter „Options“ alle Einstellmöglichkeiten, allen vor-an die Festlegung von Start- und Zielpunkt in derRubrik „Waypoints“. Ein Klick auf das Symbol mitder „1“ befördert es in die Mitte der Karte undsetzt die Startposition. Danach lässt es sich belie-big auf der Karte verschieben. Analog setzt manso den Zielpunkt für das Symbol mit der „2“. Alleweiteren Einstellungen sind für einen ersten Testirrelevant, sodass ein Klick auf einen der Knöpfe„Shortest“ oder „Quickest“ am unteren Rand desBedienpanels das Routing startet. Das Ergebniserscheint daraufhin als grüne oder blaue Linie inder Karte und im Bedien-Panel wird auf den Rei-ter „Results“ umgeschaltet. Kürzere Strecken biszu einigen Kilometern sind in der Regel in weni-ger als einer Sekunde berechnet. Die Verzöge-rung liegt eher in der grafischen Darstellung alsim eigentlichen Routing.

    Anpassung der EinstellungenDie zuvor berechnete Route war für die Fahrtmit einem Auto erstellt worden. Routino kenntjedoch zahlreiche weitere Profile, die andereFortbewegungsmittel beschreiben. Auch eigeneProfile sind möglich, erfordern aber Änderun-gen an den Konfigurationsdateien, die über das

    © freiesMagazin CC-BY-SA 3.0 Ausgabe 06/2012 23

    http://www.geofabrik.de/http://www.freiesmagazin.de/mobil/2012-06-listings/create.shhttp://creativecommons.org/licenses/by-sa/3.0/deed.de

  • NAVIGATION

    Fußweg vom Jungfernstieg in Hamburg zum Englischen Garten in München.

    Web-Frontend nicht ausgeführt werden können.Dennoch bleiben viele Einstellparameter, die aufdem Reiter „Options“ in den Rubriken „TransportType“, „Highway Preferences“, „Speed Limits“,„Property Preferences“ und „Other Restrictions“zu finden sind.Die wichtigste Einstellung ist der Fahrzeugtypin der Rubrik „Transport Type“. Die Datenbankwurde bereits für die möglichen Fortbewegungs-möglichkeiten erstellt und berücksichtigt Ab-sperrungen („barriers“) oder die Erlaubnis zur

    Straßenbenutzung („access“). Der Fahrzeugtypverändert auch die weiteren Einstellungen in denanderen Rubriken. Er wählt somit eine sinnvol-le Voreinstellung, die jedoch danach verändertwerden kann. So dürfen Fußgänger die Einbahn-straßen natürlich in beiden Richtungen begehen,Fahrräder jedoch nicht (sofern dies nicht ohnehinin den OSM-Daten erlaubt ist). Möchte man sichüber diese Beschränkung hinwegsetzen, dannkann die Option „Obey oneway “ explizit abge-wählt werden.

    Die „Highway Preferences“ und „Property Prefe-rences“ erlauben besonders weitreichende Ein-stellmöglichkeiten, erfordern aber auch behutsa-men Umgang. Hier geht es um eine Gewich-tung der Straßentypen im allgemeinen. Das führtmitunter zu Wegführungen, die nicht sofort ein-leuchtend sind. Dazu ein Beispiel: Als Fußgän-ger steht man oft vor der Entscheidung zwischendem etwas kürzeren Weg an der Hauptstraßeentlang oder dem längeren Weg durch den Parkoder Wald. Hier ein geeignetes Maß zu finden istsehr subjektiv. Über die „Highway Preferences“ist dies durch höhere Gewichtung der größerenoder kleineren Straßen und Wege möglich. Dasführt mitunter dazu, dass selbst bei Berechnungder kürzesten Route eine längere Route gewähltwird, die dafür aber „durchs Grüne“ geht. Verdeut-licht wird dies später nochmal, wenn die Integra-tion in Marble vorgestellt wird.

    Die „Speed Limits“ dürften auch ohne Erklärungeinleuchten. Zwei Hinweise seien aber erlaubt.Wenn es eine Geschwindigkeitsbegrenzung inden OSM-Daten gibt („maxspeed“), dann wirddiese auch berücksichtigt. Die Geschwindigkeits-begrenzungen sind wirklich nur vom Straßentypabhängig und nicht etwa davon, wo diese Straßeverläuft. Auf einer „Primary road“ rast man dannauch schon mal mit voreingestellten 96 km/hdurch eine Ortschaft. Die veranschlagte Fahrdau-er ist also mit Vorsicht zu interpretieren.

    Hinter „Property Preferences“ verbergen sichweitere nützliche Einstellungen zur Beinflussungdes Routings. „Bicycle Route“ und „Walking

    © freiesMagazin CC-BY-SA 3.0 Ausgabe 06/2012 24

    http://www.freiesmagazin.de/mobil/2012-06-bilder/routino-fussweg.pnghttp://www.freiesmagazin.de/mobil/2012-06-bilder/routino-fussweg.pnghttp://creativecommons.org/licenses/by-sa/3.0/deed.de

  • NAVIGATION

    Route“ berücksichtigen beispielsweise die Rela-tionen vom Typ „route“ in den OSM-Daten, umRad- und Wanderwege zu priorisieren. Für ei-ne Radtour kann es durchaus sinnvoll sein, denWert für „Bicycle Route“ auf 90 % zu setzen, umsich vorwiegend auf ausgewiesenen Radwegenfortzubewegen.

    Eine Warnung sei abschließend noch erlaubt.Einzelne Prozentwerte bis auf 100% hochzuset-zen, kann mitunter sehr unerwartete und we-nig brauchbare Ergebnisse liefern. Insbesonde-re dann, wenn Routino gezwungen ist, Wege zubenutzen, die nicht flächendeckend erfasst sind,z.B. die besagten Rad- und Wanderwege. Da ge-rät die Fahrradtour schnell zur Deutschlandtour,wenn Zwischenstücke einer vermeintlich kurzenRoute nicht berücksichtigt werden, weil sie nichtals Radweg ausgewiesen sind und Routino riesi-ge Umwege daher für geeigneter hält. Der Fehlerliegt selten in Routino, sondern oft in den unvoll-ständigen OSM-Daten oder eben den extrem ge-wählten Einstellungen.

    Darstellung der ErgebnisseDas Ergebnis einer Routenberechnung ist rechtumfangreich. Da ist zunächst die Darstellung derWegstrecke in der Karte. Die einzelnen Fahrtrich-tungsänderungen sind zudem im Bedienpanelgelistet. Ein Klick auf einen Eintrag kennzeichnetdie Position in der Karte und gibt eine Fahranwei-sung aus. Darüber hinaus werden weitere Datei-en erzeugt, die sowohl für die Anzeige im Brow-ser (HTML) als auch für eine Weiterverarbeitung

    geeignet sind (Text-Dateien im CSV-Format undGPX-Dateien).

    Der dritte Reiter „Data“ im Bedienpanel ist wirk-lich nur für diejenigen gedacht, die tiefer indie Eigenheiten des Routers absteigen möchten.Wenn man selbst für OSM Daten einträgt, dannist dies aber durchaus eine sehr hilfreiche Dar-stellung des Datenbestands, um letztlich auchFehler in den OSM-Daten zu finden.

    ZwischenhalteEs bleibt abschließend zum Frontend nur nochzu erwähnen, dass auch bis zu sieben Zwischen-halte eingetragen werden können. Hinter demStart- und Zielpunkt befinden sich sechs Icons.Über das Plus-Zeichen kann ein weiterer Zwi-schenhalt hinter dem aktuellen Zwischenhalt ein-getragen werden. Die einzelnen Positionen wer-den daraufhin neu nummeriert. Routino selbstkann bis zu 99 Positionen berücksichtigen, dasWeb-Frontend begrenzt dies auf neun. Dass Zwi-schenhalte wieder entfernt und in der Reihen-folge verändert werden können, ist fast schonselbstverständlich.

    Routino auf der KommandozeileDas bisher Gesagte suggeriert eine Web-Applikation mit etwas angestaubter Oberflä-che und auf den Wiki-Seiten von OSM findetman Routino leider in einem Vergleich unter-schiedlicher „Route services with public instan-ces“. Tatsächlich ist Routino aber ein schlankesund in klassischer Unix-Philosophie entwickel-tes Kommandozeilen-Programm, das eines kann:

    Wege zwischen Koordinatenpunkten finden. Dar-in liegt die eigentliche Stärke der Software. Al-le Einstellmöglichkeiten der Web-Oberfläche kön-nen über Optionen an Routino übergeben wer-den. Ein auf das Notwendige reduzierter Aufrufwäre der Folgende:

    $ routino-router --dir=/var/lib/yroutino/data --transport=motorcar y--shortest --lon1=7.48679 --lat1y=51.37733 --lon2=7.49537 --lat2y=51.37761 --output-html

    Die Option --output-html könnte noch entfal-len, allerdings werden dann gleich fünf Datei-en, statt nur einer (shortest.html) im aktuel-len Verzeichnis abgelegt: Eben die Dateien, dieauch über die Web-Oberfläche eingesehen wer-den können. In Debian wird der Router im Übri-gen in routino-router umbenannt, weil der Namerouter zu generisch ist. Bei der Standarddistribu-tion ist also der Programmname router zu ver-wenden.

    Für deutsche Fahranweisungen bietet sich derParameter --language=de an.

    Auf dem oben beschriebenen Rechner brauchtder folgende Aufruf

    $ routino-router --dir=/var/lib/yroutino/data --transport=motorcar y--shortest --lon1=10.01364 --lat1y=54.02590 --lon2=10.40675 --lat2y=47.67908 --language=en --output-yhtml

    © freiesMagazin CC-BY-SA 3.0 Ausgabe 06/2012 25

    http://creativecommons.org/licenses/by-sa/3.0/deed.de

  • NAVIGATION

    Routing mit Routino in Marble.

    etwa 3,5 Sek. Berechnet wird eine Strecke überca. 840 km quer durch Deutschland. Möchte mandie gleiche Strecke zu Fuß bewältigen, dann soll-te man zusätzlich 22 Sek. für die Routenberech-nung berücksichtigen. Bei 12.912 Minuten, dieRoutino für das Absolvieren der Strecke veran-schlagt, eine durchaus akzeptable Zeit. :-) Die3.134 Gehanweisungen sollten man allerdingsbesser nicht in Papierform mitnehmen.

    PHP-SchnittstelleWas manchen Anwendern wie die Steinzeit desComputer-Zeitalters vorkommt, ist für den Web-Programmierer ein Segen. Gemeint sind Kom-mandozeilenprogramme, die sich leicht in Web-Anwendungen nutzen lassen. Daraus ergeben

    sich weitreichendeAnwendungsgebiete.Wer in PHP program-miert und sich nichtselbst um die pas-senden Optionen aufder Kommandozeilekümmern möchte, dersollte sich das PEAR-Paket Routino-Routerder MMK GmbH an-schauen [8]. Mit weni-gen Zeilen PHP-Codelässt sich der Routerstarten und man be-kommt ein Ergebnis-Objekt mit allen Ab-biegepunkten.

    Listing 2: routing.php

    Genutzt wird diese Schnittstelle beispielsweise ineiner Umkreissuche zur Ermittlung des nächstge-legenen Restaurants zum aktuellen Standort [9].Die Suche selbst sortiert die gefundenen Restau-rants zunächst nach der kürzesten Luftliniendi-stanz. Für die ersten sechs Treffer wird jedochdie Entfernung mit dem Auto zusätzlich ermitteltund ausgegeben. Diese Entfernung basiert aufder von Routino ermittelten Fahrstrecke.

    MarbleDas KDE-Programm Marble [4] kann ebenfallsGebrauch von Routino machen. Unter Debian istnichts weiter notwendig als die Installation desProgramms. In der ebenfalls zweigeteilten Dar-stellung in Marble gibt es im linken Bereich einenReiter „Routing“. Sofern Routino von Marble er-kannt wurde, findet man unten auf dem Reiter einAuswahlmenü der möglichen Router, z.B. auchOpenRouteService [10].

    Nach der Aktivierung sind zwei Routen durch dievorgegebenen Punkte ersichtlich. Die blaue Rou-te wurde durch Routino berechnet. Die graueRoute stammt von OpenRouteService. Was be-reits oben erwähnt wurde, zeigt sich hier ganzdeutlich: Der Weg von Punkt B zu Punkt C ver-läuft bei Routino durch den Wald und ist damitsicher länger als der vorgeschlagene Weg vonOpenRouteService über die Hauptstraße vomTyp „secondary“. Auch auf dem Weg von PunktD zu Punkt E verlässt Routino die Straße vomTyp „tertiary“ sobald als möglich und wählt denZickzack-Kurs durch das Wohngebiet. Auch hierwird der offensichtlich längere Weg gewählt. Die

    © freiesMagazin CC-BY-SA 3.0 Ausgabe 06/2012 26

    http://www.freiesmagazin.de/mobil/2012-06-bilder/routino-marble.pnghttp://www.freiesmagazin.de/mobil/2012-06-bilder/routino-marble.pnghttp://www.mmk-hagen.de/produkte-services/download.htmlhttp://www.freiesmagazin.de/mobil/2012-06-listings/routing.phphttp://www.gastlicheswestfalen.de/nc/umkreissuche.htmlhttp://edu.kde.org/marble/http://www.openrouteservice.org/http://creativecommons.org/licenses/by-sa/3.0/deed.de

  • NAVIGATION

    Abneigung Routinos für größere Straßen beider Fußgängernavigation liegt in den reduzier-ten Prozentwerten für Straßen dieses Typs (ein-sehbar in den „Highway Preferences“ der Web-Oberfläche). Marble erlaubt hier keine Änderungder voreingestellten Werte. Sie müssten direkt inden Konfigurationsdateien von Routino erfolgen(/usr/share/routino/profiles.xml) oderbesser durch Angabe einer eigenen Profildateibeim Aufruf des Routers (Option --profiles).

    Zu guter LetztRouten in guter Qualität berechnen kann Routino.Nicht minder interessant ist aber auch die Nut-zung als Testwerkzeug für die eigenen Beiträgezu OSM. Die Berechnung bekannter Wegführun-gen durch Routino offenbart oft Überraschungen,die bei näherer Betrachtung auf unzureichendesMapping zurückzuführen sind. Schranken („bar-rier“), denen die Passierbarkeit durch Fußgän-ger fehlt, Einbahnstraßen, die von Fahrradfah-rern beidseitig befahren werden dürfen, die Rou-tino aber umständlich umfährt, weil dies nicht ausden OSM-Daten hervorgeht, fehlerhafte Abbiege-vorschriften oder sogar fehlende Verbindungenzwischen Wegen fallen schnell auf.

    Eine zweite Anwendung ist das gezielte Erstellenvon gpx-Dateien und das Ausmessen von Stre-cken. Gelegentlich benötigt man im Vorfeld einegpx-Datei einer anstehenden Wanderung oderFahrradtour. Eventuell möchte man auch nur wis-sen, auf welche Streckenlänge man sich einlässt.Mit genügend Zwischenhalten schickt man Rou-tino genau auf den geplanten Weg und erhält die

    Länge der Strecke, sowie deren gpx-Datei zumDownload.

    Ein paar EigenheitenDas Routino Web-Frontend erlaubt ein Zoom biszur Stufe 16. In der höchsten Stufe fällt auf, dassberechnete Routen nicht immer genau auf We-gen liegen. Bei sehr nahe aneinander liegendenWegen kann es auch schwierig werden, den ge-nauen Weg zu ermitteln. Der Grund liegt in einerOptimierung der Datenbank, die seit Version 2.2greift. Knoten auf Wegen, die weniger als 5 Me-ter von der geradlinigen Verbindung abweichen,werden nicht mehr berücksichtigt. Dies reduziertdie Datenbankgröße um etwa ein Drittel und ver-kürzt die Zeit für das Routing geringfügig. DerPreis sind etwas ungenauere Wegführungen, diefür die Navigation aber unerheblich sind.

    Die ermittelten Wegzeiten waren schon Thema.Man könnte auch behaupten, die vorhergesag-ten Zeiten sind innerstädtisch hoffnungslos opti-mistisch. Das liegt nicht nur an den Höchstge-schwindigkeiten, die aus dem Straßentyp ermit-te