48
freiesMagazin April 2009 Topthemen dieser Ausgabe Openmoko – Free your phone Seite 4 Openmoko steht für offene Mobilkommunikation und hat das Ziel, eine offene Smartphoneplattform zu schaffen. Bereits 2006 wurde das Openmoko-Projekt von der taiwanesischen Firma First International Computing (FIC) vorgestellt. Heute sind bereits Lösungen zur Nutzung von Technologien wie Assisted GPS (AGPS) oder die Or- tung mittels Handynetz (GSM) in Aussicht. Die unterschiedlichen verfügbaren Images bieten dem Nutzer bereits jetzt eine große Auswahl. (weiterlesen) Das Dateisystem ext4 Seite 11 Zweieinhalb Jahre nach seiner ersten Ankündigung ist das neue Dateisystem ext4 bereit für den breiten Einsatz. Hier nun ein erster Blick auf seine Features und die Leistung des neuen Dateisystems. Außer Konkurrenz erfolgt auch eine erste Geschwindigkeitsmessung von btrfs. (weiterlesen) Programmieren in KBasic – Eine kurze Einführung Seite 21 Die Sprache KBasic ist eine leistungsfähige Programmiersprache, die einfach und intuitiv zu erlernen ist. Es ist eine neue Programmiersprache ähnlich zu VB.NET und Visual Basic 6. KBasic ist 100 % syntaxkompatibel zu VB6 und QBasic. Außerdem unterstützt KBasic VB.NET direkt durch Funktionen, ähnliche Objekte und Klassen. Dabei ist es aber kein VB-Klon! Es handelt sich um eine voll funktionsfähige, objektorientierte Sprache, die die modernen Programmiertechniken mit eigenen Objekten und Ereignissen unterstützt. Der Artikel soll eine kleine Einführung in die Sprache geben. (weiterlesen) © freiesMagazin GNU FDL Ausgabe 04/2009 ISSN 1867-7991

Openmoko – Free your phone Seite 4 · Das Dateisystem ext4 Seite 11 Zweieinhalb Jahre nach seiner ersten Ankündigung ist das neue Dateisystem ext4 bereit für den breiten Einsatz

  • Upload
    others

  • View
    1

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Openmoko – Free your phone Seite 4 · Das Dateisystem ext4 Seite 11 Zweieinhalb Jahre nach seiner ersten Ankündigung ist das neue Dateisystem ext4 bereit für den breiten Einsatz

freiesMagazin April 2009

Topthemen dieser Ausgabe

Openmoko – Free your phone Seite 4Openmoko steht für offene Mobilkommunikation und hat das Ziel, eine offene Smartphoneplattform zu schaffen.Bereits 2006 wurde das Openmoko-Projekt von der taiwanesischen Firma First International Computing (FIC)vorgestellt. Heute sind bereits Lösungen zur Nutzung von Technologien wie Assisted GPS (AGPS) oder die Or-tung mittels Handynetz (GSM) in Aussicht. Die unterschiedlichen verfügbaren Images bieten dem Nutzer bereitsjetzt eine große Auswahl. (weiterlesen)

Das Dateisystem ext4 Seite 11

Zweieinhalb Jahre nach seiner ersten Ankündigung ist das neue Dateisystem ext4 bereit für den breiten Einsatz.Hier nun ein erster Blick auf seine Features und die Leistung des neuen Dateisystems. Außer Konkurrenz erfolgtauch eine erste Geschwindigkeitsmessung von btrfs. (weiterlesen)

Programmieren in KBasic – Eine kurze Einführung Seite 21Die Sprache KBasic ist eine leistungsfähige Programmiersprache, die einfach und intuitiv zu erlernen ist. Es isteine neue Programmiersprache ähnlich zu VB.NET und Visual Basic 6. KBasic ist 100 % syntaxkompatibel zuVB6 und QBasic. Außerdem unterstützt KBasic VB.NET direkt durch Funktionen, ähnliche Objekte und Klassen.Dabei ist es aber kein VB-Klon! Es handelt sich um eine voll funktionsfähige, objektorientierte Sprache, die diemodernen Programmiertechniken mit eigenen Objekten und Ereignissen unterstützt. Der Artikel soll eine kleineEinführung in die Sprache geben. (weiterlesen)

© freiesMagazin GNU FDL Ausgabe 04/2009 ISSN 1867-7991

Page 2: Openmoko – Free your phone Seite 4 · Das Dateisystem ext4 Seite 11 Zweieinhalb Jahre nach seiner ersten Ankündigung ist das neue Dateisystem ext4 bereit für den breiten Einsatz

MAGAZIN

Editorial

Seid fruchtbar und mehret Euch . . .

Obschon dieses Bibelzitat (1. Buch Mose, Kapi-tel 1, Vers 28) auch auf die heutige Zeit im Sinnevon „Make Love, Not War!“ zutrifft, wollen wir da-mit eher auf die Vermehrung im freiesMagazin-Team hinweisen – auch wenn diese mehr in or-ganisatorischer als biologischer Form war.

Unserem Aufruf letzten Monat nach mehr Unter-stützung [1] sind zahlreiche Menschen gefolgt.Als Resultat konnten wir die zwei neuen SetzerEkkehard Hollmann und Dominik Honnef sowiedie drei neuen Korrektoren Raoul Falk, StephanHochhaus und Karsten Schuldt gewinnen. Wirwünschen den Neuen viel Erfolg und hoffen, dasssie Spaß bei uns haben werden!

Und so freudig die Nachricht auch ist, müssenauch ein paar Tränen vergossen werden, dennEva Drud hat als Gründerin von freiesMagazindas Team verlassen. Aufgrund zeitlicher Über-schneidungen konnte sie leider nicht mehr wiebisher mitarbeiten und hat daher ihren Postenals „Chefin“ des Magazins freigegeben. Ihre Ar-beit übernimmt nun Dominik Wagenführ, der inder Vergangenheit schon des öfteren die Redak-tionsaufgaben übernommen hatte. Das gesamtefreiesMagazin-Team möchte sich bei Eva bedan-ken – vor allem weil sie grundlegend dafür verant-wortlich ist, dass es das Magazin überhaupt gibt.Wir wünschen Dir alles Gute für die Zukunft!

freiesMagazin war letzten Monat auch sehrgefragt, denn es gab gleich zwei Interviewsmit Dominik Wagenführ. Zum einen hat er Da-niel Schneider von der Linux-Seite Pinguin-zubehör [2] Rede und Antwort gestanden.freiesMagazin ist dort nicht allein zu Wort ge-kommen, sondern es wurden auch andere Maga-zine wie Yalm oder Magdriva zu einigen Themenbefragt [3]. Zum anderen wurde Dominik Wagen-führ von Mario Heide von pofacs.de [4] („Pod-cast für alternative Computersysteme“) befragtund plauderte etwas aus dem Nähkästchen [5].

Wie in der letzten Ausgabe bei der Auswer-tung der freiesMagazin-Umfrage angekündigt,haben wir die Artikelwunschliste der Leser ver-öffentlicht [6]. Nach Bereichen sortiert findenSie dort alle Themen, zu denen die Leser vonfreiesMagazin beziehungsweise die Umfrage-teilnehmer gerne etwas lesen würden. WennSie also als Autor bei freiesMagazin tätig wer-den wollen und noch nicht genau wissen, wor-über Sie etwas schreiben sollen, schauen Siedoch einmal in die Wunschliste. Vielleicht fin-den Sie ein Thema, was Sie interessiert. Wennja, schicken Sie uns Ihren Artikelentwurf an

. Natürlich freuenwir uns auch immer über Artikel, die (noch) nichtauf dieser Liste stehen.

Inhalt

Linux allgemeinOpenmoko – Free your phone S. 4gNewSense – Das freie Ubuntu S. 8Das Dateisystem ext4 S. 11Ein Tuz für den Kernel S. 18

SoftwareProgrammieren in KBasic S. 21Installation von KBasic S. 26Datensammlung mit Tellico S. 29Kurztest: Etherpad S. 32

CommunityLinux-Unterstützung: DVD-Brenner-Update

S. 34

Rückblende zur CeBit 2009 S. 37Rezension: Coding for Fun S. 38

MagazinEditorial S. 2freiesMagazin-Programmierwettbewerb S. 41Leserbriefe S. 45Veranstaltungen S. 47Konventionen S. 47Vorschau S. 47Impressum S. 48

© freiesMagazin GNU FDL Ausgabe 04/2009 2

Page 3: Openmoko – Free your phone Seite 4 · Das Dateisystem ext4 Seite 11 Zweieinhalb Jahre nach seiner ersten Ankündigung ist das neue Dateisystem ext4 bereit für den breiten Einsatz

MAGAZIN

Dem Wunsch nach mehr Artikeln zu Program-miersprachen, Linux-Interna und Openmoko sindwir diesen Monat sogar gleich nachgekommen.Unsere drei Topthemen decken diese Gebiete ab,aber natürlich finden Sie noch zahlreiche andereThemen in dieser Ausgabe von freiesMagazin.

Und da das Thema Programmieren ganz obenauf der Wunschliste vieler Leser stand, wollen wirgenau diese herausfordern. Aus diesem Grundhaben wir einen kleinen Programmierwettbewerbgestartet, bei dem es darum geht, eine Künstli-che Intelligenz (also das Verhalten des Compu-tergegners) für ein simples Spiel zu programmie-ren. Als kleiner Anreiz winkt dem Sieger mit demstärksten Programm ein 25-Euro-Gutschein [7].

Und nun wünschen wir Ihnen viel Spaß mit derneuen AusgabeIhre freiesMagazin-Redaktion

LINKS

[1] http://www.freiesmagazin.de/20090228-freiesmagazin-sucht-mithilfe

[2] http://www.knetfeder.de/linux/

[3] http://www.freiesmagazin.de/090310-freiesmagazin-im-interview

[4] http://www.pofacs.de/

[5] http://www.freiesmagazin.de/090312-freiesmagazin-im-interview-2

[6] http://www.freiesmagazin.de/20090328-artikelwunschliste-veroeffentlicht

[7] http://www.freiesmagazin.de/090401-programmierwettbewerb-gestartet „Listen to Yourself“ © by Randall Munroe (CC-BY-NC-2.5), http://xkcd.com/481

© freiesMagazin GNU FDL Ausgabe 04/2009 3

Page 4: Openmoko – Free your phone Seite 4 · Das Dateisystem ext4 Seite 11 Zweieinhalb Jahre nach seiner ersten Ankündigung ist das neue Dateisystem ext4 bereit für den breiten Einsatz

MOBIL

Openmoko – Free your phone von Florian Schweikert

O penmoko [1] steht für offene Mobil-kommunikation und hat das Ziel, ei-ne offene Smartphoneplattform zu

schaffen. Bereits 2006 wurde das Openmoko-Projekt von der taiwanesischen Firma FirstInternational Computing (FIC) [2] vorgestellt.Heute sind bereits Lösungen zur Nutzungvon Technologien wie Assisted GPS (AGPS)oder die Ortung mittels Handynetz (GSM) inAussicht. Die unterschiedlichen verfügbarenImages bieten dem Nutzer bereits jetzt einegroße Auswahl.

Neo1973. © MookiE, Sean (GFDL)

HardwareBei Openmoko ist nicht nur die Software frei ver-fügbar, sondern auch die Schalt- und Gehäuse-pläne [3].

Neo1973Das erste Modell Neo1973 (oder GTA01) [4]konnte ab Mitte 2007 bestellt werden, welchesallerdings nur für Entwickler gedacht war. DasNeo1973 verfügt über einen hochauflösenden2,8-Zoll-Touchscreen und eine (recht langsame)266-MHz-ARM-CPU [5] von Samsung, wie sieauch in vielen anderen Smartphones zu findenist. Es bietet 128 MB RAM, aber nur 64 MBinternen Flashspeicher. Eine Besonderheit desGTA01 war der GPS-Chip zur Positionsbestim-mung, welcher zur damaligen Zeit keine Selbst-verständlichkeit war. Dieses Modell hatte aller-dings zunächst Probleme mit der Energieverwal-tung, sodass eine lange Standbyzeit nicht mög-lich war.

Neue Neo1973 sind inzwischen nicht mehr er-hältlich, es werden aber immer wieder gebrauch-te Geräte in Auktionshäusern gesichtet.

NeoFreerunnerEin Jahr nach dem ersten Modell folgte mit demNeoFreerunner [6] ein Gerät, welches auch fürweniger erfahrene Linux-User interessant ist. Ne-ben GPS, Beschleunigungssensoren und Lage-sensor verfügt es im Gegensatz zum Neo1973

über WLAN und einen Grafikchip mit 3-D-Beschleunigung. Der auf 400 MHz getakteteARM-Prozessor stellt ausreichend Rechenleis-tung zur Verfügung. Der interne Flashspeicherwurde auf 256 MB aufgestockt. Einige Schwach-punkte des Neo1973 wurden mit Einführung derFreerunners nicht behoben. Beispielsweise un-terstützt auch das GTA02 lediglich USB 1.1 undkann auch das mobile Breitbandinternet UMTSnicht nutzen.

Der Nachfolger des Neo1973.© Coolcat (GFDL)

© freiesMagazin GNU FDL Ausgabe 04/2009 4

Page 5: Openmoko – Free your phone Seite 4 · Das Dateisystem ext4 Seite 11 Zweieinhalb Jahre nach seiner ersten Ankündigung ist das neue Dateisystem ext4 bereit für den breiten Einsatz

MOBIL

GlossarAGPS: GPS berechnet aus den Positionen von Satelliten und den Signallaufzeiten zur Erde die Position desEmpfängers. „Assisted Global Positioning System“ kann die Zeit bis zur ersten Positionsbestimmung verkür-zen, indem es die Satellitenpositionen und Bahndaten über das Mobilfunknetz holt.Edge: „Enhanced Data Rates for GSM Evolution“ verwendet statt der bei GPRS üblichen Frequenzmo-dulation die effizientere Phasenmodulation. Dadurch erhöht sich die theoretische Übertragungsrate von171,2 kbit/s auf maximal 473 kbit/s. Typischerweise erreicht ein Edge-fähiges Gerät 220 kbit/s. Die Weiter-entwicklung EDGE Evolution verringert die Latenz stark und hat eine theoretische Maximalübertragungsratevon 1 MBit/s. Diese Entwicklung ist teilweise rückwärtskompatibel.

Als Flaschenhals erwies sich die Grafikeinheit,da sie zusammen mit dem microSD-Slot aneinem zu schmalen Bus angeschlossen wur-de. Somit ist es nicht möglich, Videos in vol-ler VGA-Auflösung mit annehmbarer Framerateabzuspielen. Ein anderes Problem sind GSM-Störgeräusche, die bei Handynetzen mit schlech-ter Netzabdeckung auftreten.

GTA03Noch in diesem Jahr sollte ein neues Gerät mitGPRS-Beschleunigung Edge und einer Kame-ra folgen [7]. Der 3-D-Grafikchip sollte wiederentfernt werden, wobei der 667-MHz-Samsung-Chip über integrierte Grafikbeschleunigung ver-fügt. Dass das GTA03 ein neues Gehäusedesignbekommt, ist bereits fix. Wann es aber wirklichkommt, ist unklar, zumal die Entwicklung vorläu-fig eingestellt wurde [8].

Es wird vermutet, dass das GTA03 über einenkapazitiven Touchscreen [9] verfügen wird, wasin Foren noch für Diskussionen sorgt. KapazitiveTouchscreens sind zwar äußerst robust, verfü-gen aber über eine eingeschränkte Genauigkeit

und können nicht mit normalen Stiften verwendetwerden.

Von offizieller Seite gibt es allerdings nur we-nige konkrete Aussagen über das neue Modell.Die Openmoko-Community hofft aber auf die ers-te „endbenutzerfreundliche“ Version, wobei dafürnoch an der Software gefeilt werden muss.

Dash verwendet Openmoko-Hardware.© Ryan Grove (CC-BY-NC-SA)

GTA04Bis GTA03 erscheint, dauert es zwar noch einwenig, dennoch wird schon über den Nachfol-ger nachgedacht. Das GTA04 [10] soll ähnlicheFeatures bieten wie der Vorgänger, es soll aberauf einem anderen System-on-a-Chip (SoC) ba-sieren. Laut Vermutungen soll GTA04 3G undUSB 2.0 unterstützen, auch die Wiedereinfüh-rung eines Grafikchips ist möglich.

Andere HardwareDie Software von Openmoko ist auf einigen wei-teren Geräten [11] lauffähig, meistens funktio-niert sie dort jedoch nur eingeschränkt.

Die Dash Express (HXD8) Hardware [12] wur-de von Openmoko für die Firma Dash entwickeltund verwendet ähnliche Bauteile wie die Neo-Smartphones.

SoftwareSoftwaremäßig lief bei Openmoko anfangs allessehr konfus ab. Ende 2006 wurde die erste Ver-sion des Openmoko-Betriebssystems veröffent-licht, als Toolkit wurde GTK gewählt. Wegen derschwierigen manuellen Bedienung folgte bereitsAnfang 2007 eine überarbeitete Version.

Parallel wurde Qtopia [13], die Distribution derFirma Trolltech, die inzwischen von Nokia über-nommen wurde, auf die Openmoko-Plattformportiert. Sie beherrscht zwar alle wichtigenGrundfunktionen und verfügt über eine schnelleOberfläche, da die GUI komplett im Framebuffer

© freiesMagazin GNU FDL Ausgabe 04/2009 5

Page 6: Openmoko – Free your phone Seite 4 · Das Dateisystem ext4 Seite 11 Zweieinhalb Jahre nach seiner ersten Ankündigung ist das neue Dateisystem ext4 bereit für den breiten Einsatz

MOBIL

Numptyphysics’ Hauptmerkmal ist die Physik-Engine.© Qole Tech (CC-BY)

läuft und kein „X Window System“ [14]vorhanden ist, jedoch gibt es kaum Soft-ware für das System.

Später folgte wiederum das April/August-Software-Update (ASU) [15],welches Enlightment und Qtopia-Programme einsetzt. Es stellte eine Ver-besserung dar, ließ aber noch Wünscheoffen. Es verfügt zwar über eine großeAuswahl von installierbaren Paketen,von denen aber nur wenige direkt nachder Installation des Updates bereits vor-handen sind.

Die Zukunft? FSO!Die Zukunft des Projektes liegt in derin Python geschriebenen freesmartphone.org-Middleware FSO [16]. FSO ermöglicht eine ein-fache Verwendung der Hardware über dbus. Soist es möglich, dass sich GPS automatisch ein-bzw. ausschaltet wenn eine Anwendung daraufzugreift. Außerdem können Technologien wie As-sisted GPS (AGPS) und Ähnliches zentral inte-griert werden. Auch eine Ortung mittels Handy-netz (GSM) ist inzwischen geplant.

Vor Kurzem erschien Milestone V [17]. Zu denNeuerungen zählen stabileres GPRS, automati-sche Zeit- und Zeitzonenkonfiguration per GPSund die Integration von Beschleunigungungssen-soren für Gestenerkennung. Außerdem wurdeeine Schnittstelle (API) für Personal Informati-on Manager (PIM) integriert, diese ist allerdingsnoch experimentell.

Zum Einsatz kommt FSO in SHR, Debian, FYPund weiteren Distributionen.

AnwendungenEine Vorstellung aller Anwendungen würde denRahmen dieses Artikels sprengen, deshalb wirdsich auf auf eine Liste mit wenigen Highlights be-schränkt:

ã TangoGPS [18] – Anzeigen von Straßenkar-ten und mehr.

ã Mokomaze [19] – Einen Ball per Beschleuni-gungssensoren durch ein Labyrinth navigie-ren.

ã Numptyphysics [20] – Das Ziel ist es, einenBall zu einem Stern zu befördern, indem manObjekte zeichnet.

ã Remoko [21] – Remoko meldet sich alsBluetooth-Eingabegerät und erzeugt Tasten-kombinationen.

ã Black Sheep [22] – Leute, die schwer ein-schlafen, können nun auch am Neo Schafezählen.

In den folgenden Ausgaben von freiesMagazinwerden genauere Vorstellungen folgen. Wer nichtso lange warten will, kann auch opkg.org [23]durchstöbern.

Andere ImagesAndroidEin anderes interessantes Projekt ist die Portie-rung von Android [24]. Hierbei besteht das Pro-blem darin, dass die Android-Plattform für neue-re Generationen des ARM-Prozessors entwickeltwurde. Die aktuelle Version des Port (beta3)kann Anrufe tätigen/empfangen, sich mit einemWLAN-Netz verbinden und den GPS-Chip nut-zen. Die freie Navigationssoftware AndNav2 [25]ist bereits vorinstalliert. Allerdings ist die GSM-Verbindung teilweise instabil und es gibt Proble-me mit GPRS und SMS. Über die Firma Koo-lu [26] können bereits Geräte mit vorinstalliertemAndroid erworben werden.

SHRBeim Stable Hybrid Release (SHR) [27] handeltsich es um ein von Bearstech [28] unterstütz-tes Community-Projekt. SHR war als Weiterfüh-rung der GTK-basierenden Distribution gedacht.Inzwischen setzt SHR Enlightment und die FSO-

© freiesMagazin GNU FDL Ausgabe 04/2009 6

Page 7: Openmoko – Free your phone Seite 4 · Das Dateisystem ext4 Seite 11 Zweieinhalb Jahre nach seiner ersten Ankündigung ist das neue Dateisystem ext4 bereit für den breiten Einsatz

MOBIL

Middleware ein. Somit ist es mit den FSO-Demo-Images vergleichbar, wobei in SHR eigene Te-lefonanwendungen einsetzt werden und nichtZhone, wie bei den FSO-Images.

DebianDa für die ARM-Architektur bereits eine Debian-Quelle vorhanden ist, gab es frühzeitig einenDebian-Installer für das Openmoko.

FYPFYP ist eine recht neue, auf Debian basierendeDistribution. Der Name stammt von dem Webfo-rum FreeYourPhone [29]. FYP setzt als erste Dis-tribution (abgesehen vom FSO-Demo-Image) be-reits Milestone V ein. Im Moment sucht der Ent-wickler zusammen mit der Community eine vollkompatible Kernelkonfiguration.

HackableHackable basiert wie FYP auf Debian, allerdingswird hier die vom 2007.2er-Image [30] bekannteGTK-Oberfläche verwendet. Wie auch SHR wirdHackable von Bearstech unterstützt.

Ziel von Hackable ist, wie der Name schon ver-muten lässt, ein System für Entwickler und Bast-ler zu schaffen.

GentooDa Gentoo [31] (bzw. gcc) bekanntlich auch aufARM-Prozessoren lauffähig ist, ist es nicht über-raschend, dass es bereits einen portage-overlaygibt. Allerdings gibt es kaum Erfahrungsberichtedazu.

FazitHardwareseitig ist das NeoFreerunner ein rechtguter PDA mit GPS. Softwareseitig ist die La-ge unklarer. Es gibt zwar interessante Softwarefür die Plattform, die verfügbaren Distributionenhaben aber alle noch ihre kleinen und großenSchwächen, wobei das FSO-Framework bereitsin Begriff ist, viele davon auszumerzen.

Als OpenStreetMap-Mapper [32] (siehe auch„OpenStreetMap – GoogleMaps-Klon oder dochmehr?“, freiesMagazin 11/2008 [33]) ist das Ge-rät hervorragend zu gebrauchen. Das GTA03wird sich wegen der integrierten 2MP Kameravermutlich noch besser fürs Mappen eignen.

LINKS

[1] http://wiki.openmoko.org/wiki/Main_Page/de

[2] http://de.wikipedia.org/wiki/FIC

[3] http://www.openmoko.com

[4] http://wiki.openmoko.org/wiki/Neo_1973

[5] http://de.wikipedia.org/wiki/ARM-Architektur

[6] http://wiki.openmoko.org/wiki/Neo_FreeRunner

[7] http://wiki.openmoko.org/wiki/GTA03

[8] http://www.pro-linux.de/news/2009/14023.htm

[9] http://freeyourphone.de/portal_v1/viewtopic.php?f=19&t=929

