freiesMagazin November 2011
Topthemen dieser Ausgabe
Ren’Py als Entwicklertool für 2-D-Spiele Seite 28 Textadventures waren lange Zeit auch in Deutschland sehr populär. Ihre Hochzeit hatten sie vielleicht in den 80er/90er Jahren, doch mit der Neuartigkeit der 3-D-Shooter verschwanden sie beinahe ganz. Hierzulande! In Japan machte Mitte des letzten Jahrzehnts eine eigene Art von Textadventures einen Großteil des Spielemarktes aus. Bei Ren’Py handelt es sich um ein plattformübergreifendes Open-Source-Software-Entwicklungskit (SDK), das seine Ursprünge in der Bewunderung für diese japanischen Spiele hat. (weiterlesen)
Kurzreview: Humble Voxatron Debut Seite 36 Nachdem Ende Juli/Anfang August das dritte Humble Indie Bundle ins Rennen ging, veröf- fentlichten die Humble-Macher Ende September/Anfang Oktober bereits das nächste Bund- le namens Humble Frozen Synapse Bundle. Und nicht einmal einen Monat danach er- schien das „Humble Voxatron Debut“, dessen Inhalt in diesem Artikel kurz vorgestellt werden soll. (weiterlesen)
Bericht von der Ubucon 2011 Seite 39 Das fünfte Jahr Ubucon und das zweite Jahr in Leipzig. Das Fazit der Besucher vorab: Es hat extrem viel Spaß gemacht, neue und vor allem alte Gesichter wiederzusehen und die Zeit gemeinsam zu verbringen. Viele Vorträge, Workshops und Diskussionsrunden sorgten bei den circa 200 Teilnehmern für reges Interesse und vor allem bei den Social Events am Abend konnte man sich gut austauschen. (weiterlesen)
© freiesMagazin CC-BY-SA 3.0 Ausgabe 11/2011 ISSN 1867-7991 MAGAZIN
Editorial
Korrektur zum Paketabhängigkeiten- Wir möchten an dieser Stelle noch einmal dar- Inhalt Artikel auf hinweisen, dass es sinnvoll ist, nicht bis zur letzten Sekunde mit der Einsendung zu warten. Linux allgemein Auf den Artikel „Die Nachteile der Paketabhängig- Korrekturen an den Bots sind bis zum Einsende- Ubuntu und Kubuntu 11.10 S. 3 keiten“ aus freiesMagazin 10/2011 [1] gab es ei- schluss am 30. November 2011 jederzeit mög- Erweitertes RC-System von OpenBSD S. 11 nige Reaktionen. Eine davon [2] korrigierte auch lich. Der Oktober im Kernelrückblick S. 14 eine Aussage von Dominik Wagenführ, dass die Installation der Qt-Pakete aufgrund der Versions- Perl ist wieder da Anleitungen abhängigkeit stattfindet. Im letzten Monat fragte ein Leser auch nach, Perl-Tutorium: Teil 3 S. 16 PHP-Programmierung – Teil 2 S. 20 Diese Aussage im Artikel ist falsch und soll wo denn der nächste Teil des Perl-Tutoriums hiermit korrigiert werden. Die Paketabhängigkei- bleibt [5]. Uns und den Autor freut natürlich die Software ten entstehen, weil in Ubuntu/Debian die Qt- Nachfrage und diesen Monat geht die Reihe Pixelfreie Screenshots S. 26 Binärpakete aus einem einzigen Quellpaket er- auch weiter. Aus zeittechnischen Gründen kön- zeugt werden. Wenn in dem Quellpaket ein Feh- nen wir aber nicht garantieren, dass bei Serien- Ren’Py als Entwicklertool für 2-D-Spiele S. 28 ler gefunden und korrigiert wird, müssen auch al- Artikeln wirklich jeden Monat immer ein Artikel Kurzreview: Humble Voxatron Debut S. 36 le Binärpakete neu erstellt werden. erscheint. Community Wir entschuldigen uns bei allen Lesern, dass die- Und nun wünschen wir Ihnen viel Spaß mit der Bericht von der Ubucon 2011 S. 39 ser Fehler unterlaufen ist. neuen Ausgabe. Freie Software in der Schule S. 44 Rezension: Android 3 S. 46 Ihre freiesMagazin-Redaktion Zwischenstand zum vierten Program- Rezension: Canvas – kurz & gut S. 48 mierwettbewerb LINKS Rezension: NetBeans Platform 7 S. 49 Der vierte freiesMagazin-Programmierwettbewerb [1] http://www.freiesmagazin.de/freiesMagazin-2011- 10 Magazin läuft nun bereits etwas über einen Monat [3]. Es Editorial S. 2 gab bereits zahlreiche Kommentare und Anfra- [2] http://www.freiesmagazin.de/20111002- Veranstaltungen S. 51 gen von Lesern, die Interesse an einer Teilnahme oktoberausgabe-erschienen#comment-2141 Vorschau S. 51 bekunden. Es gibt sogar schon drei Einsendun- [3] http://www.freiesmagazin.de/20111001-vierter- Konventionen S. 51 gen zum Wettbewerb. freiesmagazin-programmierwettbewerb-gestartet Impressum S. 52 [4] http://www.freiesmagazin.de/vierter_programmier Die Fragen der Teilnehmer wurden in eine FAQ wettbewerb#faq zusammengefasst und an die Wettbewerbsseite [5] http://www.freiesmagazin.de/20111002- angehängt [4]. oktoberausgabe-erschienen#comment-2136 Das Editorial kommentieren
© freiesMagazin CC-BY-SA 3.0 Ausgabe 11/20112 DISTRIBUTION
Ubuntu und Kubuntu 11.10 von Hans-Joachim Baader
it neuen Varianten, erweitertem Neuerungen auf dem Desktop, darunter eine ver- Softwareangebot und verbesserten besserte Version von Unity und das neue KDE M Diensten schickt sich Ubuntu an, die SC 4.7.1, bringt Ubuntu 11.10 auch Installations- Gemeinschaft noch besser als bisher zu be- Images für die ARM-Systeme Netbook Toshiba dienen. Eine verbesserte Paketverwaltung ac100 [2] und Freescale i.MX53 [3]. Ubuntu Ser- und aktualisierte Desktops wurden nebenbei ver enthält jetzt wieder den Hypervisor Xen, aber noch mitgenommen. auch Unterstützung für Linux-Container (LXC). Enthalten ist auch Orchestra, eine Sammlung Redaktioneller Hinweis: Der Artikel „Ubuntu der besten freien Software-Dienste, um die Infra- und Kubuntu 11.10“ erschien erstmals bei Pro- struktur in Rechenzentren zu verwalten. Ferner Linux [1]. wurde Juju, das unter dem Namen Ensemble entwickelt wurde, integriert, ein Werkzeug, um Vorwort die Verteilung und Verwaltung von Diensten auf Planmäßig wie jedes halbe Jahr erschien Cloud- und normalen Servern zu ermöglichen. Begrüßungsbildschirm der Kubuntu-DVD. die neue Version 11.10 „Oneiric Ocelot“ der Auch vom Server gibt es eine ARM-Variante. Und gehörende Softwarepakete geändert oder er- Linux-Distribution Ubuntu. Neben zahlreichen dann gibt es noch die neue Variante Lubuntu, die setzt. Mit wenigen Ausnahmen kann auf die- den LXDE-Desktop als Standard instal- se Änderungen nicht eingegangen werden; man liert. darf annehmen, dass die meisten Pakete unter allen aktuellen Distributionen nahezu gleich sind Wie ihr Vorgänger Ubuntu 11.04 (siehe und überall gleich gut funktionieren. freiesMagazin06/2011 [4]) ist die neue Version keine Version mit längerfristi- Wie immer sei angemerkt, dass es sich hier gem Support. Sie wird in allen Varian- nicht um einen Test der Hardwarekompatibilität ten 18 Monate mit Sicherheits- und ande- handelt. Es ist bekannt, dass Linux mehr Hard- ren wichtigen Updates versorgt. Ein Up- ware unterstützt als jedes andere Betriebssys- date ohne Neuinstallation von der Ver- tem, und das überwiegend bereits im Standard- sion 11.04 wird offiziell unterstützt. Lieferumfang. Ein Test spezifischer Hardware wä- re zu viel Aufwand für wenig Nutzen. Falls man Dieser Artikel wird sich auf die Desktop- auf Probleme mit der Hardware stößt, stehen die umgebungen Unity und KDE beschrän- Webseiten von Ubuntu zur Lösung bereit. ken. Aus praktischen Gründen sind auch andere Einschränkungen nötig. So wur- Da eine Erprobung auf realer Hardware nicht das Erneuertes Unity: Übersichtsseite mit Linsen. den natürlich zahlreiche zur Distribution Ziel des Artikels ist, werden für den Artikel zwei
© freiesMagazin CC-BY-SA 3.0 Ausgabe 11/20113 DISTRIBUTION
wer den Rechner intensiv nutzt, gen wie „Ubuntu 11.10 auf Ubuntu 11.10 aktuali- sollte bei den heutigen Speicher- sieren“ führen. preisen lieber gleich in 4 GB Standardmäßig wird nur eine einzige Partiti- RAM (oder mehr, je nach Bedarf) on plus Swap angelegt. Will man mehr Flexi- und ein 64-Bit-System investieren, bilität, muss man „Etwas anderes“ auswählen, so dass reichlich Platz für die wodurch das Partitionierungswerkzeug gestartet Anwendungen ist. Xubuntu und wird. Dort kann unter anderem das Dateisys- die Server-Edition sollten weiter- tem Btrfs ausgewählt werden, das nun dank si- hin mit 128 MB auskommen. gnifikanter Verbesserungen ohne Einschränkun- gen nutzbar sein soll, abgesehen davon, dass es Hier soll nur die Installation von noch kein fsck-Tool gibt. der Desktop-DVD kurz vorgestellt werden. Wer den Logical Volume Der Einhängepunkt einer Partition kann nun wie- Manager (LVM) verwenden will, der frei eingegeben werden, aber man kann auch muss zur textbasierten Installation aus der Vorgabe einen auswählen. Direkt nach von der DVD oder der Alternate- der Definition der Partitionen beginnt der Installer CD wechseln, da diese Möglich- mit der Partitionierung und der Installation der Pa- Ubuntu installiert sich. keit im grafischen Installer nach kete im Hintergrund. Ein Fortschrittsbalken zeigt identische virtuelle Maschinen, 64 Bit, unter KVM wie vor fehlt. Die Alternate-Installation läuft an- von hier an den Stand der Installation an. Paral- mit jeweils 768 MB RAM verwendet. sonsten fast genauso ab wie die grafische Instal- lel dazu kann man die Zeitzone auswählen und lation. Durch Boot-Optionen steht aber eine er- danach das gewünschte Tastatur-Layout einstel- Installation weiterte Installation zur Verfügung, mit der man len. Die Neuerung von Fedora 15, die die Aus- Ubuntu wird meist von einem Live-System aus, weitgehende Kontrolle über den ganzen Vorgang wahl der Zeitzone mit der Maus einfacher macht, das als CD und umfangreichere DVD verfügbar hat. Auch die Option, die gesamte Festplatte zu indem bei einem Klick auf eine Region diese au- ist, installiert. Ferner ist eine Installation von der verschlüsseln, was auf Laptops zu empfehlen ist, tomatisch herangezoomt und die nächstgelege- Alternate-CD, möglich, die im Textmodus läuft, gibt es nur auf der Alternate-CD. ne Stadt gewählt wird, ist bei Ubuntu leider noch aber wesentlich mehr Flexibilität als die grafische nicht zu finden. Installation besitzt. Die Installation unterlag nur wenigen Änderun- Im letzten Schritt gibt man seinen Namen, Anmel- Für Ubuntu 11.10 werden 384 MB RAM für den gen gegenüber der letzten Version. So kann ein denamen, Passwort und den Computernamen Unity-Desktop als Mindestanforderung angege- bereits installiertes Ubuntu-System vom Desktop- ein. Wenn zuvor bereits per DHCP ein Name er- ben. Mit 512 MB und mehr läuft das System al- Installer aus aktualisiert oder neu installiert wer- mittelt werden konnte, wird dieser als Vorgabe lerdings wesentlich besser. Kubuntu ist aufgrund den, wenn eine Internet-Verbindung vorhanden angezeigt. Wenn erkannt wird, dass die Instal- des größeren Speicherbedarfs von KDE unter ist. Ist die vorherige Installation bereits Ubuntu lation in einer virtuellen Maschine läuft, wird da- 512 MB RAM fast nicht zu benutzen – aber 11.10, kann das allerdings zu kuriosen Vorschlä- gegen der Name benutzer-virtual-machine
© freiesMagazin CC-BY-SA 3.0 Ausgabe 11/20114 DISTRIBUTION vorgegeben. Optional können Daten im Home- eingeloggt ist, ein Passwort ver- Verzeichnis verschlüsselt werden. Während man gibt, ist auch das direkte Einlog- das Ende der Installation abwartet, kann man gen als Root möglich. nun noch einige Tipps zu Ubuntu ansehen. Unity benötigt direkt nach dem Start mit einem geöffneten Ausstattung Terminal-Fenster etwa 320 MB Sowohl Ubuntu als auch Kubuntu starten schnell, RAM, KDE etwa 430 MB. Wer mindestens genauso schnell wie in der Vorver- der Meinung ist, auf Nepomuk sion. Sofern kein automatisches Login konfigu- und Desktopsuche in KDE ver- riert wurde, muss man sich anmelden, was unter zichten zu können, kann diese Ubuntu jetzt mit LightDM, der gdm ersetzte, unter abschalten, wird dadurch aber Kubuntu weiter mit kdm geschieht. Danach wird fast nichts einsparen. der vollständige Desktop zügig aufgebaut. Bei der Geschwindigkeit lässt sich kein nennenswerter Unter- Der verwendete Kernel beruht auf Linux 3.0.4. schied zwischen den Desktops Auswahl der Partitionierungsmethode. Damit soll eine höhere Geschwindigkeit des feststellen, sofern genug RAM Dateisystems ext4 ebenso einhergehen wie ei- vorhanden ist. Für KDE bedeu- ne verbesserte Interaktivität. Das System unter- tet das, dass man mindestens stützt jetzt Multiarch, das heißt, dass auf einem 768 MB RAM haben sollte. 64-Bit-System 32-Bit-Programme installiert wer- den können und auch sofort lauffähig sein soll- Den Speicherverbrauch der ten – früher musste man dafür mitunter mühsam Desktops zu messen ist nicht nach den benötigten 32-Bit-Bibliotheken suchen einfach. Schwankungen von und spezielle Kompatibilitätspakete installieren. 20 MB und mehr nach oben Der X-Server 1.10.1 und Mesa 7.10.2 bilden die und unten sind möglich, je Basis für die grafische Oberfläche einschließlich nach dem Zeitpunkt der Mes- der 3-D-Beschleunigung. sung. Dies erklärt sich teil- weise daraus, dass manche Wie gewohnt hat Root keinen direkten Zugang Programme bei ihrem Start zum System. Zugang zum Root-Account ist aber einen oder mehrere Diens- über das Kommando sudo vorhanden. Damit te starten. Diese Dienste kann man jeden beliebigen Befehl ausführen, werden bei Nichtbenutzung nachdem man sein eigenes Passwort eingege- teilweise nach einiger Zeit ben hat. Wenn man, nachdem man als Root auch wieder beendet. So sind Der Login-Bildschirm von LightDM.
© freiesMagazin CC-BY-SA 3.0 Ausgabe 11/20115 DISTRIBUTION die Angaben zum Speicherverbrauch nur als An- tätig. Weitere Anpassungen von Unity sind mög- men sind allerdings vor manchen Hintergründen haltswerte zu sehen, die sich je nach Hardware lich. Wem zum Beispiel das von den Anwen- nicht zu sehen. erheblich unterscheiden können. dungen getrennte und in das Panel verlegte An- Der Starter ist immer sichtbar, außer wenn ein wendungsmenü nicht zusagt, der kann das Pa- anderes Programm den Platz beansprucht. Dann Unity ket indicator-appmenu entfernen, damit ist das fährt er links aus dem Bildschirm heraus – theore- Unity, in der Vorversion erstmals weit verbreitet alte Verhalten wieder vorhanden. Weitere Ein- tisch. Startet man GIMP,stellt man fest, dass sich eingesetzt, wurde massiv überarbeitet. Erst ein- griffsmöglichkeiten bieten die Indikator-Applets. dessen Mehrfenster-Modus nicht mit dem Starter mal wurde Unity auf GTK 3 portiert und nutzt Indikator-Applets sind die von Ubuntu entwickelte verträgt: Das Tool-Fenster wird unter den Star- nun Komponenten von GNOME3 und keine mehr Ablösung der GNOME-Panel-Applets, die in Uni- ter gelegt. Möglicherweise existiert das Problem von GNOME2. Das eigentliche Unity setzt ei- ty nicht mehr funktionieren. Es gibt inzwischen ei- aber auch nur in Unity 2D. ne Hardwarebeschleunigung der 3-D-Grafik vor- ne ganze Reihe von Indikator-Applets [5], die die aus und nutzt den Compositing-Manager Com- Funktion der alten Applets übernommen haben. Die bisherigen „Orte“ in Unity wurden durch „Lin- piz. Steht keine Hardwarebeschleunigung zur Sie werden überwiegend über die Paketverwal- sen“ ersetzt. Klickt man das Ubuntu-Icon, so er- Verfügung, wird automatisch Unity 2D genutzt, tung installiert, wofür man aber zum Teil private scheint die Schnellauswahl (Dash), in der man in- das nun kaum mehr vom normalen Unity zu un- Paketrepositories einbinden muss. Eines dieser stallierte Programme suchen und mit den neuen terscheiden ist, außer dass weniger Grafikeffek- Applets stellt sogar das alte GNOME-Menü wie- Linsen nach verschiedenen Kriterien filtern kann. te genutzt werden. Einen Fallback-Modus gibt es der her. nun nicht mehr. Unity 2D ist allerdings mit Qt im- Apropos Indikatoren – diese wur- plementiert und dürfte sich damit intern erheblich den von den Entwicklern ein we- von Unity unterscheiden, auch wenn es funktio- nig überarbeitet, der Sitzungsindi- nal angeglichen wurde. kator wurde neu gegliedert und Die augenfälligste Änderung in Unity ist, dass der Energierstatus-Indikator, so- der Ubuntu-Button vom Panel in den Starter fern er benötigt wird, von den wechselte und nun dessen oberstes Element anderen separiert. Das Wech- darstellt. Unity ist jetzt etwas mehr konfigurier- seln der Fenster mittels Alt + Tab bar. Allerdings kann von einer konsequenten wurde neu implementiert. Es er- und konsistenten Konfigurierbarkeit, wie sie bei scheint nun ein kleines Fenster KDE gegeben ist, noch keine Rede sein. Vie- in der Mitte des Bildschirms, das les wird über Compiz konfiguriert. Dazu muss erstens den Titel der Fenster an- man CompizConfig nachinstallieren. Einige we- zeigt, zweitens die Position des nige andere Optionen halten die GNOME3- aktuellen Zielfensters als dünnen Systemeinstellungen bereit. Für noch mehr Konfi- Rahmen anzeigt und drittens nur gurierbarkeit sollte man auch dconf-tools instal- innerhalb der aktuellen Arbeitsflä- lieren. Doch auch die Gemeinschaft war nicht un- che wechselt. Die dünnen Rah- Der Starter überlagert das GIMP-Fenster.
© freiesMagazin CC-BY-SA 3.0 Ausgabe 11/20116 DISTRIBUTION
Außer Programmen kann man auch Dateien su- GNOME-Panels („klassisches“ chen, wobei man schnell auf die zuletzt benutz- GNOME) wieder herstellen. Das ten zugreifen kann, und Musik, wobei auch Ange- GNOME-Mailprogramm Evoluti- bote aus dem Music Store eingeblendet werden. on wurde allerdings durch Mozil- Letzteres ist mit der Musikverwaltung Banshee la Thunderbird 7.0.1 ersetzt, der verknüpft. wie Firefox eine Integration in den Starter und das Menü aufweist. Unity mag in gewisser Weise frischen Wind auf den Desktop bringen, aber es leidet immer noch Als Webbrowser ist jetzt Firefox unter zahlreichen Unzulänglichkeiten. Binnen we- 7.0.1 dabei. Das Standard-Office- niger Minuten konnte ich mühelos meherere da- Paket ist LibreOffice 3.4.3. Startet von finden. man LibreOffice Writer, dann er- scheint die Menüleiste nicht im Pa- Anwendungen haben normalerweise ein Kon- nel, sondern in der Anwendung, textmenü in der Titelleiste, mit dem man sie die Buttons zum Schließen, Mini- z. B. auf eine andere Arbeitsfläche verschie- mieren und Maximieren erschei- ben kann. Ist das Fenster der Anwendung ma- nen gar nicht, und es ist nicht mög- Startseite des Software Centers. ximiert, ist dieses Menü nicht mehr aufrufbar, lich, vom maximierten Modus weg- zumindest mit der Maus nicht. zugehen. Das Problem tritt nur bei Writer auf, bei bei vielen Shopping-Seiten, bewerten, Rezensio-
Hat man im Hintergrund ein maximiertes Fens- Calc dagegen nicht. nen ansehen und eigene schreiben (sofern man ter und im Vordergrund ein kleineres Fens- das Programm installiert hat). Proprietäre Pro- Installiert sind auch Banshee 2.2.0, Inkscape ter, so gibt es keine Möglichkeit, das Fens- gramme kann man direkt einkaufen. Um diese 0.48.2, GIMP 2.6.11, Shotwell 0.11.2, Pitivi ter im Hintergrund zu minimieren. Man muss Funktionen zu nutzen, muss man ein Konto beim 0.15.0 sowie die Gnome-Anwendungen Empathy, es erst in den Vordergrund holen, damit der Ubuntu Software Center haben, das vermutlich Gwibber, Vinagre und Totem. Minimieren-Button erscheint. auch für Ubuntu One dient. Das Software Center, das Hauptwerkzeug zur Bei der Definition der Tastenkürzel kann man Bei der Installation hat man nun die Möglichkeit, Installation und Verwaltung von Paketen, nicht je- jeder Aktion nur höchstens eine Tastenkombi- das neue Programm gleich zum Starter hinzuzu- doch zum Einspielen von Updates, wurde gründ- nation zuweisen. Warum nicht mehrere? Das fügen. Interessant ist auch die Möglichkeit, die lich überarbeitet. In Version 5.0 wurde der Navi- ist allerdings ein GNOME-Problem, weniger ei- Liste der installierten Anwendungen zwischen gationsbaum durch eine Werkzeugleiste ersetzt. nes von Unity. Rechnern zu synchronisieren. Um diese neue Ein Werbebanner sowie neue und die bestbe- Funktion OneConf [6] nutzen zu können, muss Der Desktop ist natürlich nicht Unity allein. werteten Anwendungen füllen das Fenster der man aber ebenfalls ein Online-Konto haben. Ubuntu hat nun GNOME 3.2 integriert, und Anwendung aus. Von hier kann man dann zu den wer will, kann den orginalen GNOME-Desktop Paketen navigieren, den Bestand durchsuchen Die Bedienung des Software Centers, das übri- durch die Installation der GNOME-Shell oder des oder in den Kategorien blättern. Man kann, wie gens Freie Software ist, weist allerdings einige
© freiesMagazin CC-BY-SA 3.0 Ausgabe 11/20117 DISTRIBUTION
Probleme auf. So kann man die Versionsnummer Das Repository oneiric-backports ist nun stan- Zeit mit Ausprobieren oder Suchen nach Do- eines Programmes in den Übersichten nicht se- dardmäßig aktiviert. Aktuell besitzt das noch kei- kumentation verbringen muss. Standardmäßig hen. Die Kategorien unter den installierten Pa- ne Relevanz, da es noch nahezu leer ist, spä- sind bei Kubuntu bereits drei Aktivitäten definiert: keten sehen anders aus als unter „alle Anwen- ter sollen darin aber aktualisierte Versionen von „Desktop Icons“, die Standard-Aktivität mit völlig dungen“ und zum Aufklappen steht nur winziger Programmen erscheinen, die man optional instal- verfehltem Namen, „Photos Activity“ und „Search Pfeil (oder „+“ und „-“) zur Verfügung. Will man lieren kann. Damit sollen es die Benutzer noch and Launch“. Die beiden letzteren sind nicht akti- mehr als ein Paket installieren, muss man jedes leichter haben, auf aktuelle Programme zuzugrei- viert und dienen vielleicht nur als Beispiele. Denn einzeln bearbeiten; es gibt keine Möglichkeit der fen. Für diese gibt es aber von Ubuntu keine Up- wenn man sie startet, erhält man Fehlermeldun- Markierung, um Aktionen auf mehrere Pakete an- dates und keinen Support, die Installation erfolgt gen, da sie Anwendungen starten wollen, die zuwenden. Immerhin kann man mehrere Aktio- auf eigenes Risiko. nicht installiert sind. nen starten, ohne auf die Beendigung der vori- Der Dateimanager Dolphin besitzt standardmä- gen warten zu müssen. KDE (SC) ßig keine Menüleiste mehr, sondern minimiert In Kubuntu wurde sie ähnlich den Browsern Opera, Firefox oder KDE SC auf die Chrome. Anwender, die das alte Verhalten nut- Version 4.7.1 (in- zen wollen, können es mühelos wieder reakti- zwischen durch ein vieren. Der Standard-Browser ist Rekonq, jetzt Update auf 4.7.2) in Version 0.7.90. Erwähnenswert ist dabei nur, aktualisiert, ein- dass man besser Firefox nutzt, den Rekonq be- schließlich der neu- sitzt keine Plug-ins und keine der fortgeschritte- en Version 4.7.2 nen Funktionen von Firefox. von KDE-PIM, der Kubuntu hat an alle Benutzer gedacht, die die Suite zur Verwal- Leistung ihres KDE maximieren wollen, und bie- tung von E-Mails, tet ein Paket kubuntu-low-fat-settings, das ei- Kontakten, Termi- nige Dienste entfernt und somit Speicher spart. nen usw. In dieser Außerdem kann man mittels des experimen- Version hat KDE tellen Pakets kde-window-manager-gles eine die bisher vielleicht Anpassung von KWin an OpenGL ES auspro- nicht ausreichend bieren. OpenGL ES stellt wie OpenGL 3-D- intuitiven Aktivitä- Hardwarebeschleunigung für die Effekte von ten überarbeitet. KWin bereit, soll aber, da es sich um eine Un- Ob dies gelungen termenge handelt, kompatibler sein. ist, ist noch frag- lich. Ich denke eher, Das Abmelden von KDE und das Herunterfahren Anlegen eines Benutzers. dass man einige des Rechners funktionierten in mehreren Fällen
© freiesMagazin CC-BY-SA 3.0 Ausgabe 11/20118 DISTRIBUTION
aber wird dann nicht gleich Pakets genauso einfach installieren lässt wie an- Software Center verwendet, dere Software, funktionierten alle Videos. Die Al- das schon um einiges wei- ternative zu Flash, das WebM-Format, sollte in ter ist? Davon abgesehen ist Firefox seit Version 4 kaum Probleme bereiten, Muon aber schon ein ziem- und im Großen und Ganzen scheint es zu funk- lich komplettes Programm, tionieren. Mit einzelnen Webseiten kann es noch das alles kann außer Upda- Probleme geben, was aber nicht genauer unter- tes. Für die Updates steht ein sucht wurde. separates Programm „Muon- Aktualisierungsverwaltung“ zur In den bekannten Anwendungen Banshee und Verfügung. Totem sollte bei standardmäßig nicht unterstütz- ten Formaten eine Dialogbox erscheinen, die Firefox ist jetzt in Version 7.0.1 eine Suche nach passenden GStreamer-Plug- enthalten. Mehrere Plug-ins ins ermöglicht und sie installiert. Wenn Ubuntu zum Abspielen von Videos in mehr als ein Paket findet, das geeignet ist, freien Formaten sind vorinstal- kann man auswählen, welches installiert werden liert. Die vorinstallierte Erweite- soll. Beim MP3-Format sind das beispielsweise rung „Ubuntu Firefox Modifica- ein Fluendo-Plug-in und eine GStreamer-Plug- tions“ hat Version 1.0 erreicht. in-Sammlung. Bei der Auswahl von letzterer las- Laufende Installation in Muon. Darin ist der bereits bekann- sen sich trotzdem keine MP3-Dateien abspielen. nicht. Der größte Stromverbraucher im System te Plugin-Finder-Service enthalten. Will man bei- Eine manuelle Installation weiterer GStreamer- ist immer noch knotify4, dem leider immer noch spielsweise ein Video in einer Webseite abspie- Pakete ist nötig. kein vernünftiges Verhalten beigebracht wurde. len, sollten sich komfortabel passende Plug-ins Dieses Programm allein sorgt mit seinen per- finden und installieren lassen. Das funktionierte Banshee muss nach der Installation neuer Co- manenten und unnötigen Aktionen für 2 % CPU- im Test in keinem Fall, was aber auch in der letz- decs neu gestartet werden, damit es funktioniert. Grundlast. ten Version schon so war. Nach wie vor versagt der Mechanismus bei eini- gen Videodateien in Totem, auch hier war eine Es scheint eine Regel zu geben, dass alles, was Flash ist wiederum ein anderes Thema. Stan- manuelle Installation nötig. endlich einmal recht gut funktioniert, durch etwas dardmäßig ist kein Flash-Player vorinstalliert. Mit anderes ersetzt werden muss. So wurde die Pa- den freien Flash-Implementierungen Gnash und Unter KDE ist Amarok, jetzt in Version 2.4.3, der ketverwaltung KPackageKit durch Muon ersetzt. Lightspark lief nicht alles so gut wie beim letz- Standard-Audioplayer. Beim ersten Abspielen ei- Langfristig soll dieses Programm wohl die glei- ten Mal, denn kaum ein Video wollte mit Gnash ner MP3-Datei erkennt Amarok, dass ein Plug- chen Funktionen erhalten wie das Software Cen- funktionieren. Erst mit der Installation des Adobe- in fehlt, startet die Paketverwaltung, um danach ter, beispielsweise mit den jetzt schon vorhan- Flash-Plugins, das in Version 11 auch in 64 Bit zu suchen, und installiert auch eine ganze Reihe denen Bewertungen und Rezensionen. Warum zur Verfügung steht und sich dank eines Ubuntu- von Modulen. Nur abspielen kann man danach
© freiesMagazin CC-BY-SA 3.0 Ausgabe 11/20119 DISTRIBUTION immer noch nichts. Ähnlich ist es im Standard- tribution mit vielen schlechten Eigenschaften be- ge, die früher einmal besser funktionierten. Al- Videoplayer Dragonplayer. Letztlich mussten die klagen. Doch das hieße, die Fehler stark über- lerdings sind es überwiegend Probleme mit der fehlenden GStreamer-Module über die Paket- zubewerten. Eines soll an dieser Stelle noch anfänglichen Konfiguration. Sie erfordern etwas verwaltung installiert werden. In der Vorversion einmal betont werden: Man sollte die Aussa- Handarbeit, machen die Distribution aber nicht klappte das alles automatisch. ge von Mark Shuttleworth, dass der Ubuntu- prinzipiell schlecht. Denn hat man das System Entwicklungszyklus zwei Jahre lang ist, ernst erst einmal konfiguriert, ist es ein bewährtes Sys- Im Dateimanager Dolphin fehlt weiterhin eine Da- nehmen. Das bedeutet, dass alles, was zwischen tem, auf das man sich hundertprozentig verlas- teizuordnung von Dateien mit dem Suffix .flv. zwei LTS-Versionen erscheint, in Entwicklung be- sen kann. Man darf schon jetzt auf die im April Wenn man diese mit „Öffnen mit . . . “ hinzufügt, findliche und unfertige Elemente enthält. Beson- 2012 erscheinende Version 12.04 LTS gespannt kann man beispielsweise „/usr/bin/dragon“ als ders sieht man das natürlich an Unity. sein, die für volle fünf Jahre unterstützt wird. Programm eintragen, dann läuft alles rund. Ins- gesamt ist die Multimedia-Integration sowohl in Das heißt zwar nicht, dass Unity unbenutzbar LINKS GNOME/Unity als auch in KDE fehlerhaft und ein ist, aber Benutzer, die weniger Experimente (und [1] http://www.pro-linux.de/artikel/2/1534/ubuntu- unerwarteter Rückschritt gegenüber der Version das klassische GNOME) wollen, sollten lieber bei und-kubuntu-1110.html 11.04. Ubuntu 10.04 LTS bleiben. Unity schreitet ganz [2] https://wiki.ubuntu.com/ARM/TEGRA/AC100 klar voran, aber man muss die vorhandenen Kon- [3] https://wiki.ubuntu.com/ARM/MX5 figurationsmöglichkeiten nutzen, um so manchen [4] http://www.freiesmagazin.de/freiesMagazin-2011- Mangel und manches Ärgernis zu beseitigen. Ei- 06 ne recht weitgehende Anpassung von Unity ist [5] http://wiki.ubuntuusers.de/Unity/FAQ zwar möglich, aber nicht konsistent, und man muss an verschiedenen Stellen ansetzen. Für je- [6] https://wiki.ubuntu.com/OneConf manden, der Unity nicht will, ist es aber nicht schwer, zur GNOME-Shell oder zum klassischen Desktop von GNOME3 zu wechseln. Autoreninformation Für Kubuntu bleibt festzuhalten, dass es an KDE Hans-Joachim Baader (Webseite) generell nicht viel auszusetzen gibt, an der Im- befasst sich seit 1993 mit Linux. 1994 plementation in Kubuntu schon mehr. Doch auch schloss er sein Informatikstudium hier handelt es sich um Kleinigkeiten, die man erfolgreich ab, machte die Software- entwicklung zum Beruf und ist einer Startseite von Firefox. schnell in den Griff bekommt. Die vorinstallierte Paketauswahl wird wohl auch nicht jedem gefal- der Betreiber von Pro-Linux.de. Fazit len, doch dafür gibt es die Paketverwaltung. Man könnte Ubuntu und Kubuntu angesichts der Unter den festgestellten Problemen von Ubuntu zahlreichen bemerkten Probleme leicht als Dis- und Kubuntu 11.10 sind ärgerlicherweise Din- Diesen Artikel kommentieren
© freiesMagazin CC-BY-SA 3.0 Ausgabe 11/2011 10 LINUXALLGEMEIN
Erweitertes RC-System von OpenBSD von Patrick Hemmen
as erweiterte RC-System von geführt, von dem der Start weiterer Prozesse werden Startskripte für jeden Dienst unter- OpenBSD erleichtert die Integra- kontrolliert wird. Dieses System ist simpel, es halb von /etc/rc.d/ abgelegt. Dies verein- D tion von Programmen aus dem kennt z. B. keine Runlevels. Soll aber ein weite- facht die Handhabung bei einer großen An- Package/Ports-System in den Systemstart. rer Prozess beim Systemstart aktiviert werden, zahl von Diensten, die beim Systemstart ak- Zudem wird die Konfiguration vereinfacht muss das Skript manuell angepasst werden. Feh- tiviert werden sollen, und bietet die Möglich- und übersichtlicher. ler in dieser Datei können dazu führen, dass keit, die Dienste über ihr Skript während des das System nicht mehr ordnungsgemäß star- Betriebs zu steuern. FreeBSD hat bereits in Nachdem der Computer eingeschaltet wird, star- ten kann. Das Skript /etc/rc.local dient als Version 5.0 dieses Konzept übernommen [11]. tet das BIOS und initialisiert die Systemkompo- Erweiterung des Hauptskripts nenten, die für den Systemstart benötigt wer- /etc/rc. Nachdem das den. Vom BIOS wird aus dem Master Boot Re- Hauptskript die wichtigsten cord (MBR) der Urlader gestartet. Unter Linux Systemprozesse gestartet kommt häufig Grub [1] als Urlader zum Einsatz, hat, wird /etc/rc.local unter OpenBSD wird boot [2] eingesetzt. Dieser ausgeführt. Weiterhin wur- Urlader lädt den Kernel von der Festplatte. Un- de das System noch um ter Linux kann eine initrd [3] vom Kernel gela- Konfigurationsdateien er- den werden, die ein minimales Root-Dateisystem gänzt (/etc/rc.conf und für die Einbindung von Treibern bereitstellt. Die- /etc/rc.conf.local). se Technik wird von OpenBSD nicht verwendet, da bereits alle Treiber im Kernel enthalten sind. Im Internet existieren meh- Nachdem der Kernel geladen wurde, wird ein rere Theorien für was RC Prozess gestartet, welcher den weiteren Startvor- die Abkürzung ist. Die nach gang verwaltet. meiner Meinung plausibels- ten sind die des „The Art Startsysteme of Unix Programming“, nach Übersicht des Startvorgangs von OpenBSD. Dieser Vorgang ist bei allen unixartigen Syste- dem RC als Run-Control [8] men ähnlich. In Linux-Systemen wird häufig Init interpretiert wird, und die Erläuterung im Jargon OpenBSD hat bis zur Version 4.9 das alte Sys- in der Variante Sysinit [4] verwendet, dieses wird File, wo RC als runcom [9] beschrieben wird. tem aus zwei RC-Skripts verwendet. Zur leich- aber immer häufiger durch systemd [5] von Red teren Integration von Programmen in den Sys- Hat ersetzt. Solaris setzt seit Version 10 die Ser- Dedizierte Skripte temstart, die aus dem OpenBSD Package/Ports- vice Management Facility [6] ein, Mac OS X be- NetBSD hat sein RC-System [10] schon mit System [12] stammen, wurde eine erweiterte nutzt launchd [7]. Bei BSD-Systemen wird von Version 1.5 um dedizierte Skripte für instal- Version, die dedizierte Skripts unterstützt, in dem Init-Prozess das Shell-Skript /etc/rc aus- lierte Dienste ergänzt. Mit dieser Ergänzung OpenBSD 4.9 integriert [13].
© freiesMagazin CC-BY-SA 3.0 Ausgabe 11/2011 11 LINUXALLGEMEIN
Der Kernel startet den Init-Prozess und dieser /etc/rc.d werden die Startskripte für die ein- Maintainer erleichtert. Das Framework bietet Auf- führt das Skript /etc/rc aus. Dieses Skript zelnen Dienste abgelegt. Für Dienste, die im rufe für start, stop, restart, reload und liest seine Konfigurationsdatei und startet mit OpenBSD-System enthalten sind, z. B. sshd oder check eines Dienstes, sodass nicht jeder Main- dem neuen Subsystem /etc/rc.d/ Dienste. An- sendmail, befinden sich bereits Skripte in diesem tainer eigene Routinen für diese Standardaufru- schließend wird das Skript /etc/rc.local aus- Verzeichnis. Die Skripte können auch direkt in ei- fe entwickeln muss. Das Skript für einen Dienst geführt, welches ebenfalls seine Konfiguration ner Shell genutzt werden. Für den Neustart des beschränkt sich daher häufig auf die Einbindung einliest und Dienste über das neue Subsystem sshd muss folgender Befehl als Benutzer root der Frameworkdatei und das Setzen von Varia- startet. eingegeben werden: blen.
# /etc/rc.d/sshd restart Wird ein Dienst aus dem Package/Ports-System Konfiguration von OpenBSD installiert, wird nicht, wie in frühe- Die Erweiterung des RC-System ist noch in einer Dies funktioniert nur, wenn der Dienst in ren Versionen von OpenBSD, eine Empfehlung sehr aktiven Phase der Entwicklung. Daher wur- /etc/rc.conf.local aktiviert wurde. Ist dies für einen Eintrag in der /etc/rc.conf.local de nachfolgende Beschreibung mit dem Snap- nicht der Fall, muss beim Aufruf die Option -f angezeigt, sondern ein Skript mit dem Namen shot vom 22.09.2011 des letztendlich Anfang No- übergeben werden. Die Option ermöglicht einen des Dienstes in /etc/rc.d/ abgelegt. Ob ein vember erschienenen OpenBSD 5.0 erstellt. Start, ohne dass der Dienst aktiviert sein muss. Skript angelegt wurde, sollte zum jetzigen Zeit- punkt noch überprüft werden, da noch nicht alle Übersicht über Startskripte Ports auf das erweiterte System umgestellt wur- /etc/netstart Skript zur Netzwerkkonfiguration den. /etc/rc Hauptskript zum Start des Systems Zur Konfiguration eines einzelnen Dienstes kön- /etc/rc.conf Konfigurationsdatei für Dienste nen in der Datei /etc/rc.conf.local die Va- /etc/rc.conf.local Lokale Konfigurationsdatei für Dienste riable
© freiesMagazin CC-BY-SA 3.0 Ausgabe 11/2011 12 LINUXALLGEMEIN hinterlegt wird. Mehrere Dienste werden mit ei- zwingend notwendig, eine Migration zu den rc.d- [10] http://www.netbsd.org/docs/guide/en/chap-rc. nem Leerzeichen getrennt und in der angege- Skripten durchzuführen. Die vorhandene Kon- html benen Reihenfolge gestartet. Folgendes Beispiel figuration in der Datei /etc/rc.conf.local [11] http://www.freebsd.org/cgi/man.cgi?query= startet den Proxy-Server squid und anschließend bleibt weiterhin funktionstüchtig. rc&sektion=8 den IMAP/POP3-Server Dovecot: [12] http://www.openbsd.org/faq/faq15.html LINKS [13] http://marc.info/?l=openbsd-cvs&m=12881 # Datei /etc/rc.conf.local 2667316247&w=2 pkg_scripts="squid dovecot" [1] http://www.gnu.org/software/grub/ [2] http://www.openbsd.org/cgi-bin/man.cgi?query= Die Dienste werden beim Herunterfahren in boot Autoreninformation der umgekehrten Reihenfolge vom Skript [3] http://de.wikipedia.org/wiki/Initrd /etc/rc.shutdown beendet. [4] http://www.openbsd.org/cgi-bin/man.cgi?query= Patrick Hemmen benutzt seit über Dienste aus OpenBSD Base werden weiter- authpf fünf Jahren OpenBSD und schätzt die hin über dedizierte Konfigurationsvariablen in [5] http://freedesktop.org/wiki/Software/systemd kontinuierliche Entwicklung und gute /etc/rc.conf.local konfiguriert; ein Eintrag in [6] http://download.oracle.com/docs/cd/E19963-01/ Dokumentation des Projekts. pkg_scripts ist nicht nötig. Der Start erfolgt html/821-1451/hbrunlevels-25516.html aber auch hier mit den Startskripten, welche vom [7] http://developer.apple.com/library/mac/ Skript /etc/rc gesteuert werden. #documentation/Darwin/Reference/ManPages/ man8/launchd.8.html Diesen Artikel kommentieren Upgrade [8] http://www.catb.org/~esr/writings/taoup/html/ Bei der Aktualisierung eines bestehenden Sys- ch10s03.html tems auf OpenBSD 4.9 oder neuer ist es nicht [9] http://www.catb.org/jargon/html/R/rc-file.html
„Designated Drivers“ © by Randall Munroe (CC-BY-NC-2.5), http://xkcd.com/589
© freiesMagazin CC-BY-SA 3.0 Ausgabe 11/2011 13 KERNEL
Der Oktober im Kernelrückblick von Mathias Menzer
asis aller Distributionen ist der Linux- der auf dem kernel.org-Git fertiggestellt, nach führen, wodurch Schreibvorgänge zustande ka- Kernel, der fortwährend weiterent- Torvalds Ansicht das herausragendste am -rc9. men, die sich negativ auf die Leistung auswirk- B wickelt wird. Welche Geräte in einem Ebenso unspektakulär war auch 3.1-rc10 [5], das ten. Die neue Umsetzung erzeugt weniger zufäl- halben Jahr unterstützt werden und welche ein paar kleine Änderungen der MIPS-Architektur lige Muster und bezieht auch die Bandbreite der Funktionen neu hinzukommen, erfährt man, und Korrekturen für die Dateisysteme xfs und Anbindung des Datenträgers ein, um festzulegen, wenn man den aktuellen Entwickler-Kernel im btrfs mitbrachte. welche Prozesse beim Schreiben verzögert wer- Auge behält. den sollen, um den Gesamtdurchsatz zu erhö- Linux 3.1 [6] bringt auch wieder neue Funktio- hen. Daneben wurde im Zuge der Umstellung nen mit, von denen die interessantesten hier Linux 3.1 auch noch ein Problem mit der Skalierung auf beleuchtet werden sollen. Dazu gehört sicher- Ende Oktober hatte das lange Leiden ein En- Mehrprozessor-Systemen beseitigt. lich die Integration von OpenRISC [7]. Diese de: Torvalds gab während des Kernel Summits Hardware-Architektur ist unter der GNU-LGPL, in Prag den Linux-Kernel 3.1 frei, doch der Weg Eine Funktion moderner Festplatten um den ihre Firmware unter GNU-GPL, frei verfügbar. dahin war diesmal steiniger als sonst. Mit 94 Ta- Durchsatz beim Schreiben zu erhöhen ist das OpenRISC wird von einzelnen Unternehmen be- gen Entwicklungszeit liegt 3.1 nicht nur fast um Zwischenspeichern und gegebenenfalls Umsor- reits in FPGAs [8] und ASICs [9] genutzt. das Eineinhalbfache über seiner Vorgängerver- tieren von Schreibvorgängen in einem internen sion, sondern auch deutlich über dem Durch- Eine Funktion, die sicherlich mit Interes- Pufferspeicher der Platte. Dies kollidiert teilwei- schnitt der letzten drei Jahre. Genau genommen se verfolgt wird, ist NFC [10] (Near-Field- se mit den Funktionen der Dateisysteme, die der wird er hier nur von 2.6.24 getoppt, an dem über Communication), ein System zur drahtlosen Da- Datensicherheit dienen, weshalb die Festplatten hundert Tage gearbeitet wurde. Dabei waren die tenübertragung im Nahbereich. Anwendungsge- eine Anweisung zum sofortigen Schreiben bereit- ausschlaggebenden Probleme diesmal nicht un- biete wären beispielsweise Bezahlverfahren mit- stellen („cache_flush“). Die gängigen Dateisys- bedingt innerhalb des Kernel-Codes zu finden. tels Mobiltelefon, Zugangskontrollsysteme oder teme (xfs, btrfs, Ext4) nutzen diese bereits von der Aufbau einfacher Infoterminals, z. B. in Mu- Haus aus, so nun auch Ext3. Nutzer von Ext3, die Nach dem Einbruch auf der Entwicklungsplatt- seen, die zusätzlich Informationen für die Nut- auf den Kernel 3.1 umsteigen, werden nun gerin- form des Linux-Kernels kernel.org (siehe „Der Au- zer von NFC-fähigen Geräten bereitstellen. Ent- gere Durchsatzraten bemerken, wenn sie nicht gust im Kernelrückblick“, freiesMagazin 09/2011) sprechende Chips sind bereits in verschiedenen die Mount-Option barrier=0 nutzen. standen teilweise für sehr lange Zeit das Git- Smartphones verbaut und es wird erwartet, dass Repositorium und die daran angeschlossene Ein neues Werkzeug zur Überwachung des diese Technik eine weite Verbreitung findet. Weboberfläche GitWeb [1] nicht zur Verfügung, Energiebedarfs des Prozessors ist „cpupower- sodass die Entwicklung für einige Zeit auf „Dynamic writeback throttling“ soll das Schreiben utils“. Es soll Entwicklern bei der Überwachung Github [2] lief. Es wurde dann auch die ach- von im Arbeitsspeicher enthaltenen Daten auf der Schlaf- und Aufwachzyklen von CPUs und te Vorabversion dort veröffentlicht [3], die keine Datenträger verbessern. Die bisherigen Metho- APUs [11] helfen. Da es noch immer Probleme bemerkenswerten Änderungen aufweisen konn- den ließen teilweise mehrere Prozesse gleich- mit Komponenten gibt, die mit dem neuen Sche- te. Linux 3.1-rc9 [4] dagegen wurde bereits wie- zeitig Schreibzugriffe auf den Datenträger aus- ma der Kernel-Versionsnummerierung nicht klar-
© freiesMagazin CC-BY-SA 3.0 Ausgabe 11/2011 14 KERNEL kommen, wurde nun „uname26“ eingeführt. An- beiten noch eine Zeit lang andauern werden, bis [13] http://de.wikipedia.org/wiki/Software-RAID# statt mit 3.1 meldet sich der Kernel alternativ als kernel.org wieder wie gewohnt funktioniert. Software-RAID 2.6.41. Der Entwickler, Andi Kleen, bezeichnet [14] http://kernelnewbies.org/Linux_3.1 diese Lösung selbst als „hässlich“, doch manche Auf dem Kernel Summit erläuterte Peter Anvin [15] https://kernel.org den weiteren Fahrplan [16]. So sollen die ver- Software scheitert an 3.x. [16] http://www.golem.de/1110/87321.html schiedenen Dienste auf verschiedene Server ver- [17] https://github.com/sitaramc/gitolite iSCSI ist eine Methode, um virtuelle Datenträger teilt werden und unabhängiger sein. Außerdem über das Netzwerk einzubinden. Die bisher ge- sollen die Server zur Linux Foundation umziehen Autoreninformation nutzte Implementierung für iSCSI-Targets, also und künftig von fest angestellten Administrato- die Bereitstellung des Datenträgers, wurde auf ren anstelle von Freiwilligen betreut werden. root- Mathias Menzer (Webseite) hält ein neues Modul umgestellt (linux-iSCSI.or [12]), Zugänge zu den Servern bleiben den Administra- einen Blick auf die Entwicklung des das unter anderem mit mehreren Verbindungen toren vorbehalten. Zugriff auf das Kernel-Git wird Linux-Kernels und erfährt frühzeitig pro Sitzung zurechtkommt und auch die Feh- künftig nur noch mittels Gitolite [17] möglich sein, Details über interessante Funktionen. lersuche vereinfachen soll. Das MD-Subsystem, nicht mehr über Git selbst, wodurch sich Anvin mittels dem Software-Raids [13] genutzt werden mehr Sicherheit verspricht. können, kann nun defekte Blöcke auf den Da- Diesen Artikel kommentieren tenträgern feststellen und vermeidet deren Nut- LINKS zung. Zuletzt ein Schmankerl für die Spieler in [1] https://git.kernel.org/?p=linux/kernel/git/torvalds/ der Linux-Gemeinde: Seit 3.1 findet sich nun linux.git auch Unterstützung für Nintendos Wii Controller [2] https://github.com im Kernel. [3] https://lkml.org/lkml/2011/9/27/532 Eine vollständige Liste der Neuerungen findet [4] https://lkml.org/lkml/2011/10/4/451 sich auf Kernelnewbies.org [14]. [5] https://lkml.org/lkml/2011/10/18/2 [6] https://lkml.org/lkml/2011/10/24/212 kernel.org [7] http://en.wikipedia.org/wiki/OpenRISC Auch im Oktober waren der Einbruch auf ker- [8] http://de.wikipedia.org/wiki/Field_Programmable_ nel.org oder vielmehr dessen Folgen ein Thema. Gate_Array Noch immer stehen nicht alle Werkzeuge zur Ver- [9] http://de.wikipedia.org/wiki/Anwendungsspezifische_ fügung, die man bislang gewohnt war. So ist zum integrierte_Schaltung Beispiel die Einstiegsseite [15] zwar wieder ab- [10] http://de.wikipedia.org/wiki/Near_Field_ rufbar, zeigt jedoch noch immer nicht die jeweils Communication aktuellen Versionen an (bei Redaktionsschluss [11] http://de.wikipedia.org/wiki/Accelerated_ „Pirate Bay“ © by Randall Munroe wurde Linux 3.0.4 als aktueller Kernel angege- Processing_Unit (CC-BY-NC-2.5), http://xkcd.com/553 ben). Es bleibt auch zu vermuten, dass die Ar- [12] http://linux-iscsi.org/wiki/ISCSI
© freiesMagazin CC-BY-SA 3.0 Ausgabe 11/2011 15 PROGRAMMIERUNG
Perl-Tutorium: Teil 3 – Hashes, Schleifen und Subroutinen von Herbert Breunung
it diesem Teil nähert sich dieses Tuto- Wenn auch die beiden neuen Spezialvariablen ist und tut, was es soll. In soliden Projekten prüft rium weiter dem realistischen Alltag und Module in ihren Bedeutungen klar sind, kann dies eine Testsuite, die immer mit dem Programm M eines Programmierers. Das bedeutet: ohne einen Blick zur vorigen Folge der aktuelle mitwachsen sollte. Da aber das dafür notwendi- noch weniger neue Syntax zu lernen, aber da- Stand des Programmes betrachtet werden (sie- ge Wissen noch nicht vorgestellt wurde, wird ei- für noch mehr Vorüberlegungen zur Struktur he unten links). ne spätere Folge zeigen, welche Werkzeuge Perl des Programmes und seiner Daten. Auch wird dafür bereithält und wie man sie benutzt. Das Programm wechselt das Arbeitsverzeichnis das Notizprogramm nur um die in der Haus- zum Standort des Skriptes. Falls dort eine Datei aufgabe angeforderten Funktionen wachsen, Die nächste Frage, die der erfahrene Program- notizblock.txt liegt, wird sie eingelesen und denn es gibt viel zu erläutern. mierer sich stellt, ist: „Reicht meine Datenstruk- ausgegeben, wobei alle Zeilen hübsch numme- tur, um die geplante Funktion zu unterstützen?” Doch zuvor noch eine Auffrischung der Ope- riert sind. Die dann einzugebende Notiz wird in Sie tut es, da die Notizen nicht mehr wie anfangs ratoren und Befehle der letzten Folge aus die Datei hinter das bisherige Ende gespeichert. in einem Skalar, sondern in einer Liste sind, aus freiesMagazin 09/2011: Wurde nur Enter gedrückt, bleibt es bei der rei- der sich Elemente entfernen lassen. Die zwin- nen Anzeige. gend folgende Frage: „Muss der Programmab- -e '' "" ´ ´ \ qw() { } ( ) < <= > >= lauf geändert werden?” weist den Weg zur Tas- == != lt le gt ge eq ne . seek tell die Einige Vorbetrachtungen tatur, wo Arbeit lauert. Denn jetzt wird im Falle not do if unless for $/ $_ Der erste Gedanke sollte der Entscheidung einer Löschung die gesamte Datei neu geschrie- dienen, welche der zwei use v5.12; ben. Nur wenn eine neue Notiz kam, darf jetzt use warnings; neuen Funktionen zuerst append_file verwendet werden. Die letzte Zei- use FindBin; implementiert (program- le wird also ausgetauscht: use File::Slurp; miert) wird. Die Antwort darauf ist eindeutig das if ($notiz eq "\n") { my $datei = 'notizblock.txt'; Löschen. Es ist das drän- } chdir $FindBin::Bin; gendere Problem. Aber elsif ( ... ) { auch, weil es einfacher append_file($datei, $notiz) if (-e $datei) { zu lösen ist, bekommt es } my @notizen = read_file( $datei ); den Vorrang. Gerade grö- elsif ( ... ) { print "[$_] ", $notizen[ $_ ] for 0 .. $#notizen; ßere Änderungen sollten ... } in mehrere kleinere ge- write_file($datei, @notizen); print "Neue Notiz (nur Enter wenn keine): "; teilt werden, um sicher } my $notiz =
© freiesMagazin CC-BY-SA 3.0 Ausgabe 11/2011 16 PROGRAMMIERUNG
Alternativen mit elsif und else Die Anzahl der ausgeschnittenen Zeichen kann Doch zurück zum Löschbefehl. substr($notiz, Hinter dem Block jedes if kann eine weitere Be- man an dritter Stelle angeben, muss man aber 1) liefert den Teilstring nach dem Kurzkomman- dingung angehängt werden, welche geprüft wird, nicht. Manchmal will man das Extrakt ersetzen do. Wenn der Nutzer hier Buchstaben eingibt, sollte die if-Bedingung negativ ausfallen. Die- (wenn der String in einer Variable steht). Dann können die folgenden Programmzeilen, die ei- se wird mit elsif eingeleitet und funktioniert an- stellt man den Ersatz an die vierte Stelle. Das ne Nummer erwarten, entgleisen. Deshalb gibt sonsten wie ein if. Dem können beliebig viele Ergebnis von substr ist aber immer das Aus- es int, um beliebige Daten in ganze Zahlen elsif-Klauseln folgen, aber nur der Block nach geschnittene. Man beachte, dass die Parameter umzuwandeln. (Ganze Zahlen werden in fast der ersten positiven wird ausgeführt. Konnte kei- nach Wichtigkeit sortiert sind, sodass man nie allen Programmiersprachen „integer” genannt.) ne Bedingung erfüllt werden, wird der letzte Block mehr als nötig schreiben muss. Das ist eine wich- Was dabei genau geschieht, wurde im vorigen nach einem else ausgeführt, falls vorhanden. tige Lektion für spätere eigene Funktionen. Re- Teil (Abschnitt „Kontext”) beschrieben. Das ver- Er böte sich in diesem Beispiel dafür an, eine sultat der langen Rede – der gesuchte Vergleich hindert Programmabstürze, wäre aber vielleicht umfangreiche Hilfe auszugeben, wenn die Nut- ist: kein ideales Verhalten, da wahrscheinlich der Nutzer nur vergaß, das Leerzeichen einzu- zereingabe nicht den Regeln entsprach. elsif (lc substr($notiz, 0, 1) eq 'd'){ geben, und bekommt stattdessen die erste Textauszüge mit substr Das vorangestellte lc wandelt den Ausschnitt in Nachricht gelöscht. Doch zuvor sollten alle Platzhalter (Punkte) ge- Kleinbuchstaben um (englisch „lower case”, kurz Manchmal kann die laxe Typisierung von Perl ein gen Code ausgetauscht werden. Die erste Klau- „lc”), damit ein D2 statt d2 das Programm nicht echter Hemmschuh sein. Aber es gibt Wege, da- sel besagt: „Enthält die Notiz nur ein Zeilenende durcheinander bringt, sondern die beabsichtigte mit umzugehen, spätere Teile berichten davon. (es wurde Enter gedrückt), dann tu nichts.” Des- Wirkung hat. Fehlertoleranz ist ein weiterer wich- Ein zusätzliches int schneidet also wie oben er- halb bleibt der Platz zwischen den geschweiften tiger Schritt, dem Nutzer entgegenzukommen. wähnt vielleicht vorhandene Nachkommastellen Klammern leer. In der dritten Klausel geht es um Die besten Programme nützen nichts, wenn sie ab. Es gibt ja auch keine 4,5-te Notiz, die ge- das Löschen. Aber wie genau fragt man nach umständlich zu bedienen sind. Manch einer wä- löscht werden könnte. dem Wert des ersten Zeichens der Eingabe, das re vielleicht auf die Idee gekommen, zuerst abzu- splice ein d (für delete) sein soll? Um die zweite No- und mehr fragen, ob man ein Kommando oder eine Notiz Wie angekündigt, ist der Befehl, um das Ar- tiz zu löschen, braucht es somit ein d2. Nur ver- einzutippen wünscht, aber wozu so umständlich? ray aufzuteilen, splice. Und das Allerbeste: Er gleicht eq immer die vollständige Zeichenkette. Sicher, auch die Notiz kann mit einem D anfan- braucht kaum erläutert zu werden, denn er ver- Es braucht einen Befehl, der sich einen Teil ei- gen, aber wenn sie mit einem Leerzeichen begin- hält sich fast wie substr. Die Parameter sind Ar- nes Strings d2 herausgreift, der dann via eq mit nen muss, lassen sie sich gut von den Befehlen ray, Position, Länge, Ersatz, wobei hier auch wie- d verglichen werden kann. Dieser heißt sinniger- unterscheiden und die Zeilen sind bereits in der der die letzten beiden wahlfrei sind und Ersatz weise substr, kurz für „substring”, zu Deutsch Übersicht etwas eingerückt: die Liste aller restlichen Parameter umfasst. Teilstring. Er bekommt mindestens zwei Parame- ter, den String, aus dem geschnitten wird, und elsif (substr($notiz, 0, 1) eq ''){ Um das Programm abzusichern, wird auch die Position, ab welcher es interessant wird. Der append_file($datei, $notiz) geprüft, ob es überhaupt eine Notiz mit der erste Buchstabe hat wie immer die Position 0. } angeforderten Nummer gibt:
© freiesMagazin CC-BY-SA 3.0 Ausgabe 11/2011 17 PROGRAMMIERUNG
my $nr = int substr($notiz, 1); Weckruf für das Aufräumkommando. Ab Version se Logik ist das Gegenteil von dem aus C, Java splice(@notizen, $nr, 1) 5.10 gibt es auch im Perl-Kern endlich einen oder Python bekannten, was eine Menge über- if $nr >= 0 and case-Befehl, nur wenige Jahrzehnte nach sei- flüssiger break einspart – lediglich Ruby hand- $nr <= $#notizen; ner Einführung in C. (Bis dahin half das heute habt das ähnlich. write_file($datei, @notizen); veraltete Switch-Modul aus.) Allerdings ist das default entspricht hier dem else. Es ist die Perl-case wesentlich mächtiger, weswegen es Klausel für den Fall, wenn kein when Erfolg hat- Mit diesen Zeilen, an der rechten Stelle einge- den Namen given/when bekam, um Verwechs- te. Da das im vorigen Teil vorgestellte for eben- fügt, wäre das erste Ziel erfüllt. Zu splice ließe lungen zu vermeiden. Seine umfangreichen Mög- falls $_ setzt, kann when auch in einer for- sich noch anmerken, dass es selten verwendet lichkeiten wären Stoff genug für einen eigenen Schleife verwendet werden. Im jetzigen Fall ma- wird. Für die meisten Anwendungsfälle gibt es Teil, weshalb hier nur das jetzt gebrauchte, grund- chen given und when das Programm vor allem spezialisierte Befehle wie push, das dem Array legende Prinzip erklärt wird. weitere Werte anhängt, und pop, das sie von dort lesbarer. length liefert die Länge eines Strings. entnehmen kann. unshift und shift machen given ( lc substr($notiz, 0, 1) ) { Hat der Nutzer vergessen einzugeben, welche Gleiches am Beginn der Arrays. In anderen Spra- when ("\n") { } Notiz er löschen will, wird er so elegant an die when (" ") { chen wie etwa Java gibt es gesonderte Klassen Hilfe weitergereicht. Generell ist es immer bes- append_file($datei, $notiz) für Listen, bei denen man am Ende anfügt und ser, ihm genau zu sagen, wo das Problem liegt, dort auch wieder abschöpft („Stack”, auch „Sta- } when ("d") { aber noch soll das Programm sehr klein bleiben. pel“ genannt). Fügt man am Ende und entnimmt continue vorne, heisst das „Queue” (Warteschlange). split if length($notiz) == 2; Die vierte Klausel ist für das Verschieben der ... Bei Perl verwendet man die Array-Befehle, die Nachrichten. m steht für move, also „bewege”. } man benötigt, und ignoriert die anderen. Das ist Das Format des Befehles soll wie m2:4 sein, when ("m") { ... } effektiv, flexibel und ein Grund, warum Perl mit default { ... } wenn die Nachricht von der zweiten auf die vier- einem Schweizer Offizierstaschenmesser vergli- } te Position verschoben werden soll. Nun stehen chen wird. Bei dem klappt man auch nur auf, also zwei Werte im String, die es herauszuzie- was man gerade braucht. Wie ebenfalls angekün- Der Befehl given setzt nur den Inhalt der Kon- hen gilt. Mit index ließe sich das : suchen, wel- digt, entfernt delete kein Array-Element, son- textvariable $_, wie es eine einfache Zuweisung ches die Zahlen trennt. Mit dieser Information dern setzt seinen Wert auf undef. Die Reihen- auch tun würde. Die when-Klauseln funktionie- braucht es nur noch zweimal substr, aber es folge wird temporär mit reverse umgekehrt. ren wie ein if oder elsif, nur das sie ihren geht auch einfacher. Zum Aufteilen eines Srings Wert (in runden Klammern) mit $_ vergleichen, gibt es split. Es benötigt nur zwei Zeichenket- given, when, default bei Übereinstimmung den folgenden Block aus- ten und teilt die zweite an jedem Vorkommen der Die bisherigen Abfragen verletzten das im führen und danach den gesamten, umschließen- ersten. So liefert es ein Array der Teile, in denen Abschnitt „Guter, trockener Code” ange- den given-Block verlassen. Das Verlassen kann der Teiler nicht enthalten ist. Etwa so: führte DRY-Prinzip. Dreimal in Folge steht break auch jederzeit erzwingen und continue substr($notiz, 1) im Programm, ein klarer lässt zur nächsten when-Klausel springen. Die- @zahlen = split '' , '1 2 3 4 5';
© freiesMagazin CC-BY-SA 3.0 Ausgabe 11/2011 18 PROGRAMMIERUNG
Der Rest besteht aus dem Abfangen von Fehler- quellen und zwei verschachtelten splice. Das %Perl = ( when ($kommando{'loesche'}){.... 'Gesang' => 'Michael Barakowski', rechte splice entnimmt das Element dem Array 'Schlagzeug' => 'Bernd Fleckner', Wenn man die Klauseln noch etwas mehr ändert, und das linke fügt es woanders ein: ); kommen sie mit Kommandos von beliebiger Län- when ("m") { # Michael Barakowski ge zurecht und man kann gleichzeitig die Kom- continue if length($notiz) == 2; say $Perl{'Gesang'}; mandos m und mv verwenden: my($von, $zu) = split /:/, # Michael BarakowskiBernd Fleckner substr($notiz, 1); say @Perl{'Gesang', 'Schlagzeug'}; when ($kommando{'bewege'}){ $von = int $von; say %Perl; # Position und Name continue if length($notiz) == $zu = int $zu; length($kommando{'bewege'})+1; continue Für das Notizprogramm wäre es praktisch, die my($von, $zu) = split ':', substr($notiz, if $von < 0 or $von > $#notizen; Namen der Kommandos ändern zu können. length($kommando{'bewege'})); continue Nicht jeder kann oder mag Englisch. Die Meinun- if $zu < 0 or $zu > $#notizen; gen über die intuitiv richtige Benennung geht si- splice(@notizen, $zu, 0, cher weit auseinander. Und dass die Bedienung Neue Aufgabe und Ausblick splice(@notizen, $von, 1)); leicht von den Fingern geht, ist entscheidend. Neben den stark verbesserungswürdigen Hilfe- write_file($datei, @notizen); Deshalb werden die Kommandos definiert und ausgaben ist das nächste Thema die Gruppie- } die Abfrage kann sie sofort richtig vorstellen: rung mehrerer Notizen zu logischen Einheiten. Dazu bedarf es nicht nur einer strukturierten An- Hashes my %kommando = zeige und Erweiterung der Funktionen, sondern ( bewege => 'm', loesche => 'd'); auch verschachtelter Datenstrukturen und Refe- Neben $ und @ ist % das dritte wichtige Sigel ... renzen. für Variablen in Perl. Mit ihm fangen Hashes print "Neue Notiz (Enter, wenn". an, die man sich als zweispaltige Tabellen vor- " keine; $kommando{'loesche'}". Autoreninformation stellen kann. In der linken Spalte stehen Wer- " loescht; $kommando{'bewege'}". te, die Schlüssel genannt werden und eindeutig " bewegt): "; Herbert Breunung (Webseite) ist sein müssen, d. h. kein Schlüssel kann doppelt seit sieben Jahren mit Antworten, vorkommen. In der rechten Spalte steht je Zeile Es ist eine schöne Eigenschaft von Perl, dass Vorträgen, Wiki- und Zeitungsartikeln ein Wert, der sich mit dem passenden Schlüssel man an die Hashwerte innerhalb und außerhalb in der Perlgemeinschaft aktiv. Dies wie mit einem Namen aufrufen lässt. Alle Schlüs- der Anführungszeichen mit der gleichen Syntax begann mit dem von ihm entworfenen sel und Werte sind Skalare, können also belie- gelangt. Wegen dem Sigel versteht der Interpre- Editor Kephra, den er leidenschaftlich bige Daten aufnehmen. Wenn man die Werte ter trotz aller Klammern was gemeint ist. Ein gerne pflegt. von mehreren Schlüsseln auf einmal möchte, än- Escape-Zeichen (\) kann dies auch aufheben. dert sich das Sigel zu @, da ein Array an Werten Natürlich muss auch der given-Block auf die än- kommt. Will man nur einen Wert, steht vorne $. derbaren Kommandos eingestellt werden. Diesen Artikel kommentieren
© freiesMagazin CC-BY-SA 3.0 Ausgabe 11/2011 19 PROGRAMMIERUNG
PHP-Programmierung – Teil 2: Kontrollstrukturen von Patrick Eigensatz
m ersten Teil dieser Reihe zur Um hier kurz zu erklären, was PHP macht und schreiben. Texte, also Zeichenketten (auch: PHP-Programmierung (freiesMagazin wie PHP funktioniert: Ein PHP-Skript ist – wie Strings), werden entweder zwischen einfa- I 10/2011 [1]) wurde der Webserver Apa- HTML auch – ein normales, für den Menschen chen oder doppelten Anführungszeichen gesetzt. che aufgesetzt und die HTML-Grundlagen lesbares, Textdokument. Sendet nun ein Brow- Strings können sich natürlich über mehrere Zei- kennengelernt. In diesem Teil werden so ge- ser eine Anfrage, um das Dokument anzuzeigen, len erstrecken. In PHP wird jeder Befehl mit ei- nannte Kontrollstrukturen behandelt, damit wird das Programm php5 auf dem Server aus- nem Semikolon abgeschlossen. man auf bestimmte Eingaben richtig reagie- geführt, das den Quellcode einliest (in der Fach- ren kann. Außerdem wird kurz beschrieben, sprache: parst) und daraus eine statische Web- Der dem Browser zugesandte HTML-Quelltext wie Funktionen in PHP aufgerufen werden site (HTML) erstellt, die dann dem Client gesen- wird vom Webbrowser dann interpretiert und und wie man auf die mit einem Formular über- det wird. dementsprechend angezeigt. Damit ist die Funk- mittelten Daten zugreifen kann. tionsweise von PHP ungefähr erklärt. Fragen Hallo Welt! sind in den Kommentaren zum Artikel gerne ge- Hinweis: Auf den ersten Teil zur PHP- Jedes PHP Skript beginnt mit einem auf. Der Code, eine Diskussion zum fehlenden in- der außerhalb dieser Marken liegt, wird von PHP Variablen in PHP nerhalb des ersten Artikels. Im nun folgenden ignoriert und einfach wie HTML-Code in die sta- Variablen gibt es – wie in der Mathematik – auch Artikel wird der für HTML5 hinzu- tische Webseite hineingeschrieben. Hier ein klei- im Computer. Variablen bestehen aber in den gefügt. Der Doctype bestimmt, welche Version nes Beispiel, das eine „Hallo Welt“-Seite erzeugt: Programmiersprachen meist aus einem oder so- von HTML benutzt wird, sodass der Browser gar mehreren Wörtern, anstatt aus nur einem hörigen Auszeichnungen für Absätze () Variablen werden in PHP durch ein Dollarzeichen sowie mit den passenden Anweisungen, um den
($) vor dem eigentlichen Namen gekennzeichnet. Text nicht wie im ersten Artikel mit dem ver- Man sollte beachten, dass als Variablennamen alteten -Tag, sondern über Roter Text
© freiesMagazin CC-BY-SA 3.0 Ausgabe 11/2011 20 PROGRAMMIERUNG
zugewiesen wird, vorne steht: $a = $b+$c und ne Ausnahme gibt es aber, nämlich dann, wenn Fischer's Fritz fischt frische y nicht $b+$c = $a. der Text zwischen doppelten Anführungszeichen Fische steht. Dann können die Variablen einfach in den Hier ein kleines Beispiel: Text hineingeschrieben werden. Eine gute Übung zu den Zeichenketten und Varia- Zahl2: $var1 = '\'\'\''; // Variable $zahl2 auf denselben y $zahl2"; $var2 = "\"\"" . '"'; // Wert wie $zahl1 setzen ?> echo "$var1$var2$var1\""; $zahl2 = $zahl1; ?> Eine kleine Anmerkung: Aufmerksame Leser // Variable $resultat ausrechnen werden bemerkt haben, dass nur beim „Hallo Lösungen zu der Aufgabe können in den Kom- $resultat = $zahl1 + $zahl2; Welt“-Beispiel eine HTML-Seite erstellt wurde. mentaren zum Artikel abgegeben werden. (Viel- leicht auch ohne, dass man PHP vorher nach der echo $zahl1 . '+' . $zahl2 . '=' . Ab hier geht es nur noch um die Ausgabe des y Lösung fragt. ;)) $resultat . '
'; Skriptes. Es wird hier kein valides HTML erstellt. echo 'Die Variablen hintereinander:y GET-Variablen ' . $zahl1 . $zahl2; Escapen Im Internet begegnet man immer wieder lan- ?> Um Strings auszugeben, empfehle ich allge- http:// mein die Benutzung von einfachen Anführungs- gen Adressen, wie z. B. folgender: Listing 2: addition.php meinebank.com/ebanking/mein_konto.php? zeichen, denn wenn HTML-Tags ausgegeben user=abc&session=447-zC Dieses Skript erzeugt folgende Ausgabe: werden sollen, müsste man alle doppelten Anfüh- . rungszeichen durch einfache ersetzen bzw. die- Wenn man die URL etwas genauer betrachtet: 5+5=10 se escapen. „Escapen” bezeichnet das Voran- stellen eines Backslashs (\). Damit wird dem http:// das HyperTextTransferProtocol Die Variablen hintereinander: 55 PHP-Interpreter mitgeteilt, er solle dieses Zei- meinebank.com die Domain Hier sieht man auch, dass man Variablen sepa- chen nicht als Ende der aktuellen Zeichenkette /ebanking/ der Ordner, in dem sich die Web- rat ausgeben muss, und dass man diese nicht sehen. site befindet einfach in die Strings hinein schreiben kann. ? 1. Trennungszeichen le Werte zusammen und übergibt diese dann echo, das wiederum den ganzen Text ausgibt. Ei- Die Ausgabe: user Name der 1. Variable
© freiesMagazin CC-BY-SA 3.0 Ausgabe 11/2011 21 PROGRAMMIERUNG
= Wertzuweisungszeichen $_GET ist das Datenfeld, in dem alle in der URL Hier zwei Dateien, login.html und login.php: definierten Variablen vorhanden sind. Danach abc Wert, der user zugewiesen wird folgt eine eckige Klammer, damit PHP weiß, dass & 2. Trennungszeichen man in das „Hängemappenregister“ $_GET zu-
greifen möchte. Vor der schließenden eckigen session Name der 2. VariableKlammer findet man eine Zeichenkette, die aus-
an erinnern, dass man beim Parameter method feld (auch: Array) gespeichert. Arrays muss man im