[10] http://wiki.openmoko.org/wiki/GTA04

[11] http://wiki.openmoko.org/wiki/Supported_devices

[12] http://wiki.openmoko.org/wiki/HXD8

[13] http://qtopia.net/modules/devices/

[14] http://de.wikipedia.org/wiki/X_Window_System

[15] http://wiki.openmoko.org/wiki/ASU

[16] http://wiki.openmoko.org/wiki/FSO

[17] http://trac.freesmartphone.org/milestone/milestone5

[18] http://www.tangogps.org/gps/cat/About

[19] http://mokomaze.projects.openmoko.org/

[20] http://numptyphysics.garage.maemo.org/

[21] http://wiki.openmoko.org/wiki/ReMoko

[22] http://www.opkg.org/package_169.html

[23] http://www.opkg.org/

[24] http://www.android.com/about/

[25] http://www.andnav.org

[26] http://www.koolu.com/

[27] http://wiki.openmoko.org/wiki/Stable_Hybrid_Release

[28] http://www.bearstech.com

[29] http://www.freeyourphone.de

[30] http://wiki.openmoko.org/wiki/2007.2

[31] http://wiki.openmoko.org/wiki/Gentoo

[32] http://www.openstreetmap.org

[33] http://www.freiesmagazin.de/freiesMagazin-2008-11

Autoreninformation

Florian Schweikert benutzt seit zweiJahren Linux (Debian und Ubuntu).Durch das Openmoko-Projekt ister auf OpenStreetMap aufmerksamgeworden. Vor allem sein Neo Free-runner hilft beim Kartografieren derUmgebung.

© freiesMagazin GNU FDL Ausgabe 04/2009 7

Page 8: Openmoko – Free your phone Seite 4 · Das Dateisystem ext4 Seite 11 Zweieinhalb Jahre nach seiner ersten Ankündigung ist das neue Dateisystem ext4 bereit für den breiten Einsatz

DISTRIBUTION

gNewSense – Das freie Ubuntu von Benedikt Ahrens

D as Projekt gNewSense [1] hat sichzum Ziel gesetzt, eine GNU/Linux-Distribution zu schaffen, die die Frei-

heit der Benutzer als oberstes Ziel hat –auch wenn dadurch Komfort und Hardware-Unterstützung eingeschränkt werden. Als Ba-sis wird dafür das Betriebssystem Ubuntu ge-nutzt.

Über Debian und UbuntuEin freies Ubuntu? Ist Ubuntu [2] denn nichtschon frei? Nein, Ubuntu ist nicht frei im Sin-ne der Free Software Foundation (FSF) [3] (dieRichtlinien, nach denen die Freiheit eines Be-triebssystems von der FSF beurteilt wird, fin-den sich auf der Webseite [4]), genauso we-nig wie Debian, das Fundament, auf welchemUbuntu aufbaut. Das Ziel dieser Distributionenist es, so viel Hardware wie irgend möglich zuunterstützen und damit dem Benutzer die Instal-lation und Verwendung der eigenen Distributioneinfach und komfortabel zu gestalten – es gehtschließlich um Marktanteile. Die Prinzipien frei-er Software bleiben dabei manchmal auf derStrecke. Eine etwas laxe Einstellung zum The-ma Freiheit lässt sich dabei in allen Bereichender Software-Herstellung diagnostizieren, ange-fangen beim Linux-Kernel bis hin zum Verteilender Software durch Debian und Ubuntu.

Hinweis: Es bleibt dem Leser überlassen, zuuntersuchen, ob die hier getroffenen Aussagen

über Debian und Ubuntu in ähnlicher Weise auchauf andere Distributionen, wie z. B. openSUSE,zutreffen. Die folgenden Zeilen beziehen sichausschließlich auf Debian und Ubuntu.

Der Linux-KernelDie meisten Rechnerkomponenten – CD-Lauf-werke, Netzwerkkarten etc. – benötigen zur Kom-munikation mit der Hauptplatine eine Software,die auf einem Speicher in der Komponente selbstgelagert wird. Diese Software wird oft Firmwa-re genannt. Bei den meisten Komponenten istdie Firmware fest in der Komponente installiert.Bei anderen, insbesondere bei Netzwerkkarten,wird die Firmware vom Gerätetreiber (d. h. vomKernel-Modul) beim Laden des Moduls auf dieKomponente kopiert.

Um hier den Komfort des Benutzers zu erhöhen,wird die Firmware zu einigen Komponenten inden Linux-Kernel integriert. So z. B. die Firmwa-re zu Netzwerkkarten der Firma Broadcom, wel-che durch den Treiber tg3 betrieben werden. Dasklingt vernünftig, denn ohne die Firmware funk-tioniert die entsprechende Komponente oft nicht.Doch leider entspricht die meiste Firmware nichtden Kriterien freier Software, da die Herstellerihren Quelltext nicht offengelegt haben. Als Bei-spiel soll hier der Treiber tg3 dienen. Währendder Treiber selbst frei und unter der GNU Gene-ral Public License lizenziert ist, benutzt er eineunfreie Firmware [5].

Software, die von proprietärer Software ausge-hend produziert wurde, ist nicht frei. Das tg3-Modul befindet sich – mitsamt Firmware – imOriginal-Kernel [6].

Die DistributionenWie gehen die Distributionen mit dem offiziellenLinux-Kernel um? Das Debian-Projekt fundiertauf einem strengen Vertrag [7], welcher Richtli-nien für die von Debian verteilte Software enthält(DFSG) [8]. Eine Abstimmung im Jahr 2006 [9]zum Thema „unfreie Software im Linux-Kernel“ergab eine Befürwortung der Verteilung dieserunfreien Software. Die Kernaussage: Die Ver-wendbarkeit der Software ist wichtiger als die Er-füllung des sozialen Vertrags und die Freiheit desBenutzers.

Doch nicht nur mit dem Linux-Kernel verteilendie Distributionen unfreie Software. Das Ubuntu-Paket linux-firmware liegt in der Sektion mainund damit in der Sektion, die laut Ubuntu nur freieSoftware enthält. Dennoch liefert das Paket un-freie Firmware [10].

Ein weiteres Beispiel: Jahrelang ignoriertenDebian und Ubuntu die Tatsache, dass X.orgunfreie Software enthielt (Fehlerbericht vonDebian [11], Entwicklerabstimmungen beiDebian über den Umgang mit unfreier Soft-ware [12] [13], Fehlerbericht von Ubuntu (impor-tiert von Debian) [14]). Bewusst wurde unfreieSoftware in der Sektion main belassen, um den

© freiesMagazin GNU FDL Ausgabe 04/2009 8

Page 9: Openmoko – Free your phone Seite 4 · Das Dateisystem ext4 Seite 11 Zweieinhalb Jahre nach seiner ersten Ankündigung ist das neue Dateisystem ext4 bereit für den breiten Einsatz

DISTRIBUTION

Komfort und die Nutzbarkeit des Betriebssys-tems nicht einzuschränken. Dank einer neuenLizenz für die betroffene Software ist dieses Pro-blem mittlerweile aber behoben [15].

Weiterhin erleichtern Debian und Ubuntu die In-stallation unfreier Software, z. B. durch die Be-reitstellung der Repositorys contrib und non-free(Debian) bzw. restricted und multiverse (Ubuntu)sowie durch eine graphische Oberfläche zur In-stallation proprietärer Treiber für Grafikkarten,WLAN-Karten etc. (in Ubuntu unter der Benut-zeroberfläche GNOME im Menu „System » Admi-nistration“). Auch die Standardbrowser Iceweasel(Debian) und Firefox (Ubuntu) bieten die Installa-tion unfreier Plugins an.

gNewSense – die IdeeDas Projekt gNewSense hat sich zum Zielgesetzt, eine GNU/Linux-Distribution zu schaf-fen, die die Freiheit der Benutzer als obers-tes Ziel hat – auch wenn dadurch Komfort undHardware-Unterstützung eingeschränkt werden.Handlungsgrundlage ist die Richtlinie der FSFfür freie Betriebssysteme [16]. Folgendes Zitatbeschreibt das Ziel von gNewSense: „Note ourgoal is to produce a fully free distribution, notto have as many features as possible“ [17]. (AufDeutsch: „Beachte, dass es unser Ziel ist, einekomplett freie Distribution zu erstellen, nicht, soviele Funktionen wie möglich zu haben.“) Konkretbedeutet dies, dass gNewSense versucht, . . .

ã nur freie Software im Sinne der FSF zu vertei-len und

ã die Installation unfreier Software nicht zu er-leichtern.

Die zwei Ziele müssen kurz erläutert wer-den. Zum ersten Punkt: Bei jeder nicht-trivialenSoftware-Sammlung ist es sehr schwer, die hun-derprozentige Freiheit jedes Programms sicher-zustellen – jede Quelldatei muss auf ihre Lizenzhin überprüft werden. gNewSense entfernt je-doch umgehend Software aus dem Angebot, so-bald deren Unfreiheit entdeckt wird, auch wenndadurch erhebliche Einschränkungen entstehen(so geschehen bei oben angesprochener unfrei-er Software in X.org [18]). Zum zweiten Punkt:Es bleibt natürlich in der Freiheit des Benutzers,unfreie Software zu installieren. Jedoch bietetgNewSense dazu keine Hilfe, wie z. B. die Bereit-stellung solcher Software oder von Anleitungen,wie unfreie Software installiert werden kann.

Die UmsetzungZu diesem Zweck programmierten die GründerBrian Brazil und Paul O’Malley den sogenann-ten „Builder“, eine Reihe von Skripten, die ausUbuntu die unfreien Elemente entfernen. Mit Hil-fe des Builders kann jeder Benutzer sich seineeigene freie GNU/Linux-Distribution bauen. Eininteressanter Spezialfall allerdings ist die bereitsvorbereitete Distribution – welche, wie das Pro-jekt auch, gNewSense genannt wird – für dieeine Live-CD in Form eines ISO-Images bereit-steht [19].

Die aktuelle Version gNewSense 2.1 basiert aufUbuntu 8.04.1 und bringt daher ein fast identi-

sches Look and Feel, wie die Screenshots [20]zeigen. Der Live-Modus erlaubt das Testen derHardware – nicht unwichtig, denn durch das Ent-fernen unfreier Treiber können einige Hardware-Komponenten, die unter Ubuntu unterstützt wer-den, nicht betrieben werden (siehe unten). Ausdem Live-Modus heraus kann die Installation aufder Festplatte gestartet werden. Anleitungen undHilfen zu Installation und Verwaltung des Sys-tems sind ebenfalls im Wiki [21] zu finden.

Welche Einschränkungen gibt es?Nach obigen Ausführungen ist es keine Über-raschung, dass die Benutzung von gNewSenseEinschränkungen mit sich bringt im Vergleich zuUbuntu. Fehlende Unterstützung für viele WLAN-Karten, fehlendes GLX, kein Firefox, dies allesmacht gNewSense nicht attraktiver für den Be-nutzer. Um Enttäuschungen zu vermeiden, istes daher dringend empfohlen, sich vor einerInstallation über die zu erwartende Hardware-Unterstützung und mitgelieferte Software zu in-formieren. Hierzu sollte gNewSense im Live-Modus von der CD gestartet werden. Hier kannman Grafik, Sound, Netzwerkkarte etc. ohne Ri-siko testen. Da die Entfernung unfreier Firm-ware aus dem Kernel automatisiert erfolgt, gibtes keine präzise Liste von Rechnerkomponen-ten, die von gNewSense – im Vergleich zuUbuntu – nicht unterstützt werden. Ausgangs-punkt für die Suche nach unterstützter Hardwarekann eine entsprechende Seite der FSF [22]sein. Für weitere Informationen empfiehlt sichder Besuch des gNewSense-Forums [23] oder

© freiesMagazin GNU FDL Ausgabe 04/2009 9

Page 10: Openmoko – Free your phone Seite 4 · Das Dateisystem ext4 Seite 11 Zweieinhalb Jahre nach seiner ersten Ankündigung ist das neue Dateisystem ext4 bereit für den breiten Einsatz

DISTRIBUTION

eine Anfrage auf der Mailingliste [24]. Im Allge-meinen nicht unterstützt werden WLAN-Karten,verschiedene LAN-Karten und Grafikkarten, fürdie keine freien Treiber existieren. Im Vergleichzu Ubuntu fehlen selbstverständlich auch dieSoftware-Repositorys restricted und multiverse,die Sektion universe ist hingegen standardmäßigaktiviert [25].

Warum dennoch gNewSense?gNewSense ist eines der Betriebssysteme, dievon der FSF als frei eingestuft und aktiv unter-stützt werden [26]. Für das Betriebssystem stelltdas GNU-Projekt eine modifizierte Version desFirefox-Browsers, Icecat [27] genannt, zur Verfü-gung, die sehr einfach über die Paketverwaltunginstalliert werden kann. Icecat bietet die Instal-lation ausschließlich freier Plugins an und wur-de im Vergleich zu Firefox um einige Sicherheits-funktionen erweitert. Einige der von gNewSensenicht unterstützten Komponenten können durchdie Installation eines neuen Kernels des Pro-jekts „Linux Libre“ [28] doch noch unterstützt wer-den (vorbereitete Debian-Pakete bietet Ali Gun-duz an [29]). So ermöglicht der aktuelle Kernel2.6.28-libre dieses Projekts die Verwendung destg3-Moduls ohne die unfreie Firmware. Auch eini-ge WLAN-Karten der Firma Atheros können mitHilfe der freien Module atk5 und atk8 (im Kernel2.6.28 enthalten) betrieben werden.

Durch die Benutzung von gNewSense kann manzeigen, dass einem die Freiheit der verwendetenSoftware wirklich wichtig ist. Hardware-Hersteller

können so dazu gebracht werden, freie Trei-ber und Firmware für ihre Produkte bereitzu-stellen und somit Transparenz und Innovationauch in diesem Bereich der Software-Herstellungzu ermöglichen. Doch auch den MutterprojektenDebian und Ubuntu von gNewSense kann mandurch den Einsatz von gNewSense signalisie-ren, dass man die Prinzipien und Verträge kon-sequent einhalten will und mit faulen Ausnahmennicht einverstanden ist.

LINKS

[1] http://www.gnewsense.org

[2] http://www.ubuntu.com

[3] http://www.fsf.org

[4] http://www.gnu.org/philosophy/free-system-distribution-guidelines.html

[5] http://www.broadcom.com/support/ethernet_nic/driver-sla.php?driver=570x-Linux

[6] http://www.kernel.org

[7] http://www.debian.org/social_contract

[8] http://www.debian.org/social_contract#guidelines

[9] http://www.debian.org/vote/2006/vote_007.en.html

[10] https://bugs.launchpad.net/~gnewsense

[11] http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=211765

[12] http://www.debian.org/vote/2004/vote_002

[13] http://www.debian.org/vote/2006/vote_007

[14] https://bugs.launchpad.net/debian/+bug/6765/comments/8

[15] http://www.fsf.org/news/thank-you-sgi

[16] http://www.gnu.org/philosophy/free-system-distribution-guidelines.html

[17] http://www.gnewsense.org/Main/Features

[18] http://wiki.gnewsense.org/Main/Broken3dApps

[19] http://www.gnewsense.org/Mirrors/Mirrors

[20] http://wiki.gnewsense.org/Screenshots/Screenshots

[21] http://wiki.gnewsense.org/

[22] http://www.fsf.org/resources/hw

[23] http://wiki.gnewsense.org/index.php?n=ForumMain.ForumMain

[24] http://www.gnewsense.org/index.php?n=Community.Community

[25] http://www.gnewsense.org/Main/Features

[26] http://www.gnu.org/links/links.html#FreeGNULinuxDistributions

[27] http://www.gnu.org/software/gnuzilla/

[28] http://www.fsfla.org/svnwiki/selibre/linux-libre/index

[29] http://aligunduz.org/gNewSense/

Autoreninformation

Benedikt Ahrens benutzt seit mehre-ren Jahren Debian und Ubuntu. Überdie im Debian-Projekt andauerndeDiskussion über den Umgang mitunfreier Firmware im Linux-Kernel(„Binary Blobs“) entdeckte er gNew-Sense.

© freiesMagazin GNU FDL Ausgabe 04/2009 10

Page 11: Openmoko – Free your phone Seite 4 · Das Dateisystem ext4 Seite 11 Zweieinhalb Jahre nach seiner ersten Ankündigung ist das neue Dateisystem ext4 bereit für den breiten Einsatz

LINUX ALLGEMEIN

Das Dateisystem ext4 von Hans-Joachim Baader

Z weieinhalb Jahre nach seiner erstenAnkündigung ist das neue Dateisys-tem ext4 [1] bereit für den breiten Ein-

satz. Hier nun ein erster Blick auf seine Featu-res und die Leistung des neuen Dateisystems.Außer Konkurrenz erfolgt auch eine erste Ge-schwindigkeitsmessung von btrfs.

Redaktioneller Hinweis: Der Artikel „Das Datei-system ext4“ erschien erstmals bei Pro-Linux [2]und wird mit freundlicher Genehmigung des Au-tors in freiesMagazin unter der GNU Free Docu-mentation License [3] veröffentlicht.

EinleitungSeit Mitte des Jahres 2006 ist jedem klar, dassdas Dateisystem ext3 von Linux an Grenzen zustoßen beginnt. Die maximale Kapazität von ext3ist abhängig von der Blockgröße höchstens 8 Ter-abyte, was in LVM- oder RAID-Konfigurationenbereits seit einiger Zeit eine Einschränkung dar-stellen kann. Die derzeitige Auflösung von einerSekunde bei Datei-Zeitstempeln wird schon seitlängerer Zeit als unbefriedigend angesehen. DieZeiten für das Prüfen bzw. Reparieren werdenmit wachsender Größe eines Dateisystems im-mer weniger tolerierbar.

Statt die zur Lösung dieser Probleme kursieren-den Patches in ext3 einzubauen und damit des-sen Stabilität und Kompatibilität zu gefährden,begannen die Entwickler auf Initiative von Theo-

dore Ts’o [4] mit dem neuen Dateisystem ext4.Dieses sollte die Fähigkeit haben, ein bestehen-des ext3-Dateisystem einzubinden und in einext4-Dateisystem umzuwandeln. Abgesehen vondiesem Kompatibilitätsfeature waren die Entwick-ler aber frei, beliebige Verbesserungen hinzuzu-fügen.

Mit ext4 kommt auch eine neue Version des Jour-naling Block Device (jdb2). Auch hier soll dieneue Version dafür sorgen, dass die Originalver-sion stabil gehalten werden kann. Knapp dreiMonate nach der ersten Ankündigung wurdenext4 und jdb2 in den Entwicklerkernel aufgenom-men und in Linux 2.6.19 erstmals der Allgemein-heit zur Verfügung gestellt, allerdings ausdrück-lich als experimentell markiert.

Eigenschaften von ext4ext4 bringt in der initialen Version hauptsäch-lich Verbesserungen in Geschwindigkeit und Ska-lierbarkeit gegenüber ext3. Dazu gehören einauf Extents beruhendes Format auf der Fest-platte, 48-Bit-Blocknummern, Allokierung vonmehreren Blöcken in einem Schritt, mehr als32000 Unterverzeichnisse pro Verzeichnis, Re-servierung von Verzeichnis-Inodes, Zeitstempelmit Nanosekunden-Auflösung, Inode-Versionen,Prüfsummen für das Journal und persistente Prä-allokation. Letztere ermöglicht es, Platz für ei-ne Datei im Voraus zu reservieren. Dieser Platzbleibt reserviert und ist mit hoher Wahrscheinlich-

keit zusammenhängend. Davon können Medien-streams und Datenbanken profitieren.

Die Dateisystem-Größe von ext4 ist maximal1 Exabyte. Einzelne Dateien sind bei Blöckenvon 4 KB (mehr ist aktuell nicht möglich) immernoch auf 16 TB beschränkt, was mit der Speiche-rung von Blocknummern als 32-Bit-Zahl zu tunhat. Diese Begrenzung soll noch fallen.

Sollte einmal ein Dateisystem-Check nötig wer-den, so müssen nur Blockgruppen geprüft wer-den, die auch allokiert sind. Das soll die Zeit fürden Check stark reduzieren.

Aufgrund der Kompatibilität kann man ext3-Dateisysteme in ext4 umwandeln, ohne einBackup mit Rücksicherung vornehmen zu müs-sen.

Anlegen und Betreiben von ext4Ein ext4-Dateisystem wird analog zu ei-nem ext3-Dateisystem auf einem nahezubeliebigen Blockgerät mit dem Kommandomkfs.ext4 [Devicename] oder mkfs -T ext4[Devicename] angelegt.

Ein bestehendes ext3-Dateisystem kann manmit dem Kommando tune2fs -O extents[Devicename] in ein ext4-Dateisystem konver-tieren. Von diesem Zeitpunkt an werden neueDateien im Extent-Format angelegt, bestehendebleiben jedoch unverändert. Das neue Datei-

© freiesMagazin GNU FDL Ausgabe 04/2009 11

Page 12: Openmoko – Free your phone Seite 4 · Das Dateisystem ext4 Seite 11 Zweieinhalb Jahre nach seiner ersten Ankündigung ist das neue Dateisystem ext4 bereit für den breiten Einsatz

LINUX ALLGEMEIN

system kann nicht mehr als ext3 eingebundenwerden, eine Konvertierung zurück ist also aus-geschlossen. Ein ext3-Dateisystem kann jedochals ext4 eingebunden werden. Es bleibt dennochein ext3-System, bis es explizit konvertiert wird.

Nach dem Anlegen kann das Dateisystem mitmount [Devicename] [Einhängepunkt] ein-gebunden werden. Optional kann man den Typdes Dateisystems mit -t ext4 angeben. Dasdürfte jedoch meist unnötig sein, da das Datei-system automatisch erkannt wird.

Nach dem Einbinden kann das Dateisystem wiejedes andere verwendet werden. Erweiterte At-tribute und Security-Labels sollten wie bei ext3zur Verfügung stehen. Ein kurzer Test zeigt, dasssich auf Systemen, die die Option „große Datei-en verwenden“ nicht besitzen, Dateien von ma-ximal 2 TB Größe erzeugen lassen. Der andereFall konnte leider nicht getestet werden.

BenchmarksDurchführungTestrechner war ein AMD Phenom (4 Kerne) mit2,4 GHz und 4 GB RAM. Als Kernel kam Linux2.6.28 in der 64-Bit-Version zum Einsatz. Für denTest wurde ein logisches Volume von 20 GB Grö-ße auf einem RAID 1 angelegt.

Auf besondere Optionen beim Erstellen und Ein-binden der Dateisysteme wurde verzichtet. Zwarkönnen diese durchaus Auswirkungen auf dieGeschwindigkeit haben, aber bis zum Beweis

des Gegenteils ist anzunehmen, dass die vonden Entwicklern vorgegebenen Parameter opti-mal sind. Eine Option, die auf allen Dateisyste-men sinnvoll ist, die sie anbieten, ist relatimeoder gar noatime. Denn das Speichern der letz-ten Zugriffszeit einer Datei erzeugt viel I/O, undes gibt praktisch keine Anwendung, die diese Zeitbenutzt. In diesem Test wurde diese Option aller-dings nicht benutzt.

Ein erster Testlauf mit einem eigens erstell-ten Skript erbrachte unbefriedigende Ergebnis-se. In diesem Lauf wurde jede Messung drei-mal gemacht und das Benchmarkprogramm bon-nie++ [5] mit seinen Standardparametern ver-wendet. Die Ergebnisse zeigten große Schwan-kungen und erwiesen sich als unzureichend. Zu-dem wurde das System nicht optimal ausgereizt.Leider war es nicht möglich, die Schwankun-gen zu begrenzen, da das System während derBenchmarks wechselnden anderen Lasten aus-gesetzt war. Ein Herunterfahren in Runlevel 1,wie es oft bei Benchmarks praktiziert wird, kamnicht in Frage.

Um die Messergebnisse abzusichern, wurde da-her ein neuer Testlauf mit besseren Parameternfür bonnie++ durchgeführt und jede Messungfünfmal wiederholt. Der ganze Test wurde spä-ter mit weiteren fünf Läufen wiederholt. Wo nichtanders angegeben, wurde jeweils das beste Re-sultat der insgesamt 10 Läufe gewertet. Cache-Effekte wurden durch eine Dateigröße vom Dop-pelten des Hauptspeichers ausgeschlossen.

Die beiden rohen Protokolldateien des Bench-marks mit jeweils fünf Durchläufen stehen zumDownload zur Verfügung [6] [7]. Auch das Skriptdiskbenchmark kann man herunterladen [8]. Esist offensichtlich noch verbesserungsfähig, sokönnte man beispielsweise die Blockgrößen beidd und bonnie++ konfigurierbar machen.

Die nachfolgende Tabelle zeigt die Ergebnisse,wobei als redundant erachtete Werte, die bon-nie++ lieferte, nicht betrachtet wurden. Der mar-kierte Eintrag in jeder Zeile hebt den besten Werthervor. In den Zeilen, in denen ext2 am bestenabschnitt, ist zusätzlich noch der Bestwert unterden Journal-Dateisystemen markiert.

Benchmarkergebnisseext2 ext3 ext4

Dateisystem anlegen [s] 6,58 9,03 8,36Dateisystem einbinden [s] 0,56 0,89 0,58Datei 8 GB lesen [MB/s] 61,6 62,3 66,4Datei 8 GB schreiben[MB/s]

63,1 57,1 60,4

Seq. lesen [MB/s] 60,2 59,3 64,8Seq. schreiben [MB/s] 60,0 55,6 58,3Seeks [1/s] 123 110 129Datei erzeugen [1/s] 844 69760 59872Datei löschen [1/s] 1964 19777 19574Datei 8 GB löschen [sys s] 0,235 0,534 0,457Datei 8 GB löschen[min Ges s]

0,498 0,612 0,500

Datei 8 GB löschen[max Ges s]

9,588 7,596 7,029

© freiesMagazin GNU FDL Ausgabe 04/2009 12

Page 13: Openmoko – Free your phone Seite 4 · Das Dateisystem ext4 Seite 11 Zweieinhalb Jahre nach seiner ersten Ankündigung ist das neue Dateisystem ext4 bereit für den breiten Einsatz

LINUX ALLGEMEIN

Benchmarkergebnisse (Fort.)xfs jfs reiser3

Dateisystem anlegen [s] 0,28 0,49 0,81Dateisystem einbinden [s] 0,17 0,19 1,47Datei 8 GB lesen [MB/s] 64,9 62,5 59,3Datei 8 GB schreiben[MB/s]

61,1 56,3 54,5

Seq. lesen [MB/s] 62,1 62,7 61,5Seq. schreiben [MB/s] 55,0 54,6 52,4Seeks [1/s] 116 116 133Datei erzeugen [1/s] 3031 12213 18995Datei löschen [1/s] 527 405 5328Datei 8 GB löschen[sys s]

0,284 0,0 1,267

Datei 8 GB löschen[min Ges s]

0,308 0,007 1,296

Datei 8 GB löschen[max Ges s]

6,382 0,059 7,914

Auswertung

Anlegen des Dateisystems.

Das Anlegen von Dateisystemen dauerte mitext4 ähnlich lang wie mit ext3. Soweit bekannt,steigt diese Zeit bei ext2, ext3 und ext4 grund-sätzlich mit der Dateisystem-Größe, sodass bei

richtig großen Dateisystemen viel Zeit vergehenkann. Die Konkurrenten xfs, jfs und reiserfs ska-lieren hier besser.

Blockweises Lesen von Daten.

Blockweises Schreiben von Daten.

Das Lesen und Schreiben von Dateien, blockwei-se durchgeführt mit dd, ergab nur geringe Unter-schiede, die weitgehend unter der Messgenauig-keit lagen. Dass ext2 als einziges Dateisystemohne Journal beim Schreiben die anderen ab-hängte, war zu erwarten. ext3, jfs und reiserfs wa-ren beim Schreiben etwas langsamer. ext4 zeigteeine sehr gute Leistung.

Sequentielles Lesen von Daten.

Sequentielles Schreiben von Daten.

Ähnliche Ergebnisse sollten sich beim sequentiel-len Lesen und Schreiben mit bonnie++ ergeben,und in der Tat war es so. Auch hier war ext4 wie-der in der Spitzengruppe.

Suchzeiten.

© freiesMagazin GNU FDL Ausgabe 04/2009 13

Page 14: Openmoko – Free your phone Seite 4 · Das Dateisystem ext4 Seite 11 Zweieinhalb Jahre nach seiner ersten Ankündigung ist das neue Dateisystem ext4 bereit für den breiten Einsatz

LINUX ALLGEMEIN

Die Zahl der Seeks pro Sekunde hing stark vonden Parametern von bonnie++ ab. Die hier er-mittelten Werte wären jedoch im Einklang mit ei-ner mittleren Suchzeit der Festplatte von 8 ms,in deren Nähe sich die meisten aktuellen Fest-platten bewegen. Der Unterschied von 20 % zwi-schen den Dateisystemen scheint daher bemer-kenswert.

Erzeugen von Dateien.

Löschen von Dateien.

Auch das Erzeugen und Löschen von Dateienhing stark von den Parametern ab. Im erstenDurchlauf wurden die Standardwerte verwendet,bei denen bonnie++ mit Dateigrößen von 0 ar-beitet. Da leere Dateien in der Praxis unbedeu-

tend sind, wurden die Dateien in späteren Läufenmit einer zufälligen, gleichverteilten Größe von 0bis 1999 Bytes erzeugt. Ob durch diese Wahl be-stimmte Dateisysteme begünstigt werden, konn-te aus Zeitgründen nicht ermittelt werden. DasErgebnis war, dass ext3 und ext4 deutlich in Füh-rung lagen und die anderen Dateisysteme um einMehrfaches übertrafen. In der Praxis dürfte es je-doch nur wenige Anwendungen geben, in denenso viele Dateien erzeugt oder gelöscht werden,dass diese Werte eine Rolle spielen.

Es wurde der Wert für das sequentielle Erzeugenvon Dateien verwendet. Beim zufällig verteiltenErzeugen von Dateien waren alle Dateisystemeein wenig langsamer. jfs allerdings war um Faktor10 langsamer als beim sequentiellen Erzeugen.

Löschen von Dateien mit 8 GB Größe.

Beim Löschen von Dateien von 8 GB Größe gabes erhebliche Schwankungen bei der benötigtenGesamtzeit. Angegeben ist daher in der Tabelleals Erstes die reine Systemzeit, die wesentlichweniger Varianz zeigte. Diese ist auch im Dia-gramm dargestellt. Bemerkenswert verhielt sich

hier jfs, das überhaupt keine Zeit mit dem Lö-schen versäumte. ext4 schnitt im wahrsten Sinndes Wortes besser ab als ext3. reiserfs erwiessich als langsamer.

Für die Anwender ist interessanter, wie schnellder Systemaufruf zum Löschen der Datei zurück-kehrt. Die minimal gemessene Zeit war hier beiallen Dateisystemen nur geringfügig höher alsdie Systemzeit. ext2 und ext3 stellten eine Aus-nahme dar, die vielleicht auf eine zu geringeZahl von Messungen zurückzuführen ist. Ein sehrmerkwürdigen Phänomen zeigte sich darin, dassdas Löschen bisweilen erheblich länger dauerte,mitunter mehr als zwanzigmal so lang wie im mi-nimalen Fall. Das deckte sich mit früheren Be-obachtungen am Dateisystem ext3. Lediglich jfskonnte bei keinem solchen Ausreißer ertappt wer-den. Die Ursache des Problems könnte im Kernelunterhalb der Dateisystem-Ebene liegen, da alleDateisysteme betroffen waren (ob jfs eine Aus-nahme darstellt, kann noch nicht als sicher gel-ten). Entwickler von Echtzeit-Anwendungen soll-ten sich über dieses Verhalten im Klaren sein undeinen Workaround vorsehen.

Zusammenfassend kann man sagen, dass ext4im Rahmen der Messgenauigkeit in fast je-der Hinsicht schneller als ext3 ist und zu denschnellsten Linux-Dateisystemen gehört. Da dieGeschwindigkeit aber um weniger als 20 % überder von ext3 liegt, werden Benutzer im Falle ei-ner Umstellung von ext3 auf ext4 von der höhe-ren Geschwindigkeit nichts bemerken.

© freiesMagazin GNU FDL Ausgabe 04/2009 14

Page 15: Openmoko – Free your phone Seite 4 · Das Dateisystem ext4 Seite 11 Zweieinhalb Jahre nach seiner ersten Ankündigung ist das neue Dateisystem ext4 bereit für den breiten Einsatz

LINUX ALLGEMEIN

Dateisystemprüfungext4 soll auch die Zeit für die Dateisystemprüfungdeutlich reduzieren. Um dies zu prüfen und zuquantifizieren, wurde folgendes Szenario einge-richtet: Das Dateisystem wurde wieder in einerGröße von 20 GB angelegt und eingebunden. Daes nicht sinnvoll ist, ein leeres Dateisystem zuprüfen, wurde das Dateisystem mit knapp 20 GBDateimüll gefüllt. Das war die Gelegenheit, dieGeschwindigkeit eines annähernd realistischenKopiervorgangs zu messen. Danach wurde dasDateisystem ausgehängt.

Nun wurde nochmals gemessen, wie lan-ge das Dateisystem zum Einbinden benötig-te. Auch das nachfolgende umount wurde ge-messen. Das Dateisystem war damit bereitfür den interessanten Teil, die Dateisystemprü-fung mit dem Programm fsck (File SystemCheck). Dieser wurde ohne spezielle Optionendurchgeführt. Schließlich wurde mit debugfs -v/dev/mapper/vg0-test das Dateisystem auf„dirty“ gesetzt. Ein nachfolgendes e2fsck be-gann auch ohne die Option -f eine Dateisystem-prüfung. Deren Zeit wurde ebenfalls gemessen.

Zum Abschluss wurde das Dateisystem beschä-digt:

# dd if=/dev/zero of=/dev/mapper/yvg0-test count=100 seek=1024

Diese zugegebenermaßen wenig subtile Metho-de führte zu dem beabsichtigten Ergebnis, dassbei einer anschließenden Prüfung mit e2fsck

-f Fehler erkannt wurden. Die Prüfung mit Repa-ratur dauerte trotzdem nicht länger als der fehler-freie Fall. Dass bei dieser Reparatur, die die Kon-sistenz des Dateisystems wieder herstellt, nor-malerweise Daten verloren gehen, sollte bekanntsein. Wichtige Daten müssen immer mit einemBackup gesichert werden.

Weitere Ergebnisse mit ext3 und ext4ext3 ext4

20 GB kopieren [MB/s] 24,1 26,3Volles Dateisystem einbinden [s] 0,122 0,186Volles Dateisystem aushängen [s] 0,006 0,110fsck -f [s] 60,3 1,9

Dieser Test konnte aus Zeitgründen nur einmaldurchgeführt werden, daher sollten die Wertenicht zu genau genommen werden. Beim Kopie-ren war zu erwarten, dass der Durchsatz höchs-tens halb so hoch sein würde wie beim sequen-tiellen Lesen oder Schreiben, denn Quelle undZiel befanden sich auf derselben Festplatte. Tat-sächlich lag der gemessene Wert etwas nied-riger, was wohl auf das Anlegen von Dateien,Suchvorgänge und andere Dateioperationen zu-rückzuführen ist, die zum rekursiven Kopieren da-zugehören. ext4 zeigte sich auch hier schnellerals ext3.

Beim Einbinden waren beide Dateisysteme merk-würdigerweise schneller als im ersten Test. Mög-licherweise waren die meisten Metadaten bereitsim Cache, sodass der Messwert nicht allzu vielAussagekraft hat. Gleiches gilt für das Aushän-gen, das keine nennenswerte Zeit benötigte.

Die ermittelte Zeit für die Dateisystemprüfungzeigte in frappierender Weise, welche Verbesse-rungen in ext4 erzielt wurden. Das neue Datei-system war bei dieser Partitionsgröße stets ummindestens das 30-fache schneller als ext3. Lan-ge Wartezeiten durch eine ungeplante Dateisy-stemprüfung dürften damit der Vergangenheit an-gehören. Wir vermuten jedoch, dass in wenigergünstigen Fällen größere Teile von ext4 geprüftwerden müssen und die Lage dann nicht ganzso rosig aussieht. Getestet wurde das aber nicht.Auch in anderer Hinsicht stellten die ermitteltenWerte einen Optimalfall dar. Die Metadaten desDateisystems dürften nämlich jeweils bereits imCache von Linux gewesen sein. Bei einem Neu-start könnte die Dateisystemprüfung deutlich län-ger dauern.

Die Optionen zur automatischen Konsistenzprü-fung des Dateisystems, die mit tune2fs anseh-und änderbar sind, sind übrigens bei ext4 nochgenauso vorhanden wie bei ext3. Genauereskann man im Artikel „Dateisystem-Tuning“ vonPro-Linux [9] nachlesen.

Weitere ThemenDefragmentierungJedes Dateisystem kann im Laufe der Zeit frag-mentieren. Das bedeutet, dass Dateien nichtmehr kontinuierlich auf der Platte gespeichertwerden und dadurch die Zeit zum Lesender Datei ansteigen kann. Die meisten Linux-Dateisysteme besitzen Algorithmen, um Frag-mentierung so gut wie möglich zu vermeiden,

© freiesMagazin GNU FDL Ausgabe 04/2009 15

Page 16: Openmoko – Free your phone Seite 4 · Das Dateisystem ext4 Seite 11 Zweieinhalb Jahre nach seiner ersten Ankündigung ist das neue Dateisystem ext4 bereit für den breiten Einsatz

LINUX ALLGEMEIN

sodass kaum ein Anwender jemals eine Leis-tungseinbuße durch Fragmentierung verspürt.Dementsprechend sind Werkzeuge zur Defrag-mentierung dünn gesät. Für ext4 ist dennocheine Online-Defragmentierung vorgesehen. EinProgramm namens e4defrag ist offenbar in Ar-beit [10].

Für die wenigen Benutzer, die jemals eine De-fragmentierung benötigen werden, bietet der Arti-kel „Defragment Ubuntu, Fedora, ext3, ext4“ [11]eine kleine Übersicht über Methoden und Pro-gramme.

Externes JournalWie bei ext3 kann man bei ext4 die Geschwin-digkeit etwas steigern, wenn man das Journalauf ein separates Gerät legt: beispielsweise einDateisystem auf /dev/sdc1 mit einer Blockgrö-ße von 4096, dessen Journal auf /dev/sdd1liegt. Die vorhandenen Nutzdaten auf /dev/sdc1bleiben hierbei erhalten.

Zunächst ist sicherzustellen, dass das Dateisys-tem nicht eingebunden ist:

# umount /dev/sdc1

Nun kann man das bestehende Journal entfer-nen, danach das externe Jornal auf /dev/sdd1mit der gleichen Blockgröße anlegen und zuletztdas Journal, das nun extern ist, wieder hinzufü-gen:

# tune2fs -O ˆhas_journal /dev/sdc1

# mke2fs -b 4096 -O journal_dev y/dev/sdd1# tune2fs -J device=/dev/sdd1 y/dev/sdc1

Booten von ext4Über die Zusammenarbeit der Bootloader liegenmit Ausnahme von GRUB [12] noch keine Infor-mationen vor. Für die alte Version von GRUB 0.9xgibt es eine Implementierung von ext4, die imRahmen eines „Summer of Code“-Projekts vonopenSUSE entwickelt wurde [13]. Es ist unklar,ob und wann diese Modifikation in das offizielleProjekt einzieht.

Für die Nachfolgeversion GRUB 2 gibt es nochkeine offizielle Unterstützung, aber es wird darangearbeitet. Die Entwicklerversion 1.97 von GRUBsoll von ext4 booten können [14].

btrfs, der neue HerausfordererKurz vor Fertigstellung des Artikels wurdebtrfs [15], das neue Dateisystem von Chris Ma-son, nicht nur in den offiziellen Kernel aufgenom-men, sondern erschien auch in einer neuen Ver-sion 0.17, die sich zusammen mit den zugehö-rigen Tools problemlos kompilieren und installie-ren ließ. Dies war Anlass genug, die Stabilität desTestsystems zu riskieren und auch für btrfs eini-ge Benchmarkergebnisse zu ermitteln. Da btrfsnoch mindestens ein halbes Jahr von der Fertig-stellung entfernt ist, sollte man die folgenden Re-sultate mit Vorsicht genießen.

Auf die Eigenschaften von btrfs soll hier nicht wei-ter eingegangen werden. Eine solche Betrach-tung könnte Gegenstand eines späteren Artikelssein. Hier soll es nur um die Grundfunktionen undderen Geschwindigkeit gehen.

Die Testbedingungen waren die gleichen wiebeim ursprünglichen Test. Erfreulicherweise liefder Test ohne erkennbare Probleme durch. Auchfür diesen Test, der mit 10 Läufen durchgeführtwurde, stehen die Rohdaten zur Auswertung zurVerfügung [16]. Hier zunächst die gleiche Tabellewie oben für btrfs:

Benchmarkergebnissebtrfs

Dateisystem anlegen [s] 0,40Dateisystem einbinden [s] 0,11Datei 8 GB lesen [MB/s] 65,2Datei 8 GB schreiben [MB/s] 60,5Seq. lesen [MB/s] 66,4Seq. schreiben [MB/s] 59,7Seeks [1/s] 173Datei erzeugen [1/s] 32808Datei löschen [1/s] 20843Datei 8 GB löschen [sys s] 0,786Datei 8 GB löschen [min Ges s] 0,950Datei 8 GB löschen [max Ges s] 1,173

btrfs konnte durch die Bank sehr gute, teilwei-se sogar Spitzenwerte erzielen. Das Anlegeneines Dateisystems ging nur bei xfs schneller.Beim Einbinden setzte sich btrfs an die Spitzevor xfs und jfs. Beim Lesen und Schreiben mitdd verpasste es knapp den ersten Platz, beim

© freiesMagazin GNU FDL Ausgabe 04/2009 16

Page 17: Openmoko – Free your phone Seite 4 · Das Dateisystem ext4 Seite 11 Zweieinhalb Jahre nach seiner ersten Ankündigung ist das neue Dateisystem ext4 bereit für den breiten Einsatz

LINUX ALLGEMEIN

vergleichbaren Test mit bonnie++ war es jedochunter den Journal-Dateisystemen das schnellste.Mit 173 Seeks pro Sekunde deklassierte es dieKonkurrenz. Beim Erzeugen von Dateien war esnur halb so schnell wie ext3 und ext4, was aberimmer noch für den dritten Platz genügte. BeimLöschen hingegen konnte es ext3 und ext4 leichtüberbieten. Das Löschen einer großen Datei wur-de in rund einer Sekunde erledigt, was zwar deut-lich langsamer war als die anderen, aber keineAusreißer nach oben zeigte.

Zum jetzigen Zeitpunkt sind die Ergebnisse vonbtrfs fast schon sensationell. Bis die endgültigeVersion von btrfs erscheint, kann jedoch nochviel passieren. Zum einen kann die Leistung op-timiert werden, zum anderen könnte das Hinzu-fügen der noch fehlenden Features auch dazuführen, dass sich die Algorithmen verlangsamen.Ein endgültiges Urteil kann noch nicht gefällt wer-den.

FazitMit ext4 ist es den Entwicklern gelungen, dasDateisystem ext3 ins nächste Jahrzehnt zu be-fördern. Bei leicht gesteigerter Geschwindigkeitder normalen Dateioperationen bringt ext4 dasEnde der meisten relevanten Größenbeschrän-kungen, beschleunigte Dateisystemprüfung, ei-ne effizientere Verwaltung und andere Verbesse-rungen. Dabei werden keine grundlegend neuenKonzepte eingeführt, sondern auf Bewährtes auf-gebaut, das bereits aus anderen Dateisystemenbekannt war.

Unklar ist zur Zeit noch, wie sich ext4 mit denaufkommenden SSD-Festplatten verhält. Dochbleibt den Entwicklern noch viel Zeit für entspre-chende Optimierungen. Auch ist ext4 noch nichtfertig, sondern wird im Gegensatz zu ext3 wohlnoch einige weitere Features erhalten.

Vorsicht ist geboten, wenn eine Interoperabilitätmit anderen Betriebssystemen notwendig ist, bei-spielsweise über virtuelle Maschinen. Da es eineWeile dauern dürfte, bis ext4-Implementationenfür die anderen Systeme bereitstehen, sollte manin diesem Fall von ext4 Abstand nehmen.

LINKS

[1] http://ext4.wiki.kernel.org/

[2] http://www.pro-linux.de/berichte/ext4/ext4.html

[3] http://www.gnu.org/copyleft/fdl.html

[4] http://www.pro-linux.de/news/2006/9900.html

[5] http://www.coker.com.au/bonnie++/

[6] http://www.pro-linux.de/berichte/ext4/ext4-ergebnis1.txt

[7] http://www.pro-linux.de/berichte/ext4/ext4-ergebnis2.txt

[8] http://www.pro-linux.de/berichte/ext4/diskbenchmark

[9] http://www.pro-linux.de/work/tuning/fs-tuning.html

[10] http://article.gmane.org/gmane.linux.file-systems/24133

[11] http://sharevm.wordpress.com/2008/12/16/435/

[12] http://www.gnu.org/software/grub/

[13] http://code.google.com/p/grub4ext4/

[14] http://grub.enbug.org/CurrentStatus

[15] http://btrfs.wiki.kernel.org/

[16] http://www.pro-linux.de/berichte/ext4/btrfs.txt

Autoreninformation

Hans-Joachim Baader befasst sichseit 1993 mit Linux. 1994 schloss ersein Informatikstudium erfolgreich abund machte die Softwareentwicklungzum Beruf. Seit 1995 arbeitet erfreiberuflich. Daneben ist er einer derBetreiber von Pro-Linux.de.

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

© freiesMagazin GNU FDL Ausgabe 04/2009 17

Page 18: Openmoko – Free your phone Seite 4 · Das Dateisystem ext4 Seite 11 Zweieinhalb Jahre nach seiner ersten Ankündigung ist das neue Dateisystem ext4 bereit für den breiten Einsatz

LINUX ALLGEMEIN

Ein Tuz für den Kernel von Mathias Menzer

B asis aller Distributionen ist der Linux-Kernel, der fortwährend weiterentwi-ckelt wird. Welche Geräte in einem

halben Jahr unterstützt werden und welcheFunktionen neu hinzukommen, erfährt man,wenn man den aktuellen Entwickler-Kernel imAuge behält.

Ein Tuz für den KernelAm 23. März, fast genau drei Monate nachdem Weihnachtskernel (siehe „Kernel-Rückblick“,freiesMagazin 01/2009 [1]), wurde der Kernel2.6.29 veröffentlicht [2], der diesmal im Zeichendes Teufels steht. Das ist jedoch nicht spirituell,sondern sehr weltlich zu verstehen – Tux räumtfür die neue Version seinen Platz als Maskott-chen und überlässt diesen dem TasmanischenBeutelteufel Tuz. Diese Aktion soll auf die Bedro-hung dieser Tierart durch die Krankheit „Devil Fa-cial Tumor Disease“ [3] aufmerksam machen.

Obwohl dies eine der augenscheinlichsten Ände-rungen darstellt, sind die anderen Neuerungendoch von größerer Bedeutung. So legt „KernelModesetting“ den Grundstein für einen flacker-freien Startvorgang und damit den Startbild-schirm Plymouth [4], der schon in Ubuntu 9.10Einzug halten könnte. Mit btrfs [5] ist nun einneues, auf Leistung getrimmtes Dateisystem mitam Start, das sich allerdings noch in der Ent-wicklung befindet und daher nicht für den pro-duktiven Einsatz geeignet ist. Fertig ist dagegen

SquashFS [6], ein komprimierendes Read-only-Dateisystem für den Einsatz z. B. auf Live-CDs.eCryptfs [7] ist an sich nichts Neues, bislang wur-den damit jedoch nur die Inhalte von Dateien ver-schlüsselt. Ab jetzt können auch die Dateinamenmit dem dateisystemweiten Schlüssel chiffriertwerden. Konsistente Backups eines Dateisys-tems sind nur möglich, wenn während der Erstel-lung der Sicherung keine Schreibvorgänge dar-auf durchgeführt werden. Eine passende Funk-tion hierzu konnte Linux bislang nicht aufweisen,mit „Filesystem freeze“ können nun von einge-hängten Dateisystemen vollständige und konsis-tente Sicherungen oder Replikate im laufendenBetrieb erstellt werden. ext4 [8] kann nun mit ei-nem „no journal mode“ aufwarten, bei dem einekleine Leistungsteigerung durch den Verzicht aufein Journal erkauft wird, auch unter der höherenGefahr eines Datenverlustes im Fehlerfall.

Wer gern mit großen Multiprozessorsystemen ar-beitet, wird sich darüber freuen, dass der Ker-nel nun bis zu 4096 Prozessoren von Haus ausunterstützt. Damit derartige Systeme auch mög-lichst performant arbeiten, wurde das klassischeRCU (Read-Copy-Update) überarbeitet und ver-wendet nun hierarchische Strukturen, die einebessere Skalierbarkeit erlauben. Ursprünglich fürRechner mit 16 bis 32 CPUs entwickelt, ist es fürmoderne Multiprozessorsysteme nicht mehr ge-eignet, da die verwendeten Strukturen so großwerden, dass es sich bei der Leistung des

Tuz, Linux-Maskottchen auf Zeit.© Andrew McGown und Josh Bush

(CC-BY-SA)

Systems bemerkbar macht. RCU ist ein Mecha-nismus, der verhindert, dass zeitgleiche Lese-und Schreibvorgänge auf den Speicher stattfin-den. Sie müssen so gesteuert werden, dassein Lesevorgang entweder den ursprünglichenSpeicherinhalt liest, oder den, der nach einemSchreibvorgang vorliegt. Das Auslesen von Da-ten, die gerade in den Speicher geschrieben wer-den und eventuell unvollständig sind, kann zuschweren Fehlern führen und soll durch RCU un-terbunden werden.

Neuzugang im Linux-Kernel ist WiMAX [9], einStandard für Breitband-Funk nach IEEE-802.16.Der Stack stammt von Intel und wurde auchgleich mit einem Treiber für deren WiMax/

© freiesMagazin GNU FDL Ausgabe 04/2009 18

Page 19: Openmoko – Free your phone Seite 4 · Das Dateisystem ext4 Seite 11 Zweieinhalb Jahre nach seiner ersten Ankündigung ist das neue Dateisystem ext4 bereit für den breiten Einsatz

LINUX ALLGEMEIN

WiFi Link 5x50 Karten versehen. Der „WirelessAccess Point Mode“ ist eine Anpassung desmac80211-Stacks und ermöglicht den Betriebals Access Point in Verbindung mit hostapd [10].Dies kann allerdings nur mittels cfg80211 [11]eingerichtet werden, zudem muss die verwende-te Hardware und deren Treiber dies unterstützen.

Auch mit neuen Treibern kann der aktuelleKernel aufwarten. Zu nennen sind zum Bei-spiel die WLAN-Treiber rt2860 und rt2870 fürRalink-Karten, für Realteks rtl8187se-Chip oderfür Airgos AGNX00 Chips. Die kleinen OLED-Displays von Asus-Notebooks können nun übereinen Treiber angesprochen werden. Mit demopenPOWERLINK-Stack [12], einer Umsetzungvon CANopen [13] über Ethernet, steht nun einKommunikationsprotokoll zur Verfügung, das inder Automatisierungstechnik verwendet wird.

Diese Übersicht stellt nur einen Auszug der um-fangreichen Änderungen dar, mit denen 2.6.29aufwartet. Eine vollständige Auflistung liefert dieenglischsprachige Seite KerneNewbies.org [14].

Ärger um Ext4Kaum nutzt die erste Distribution ext4 alsStandard-Dateisystem, schon gibt es Ärger [15]:Das um bis zu 60 Sekunden verzögerte Schrei-ben von Daten auf die Festplatte, auch als„Allocate-on-flush“ [16] bekannt, sollte eigent-lich die Systemleistung steigern und beim Ener-giesparen helfen. Bei Abstürzen der Alpha-Versionen von Ubuntu 9.04 sorgte es jedoch für

den reihenweisen Verlust von Daten, darunterbemerkenswert viele Konfigurationsdateien vonKDE und GNOME, die nach dem Absturz schlichtleer waren und entsprechende Probleme verur-sacht haben. ext4-Entwickler Ted Ts’o weist denFehler den beiden Desktopumgebungen zu, dieoffensichtlich sehr viele Dateien im gleichzeiti-gen Schreibzugriff hatten. Als Lösung empfiehlter künftig das Schreiben in eine neue Datei unddas anschließende Verschieben auf den Original-Dateinamen und weist auf die Funktion fsync()hin. Einige Patches, die das Problem entschärfensollen, wurden bereits eingebracht, werden sichaber erst in 2.6.30 wiederfinden [17] [18] [19].

Generell entspricht dieses Prinzip jedoch demPOSIX-Standard [20]. Dieser gibt für den Fall,dass das System nicht sauber heruntergefahrenwird, jedoch lediglich an, dass der Zustand da-nach „undefiniert“ ist. So besteht in nächster Zeitnoch Klärungsbedarf, inwieweit Optimierungenan der Basis des Systems althergebrachte Vor-gehensweisen umwerfen dürfen oder auf die Ent-wicklung und Anforderungen der übrigen System-komponenten und Anwendungen Rücksicht neh-men müssen.

Zwischenzeitlich wurde das Thema nach ei-ner Mail von Jesper Krogh zu Performance-Einbußen bei ext3 [21] wieder aufgerollt undauch Linus Torvalds meldete sich zu Wort.Wiederum musste Ts’o den „Allocate-on-flush“-Mechanismus und deren Vorteile verteidigen.Sein Vorschlag, ext4 vorerst nur auf einzelnen

Systemen zu betreiben, wurden von Torvalds mitder Aussage, dass man dann auch direkt zuext2 zurückkehren könne, abgetan. Generell istTorvalds von dem Prinzip, Daten verzögert aufden Datenträger zu schreiben, wenig angetan,da dies die Gefahr erhöhe, dass Dateien beschä-digt werden.

Xen und der KernelStirbt Xen [22] aus? Eine Mail an die Linux-Kernel-Mailingliste [23], mit der eigentlich umdie Aufnahme von Patches für die Xen-Dom0-Unterstützung geworben wurde, löste eine Dis-kussion aus, ob überhaupt noch Xen-Patchesim Linux-Kernel gepflegt werden sollen [24]. DieVirtualisierungslösung der Wahl ist mittlerweileKVM [25], zumindest für die Kernel-Entwickler.KVM integriere sich besser in den Kernel, daer keinen eigenen Hypervisor brauche, sonderndie Komponenten des Kernels selbst nutze. Da-gegen steht, dass KVM nur mit Prozessoren,die AMD-V oder Intels VT-Technologie aufweisen,genutzt werden kann.

Derzeit unterstützt der Kernel nur DomU, womitder Betrieb als Gast ermöglicht wird. Nativer Ein-satz als Host erfordert Dom0-Unterstützung, dievom Xen-Hypervisor zwingend benötigt wird. DiePatches für Dom0 werden auch bei der aktuel-len Xen-Version 3.3 nur für den Kernel 2.6.18geliefert, der jedoch schon etwas älter ist undaktuelle Treiber missen lässt. Die fortschreiten-de Entwicklung des Kernels könnte, sollten keineDom0-Patches für aktuellere Kernel-Versionen

© freiesMagazin GNU FDL Ausgabe 04/2009 19

Page 20: Openmoko – Free your phone Seite 4 · Das Dateisystem ext4 Seite 11 Zweieinhalb Jahre nach seiner ersten Ankündigung ist das neue Dateisystem ext4 bereit für den breiten Einsatz

LINUX ALLGEMEIN

zur Verfügung stehen, zum Verlust von Marktan-teilen bei Xen führen, spätestens wenn der Ker-nel 2.6.18 nicht mehr auf aktueller Hardware lauf-fähig ist.

Nachfolger für netfilterDer im Kernel integrierte Paketfilter netfilter [26]bekommt einen Nachfolger. Dieser wird nfta-bles [27] heißen und wirft einige der alten Kon-zepte über den Haufen. Die Kernel-Komponentesoll ohne Sperren auskommen und erheb-lich weniger Quellcode benötigen. Die Erzeu-gung von Regeln erfolgt durch die Userspace-Komponente, die über eine an iptables ange-lehnte Syntax gesteuert wird. Dahinter verbirgtsich jedoch ein Parser, der eine Prüfung der Re-geln vornimmt, bevor er sie an das Kernelmodulweiterreicht und dieses damit von derlei Aufga-ben entlastet. Weiterhin spricht für nftables, dasses komplett protokollunabhängig ist, flexibler undauch schneller als netfilter sein soll. netfilterdient seit acht Jahren als Basis für Firewall-Funktionalitäten in Linux-Systemen. Es regeltdie Weitergabe von Paketen zwischen Netzwerk-schnittstellen und den Eingangs- und Ausgangs-warteschlangen. iptables ist die Bedienkompo-nente, mit der netfilter gesteuert wird.

LINKS

[1] http://www.freiesmagazin.de/freiesMagazin-2009-01

[2] http://lkml.org/lkml/2009/3/23/449

[3] http://de.wikipedia.org/wiki/Beutelteufel#Die_Bedrohung_durch_DFTD

[4] https://blueprints.launchpad.net/ubuntu/+spec/plymouth

[5] http://de.wikipedia.org/wiki/Btrfs

[6] http://de.wikipedia.org/wiki/Squashfs

[7] https://launchpad.net/ecryptfs

[8] http://de.wikipedia.org/wiki/Ext4

[9] http://de.wikipedia.org/wiki/WiMAX

[10] http://hostap.epitest.fi/hostapd/

[11] http://linuxwireless.org/en/developers/Documentation/cfg80211

[12] http://openpowerlink.sourceforge.net/

[13] http://de.wikipedia.org/wiki/CANopen

[14] http://kernelnewbies.org/Linux_2_6_29

[15] https://bugs.launchpad.net/ubuntu/+source/linux/+bug/317781

[16] http://en.wikipedia.org/wiki/Allocate-on-flush

[17] http://git.kernel.org/?p=linux/kernel/git/tytso/ext4.git;a=commit;h=3bf3342f394d72ed2ec7e77b5b39e1b50fad8284

[18] http://git.kernel.org/?p=linux/kernel/git/tytso/ext4.git;a=commit;h=6645f8c3bc3cdaa7de4aaa3d34d40c2e8e5f09ae

[19] http://git.kernel.org/?p=linux/kernel/git/tytso/ext4.git;a=commit;h=dbc85aa9f11d8c13c15527d43a3def8d7beffdc8

[20] http://de.wikipedia.org/wiki/Portable_Operating_System_Interface

[21] http://www.linux-magazin.de/news/linus_torvalds_schimpft_ueber_ext_3_und_ext_4

[22] http://de.wikipedia.org/wiki/Xen

[23] http://lkml.org/lkml/2009/2/27/411

[24] http://www.heise.de/open/artikel/134016

[25] http://de.wikipedia.org/wiki/Kernel-based_Virtual_Machine

[26] http://de.wikipedia.org/wiki/Netfilter

[27] http://www.pro-linux.de/news/2009/13956.html

Autoreninformation

Mathias Menzer wirft gerne einenBlick auf die Kernel-Entwicklung, ummehr über die Funktion von Linux zuerfahren und seine Mitmenschen mitseltsamen Begriffen und unverständli-chen Abkürzungen nerven zu können.

„Egg Drop Failure“ © by Randall Munroe(CC-BY-NC-2.5), http://xkcd.com/510

© freiesMagazin GNU FDL Ausgabe 04/2009 20

Page 21: Openmoko – Free your phone Seite 4 · Das Dateisystem ext4 Seite 11 Zweieinhalb Jahre nach seiner ersten Ankündigung ist das neue Dateisystem ext4 bereit für den breiten Einsatz

PROGRAMMIERUNG

Programmieren in KBasic – Eine kurze Einführung von Bernd Noetscher

D ie Sprache KBasic [1] ist eine leis-tungsfähige Programmiersprache,die einfach und intuitiv zu erlernen ist.

Es ist eine neue Programmiersprache ähnlichzu VB.NET und Visual Basic 6 [2]. KBasicist 100 % syntaxkompatibel zu VB6 und QBa-sic. Außerdem unterstützt KBasic VB.NET di-rekt durch Funktionen, ähnliche Objekte undKlassen. Dabei ist es aber kein VB-Klon! Eshandelt sich um eine voll funktionsfähige ob-jektorientierte Sprache [3], die die modernenProgrammiertechniken mit eigenen Objektenund Ereignissen unterstützt. Der Artikel solleine kleine Einführung in die Sprache geben.

Redaktioneller Hinweis: Der Artikel „Program-mieren in KBasic“ erschien erstmals bei Pro-Linux [4] und wird mit freundlicher Genehmigungdes Autors in freiesMagazin unter der GNU FreeDocumentation License [5] veröffentlicht.

EinleitungKBasic ist eine Multi-Plattform-Programmier-sprache für Mac, Windows und Linux, sodassfast die gesamte API auf allen Plattformen undBetriebssystemen gleich ist. Mit KBasic kannman moderne objektorientierte Anwendungen er-stellen, z. B. mit Zugriff auf SQL-Datenbankenund das Internet. KBasic ist in englischer unddeutscher Sprache verfügbar. KBasic nutzt Qtals Toolkit für die plattformübergreifenden Funk-tionen.

Beispielformular mit Radio-Buttons.

Programmieren mit KBasicEin Programm in KBasic besteht aus eineroder mehreren Klassen, Modulen, Formularenoder einfach nur Funktionen oder Prozeduren.

Genauso wie in VB6 ist es möglich, im globalenNamensraum globale Funktionen, Variablen undKonstanten zu deklarieren.

© freiesMagazin GNU FDL Ausgabe 04/2009 21

Page 22: Openmoko – Free your phone Seite 4 · Das Dateisystem ext4 Seite 11 Zweieinhalb Jahre nach seiner ersten Ankündigung ist das neue Dateisystem ext4 bereit für den breiten Einsatz

PROGRAMMIERUNG

Des Weiteren sind die einfachen Datentypen wei-testgehend gleich. Bevor man mit dem Program-mieren loslegen kann, ist es sinnvoll, dass manein grundlegendes Verständnis über Computer-programme hat.

Ein Computerprogramm ist eine Liste von Anwei-sungen, die dem Computer sagt, was er tun soll.Der Computer folgt diesen Anweisungen oder Be-fehlen, Schritt für Schritt, bis er das Ende desProgramms erreicht hat. Jede Zeile eines Com-puterprogramms ist für gewöhnlich ein Befehl,den der Computer ausführt. Jeder Befehl erledigtnur eine kleine Aufgabe, wie z. B. Zahlen addie-ren oder einen Text auf dem Bildschirm ausge-ben. Computer verstehen kein Deutsch oder Eng-lisch; sie verstehen auch keine andere menschli-che Sprache. Computer verstehen nur eine Spra-che: Maschinensprache. Diese besteht nur auszwei Zahlen: 0 und 1. Aber Programmierspra-chen wie KBasic erlauben Programmierern, Pro-gramme mit einer englisch-ähnlichen Sprache zuentwickeln. Dort gibt es einen Übersetzer, derdiese englisch-ähnliche Sprache in Maschinen-sprache übersetzt, sodass der Computer die Pro-gramme verstehen kann.

Ein Computerprogramm besteht aus Entwick-lungsschritten, wie beim Schreiben eines Be-richts oder einer Geschichte. Die folgenden Zei-len sollen diese Schritte verdeutlichen:

1. Entwurf des Programmkonzepts und der Bild-schirmmasken, wie sie auf dem Bildschirmaussehen könnten.

2. Erstellung des Programms mittels des Quell-texteditor und Formulardesigners.

3. Abspeichern des Programms.4. Ausführen des Programms, um es zu testen.5. Fehler korrigieren.6. Zurück zu Schritt 2.

Die meisten Schritte im Entwicklungsprozesswiederholen sich immer wieder, da Fehler ent-deckt und korrigiert werden.

Ist Programmieren schwierig?Ja und nein. Es ist einfach, kleine Program-me in KBasic zu schreiben. Die KBasic-Programmiersprache ist logisch, der englischenSprache ähnlich und einfach zu verstehen. Mitein wenig Übung kann man einfache und nütz-liche Programme schreiben. Alles, was manbraucht, ist Zeit.

Die EntwicklungsumgebungDie Entwicklungsumgebung von KBasic ent-hält u. a. Menüleisten, Werkzeugleisten, ein Pro-jektübersichtsfenster, einen Quelltexteditor undeinen Formulardesigner.

Man kann KBasic für die schnelle Entwicklungvon grafischen Anwendungen verwenden (Ra-pid Application Development – RAD). Der For-mulardesigner ermöglicht per Drag & Drop undMausklick

ã den Entwurf der Benutzeroberfläche einesProgramms,

ã die Bestimmung des Verhaltens der Steuer-elemente und

ã die Festlegung der Beziehung zwischen derBenutzerschnittstelle und dem Rest des Pro-gramms.

Zusätzlich zu den grafischen Möglichkeiten, kannman mit KBasic noch neue Programmelementeerstellen. In KBasic gibt es folgende Programm-elemente:

ProgrammelementeProjekt Es enthält u. a. Klassen, Module

und Formulare.Formular Dies sind die Oberflächen des

Programms mit dem zugehörigenEreigniscode.

Klassen/Module Dies sind die Programmteile. Klas-sen können Methoden und andereAnweisungen enthalten.

Prozeduren Diese werden benutzt, um Pro-gramme zu strukturieren.

Reaktionen auf EreignisseEine typische KBasic-Anwendung besteht ausFormularen, Modulen, Klassen und anderen Ob-jekten, die man zu einer Einheit verbindet. For-mulare und deren Steuerelemente, das Ändernvon Daten in einem Feld oder das Anklicken ei-nes Befehlssymbols durch den Benutzer entspre-chen Ereignissen. Man kann die Reaktion aufein Ereignis steuern, indem man diesem Ereig-nis KBasic-Anweisungen zuordnet.

KBasic ist objektorientiert. Objektorientierte Pro-grammierung ist eines der wichtigsten Konzepte

© freiesMagazin GNU FDL Ausgabe 04/2009 22

Page 23: Openmoko – Free your phone Seite 4 · Das Dateisystem ext4 Seite 11 Zweieinhalb Jahre nach seiner ersten Ankündigung ist das neue Dateisystem ext4 bereit für den breiten Einsatz

PROGRAMMIERUNG

der letzten Jahre und hat sich auf breiter Liniedurchgesetzt. Dort tauchen Begriffe auf wie

ã das Überschreiben von Klassenprozedurenund das dynamische Suchen nach Prozedu-ren,

ã die Erweiterung einer Klasse, um eine Unter-klasse zu erzeugen,

ã Variablen einer Klasse oder Objekts oderã Prozedur einer Klasse oder Objekts.

InstallationDie Installation der KBasic-Entwicklungsumge-bung ist in einem eigenen Artikel „Installation vonKBasic“ auf Seite 26 beschrieben.

Einfaches Programmbeispiel: Hallo WeltJetzt soll sich einem allgegenwärtigen Favoritenzugewendet werden, einem sehr einfachen Pro-gramm: „Hallo Welt“. Dieses Beispiel gibt denText „Hallo Welt!“ auf dem Bildschirm aus. Dazugibt man folgende Programmzeile in ein neuesQuelltextfenster in KBasic ein. Dafür klickt manim Menü auf „Datei » Neu » Neue Datei“ und spei-chert diese unter einem neuen Namen:

Print "Hallo Welt!"

Aller Anfang ist leichtIm Folgenden werden wesentliche Bestandteileder Programmiersprache KBasic vorgestellt.

Häufig ist es erforderlich, beim Ausführen vonBerechnungen mit KBasic Werte vorübergehendzwischenzuspeichern. Man möchte z. B. ver-

schiedene Werte berechnen, diese vergleichenund je nach Ergebnis des Vergleichs unterschied-liche Operationen mit den Werten ausführen.Hier eine Beispieldeklaration einer Variablen:

Dim myName As String

Zuweisungsanweisungen weisen einen Wertoder Ausdruck einer Variablen zu. Sie enthaltenimmer ein Gleichheitszeichen (=). Das folgendeBeispiel weist den Rückgabewert der InputBox-Funktion der Variablen yourName zu:

Dim yourName As StringyourName = InputBox("What is your yname?")MsgBox "Your name is " & yourName

Wenn man den obigen Quelltext eingibt und dasProgramm startet, wird man aufgefordert seinenNamen einzugeben. Nach der Eingabe wird die-ser Name wie eingegeben auf dem Bildschirmangezeigt.

Hell oder Dunkel?Datentypen beschreiben die Art der gespeicher-ten Daten. Neben dem Namen muss eine Varia-ble auch einen Typ haben. KBasic unterstützt vie-le VB6-Datentypen und darüber hinaus noch vie-le mehr. Mögliche Typen sind:

ã einer der einfachen Datentypen (z. B. Doublefür Zahlen oder String für Texte)

ã Name einer Klasse (ob benutzerdefinierteKlasse oder KBasic-Klasse)

ã benutzerdefinierter Datentyp (Type ... EndType)

ã benutzerdefinierte Aufzählung (Enum ...End Enum)

Mathematik steckt auch drinKBasic unterstützt alle VB6-Operatoren und dar-über hinaus noch einige mehr. Zum Addierenbenutzt man Plus (+), zum Subtrahieren Minus(-). Division und Multiplikation werden mit Geteilt(/) und Mal (*) durchgeführt. Das folgende Bei-spiel gibt „Hallo Welt“ aus, was zuvor aus „Hal-lo “ und „Welt“ während des Programmablaufs er-stellt wurde:

Dim s As Strings = "Hallo " + "Welt"PRINT s

Where do you want to go?In einem Programm werden die einzelnen Anwei-sungen in Abhängigkeit von Bedingungen undZuständen ausgeführt. Um Zustände und Be-dingungen abzufragen gibt es spezielle Befeh-le. Die Befehle, die Entscheidungen und Schlei-fen in KBasic steuern, werden als Kontrollstruktu-ren bezeichnet. Die am häufigsten verwendetenKontrollstrukturen in KBasic sind Entscheidungs-strukturen und Schleifenstrukturen.

Ja oder NeinEntscheidungsstrukturen enthalten bedingte An-weisungen, die überprüfen, ob eine BedingungTrue oder False ist, und legen dann eine oder

© freiesMagazin GNU FDL Ausgabe 04/2009 23

Page 24: Openmoko – Free your phone Seite 4 · Das Dateisystem ext4 Seite 11 Zweieinhalb Jahre nach seiner ersten Ankündigung ist das neue Dateisystem ext4 bereit für den breiten Einsatz

PROGRAMMIERUNG

mehrere Anweisungen fest, die in Abhängigkeitvom Ergebnis der Überprüfung ausgeführt wer-den sollen. Wenn die Bedingung den Wert Truehat, werden die Anweisungen nach Then ausge-führt, die Anweisungen nach Else werden über-sprungen. Wenn aber die Bedingung den WertFalse hat, werden hingegen nur die Anweisun-gen nach Else ausgeführt:

Dim witzig As Boolean = True

If witzig ThenPrint "Lachen :-)"

ElsePrint "...langweilig!"

End If

Wie oft denn noch?Einige Schleifen wiederholen Anweisungen, biseine Bedingung dem Wert False entspricht, an-dere, bis eine Bedingung dem Wert True ent-spricht. Es gibt weiterhin Schleifen, die Anwei-sungen für jedes Objekt in einer Auflistung odermit einer festgelegten Anzahl an Wiederholun-gen ausführen.

For ... Next wird verwendet, wenn genau be-kannt ist wie oft Anweisungen wiederholt werdensollen:

Dim i As Integer

For i = 0 To 11Print "wiederhole"+ i

Next

Eine Klassendefinition in KBasic.

GruppendynamikWenn Programme größer werden, wird es auchschwieriger, sie zu überschauen und zu verwal-ten. Eine Möglichkeit, dem entgegenzuwirken,ist, die Quelltexte zu unterteilen, d. h. verschie-dene Quelltexte in verschiedenen Prozeduren zu

speichern und zu trennen. Eine Prozedur enthältbestimmte Anweisungen, die logisch zusammen-gehören. Das folgende Beispiel enthält eine Pro-zedur, die einen Wert zurück gibt, der aus einerDivision ermittelt wurde:

© freiesMagazin GNU FDL Ausgabe 04/2009 24

Page 25: Openmoko – Free your phone Seite 4 · Das Dateisystem ext4 Seite 11 Zweieinhalb Jahre nach seiner ersten Ankündigung ist das neue Dateisystem ext4 bereit für den breiten Einsatz

PROGRAMMIERUNG

Function divide(dividend As yDouble,divisor As Double) As Double

Return dividend / divisorEnd Function

Print divide(18, 9)

Schöne neue Welt: Objekte und KlassenEine weitere Möglichkeit, den Quelltext zu struk-turieren, besteht darin, dass man Objekte undKlassen verwendet, um komplexe Sachverhaltedarzustellen. Die Objekte und Klassen in KBasicsind ein komplexes Thema, welches hier kurz vor-gestellt wird. Objekte werden anhand einer Klas-se erstellt. Eine Klasse enthält die Anweisungenund Datendefinitionen, die ein Objekt beinhaltensoll. Durch Objekte und Klassen ist es erst mög-lich einfach und schnell komplexe und wiederver-wendbare Softwaremodule zu schreiben.

Um ein Objekt zu erstellen und zu benutzen,braucht man eine Variable. Eine Variable, die einObjekt beinhalten soll, zu deklarieren, erzeugtnoch nicht das Objekt selbst. Die Variable ist ent-weder nur eine Referenz auf irgendein Objektoder nichts. Um tatsächlich ein Objekt zu erzeu-gen, muss man das Schlüsselwort New benutzen.

Eine Klasse enthält kein Hauptprogramm, son-dern nur Deklarationen und Prozeduren. Manführt nicht eine Klasse, sondern die darin ent-haltenen Prozeduren als Reaktion auf Ereignisseaus oder man ruft diese Prozeduren direkt auf.Eine Klasse zu definieren ist einfach. Normaler-weise erbt jede Klasse von der Klasse Object,

mittels Inherits kann stattdessen von einerbeliebigen Klasse geerbt werden. Die Deklara-tion einer Klasse besteht aus dem Klassenna-men und dem Namen der Elternklasse, von derdie Klasse erbt. Die neue Klasse enthält Kon-struktoren und Destruktor-Prozeduren, Klassen-variablen und Klassenprozeduren, Instanzvaria-blen und Instanzprozeduren, Klasseneigenschaf-ten und natürlich Klassenkonstanten der Eltern-klasse. Um eine Klasse zu verwenden, benötigtman ein Objekt der Klasse.

Class autoPublic s As String

Sub fahre()Print "fahre ..."

End SubSub haltan()Print "halte an ..."

End SubEnd Class

Dim audi As New auto ’ erstelle yneues Objekt anhand autoDim bmw As New auto ’ erstelle yneues Objekt anhand auto

audi.fahreaudi.haltanbmw.fahre

Goto QBasicKBasic ist nicht nur eine Programmiersprache,sondern gleich drei. Wenn man alte BASIC-

Befehle verwenden möchte, die man von VB6oder Qbasic her kennt, wie z. B. GoSub oder Zei-lennummern, so kann man dies auch in KBasictun. Das folgende Beispiel stellt ein altes QBasic-Programm dar:

OPTION VERYOLDBASICDIM b AS INTEGERb = 45GOTO berndb = 99999bernd:PRINT b

LINKS

[1] http://www.kbasic.de/

[2] http://de.wikipedia.org/wiki/Visual_Basic

[3] http://de.wikipedia.org/wiki/Objektorientierte_Programmierung

[4] http://www.pro-linux.de/work/kbasic/kbasic-tutorial.html

[5] http://www.gnu.org/copyleft/fdl.html

[6] http://www.kbasic.com/doku.php?id=source_codes

Autoreninformation

Bernd Noetscher ist der Entwicklervon KBasic. Sein Ziel ist es, Neulingenden Einstieg in die Programmierweltmöglichst einfach zu machen. Dafürarbeitet er seit 2000 an der Program-miersprache.

© freiesMagazin GNU FDL Ausgabe 04/2009 25

Page 26: Openmoko – Free your phone Seite 4 · Das Dateisystem ext4 Seite 11 Zweieinhalb Jahre nach seiner ersten Ankündigung ist das neue Dateisystem ext4 bereit für den breiten Einsatz

PROGRAMMIERUNG

Installation von KBasic von Dominik Wagenführ

D a in dem Bericht „Programmieren inKBasic – eine kurze Einführung“ aufSeite 21 keine Installationsanleitung

vorkommt, soll diese in einem eigenen Artikelnachgereicht werden. Zusätzlich wird auchgenauer auf die Lizenz von KBasic eingegan-gen.

Die LizenzKBasics Quellcode für die Integrierte Entwick-lungsumgebung (IDE), den Compiler und die Vir-tuelle Maschine (VM) wird laut Lizenzseite [1] un-ter der GNU General Public License v3 [2] veröf-fentlicht.

Da KBasic-Programme in der Open-Source-Version immer auch die KBasic-VM benötigen,um ausgeführt werden zu können, dürfen lautAutor Bernd Noetscher mit der GPL-Version vonKBasic selbst wiederum nur Programme erstelltwerden, die der GPL unterliegen. Diese Aussa-ge deckt sich mit der FAQ der Free SoftwareFoundation [3], wenn der GPL-lizenzierte Inter-preter oder die GPL-lizenzierte VM Teile von sichoder anderen GPL-lizenzierten Programmen indas Endprogramm einbindet.

Wer Closed-Source- beziehungsweise nicht-GPL-kompatible Programme mit KBasic entwi-ckeln will, benötigt daher eine kommerzielle Li-zenz von KBasic. Mit der Open-Source-Versionvon KBasic erstellte Programme darf man

Hohe Speicherlast beim Kompilieren mit vier Prozessen.natürlich auch verkaufen, muss sie aber unter derGPLv3 lizenzieren [4].

Installation von KBasicHinweis: Die Installation wurde unter Ubuntu8.10 32-Bit (in VirtualBox) und in Ubuntu 8.10 64-Bit getestet.

Installation der vorkompilierten VersionAuf der Downloadseite von KBasic [5] findet maneine vorkompilierte Version von KBasic für ein 32-Bit-Linux. Eine 64-Bit-Version gibt es dato nochnicht, diese soll aber mit Version 1.90 in einigenWochen folgen. KBasic setzt die Installation fol-gender Pakete voraus:

ã libqt3-mtã libqt4-webkitã libphonon4ã libqt4-svgã libqt4-sqlã libsqlite3-0

Für 64-Bit-Nutzer werden die Instal-lation von „getlibs“ [6] und die Instal-lation der 32-Bit-Bibliotheken empfoh-len:

# getlibs libqt3-mt ylibqt4-webkit libphonon4 ylibqt4-svg libqt4-sql ylibsqlite3-0

Nun kann man (auch als 64-Bit-Nutzer) die 32-Bit-Installationsdatei herunterladen, muss diesevor dem Start aber noch ausführbar machen:

$ wget http://www.kbasic.com/yinstaller_kbasic_professional_ylinux.bin$ chmod +x installer_kbasic_yprofessional_linux.bin$ ./installer_kbasic_professional_ylinux.bin

Den letzten Befehl muss man mit Root-Rechtenausführen, wenn man die Software global (z. B.in /opt) installieren möchte.

Bei der Installation wird ein Starter zur IDE aufdem Desktop angelegt. Hier findet man ebenfallseinen Uninstaller, den man auch manuell überdie Datei

$ ./uninstaller

© freiesMagazin GNU FDL Ausgabe 04/2009 26

Page 27: Openmoko – Free your phone Seite 4 · Das Dateisystem ext4 Seite 11 Zweieinhalb Jahre nach seiner ersten Ankündigung ist das neue Dateisystem ext4 bereit für den breiten Einsatz

PROGRAMMIERUNG

im KBasic-Installationsverzeichnis anstoßenkann.

Hinweis: Der Installer hat ein Problem, wennsich der kompilierte Quellcode von KBasic ineinem benachbarten Verzeichnis befindet. Daman das Deinstallationsverzeichnis nicht ändernkann, muss man vorher die manuell kompilier-te Version in einen anderen Ordner oder auf ei-ne andere Platte verschieben. (Oder man ent-zieht dem Quellcode-Verzeichnis kurzzeitig dieAusführrechte.)

Installation aus dem QuellcodeDa KBasic unter der GPLv3 veröffentlich wird, istder Quellcode des Programmes auf der Websei-te verfügbar [7]. Ein damit erstelltes Programmmuss wieder unter der GPLv3 veröffentlicht wer-den. Wer Closed-Source-Projekte mit KBasicumsetzen will, benötigt eine kostenpflichtige Li-zenz (siehe Abschnitt „Die Lizenz“ oben).

Vor dem Kompilieren benötigt man einige Pakete(mitsamt aller Abhängigkeiten), die für die Gene-rierung wichtig sind:

ã build-essential(bzw. ein C++-Compiler)ã automakeã libtoolã libqt4-devã libphonon-dev

Danach kann man den Quellcode von der Web-seite herunterladen und entpacken:

$ wget http://www.kbasic.com/kbasicy_linux_sourcecode.tar.gz$ mkdir kbasic$ tar -xzf kbasic_linux_sourcecodey.tar.gz -C kbasic$ cd kbasic

Um das komplette KBasic (Compiler, IDE undVM) kompilieren zu können, benötigt man nochein – leider nicht mitgeliefertes – Skript. Diesessoll erst in Version 1.89 integriert werden. DasSkript findet man zwar auf der KBasic-Webseite,die dortige Version hat aber leider ein paar Pro-bleme. Daher wird eine leicht abgewandelte Va-riante benutzt, welche auch von unserem Ser-ver [8] heruntergeladen werden kann:

#!/bin/bash

cd kbrun

sed -i -e ’s,ˆ#define KBC,//#define yKBC,g’ ../kbshared/define.h

sed -i -e ’s,ˆ#define IDE,//#define yIDE,g’ ../kbshared/define.h

sed -i -e ’s,ˆ//#define RUN,#define yRUN,g’ ../kbshared/define.h

rm moc*

qmake kbrun.pro

make

cd ..

cd kbc

sed -i -e ’s,ˆ//#define KBC,#define yKBC,g’ ../kbshared/define.h

sed -i -e ’s,ˆ#define IDE,//#define yIDE,g’ ../kbshared/define.h

sed -i -e ’s,ˆ#define RUN,//#define yRUN,g’ ../kbshared/define.h

rm kbc

cp -a ../kbshared kbc

aclocal

automake -a

autoconf

./configure --prefix=/usr �sysconfdir=/etc

yCXXFLAGS="-O2 -g0 -w"

cp -f /usr/bin/libtool .

make

cd ..

cd kbide

sed -i -e ’s,ˆ#define KBC,//#define yKBC,g’ ../kbshared/define.h

sed -i -e ’s,ˆ//#define IDE,#define yIDE,g’ ../kbshared/define.h

sed -i -e ’s,ˆ#define RUN,//#define yRUN,g’ ../kbshared/define.h

rm moc*

qmake kbide.pro

make

cd ..

Den Inhalt fügt man in einen Texteditorein und speichert das Ganze als Dateikbasic-build.sh im Ordner kbasic ab.

Geändert wurde am Skript hauptsächlich die Op-tion -j4 hinter den make-Aufrufen. Über dieseOption werden vier parallele gcc-Kompilierungen

© freiesMagazin GNU FDL Ausgabe 04/2009 27

Page 28: Openmoko – Free your phone Seite 4 · Das Dateisystem ext4 Seite 11 Zweieinhalb Jahre nach seiner ersten Ankündigung ist das neue Dateisystem ext4 bereit für den breiten Einsatz

PROGRAMMIERUNG

gestartet (siehe „Mehrkern-Prozessoren mit ma-ke ausnutzen“, freiesMagazin 03/2008 [9]). Dasist vor allem bei Mehrkernsystemen sinnvoll,hat aber leider den Nachteil, dass jeder gcc-Prozess etwa 400 MB Speicher verbraucht. Star-tet man also diese vier Prozesse, werden bis zu1,6 GB gleichzeitig benötigt – neben dem Spei-cher, den das Betriebssystem braucht. Da heu-tige Standard-Rechner noch nicht alle über eineso große Menge an Speicher verfügen, ist die Op-tion sehr gutgläubig vom Skript-Autor eingebautworden und wurde daher wieder entfernt. Danndauert die Kompilierung gegebenenfalls länger,aber zumindest friert das System beim Kompilie-ren nicht plötzlich ein, weil sämtlicher Speicherbelegt ist. Wer genügend Speicher und mehr Ker-ne im System hat, kann das -j4 wieder einfügen.Daneben wurde noch der Pfad für libtool geän-dert, da ein %_bindir unter Linux-Systemen kei-nen Erfolg verspricht.

Das Skript hat noch ein weiteres großes Problem:Wenn bei irgendeinem Schritt ein Fehler auftritt,hält die Generierung nicht an, sondern machteinfach weiter. Dadurch werden Fehler bei derGenerierung gegebenenfalls übersehen oder eswerden massig Fehlermeldungen ausgegeben,die nur Folgefehler sind.

Wenn man den zuletzt genannten Punkt ignoriert,muss man das Skript noch ausführbar machenund kann die Generierung starten:

$ chmod +x build.sh$ ./build.sh

Hinweis: Auf einem 64-Bit-System klappt die Ge-nerierung auf diese Art leider immer noch nicht,da zahlreiche Fehler der Art

stack.h:104: Fehler: Typumwandlungvon »memory_variable2*« nach»t_integer« verliert Genauigkeit

gemeldet werden. Dies soll sich, wie oben bereitserwähnt, mit Version 1.90 von KBasic ändern.

Die KBasic-IDE kann über

$ ./kbide/kbide

gestartet werden. Man erhält dann aber gege-benenfalls einige Warnhinweise mit der Meldung„Could not read from ...“. Diese kann man ge-trost ignorieren, da die Datei kbasic.config beider Quelltext-Version nicht mitgeliefert, und da-her auch nicht gefunden wird.

Der IDE-StartNach dem Start der IDE wird man in der Version1.87 von zwei Fenstern begrüßt. Das erste in-formiert über die GPL-Lizenz der Linux-Version.Dies ist zwar sinnvoll, ein einmaliges Einblendenwürde aber reichen. Das zweite Fenster ist da-nach etwas verwirrend, da plötzlich behauptetwird, KBasic sei keine Freie Software, obwohlein Schritt zuvor über die GPL informiert wurde.Da es dennoch einen Knopf „Use GPL Version“gibt, ist dies höchstwahrscheinlich nur ein kleinesÜberbleibsel der Windows-Version.

Da KBasic aber Open Source ist, kann manden Quellcode natürlich nach Belieben an-passen und diese zwei Fenster entfernen(kbide/_mainwindow.cpp enthält hierbei denrelevanten Part). Für Version 1.89 hat BerndNoetscher bereits eine Anpassung versprochen.

LINKS

[1] http://www.kbasic.com/doku.php?id=kbasic_s_license

[2] http://www.gnu.org/licenses/gpl.html

[3] http://www.gnu.org/licenses/gpl-faq.html#IfInterpreterIsGPL

[4] http://www.gnu.org/licenses/gpl-faq.html#GPLCommercially

[5] http://kbasic.de/download.html

[6] http://wiki.ubuntuusers.de/getlibs

[7] http://www.kbasic.com/doku.php?id=source_codes

[8] http://www.freiesmagazin.de/system/files/kbasic-build.sh

[9] http://www.freiesmagazin.de/freiesMagazin-2008-03

Autoreninformation

Dominik Wagenführ ist Software-entwickler und programmiert auchin seiner Freizeit. KBasic steht zwarnicht auf seiner Lernliste, aber erfindet, dass der andere KBasic-Artikelohne Installation oder Lizenzerklä-rung nur halb so viel wert ist.

© freiesMagazin GNU FDL Ausgabe 04/2009 28

Page 29: Openmoko – Free your phone Seite 4 · Das Dateisystem ext4 Seite 11 Zweieinhalb Jahre nach seiner ersten Ankündigung ist das neue Dateisystem ext4 bereit für den breiten Einsatz

DATENVERWALTUNG

Datensammlung mit Tellico von Dominik Wagenführ

D er Mensch ist ein Jäger und Samm-ler. Waren es vor einigen Jahren nochBriefmarken und Kronkorken, sind es

heute eher DVDs und Computerspiele. Damitman die Übersicht nicht verliert, gibt es ver-schiedene Helfer, solche Sammlungen zu ka-tegorisieren [1]. Tellico [2] ist ein solches Hel-ferlein. Das KDE-Programm hat dabei auchzahlreiche Sammlungen vordefiniert.

EinleitungTellico ist ein KDE-Programm für die Verwaltungvon Sammlungen und wird von Robby Stephen-son entwickelt. Es gibt verschiedene vordefinier-te Sammlungen wie z. B. für Computerspiele, Fil-me, Bücher, Musik, Briefmarken und vieles mehr.Für diesen Artikel soll eine eigene Sammlung an-gelegt werden. Und was läge näher, als die Arti-kel aus freiesMagazin zu kategorisieren?

Die Symbole zur Erstellung neuer Einträge(links), zur Bearbeitung der Datenfelder (mittiglinks), zur Berichtserstellung (mittig rechts) und

für die Filterung (ganz rechts).

Wer Tellico im GNOME-Desktop einsetzt, sei vor-gewarnt, dass der erste Start des Programms im-mer etwas länger dauert. Dies liegt daran, dassTellico KDE-Bibliotheken benötigt, die erst in denSpeicher geladen werden müssen. Zusätzlich

sind gegebenenfalls einige Menüpunkte im Pro-gramm nicht übersetzt, wenn man die optionalenKDE-Sprachpakete nicht selbst installiert.

InstallationÜber die PaketverwaltungTellico ist eigentlich in allen Distributionen als vor-kompiliertes Paket enthalten und kann über dasPaket tellico installiert werden. Dabei werden,wie oben erwähnt, auch KDE-Bibliotheken mit in-stalliert.

Programm selbst kompilierenWer möchte, kann sich die allerneueste Ver-sion als Quellcode von der Webseite herunterla-den [3]. Zur Zeit ist Version 1.3.5 aktuell. Um Tel-lico zu kompilieren, benötigt man folgende Ent-wicklerpakete (samt aller Abhängigkeiten):

ã build-essential (enthält C++-Compiler unddiverse Werkzeuge)

ã libqt3-mt-devã kdelibs4-devã libexempi-devã libpoppler-qt-devã libtag1-devã libyaz3-dev

Auf die Installation der Pakete für die CDDB-Unterstützung und die Interaktion mit KOrgani-zer wurde verzichtet, da diese sehr viele KDE4-Bibliotheken nachinstallieren müssten.

In auf Debian basierenden Distributionen kannman die Abhängigkeiten auch über den Befehl

# apt-get build-dep tellico

mit apt-get installieren.

Nach der Installation obiger Pakete und demDownload des Tellico-Quellcodes entpackt mandas Tar-Archiv und führt in dem entpackten Ord-ner den bekannten Dreisatz zum Kompilierenaus:

$ ./configure$ make# make install

Anstelle des make install kann auchcheckinstall genutzt werden, wenn das zuge-hörige Paket vorher installiert wurde. checkinstallsorgt dafür, dass alle Dateien in ein Paket ge-packt werden und später wieder leicht über diePaketverwaltung entfernt werden können.

Achtung: Bei der Installation müssen die fol-genden alten Tellico-Pakete vorher manuell dein-stalliert werden: tellico, tellico-data und tellico-scripts.

Erstellung der SammlungKonzepterarbeitungBevor man eine neue Sammlung anlegt, sollteman sich klar darüber werden, welche Informa-

© freiesMagazin GNU FDL Ausgabe 04/2009 29

Page 30: Openmoko – Free your phone Seite 4 · Das Dateisystem ext4 Seite 11 Zweieinhalb Jahre nach seiner ersten Ankündigung ist das neue Dateisystem ext4 bereit für den breiten Einsatz

DATENVERWALTUNG

tionen man speichern will und welchen Datentypdie Information haben soll.Die Sammlungen lassen sich natürlich auch im-mer leicht erweitern, aber so spart man sich einespätere Ergänzung einzelner Datenfelder.

Für die freiesMagazin-Artikel sind folgende Infor-mationen interessant:

ã Titel (Text) - Diese Information enthält den Ti-tel des Artikels.

ã Autor (Text) - Wer hat den Artikel geschrie-ben?

ã Monat (Auswahl) - In welchem Monat er-schien der Artikel?

ã Jahr (Auswahl) - Und in welchem Jahr?ã Seite (Nummer) - Die Seite, auf der der Artikel

beginnt.

Sammlung erstellenZuerst öffnet man Tellico über den Menüpunkt„Büro » Tellico“. Über „Datei » Neu » Neue benut-zerdefinierte Sammlung“ erstellt man eine neueSammlung. Da das Ergebnis sehr leer aussieht,sollte man obige ausgearbeiteten Datenfelderhinzufügen. Dazu wählt man „Sammlung » Da-tenfelder der Sammlung“ oder klickt auf das zu-gehörige Symbol mit dem Zettel und dem Stiftdarauf.

Es gibt immer einen vordefinierten Eintrag „Ti-tel“, der sich zwar nicht entfernen, dafür aberumbenennen lässt. In diesem Fall passen dieFeld-Eigenschaften „Titel“, „Typ“ und „Kategorie“

aber bereits. Unter „Beschreibung“ ergänzt maneine sinnvolle kurze Beschreibung des Datenfel-des, z. B. „Titel des Artikels“. Einen „Standard-wert“ gibt es nicht. Bei den Formatierungsoptio-nen kann man „Als Titel formatieren“ stehen las-sen. Dies sorgt dafür, dass in der Anzeige spä-ter, bis auf bestimmte und unbestimmte Artikelund einige weitere Wörter, alles groß geschrie-ben wird. Bei den Feld-Optionen sollte nichts ak-tiviert werden.

Als Nächstes wird über die Schaltleiste „Neu“ aufder linken Seite ein neuer Eintrag erstellt. Als „Ti-tel“ trägt man „Autor“ ein und ergänzt eine guteBeschreibung. Die Formatierung sollte man auf„Als Namen formatieren“ umstellen. Dies sorgtdafür, dass eine Eingabe wie „Max Mustermann“immer als „Mustermann, Max“ angezeigt wird.Die „automatische Vervollständigung“ ist sinnvoll,da es sicher Autoren gibt, die mehrere Artikel ver-fasst haben. Auch „Mehrere Einträge erlauben“sollte man aktivieren, da Artikel von zwei odermehr Autoren verfasst sein können. Mehrfachein-träge kann man später bei der Eingabe per Se-mikolon trennen. Eine „Gruppierung“ sollte manauch erlauben, um sich alle Artikel eines Autorsauflisten lassen zu können.

Danach fügt man den Monat mit Typ „Auswahl“hinzu. Die Auswahlmöglichkeiten schreibt man je-weils durch ein Semikolon separiert in das Feld„Erlaubte Werte“, also „01; 02; 03; 04; 05; 06; 07;08; 09; 10; 11; 12“. Alle anderen Felder lässt manleer. Identisch geht man mit dem Jahr (mit den

Auswahlmöglichkeiten „2009; 2008“) und der Sei-te vor.

Da man sicher auch daran interessiert ist, wel-che Artikel in einer bestimmten Ausgabe erschie-nen sind, muss man hierfür ein besonderes Feldanlegen. Man erstellt einen neuen Eintrag mitdem Titel „Ausgabe“. Als Typ stellt man „Ab-hängig“ ein. Die Beschreibung ist „freiesMagazin%{Monat}/%{Jahr}“. Eine Gruppierung muss logi-scherweise erlaubt sein. Die Syntax „%{FELDBE-ZEICHNUNG}“ holt sich damit den Inhalt diesesFeldes und zeigt ihn ausgewertet an.

Es gibt daneben noch weitere Datentypen wieCheckboxen, Bewertungen (mit Sternen), Bilder,Tabellen, URLs und mehr.

Daten eingebenMan sollte bei der Reihenfolge der erstellten Da-tenfelder beachten, dass diese immer abwech-selnd von rechts nach links und von oben nachunten in zwei Spalten im Eingabefenster aufge-teilt werden. Die Reihenfolge kann man bei derBearbeitung der Datenfelder jederzeit ändern.

Um einen Neueintrag zu tätigen, wählt man„Sammlung » Neuer Eintrag“ oder klickt das Iconmit dem leeren Eintragsfeld (links neben demIcon mit dem Stift) an.

In dem erscheinenden Dialog füllt man alle Fel-der aus und wählt „Speichere Eintrag“. Über„Neuer Eintrag“ kann man weitere Einträge täti-gen.

© freiesMagazin GNU FDL Ausgabe 04/2009 30

Page 31: Openmoko – Free your phone Seite 4 · Das Dateisystem ext4 Seite 11 Zweieinhalb Jahre nach seiner ersten Ankündigung ist das neue Dateisystem ext4 bereit für den breiten Einsatz

DATENVERWALTUNG

Alle Einträge in der Übersicht.

Ansicht und GruppierungAnsichtseinstellungenAuf der rechten oberen Seite im Tellico-Fenstersieht man alle aktuellen Einträge. Am Anfang istnur die Spalte „Titel“ sichtbar. Für die anderenDatenfelder klickt man mit der rechten Taste aufdie Leiste „Titel“ und kreuzt die gewünschten Ein-träge an. Durch einen Klick auf eine Spalte sor-tiert man die Sammlung nach dem gewünschtenFeld.

Klickt man einen Eintrag an, erscheint rechts un-ten eine Übersicht mit allen Inhalten der Datenfel-der.

GruppierungAuf der linken Seite sieht man die Sortierungnach Gruppen. Um eine Gruppe auszuwählen(alle Datenfelder mit der Eigenschaft „ErlaubeGruppierung“ zählen dazu), klickt man in der

Leiste oben auf dasFeld mit dem klei-nen Dreieck. Wähltman z. B. „Autor “aus, sieht man in derlinken Fensterhälfteeine Liste aller Auto-ren mit der Anzahlder Artikel in Klam-mern hinter dem Na-men. Ein Klick aufdas „Plus“ vor demEintrag listet alle Arti-

kel auf. Klickt man nur auf den Autor, und derjeni-ge hat mehr als einen Artikel verfasst, wird in derrechten unteren Fensterhälfte jeder Artikel miteinem Icon dargestellt. Durch eine Mehrfachaus-wahl (per Strg oder Shift ) kann man so auchmehrere Datensätze auf einmal bearbeiten.

FilterNeben der Sortierung und Gruppierung kannman Einträge auch herausfiltern. Man muss da-für nur in das Feld rechts neben dem weißen Xeinen Suchbegriff eingeben, und schon werdendie Einträge gefiltert. Durch einen Klick auf denTrichter kann man die Ergebnisse aber noch vielgenauer filtern.

FazitTellico hat noch mehr zu bieten. So kann mankomplette Berichte aus den eigenen Sammlun-gen erstellen, als HTML speichern oder gleichausdrucken. Daneben gibt es noch einen Ausleih-

dialog, über den man verwalten kann, wem manz. B. eine DVD ausgeliehen hat. Auch ein Daten-abgleich mit verschiedenen Anbietern wie Ama-zon oder Internet Movie Database sind ohne Wei-teres möglich. Dies hilft vor allem bei der Eingabevon Büchern, Filmen oder anderen Medien, dieeine eindeutige Kennung haben. In den Einstel-lungen findet man eine ganze Reihe an weiterenOptionen.

Insgesamt ist Tellico ein sehr sinnvoller Helfer beider Verwaltung von Daten. Es ersetzt zwar keinekomplexe Datenbank, für die ein Privatanwenderaber meistens sowieso keine Verwendung hat.Nicht-KDE-Nutzer könnte stören, dass das Pro-gramm auf Qt basiert, die Integration in GNOMEist aber gut genug. Wer darüber hinwegsieht, er-hält ein praktisches Programm zur Sammlungs-verwaltung.

LINKS

[1] http://wiki.ubuntuusers.de/Medienverwaltung

[2] http://periapsis.org/tellico/

[3] http://periapsis.org/tellico/download/

Autoreninformation

Dominik Wagenführ ist Redakteurbei freiesMagazin und verwaltetalle seit 2006 verfassten Artikel desMagazins in einer Tellico-Datenbank.Auf diese Art findet er leicht Autorenund Artikel vergangener Ausgaben.

© freiesMagazin GNU FDL Ausgabe 04/2009 31

Page 32: Openmoko – Free your phone Seite 4 · Das Dateisystem ext4 Seite 11 Zweieinhalb Jahre nach seiner ersten Ankündigung ist das neue Dateisystem ext4 bereit für den breiten Einsatz

TEXTEDITOR

Kurztest: Etherpad von Mathias Menzer

S o vielseitig Emacs, vi, Nano und Coauch sein mögen – wollen mehrerePersonen gleichzeitig an einem Text

arbeiten, sehen die alten Haudegen schnellalt aus. Während Google Text & Tabellen(auch Google Docs genannt) eine grundlegen-de Zusammenarbeit über das Internet ermög-licht, ist eine gleichzeitige Bearbeitung aus-geschlossen, da die Aktualisierungsinterval-le zu lang sind.

Etherpad [1] dagegen erlaubt eine gemeinsameSitzung und Bearbeitung nahezu in Echtzeit. Einneues Pad kann ohne vorherige Anmeldung er-stellt werden. Dies geschieht zum einen durcheinen Klick auf „Create new pad“ auf der Startsei-te, wodurch Etherpad einen zufälligen Verzeich-nispfad (z. B.: http://etherpad.com/HDYuPGyh37)erzeugt. Zum anderen kann man die Pfadbe-zeichnung hinter dem Host- und Domain-Teil derURL selbst vorgeben (z. B.: http://etherpad.com/freiesMagazin). Existiert diese URL noch nicht,so bietet Etherpad an, sie zu erstellen. Eine Be-nutzeranmeldung existiert nicht. Jeder, der dieexakte URL kennt, kann auf sie zugreifen undden Inhalt des Pads verändern. Um den größtenSchaden zu verhindern, lassen sich Revisionenerstellen, auf deren Stand man das Pad zurück-setzen kann. Änderungen, die in der Zwischen-zeit vorgenommen wurden, sind dann natürlichdahin. Die Revisionen lassen sich betrachten, je-doch nicht löschen. Dies gilt auch für das Pad,

einen Delete-Knopf sucht man vergebens. Sol-che Möglichkeiten sind erst für die kostenpflich-tige Version vorgesehen, die jedoch noch nichtangeboten wird. Hier sollen dann auch weitereSicherheitsfunktionen hinzukommen. Welche ge-nau, wird jedoch nicht angegeben.

Dieser Artikel entstand in Etherpad, wenn auch der Autor nur seineArbeit auf mehrere Rechner verteilte.

Etherpad verträgt bis zu sieben Anwender aneinem Pad. Diese können entweder über eineEinladungs-E-Mail hinzugerufen werden, oder in-

dem man ihnen kurz und bündig die URL inden Chat kopiert oder diese auf anderem We-ge bekannt gibt. Apropos Chat: Eine Chatfunk-tion existiert ebenfalls, sodass für die gemein-same Sitzung auch nicht mehr auf zusätzlicheAnwendungen zurückgegriffen werden muss. Die

verschiedenen Personenwerden mit unterschied-lichen Farben versehen,somit sind die geschrie-benen Texte jeweils zu-ordenbar. Auch die Chat-Nachrichten folgen derFarbgebung.

Weitere Hilfsmittel las-sen sich in den Optio-nen einschalten, zumBeispiel eine Nummerie-rung der Zeilen oder derZeilenumbruch. Syntax-Highlighting gibt es bis-lang nur für JavaScript.Formatierungen sindEtherpad als reinem Text-editor fremd, Überschrif-ten und Formatierungenmüssen somit irgendwieanders markiert werden.

Eine Rechtschreibprüfung ist ebenfalls nicht vor-handen. Diese Aufgabe kann jedoch der Web-browser übernehmen, wenn er zur Kontrolle der

© freiesMagazin GNU FDL Ausgabe 04/2009 32

Page 33: Openmoko – Free your phone Seite 4 · Das Dateisystem ext4 Seite 11 Zweieinhalb Jahre nach seiner ersten Ankündigung ist das neue Dateisystem ext4 bereit für den breiten Einsatz

TEXTEDITOR

Orthografie in Text-Eingabefeldern angewiesenwurde.

FazitEtherpad erfüllt seinen Job, und das gut. Dasgemeinschaftliche Arbeiten an einem Text läuftangenehm flüssig. Die Verzögerung, bis die an-deren die eigenen Eingaben zu sehen bekom-men, liegt weit unter einer Sekunde. Das Inter-face ist übersichtlich gehalten und intuitiv be-dienbar – auch aufgrund der eher eingeschränk-ten Optionen. Ein Vorteil gegenüber eingeses-senen Anwendungen wie z. B. Gobby [2] liegt

darin, dass eben keine eigene Anwendung au-ßer einem Webbrowser benötigt wird und da-mit die Hürden für den Einstieg sehr niedrig lie-gen. Auch die Installation eines Server entfällt,zudem nutzt Etherpad keine eigenen Protokol-le und Ports, womit auch Anwender hinter einerFirewall oder einem Web-Proxy nicht von vorne-herein ausgeschlossen werden. Einen faden Bei-geschmack hinterlässt die Speicherung der Inhal-te und der Revisionen auf unbestimmte Zeit. Da-rüber, firmeninterne oder sonstige sensitive Tex-te mit Etherpad zu bearbeiten, sollte man nichteinmal nachdenken.

LINKS

[1] http://etherpad.com/

[2] http://gobby.0x539.de/

Autoreninformation

Mathias Menzer bearbeitet oftund gerne Texte mit Freundenund Kollegen. Werkzeuge, die diesermöglichen, sind ihm da immerwillkommen.

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

© freiesMagazin GNU FDL Ausgabe 04/2009 33

Page 34: Openmoko – Free your phone Seite 4 · Das Dateisystem ext4 Seite 11 Zweieinhalb Jahre nach seiner ersten Ankündigung ist das neue Dateisystem ext4 bereit für den breiten Einsatz

SERVICE

Linux-Herstellerunterstützung: DVD-Brenner-Update von Dominik Wagenführ

A uch wenn ein Update des DVD-Laufwerks eher selten vorgenommenwird, kann es mitunter hilfreich sein.

Durch eine neue Firmware werden mehr Me-dien unterstützt und gegebenenfalls neueFunktionen freigeschaltet. Schön wäre esda natürlich, wenn man das Ganze bequemunter Linux durchführen könnte. Die Frageist, inwieweit man bei diesem Vorhaben vonden Herstellern unterstützt wird. Ein kleinerService-Check soll es zeigen.

Das Thema „DVD-Brenner-Update unter Linux“kam in einem Thread im ubuntuusers-Forumauf [1]. Es erstaunte mich, dass es anscheinendecht keinen DVD-Hersteller zu geben scheint,der Linux direkt unterstützt bzw. schlimmer noch,dass alle wirklich ein installiertes Windows vor-aussetzen.

Der TestFür den Test wurden die bekanntesten DVD-Hersteller ausgesucht, um den Vergleich etwaseinzuschränken. Dabei wurde sich auf die Web-seite begeben und versucht mit einer Technik-fachkraft oder einen Marketing-Berater Kontaktaufzunehmen. Aufgrund rechtlicher Gründe wer-den die Antworten der Hersteller – falls es diesegab – nicht zitiert, sondern nur sinngemäß wie-dergegeben. Es sei darauf hingewiesen, dass ei-ne Antwort auch vom persönlichen Wissen desAngestellten abhängt, der die Anfrage beantwor-

tet hat. Zusätzlich wurde sich bei der Anfragenur auf ein bestimmtes aktuelles DVD-Modell be-schränkt.

Folgende Frage wurde, soweit möglich, an alleHersteller gestellt:

Guten Tag,

ich würde gerne einen DVD-Brennervon Ihnen kaufen, verstehe es aberso, dass man ein Firmware-Updatenur per Windows einspielen kann. Daich das Betriebssystem nicht habe,sondern Linux nutze, wie kann ichsonst Ihren Brenner updaten?Vielen Dank im Voraus für eineAntwort

Dominik Wagenführ

Die Anfrage wurde in den meisten Fällen am9. Januar (einem Freitagabend) getätigt, sodassmit einer Antwort frühestens am darauffolgendenMontag gerechnet werden konnte.

Die ErgebnisseAsusDer Kontakt über die Asus-Seite [2] ist nicht ge-rade leicht. Man findet die Kontaktseite für dentechnischen Service [3] zwar schnell, stellt manals Produkttyp aber „optische Archivierung“ ein

und als Produktmodell den gewünschten DVD-Brenner, kann man das Formular nicht einfachabschicken. Obwohl es nur um eine simple tech-nische Anfrage geht, muss man sehr detaillierteInformationen zu Mainboard, Grafikkarte, Prozes-sor, Arbeitsspeicher und anderem angeben. In-teressant ist auch, dass man eine Produktseri-ennummer oder ein Kaufdatum für das noch garnicht erstandene Gerät angeben soll. Asus rech-net wohl nicht damit, dass sich jemand vorab in-formieren möchte. Für einen normalen Benutzer,der den PC nicht selbst zusammengebaut hat, istdie Beantwortung der geforderten Angaben einDing der Unmöglichkeit.

Aus diesem Grund wurde die Formularanfra-ge verworfen und direkt eine E-Mail an dasMarketing-Team von Asus [4] geschickt. Eine Ant-wort auf die Anfrage steht aber bis heute nochaus.

LiteOnÜber die Lite-On-Webseite [5] gelangt man sehrschnell zur technischen Kontaktadresse, die füroptische Laufwerke (ODD) zuständig ist. Da dieSeite komplett in Deutsch gehalten ist, wurde dieE-Mail auch in Deutsch verschickt.

Am Dienstag, den 13. Januar, kam die Bitte umeine englische Anfrage, der ich auch nachgekom-men bin, auch wenn sicher einige Anwender andieser Stelle aufgeschmissen wären. Die Antwort

© freiesMagazin GNU FDL Ausgabe 04/2009 34

Page 35: Openmoko – Free your phone Seite 4 · Das Dateisystem ext4 Seite 11 Zweieinhalb Jahre nach seiner ersten Ankündigung ist das neue Dateisystem ext4 bereit für den breiten Einsatz

SERVICE

auf die zweite, englische E-Mail landete am Mon-tag, den 19. Januar, im Posteingang.

Das Resultat war der höfliche Hinweis, dass Lauf-werke von Lite-On keine Firmware-Updates unterLinux unterstützten und dass Microsoft Windowshierfür empfohlen wird.

Enttäuschend, aber auch so zu erwarten.

LGAuch der Kontakt auf der LG-Webseite [6] konn-te schnell hergestellt werden, das Kontaktformu-lar [7] ist in Deutsch gehalten.

Im Gegensatz zu den anderen Herstellern wur-de die Anfrage morgens am 9. Januar verschicktund bereits kurz nach Mittag am gleichen Tag trafeine Antwort ein. Leider war diese wie im Fallvon Lite-On negativ, da nur Windows-basierendeBetriebssysteme unterstützt werden. Für Linuxkonnte leider kein Support gegeben werden.

PioneerPioneer hat, was den reinen Service-Ablaufangeht, am Besten abgeschnitten. Über diePioneer-Webseite [8] gelangt man über den„Support“- und dann den „Hotline“-Link zum Kon-taktformular [9].

Wenn man die Anfrage erstellt hat, erhält man ne-ben einer Eingangsbestätigung (im Übrigen dieeinzige im Test) auch eine URL, auf der man denganzen Kontakt nachvollziehen und eine Anfragegegebenenfalls verbessern kann.

Die Antwort kam am Dienstagabend und war lei-der negativ, da die DVD-Brenner von Pioneer nurunter Windows aktualisiert werden können.

PlextorPlextor scheint keine deutsche Kundschaft zumögen, denn wenn man die deutsche Seite an-wählt, wird man nur zu Plextor Europe [10] um-geleitet, die komplett in Englisch gehalten ist. In-gesamt scheint die Webseite auch nicht sehr ak-tuell zu sein, stehen doch auf der Kontaktsei-te [11] noch Urlaubsdaten von 2007. Davon ab-gesehen gelangt man hierüber an das Kontakt-formular [12], welches dann wieder in Deutschausgefüllt werden kann.

Die Anfrage wurde am Mittwoch, den 14. Janu-ar, beantwortet. Zwar unterstützt Plextor Linuxnicht selbst, aber immerhin wurde auf eineWebseite [13] mit mehr Informationen verwie-sen. Hierüber gelangt man auf eine Zwischen-seite für Linux/Unix [14], auf der man er-fährt, dass Jörg Schilling (u.a. Entwickler voncdrecord) eine Firmware-Update-Software fürLinux bereithält [15]. Auf dem FTP-Server fin-det man im Ordner firmware/plextor die Ver-sion pxupdate-1.39-i686-pc-linux-gnu vonEnde 2004.

Ob das Programm seinen Dienst wirklich tut,konnte aufgrund fehlender Hardware nicht getes-tet werden. Es ist aber erfreulich, dass Plextorauf ein privates Projekt verweist und so Linux-Nutzern die Möglichkeit gibt, ein Update in ihremBetriebssystem durchzuführen.

SamsungAuf der Seite vom Samsung findet man das Kon-taktformular [16] zwar mit zwei Klicks, leider wares in Firefox 3.0.4 und Opera 9.60 Beta 1 nichtbedienbar, da es kein Eingabefeld für das zwin-gend erforderliche Modell gab. Dies lag wahr-scheinlich an einem weißen Flash-Banner, wel-ches vor dem Eingabefeld lag.

Nach der Installation von Ubuntu Intrepid undOpera 9.63 bzw. Firefox 3.0.6 konnte die Sei-te korrekt angezeigt werden, die Auswahl desDVD-Modells umfasst aber leider eine vordefi-nierte Liste mit älteren Modellen. Etwas nega-tiv ist, dass Samsung bei der Kontaktaufnahmeauch Straße, Telefonnummer oder Postleitzahl er-fragen möchte, die Felder können aber auch miteinem „-“ gefüllt werden.

Die Anfrage wurde aufgrund der obigen Pro-bleme nachträglich am Samstag, den 7. Febru-ar 2009, getätigt. Die vielversprechende Antworttraf am 11. Februar ein.

Der Hotline-Mitarbeiter kannte die exakte Ant-wort zwar nicht, hat die Anfrage aber an wis-sende Kollegen weitergeleitet. Zusätzlich hat erals Umgehungsmöglichkeit die Verwendung ei-ner Windows-Live-CD empfohlen und dabei aufeinen unbestimmten Artikel in der c’t hinge-wiesen. Darüber hinaus ist das Stichwort „PE-Builder“ gefallen.

Wenn man die Stichworte in eine Suchmaschineeingibt, landet man sehr schnell auf der Seite von

© freiesMagazin GNU FDL Ausgabe 04/2009 35

Page 36: Openmoko – Free your phone Seite 4 · Das Dateisystem ext4 Seite 11 Zweieinhalb Jahre nach seiner ersten Ankündigung ist das neue Dateisystem ext4 bereit für den breiten Einsatz

SERVICE

Barts PE Builder [17], mit dem man von einerbestehenden Windows-XP-CD ein Live-Systemerstellen kann. Als Nachfolger davon wurde Vi-staPE [18] erstellt, welches für das neue Sys-tem Windows Vista geeignet ist. Die Projektseitevon heise zu diesem Thema [19] hält auch eini-ge Links parat, besonders die Seite für den PEBuilder [20].

Die Erstellung solch einer Live-CD ist aber sichernicht Teil dieses Artikels, eine gültige Windows-Lizenz samt CD wird hierfür leider auch voraus-gesetzt, sodass sich der Nutzen für reine Linux-Nutzer in Grenzen hält.

Sony NECSony NEC setzt stark auf Flash und JavaScript.Von der Hauptseite [21] gelangt man über „Sup-port » Kontakt“ auf die Kontaktseite und dasOnline-Kontaktformular [22]. Aufgrund ähnlicherProbleme wie bei Samsung oben konnte die An-frage erst am 7. Februar getätigt werden.

Die Antwort kam am abends am 13. Februar mitdem Hinweis, dass Sony Deutschland keine Infor-mationen zu den Sony-Nec-Optiarc-Geräten be-sitzt. Ich solle es doch bei den Kollegen versu-chen [23].

Das habe ich am Morgen des 17. Februar auchgetan. Ob die Nachricht abgeschickt wurde, istungewiss, da nach dem Klick auf „Senden“ kei-nerlei Bestätigung gekommen ist und nur daskomplette Formular geleert wurde.

FazitDer Test war an und für sich etwas gemein,da bereits im Vorfeld bekannt war, dass nurwenige Hersteller – wenn überhaupt – einFirmware-Update unter Linux unterstützen. Esüberrascht daher nicht, dass fast alle Antwortenauf ein Windows-Betriebssystem verweisen. Ein-zige Ausnahme ist Plextor, die zwar selbst keineLinux-Unterstützung anbieten, aber zumindestauf ein Community-Projekt verweisen. Die Ant-wort des Samsung-Mitarbeiters war auch vielver-sprechend, da die Möglichkeiten einer Windows-Live-CD aufgezeigt wurden. Leider benötigt mandazu aber eine Windows-CD mit gültiger Lizenz.

Wer seinen DVD-Brenner bzw. fast jedes opti-sche Laufwerk mit einer neuen Firmware aktua-lisieren möchte, ist in den meisten Fällen aufWindows angewiesen, denn selbst eine DOS-Diskette bzw. -CD hilft in keinem Fall weiter.Zumindest hat keiner der Hersteller diese Op-tion vorgeschlagen. Man würde sich hier definitivmehr Alternativen wünschen.

LINKS

[1] http://forum.ubuntuusers.de/topic/gibt-es-dvd-brenner-die-nicht-windows-fuer-ei/

[2] http://www.asus.de

[3] http://vip.asus.com/eservice/techserv.aspx?SLanguage=de-de

[4] http://www.asus.de/legal.aspx

[5] http://www.liteonit.eu/de/

[6] http://de.lge.com/

[7] http://de.lge.com/support/contact_gcsc.jsp

[8] http://www.pioneer.de/

[9] http://www.pioneer-hotline.de/

[10] http://www.plextor-europe.com/

[11] http://www.plextor-europe.com/technicalservices/support/contact_support.asp?choice=Contact%20support

[12] http://plextor-sup.quicksupportlink.com/callform/pages/callform.asp?c_id=12

[13] http://www.plextor.be/technicalservices/technology/linux.asp?choice=Linux%20support

[14] http://www.plextor.be/technicalservices/downloads/firmw_prog.asp?choice=Upgrade%20programs

[15] ftp://ftp.berlios.de/pub/cdrecord/

[16] http://support.samsung.de/common/contactus_formular.aspx?SITE_ID=6&PROD_ID=964

[17] http://nu2german.de/pebuilder319.shtml

[18] http://vistape.net/

[19] http://www.heise.de/ct/projekte/pebuilder/

[20] http://www.heise.de/ct/projekte/pebuilder/pebuilder2008.shtml

[21] http://www.sony.de/

[22] http://www.sony.de/article/id/1069862791363

[23] http://www.sony-optiarc.eu/de/contact.html

Autoreninformation

Dominik Wagenführ interessiertsich sehr für die Linux-Unterstützungdiverser Hardwaregeräte und wolltemit diesem Test einigen Herstellernauf den Zahn fühlen.

© freiesMagazin GNU FDL Ausgabe 04/2009 36

Page 37: Openmoko – Free your phone Seite 4 · Das Dateisystem ext4 Seite 11 Zweieinhalb Jahre nach seiner ersten Ankündigung ist das neue Dateisystem ext4 bereit für den breiten Einsatz

VERANSTALTUNG

Rückblende zur CeBit 2009 von Matthias Kietzke

Z wischen dem 3. und 8. März war Han-nover wieder die alljährliche Pilger-stätte für IT-Interessierte, denn die

CeBIT [1] fand wie jedes Jahr statt. Dement-sprechend gut besucht waren die Hallen.

Nach einem ruhigen Dienstag stellten viele Aus-steller einen deutlichen Besucheransturm amMittwoch fest. Wirklich große Innovationen wur-den im Vorfeld nicht angekündigt. Daher konzen-trierte sich alles auf die bereits im Vorjahr ange-deuteten Themen Green IT [2], Open-Source-Software [3] sowie mobiles und interaktives

Open Source war auf der CeBIT ein großes Thema.

Internet. Letzteres wurde mit dem Schlagwort„Webciety“ [4] (abgeleitet von Society) versehen,welches einen eigenen Fokus in Halle 6 bildete.Zu sehen waren Aussteller, die sich mit Blogs,Communities, Twitter, Wikis und dergleichen be-schäftigen. Ergänzend wurde ein umfangreichesVortragsprogramm mit einem bunten Themenmixauf der Webciety-eigenen Bühne geboten.

Ebenso aktiv ging es gleich nebenan imLinux-Park zu, welcher dieses Jahr in „Fo-rum Open Source“ umbenannt wurde. Dadurchunterstreicht die Messe den weiter gefassten

Fokus, da auch der Be-griff Open Source mittlerwei-le salonfähig geworden istund nicht nur linuxnahe Soft-ware präsentiert wurde. Un-ter den Ausstellern befandensich unter anderem Open-Office.org, welche Version 3ihrer Officesuite demonstrier-te, KDE und GNOME, Blen-der und Mozilla sowie Dru-pal, die jeweils ihre Projek-te anhand von Live-Demosund Gesprächen vorstellten.Es gab aber auch kommerzi-elle Anbieter wie SugarCRM,AncudIT oder Linux New Me-dia, die ihre jeweiligen Diens-te anboten.

Natürlich war auch Ubuntu mit einem eige-nen Stand vertreten [5] und verteilte flei-ßig Installations-CDs. Sogar die Merchandising-Artikel verkauften sich gut und auch eine Viel-zahl an älteren Besuchern hat sich für die Dis-tribution begeistern können, merkte ChristopherGrebs vom Ubuntu-Stand an. Die gesteigerte Be-kanntheit und Akzeptanz von Linux, Ubuntu undfreier Software allgemein ist deutlich zu merken.Dem Forum Open Source wurde sogar ein Open-Coffee (eine eigene Kaffeelounge) an die Seitegestellt, um mit Besuchern bei einer Tasse Kaf-fee zu diskutieren.

LINKS

[1] http://www.cebit.de/

[2] http://www.cebit.de/greenit_d

[3] http://www.cebit.de/opensource_d

[4] http://www.cebit.de/webciety_d

[5] http://verein.ubuntu-de.org/content/cebit-2009

Autoreninformation

Matthias Kietzke beschäftigt sichseit Jahren mit freier Software. Erbesuchte am 4. März die CeBit undinteressierte sich besonders für dasForum Open Source.

© freiesMagazin GNU FDL Ausgabe 04/2009 37

Page 38: Openmoko – Free your phone Seite 4 · Das Dateisystem ext4 Seite 11 Zweieinhalb Jahre nach seiner ersten Ankündigung ist das neue Dateisystem ext4 bereit für den breiten Einsatz

BUCHREZENSION

Rezension: Coding for Fun – IT-Geschichte zum Nachprogrammieren von Raoul Falk

W olmeringer möchte, dass der Leserallen Ernstes Spaß mit dem Compu-ter hat. Dies ist kein Widerspruch.

Mit dem nötigen mathematischen und tech-nischen Hintergrundwissen ausgerüstet, trittder Leser eine Reise durch die Geschich-te der Programmierung an und stößt dabeiauf ungewöhnliche, nostalgische, lehrreicheoder auch einfach nur unterhaltsame Pro-gramme, die stets zum Nachahmen und Mit-machen einladen.

AllgemeinesZum Lieferumfang des über 500 Seiten star-ken Softcover-Buches gehört eine umfangreicheBegleit-DVD, die alles Nötige beinhaltet, um dievorgestellten Programme selbst auszuprobierenund weiterzuentwickeln. Auf der DVD befindensich u. a. Quelltexte, vorkompilierte Programm-beispiele, hilfreiche Werkzeuge für die Erstel-lung von Diskettenabbildern, FreeDOS und dieDesktop-CD von Ubuntu. Letztere entspricht inder ersten Auflage leider noch der Version 7.10,sodass man mittlerweile lieber eine aktuellereVersion installieren sollte. Es sei noch angemerkt,dass einige mitgelieferte Programme als EXEvorliegen, und dass eine fehlerfrei Ausführungmit Wine nicht immer garantiert ist.

Neben den vielen anschaulichen Beispielen zunahezu jedem Programmierparadigma, vermit-telt der Autor zunächst unabdingbares theoreti-

sches Wissen. Hier wird auch die eigentliche Ziel-gruppe bereits deutlich: Ohne Interesse an Ma-thematik und Technik wird man an diesem Werkwohl keine Freude haben, obwohl der Titel unddie jungen Menschen auf dem Cover vielleichtden Eindruck eines jugendfreundlichen Buchesvermitteln. So wird der Leser bereits im erstenAbschnitt mit vermeintlichen Schreckgespens-tern aus der theoretischen Informatik wie derTuring-Maschine, der Turing-Vollständigkeit oderdem Gödelschen Unvollständigkeitssatz konfron-tiert. Die Erläuterungen sind – gemessen an derKürze der Ausführungen – aber schlüssig, lo-gisch und meistens auch für Hobbyisten nach-vollziehbar, wobei im gesamten Buch auf mathe-matischen Formalismus wohlwollend verzichtetwird. Der Gebrauch von einschlägigen Program-men zur Virtualisierung wird dringend empfohlenund ist im Anhang des Buches freundlicherweisegenau beschrieben, sodass hier keine Vorkennt-nisse nötig sind. Die Gratwanderung zwischenEinsteigerfreundlichkeit und Anspruch versuchtder Autor durch Kenntlichmachung von einzelnenAbschnitten zu meistern. Es werden Abschnittefür Kenner mit einem Pacman und Abschnitte fürKönner, etwas humoristisch, mit einem Geist ge-kennzeichnet. So kann man getrost mal einenAbschnitt überspringen, dem man sich nicht ge-wappnet fühlt, um an späterer Stelle noch einmalzurückzukommen. Der Auflockerung dienen zwi-schendurch immer wieder Abschnitte über die ge-schichtliche Entwicklung.

BASIC und AssemblerDie Zeitreise beginnt mit der Sprache BASIC.Hierzu bedient man sich zunächst eines virtuel-len DOS, welches man zuvor z. B. mit Virtual-Box angelegt hat. Dabei erlernt man spielerischdas GOTO-Prinzip und bekommt als Belohnungeinen großen Happen Nostalgie und ein Erfolgs-erlebnis. Als Nächstes kann man mit dem Emu-lator x64 die alten Zeiten wieder richtig aufle-ben lassen und mit dem legendären Commodo-re 64 samt eingebautem BASIC-Interpreter Re-troluft schnuppern. Vorgestellt werden hierbei ei-ne Laufschrift und eine grafische Spielerei mitgeometrischen Figuren, anhand derer man denUmgang mit zählenden Schleifen lernt.

Wer sich schon immer einmal mit seiner CPUunterhalten wollte, erhält eine kleine Einführungin die Assembler-Programmierung. Auch hiernutzt man wieder eine virtuelle DOS-Maschineund einen mitgelieferten grafischen Debugger na-mens AFD, der es ermöglicht, Schritt für Schritteinzelne Befehle auszuführen. Dabei hält diemehrfach geteilte Ansicht den Anwender stetsauf dem Laufenden was den Stack, die nächstenBefehle und die Register angeht.

Wer den letzten Satz nicht vollständig verstandenhat, ist genau auf dem richtigen Wissensstand fürdieses Kapitel. Die wichtigsten Befehle und Re-gister werden erklärt, wobei die Erläuterung desStacks, dessen Verständnis unabdingbar ist, lei-

© freiesMagazin GNU FDL Ausgabe 04/2009 38

Page 39: Openmoko – Free your phone Seite 4 · Das Dateisystem ext4 Seite 11 Zweieinhalb Jahre nach seiner ersten Ankündigung ist das neue Dateisystem ext4 bereit für den breiten Einsatz

BUCHREZENSION

der kaum angerissen wird. Es sind also Vorkennt-nisse oder die Bereitschaft, sich über das Buchhinaus mit diesem Thema zu beschäftigen, nötig.

Der Debugger AFD in Aktion.

Spiele und bunte LandschaftenSelbstverständlich kommen die von so vielenMenschen geliebten Computerspiele nicht zukurz. Der erste Halt ist der Klassiker Pong. Wäh-rend die Urfassung noch in Hardware realisiertwar, wird der komplette Quellcode als Java-Projekt für die Entwicklungsumgebung Eclipsezur Verfügung gestellt. Etwas verruchter wird esbeim Spiel „Hack The Game V. 1.21“. In die-sem kann man seine kriminelle Energie entladenund Daten von fremden Hosts stehlen, löschen

und weitere Schandtaten begehen. Auf alle Fälleein sehr unterhaltsames Spiel, das trotz der ein-deutigen Ziele des Protagonisten pädagogisch

wertvoll ist, da man beina-he zwangsläufig langjäh-rige virtuelle Haftstrafenantreten muss. Für Gra-fikinteressierte ist demBuch auch eine Anleitungfür das Programm Blen-der sowie ein Programm-beispiel in Java3D beige-geben.

Das Apfelmänn-chen und dasChaosBesondere Erwähnunggebührt dem Abschnittüber Fraktale. Neben derdurchaus lesenswertenErklärung dieser Muster

mit Selbstähnlichkeiten und Skaleninvarianzen,wird auf das Programm Xaos verwiesen, wel-ches man als Mathematik- und/oder Kunstfreundnicht auslassen sollte. Xaos kann über das Pa-ket xaos installiert werden, alternativ kann manauch die neueste Version kostenfrei direkt vonder Projektseite [1] herunterladen. Es bietet sehraufschlussreiche Präsentationen und eine ver-blüffende Zoom-Funktion für die angezeigtenFraktale. Dies schafft einen nahtlosen Übergangzu rekursiven Programmen, die beispielhaft an-

hand eines kleinen Java-Programms vorgestelltwerden, welches ein einfaches Fraktal mit er-staunlich wenig Code erzeugt. Könner werdenauch eingeladen, ihre eigenen Visualisierungenmit Java zu realisieren. Was zunächst wie eineSpielerei wirkt, ist in der Realität die Grundlagedafür, naturgegebene Strukturen in Programmennachzubilden und aus der heutigen Informatiknicht mehr wegzudenken.

Betriebssysteme – Vergessene Legen-denBeim Thema Betriebssysteme wird etwas wei-ter ausgeholt. Mit einem flüssig zu lesendenAbriss über die Geschichte erhält man Einbli-cke in längst vergessene Kapitel, insbesondereder GUI-Historie. Oberflächen wie Smalltalk 80,GEM (zum Ausprobieren auf der DVD mitgelie-fert) oder das Echtzeitsystem QNX werden vor-gestellt. Über den C64 bis zu modernen Linux-Distributionen (als Beispiel wird Ubuntu vorge-stellt) erhält man einen Überblick über die Ent-wicklung von Betriebssystemen und der Pro-grammiersprachen, die mit den Systemen ein-hergingen. Besonders anschaulich ist ein in Ja-va implementierter Netzgraph, der die Verwandt-schaftsbeziehungen zwischen den Prorgammier-sprachen verdeutlicht.

KI – Ist Skynet möglich?Der Traum vom denkenden Rechner ist noch äl-ter als die Informatik. Dieses Kapitel bringt demLeser die unterschiedlichen Ansätze näher, mit

© freiesMagazin GNU FDL Ausgabe 04/2009 39

Page 40: Openmoko – Free your phone Seite 4 · Das Dateisystem ext4 Seite 11 Zweieinhalb Jahre nach seiner ersten Ankündigung ist das neue Dateisystem ext4 bereit für den breiten Einsatz

BUCHREZENSION

denen man versucht, schwache oder gar starkekünstliche Intelligenzen zu erzeugen. Die Simu-lation von neuronalen Netzen wird unter ande-rem anhand des Programms MemBrain erklärt.Mit diesem kann man beispielsweise einem Sys-tem aus nur sechs Neuronen Wissen antrainie-ren, welches auf Abfrage auch korrekt wiederge-geben wird. Mit einer solchen assoziativen Spei-cherung erhält man sogar Antworten auf Fragen,die dem System nie explizit beigebracht wurden.Die Antwort lässt sich nicht vorhersehen. Damitfunktioniert MemBrain analog zum menschlichenVerstand: Wissen wir etwas nicht, so versuchenwir Schlüsse zu ziehen. Hier ist also sehr vielSpielraum für weiterführende Experimente mitdiesem Programm. Eine andere Herangehens-weise bieten die vorgestellten Programmierspra-chen Smalltalk, Lisp und Prolog. Letztere gibtbeispielsweise die Möglichkeit, eine Wissensba-sis mit allgemein gehaltenen Aussagen zu schrei-ben, anhand derer dann konkrete Fragen an dasProgramm gestellt werden können. Hierbei er-geben sich allerdings keine unvorhersehbarenAntworten, da z. B. durch Rekursion oder Back-tracking so lange Aussagen abgeleitet werden,bis eine verlässliche Antwort gefunden ist oderbis die Unmöglichkeit einer verlässlichen Antwortbewiesen ist. Anschaulich dargestellt: Wenn ichnur weiß, dass die Straße immer glatt ist, wennsie kälter als 0 °C ist, kann ich stets bejahen,dass die Straße glatt ist, wenn es friert. Anderer-seits kann ich nicht mit Sicherheit sagen ob esfriert, nur weil die Straße glatt ist.

Programmieren lernenDer letzte Abschnitt ist eine Einführung in dieBASIC-Programmierung mit Hilfe der unfreienEntwicklungsumgebung VB Express von Micro-soft. Anhand eines Ameisenvolkes kann manspielerisch mit der Umgebung und der Sprachevertraut werden. Praktischerweise liegt das um-fassende Buch „Visual Basic 2005“ als HTML-Version bei, sodass man sich tiefgründig mit derSprache auseinandersetzen kann.

FazitWolmeringer überzeugt mit einer guten Auswahlseiner Beispiele und mit einem sehr flüssigenSchreibstil. Man lässt sich gern mit auf die Rei-se nehmen und möchte alles ausprobieren undverstehen. Dies wird aber leider nicht jedem ge-lingen. Die Materie ist durchaus anspruchsvollund nicht immer einsteigerfreundlich. Für denambitionierten Einsteiger, der bereits wenigstenseine moderne Programmiersprache in Grundzü-gen verstanden hat, bieten sich Herausforderun-gen, die ihn stets fordern. Experten der Pro-grammierung finden zumindest spannende Bei-spiele in ungewohnten Gefilden, die ihnen viel-leicht bis dato verborgen blieben. Anfänger kön-nen angesichts der Fülle an thematisch völlig un-terschiedlichen Kapiteln leicht den Überblick ver-lieren. Auch die Tatsache, dass die Kapitel nie er-schöpfende Ausführungen enthalten, tragen hier-zu bei. Man darf aber nicht vergessen, dass dasBuch nicht den Anspruch hat, ein Lehrbuch zusein. Dazu treffend im Vorwort: „Es wäre schön,

wenn sich Leser finden würden, die das Buch alsSammlung von Anregungen verstehen.“

Erfahrenen Linux-Benutzern könnte noch negativauffallen, dass von den 573 Seiten stolze 182 aufden Anhang fallen, der Anleitungen zur Installa-tion von VirtualBox, Xen, FreeDOS, Ubuntu, Javaund weiterer Software enthält. Für weitere Infor-mationen und Leseproben bietet sich ein Besuchder Seite des Verlages [2] an.

BuchinformationenTitel Coding for Fun – IT-Geschichte zum

NachprogrammierenAutor Gottfried WolmeringerVerlag Galileo Computing, 2008Umfang 573 Seiten, Broschiert mit DVDISBN 978-3-8362-1116-1Preis 24,90 Euro

LINKS

[1] http://sourceforge.net/projects/xaos

[2] http://www.galileocomputing.de/katalog/buecher/titel/gp/titelID-1628

Autoreninformation

Raoul Falk ist Korrektor fürfreiesMagazin, interessiert sichfür Programmiertechniken und schautEntwicklungsumgebungen gerneunter die Haube.

© freiesMagazin GNU FDL Ausgabe 04/2009 40

Page 41: Openmoko – Free your phone Seite 4 · Das Dateisystem ext4 Seite 11 Zweieinhalb Jahre nach seiner ersten Ankündigung ist das neue Dateisystem ext4 bereit für den breiten Einsatz

MAGAZIN

freiesMagazin-Programmierwettbewerb

D ie Auswertung der freiesMagazin-Umfrage letzten Monat hat gezeigt,dass sich sehr viele Leser Program-

mierthemen wünschen. Man kann (mit et-was gutem Willen) aus diesem Wunsch auchablesen, dass es da draußen sehr viele(Hobby-)Programmierer gibt. Und gegebenen-falls gibt es sogar welche, die nach etwas Pro-grammierarbeit lechzen. All diese wollen wirdiesen Monat ansprechen – und damit auchgleich alle Leser befriedigen. Als Ansporngibt es auch eine Kleinigkeit zu gewinnen.

Die grobe IdeeDie Programmieraufgabe ist prinzipiell sehr ein-fach gestrickt. Es geht darum, für ein sehrsimples Zwei-Personen-Spiel die künstliche In-telligenz (KI) [1], d. h. den computergesteuertenSpieler, zu erstellen. Diese soll nach Übergabeeiniger Daten die (in den Augen des Program-mierers) beste Zugmöglichkeit herausfinden. Aufdiese Art spielen zwei künstliche Intelligenzen ge-geneinander. Der Programmierer mit der besten,d. h. dominierensten KI (siehe unten für genaueKriterien), gewinnt den Wettbewerb.

Das SpielZuerst soll das Spielprinzip erklärt werden. DieIdee wurde dabei nicht von uns entwickelt, son-dern stammt aus dem Spiel „Bejeweled“, wel-ches mit der Neuauflage „Puzzle-Quest“ [2] wie-der auflebte. Auf einem 10x10-Spielfeld befin-

den sich verschiedenfarbige Steine und Bomben.Durch das Tauschen zweier benachbarter Steinemuss man mindestens drei gleichartige in eineReihe bringen, sodass diese verschwinden undPunkte bringen. Sind diese Punktekonten weitgenug aufgefüllt, erleidet der Gegner Schaden.Durch die Aneinandereihung von Bomben kannman auch direkten Schaden verursachen.

Wurden zwei Steine getauscht, werden allegleichartigen Steine mit einer zusammenhängen-den Länge (waagerecht oder senkrecht) von min-destens drei Steinen vom Spielfeld entfernt undeinem Spieler gut geschrieben oder verursachenSchaden. In den Spalten, in denen es nun freieStellen gibt, rutschen alle Steine nach unten. Da-nach fallen von oben neue Steine herab und fül-len das Spielfeld wieder auf.

Die SpielsteineWie erwähnt, gibt es verschiedenfarbige Spiel-steine: grün, gelb, rot, blau und lila. Diese habendie folgende Bedeutung:

Die SpielsteineFarbe Bedeutunggrün sammelt man mindestens 15 Steine, erleidet der Gegner 3 Schadengelb sammelt man mindestens 15 Steine, erleidet der Gegner 6 Schadenrot sammelt man mindestens 15 Steine, erleidet der Gegner 10 Schadenlila sammelt man mindestens 15 Steine, ist man ein zweites Mal an der

Reiheblau lädt den Schild eines Spielers wieder auf

Beim „Einlösen“ der Steine verschwinden diesewieder vom Konto eines Spielers.

Zusätzlich gibt es noch Bomben mit den Wer-ten 1-5. Reiht man von diesen mindestens dreianeinander (die Zahlwerte müssen nicht iden-tisch sein), erleidet der Gegner Schaden in Höheder Summe aller Werte der zusammengefügtenBomben.

Die Spielsteine erscheinen dabei nicht komplettzufällig auf dem Spielfeld, sondern werden mitfolgenden Wahrscheinlichkeiten berechnet:

Die WahrscheinlichkeitenStein Wahrscheinlichkeitjeder farbige Stein 0.18je Bombenwert 0.02

Das heißt, dass überhaupt eine Bombe auf ei-nem Feld erscheint, hat eine Wahrscheinlichkeitvon 0.1 und ist damit fast halb so wahrscheinlichwie für einen farbigen Stein.

Die SpielerJeder der beiden Spielerhat eine bestimmte Anzahlvon Lebenspunkten (Stan-dard: 30) und einen Schild(Standard: 15). Erleidet derSpieler durch gegnerischeAngriffe Schaden, wird zu-erst der Schild reduziert.

© freiesMagazin GNU FDL Ausgabe 04/2009 41

Page 42: Openmoko – Free your phone Seite 4 · Das Dateisystem ext4 Seite 11 Zweieinhalb Jahre nach seiner ersten Ankündigung ist das neue Dateisystem ext4 bereit für den breiten Einsatz

MAGAZIN

Wenn dieser Wert auf 0 gesunken ist, werdendie Lebenspunkte abgezogen. Erreichen diese 0,hat der Spieler verloren. Durch das Aneinander-reihen blauer Steine kann man den Schild aberbis zur Maximalzahl 15 wieder aufladen.

Dazu hat jeder Spieler ein Konto für rote, gelbeund grüne Steine. Ab einem bestimmten Wert(Standard: 15) werden diese automatisch in geg-nerischen Schaden umgesetzt und verschwin-den wieder vom Konto.

In der Regel sind die zwei Spieler immer abwech-selnd an der Reihe. Sammelt ein Spieler abereine bestimmte Anzahl lilafarbener Steine (Stan-dard: 15), ist er erneut am Zug.

Beste TaktikZu entscheiden, was die beste Taktik ist, ist Ih-re Aufgabe. Die Referenzimplementierung (sieheunten) stellt eine sehr simple KI zur Verfügung.Diese tauscht einfach so lange Steine, bis gleich-artige nebeneinander liegen und sieht das alsgünstigen bzw. gültigen Zug an. Dieses Vorge-hen ist natürlich sehr dumm.

Ein erster Fortschritt wäre es, wenn aus al-len gültigen Tauschmöglichkeiten die ausgewähltwird, die dem Spieler den meisten Gewinn be-ziehungsweise dem Gegenspieler den meistenSchaden bringt. Oder anders: Vorrangig Bombenzu sammeln, ist meist sehr sinnvoll. ;)

Daneben gibt es noch andere taktische Möglich-keiten, die Sie aber selbst ausknobeln dürfen.

BeispielUm das Spielprinzip besser zu verdeutlichen, sollein Beispielzug durchgeführt werden. Die Aus-gangsbasis ist dabei das folgende Spielfeld:

(0,0)

(9,9)

3 5

1

1

5 5 23

431 1

Die Zählung der Spielfeldindizes beginnt typischfür C++ (Referenzimplementierung) bei 0, so-dass die x- und y-Werte von 0 bis 9 laufen.

Der Spieler, der an der Reihe ist, hat verschie-dene Möglichkeiten, einen gültigen Zug durch-zuführen. Er kann z. B. Feld (0,8) mit (0,9) tau-schen, was drei blaue Steine horizontal zusam-menfügt, oder (6,7) mit (5,7), was drei rote Steinevertikal aneinanderreiht. Die Referenz-KI tauschtaber die Felder (1,0) mit (1,1), um drei lilafarbeneSteine zusammenzufügen.

Die drei lilafarbenen Steine werden seinem Kon-to gut geschrieben und verschwinden. Alle dar-überliegenden Steine rutschen ein Feld nach un-ten, was oben eine Lücke entstehen lässt, wel-che durch neue Steine aufgefüllt wird:

3 5

1

1

5 52

34

3 1 1

Im nächsten Zug böte es sich für den zweitenSpieler an, Feld (2,2) mit (3,2) zu tauschen, da-mit der erste Spieler 10 Punkte (5 + 4 + 1) Scha-den erleidet.

ReferenzimplementierungDamit niemand denkt, der Sieger würde späterim Geheimen von uns gekürt, wird die Spielme-chanik unter der GPLv3 [3] auf unserer Webseiteveröffentlicht (per FTP [4] oder per HTTP [5]). DieImplementierung geschah dabei mittels C++ undbefindet sich im Verzeichnis fm-game.

© freiesMagazin GNU FDL Ausgabe 04/2009 42

Page 43: Openmoko – Free your phone Seite 4 · Das Dateisystem ext4 Seite 11 Zweieinhalb Jahre nach seiner ersten Ankündigung ist das neue Dateisystem ext4 bereit für den breiten Einsatz

MAGAZIN

Daneben wurde auch, wie oben bereits erwähnt,eine einfache KI programmiert, die sich im Ord-ner fm-ai befindet („ai“ steht für den englischenAusdruck „artificial intelligence“).

Möchte man das Spiel und die KI kompilieren, be-nötigt man einen C++-Compiler, den man am ein-fachsten über das Paket build-essential instal-liert. Danach kann man aus dem entpackten Ver-zeichnis wettbewerb einfach ein

make

aufrufen, was alle C++-Dateien in Binärcode um-wandelt.

Wettbewerb startenUm einen neuen Wettbewerb zu starten, müssenzwei KIs fm-ai1.bin und fm-ai2.bin im Ord-ner (gegebenenfalls auch nur als Link) existie-ren. Dazu benötigt man noch ein vorberechnetesSpielfeld (hier: beispielfeld.dat).

Hinweis: Das Beispiel umfasst dabei ein Spiel-feld der Größe 10x1000, relevant, also spielbar,sind die letzten 10 Zeilen. Die Größe von 1000Zeilen sorgt aber dafür, dass das Spielfeld in je-dem Spieldurchgang nicht mit zufälligen Steinenvon oben aufgefüllt wird, sondern vorberechneteSteine benutzt werden. So hat jede KI die glei-chen Chancen.

Die zwei KIs lässt man per

./fm-game.bin beispielfeld.dat

gegeneinander antreten. In einem Programm-durchlauf gibt es zwei Partien mit dem gleichenStartspielfeld. Zuerst hat KI 1 den ersten Zug.Nachdem das Ergebnis der ersten Partie aufdem Bildschirm ausgeben wird, muss der Benut-zer eine Taste drücken. Dann startet die zweitePartie, wobei KI 2 den ersten Zug hat.

Hinweis: Startet man das Spiel mit der gleichenKI für KI 1 und KI 2, sollte sich bei einem deter-ministischem Algorithmus, d. h. keine Zufallsent-scheidungen, ein symmetrisches Ergebnis erge-ben. Sprich, wenn Spieler 1 im ersten Spiel ge-winnt, muss Spieler 2 im zweiten Spiel gewinnenund umgekehrt.

Wer sich selbst ein Spielfeld generieren möchte,kann dies über

./fm-game.bin DATEINAME create

erzeugen und dann das Spiel per

./fm-game.bin DATEINAME

mit diesem Feld starten.

TeilnahmebedingungenSpracheWelche Programmier- oder Skriptsprache für dieKI benutzt wird, ist egal. Das Skript bzw. das Pro-gramm sollte sich aber relativ einfach auf einem„normalen“ Linux-System (genauer Ubuntu 8.10)ausführen bzw. kompilieren lassen. Es wird zwin-gend vorausgesetzt, dass der Code (gegebenen-

falls mit einer kleinen Anleitung zum Übersetzen),und nicht nur eine Binärdatei eingereicht wird.Der Quellcode muss dabei einer freien Lizenz [6]unterliegen.

Hinweis: Wer möchte, kann auch gerne denCode der Referenz-KI benutzen und erweitern.Damit fällt der Einstieg vielleicht etwas leichter.

Welche Sprache (also Deutsch oder Englisch)im Programm selbst für Kommentare und Be-zeichnungen benutzt wird, ist dem Programmie-rer überlassen. Kommentare sollte es aber ge-ben. ;)

SchnittstelleUm eine einfache Schnittstelle zu gewährleisten,werden die Daten zwischen Spielmechanik undKI über Dateien ausgetauscht. Die Spielmecha-nik schreibt dabei die folgenden Dateien:

ã player.dat enthält die Daten des Spielers.In jeder Zeile steht je ein Wert mit der folgen-den Bedeutung:– Lebenspunkte– Schild– rote Punkte– gelbe Punkte– grüne Punkte– lilafarbene Punkte

ã opponent.dat enthält die Daten des Geg-ners, auf die man gerne zugreifen kann. DerDateinhalt ist dabei identisch zu oben.

© freiesMagazin GNU FDL Ausgabe 04/2009 43

Page 44: Openmoko – Free your phone Seite 4 · Das Dateisystem ext4 Seite 11 Zweieinhalb Jahre nach seiner ersten Ankündigung ist das neue Dateisystem ext4 bereit für den breiten Einsatz

MAGAZIN

ã gamefield.dat enthält das 10x10 Spielfeld,wobei nur die ersten hundert Zeichen (der Art„R“, „Y“, „G“, „B“, „L“, „1“ - „5“) relevant sind.(Natürlich sollten in der Datei exakt 100 Zei-chen drinstehen. ;)) Der erste Wert (linke obe-re Ecke) hat dabei den Index (0,9), der zwei-te (1,9) etc. bis hin zum letzten Wert (untererechte Ecke) mit dem Index (9,0).

Das oben dargestellte erste Beispielfeld würdedaher im Textformat so aussehen:

R B B 3 G G 5 B 1 GB G Y Y L Y L G R LL B L R L 1 R G G BG L G L R R Y B R BG Y R Y B R G L B GB B Y Y G B R Y B Y5 R 5 B R 2 R Y G RY G Y G B R L 3 R B3 L R 4 R G B R G BL B L 1 L 1 B G R L

Im Normalfall sollte das KI-Programm 0 als Wertzurückgeben, im Fehlerfall irgendetwas ungleich0. Zusätzlich muss das Programm eine Dateiresult.dat mit den Daten der zu tauschendenFelder enthalten:

FELD_1_X FELD_1_Y FELD_2_X FELD_2_Y

So würde zum Beispiel der Inhalt

1 0 1 1

das Feld (1,0) mit dem Feld (1,1) tauschen. Fel-der müssen dabei immer benachbart sein undauch der Index 9 sollte nicht überschritten wer-den. Sollte also eine Sprache benutzt werden,die bei 1 anfängt zu zählen, sollte beim Schrei-ben der Datei daran gedacht werden.

LaufzeitDie Laufzeit der KI sollte eine Minute pro Zugnicht überschreiten. Da das Spiel aber sehr ein-fach gehalten ist und durch die „Zufallskompo-nente“ nicht unendlich weit in die Zukunft berech-net werden kann, sollte die Laufzeit eigentlich ge-ring ausfallen.

SonstigesBei Fragen zur Implementierung (also nicht zurUmsetzung, sondern nur zu den Randbedin-gungen), steht die freiesMagazin-Redaktion un-ter natürlich ger-ne zur Verfügung.

Ein Hinweis noch: Es bringt nichts, seine KI aufdie Datei beispielfeld.dat hin zu optimieren,da für den späteren Wettbewerb 100 neue Spiel-felder berechnet werden. :)

Wichtig: Jeder Teilnehmer darf nur ein Pro-gramm einreichen. Natürlich darf er aber seine KIbis zum Stichtag gerne mehrfach nachbessern.

SiegerehrungDer Stichtag für Wettbewerbsende ist der 10. Mai2009. Sollte die Resonanz bis dahin extrem posi-tiv ausfallen und wir mit Programmen überschüt-

tet werden, gibt es vielleicht auch eine Verlänge-rung bis zum 24. Mai 2009. Der Sieger wird dannin der Juniausgabe von freiesMagazin mitgeteilt.

Wie oben erwähnt gibt es als Ansporn auch ei-ne Kleinigkeit zu gewinnen: einen Gutschein imWert von 25 Euro für den Online-Handel Bookzil-la.de [7]. Es wurde sich für diesen Händler ent-schieden, da durch den Verkauf der Bücher 5 %des Erlöses an die Free Software Foundation Eu-rope [8] gespendet werden. Diese UnterstützungFreier Software wollen wir natürlich auch unter-stützen.

Wir wünschen allen Teilnehmern viel Erfolg undfreuen uns über zahlreiche Programme, die dannzum Duell gegeneinander antreten.

LINKS

[1] http://de.wikipedia.org/wiki/Künstliche_Intelligenz

[2] http://www.puzzle-quest.com/

[3] http://www.gnu.org/licenses/gpl.html

[4] ftp://ftp.freiesmagazin.de/2009/freiesMagazin-2009-04-wettbewerb.tar.gz

[5] http://freiesmagazin.de/ftp/2009/freiesMagazin-2009-04-wettbewerb.tar.gz

[6] http://www.opensource.org/licenses/alphabetical

[7] http://www.bookzilla.de/

[8] http://www.fsfeurope.org/

© freiesMagazin GNU FDL Ausgabe 04/2009 44

Page 45: Openmoko – Free your phone Seite 4 · Das Dateisystem ext4 Seite 11 Zweieinhalb Jahre nach seiner ersten Ankündigung ist das neue Dateisystem ext4 bereit für den breiten Einsatz

LESERBRIEFE

Leserbriefe

Für Leserbriefe steht unsere E-Mailadressezur Verfügung – wir

freuen uns über Lob, Kritik und Anregungen zumMagazin.

An dieser Stelle möchten wir alle Leser ausdrücklichermuntern, uns auch zu schreiben, was nicht so gutgefällt. Wir bekommen sehr viel Lob (was uns natür-lich freut), aber vor allem durch Kritik und neue Ideenkönnen wir uns verbessern.

Leserbriefe und AnmerkungenLATEX-Code gemeinsam bearbeitenIch lese, Ihr sucht Mitarbeiter, die LATEX-Codebearbeiten, der in einem SVN-Repository liegt.Vielleicht interessiert Euch Latexki [1]. Das istein Wiki für LATEX-Dokumente und wird seit eini-gen Jahren benutzt, um gemeinsam Vorlesungs-mitschriebe zu koordinieren [2]. Die Dateien lie-gen in einem SVN-Repository und können auchper SVN bearbeitet werden (für reguläre Mitarbei-ter). Für Leute, die SVN scheuen und kein LATEXselbst installieren wollen, gibt es ein Webinter-face.Das Wiki macht eigentlich nichts anderes als dieDokumente auf dem Server mit pdflatex zubauen – [eigene] Makros sollten daher kein Pro-blem sein. Und man sieht das Dokument nachjeder Änderung per Web-Interface auch wirklichneu generiert als PDF. Das Bearbeiten passiertdabei allerdings im LATEX-Code.

Joachim Breitner

freiesMagazin: Vielen Dank für den Vorschlag.Das Wiki klingt definitiv interessant. Vor allem fürMitarbeiter, die mit SVN gar nicht umgehen kön-nen, ist dies definitiv eine Alternative, die wir imHinterkopf behalten werden. Da wir die Idee derkollaborativen Arbeit für sehr sinnvoll halten, ver-öffentlichen wir Ihren Tipp auch im Magazin.

Qualität der GrafikenMir ist ins Auge gefallen, dass freiesMagazin alseinziges [Magazin] in LATEX erstellt wird. [. . . ] Mirist aufgefallen, dass die runden Bögen um dieorangen Autoreninformationskästchen als png-Bild (also Rastergrafik) eingebunden sind. [. . . ]Ich verstehe nicht, wie es dazu kommt, dassSie möglichst nur ein Grafikformat verwendenwollen? Ich hatte nie ein Problem mit: PDF, womit wenig Aufwand möglich, sonst halt PNG.Dominik Kreutzmann

freiesMagazin: Vielen Dank für Ihre Anmerkung.In der Tat war es für uns bisher einfacher, nurein Grafikformat zu verwenden, da wir so kei-ne Unterscheidung zwischen PDF-Magazin undHTML-Ausgabe machen mussten. Da die sta-tischen Inhalte wie Autorenkästchen, Lupe etc.aber sowieso nicht in der HTML-Version zu fin-den sind, haben wir diese Grafiken wie von Ihnenvorgeschlagen, auf PDF (also Vektorgrafiken)umgestellt.Für alle Leser bedeutet das, dass die statischenGrafiken nun wesentlich deutlicher und schär-fer erscheinen und auch beim Zoomen nicht

verschwimmen. Zusätzlich haben ausgedruckteArtikel dadurch eine höhere Qualität.Sollte es in einem PDF-Viewer wider Er-warten Probleme mit den neuen Grafi-ken geben, schreiben Sie uns bitte an

, sodass wir derSache nachgehen können.

PDF-Versand per E-MailBesteht die Möglichkeit, dass man monatlich dieAusgabe als PDF zugesandt bekommt? Und zuwelchem Datum erscheint denn in der Regel dieneue Ausgabe? Torsten Metz

freiesMagazin: Der Aufwand eines Newslettersist, vor allem was die Datenschutzrichtlinien inBezug auf die Speicherung der E-Mailadresseangeht, für eine kleine Redaktion wie unsere ein-fach zu hoch. Wenn Sie den RSS-Feed aberabonnieren, sind sowohl PDF- als auch HTML-Version dort direkt verlinkt und können durcheinen einzigen Klick aufgerufen werden. Eineneue Ausgabe von freiesMagazin erscheint im-mer am ersten Sonntag in einem Monat.

Korrekturen und FehlerWorld of Goo – Die Bälle sind los,freiesMagazin 03/2009 [3]Ein paar Leser fanden es nicht gut, dass im„World of Goo“-Artikel nirgends steht, dass essich nicht um ein Open-Source-Spiel handelt,sondern die Quellen verschlossen sind. In der Tat

© freiesMagazin GNU FDL Ausgabe 04/2009 45

Page 46: Openmoko – Free your phone Seite 4 · Das Dateisystem ext4 Seite 11 Zweieinhalb Jahre nach seiner ersten Ankündigung ist das neue Dateisystem ext4 bereit für den breiten Einsatz

LESERBRIEFE

wurde versäumt, dieses Manko explizit zu erwäh-nen, was hiermit nachgeholt wird.

An der Stelle betonen wir aber auch noch einmal,dass in freiesMagazin Themen zu Linux, OpenSource und Freier Software zu finden sind. Diesist kein einschließendes Und! Wir werden auch inZukunft über proprietäre oder kommerzielle Pro-jekte berichten, wenn diese unter Linux aus derMenge der Freien Software herausragen.

LXDE im Test, freiesMagazin 03/2009 [3]„Doch wie schafft Xfce es, einen derart schnel-len Desktop zu bauen, der ein aktuelles Linuxendlich mal so schnell werden lässt wie einWindows XP?“

Natürlich sollte das LXDE heißen, da sich im Ar-tikel vorher über die Größe von Xfce beschwertwurde.

Auswertung der Umfrage, freiesMagazin03/2009 [3]Zwei Korrekturen müssen wir zur Auswertung derfreiesMagazin-Umfrage nachreichen.

Zum einen haben mehrere Leser angemerkt,dass unser Schluss für die geringe Nutzung desRSS-Feeds von freiesMagazin falsch ist. Da dieAnkündigung einer neuen Ausgabe auch auf an-deren Portalen wie Pro-Linux oder Ikhaya vonubuntuusers.de veröffentlicht wird, landet die An-kündigung auch in deren RSS-Feeds. Aus demGrund sehen es viele Leser als unnötig an, auchnoch den freiesMagazin-Feed zu abonnieren.

Da viele Ankündigungen (Interviews, Artikel-wunschliste, Programmierwettbewerb etc.) aberexklusiv im freiesMagazin-Feed zu finden sind,geben wir vielleicht doch einen Anreiz, den Feedzu abonnieren.

Der zweite Fehler ist uns selbst aufgefallen. Wirhaben für jedes Ergebnis als Anzahl der Teilneh-mer die Summe aller Antworten genommen. Da-durch wurden bei den Fragen, bei denen manmehrere Antworten (also auch keine) ankreuzenkonnte, die Teilnehmer, die nichts angekreuzt ha-ben, vernachlässigt. Hier sind wir fälschlicherwei-se davon ausgegangen, dass diese die Fragegar nicht bearbeitet haben. Die Folge davon istglücklicherweise nicht schlimm. Alle Prozentzah-len liegen so zwar ein klein wenig (wenige Pro-zentpunkte) zu hoch, die Reihenfolge der Platzie-rung ändert sich aber nicht. So sind auch unsereSchlussfolgerungen der Ergebnisse nach wie vorkorrekt.

Songbird installieren, freiesMagazin03/2009 [3]Marian Sigler merkte an, dass die Übergabe derBesitzrechte an den Benutzer root zwingend not-wendig sei, wenn man Songbird für alle Benut-zer installieren will. Wenn man die Besitzrechteließe, könnte der Benutzer 1000 in den Dateienrumschreiben und damit anderen Benutzern jeg-lichen Code unterschieben.

Natürlich sind die Anmerkungen korrekt, eskommt aber auch auf das System des Benutzersan. Die Mehrheit der Nutzer hat ein Einzelplatz-

system, in dem es fast egal ist, wie die Rechtesitzen, da eben nur eine Person daran arbeitet.Selbst auf privaten Mehrplatzsystemen würdensich andere Nutzer nicht unbedingt daran stören,dass der Standardnutzer mit der ID 1000 (dermeist auch das Root-Passwort besitzt) auf dieDateien zugreifen kann.

Im Normalfall sollten die Besitzrechte von Datei-en, die in einem globalen Ordner liegen, damitalle Benutzer darauf zugreifen können, immer anroot übergeben werden.

LINKS

[1] http://latexki.nomeata.de/

[2] http://mitschriebwiki.nomeata.de/

[3] http://www.freiesmagazin.de/freiesMagazin-2009-03

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

Die Redaktion behält sich vor, Leserbriefe gegebe-nenfalls zu kürzen.

© freiesMagazin GNU FDL Ausgabe 04/2009 46

Page 47: Openmoko – Free your phone Seite 4 · Das Dateisystem ext4 Seite 11 Zweieinhalb Jahre nach seiner ersten Ankündigung ist das neue Dateisystem ext4 bereit für den breiten Einsatz

MAGAZIN

Veranstaltungskalender

MessenVeranstaltung Ort Datum Eintritt LinkLinuxwochen Krems 15.04.09 frei http://linuxwochen.atLinuxwochen Wien 16.04.-18.04.09 - http://linuxwochen.atLinuxwochen Linz 23.04.-25.04.09 - http://linuxwochen.atSkolelinux Arbeitstreffen Gütersloh 24.04.-26.04.09 frei http://wiki.skolelinux.de/Roadmap2009Grazer Linux Tage Graz 25.04.09 frei http://www.linuxtage.atSchwabacher Linuxtage Schwabach 25.04.-26.04.09 frei http://lusc.de

(Alle Angaben ohne Gewähr!)

Sie kennen eine Linux-Messe, welche noch nicht auf der Liste zu finden ist? Dann schreiben Sie eine E-Mail mit den Informationen zu Datum und Ort an.

Konventionen

An einigen Stellen benutzen wir Sonderzeichen mit einer bestimmten Bedeutung. Diese sind hier zusammengefasst:$: Shell-Prompt#: Prompt einer Root-Shell – Ubuntu-Nutzer können hier auch einfach in einer normalen Shell ein „sudo“ vor die Befehle setzen.y: Kennzeichnet einen aus satztechnischen Gründen eingefügten Zeilenumbruch, der nicht eingegeben werden soll.~: Abkürzung für das eigene Benutzerverzeichnis /home/BENUTZERNAME

: Kennzeichnet einen Link, der auf eine englischsprachige Seite führt.: Öffnet eine höher aufgelöste Version der Abbildung in einem Browserfenster.

Vorschau

freiesMagazin erscheint immer am ersten Sonntag eines Monats. Die Mai-Ausgabe wird voraussichtlich am 3. Mai unter anderem mit folgenden Themenveröffentlicht:

ã Virtualisierung mit Proxmox VEã Debian GNU/Linux 5.0 „Lenny“ – Der Zustand der Distributionã Kennwortgedächtnis auslagern mit KeePassX

Es kann leider vorkommen, dass wir aus internen Gründen angekündigte Artikel verschieben müssen. Wir bitten dafür um Verständnis.

© freiesMagazin GNU FDL Ausgabe 04/2009 47

Page 48: Openmoko – Free your phone Seite 4 · Das Dateisystem ext4 Seite 11 Zweieinhalb Jahre nach seiner ersten Ankündigung ist das neue Dateisystem ext4 bereit für den breiten Einsatz

MAGAZIN

ImpressumfreiesMagazin erscheint als PDF und HTML einmal monatlich.Redaktionsschluss für die Mai-Ausgabe: 22. April 2009

KontaktE-MailPostanschrift freiesMagazin

c/o Dominik WagenführBeethovenstr. 9/171277 Rutesheim

Webpräsenz http://www.freiesmagazin.de

freiesMagazin-Team (Teamaufschlüsselung)Raoul FalkStephan HochhausEkkehard HollmannDominik HonnefMathias MenzerThorsten SchmidtKarsten SchuldtDominik Wagenführ(Verantwortlicher Redakteur)

ISSN 1867-7991Erscheinungsdatum: 5. April 2009

Autoren dieser AusgabeBenedikt Ahrens S.8Hans-Joachim Baader S.11Raoul Falk S.38Matthias Kietzke S.37Mathias Menzer S.18, S.32Bernd Noetscher S.21Florian Schweikert S.4Dominik Wagenführ S.26, S.29, S.34

VeranstaltungenRonny Fischer

Logo-DesignArne WeinbergLizenz GNU FDL

Dieses Magazin wurde mit LATEX erstellt. Mit vollem Namen gekennzeichnete Beiträge geben nicht notwendigerweise die Meinung der Redaktion wieder. Wenn SiefreiesMagazin ausdrucken möchten, dann denken Sie bitte an die Umwelt und drucken Sie nur im Notfall. Die Bäume werden es Ihnen danken. ;-)

Soweit nicht anders angegeben, stehen alle Artikel und Beiträge in freiesMagazin unter der GNU-Lizenz für freie Dokumentation (FDL). Das Copyright liegtbeim jeweiligen Autor. freiesMagazin unterliegt als Gesamtwerk ebenso der GNU-Lizenz für freie Dokumentation (FDL) mit Ausnahme von Beiträgen, die untereiner anderen Lizenz hierin veröffentlicht werden. Das Copyright liegt bei Eva Drud. Es wird die Erlaubnis gewährt, das Werk/die Werke (ohne unveränderlicheAbschnitte, ohne vordere und ohne hintere Umschlagtexte) unter den Bestimmungen der GNU Free Documentation License, Version 1.2 oder jeder späterenVersion, veröffentlicht von der Free Software Foundation, zu kopieren, zu verteilen und/oder zu modifizieren. Die xkcd-Comics stehen separat unter der CreativeCommons-Lizenz CC-BY-NC 2.5. Das Copyright liegt bei Randall Munroe.

© freiesMagazin GNU FDL Ausgabe 04/2009 48