<<

'+&(+ DIE ZEITSCHRIFT FÜR -PROFESSIONALS

@d\jk1Kffcj]•i Fec`e\$Ld]iX^\e Befgg`o.%* =iXd\nfibj, BcXljBefgg\i•Y\i8lj$ B;

■ J;E$>ile[cX^\e19\^i`]]\#Gifkfbfcc\# <]]\bk\#Fg\eJfliZ\J%)/ ■ =i\`le[\`ejXkq]€_`^1Fg\e=cfn J%*) ■ Fg\e;Xpc`^_kY\`[\iC`elo=fle[Xk`feJ%*/ ■ ;`\Xbkl\cc\eJ;E$Gif[lbk\mfeMDnXi\# :`jZf#D`[fbliXle[@9D:JJ%+' ■ D`e`e\k1Jlg\i

■ 8ec\`kle^1M\ik\`ck\jJkfiX^\$J\klg d`kj`dgc\d8K8fm\i

G\ic$^\jk\l\ik\JlZ_dXjZ_`e\]•iJki`e^jjfn`\=fkfjd`kLdbi\`jjlZ_\J%('/

;\lkjZ_cXe[ {jk\ii\`Z_ JZ_n\`q 9\e\clo JgXe`\e @kXc`\e www.linux-magazin.de -#+' .#', j]i()#/' .#,' /#*' /#*' 4 192587 306401 0 4

'+&)'(+ <[`kfi`Xc

Bfdgfjk`\ik\j Cf^`e

*

;Xj C`elo$DX^Xq`e Y\^\_k [`\j\j AX_i j\`e\e )'% >\YlikjkX^% E\Y\e [\i =i\l[\[Xi•Y\i#[Xj[`\ejk€ck\jk\^\[ilZbk\Eli$C`elo$D\[`ldXl][\iN\ck

qlj\`e#d`jZ_\ej`Z_ql^c\`Z_>\[Xeb\eXe•Yi`^>\Yc`\Y\e\jle[M\i^€e^$ nnn%c`elo$dX^Xq`e%[\ c`Z_b\`k%@Z_d\`e\e`Z_keli[`\ile[('''le\ic\[`^k\e<$DX`cj`ed\`e\d Gfjk\`e^Xe^#[`\j`Z_•Y\ii\`Z_c`Z_\`eAX_iq\_ekXe^\jXdd\ck_XY\e%Mfi$ ^\jk\iec\^k\d`i\`e\Bfcc\^`e\`e\eJkXg\cQ`g$;`jb\kk\ed`kC`elo$DX^Xq`e$ ;ilZb[Xk\eXlj[\ejg€k\e0'\ieXl][\eJZ_i\`Yk`jZ_%

;\i aflieXc`jk`jZ_\e C`elo$:_ife`jk\eg]c`Z_k ]fc^\e[# n•i[\ `Z_ [`\ ;Xk\e ^\ie\`ej?\lk\•Y\i]•_i\e%>\iX[\`dQl^\[\i)'$AX_i\j8lj^XY\beek\e n`i[`\XlZ_^lkYiXlZ_\e%Elin`\iXebfdd\e6>\jk\ie_XY\`Z_Xlj\`e\d `dNfikj`ee\ ?Xl]\eqldM\ijZ_ifkk\e]i\`^\^\Y\e\i?Xi[nXi\\`eQ`g$ CXl]n\ib^\qf^\e%8cjE€Z_jk\jYiXlZ_\`Z_\`ej\ckjXd\jJZj`$BXY\cle[ AXeBc\`e\ik#:_\]i\[Xbk\li \`e\eG:#nf`Z_[Xji\`e^\jk\ZbkY\bfdd\¿

NXj[\dC`elo$DX^Xq`e`eq\_eAX_i\e`eJXZ_\eC\`Z_\e$`d$B\cc\iY\mfijk\_k#bXee\jj`Z_jZ_fe_\lk\Y\` 8ggc\XejZ_Xl\e%;\iDXZ`ekfj_[\j:fdglk\ig`fe`\ij`jk[`\j\iKX^\*'AX_i\Xck^\nfi[\e%;XdXcj^Xck [\iDXZXcj[XjJ`eeY`c[]•i[`^`kXc\LeXY_€e^`^b\`k#nfqlj`Z_\iI`[c\pJZfkkj8ek`$9`^$9ifk_\i$N\iY\m`[\f ^\eXljfm`\cY\`^\kiX^\e_Xkn`\[`\<`ejk\ccle^1;XdXcjn€i\e8ggc\j8cc^\d\`e\>\jZ_€]kjY\[`e^le^\e mfe_\lk\le[\ebYXi^\n\j\e%

<`e KM$K\Xd [\j EXk`feXc >\f^iXg_`Z :_Xee\c `jk [`\j\i KX^\Y\` [\e ;i\_XiY\`k\e ]•i [`\ ;fbli\`_\ Ù;`^^\ijÆ[`\JZ_XkqjlZ_\iÈ•Y\iiXjZ_\e[Xl]\`e\Y`jcXe^m\ijZ_fcc\e^\^cXlYk\Q\`kbXgj\c^\jkf\e%;`\ _Xkk\e[`\M\iXejkXck\i[\i@ek\ieXk`feXc;\j`^e:fe]\i\eZ\`e8jg\emfi*'AX_i\em\iYl[[\ck%J`\jfcck\ \`^\ekc`Z_eXZ_)'AX_i\n`\[\i^\Yfi^\en\i[\e%8l]^ile[mfe8iY\`k\eXl][\dY\ki\]]\e[\e>\c€e[\ ^`e^[Xj;`e^XY\ijgi`Z_nikc`Z_n`\nikc`Z_m\ijZ_•kk\k%

@e[\iXlj^\^iXY\e\eQ\`kbXgj\c#m`\cc\`Z_kjfcck\dXej`\Q\`k$Lie\e\ee\e#]Xe[j`Z_lek\iXe[\i\dJk\m\ AfYjË\ijk\:fdglk\idXlj%;`\_Xkk\[\i8ggc\$>i•e[\i[\eM\iXejkXck\ie(0/*Xcjg\ijec`Z_\e>\^\e$ jkXe[•Y\icXjj\e#eXZ_[\d\iXl][\iBfe]\i\eq[\ed`kkc\in\`c\c\^\e[€i\eMfikiX^ÙK_\=lkli\`jefk n_Xk`klj\[kfY\È^\_Xck\e_Xkk\%;XY\`Y\elkqk\\i\`e\e8ggc\$:fdglk\i#`e[Xj\i^\eXl[Xj_\lk`^\ 8ik\]Xbk^\jkgj\ck_Xkk\%

M`\cc\`Z_kjfcck\XlZ_`Z_`i^\e[nf\`eCfZ_Xlj_\Y\ele[[`\Q`g$;`jbj]•i[`\`ek\i\jj`\ik\EXZ_n\ckm\i$ j\eb\e6@Z__€kk\\`eGifYc\dn\e`^\i#le[\`eXiZ_€fcf^`jZ_m\ieXiik\jKM$K\Xd[\iQlble]k\`eK_\dX d\_i%NX_ijZ_\`ec`Z_\i`jk#[Xjjd`i[`\8bk`fe[\eIl]\`e\iLdn\ckjXl\`eYi€Z_k\#[\iJZ_n\id\kXcc\le[ d`kN\`Z_\idXZ_\ie[liZ_j\kqk\eBlejkjkf]]jfi^cfj`d9f[\em\ij\ebk%8cc\`e[\ecXo\eLdn\ck^\j\kq\e [\jAX_i\j(0/*_XkJk\m\AfYj\jqlm\i[Xeb\e#[Xjjj\`e\[XdXc`^\D•cc\ekjfi^le^jgiXo`j[`\_\lk`^\ {]]\ekc`Z_b\`kd`kD`c[\Xl]e`ddk%D€lj\mfe_\lk\#jfm`\cdljjbcXij\`e#^\_i\ee`Z_k`e

;`\Q`g$;`jbjcXjj\`Z_mfi\ijkXl]d\`e\dJZ_i\`Yk`jZ_c`\^\e%D\`e\('''_`jkfi`jZ_\e<$DX`cjbeek\`Z_ aX\`e\dZfdglk\i^\jZ_`Z_kc`Z_\jDlj\ld•Y\i^\Y\e%;Xjn•i[\d\`e\[`^`kXc\J\\c\j\_i\ekcXjk\e#le[ [`\)'$AX_i\j$=\`\ic`Z_b\`k\e[•i]\eY\^`ee\e% + @e_Xck nnn%c`elo$dX^Xq`e%[\ '+&)'(+ '+&)'(+      )' )) )- () -      E\nj ■ ■ ■ ■ ■ ■ ■ ■ ■ QXZbjB\ie\c$E\nj qld`e[\jknXjFg\eJfliZ\Xe^\_k% F]]\ele[dfY`c`jk[XjDfkkf[\i:\Y`k# :\Y`k)'(+MfijZ_Xl [\i=i\`\eLe`m\ij`k€k9i•jj\c% kiX]\ej`Z_`ed\_iXcj,''Mfiki€^\eXe Qn`jZ_\e,'''le[()'''FJJ$=i\Xbj =fj[\d)'(+ QX_c\eKi\e[j 8bkl\cc MfikiX^nXi_f]]ele^jcfj•Y\i]•cck% Kpg`jZ_=fj[\d1C\eeXikGf\kk\i`e^jB[Ylj$ j`feXlZ_[\e<`ejXkqmfeF;=]•ifbXp% E\Y\eFFODC_€ck[`\\i€k\le[m`ikl\cc\eDXjZ_`e\en€Z_jk[`\ ;$;M;   >ile[cX^\e  Fg\e=cfn q\ekiXc\iJk\l\ile^^\n`ee\e% ;\]`e\[E\knfib`e^Xe=c\o`Y`c`k€kle[ NXildle[n`\8[d`ejd`kJf]knXi\ >c\`Z_le^Xl]% bc•^\i\E\kq\19\`Fg\e=cfn^\_k[`\j\ ;•dd\i\E\kqn\ib_Xi[nXi\jZ_X]]k K`k\ck_\dX1E\kq\e\lfi[e\e j\ebk[`\?Xi[nXi\bfjk\e% Fg\e=cfnjk\l\ik[\e;Xk\e]cljjq\ekiXcle[ [`\`eKXY\cc\e@e]fidXk`fe\emfi_Xck\e% Jf]knXi\\ij\kqk[`\\Z_k\eE\kqn\ib^\i€k\# `jka\kqklg[Xk\YXi E\l1Befgg`oXl]\`e\dLJ9$Jk`Zb `ejkXcc`\iYXi\C`m\$;`jki`Ylk`fe%

,/ D\`ele^q€_ck /' N`ek\ii€kj\c$8l]cjle^ 0- N\Y]lebk`feXc Le`m\ij`k€i\Jkl[`\e#Ble[\eql]i`\$ Ù8Gc\X]fic\XeJf]knXi\ÈcXlk\k\[`\ J`\_kXljn`\C`jgle[c€l]k•Y\iXcc# , [\e_\`kf[\i[`\gfc`k`jZ_\D\`ele^1 bfii\bk\Cjle^%(+C\j\icX^\ei`Z_$ nfAXmX`ejkXcc`\ik`jk1:cfali\`jk C`d\Jlim\p#Fg`eXle[Gfcc[X[[p^\$ k`^#\`e\imfe`_e\e^\n`eek\`e\eM`$ _Xe[c`Z_le[Yi`e^ka\[\D\e^\9`Yc`f$ jkXck\eFec`e\$Ld]iX^\e% [\fi\Zfi[\i]•i[\eIXjgY\iipG`% k_\b\ele[Kffcjd`k% nnn%c`elo$dX^Xq`e%[\

Jf]knXi\ JpjX[d`e Befn$_fn

+0<`e]•_ile^  .,<`e]•_ile^ 0) B\iek\Z_e`bÆ=fc^\.* 8l][\i;$;M;1Befgg`o\obclj`m# 8lj[\d8cckX^\`e\jJpjX[d`e1:_Xicp ;XjKiXZ`e^$N\ibq\l^BkXg_`c]kY\` \`e\MDd`kDX^efc`X:DJ#=fj[\d$ i\^lc`\ikj\`e\;fnecfX[j\im\i%

,-DX^efc`X BkXgY\jk\_kXlj\`e\dB\ie\cdf[lc ;Xj;$DX^efc`XY`\k\kXkkiXbk`m\ le[\`e\i8ggc`bXk`fe% Ql^XY\e[\j:DJ$?\ijk\cc\ij% Kffcjn`\>lpdX^\i\ib\ee\e8F<$CXl]n\ib\%

Gif^iXdd`\i\e =fild 0-:cfali\ K`k\c /' N`ek\ii€kj\c$Cjle^ Df[\ie\i\N\YXen\e[le^\ejZ_i\`Y\e% 8cc\=iX^\ele[Xcc\8eknfik\e% ('):""Æ=fc^\(, 8lZ_\`eJ_fg$Df[lc_XkDX^efc`X`ek\^i`\ik% /+ I\Z_k ;i\`AX_i\eXZ_:""((\i_€ck[\iJgiXZ_$ NXildle[nXee\`e\=`idX]•i jkXe[Xi[d`k:""(+[\ec\kqk\eJZ_c`]]% ,/9`kgXiX[\ M\i^\_\e[\iFJJ$:fddle`kp_X]k\k% K`k\c ;i\`;`\ejk\_\c]\eY\`d<`ei`Z_k\ele[ 8ljn\ikle^mfeFec`e\$Ld]iX^\e% //Kloc`\jk ;\k\id`e`jk`jZ_\8lkfdX$ --B;<=iXd\nfibj, k\ele[n\e`^\i K`k\c ;`\e€Z_jk\e=iXd\nfibjjfcc\eFi[ele^ jZ_c\Z_k\i:f[\%

`eB;ff^c\$D`kXiY\`k\i[\Yl^^\e=]dg\^le[C`YXm Multimedia-Framework Ff- ry auf Laut OpenSource Observato- einsetzen. denke, dieandere Standards tungen zukommunizieren ge- ;`\

Ÿ

B\ie\c*%(*1E=kXYc\j#jZ_e\cc\i\JJ;$@FGJle[E=:d`kJ\Zli\

Mit reisebedingter Verspätung tioneller Festplatten deutlich. sowie APUs (Sumo und Palm). Kommunikation über TCP entließ im Ja- Bei Letzteren setzen physikali- Für mobile AMD-Radeon- – Kernel 3.13 aktiviert es nuar 2014 die Version 3.13 des sche Eigenschaften von Kopf- Hardware mit zwei GPUs be- standardmäßig. Im Ethernet- Kernels in die freie Wildbahn, mechanik und rotierenden herrscht er zudem automati- Bereich bringt Linux Support sie hat wieder interessante Scheiben den IOPS Grenzen. sches GPU-Switching. für HSR (High-availability Features im Gepäck. Die Auf- Sequenzielle Zugriffe sind Auch beim Intel-Support gibt Seamless Redundancy) mit: nahme von NFtables in den aus diesem Grund die beste es Verbesserungen. Kernel In Netzwerken mit Ringtopo- Kernel hatte sich ja bereits bei Wahl. 3.13 kommt mit Intels MIC- logie ermöglicht das Protokoll der Veröffentlichung des Vor- Das ist bei SSDs anders: Sie Architektur (Many Integrated Failover-Redundanz. gängers abgezeichnet, nun ist erlauben es, I/ O-Operationen Core) zurecht, auf die unter Auch in der Near Field Com- der Code im Kernel. zu parallelisieren, was Kernel anderem Xeon-Phi-Prozesso- munication (NFC) tut sich Auf der Mailingliste hat NFtab- 3.13 seit Neuestem unter- ren setzen. Sie stecken bei- etwas: Der »pn544«-Treiber les-Entwickler Patrick McHar- stützt. Ein veränderter Block spielsweise im Tianhe-2, dem unterstützt nun das Secure dy die aktuelle Version mit der Layer beherrscht ein Multi- zurzeit schnellsten Supercom- , um NFC-Anwen- Nummer 0.099 versehen und queue-Verfahren R_kkg1&&b\ie\c% puter der Welt. dungen sicher auszuführen. den Code für testfähig und [b&Ycb$dh%g[]T und erreicht so Für ARMs Big-Little-Architek- Das soll Bezahlen über NFC geeignet für den privaten Ein- viele Millionen IOPS. Aller- tur gibt es einen Switch, um ermöglichen. satz erklärt. Zugleich kündigte dings wurde bislang erst der bei laufendem Betrieb Aufga- Das ist aber wie so oft nur die er für die nächste Version eine »virtioblk«-Treiber portiert, ben an zwei SMP-Systeme zu Spitze des Eisbergs. Weitere vollständige Kommandorefe- weitere sollen in den nächsten delegieren, wobei ein kleiner Neuerungen liefern wie im- renz sowie eine ausführliche Releases folgen. Hypervisor die Virtualisie- mer die Kernelversteher von Dokumentation an. Bei AMD-Radeon-Karten un- rungsfunktionen der Cortex- den Kernelnewbies R_kkg1&& Mit fast einer Million I/ O-Ope- terstützt der neue Kernel CPUs verwendet. b\ie\ce\nY`\j%fi^&C`eloV*%(*T. Wer rationen pro Sekunde (IOPS) standardmäßig Powermanage- TCP Fast Open erspart TCP- den Kern selbst übersetzen übertreffen aktuelle SSDs den ment für verschiedene Asics Verbindungen einen Round- möchte, findet den Quellcode entsprechenden Wert tradi- (BTC, SI, Evergreen, R7XX) trip und beschleunigt so die auf R]kg1&&b\ie\c%fi^T. ■ / 8bkl\cc nnn%c`elo$dX^Xq`e%[\ E\nj '+&)'(+ ern. Weitere Informationen kurzen Sprachbefehlen steu- Video undBildergalerie mit inklusive Fernsehen, Musik, nen eineMedienanwendung perbehinderte Menschenkön- zwei Videos:Alteoderkör- möglicht, zeigtdasProjekt in Was dieSprachsteuerung er- Listens-Installation. Mobilgerät mitderSimon- Passwort verbindet sichdas IP-Adresse, Usernameund zu haben.NachEingabevon rund 3Euro beiGooglePlay nicht kostenlos, sondernfür mon Listens. SimonMicro ist Source- los-Mikrofon fürdieOpen- das SmartphonezumDraht- Eine Android-App macht beitung Writer speichert jetzt Apple Keynote. Die Textverar- filter gibtesfürAbiword und ten umgehen.NeueImport- OOXML) undRTF-Dokumen- mit Docx-Dateien(Microsoft kann dasfreie Office besser In SachenInteroperabilität prozessor vornimmt. über OpenCLaufdemGrafik- Software ihre Berechnungen klappt nunschneller, weil die und komplexer Xlsx-Tabellen der Importumfangreicher großer Datenmengenund Besonders dasVerarbeiten tion Calcgründlichüberholt. wickler dieTabellenkalkula- Für dieRelease habenEnt- Fremdformate importieren. mance undkann nochmehr Verbesserungen derPerfor- suite erfuhrunteranderem veröffentlicht. Diefreie Büro- Version 4.2von Libre Office Die DocumentFoundation hat JgiXZ_jk\l\ile^j$8ggd`kJ`dfeC`jk\ej C`Yi\F]]`Z\+%)`jk]\ik`^ Sprachsteuerung Si-

über dieSoftware unddas arbeitet, fürPoweruser gibt der Benutzeroberfläche über- ler 70 Prozent derDialogboxen bfe]`^li`\ik% 8e^XY\eXcj;iX_kcfj$D`bif]fe ;`\8ggJ`dfeD`Zif`jkd`kn\e`^\e j`dfe$c`jk\ej%fi^T Projekt gibtesunter C`Yi\F]]`Z\+%)Y\jZ_c\le`^k9\i\Z_ele^\e`e:XcZ[liZ_[\e<` Daneben habendieEntwick- Word-Format DOT. Vorlagen auchimMicrosoft- . R_kkg1&& ■ Sandboxing sowie dieDurch- verschlüsselung, Secure Boot, spielsweise VPN,Festplatten- mehreren Kategorien, bei- Sicherheit derSysteme in Die Britenuntersuchten die Google Chrome OS26. 6 undMacOSX10.8 sowie RT, Android 4.2,ApplesI-OS Windows 7und8,Windows systemen, dazugehörten Desktop- undMobil-Betriebs- Das Testfeld bestandauself tes Produkt hervorgegangen. 12.04LTS alssichers- Sicherheitsbehörde CESGist teme durch diebritischeIT- schiedener Client-Betriebssys- Aus einerUntersuchung ver- Barrierefreiheit, inderderzei- IAccessible2-Feature fürdie Source-Suite unterstützt das Windows-Ausgabe derOpen- Expertenkonfiguration. Die es zudemeineOberflächezur und UpdatePolicy. setzung von SecurityPolicy 9i`k`jZ_\9\_i[\1LYleklXdj`Z_\ijk\e ejXkq[\i>GL% Canonicals Sicht. wertet dieUntersuchung aus nnn%Z\j^%^fm%lbT auf derCESG-Website tionen auserster Handgibtes den. Ausführlichere Informa- Boot nochbesserabzuschnei- der Unterstützung von Secure Version 14.04LTS aufgrund hofft darauf, mitderUbuntu- Ubuntu-Hersteller Phone 8auf. Schwächen wiesWindows feld. Diemeistenkritischen das sicherste System imTest- LTS zeigtesichinsgesamtals erfüllen, dochUbuntu12.04 tischen Behörden vollständig sprüche fürdenEinsatzinbri- separate Dateien. GUI sowie dieHilfegibtesals deutsche Lokalisierung des Screenshots vorstellt. Die von Libre Office4.2 samt ge Seite, welche dieFeatures führt aufeinedeutschsprachi- Eintrag »Neuerungen4.2« reit. DerKlickaufdenMenü- [\%c`Yi\f]]`Z\%fi^&[fnecfX[&TX zumDownload unter Linux, Windows undMacOS zenziert, Version 4.2stehtfür Libre OfficeistunterLGPL li- mentation aufDoxygen. lung dertechnischenDoku- totem Codesowie dieUmstel- sprachigen Kommentaren und das Entfernenvon deutsch- eine bessere Testabdeckung, neuen Version. Dazugehören nem BlogdieFortschritte der schreibt MichaelMeeksinsei- Aus Entwicklersicht be- PDF auf Kein System konnte alleAn- noch alsexperimentell. tigen Release giltesallerdings R_kkg1&&lYlekl%ZfdT , eineigenes R_kkg1&& R_kkg1&& be- be- ■ ■ '+&)'(+ 8bkl\cc MXcm\m\ijZ_\ebkJg`\c\Xe`k_lYle[KiXm`j:@Xe E\nj Nicht uneigennützig, aber auch Ubuntu-Entwickler die- Der Anbieter Coverity hat sei- publikumswirksam mit einem großzügiger als viele andere ses Angebot. nen kostenlosen Code-Scan- Coverity-Badge auf ihrer Git- Firmen bietet Valve - Valve dürfte dabei Hinter- service für Open-Source-Pro- hub-Seite signalisiert. und Ubuntu-Entwicklern die gedanken hegen, denn das jekte nun auch an die Dienste Coveritys statische Code- 0 Spiele aus eigener Herstellung Wohlwollen der Entwickler Github und Travis CI ange- Analyse für C/C++ und Ja- an. Die frohe Botschaft eröff- schadet sicher nicht, wenn die bunden. Mit der neuen Inte- va nutzen inzwischen rund nete Neil McGovern, dessen eigene Spielekonsole Steam gration sollen auch Projekte, 1200 Open-Source-Projekte, auf Debian-Basis läuft. Doch Firma Collabora mit Valve ko- die keine eigene Infrastruktur darunter der Linux-Kernel, nnn%c`elo$dX^Xq`e%[\ operiert, seinen Mitentwick- zeigen sich andere Firmen, betreiben, in den Genuss der der Apache-Webserver und lern zunächst auf der Debian- die Debian und Ubuntu im statischen Code-Analyse kom- der Python-Interpreter. Jedes Mailingliste. großen Stil einsetzen, meist men. Sie können ihren Code Jahr veröffentlicht das Un- Demnach erhalten Debian- nicht so großzügig. über den Repository-Hoster ternehmen zudem den Open Entwickler Zugang zu allen Die Gruppe der Beschenkten Github oder den Continuous- Source Integrity Report, der vergangenen und zukünfti- ist indes überschaubar: Nicht Integration-Anbieter Travis Auskunft über den Zustand gen Spielen, die Valve produ- jeder, der mal ein Patch gelie- CI zur Untersuchung einrei- der gescannten Open-Source- ziert – und das sind nicht die fert hat, ist automatisch ein chen. Projekte gibt. schlechtesten. Zur Auswahl Debian- oder Ubuntu-Ent- Zu den ersten Projekten, die Weitere Informationen sowie zählen etwa Half Live, Left 4 wickler. Dieser Status setzt von der neuen Schnittstelle kostenlose Anmeldemöglich- Dead, Dota und Portal. Gute einiges an Vorarbeit voraus Gebrauch machen, zählt die keiten für Projekte gibt es un- zwei Wochen später erhielten und folgt festen Regeln. ■ Git-Bibliothek Libgit2, die das ter R_kkgj1&&jZXe%Zfm\i`kp%ZfdT. ■

8eq\`^\ (' 8bkl\cc nnn%c`elo$dX^Xq`e%[\ E\nj '+&)'(+ seine Fi Das UnternehmenEndianhat ferenz derEntwicklungsarbeit land. Dasverdeutlicht diePrä- geliefert undnur46fürWay- 425 CommitsfürWeston ab- rend desRelease-Prozesses Die 40Entwicklerhabenwäh- Compositor Weston betreffen. und Weston denReferenz- der Grafikprotokolle Wayland derungen fürdieVersion 1.4 dass etwa 90Prozent derÄn- Eine aktuelleStatistikzeigt, HTTPS-Filter sowie einen zierte Ausgabe bringteinen kostenlose undGPLv2-lizen- Edition veröffentlicht. Die Version 3.0alsCommunity- bestehen imWesentlichen aus Die Änderungen anWayland recht stabillaufe. der Wayland mittlerweile von KristianHøgsberg, nach und unterstreicht die Aussage O(($EXZ_]fc^\i1NXpcXe[le[N\jkfe`eM\ij`fe(%+ GCm) R_kkg1&&nnn%j\fgXe\c%`eT Lkikkl^Y\\\efgk`d \`e\ Y`\k\k $Lek\ijk•kqle^# E\l1 SMTP-Pr Protokoll istimWayland-Repo Bugfixes. DasSubsurfaces- ne Benutzerverwaltung sowie den TUN-Modusundhatei- 2. OpenVPNunterstützt nun rithmen sowie Ike inVersion selungs- undHashing-Algo- gibt eszusätzlicheVerschlüs- bares Modul, was esWeston Der GL-Renderer isteinlad- den eingebettetenCompositor. und saubere Dekorationen für chen fürXwayland-Windows zum BeispielFensterknöpf- lichen Plänen.Sogibtesnun ziemlich genaudenursprüng- entsprechen lautHøgsberg Die ÄnderungenanWeston schützen. kaputte oderbösartigeClients sollen denSHM-Puffergegen Protokoll. Hilfsfunktionen so demoffiziellenWayland- gelandet undempfiehltsich e f[ `[ l\e ]fik^\$ \`e ele j`e[ 9fi[ 8e  oxy mit.BeiIPsec E\l1 ;XjJpjk\d`jk C`q\eq1 Zfe]`^½Xcj ;`\Jf]k$ [`\G@;j i\eJkX$ `Z_b\`k# `e\]•i `jk[`\ E\l1 `\ik\ >GC ik\e j`e \e% DC  €^e\ XbXY`_% iZk \8de `Bd`X`e qn\`d BfdY`eXk`fe [`\ 8[d`e [\i ;i•Zbk XYYi`Z_k% KXjbj _€e^\e[\ KXjk\ebfdY`eXk`feRJki^T"R8ckT"RL@\`ei`Z_k\k%_fjk`e^\`ele[lek\ijk•kqk=@KJ =c\o`Yc\@dX^\KiXejgfikJpj JkXe[Xi[[Xk\e]fidXk`e[\i8jkifefd`\%Ql[\dYi`e^kCld`eXeZ\? jk\cc\emfe?;I$=fkfj_`c]k% qldM\iXiY\`k\emfeIXn$;Xk\`\e%M`\c\8en\e[le^\en`\C`Yi\F] Bi`kX#9c\e[\i#;`Xle[=i`kq`e^nli[\eXbklXc`j`\ik#[XjY\ki` ]i\`\Jf]knXi\ l`XZ?;I Cld`eXeZ\ Ki\`Y\i]•iEm`[`X$le[8K@&8D;$>iX]`bbXik\ejfn`\?G$;ilZb\i% ZfdT Ql[\eE\l\ile^\e[\iJf]knXi\q€_ck[XjGif^iXdd8iXe[i#d`k zumDownload bereit, )'(+$'($)+1DfY`c\C\ield^\Yle^`e=fid\`e\jC`m\$C`elo#[Xj R_kkg1&&nnn%\e[`Xe% R_kkg1&&nnn%`d\[`Xj%Z_&gifa\bk\&c\iejk`Zb&T %%1 ck]i•\^\]e\ fkX\[\ \d GCm) iXg\\ R_kkg1&& ]`Z\#

;I Xc

 ■ ■

'+&)'(+ 8bkl\cc

QX_c\eKi\e[j QX_c\eKi\e[j

()

Mf@G1>\d\`ejZ_X]k€e[\ik[`\C`q\eq nnn%c`elo$dX^Xq`e%[\ Für das Telefonanlagen-Pro- zenz. Die immer noch popu- möglich sei. Zeitgleich wächst ten Jahren als Gemeinschaft- jekt „Gemeinschaft“ beginnt lären Versionen 3 und 4 un- das Coreteam personell, und 3-Maintainer gezeigt, dass er das neue Jahr mit ein paar terliegen indes weiterhin der Sascha Daniels wird neuer die beste Besetzung für diese Veränderungen. Für die An- GPL, weil eine Umstellung auf Chef. Nach Aussage seines Position sei. wender am wichtigsten ist die MIT-Lizenz faktisch un- Vorgängers hat er in den letz- Projektgründer Wintermeyer sicherlich, dass die Macher will und kann sich nur lang- die Lizenz für die Version 5 sam aus dem Coreteam zu- von GPL auf MIT umstellen. rückziehen und wird wei- Zusätzlich verabschiedet sich terhin in der Gemeinschaft- nach knapp zehn Jahren der 5-Community aktiv bleiben, Projektgründer und Coreteam- zumal seine Firma Amooma Leiter Stefan Wintermeyer – die Anlagen-Bestandskunden wenn auch auf Raten. weiterhin betreut. Technisch Laut Wintermeyer erweise stehen für 2014 keine Umbrü- sich die GPL für viele Firmen, che an, was für eine Telefon- die Gemeinschaft verändert anlagensoftware kein Nachteil verkaufen wollen, als proble- sein muss. Zusätzliche Tele- matisch. Darum erfolge nun fonmodelle fürs Provisioning der Wechsel hin zur MIT-Li- ;XjK\c\]feXecX^\e$Gifa\bk>\d\`ejZ_X]kn\Z_j\ckqliD@K$C`q\eq% seien aber zu erwarten. ■

:\ekfjle[I\[?Xkbffg\i`\i\e

Das amerikanische Open- geht es den Partnern auch um Seit fast drei Jahren bereitet sich, unterstützt von Jobs Source-Unternehmen Red eine Zusammenarbeit jenseits das KDE-Projekt seine Bib- oder Queues, um die Thread- Hat und die Macher der Red- der Betriebssystem-Plattform, liotheken für Version 5 der Verwaltung. Eine Liste der Hat-basierten Community- zum Beispiel beim Cloud Desktopumgebung vor. Nun vorhandenen Module liefert Distribution Centos haben Computing mit Open Stack. ist eine erste Preview-Vari- KDEs Community-Wiki R_kkg1&& angekündigt künftig enger Red Hat will dem Centos- ante von KDE Frameworks 5 Zfddle`kp%b[\%fi^T. zusammenzuarbeiten. Red Projekt beim Ausbau seines verfügbar. Die insgesamt 57 Die aktuelle Preview 4.95.0 Hat möchte die Centos-Com- Buildsystems helfen und es Module erweitern das C++- steht im Quelltext (unter der munity besser integrieren, mit weiteren Ressourcen un- Toolkit Qt 5 und stellen zum LGPLv2.1) und in Form von während Red Hat Enterprise terstützen. Auch soll ein Git- Beispiel Funktionen für Me- Binärpaketen für , Linux (RHEL) als Enterprise- Repository die Zusammenar- nüs, Dateizugriffe sowie eine Open Suse und Arch Linux Angebot bestehen bleibt. Das beit erleichtern. Rechtschreibprüfung für KDE- zum Download bereit. Anfang Fedora-Projekt soll auch in Centos begleitet die noch Anwendungen bereit. April 2014 soll es nach den Zukunft für das Ausprobieren junge Initiative mit einem Die einzelnen Komponenten aktuellen Plänen eine Beta innovativer Technologien zu- neuen Governing Board, das sind unterschiedlich ausge- geben, im Juni erwarten die ständig sein. sich aus dem bestehenden reift, als am weitesten fort- Macher schließlich die end- Wie Karanbir Singh vom Centos-Coreteam sowie wei- geschritten betrachten die gültige Release. Hinweise für Centos-Projekt Anfang Ja- teren Mitgliedern aus der Entwickler Karchive zur Da- interessierte Tester und Ent- nuar 2014 auf der Projektseite Centos-Community und von teikomprimierung und Thread wickler finden sich auf Dot R_kkg1&&nnn%Z\ekfj%fi^T schrieb, Red Hat zusammensetzt. ■ Weaver. Letzteres kümmert KDE R_kkg1&&[fk%b[\%fi^T. ■ LYlZfe)'(+jlZ_kK_\d\ele[9\`ki€^\

Vom 17. bis 19. Oktober 2014 Anschließend können sich bis feiert die Benutzerkonferenz 15. August Referenten und Ubucon das 10-jährige Be- Gesprächsleiter für Vorträge, stehen von Canonicals Dis- Workshops und Diskussions- tribution. Bis zum 31. Juli runden melden. Dabei dient nehmen die Organisatoren die Themenwunschliste ledig- nun Vorschläge für Vorträge lich als Anregung, es besteht entgegen. kein Zwang, sich an diese Aus den Wünschen der Liste zu halten, auch eigene Community entsteht eine Liste Vorschläge sind willkommen. mit gefragten Vortragsthemen. Weitere Details und eine Kon- Dabei schreiben die Veranstal- taktmöglichkeit finden sich ter, die Besucher sollten nicht im Call-for-Papers-Bereich auf schüchtern sein: „Kaum eine der Webseite. Idee kann zu abstrus sein, als Die Ubucon 2014 wird in der dass sie nicht in das Konzept niedersächsischen Gemeinde passt. Natürlich sollte das ge- Katlenburg-Lindau stattfin- wünschte Thema am besten den. Alle Infos zur Veran- mit Ubuntu, aber zumindest staltung und über die Mög- mit Linux und/ oder Open lichkeit, mitzuhelfen, gibt es Source zu tun haben.“ unter R_kkg1&&lYlZfe%[\&)'(+&T. ■

:ldlcljËC`eloXl];\cc$Jn`kZ_\j

Durch ein Vertriebsabkom- Das 2010 gegründete kalifor- men mit Cumulus Networks nische Unternehmen Cumu- bietet Dell auf seiner Netz- lus ist auf Linux-Systeme für werkhardware nun optional Netzwerk-Switches speziali- deren Linux-basierte Software siert. Sein Linux beruht auf an. Laut Dell soll die Tren- der freien Distribution Debian nung zwischen Hardware und und läuft auf 1G/ 10G/ 40G- Software den Unternehmen Hardware. Es bietet Layer-3- mehr Auswahl und Flexibi- Features wie Open Shortest lität bringen, beispielsweise Path First (OSPF), Border- sollen sie künftig die geeig- Gateway-Protokoll (BGP) und netste Software-Ausstattung Layer-2-Features wie VLAN- für ihr Einsatzszenario wäh- Trunks oder IPv6 Router Ad- len können. vertisement. Darüber hinaus ermögliche Es unterstützt VxLAN und in- der Austausch der Software tegriert sich mit VMware NSX auf Netzwerkgeräten schnel- oder Open Stack. Hinzu kom- lere Innovationszyklen. In men Funktionen für Manage- einem ersten Schritt sollen ment, QoS, Monitoring (mit die Top-of-Rack-Switches Dell Collectd, Ganglia, Net-SNMP, Networking S6000 und S4810 Nagios/ Icinga, Graphite) und wahlweise mit dem Linux- Sicherheit sowie zur Automa- Netzwerkbetriebssystem von tion (mit Puppet, Chef, Cfen- Cumulus Networks erhältlich gine). Details und eine Evalu- sein, und zwar noch im ersten ationsversion auf Anfrage gibt Quartal 2014. es auf der Produktseite. ■ '+&)'(+ 8bkl\cc ;fZb\i\i_€ck=`eXeqjgi`kq\mfe(,D`cc`fe\eLJ$;fccXi

Die Container-Virtualisierer auf dem Schirm großer Firmen Open-Source-Plattform steht. Die Docker-Macher möch-

QX_c\eKi\e[j von Docker haben für die wie Ebay und Yandex. Zudem Die Version 1.0 von Docker ten zudem die Community- Weiterentwicklung des gleich- habe man Docker in Tools wie ist das nächste Ziel der Ent- Plattform weiterentwickeln, (+ namigen Produkts in einer Chef und Puppet und Platt- wickler. Sie wollen zusätzli- die Infrastruktur rund um zweiten Finanzierungsrunde formen wie Open Stack und che Plattformen erschließen Docker verbessern und die 15 Millionen US-Dollar von Google Compute Engine und und die Fähigkeiten von Do- Herkunft öffentlicher Contai- verschiedenen Venture-Kapi- Rackspace integriert. cker nach den Wünschen der ner transparenter gestalten. tal-Firmen eingestrichen. Das Community erweitern. Auf Nicht zuletzt soll das Geld in nnn%c`elo$dX^Xq`e%[\ Mit der Finanzierung im Rü- Geld feiern die Gründer der cken wollen die Entwickler der To-do-Liste steht auch der den kommerziellen Support Firma in ihrem Blog als An- das Docker-Projekt auf die Ausbau in Sachen Dokumen- und die Hosting-Plattform für erkennung ihrer Arbeit: Mitt- „nächste Ebene“ heben. Geld tation und Training, Konferen- zahlende Kunden fließen. So lerweile gebe es 5000 Anwen- soll in verschiedene Berei- zen und Treffen sollen einen hofft das Projekt, seine Open- dungen in Form von Docker- che fließen, wobei an erster einfachen Zugang für neue Source-Bereiche nachhaltig Containern, das Konzept sei Stelle die Entwicklung der Entwickler ermöglichen. finanzieren zu können. ■

C`eloZfele[GcldY\ij:fe]\i\eZ\`e;•jj\c[fi]

Die Linuxcon Europe 2014 fin- Der Call for Papers für das Im selben Abwasch hat die genen Projekt zum Software det vom 13. bis 15. Oktober von der or- Foundation den Plan für ihre Defined Networking widmete. in Düsseldorf statt, erstmals ganisierte Event läuft bis zum weiteren Veranstaltungen im Die amerikanische Linuxcon zusammen mit der Linux 11. Juli. Themen sind Kernel- Jahr 2014 veröffentlicht. Ein findet vom 20. bis 22 August Plumbers Conference. Eben- entwicklung, Virtualisierung, Novum war der Open Daylight 2014 in Chicago statt, zusam- falls vor Ort sind die Embed- Cloud Computing, Dateisys- Summit am 4. und 5. Februar men mit dem Kernel Summit, ded Linux Conference sowie teme, Big Data sowie Software 2014 im kalifornischen Santa der geschlossenen Arbeitssit- das KVM-Forum. Defined Networking. Clara, der sich dem hausei- zung der Linux-Entwickler. ■

J_fkn\ccXcjGXek_\feG_fkfj^\]fibk

Ein komfortabler Bildbetrach- Da die Shotwell-Macher aller- müsste die weitere Entwick- des Projekts laufen, was für ter für Linux heißt Shotwell, dings der Gnome Developer lung von Shotwell über Gno- die Elementary-OS-Entwickler entwickelt hat ihn seit 2009 Community beigetreten seien, mes Git und den Bugtracker offenbar wenig attraktiv ist. die Open-Source-Firma Yorba. Man habe sich daher mit Nel- Doch diese kümmert sich in- son geeinigt, Shotwell unter zwischen vornehmlich um dem Namen Pantheon Photos ein anderes Projekt, den E- zu forken und die Entwick- Mail-Client Geary, und hat lung auf die -Platt- daher einem Fork durch die form zu verlagern. Entwickler des Elementary- Yorba will Shotwell zwar spä- Projekts zugestimmt. ter selbst weiterentwickeln, Jim Nelson, der Chef von aber Jim Nelson verspricht, Yorba, sei mit der Übernahme den Pantheon-Entwicklern einverstanden, erklärt Ele- mit Rat und Tat zur Seite zu mentary-OS-Entwickler Da- stehen. Die erhoffen sich von niel Foré auf der Elementary- Pantheon Photos einen erst- Mailingliste, denn Yorba sei klassigen Bildbetrachter für derzeit komplett mit der Ar- den in Elementary OS einge- beit an Geary ausgelastet. J_fkn\ccnli[\^\]fibkle[_\`keleGXek_\feG_fkfj% setzten Pantheon-Desktop. ■

'+&)'(+ 8bkl\cc >iX]`jZ_\FY\i]c€Z_\]•iC`q\eqZ_\Zbd`kJG;O

Triplecheck ist eine freie Soft- bringen sie Ordnung in den

QX_c\eKi\e[j ware mit grafischer Oberflä- Lizenzdschungel. Triplecheck, che, die künftig der Analyse das unter der European Pub- (- von Software Compliances lic License (EUPL) steht, im- dienen soll. Sie liest und er- plementiert die Spezifikation stellt SPDX-Dokumente, ihr nun in einer Software mit gra- Entwickler hat sie auf der Fos- fischer Oberfläche. dem im Februar vorgestellt. Triplecheck ist in ge- nnn%c`elo$dX^Xq`e%[\ Sie soll großen Softwarepro- schrieben, läuft plattform- jekten beim Verwalten freier ;\iGifkfkpgmfeKi`gc\Z_\Zb1<`e>L@m\inXck\kJG;O$;fbld\ek\% übergreifend und benötigt Lizenzen helfen. keine Installation. Der Quell- Mit ihren Lizenzen möchten freien Bibliotheken verwen- gen. Erdacht auf dem Linux code von Version 0.2 steht seit Open-Source-Projekte meist den, geht so mitunter der Collaboration Summit 2010 der Fosdem online. sicherstellen, dass ihr Code Überblick verloren, welche und unterstützt von der Linux Das Tool zeigt, für welche möglichst vielen Menschen Lizenzen im Einsatz sind. Das Foundation soll die SPDX-Spe- Quellcodedateien überhaupt und der Gemeinschaft nützt dürfte der Rechtsabteilung zifikation (aktuell ist Version Lizenzinformationen vorlie- und – falls das Copyleft-Prin- Magenbeschwerden verursa- 1.2) das Verwalten der Lizen- gen und welche Komponen- zip greift – Änderungen am chen, denn Copyleft-Lizenzen zen in Großprojekten verein- ten von Drittanbietern zum Code wieder allen zur Verfü- sind nicht in jedem Einsatzbe- fachen. Einsatz kommen, auf die die gung stehen. reich erwünscht. Indem Entwickler die freien Software zugreift, etwa Icons Nun existieren jedoch etliche Hier soll künftig Triplecheck Lizenzen, die auf einer vorde- und Bibliotheken. Daneben freie Lizenzen, die sich auf R_kkg1&&ki`gc\Z_\Zb%[\T gepaart finierten Liste stehen, maschi- lässt Triplecheck seine An- Tausende von Projekten ver- mit der SPDX-Spezifikation nenlesbar in Quellcode ein- wender SPDX-Dokumente mit teilen. In Großprojekten, die (Software Package Data Ex- betten und durch bestimmte Hilfe eines grafischen Editors schnell mal Hunderte von change) in die Bresche sprin- Tags und Formate erweitern, bearbeiten. ■

Bfebi\k\Gc€e\]•i=\[fiXJ\im\i B\`eLYleklG_fe\mfi)'(,

Nach Version 20 wollen die Daneben unterscheidet die Ar- In einer „Ask Me Anything“- das Ubuntu-Smartphone abge- Fedora-Entwickler ihre Distri- beitsgruppe fünf Zielgruppen Session (IAMA) dürfen Red- schlossen zu haben, ohne aber bution in mehreren Varianten für den Server: Der MacGy- dit-Leser willige Prominente Details preiszugeben. Seine anbieten. Die Anforderungen ver-Admin muss mit geringen mit Fragen löchern. Auch rechte Hand – Bacon – gab für eine Server-Ausgabe neh- Ressourcen auskommen, der Ubuntus Community-Mana- nun zu Protokoll, dass klei- men nun Gestalt an, denn die Devops-Techie möchte rasch ger gab dort be- nere OEMs womöglich schon im Oktober 2013 gegründete Anwendungen ausliefern, der reitwillig Auskunft. Seine Ses- vor 2015 Ubuntu-Touch-Geräte Arbeitsgruppe hat den letzten traditionelle Entwickler erwar- sion lief Mitte Januar 2014, ausliefern könnten, allerdings Entwurf des Product Require- tet stabile APIs und ABIs, der und er ließ auch das Thema beschränkt auf einzelne Re- ments Document (PRD) on- Junior-Admin braucht einen Ubuntu Phone nicht aus. Es gionen der Welt. Das könnte line gestellt. einfachen Mechanismen zur würde ihn wundern, so Ba- darauf hinweisen, dass die Der Server soll demnach als Serververwaltung. Nicht zu- con, wenn sich vor 2015 ein Suche nach einem größeren Community-Plattform für letzt soll die Server-Variante großer Anbieter finden würde, Verkäufer fürs Ubuntu Phone Administratoren dienen, die auch Entscheidungsträger der das Ubuntu Phone auf den noch andauert. Dienste mit der neusten Tech- mit Open-Source-Interesse Markt bringe. Zumindest verschafft der neu- nologie installieren möch- ansprechen. Das kollidiert zwar nicht mit erliche Aufschub Canonicals ten. Er soll sowohl einzelne Die Arbeitsgruppe bittet nun der Aussage seines Chefs Entwicklern eine Atempause. Dienste abdecken, sich aber auf der Mailingliste um Feed- Mark Shuttleworth, relativiert Diese können sie nutzen, um auch für den Betrieb eines back, das Fedora-Wiki liefert sie aber ein wenig. Ubuntus den Displaymanager zu ganzen Rechenzentrums und unter dem Stichwort „Fedora. Gründer sprach einen Monat stabilisieren und das relativ den Aufbau einer privaten next“ weitere Informationen zuvor noch davon, einen Ver- überschaubare Angebot an Cloud eignen. für Interessierte. ■ trag mit einem Hersteller für Apps auszubauen. ■

'+&)'(+ 8bkl\cc JZ_n\`q\iFg\eJfliZ\;`i\Zkfipe`ddkefZ_8ljc€e[\iXl]

Das Open Source Directory Auch funktional habe man Als nächstes Projekt stehen tung des Verzeichnisses in die

QX_c\eKi\e[j R_kkg1&&nnn%fjj[`i\Zkfip%Z_T der das OSS Directory verbessert, die Verbesserung der Mehr- französischsprachige Schweiz Swiss Open User Group (kurz schreibt die User Group CH/ sprachigkeit und die Auswei- (Romandie) ins Haus. ■ (/ CH/ Open) verzeichnet seit Open in einer Pressemittei- Kurzem auch mehr als 100 lung. Neu seien beispiels- deutsche Firmen. 257 Firmen, weise Anwendungsbeispiele, 347 Open-Source-Produkte mit deren Hilfe die Nutzer der

nnn%c`elo$dX^Xq`e%[\ und 260 OSS-Referenzen Webseite alle OSS-Referenzen umfasste das OSS Directory einer Behörde sehen. Die Fir- von CH/ Open zu Redaktions- men lassen sich nach Land schluss. Darin enthalten sind und Ort filtern, wobei die nun die Firmenprofile aller Datenbank nun mehrere Nie- Mitglieder der Open Source derlassungen erfasst. Auch Business Alliance (OSBA). Sie Stelleninserate für Jobs rund sind speziell gekennzeichnet um das Thema Freie Software und können bis zu zehn ei- sind in der Rubrik „OSS Jobs“ ;XjJZ_n\`q\iFJJ;`i\Zkfip\ogXe[`\ikle[q\`^k`e[\iJlZ_\eleXlZ_[\lk$ gene Produkte eintragen. möglich. jZ_\=`id\eXe%>\_fc]\e[XY\`_Xk[`\FJ98%

9i`k`jZ_\iD`e`jk\in`ccd\_iFg\eJfliZ\ MDnXi\bXl]k8`inXkZ_]•i(#(*D`cc`Xi[\e

Francis Maude, der britische Der Einsatz offener Standards Umgerechnet 1,13 Milliar- mobilen Arbeitskräften durch- Minister für Kabinettsange- werde nicht nur die Ministe- den Euro (1,54 Milliarden zustarten, ohne die Sicher- legenheiten, möchte kleinere rien aus ihrem proprietären US-Dollar) legt VMware auf heit zu gefährden“, schreibt und mittlere Unternehmen Lock-in befreien, sondern den Tisch, um sich Airwatch Patrick Gelsinger, CEO von (KMU) stärken, indem er auch die Tür für alternative einzuverleiben. Der Virtuali- VMware, in der offiziellen dafür plädiert, proprietären Software-Anbieter aufsto- sierer hofft darauf, mit Hilfe Ankündigung. Lösungen wie MS Office den ßen, so offenbar das Kalkül seines Neuerwerbs besser im Wenig überraschend gibt auch Rücken zu kehren. Beachtli- des Politikers. Im Endeffekt Cloud- und Mobilbereich Fuß Alan Dabbiere, Chairman von che 200 Millionen Pfund an möchte Maude mit seiner zu fassen. Airwatch, seiner Freude Aus- Steuergeldern seien seit 2010 Open-Source-Strategie wahr- Airwatch kümmert sich im druck: „Indem wir uns einem allein für Microsofts Office- scheinlich auch die Anzahl Wesentlichen um die Verwal- bewährten Innovator wie Suite in die Kassen des Red- jener KMU erhöhen, die Auf- tung mobiler Geräte, vor al- VMware anschließen, erhal- monder Konzerns geflossen, träge im öffentlichen Sektor lem unter Sicherheitsgesichts- ten wir die Gelegenheit, un- kritisiert der Minister. übernehmen. punkten. Das ist zunehmend sere marktführenden Lösun- Seine Lösung laut einem Ein Beispiel, das seine ein Thema, denn im Rahmen gen einem breiteren Spektrum „Guardian“-Bericht: Wechsel Wunsch vorstellung deutlich von Bring Your Own Device von Kunden und Partnern an- auf Open-Source-Software. machen soll, gab der Minister (BYOD) melden sich immer zubieten und ihnen zu helfen, Dazu zählt er neben Open auch gleich. So habe ihm ein mehr Mitarbeiter mit ihren sich optimal auf die Mobile- Office allerdings auch den neuer Hostingvertrag gezeigt, mobilen Geräten im Firmen- Cloud-Welt einzustellen.“ Onlinedienst Google Docs, dass die Regierung auf diesem netz an. Admins treibt diese Bei der Gelegenheit nannte der im klassischen Sinne we- Weg enorm viel Geld sparen Entwicklung insbesondere VMware auch gleich den Um- der frei noch offen ist, son- könne. Eine kleinere Firma vor dem Hintergrund der Si- satz für das vierte Quartal dern lediglich kostenlos. Mit habe den neu ausgeschriebe- cherheit allerdings den Angst- 2013: Demnach machte das diesem Schritt ließe sich das nen Auftrag für 60 000 Pfund schweiß auf die Stirn. Unternehmen einen Umsatz Oligopol der IT-Ausrüster, das erledigt, während der große „Mit diesem Erwerb wird von 1,48 Milliarden US-Dollar aus „wenigen großen Firmen“ Anbieter für die Leistung etwa VMware seine Computing- (etwa 1,1 Milliarden Euro) bestehe, brechen, gab der Mi- 4 Millionen verlangte. Das sei Angebote für Enduser um ein und steigerte ihn damit um nister auf einer Veranstaltung natürlich ein Extrembeispiel, grundlegendes Element erwei- 20 Prozent im Vergleich zum zur Präsentation neuer On- er hoffe aber, dem Steuerzah- tern, was es unseren Kunden vierten Quartal des Vorjahres. linedienste zu Protokoll. ler Geld zu sparen. ■ ermöglichen wird, mit ihren (jk/kki/mhu/mfe) ■

)' 8bkl\cc nnn%c`elo$dX^Xq`e%[\ B\ie\c$E\nj '+&)'(+ QXZbj Antti Heikkinenvor, Linuxin renfried mitdemPseudonym ren. ImJanuarschlugein Stö- der Kernel-Mailingliste füh- teressanten Diskussionen auf genannten Trolls kann zuin- Auch dieNachrichteinesso Mail gehtAndyaberaufVik- schlimmer.“ Ineinerweiteren schaffen. Eswird sogarimmer für normaleProgramme zu ter Versuch, eineSchnittstelle Cgroups einvölliggescheiter- „Meiner Meinungnachsind dy Lutomirski ein,erschrieb: an. DochdaschaltetesichAn- zu verwenden, nahmergerne Den Vorschlag, dafürCgroups ihr Erzeuger. gleichen Beschränkungenwie und unterliegendannden Kindprozesse erbendieseID als Sandbox-ID hinzuzufügen. der Sandbox einneuesFeld schlägt vor, jedemProzess in fen, umauszubrechen. Er Systemcall »setsid()«aufru- außerhalb erzeugenoderden immer nochneueProzesse me inderSandbox könnten Linux. Erschreibt, Program- Sandbox-Kommando von SE Viktor Porton kritisiertdas Der russischeEntwickler fügte hinzu:„Linux hattelän- entworfen. Einanderer Troll sei aufgeblähtundschlecht ben, denndasBetriebssystem der Sprache Perl neuzuschrei- D\_iJ`Z_\i_\`k]•ijJXe[Yfo`e^ <`eY`jjZ_\e^\kifcck1C`elo#9BCle[9J; B\ie\c$E\nj bäume kontrolliert undein statten, derganzeProzess- einem weiteren Modusaus- Andy möchteSubreaper mit Nachkommen sichbeenden. Vorfahren mit,wenn deren Prozessen undteiltentfernten folgt dieAbstammungvon )'(( ]`e[\edXeZ_\

Der Keyring-Maintainer Da- einen neuen Session-Keyring Der Intel-Entwickler Bruce an den Standard anpassen: B\ie\c$E\nj vid Howells hat neulich ein anzulegen. Stattdessen könne W. Allen hat der Mailingliste Der Anwender sollte für je- heikles Thema auf die Ta- er den User-Session-Keyring einen möglichen Bug in der den Teilstring die gewünschte gesordnung gebracht. Einige als Fallback verwenden. Nach »sscanf()«-Implementierung Byte-Länge angeben dürfen. )( Kerberos-Entwickler hatten Davids Ansicht würde diese des Kernels gemeldet. Die Um das zu erreichen, verwirft ihn gebeten, die Systemcalls Änderung die meisten Prozes- Funktion liest eine Zeichen- Jans Code die überzähligen »add_key(«) und »request_ se nicht stören. kette aus mehreren Teilen Zeichen der Eingabe. Doch key()« zu ändern, dazu einige und teilt sie in mehrere Stü- wirft er zu viel weg.

Da dies aber eine Änderung nnn%c`elo$dX^Xq`e%[\ Kernelfunktionen. des Kernel-ABI bedeuteten cke, deren Länge vorgegeben In seiner gründlichen Art ver- Insbesondere wünschten sie würde, fragte David vorsichtig ist. Bruce schrieb, während grub sich Al weiter im Code sich, dass die Bibliothek Lib- auf der Mailingliste an. Linus »sscanf()« aus der C-Biblio- von »sscanf()« und förderte krb5 bei einem Fehler den Torvalds antwortete, indem thek korrekt funktioniere, set- weitere Probleme zutage. Li- Session-Keyring als Fallback er die eiserne ABI-Regel des ze die Version im Kernel eines nus Torvalds fand die ganze benutzen kann. Existiert der Kernels zitierte: „Sollte je- der Ergebnisse auf 0. Sache viel zu kompliziert. Er Keyring aber nicht, legen Kinit mand die Änderung zu spüren Al Viro konnte das Problem schlug vor, dem Problem aus- und der Kernel derzeit auto- bekommen, machen wir sie bis zu einem Patch des Suse- zuweichen und Feldgrößen in matisch einen an, der jedoch wieder rückgängig. In ande- Entwicklers Jan Beulich vom »sscanf()« gar nicht zu unter- wieder verschwindet, wenn ren Worten: Änderungen sind Dezember 2012 zurückverfol- stützen – allerdings nur dann, Kinit sich beendet. nicht vollkommen tabu, aber gen. Der wollte das Verhalten wenn niemand sie benutzt. David erwog ein paar Lösun- sie dürfen keine anderen Pro- der Funktion eigentlich besser (Zack Brown/mhu) ■ gen, von denen einige den gramme stören.“ Kernel berührten, andere ihn Daneben schrieb Linus: „Ehr- 8eq\`^\ unangetastet lassen. Die Ker- lich gesagt kann ich das nicht be ros-Entwickler könnten bei- beurteilen. Deine Änderung spielsweise aus dem User- hört sich vernünftig an, aber space einen Session-Keyring wer weiß, was in den Distri- anlegen. So käme es nicht da- butionen vor sich geht. Wir zu, dass Kinit einen erzeugt müssen sehr vorsichtig sein – und man müsste nichts im und den Kerberos-Leuten Kernel ändern. klarmachen, dass wir die Än- Daneben fand er aber auch derung gnadenlos zurückneh- gute Argumente für Anpassun- men werden, wenn sie beste- gen im Kernel, denn der brau- henden Benutzern Probleme che ja nicht stillschweigend macht.“ ■

)%-%*+%oXd

Der finnische Entwickler Aa- es auf der Kernel-Homepage ro Koskinen hat sich besorgt bekanntgeben. erkundigt, ob es denn für den H. Peter Anvin merkte an, es Kernelzweig 2.6.34.x keine sei schon mehr als ein Jahr Updates mehr gebe. Dessen seit der letzten 2.6.34-Release Maintainer, Paul Gortmaker vergangen. Damit habe dieser von Wind River, hatte bereits Zweig fünf Monate Rückstand im Juli 2013 angekündigt, den gegenüber 2.6.32, und es fehl- Zweig in den Ruhestand zu ten einige Securitypatches. versetzen. Paul antwortete, er Daraufhin brachte Paul noch noch eine weitere Aus- eine Version heraus, mittler- gabe. Wenn das End of Life weile ist 2.6.34.15 aber als (EOL) erreicht sei, werde er EOL markiert. ■ )) 8bkl\cc nnn%c`elo$dX^Xq`e%[\ =fj[\d)'(+ '+&)'(* 9i•jj\c\i Planung vor einigeProbleme: den Besucherschonbeider ( im CaféDelirium( dem legendären BeerEvent versité deBruxelles traditionell anderLibre Uni- Source-Konferenz Europas Die vielleichtgrößteOpen- =i\`n`\[`\Le` Evangelisten. Desktop- oderGroupware- BSD-Mastermind unddem Kernelentwickler biszum Rang undNamenhat–vom was inderfreien Software etabliert, hiertrifftsichalles, erstmals veranstaltete Event Szene hatsichdas2001 mindest inderOpen-Source- Die Fosdem ^if\9\jlZ_\ijZ_XiXe#[Xilek\i\`e\eI\gfik\i[\jC`elo$DX^Xq ^\ijk€kk\]•iFg\e$JfliZ\$

'+&)'(* 8bkl\cc Verfügung und habe auch Lupe nehmen konnten. Auch sonst einige Vorteile. Über ein der Termin für die diesjährige Unix-Standardinterface samt Libre Office Conference steht API (ein Device unter »/ dev«) mittlerweile fest: Sie findet können Anwendungen über vom 2. bis 5. September in das Kdbus-System Informati- Bern statt. =fj[\d)'(+ onen und Daten austauschen (Interprozesskommunikation), 8lkfdfk`m\ )* wo bei sich sowohl effizienter Datentransfer im Gigabyte- Großen Raum auf der Fosdem Bereich wie auch Credenti- nahmen die Vorträge aus dem als und Meta-Informationen, Embedded-Bereich ein, allen nnn%c`elo$dX^Xq`e%[\ 8YY`c[le^(1(''''9`\i^`e^\e•Y\i[\eKi\j\eÆ^cXlYkdXe[\e@e]fidXk`f$ Timestamps und viele andere voran die Themen „Connec- e\e#[`\Xd\i€k\d`knX_cn\`j\@Gm-#;lXcJkXZbf[\i sion 4.2 herausgegeben R('T, tion mehr notwendig und die @Gm+gXiXcc\c6NXjXl]bfdd\iq`\cc\eD\jj\ef]kqldvi^\ie`jn`i[#jZ_\`ek die die Konferenzbesucher am Codebase ist deutlich kleiner“. b\`eGifYc\d#n\eej`Z_[`\i`Z_k`^\eFg\e$JfliZ\$C\lk\[ildb•dd\ie% Libre-Office-Stand unter die Nur noch ein Zehntel soll die

8YY`c[le^+1M`\cc\`Z_k[`\?€c]k\[\i@ek\i\jj`\ik\ejZ_X]]k\\j#\`e\eJ`kqgcXkq 8YY`c[le^,1¿[i`ee\eC\eeXikÆlek\ijk•kqkmfe>i\^BifX_$?XikdXele[BXp Y\`C\eeXikGf\kk\i`e^jMfikiX^•Y\iB[Yljql\i^Xkk\ie%;\iI\jk[i€e^k\j`Z_ J`\m\ijÆ[`\Mfik\`c\[\je\l\e@ek\igifq\jj$Bfddle`bXk`fe$D\Z_Xe`jdlj mfi[\iK•i#n€_i\e[¿ B[Yljmfijk\cck\% )+ 8bkl\cc nnn%c`elo$dX^Xq`e%[\ =fj[\d)'(+ '+&)'(* BSD-Entwickler Poul-Henning Vortrag zeigteder Varnish- und anschließend vieldiskutierten Skandal verschont. Ineinem einer Keynote überdenNSA- politische Fosdem nichtvor die sonstbeabsichtigtun- Und zuguterLetztbliebauch FJJle[[`\EJ8 meint Turnbull. beschreiben seiendahilfreich, ten undTests einbringenund Lesen, Dokumentationupda- Reden, höflichesNachfragen, blierten, altenProjekt stoße. den, derneuzueinemeta- das technischeVorgehen für Verhaltensweisen wieauch er sowohl sozialeRegeln mit ware-Archäologie“ schilderte Unter demTitelder„Soft- Softwareprojekte einarbeitet. ler ambestenineinaltes wie sicheinneuerEntwick- John Turnbull Anregungen, In derzweiten Keynote gab konnte. Java-Language-Tools lösen und wiesiedasmitHilfedes Grammatik- undStilfehlern Probleme derWikipediamit Da um Wikipedia-Autokorrektur: die Keynotes beispielsweise R((T Open LDAP“?, Howard Chu(„Was istneuin nik-Tracks dieUrgesteine wie Während sichindenTech- 8iZ_€fcf^`\ Kernel 3.8. 4.4) bringen,basierend auf in derVersion Kitkat (Android Entwickler baldXen aufARM Und fürAndroid wollen die ten Paravirtualized Interfaces. Virtualisierung mitsogenann- sondern nurnochHardware- Para- undVollvirtualisierung, terscheidung mehrzwischen Auf ARMgäbeeskeine Un- Feature-Umfang. umfassen –beifastgleichem niel Naberschildertedie ) tummelten,drehten sich Y`[e/ 8YY`c[le^ , Hätte er„diefinanziellenund [le^0 denn dieNSA-Einflussnahme Weise Spekulationen,wie Kamp aufunterhaltsame R(T @e]fj Root-CAs. die von derNSA beglaubigten fikate verwendet, sondernnur niemand selbstsignierteZerti- würde erdafürsorgen, dass juwel OpenSSL“. Außerdem etwa dasOpen-Source-Kron- durchschaubar gestaltenwie APIs sokompliziert undun- Projekte unnötigkomplex und und „sicherheitsrelevante Community unterwandern“ würde ichdieOpen-Source- der US-Geheimdienste, dann technischen Möglichkeiten Deckname: Orchestra ( nologien aussehenkönnte– die gängigenSicherheitstech- auf Open-Source-Projekte und R/T R((T R0T R.T R-T R,T R+T R*T R)T R('T =fj[\d)'(+1  B[Ylj1  9\\i;Xp1  @ek\im`\nd`k?fnXi[:_l1  DXk_`Xj?lY\i#ÙC`Yi\F]]`Z\ (*AQ.>gpM;YT K_\Fe\8e[Fecp&gfjkj& Zfd&"C\eeXikGf\kk\i`e^ C`Yi\$F]]`Z\$+%)$`jk$]\ik`^&T c`elo$dX^Xq`e%[\&Elk\jm\idlk\ec`\#Yc`\Y[\iFg\e$C;8G$ildgp$:Xk$9`c[Xd

'+&)'(+

C`elole[Fg\eJfliZ\Xl][\i:\Y`k)'(+ 8bkl\cc

:\Y`k F]]\ele[dfY`c

)- 8l][\i:\Y`kmfd('%Y`j(+%D€iq)'(+bfdd\e[`\C`\Y_XY\imfe]i\`\iJf]knXi\le[C`eloXl]`_i\Bfjk\e% ;\iq\ekiXc\8ecXl]glebk[X]•i`jk?Xcc\-d`k[\iJg\Z`Xc:fe]\i\eZ\Fg\eJfliZ\%DXk_`Xj?lY\i nnn%c`elo$dX^Xq`e%[\

bleiben. Prämien gibt es in sie- ben Kategorien. Dazu gehören die beste Open-Source-Lösung zum Konfigurationsmanage- ment, das beste Privacy-Tool, das innovativste Projekt, die beste freie Android-App, das beste Addon für den Rasp- berry sowie den bedeu- tendsten Beitrag zu Linux und Open Source. Die Gewinner hat eine inter- nationale Jury mit über 300 Mitgliedern ausgewählt. Da- neben vergeben die Leser des 8YY`c[le^(1;`\Jg\Z`Xc:fe]\i\eZ\Fg\eJfliZ\`e?Xcc\-Y`\k\kefejkfgMfiki€^\qlC`elole[]i\`\iJf]knXi\% Linux-Magazins und seiner Schwesterzeitschriften den Wer auf dem weitläufigen Linux-Spezialisten sind täg- Infrastrukturprokekt Caua in Publikumspreis für die beste Gelände der Cebit 2014 nach lich um 13.45 Uhr mit Vor- Brasilien. Dazwischen ist Hall Linux-Desktopumgebung. Im Linux und Open Source sucht, trägen über IT-Management, am Stand der Medialinx AG Anschluss gibt es Gelegen- sollte einen Abstecher in Halle Open Stack und Cloudstack (Block H08) zu finden, wo er heit, mit den Preisträgern bei 6 machen. Dort findet er die sowie sicheres Filesharing Anwendungen des preiswer- einem kleinen Umtrunk ins „Special Conference Open und Mailhosting vertreten ten ARM-Boards Raspberry Pi Gespräch zu kommen. Source“ samt Vortragsbühne und fördern das Programm demonstriert. Das Vortrags- Rund um das Vortragsforum in (8YY`c[le^ (), den „Open als Hauptsponsor. programm ist unter R_kkg1&& Halle 6 sind die Anbieter pro- Source Park“ mit seinen Aus- Dem aktuellen Thema UEFI nnn%c`elo$dX^Xq`e%[\&:\Y`k fessioneller Open-Source-Pro- stellern sowie den „Mobile und Secure Boot widmet sich $)'(+T zu finden. dukte und -Dienstleistungen Enterprise Park“. der Linux-Magazin-Autor Udo vertreten. Das Unternehmen Seidel, daneben gibt es Emp- Gi\`jm\ic\`_le^ Würth Phoenix beispielsweise Mfiki€^\efejkfg fehlungen für die Migration präsentiert auf der Cebit die zu Libre Office sowie zu Soft- Am Donnerstag (13. März) jüngste Release seiner Mo- Auf der Open-Source-Bühne wareverteilung und Clientma- wird die Vortragsbühne zum nitoringlösung Neteye sowie (Block H01) präsentiert täg- nagement. Holger Gantikow Schauplatz einer besonderen das neue ITMS-Angebot Eri- lich um 12.15 Uhr Klaus von der Science+Computing Veranstaltung. Die Medialinx zone. Die Netways GmbH hat Knopper seine neueste Knop- AG macht Smartphones und AG, Herausgeberin des Linux- die Puppet Labs zu Gast am pix-Edition 7.3, die er für das Tablets zum Schweizer Ta- Magazins, verleiht ihre „Linux Stand und demonstriert neben Linux-Magazin maßgeschnei- schenmesser für Admins. New Media Awards 2014“ und dem Systemmanagement mit dert hat. Neben Hilfe für In pointierter Rede trägt das zeichnet damit besondere Puppet auch Monitoring mit Einsteiger hat Knopper auch amerikanische Linux-Urge- Leistungen im Bereich Linux Icinga sowie Log-Management Tipps und Tricks für Fortge- stein Jon „Maddog“ Hall und Open Source aus. Ab 17 mit Logstash. schrittene parat. seine Ansichten zu freier Uhr übergeben prominente Die Bremer Firma Univen- Themen für IT-Professionals Software vor, etwa über Open Laudatoren die Trophäen an tion zeigt einen Assistenten behandelt am selben Ort die Source in der Bildung, die die Gewinner, die bis zum für die Migration von Active- Firma Heinlein Support. Die NSA-Spitzelaffäre und zum letzten Augenblick geheim Directory-Domänen. Das Tool '+&)'(+ 8bkl\cc ven und Valuephone sowie Open Source stecken. So bei- der Blogger Maik Klotz von spielsweise die FU Berlin mit Mobile-zeitgeist.de. ihrem LGPL-lizenzierten Be- triebssystem Riot für das In- =fijZ_le^le[:DJ ternet der Dinge. Hinter dem :\9@K Namen Docear verbirgt sich Auch andere Cebit-Hallen bie- dagegen eine freie Lösung ten Interessantes. In Halle 5 zum Verwalten akademischer ). am Stand E06 liegt der 120 Publikationen, an dem die Quadratmeter großer CMS Otto-von-Guericke-Universität Garden (8YY`c[le^ )). Hier Magdeburg mitarbeitet.

Ÿ9\emXeËkXi[\e`e?Xcc\,jk\cc\ej`Z_]i\`\:fek\ekdXeX^\d\ek$ Vielfalt freier Contentmana- Highlights jenseits der Open- Jpjk\d\mfi#n`\_`\i;ilgXc`eG\ijfe[\j:DJ$>€ike\ij;Xe`\c8e[i`j\b% ger von Drupal über Plone Source-Spezialisierung zu bie- bis Typo3 erkunden. Weitere ten. Dazu gehören auf jeden mit dem Namen AD-Takeover „Durchbruch des Mobile Pay- Informationen liefert der CMS Fall die Auftritte von Apples stellt Kundensysteme von ei- ment in Deutschland – was Garden e.V. unter R_kkg1&& Technik-Mastermind Steve ner Microsoft-Umgebung auf muss passieren?“ statt. Auf nnn%Zdj$^Xi[\e%fi^T. Wozniak am Donnerstag Linux-Server um. dem Podium sitzen Vertreter In Halle 9 stellen zahlreiche und des Wikipedia-Gründers Ebenfalls in Halle 6 angesie- von Firmen und Verbänden Universitäten, Fachhochschu- Jimmy Wales am Freitag, delt ist das Expert Panel Mo- wie dem Bundesverband der len und Forschungseinrich- beide in Halle 8 auf der Center bile Enterprise. Am Montag Deutschen Volksbanken und tungen aus. Sie zeigen ihre Stage. Zum Besuch ist aller- (10. März) um 15 Uhr findet Raiffeisenbanken (BVR), Forschungsprojekte, in denen dings ein Ticket „Exhibition & dort die Podiumsdiskussion Lendstar, NTT Data, Payle- immer wieder Linux und Conferences“ erforderlich. ■

8eq\`^\ '+&)'(+

Jf]knXi\;\]`e\[E\knfib`e^Y\\e[\k[XjX[d`e`jkiXk`m\Bc\`e$Bc\`e K`k\ck_\dX E\kq\e\lfi[e\e >ile[cX^\e

)/ ;`\>cfYXc`j`\ile^[\i=`id\e#[`\iXjXekXejk\`^\e[\D\e^\mfe>\i€k\e#M`iklXc`j`\ile^#:cfl[le[Ù9i`e^ pflifne[\m`Z\ÈdXZ_\ebcXjj`jZ_fi^Xe`j`\ik\@G$E\kq\jZ_n\igcXe$le[X[d`e`jki`\iYXi%JkXkkql_X[\ie# jfcck\ej`Z_8[d`ejd`k\`e\diX[`bXce\l\e8ejXkqY\]Xjj\e1Jf]knXi\;\]`e\[E\knfib`e^%L[fJ\`[\c nnn%c`elo$dX^Xq`e%[\

@e_Xck

)/ >ile[cX^\e Jf]knXi\;\]`e\[E\knfib`e^dXZ_k E\kq\]c\o`Y\cle[q\ekiXcjk\l\iYXi *) Fg\e=cfn ;XjGifkfbfccjk\l\ik[\e;Xk\e]cljj q\ekiXcle[j\ebk[`\?Xi[nXi\bfjk\e% */ Fg\e;Xpc`^_k ;Xj>\d\`ejZ_X]kjgifa\bk[`\ekXcj ;XZ_]•i\`eq\ce\J;E$Bfdgfe\ek\e% +' Bfdd\iq`\cc\Gif[lbk\ Jf]knXi\;\]`e\[E\knfib`e^^\n`eeYi`e$ ^\e[ldqlj\kq\e`jk[XjQ`\cmfeMDnXi\# :`jZf#@9Dle[D`[fbliX% +- D`e`e\k 8cjK\jkY\kk]•iJ;E\dlc`\ikD`e`e\k\`e bfdgc\kk\jE\kqn\ib%

Nicht nur einmal revolutionierten Vir- dere Bereiche erfasst hat: Wie die vorige diese Systeme die Netzwerktopologie zu- tualisierungstechniken in den vergange- Ausgabe des Linux-Magazins am Beispiel mindest teilweise kennen (8YY`c[le^(). nen zehn Jahren die IT-Welt. Vor allem von Open Stack zeigte R)T, geht auch Die Position eines bestimmten Geräts im die x86-Architekturen zogen mit vielen der Storage-Bereich seit ein paar Jahren Netzwerk definiert dessen Funktion, ein Features, aber auch in Sachen Leistungs- einen ähnlichen, virtuellen Weg. Ana- Stellungswechsel hat unter Umständen fähigkeit mit Mainframes und Großrech- log zur Virtualisierung ganzer Rechner fatale Folgen. nern gleich, die derlei Ressourcenauf- ziehen Admins auch hier eine Abstrak- Im Laufe der Zeit stellte die Internet En- teilung bereits seit Jahrzehnten beherr- tionsschicht zwischen Datenträgern und gineering Task Force (IETF, R+T) Admins schen. IBMs Z-Serie und ihre Vorläufer, dem Anwender oder der Applikation ein eine Reihe von Protokollen zur Seite, um die System/ 360-Maschinen, feiern just und gewinnen ähnliche Vorzüge wie im die einfache Steuerlogik aufzupeppen. zur Cebit 2014 ihren 40. Geburtstag R(T. Server-Bereich. Diese Erweiterungen adressierten jedoch Wenig überraschend macht der Trend oft nur eine bestimmte Aufgabe und wir- J\im\i#JkfiX^\le[E\knfib auch vor dem Netzwerk nicht halt. Ganze ken aus heutiger Sicht vergleichsweise Firmennetze existieren mittlerweile nur isoliert. Hinzu kam, dass die wachsende Virtualisierung als Konzept ist gleicher- mehr virtuell, aus Software aufgebaut Anzahl dieser Standards im Verbund mit maßen einfach wie erfolgreich: Die Ser- und per Mausklick konfigurierbar R*T. herstellerspezifischen Optimierungen und verhardware existiert nicht real, sondern Software-Abhängigkeiten die Komplexität nur mehr als pure Software. Dabei treten HlfmX[`j6 heutiger Netzwerk anwachsen ließ. die ursprünglich notwendigen Hardware- treiber hinter die Virtualisierung zurück. IP-Netzwerke bestehen in der Regel aus E\m\ikflZ_Xilee`e^ Server-Umzüge sind so viel einfacher, eine Reihe von autonomen Systemen: e\knfib%%% herstellerspezifische Hardware-Limitie- Switches, Routern und Firewalls. Die rungen fast irrelevant. Netzwerkgeräte werten ankommende Da- Ganz nebenbei blieb dabei nahezu jeg- Admins stampfen neue Server jetzt bin- tenpakete aus, schlagen eventuell in Ta- liche Flexibilität auf der Strecke. Struk- nen Minuten aus dem Boden – das Kon- bellen nach und senden sie entsprechend turelle Änderungen sind in vielen Net- zept ist so erfolgreich, dass es auch an- weiter. Damit das funktioniert, müssen zen heute mindestens ein mittelgroßes 8YY`c[le^(1<`ekiX[`k`fe\cc\j@G$E\kqn\ibY\jk\_kXlj\Z_k\e>\i€k\e#[`\`eKXY\cc\e@e]fidXk`fe\emfi_Xc$ k\ele[eXZ_[\]`e`\ik\eI\^\cebfddle`q`\i\e%

Projekt, über dem das Damoklesschwert sungen – oder eben durch Virtualisierung eines teuren und gefährlichen Betriebs- auf der Netzwerkebene. ausfalls hängt. ;`m`[\\kZfehl\i D\_iG\\ijle[m`\c\e\l\ ;Xk\ekpg\e Die grundlegenden Ideen hinter dem Software Defined Networking (SDN) sind Auch die Welt außerhalb des Netzwerks über sieben Jahre alt und stammen aus stand nicht still. An die Stelle klassischen der Stanford University. Primäres Anlie- Client-Server-Verkehrs tritt eher Peer-ar- gen von SDN ist die Trennung von Kon- tiger Datenfluss. Immer mehr Rechner figuration und Infrastruktur (8YY`c[le^ und Anwendungen sind an der Kommu- )). In seiner Doktorarbeit R,T beschrieb nikation beteiligt. Die Servervirtualisie- Martin Casando 2008 die Idee der logi- rung schiebt Rechner hin und her und schen Trennung der Kontroll-Logik vom verändert so dynamisch ganze Bereiche Datenfluss. Casando und seine Betreuer der Netzwerktopologie. Smartphones – Nick McKeown und Scott Shenker – gel- und Tablet-PCs lassen die Anzahl der ten daher als die Väter von SDN. Teilnehmer explodieren. Im selben Jahr gründeten sie die Firma Mit Software Defined Storage kommen Nicira Networks, die sich auf das neue ganz neue Datentypen hinzu, und Big- Themengebiet konzentrierte. Um 2012 Data-Herausforderungen manifestieren übernahm VMware diese Firma für sa- sich in steigenden Datenvolumina, die genhafte 1,2 Milliarden Dollar R-T. Ni- schnell durchs Netzwerk müssen. Die ciras Network Virtualisation Platform ist Veränderung einer Richtlinie für das ge- die Basis von VMwares NSX R.T. samte Netzwerk erfordert Konfigurations- In der einschlägigen Literatur finden sich anpassungen von Hunderten, vielleicht oft die Begriffe Control Plane und Data Tausenden von Systemen. Plane. Letztere sind die Switches, Router Und damit nicht genug: Die Cloud bringt und Firewalls. Die Control Plane befindet noch weitere neue Herausforderung an sich dagegen außerhalb der Netzwerkge- das Netzwerk mit sich. Da wären bei- räte. Ihre Geräte brauchen daher nicht spielsweise hochgradige Flexibilität, Si- so viel eigene Intelligenz mitzubringen, cherheit, Konformität und Revisionsfä- wie dies im traditionellen IP-Netzwerk higkeit. All das ließ sich zwar auch in der Fall ist – die verbaute darf klassischen Netzwerken bewerkstelligen, deutlich schlanker ausfallen. aber nur durch eine Vielzahl von Mitar- Die physikalische Trennung von Kontroll- beitern oder durch teure Managementlö- und Infrastruktur-Schicht (also Control '+&)'(+ K`k\ck_\dX zentraler, vielleicht sogar globaler Stelle. 8en\e[le^ Letztlich stellt SDN eine Abstraktion der Netzwerkschicht bereit, was das Verwal- >\jZ_€]kjgifq\jj >\jZ_€]kjgifq\jj >\jZ_€]kjgifq\jj ten aus Geschäftsprozessen heraus er- laubt (das wäre die Anwendungsschicht >ile[cX^\e in 8YY`c[le^)). So lässt sich auch das Bfekifcc\&Bfe]`^liXk`fe 8G@ 8G@ 8G@ Netzwerk auf eine Anwendung zuschnei- *' den, denn diese kennt ja die Fähigkeiten J;E$ des Netzes. Bfekifcc$ E\kqn\ib[`\ejk E\kqn\ib[`\ejk E\kqn\ib[`\ejk Jf]knXi\ Bi`k`b nnn%c`elo$dX^Xq`e%[\ @e]iXjkilbkli 8G@ Fg\e=cfn#%%% 8G@ Fg\e=cfn#%%% 8G@ Fg\e=cfn#%%% Aber es gibt auch einige Kritikpunkte oder zumindest offene Fragen. Der Con- E\kqn\ib^\i€k\ troller ist nun das Hirn des Netzwerks – und damit der Single Point of Failure: Fällt er aus, ist der GAU vorprogrammiert. 8YY`c[le^)1;`\8iZ_`k\bklimfeJf]knXi\;\]`e\[E\knfib`e^`jk]c\o`Y\c#XY\i_`\iXiZ_`jZ_^\^c`\[\ik% Ihn ohne Hochverfügbarkeits-Konzepte zu betreiben, erscheint mutig bis fahr- Plane und Data Plane) erlaubt es darü- der darunter liegenden Hardware entkop- lässig. Weitere Fragen stellen sich fast ber hinaus, auch die darunter liegende pelt – wie bei der Servervirtualisierung von selbst: Wie viele Geräte kann eine Hardware unabhängig zu tunen, weil der auch. Das Trennen von Datenfluss und Kontrollinstanz verwalten? Wie organi- leistungsfähige Rechner mit der Kontroll- Kontroll-Logik zentralisiert das Manage- siert man die Kontrollinstanzen, damit Software die Arbeit erledigt. Die Data ment und erlaubt es dem Administrator, sie hochverfügbar und zudem skalierend Plane leitet lediglich die Datenpakete sein Netzwerk in seiner Gesamtheit zu sind? Der Anteil der Kommunikation von weiter, nach den Richtlinien der Kontroll- überblicken und zentral zu verwalten. Control- und Data Plane macht, glaubt Logik. Die vorher autonomen Systeme werden man der Literatur, typischerweise 3 bis 5 Das bedeutet aber auch, dass beide In- damit Teile eines sich zusammenfügen- Prozent des Traffics aus. stanzen miteinander kommunizieren den Puzzles. Für den Einsatz von SDN gibt es mehrere müssen. An dieser Stelle kommt Techno- Für Admins entstehen ganz neue Mög- Ansätze. Die Unterschiedlichkeit trägt da- logie wie Open Flow (R/T, siehe BXjk\e lichkeiten, die Datenflüsse effizienter zu bei teilweise den eben genannten Kritik- ÙF]]\e\=c•jj\È) ins Spiel und definiert gestalten. Eine Firewall muss nun nicht punkten Rechnung. Das symmetrische eine Standardschnittstelle für diesen In- mehr jedes Paket untersuchen, wenn vor- Modell zentralisiert die Kontrollinstanz formationsaustausch. herige Prüfungen erfolgreich waren und so weit wie möglich, wobei natürlich Die oben genannten Wissenschaftler um ausreichend sind. Die Abstraktion von die Störanfälligkeit den offensichtlichs- Shenker beteiligten sich konsequenter- den (herstellerbedingten) Gegebenheiten ten und im Alltag vielleicht auch gravie- weise auch an der Gründung der Open der einzelnen Netzwerkgeräte erlaubt rendsten Nachteil ausmacht. Network Foundation im März 2011. Ziel nun Konfigurationen zu automatisieren, Das zu lindern versucht der asymme- der Non-Profit-Organisation ist die Unter- die vorher unmöglich waren. trische Ansatz, bei dem die einzelnen stützung und Überwachung der Schnitt- Richtlinien legt der Netzwerk-Admin über Systeme die relevanten Konfigurationen stellen und Standards für SDN. Mit die Kontroll-Logik fest. Diese übermittelt kennen und daher auch beim Ausfall der Google, Facebook, Microsoft, der Deut- die notwendigen Informationen über die Kontroll-Logik weiterarbeiten. Typischer- schen Telekom, Verizon und Yahoo sind standardisierten Schnittstellen an die je- weise organisiert der Administrator sein echte Schwergewichte als Gründungsmit- weiligen Endgeräte. Eigenschaften oder Netzwerk in Zellen, die – für sich genom- glieder engagiert. sogar einzelne Dienste sind nicht mehr men – autonom arbeiten. Nachteile die- auf Port-Ebene definiert, sondern an ser Lösung sind die eigentlich unnötige Gif\kZfekiX F]]\e\=c•jj\ SDN ist beliebt, nicht nur wegen der in- Fg\e=cfnY\jZ_i\`YkJkXe[Xi[jle[JZ_e`kk$ Jn`kZ_\jle[Iflk\ieqljXdd\e%;XY\`jg`\ck härent geringeren Abhängigkeit von den jk\cc\e ]•i [`\ Bfddle`bXk`fe qn`jZ_\e [\i \jb\`e\Ifcc\#fY[`\j\g_pj`bXc`jZ_f[\ieli Herstellern der Netzwerkhardware. Die :fekifcGcXe\le[\`e\i;XkXGcXe\%C\kqk\i\ m`ikl\cc\o`jk`\i\e% Intelligenz ist nun im Controller beheima- n`i[f]kXlZ_Xcj=finXi[`e^GcXe\ N\`k\ic\`$ Fg\e =cfn `jk ^\iX[\ [XY\`# j`Z_ Xcj HlXj`$ tet, der über standardisierte Schnittstel- kle^j$Jkilbkli i\]\i\eq`\ik% JkXe[Xi[ ql \kXYc`\i\e% ;`m\ij\ E\kq^\i€k\$ len die notwendigen Informationen mit ;\i Fg\e$=cfn$JkXe[Xi[ lek\ic`\^k [\i M\i$ ?\ijk\cc\i_XY\ej`Z_j\`e\Lek\ijk•kqle^Xl] den Geräten austauscht. Admins freuen nXckle^[\iFg\eE\knfib`e^=fle[Xk`fe FE=# [`\=X_e\^\jZ_i`\Y\e%8l][\i?fd\gX^\[\j sich, weil das auch die Entwicklung des R0T %M\ij`fe(%'%'jkXddk•Yi`^\ejefZ_Xlj Gifa\bkjbXeedXe[`\Xbkl\cc\Jg\q`]`bXk`fe )''0% ;`\ =finXi[`e^$GcXe\ j\kqk j`Z_ Xlj ]•iFg\e$=cfn$Jn`kZ_\j_\ilek\icX[\e% eigenen Netzwerks vom Lebenszyklus Redundanz von Informationen und das zustellen, flächendeckende praktische Mehr an dezentraler Verwaltung. Erfahrung mit dem neuen Ansatz zum Eine weitere Unterscheidung lässt sich Netzwerkeln fehlen jedoch. bezüglich des Ortes machen, an dem das Aber immerhin hat das Cloud Computing SDN-Hirn liegt. Bei hochgradig virtuali- Bewegung in die Sache gebracht. Open sierten Umgebungen ist es sinnvoll, dem Stack R(.T mit seiner Netzwerk-Kompo- Hypervisor beziehungsweise dem Host nente Neutron R(/T ist nur die Spitze des die notwendige Denkarbeit aufzubrum- Eisbergs. (mfe) ■ men. Anders der Netzwerk-zentrierte Ansatz: Hier erledigen dedizierte Netz- werkgeräte den SDN-Job. Auch eine Mi- @e]fj schung ist denkbar, selbst wenn sie den R(T @9DjQ$J\i`\j&M`iklXcDXZ_`e\ q&MD 1 Gewinn durch Software Defined Networ- R_kkg1&&nnn%md%`Yd%ZfdT king schmälert. R)T ÙJg\`Z_\ieXcjB•iÈ1C`elo$DX^Xq`e'*& Eine dritte Art, SDN-Modelle zu unter- (+#J%)/Y`j,+ scheiden, betrifft die Verteilung der Infor- R*T ÙJf]knXi\$;\]`e\[E\knfib`e^1K_\E\n mationen. Einerseits können die Control- Efid]fiE\knfibjÈ1N_`k\gXg\i[\i ler die Informationen über die bekannten Fg\eE\knfib`e^=fle[Xk`fe2 Broad- und Multicast-Mechanismen ver- R_kkg1&&nnn%fg\ee\knfib`e^%fi^& breiten. Das führt aber zum erwähnten `dX^\j&jkfi`\j&[fnecfX[j&n_`k\$gXg\ij& Anstieg der Netzwerklast. Die Alterna- ng$j[e$e\nefid%g[]T tive dazu besteht in verteiltem Hashing R+T @\^c•Zbk\iJkXik $($)-$D`cc`Xi[\e$;fccXi$(0--*))T R.T MDnXi\EJO1 Seit 2011 hat SDN so richtig Fahrt aufge- R_kkg1&&nnn%mdnXi\%Zfd&gif[lZkj&ejo&T nommen. Insbesondere auf der Control- R/T Fg\e=cfn1 ler-Seite haben Netzwerkarchitekten die R_kkg1&&nnn%fg\ee\knfib`e^%fi^&j[e Qual der Wahl. Die Open-Source-Com- $i\jfliZ\j&fe]$jg\Z`]`ZXk`fej&fg\e]cfn&T munity kann auf Projekte wie Floodlight R0T Fg\eE\knfib`e^=fle[Xk`fe1 R('T, Beacon R((T oder Open Daylight R_kkg1&&nnn%fg\ee\knfib`e^%fi^T R()T verweisen. Auch kommerzielle R('T =cff[c`^_k1R_kkg1&&nnn%gifa\Zk]cff[c`^_k% Produkte gibt es, natürlich sind neben fi^&]cff[c`^_k&T VMware auch Cisco R(*T, HP R(+T, IBM R((T 9\XZfe1R_kkg1&&fg\e]cfn%jkXe]fi[%\[l& R(,T und Brocade R(-T dort vertreten. [`jgcXp&9\XZfe&?fd\T Die Netzwerkgeräte-Seite lässt noch ge- R()T Fg\e;Xpc`^_k1 nügend Raum für Verbesserung. Leider R_kkg1&&nnn%fg\e[Xpc`^_k%fi^T ist die Anzahl der SDN-fähigen Switches R(*T :`jZfJ;E1R_kkg1&&nnn%Z`jZf%Zfd&n\Y& noch recht übersichtlich. Die Gründungs- jkiXk\^p&[fZj&^fm&Z`j(*'0'Vj[eVjc\[V mitglieder der Open Networking Found- n_`k\VgXg\i%g[]T ation arbeiten mit Nachdruck daran, die R(+T?GJ;E1R_kkg1&&_)'(0,%nnn)%_g%Zfd& eigenen Netze auf das Paradigma um- m)&>\kG;=%Xjgo&+88*$/,-)dY?`e

E\kqn\ib\d`kFg\e=cfnm\inXck\e K`k\ck_\dX 8cc\j`d=cljj Fg\e=cfn

*) ;•dd\i\E\kqn\ib_Xi[nXi\jZ_X]]kbc•^\i\E\kq\69\`Fg\e=cfna\[\e]Xccj^\_k[`\j\I\Z_ele^Xl]le[ \ijgXik[\d8[d`e\`e`^\8iY\`k#`e[\d\i[\e;Xk\e]cljjq\ekiXcmfe\`e\dGlebkXljjk\l\ik%DXiZBie\i nnn%c`elo$dX^Xq`e%[\

kennt der Controller dank Open Flow das neue Gerät und bindet es in das aktive Netzwerk ein. Während Hubs und Repeater den eher historischen Ansatz verfolgen, Pakete auf allen Ports mit einem aufbereiteten Übertragungspegel weiterzuleiten, agie- ren Switches etwas intelligenter. Sie le- gen sich intern Tabellen an, mit deren Hilfe sie den jeweiligen MAC-Adressen Ports zuordnen. Dadurch verschicken sie Pakete zielgerichtet und reduzieren zugleich die Netzlast und den Strom- verbrauch. Lediglich Pakete mit einer Broadcast-Adresse senden die Switches an alle Ports. Sie sind nötig, um etwa die

ŸKfef9XcX^l\i#()*I=%Zfd IP-Adressen von Hosts aufzulösen, das Stichwort lautet hier Adress Resolution Software Defined Networking (SDN) Schnittstelle keinerlei weitere Intelligenz Protocol (Arp). degradiert herkömmliche Netzwerkhard- mitbringt. Diese Trennung von Daten- Im Kontrast dazu verfolgt Open Flow ein ware (etwa Switches und Router) mit all und Kontrollebene (Data Plane und Con- „Flow“-basiertes Weiterleitungskonzept. ihren integrierten Features zu dummen trol Plane) reduziert die Gerätekosten Indem der Controller das Netzwerk in Wachposten mit einer ausgelagerten zen- deutlich, denn die Software-seitige Imple- seiner Gesamtheit betrachtet, kann er tralen Software als Kommandostelle, dem mentierung der diversen Protokolle für für bestimmte Pakete eine Art Ende-zu- Controller (8YY`c[le^(). Möglich macht den Betrieb eines Geräts in einer Layer- Ende-Verbindung über mehrere Switches das ein neues Protokoll namens Open 2-Domain (Bridged/Switched Network) hinweg aufsetzen. Den Pakettyp macht er Flow R(T, das mittlerweile auffallend viele geht ins Geld. Diese Kosten entfallen zum Beispiel am Transportprotokoll fest proprietäre und freie SDN-Projekte imple- beim Open-Flow-Einsatz komplett. und leitet TCP-Webtraffic mit Zielport 80 mentieren. Zudem muss der Admin die Geräte nicht stets über Route A zum Ziel. mehr einzeln vorkonfigurieren: Da die Sobald der Controller die Signatur er- Qn\`

Iterationen hinzu, die aktuelle Version Fg\e=cfn @e Fg\e=cfnJn`kZ_ Flk trägt die Nummer 1.4. Trifft ein Paket in einem Open-Flow- Netzwerk auf einem der für Open Flow KXY\cc\ebXcblcXk`fe\e reservierten Ports ein, untersucht der ** Switch, wie in der jeweiligen Spezifika- 8YY`c[le^)1|Y\i`_i\<`eki€^\#[`\=cfn

Fg\e=cfn 8YY`c[le^*1JZ_\dX[\i?\X[\i=`\c[jXlj[\iFg\e$=cfn$Jg\q`]`bXk`fe(%'% :fekifcc\i likationen (Apps). Die Controller imple- Java. Auch Floodlight bringt einige Apps *+ mentieren das zur Spezifikation kompa- mit und verfolgt ein Modul- und App- tible Open-Flow-Protokoll und kümmern basiertes Konzept. Die Standardversion sich um die Kommunikation mit den liefert zum Beispiel ein Modul mit, das Switches. eine zusätzliche REST-Schnittstelle zum Als Plattform ermöglichen sie es den nnn%c`elo$dX^Xq`e%[\ aktiven Setzen statischer Flows anbietet. App-Entwicklern zugleich, sich voll und So wie Nox steht auch Floodlight unter Fg\e$=cfn$E\kqn\ib ganz auf das Implementieren der Apps einer Open-Source-Lizenz, in diesem Fall 8YY`c[le^+1;`\Fg\e$=cfn$:fekifcc\i[`\e\e_€l$ zu konzentrieren (8YY`c[le^ +). Dazu unter der von Apache. ]`^XcjGcXkk]fid]•iE\kqn\ib$8ggc`bXk`fe\e% bieten die Controller meist ein API für eine geläufige Programmiersprache an. =i\e\k`Z »Linux« ein und wählt die passende Ar- Die Apps leiten eingehende Pakete an alle chitektur aus. Als »Disk-Image« dient die Ports weiter und dienen so als virtuelle Frenetic R,T ist ein Projekt der Princeton entpackte VMDK-Datei. Bevor er die VM Hubs. Oder sie routen gezielt Pakete auf University, das die LGPLv3 verwendet. startet, sollte er jedoch die Einstellung für Basis von MAC-Adressen und fungieren Die Netzwerk-Programmiersprache läuft den Netzwerkadapter auf »Netzwerkbrü- als Bridges und Switches. als Anwendung auf dem Nox-Controller, cke« stellen, um die VM auch extern über Die meisten Controller bringen ein paar verwendet ein eigenständiges Runtime das LAN zu erreichen. Basismodule mit. Die erwähnte Switch- Environment und spricht wahlweise Hat der Nutzer die VM gestartet und sich Anwendung dient Entwicklern zugleich Ocaml oder Python. angemeldet (Benutzername und Passwort als Fallbeispiel, um eigene Apps zu ent- Frenetic bringt eine weitere Abstraktions- lauten »mininet«), findet er die idealer- werfen. Für viele weitere Anwendungen schicht zur App-Entwicklung ins Spiel, weise per DHCP zugewiesene IP-Adresse müssen konventionelle Netzwerke spe- die es erlaubt, die Menge an Sourcecode heraus, indem er »ifconfig« eintippt. Über zielle Geräte einsetzen, etwa für Router, zu reduzieren und anwendungsorientier- sie erreicht er die VM nun via SSH von ei- Firewalls oder Load Balancer. ten Quellcode zu schreiben. Dieser lässt nem externen Host aus. Weitere Mininet- sich modular in Funktionen kapseln und Parameter verrät »man mn«. Efo wiederverwenden. Während der C++- Quellcode für einen Repeater beispiels- C\m\c(1?`ele[qli•Zb Einer der ersten Open-Flow-Controller weise um die 100 Codezeilen umfasst, heißt Nox R*T, steht unter der GPLv3 erledigt Frenetic die Implementierung mit Im ersten Szenario erzeugt der Admin ein und wird seit 2008 entwickelt. Er folgt weniger als zehn Zeilen Code. Netzwerk, das aus zwei Hosts besteht, einem Modulkonzept mit einem C++- die ein Switch verbindet (C`jk`e^(). Er und Python-API und dient als Beispiel Fg\e=cfnle[D`e`e\k verzichtet auf den Controller, um die (Hub, Switch), um Entwicklern zu zei- Flow Entries manuell zu setzen. Um zu gen, wie sie das API zum Entwerfen von Wie SDN mit Open Flow funktioniert, prüfen, ob die Verbindung steht, schickt Netzwerkanwendungen nutzen. lässt sich am besten an den folgenden Host 1 nun über das CLI von Mininet drei praktischen Beispielen zeigen. Das einen Ping an Host 2: im Schwerpunkt vorgestellte Mininet R-T =cff[c`^_k mininet> h1 ping -c 4 h2 liefert eine passende Umgebung zum Tes- PING 10.0.0.2 (10.0.0.2) 56(84) bytes of 5 Der Floodlight-Controller R+T ist hinge- ten und Evaluieren solcher Netze. data. gen etwas neuer und setzt auf die platt- Die Heft-DVD bringt fertige Virtualbox- From 10.0.0.1 icmp_seq=1 Destination Host 5 formübergreifende Programmiersprache Images mit, als Typ stellt der Anwender Unreachable [...] C`jk`e^(1E\kqn\ib`eD`e`e\kXec\^\e Der Versuch schlägt allerdings fehl, weil

01 mininet@mininet-vm:~$ sudo mn --topo single,2 07 *** Adding switches: der Switch ohne Flow Entries und ohne --mac --switch ovsk --controller remote 08 s1 Controller zunächst keine Pakete weiter- 02 *** Creating network 09 *** Adding links: leitet. Die Abwesenheit der letzten bei- 10 (h1, s1) (h2, s1) 03 *** Adding controller den zeigt: 11 *** Configuring hosts 04 Unable to contact the remote controller at 12 h1 h2 mininet@mininet-vm:~$ 127.0.0.1:6633 dpctl dump-flows 13 *** Starting controller tcp:127.0.0.1:6634 05 *** Adding hosts: 14 *** Starting 1 switches stats_reply (xid=0x6929ef28): flags=none 5 06 h1 h2 15 s1 type=1(flow) '+&)'(+ K`k\ck_\dX Das hier verwendete Tool »dpctl« setzt nun einen Flow-Eintrag, der die an Port 1 des Switch ankommenden Pakete an Port 2 weiterreicht: Fg\e=cfn mininet@mininet-vm:~$ dpctl add-flowtcp:5 127.0.0.1:6634 in_port=1,actions=output:2

Wieder nichts: Der zweite Ping-Test *, schlägt auch fehl, da der Switch zwar Pakete an Host 2 weiterleitet, Letzterer aber nicht antwortet.

Setzt der Netzwerker mit »dpctl« in Form nnn%c`elo$dX^Xq`e%[\ eines weiteren Flow Entry jedoch ein For- warding von Port 2 auf Port 1, wird das Ergebnis positiv: Beide Hosts tauschen 8YY`c[le^,1D`kN`i\j_Xibc€jjkj`Z_[`\Bfddle`bXk`feqn`jZ_\e:fekifcc\ile[Jn`kZ_\jgi`dXd`kc\j\e% sich ungehindert über den Switch aus, so lange der Idle-Timeout nicht dazwischen- Neben dem Arp-Reply sind jeweils zwei Kommunikation des Open-Flow-Control- funkt (C`jk`e^)). ICMP-Requests und -Replies zu sehen, lers einsehen und analysieren. 8YY`c[le^ die aus dem vom Ping erzeugten Flow- , zeigt als Beispiel den Handshake zwi- C\m\c)1NfYc\`Yk8ig6 Eintrag stammen. Allerdings stellt sich schen Controller und Switch sowie den die Frage, was mit dem Arp-Request pas- »Features Reply« des Switch, der dem Szenario 2 verwendet einen identischen siert ist, der üblicherweise als Broadcast Controller signalisiert, welche Open- Netzaufbau wie in Szenario 1, schickt übers Netzwerk geht. Indem der Netz- Flow-Aktionen er unterstützt. den initialen Befehl allerdings so ab, dass werker den Control Channel, der Switch Open Vswitch als eingebauter Controller und Controller verbindet, per Tcpdump C\m\c*19XldXik`^\ zum Zuge kommt: oder Wireshark mitschneidet, kann er feststellen, dass der Controller die Arp- Im dritten und letzten Szenario erzeugt mininet@mininet-vm:~$ sudo mn --topo 5 Requests direkt weiterleiten lässt, was Mininet ein Netzwerk mit Baumtopolo- single,2 --switch ovsk --controller ovsc keinen Flow Entry benötigt. gie (8YY`c[le^-), bei dem jeweils drei Der Verbindungstest mit »ping« ist so- Wer Wireshark mit dem Open-Flow-Dis- Hosts an den Switches S2 bis S4 hängen. fort erfolgreich, die Flow Table zeigt drei sector nutzt, der Teil des Mininet-Image Die drei Switches stöpselt Mininet dann Flow-Einträge (C`jk`e^*). ist, kann sehr übersichtlich die gesamte an einen Aggregations-Switch (S1). Hier-

C`jk`e^)1;`\]lebk`fe`\i\e[\=cfnKXYc\

01 mininet@mininet-vm:~$ dpctl dump-flows tcp:127.0.0.1:6634 02 stats_reply (xid=0x9565ff66): flags=none type=1(flow) 03 cookie=0, duration_sec=39s, duration_nsec=436000000s, table_id=0, priority=32768, n_packets=12, n_bytes=728, idle_timeout=60,hard_timeout=0, in_port=1,actions=output:2 04 cookie=0, duration_sec=13s, duration_nsec=466000000s, table_id=0, priority=32768, n_packets=6, n_bytes=476, idle_timeout=60,hard_timeout=0, in_port=2,actions=output:1 '+&)'(+ K`k\ck_\dX kannten Switches und hört, wie Admins Open Flow grundsätz- Hosts anzeigen – über lich in Produktivumgebungen einsetzen den Reiter »Topology« können und wie es sich als Ersatz zu den auch grafisch. Die konventionellen Netzwerken macht – be-

Fg\e=cfn Grafik in 8YY`c[le^ sonders in Rechenzentren oder großen - ist zwar eher funk- Firmennetzwerken. Das streift die Frage, tional als ansehnlich, wie sich die Kontrollebene in solchen *- genügt jedoch, um Kontexten skalieren und strukturell or- einen Überblick zu er- ganisieren lässt. halten. Ein konkretes Problem besteht darin, dass die Hardware verschiedene Open- Flow-Aktionen zurzeit nur mangelhaft nnn%c`elo$dX^Xq`e%[\ I\j•d\\ unterstützt. Nicht zuletzt bereiten die im- Dank Open Flow be- mer neuen Versionen der Spezifikation 8YY`c[le^-1=cff[c`^_k\ib\eek[`\9Xldjkilbkli[\jK\jke\kqn\ibjXlkf$ trachtet der Admin den Firmware- und Controller-Hersteller dXk`jZ_le[Y`c[\kj`\XlZ_^iX]`jZ_XY% sein Netzwerk nicht beim Implementieren der neuen Features mehr als eine An- Kopfschmerzen. (kki) ■ bei handelt es sich um eine übliche Topo- sammlung diverser Einzelgeräte, die lo- logie für Netzwerke in Firmen oder auch kal arbeiten und Pakete nach je eigenen Rechenzentren. Diesmal legt der Admin Regeln weiterleiten, sondern als großes @e]fj einen Remote-Controller fest, weist ihm Ganzes, mit den Netzwerkgeräten als R(T Fg\e=cfn#\ijk\jGXg\i1 eine IP-Adresse und einen Open-Flow- fernsteuerbaren Schleusen. Das öffnet R_kkg1&&XiZ_`m\%Fg\e=cfn%fi^&[fZld\ekj& Standard-Controller-Port zu: eine Tür für neue Ideen. Als wohl ver- Fg\e=cfn$ng$cXk\jk%g[]T breitetste SDN-Manifestation, die auch R)TFg\eE\knfib`e^=fle[Xk`fe1R_kkgj1&& mininet@mininet-vm:~$ sudo mn --topo 5 in kommerziellen Produkten zum Ein- k\jk%fg\ee\knfib`e^%fi^&`e[\o%g_gT tree,depth=2,fanout=3 --mac --switch 5 ovsk--controller=remote,ip=Controller-IP,5 satz kommt, sorgt Open Flow für frischen R*T Efo1R_kkg1&&nnn%efoi\gf%fi^T port=6633 Wind im Bereich der Virtualisierung und R+T=cff[c`^_k1R_kkg1&&nnn%gifa\Zk]cff[c`^_k% der Flexibilität von Netzwerken und leis- fi^&]cff[c`^_k&T Als Konsequenz kann der Admin nun tet Geburtshilfe für zahlreiche darauf auf- R,T=i\e\k`Z1R_kkg1&&nnn%]i\e\k`Z$cXe^%fi^T einen beliebigen Rechner im lokalem setzende Anwendungen. R-TD`e`e\k1R_kkg1&&d`e`e\k%fi^T Netzwerk auswählen, auf dem er zum Die Technologie hat das Potenzial, Netz- R.T Fg\e$=cfn$Klkfi`Xc1 Beispiel Floodlight in der Basiskonfigu- werklösungen an der Basis zu verändern, R_kkg1&&XiZ_`m\%Fg\e=cfn%fi^&nb& ration startet: und erfordert ein neues Verständnis da- `e[\o%g_g&Fg\e=cfnVKlkfi`XcT für, was eine Netzwerkinfrastruktur leis- java -jar floodlight.jar ten kann. Open Flow behebt viele der ;\i8lkfi Ist Mininet online, erkennt Floodlight Probleme, die Netzwerke seit der ersten DXiZ Bie\i XiY\`k\k Xcj anhand der Konsolenausgaben unter an- technischen Realisierung des Ethernet n`jj\ejZ_X]kc`Z_\i D`kXi$ derem sowohl die Verbindungen zu den mit sich herumschleppen. Es führt die Y\`k\i Xd :@K [\i KL 9\i$ Switches als auch die Topologie. Über die Evolution in einem Bereich ein, in dem c`e%

C`jk`e^*1=cfnKXYc\jXljc\j\e

01 mininet@mininet-vm:~$ dpctl dump-flows tcp:127.0.0.1:6634 02 stats_reply (xid=0xf857cb47): flags=none type=1(flow) 03 cookie=0, duration_sec=3s, duration_nsec=981000000s, table_id=0, priority=0, n_packets=4, n_bytes=392, idle_timeout=60,hard_timeout=0,icmp, in_port=1,dl_vlan=0xffff,dl_src=00:00:00:00:00:01,dl_dst=00:00:00:00:00:02,nw_src=10.0.0.1,nw_dst=10.0.0.2,nw_tos=0x00,icmp_type=8,icmp_ code=0,actions=output:2 04 cookie=0, duration_sec=3s, duration_nsec=980000000s, table_id=0, priority=0, n_packets=4, n_bytes=392, idle_timeout=60,hard_timeout=0,icmp, in_port=2,dl_vlan=0xffff,dl_src=00:00:00:00:00:02,dl_dst=00:00:00:00:00:01,nw_src=10.0.0.2,nw_dst=10.0.0.1,nw_tos=0x00,icmp_type=0,icmp_ code=0,actions=output:1 05 cookie=0, duration_sec=3s, duration_nsec=981000000s, table_id=0, priority=0, n_packets=1, n_bytes=42, idle_timeout=60,hard_timeout=0,arp, in_port=2,dl_vlan=0xffff,dl_src=00:00:00:00:00:02,dl_dst=00:00:00:00:00:01,nw_src=10.0.0.2,nw_dst=10.0.0.1,nw_proto=2,actions=output:1 06

'+&)'(+

;\iJ;E$:fekifcc\iFg\e;Xpc`^_k K`k\ck_\dX JkiX_c\e[\Qlble]k Fg\e;Xpc`^_k

*/ 8e[\e>ile[cX^\ebfdd\e[\iJ;E$Gif[lbk\XiY\`k\eeXd_X]k\Lek\ie\_d\e^\d\`ejXd`dFg\e$ JfliZ\$Gifa\bkFg\e;Xpc`^_k%@d=\YilXi)'(+\iYc`Zbk\[\jj\e\ijk\:f[\I\c\Xj\[XjKX^\jc`Z_k%DXk_`Xj?lY\i nnn%c`elo$dX^Xq`e%[\

An die Service Abstraction Layer (SAL), die untere Abstraktionsschicht des Con- trollers samt Plugin-Manager, docken Plugins für mehrere Protokolle an, die zum Steuern der Data Plane mit ihren Netzwerkgeräten dienen. Diese Multi- Protokoll-Unterstützung ist ein wichtiges Ziel des Projekts, und so finden sich dort unter anderem Plugins für Open Flow (Versionen 1.0 und 1.3), den Standard Netconf sowie das OVSDB-Management- Protokoll für Open Vswitch – schließ- lich kann das Netzwerk-Equipment auch virtualisiert sein. In der Gegenrichtung liegt das North- bound Interface, das den Anschluss an Abstrakteres bildet: an Netzwerkanwen- Bescheidenheit zählt in der Regel nicht noch frühen Phase des SDN mit Open- dungen sowie Management- und Orches- zu den Tugenden großer IT-Unternehmen. Source-Software eine Grundlage schaffen, trierungssoftware. Dazu zählt die Open- Umso bemerkenswerter war es, als Erik auf der die Mitglieder ihre Produkte auf- Stack-Komponente Neutron, die für die Ekudden, oberster Technologie-Stratege bauen wollen. Als Lizenz für den Code, Gäste des Cloud-Computing-Frameworks bei Ericsson, konstatierte: „Keiner von hauptsächlich in Java und Python, haben Netzwerkverbindungen herstellt. Mit sol- uns ist groß genug, sich den Themen die Partner die Eclipse Public License cher Software kommuniziert der Control- Software Defined Networking und Net- (EPL) 1.0 gewählt. ler über ein REST-API. work Functions Virtualization allein zu Das erste greifbare Ergebnis der Zusam- stellen. Daher bleibt uns nur die Zusam- menarbeit ist die Release Hydrogen vom GiXbk`jZ_\j menarbeit.“ Das sagte er auf dem Open Februar 2014. Dabei handelt es sich ei- Daylight Summit im Februar 2014 R(T. gentlich um eine komplette Distribution Erste Gehversuche mit Open Daylight Die Veranstaltung fiel zusammen mit der von SDN-Software, denn Open Daylight macht der interessierte Admin am bes- ersten Release der SDN-Suite Open Day- besteht aus zahlreichen Unterprojekten, ten mit einem in Software nachgeahm- light, dem gemeinsamen Produkt vieler die einzelne Komponenten entwickeln. ten Netzwerk. Dazu bietet sich die freie Branchengrößen. Synchronisierte halbjährliche Releases Software Mininet an (siehe Artikel in sollen für Konsistenz sorgen. diesem Schwerpunkt). Praktischerweise >\d\`ejXd\jGifa\bk Den Kern von Open Daylight bildet der hält das Projekt virtuelle Linux-Applian- SDN-Controller. Dessen Komponenten ces mit vorinstalliertem Mininet vor R*T. Das Open-Daylight-Projekt R)T, im April teilen sich eine Java-Runtime und kom- Sie lassen sich mit verschiedenen Vir- 2013 gegründet, steht als so genanntes munizieren untereinander mit Funkti- tualisierungstechnologien betreiben, die Collaborative Project unter der Ägide der onsaufrufen. Unterhalb dieser Kontroll- Entwickler empfehlen Virtualbox. Des- Linux Foundation. Die Mitgliederliste schicht befindet sich das so genannte sen jüngste Versionen haben allerdings verzeichnet alles, was in der Netzwerk- Southbound Interface, wie 8YY`c[le^ ( gelegentlich Probleme mit den bereitge- branche Rang und Namen hat: Brocade, zeigt. In dieser Richtung liegt alles, was stellten OVF-Dateien. Es ist ratsam, von Cisco, Juniper und Citrix rangieren in der konkreter als die Control Plane ist (siehe Hand eine Ubuntu-VM mit 1 GByte RAM ersten Reihe zusammen mit Red Hat, IBM den Grundlagen-Artikel „Teile und herr- anzulegen und ihr das heruntergeladene und Microsoft. Das Projekt soll in der sche“ in diesem Schwerpunkt). VMDK-Image zuzuweisen. '+&)'(+ K`k\ck_\dX Während die virtuelle Maschine bootet, kann der Admin den Open-Daylight-Con- troller installieren. Voraussetzung dafür ist Java 7. Es stehen RPM-Pakete und Zip- Files zum Download R+T bereit, die Base- Ausgabe ist ausreichend. Virtuelle Linux- Fg\e;Xpc`^_k Appliances sowie Docker-Container sind ebenfalls im Angebot. Bei einer distribu- *0 tionsneutralen Installation aus dem Zip braucht man nach dem Entpacken nur das im Verzeichnis enthaltene Startskript

mit »./run.sh« auszuführen. nnn%c`elo$dX^Xq`e%[\ Mit laufendem Open Daylight und ein- satzbereiter Mininet-VM lässt sich ein einfaches Forwarding-Beispiel aus dem Projekt-Wiki nachvollziehen R,T. In die Konsole der virtuellen Maschine loggt sich der User »mininet« mit gleichlau- tendem Passwort ein. Dort erstellt er 8YY`c[le^)1;Xj`e\`e\iD`e`e\k$MD\dlc`\ik\K\jke\kqn\ibkXlZ_k`e[\i^iX]`jZ_\e;Xijk\ccle^`dN\Y$ mit dem folgenden Befehl ein einfaches `ek\i]XZ\[\jJ;E$:fekifcc\ijFg\e;Xpc`^_kXl]% Netzwerk mit baumartig angeordneten Switches in drei Ebenen: gramm findet sich der blaue Button »Add Software lässt sich clustern und erlaubt Gateway IP Address« als die der Anwen- daneben den Fernzugriff über die Java sudo mn --controller=remote,ip=IP-Adresse5 der eine IP-Adresse und Subnetz-Maske Management Extensions (JMX). Die Ser- --topo tree,3 wie »10.0.0.254/8« einträgt. vice Provider Edition der Software fügt Der Platzhalter »IP-Adresse« ist mit der Auf der Konsole der Mininet-VM lässt noch Plugins für die Protokolle BGP, von außen erreichbaren Adresse des sich nun ein Ping von einem virtuellen PCEP und SNMP4SDN hinzu. Außerdem Hosts zu ersetzen, auf dem Open Daylight Host zum anderen schicken, beispiels- gibt es eine Virtualization Edition mit läuft. Unter »http://IP-Adresse:8080« ist weise mit »h1 ping h7«. Dann wechselt dem Virtual Tenant Manager (VTN), der die Weboberfläche des SDN-Controllers man zurück zur Weboberfläche und dort den Anschluss an die Netzwerkkompo- zu finden (8YY`c[le^)), als Username zum Reiter »Troubleshooting«. Dort kann nente Neutron von Open Stack herstellt. und Passwort dient »admin«. der Admin unter »Existing Nodes« einen Die grafische Darstellung im Browser Knoten auswählen und unter »Flows« 8ljYc`Zb zeigt die sieben emulierten Switches, oder »Ports« Detailinformationen zu des- die etwas durcheinander aussehen. Per sen Verbindungen aufrufen. Wer nicht zur Entwickler-Community der Drag & Drop lassen sie sich übersichtli- Damit sind die Möglichkeiten von Open beteiligten Unternehmen gehört, tut sich cher anordnen. Unter dem Netzwerkdia- Daylight längst nicht ausgeschöpft. Die mit Open Daylight noch schwer. Die Do- kumentation im Wiki ist sehr bruchstück- haft und häufig nicht aktuell. Es bleibt abzuwarten, ob sich das bessert oder ob der Kunde auf die aufpolierten Produkte der Hersteller angewiesen sein wird. ■

@e]fj R(T Fg\e;Xpc`^_kJldd`k1 R_kkg1&&\m\ekj%c`elo]fle[Xk`fe%fi^&\m\ekj& fg\e[Xpc`^_k$jldd`kT R)TFg\e;Xpc`^_k1 R_kkg1&&nnn%fg\e[Xpc`^_k%fi^T R*T D`e`e\k$MDj1 R_kkg1&&d`e`e\k%fi^&[fnecfX[&T R+TFg\e$;Xpc`^_k$;fnecfX[j1R_kkg1&&nnn%

Ÿfg\e[Xpc`^_k%fi^ fg\e[Xpc`^_k%fi^&jf]knXi\&[fnecfX[jT 8YY`c[le^(1;`\q\ekiXc\Bfdgfe\ek\mfeFg\e;Xpc`^_k`jk[`\`eAXmX`dgc\d\ek`\ik\BfekifccjZ_`Z_k%D`k R,T@ejkXccXk`fele[\ijk\JZ_i`kk\1 g_pj`jZ_\ele[m`ikl\cc\eE\kqn\ib^\i€k\e lek\e bfddle`q`\ikj`\d`kk\cjGifkfbfcc$Gcl^`ej#d`kDXeX^\$ R_kkgj1&&n`b`%fg\e[Xpc`^_k%fi^&m`\n& d\ekjf]knXi\ fY\e g\iI

Bfdd\iq`\cc\J;E$Ld^\Yle^\eXcj8ck\ieXk`m\qlFg\e=cfn K`k\ck_\dX Elimfi\ijk\`e\E`jZ_\

+' N€_i\e[Fg\e=cfnmfe@[\Xc\ele[[\iK\Z_e`b^\ki`\Y\e`jk#q€_ck]•iBfeq\ie\ql\ijk[`\=iX^\#n`\j`Z_ Jf]knXi\;\]`e\[E\knfib`e^dfe\kXi`j`\i\ec€jjk%MfiXcc\dMDnXi\#XY\iXlZ_D`[fbliX#:`jZfle[@9D Yi`e^\e\`^\e\8ej€kq\XcjBfeblii\eqqlFg\e=cfn%DXik`eCfjZ_n`kq#DXiblj=\`ce\i#AXeBc\`e\ik nnn%c`elo$dX^Xq`e%[\

chen Underdog im SDN-Business stellt der Artikel stellvertretend Midokura vor. Das Unternehmen mit einer überschau- baren Anzahl an Büros weltweit bietet in Form von Midonet (R-T, BXjk\eÙ;\i Le[\i[f^ÆD`[fe\kÈ) auch einen SDN- Stack an, mit dem es gegen die großen Konzerne anzurennen versucht. Auch auf Seiten freier Software sind ei- nige Projekte im Spiel: Open Vswitch, Open Daylight, Ryu und noch einige Ni- schenprodukte tauchen auch im kommer- ziellen Zusammenhang immer wieder auf. Diesen Lösungen ist gemein, dass sie im Hintergrund Open Flow verwen- den. Anders ist das bei den kommerziel- len Produkten: Es existieren bis dato nur

=fkf1DXiblj=\`ce\i wenige echte Referenzinstallationen, die auf Basis der SDN-Software von VMware Wer sich mit dem Thema Software De- ware Defined Data Center (SDDC) titulie- oder Cisco arbeiten. Dieser Artikel kon- fined Networking beschäftigt, bekommt ren. Aus diesem Grund wundert es nicht, zentriert sich daher auf ein konkretes den Eindruck, SDN sei nur in Sachen dass die großen Unternehmen in letzter Beispiel mit VMware, das am längsten Cloud Computing interessant. Und in der Zeit ihre eigenen SDN-Lösungen propa- auf dem Markt ist und viele bekannte Tat fallen die Begriffe Cloud und SDN gieren. Nicht jedes von ihnen hatte al- Konzepte vereint. meist im gleichen Atemzug. Über den lerdings bereits passende Entwicklungen Umweg gängiger Cloud-Umgebungen und in der Schublade: VMware kaufte sein 8l]J_fgg`e^$Kfli dort insbesondere mit Hilfe von Open SDN-Angebot ein, übernahm die Firma Stack hat sich Open Flow mitsamt seinen Nicira und vermarktet die Software nun Angesichts der wachsenden Konkur- Frontends zu einem weithin akzeptierten als VMware NSX R*T. renz von Xen, KVM und vor allem Open Standard entwickelt. Und wer von SDN Die Konkurrenz hat den Trend ein wenig Stack hat der Virtualisierungs-Platzhirsch im Open-Stack-Kontext redet, meint da- verschlafen und versucht jetzt, aufzu- VMware in letzter Zeit viel Geld inves- mit fast immer das Open-Vswitch-Projekt holen: Cisco (R+T, BXjk\e Ù:`jZf le[ tiert, um vorhandene Funktionen mit R(T, das bekanntlich auf Open Flow zu- [XjJ;EÈ) wagt sich mit seinem Ansatz Cloud-Computing-Umgebungen unter rückgreift. gerade aus der Deckung und möchte An- einen Hut zu bringen. Ein gutes Beispiel teile am Netzwerkmarkt halten. Ganz er- liefert Open Stack, mit dem VMware mitt- <`eJk•ZbmfdBlZ_\e wartungsgemäß will auch Big Blue noch lerweile klaglos zusammenarbeitet: Ein ein Wörtchen mitreden (R,T, BXjk\e vorhandenes Vcenter lässt sich aus Open Diese Vereinnahmung des SDN-Begriffs Ù>Xeq]i`jZ_1@9DJ;EM<È) und geht Stack heraus problemlos ansprechen. kann Firmen wie VMware und Cisco frei- deshalb mit einer eigenen SDN-Software Langfristig genügte es VMware aber of- lich nicht gefallen. Denn selbstverständ- an den Start. fensichtlich nicht, nur den Markt für die lich möchten auch die Platzhirsche R)T Anders als im OSS-Umfeld ist der Markt Virtualisierung von Computing-Angebo- ein Stück des Kuchens abhaben, den sie kommerzieller SDN-Lösungen derzeit ten zu bedienen. Mit dem Anspruch, die griffig und Cloud-unabhängig als Soft- unübersichtlich. Als Beispiel für man- Messlatte im Sinne des Software Defined '+&)'(+ K`k\ck_\dX Seine Gründer sind aber immerhin standardisierte Interfaces ;\iEMG$JkXZb`eEJO Nick McKeown, Scott exponiert und dabei deutlich mehr zu DXeX^\d\ekle[ HlXekldle[ Shenker und Martin bieten hat, als es bei Open Vswitch ab Fg\iXkfi$Kffcj HlXekld$8G@ Casado. Gerade der Werk der Fall ist. Dritte profilierte sich EMG$8G@ als treibender Kopf I\cXleZ_lek\i\`e\d hinter der Entwick- Xk\nXpj J\im`Z\$Ef[\j ?pg\im`jfi\e schaftliche Arbeit an wohl die Software als auch die gesamte der Uni in Stanford Entwicklertruppe von Nicira. Kurze Zeit E\kqn\ib$?Xi[nXi\le[g_pj`bXc`jZ_\jE\kq

hat Open Flow eine später folgte ein Relaunch von NVP als nnn%c`elo$dX^Xq`e%[\

ŸPm\j=Xlj\i#MDnXi\ definierte Grundlage VMware-Brand: VMware NSX war gebo- 8YY`c[le^(1E`Z`iXjEMG`jkele9\jkXe[k\`cmfeMDnXi\jEJO%;`\>iX]`b verschafft, und auch ren, NVP wurde ein Teil davon. Welche q\`^k#n`\j`Z_MDnXi\[\e^Xeq\eJkXZbmfijk\cck% Open Vswitch geht auf Komponenten von NSX ein Kunde zum das Konto von Nicira. Einsatz bringt, hängt von der Infrastruk- Data Center selbst anzulegen, knöpfte VMware erwarb also nicht irgendein Un- tur vor Ort ab: Wer bis dato nur auf sich VMware mit dem Software Defined ternehmen, sondern eine der wichtigsten Vsphere, Vcenter und Co. gesetzt hat, Networking ein weiteres Ziel auf dem Firmen im SDN-Land. benutzt lediglich den Controller-Cluster Weg vor. Anstatt aber ein eigenes Ent- von NVP und setzt bei den Hypervisoren wicklerteam für ein passendes Produkt EMG mittelfristig auf den zuvor schon vorhan- aufzubauen, angelte sich der Konzern denen Virtual Distributed Switch (8YY`c$ kurzerhand Nicira R.T, einen der Vor- Vorrangig gekauft hat VMware Nicira [le^)). reiter und quasi das Bootcamp für SDN- aber wohl wegen der Network Virtualiza- Kommen Linux-Hypervisoren auf Basis Experten im IT-Bereich. tion Platform (NVP, 8YY`c[le^(), einem von KVM oder Xen zum Einsatz, sieht die von Nicira entwickelten Open-Flow- und Sache anders aus: Dann übernimmt NVP E`Z`iX Open-Vswitch-Aufsatz. Das Produkt war praktisch durchgehend das Kommando. quasi ein Framework um Open Vswitch Dass sich NVP ursprünglich im Linux- Das amerikanische Unternehmen Ni- herum, das die in Open Flow vorgese- Kontext wohler fühlte als im klassischen cira war durchaus kein Unbekannter. hene Funktionalität über kommerzielle VMware-Universum, lässt sich auch aus

:`jZfle[[XjJ;E J;E\ekq`\_k[\iE\kqn\ib_Xi[nXi\^\n_e$ Q•^\ mfe J;E Xl]n`\j le[ Xl] [\i Xe[\i\e f]]\e^\c\^kle[c€[kFg\e$JfliZ\$Gifa\bk\n`\ c`Z_ @ek\cc`^\eq le[ •Y\iki€^k j`\ Xl] __\i\ J\`k\]lebk`fe\cci\Z_kn\`k`ejGi`mXk\:cfl[ Fg\eJkXZb[Xql\`e#`_i\Kffcjql`ek\^i`\i\e%  XYjkiXbk\ JZ_`Z_k\e% ;Xj bfddk =`id\e n`\ :fdglk`e^_`e\`ei\`Z_k\% 8G@:ile[cX^\ bi\jjfliZ\ele[J`Z_\i_\`kji`Z_kc`e`\eqlle[ le[$KiflYc\j_ffk`e^n\i[\ecXlk:`jZf[Xd`k Y`c[\k [`\ :`jZf$Jpjk\djf]knXi\ @FJ# @FJ$OI m\ik\`ckql^c\`Z_[`\CXjk\ele[;liZ_j€kq\% \]]`q`\ek\i#[Xj`Z_[Xj^\jXdk\E\kqn\ibXcj le[EO$FJ%Ql[\d_Xkk\[\i?\ijk\cc\i]•i[`\ D`k [\d ]i\` gif^iXdd`\iYXi\e 8G@: cXjj\e <`e_\`kY\kiXZ_k\ecXjj\% ;Xj\jZ_€]ke`Z_kql^\]€_i[\e%Ldjfd\_i•Y\i$ cXl]\e% M`ikl\cc\ DXjZ_`e\e Æ :`jZf m\iki€^k Z_\:`jZf$E\kqn\ibgif[lbk\le[Y\j`kqkql[\d iXjZ_k\ \j# Xcj :`jZf c\kqk\e Efm\dY\i \`e\ j`Z_d`kXcc\e^€e^`^\e?pg\im`jfi\eÆj\`\e E\kqn\ibjZ_e`kkjk\cc\eqlFg\e=cfnle[Xe[\$ \`^\e\Xen\e[le^jq\eki`\ik\le[i\Z_\eq\ek$ ql[\d `e n\e`^\e D`elk\e \`ejXkqY\i\`k le[ i\e;i`kkXeY`\k\ie#XlZ_jfcZ_\e#[`\N8E$le[ ildjn\`k\8iZ_`k\bklimfijk\cck\#[`\[\lkc`Z_\ `eXk\nXp C*$>Xk\nXp C)$>Xk\nXp C)$>Xk\nXp Controller verbunden

N\Y 8gg N\Y ;9 ;9 8gg :fdglk\ Consumer für dieses

ŸPm\j=Xlj\i#MDnXi\ API, ein umfangrei- 8YY`c[le^)18l]g_pj`bXc`jZ_\i

>Xeq=i`jZ_1@9DJ;EM< ;\iLe[\i[f^ÆD`[fe\k F]]\ej`Z_kc`Z_dZ_k\9`^9cl\[\eJ;E$Ql^e`Z_km\igXjj\ele[Yi`e^k N`\MDnXi\jEJO`jkXlZ_D`[fe\kmfeD`[fbliX]\jk`d:cfl[$J\^d\ek d`k\knXjM\ijg€kle^\`e\`^\e\jJ;E$Gif[lbkXl][\eDXibk%Bliqmfi m\iXeb\ik%8cj^if\eMfik\`cj\`e\iGif[lbk\jk\cck[\i?\ijk\cc\i[`\ I\[Xbk`fejjZ_cljj#Xd.%=\YilXi)'(+#m\i]]\ekc`Z_k\[XjLek\ie\_$ BfdgXk`Y`c`k€kqlFg\eJkXZb_\iXlj%;Xd`kY\^`Ykj`Z_D`[fe\k`e[`$ d\e\`e\Gi\jj\d`kk\`cle^#cXlk[\i@9DjJ;EM<`eB•iq\qliM\i]•^le^ i\bk\Bfeblii\eqqlEJO#_XkXY\i\`e\[\lkc`Z_bc\`e\i\Lj\i$9Xj`j% jk\_\%;Xj8bifepdjk\_k]•iÙJf]knXi\;\]`e\[E\knfib`e^]fiM`iklXc Bfeq\gk`fe\cc€_e\cej`Z_EJOle[D`[fe\k#le[n`\MDnXi\_XkD`[fe\k Xk\nXpj  Gi\`j\6EliD`[fbliXkiXlkj`Z_ JfXiY\`k\k@9D\`e\ij\`kjXl]9Xj`j[\iFg\e$;Xpc`^_k$K\Z_efcf^`\le[ m\i]fc^kql[\d\`e;\j`^e#[Xj[\dmfeMDnXi\jEJO€_e\ck#`e[\d\j 8l]jZ_cljji\`Z_jZ_\`ekXlZ_[`\KXkjXZ_\#[XjjmfeXcc\eXe^\]iX^k\e \`e\eq\ekiXc\e:fekifcc\ic`\]\ik#[\i[`\Bfe]`^liXk`fejg\`Z_\ik%8e$ Lek\ie\_d\eeliD`[fbliX`e[\iCX^\nXi#`ee\i_XcYmfeqn\`NfZ_\e [\i\ij\`kj^\j\cc\ej`Z_Fm\icXpjle[>Xk\nXpjqlE`Z_k$J;E$E\kq\eÆ Gi\`j\le[\`eJlggfikdf[\ccqle\ee\e#fYnf_cXlZ_[`\j\i?\ijk\cc\i XlZ_[Xj\`e\mfeMDnXi\Y\bXeek\Mfi^\_\ejn\`j\%@9Dlek\ijki\`Z_k Y\k\l\ik\# `e [`\j\i 9iXeZ_\ le[ Y\` [`\j\e Gif[lbk\e ]€e[\e j`Z_ [liZ_j\`e\e<`ejk`\^`e[Xj>\jZ_€]ka\[\e]Xccj[`\9\[\lkle^mfeJ;E1 \_\i`e[`m`[l\cc\Gi\`j\gifGifa\bk%@e\`e\d\`e]XZ_\eJq\eXi`fd`k 9`^9cl\n•i[\j`Z_nf_ce`Z_kd`k[\iJXZ_\Y\jZ_€]k`^\e#_`\ck\[Xj Gi\d`ld$Jlggfik )+&. e`ddk[\i?\ijk\cc\ild[`\)'''

EfmX:fdglk\ über eine Zusatzkom- nnn%c`elo$dX^Xq`e%[\ Gfik@;

ŸPm\j=Xlj\i#MDnXi\ ponente (nämlich den 8YY`c[le^*1Fg\eJkXZbn`i[qld:fejld\imfeEMG%;Xeb[\jgXjj\e[\eGcl^`ej¿ DHCP-Dienst) sorgen sie auch dafür, dass tiert die Firma einen großen Teil ihrer Ar- ausschließt: VLANs beispielsweise sind Kunden-VMs IP-Adressen erhalten, die beit derzeit auf diese Komponente – ein tendenziell eine statische Angelegenheit. zum jeweiligen privaten und virtuellen weiterer Beleg dafür, dass VMware diese Ein Kunde in der Cloud will aber nicht Kundennetzwerk passen. Die Verwaltung Technologie für strategisch wichtig hält. darauf warten, dass ein Admin ein VLAN der Netzwerktopologie obliegt in typi- Deutlich eleganter wirkt VMwares NSX auf allen Switches einrichtet. schen Cloud-Setups allein dem Kunden, mit seiner Kernkomponente NVP. Für Freilich ist es aber auch in einer Cloud der sich seine privaten Netze so anlegen freie Cloud-Lösungen wie Open Stack notwendig, dass die VMs verschiedener kann, wie es ihm gefällt. Im Idealfall oder Cloud Stack hat Nicira NVP ja ei- Kunden über die Grenzen von Compu- entsteht so ein Setup, in dem jeder Kunde gentlich entwickelt. Dass es sich hier ting-Knoten hinweg sicher kommuni- nach seiner Facon glücklich wird, wäh- auch mehr zu Hause fühlt, spürt der zieren. Im SDN-Konstrukt muss also ein rend der Anbieter sich über eine hoch- Admin vielerorts. Ersatz für VLANs her, der die sichere gradig flexible Installation freut. Im Open-Stack-Kontext greifen die einzel- Kommunikation von VMs einzelner Kun- nen Komponenten von NVP fast nahtlos den innerhalb des Setups garantiert. E\lkifeXcj9cXlgXlj\ ineinander: Auch hier gibt es natürlich Für die Cloud geht man deshalb typi- den Controller-Cluster samt API und scherweise von mehreren, rein virtuellen Open Stack Neutron, die SDN-Kompo- Webinterface, der sich um alle Belange Layern aus (siehe auch 8YY`c[le^ )): nente der Cloud-Umgebung, bildet für der NVP-Konfiguration kümmert. Hinzu Zwischen den einzelnen Computing-Kno- diese Art der Installation quasi die Blau- kommen diverse Zusatzkomponenten, ten entspannt sich ein virtuelles Layer- pause. In einer Standardinstallation küm- die im Cloud-Kontext eigene Rollen über- 2-Netzwerk, das physikalisch auf dem mern sich bei Open Stack Open Flow und nehmen. J;E`e[\i :cfl[

Wer die Funktionen der einzelnen NVP- Komponenten verste- hen will, braucht ein wenig Hintergrund- wissen über SDN, Cloud Computing und Netzwerke im Allge- meinen, weil sich in einer Wolke ganz an- dere Anforderungen stellen als in konven- tionellen Setups. SDN- Deployments müssen in hohem Maße dyna- misch sein, was den Einsatz klassischer Technologien häufig 8YY`c[le^+1¿cXjj\ej`Z_gifYc\dcfj[`\EMG$=lebk`fe\eXljE\lkife_\iXljelkq\e% '+&)'(+ K`k\ck_\dX Open Vswitch Hand in Hand darum, die pervisor-Verbund mit GRE-Verbindun- gewollten Effekte zu erreichen. gen ein echtes Denial-of-Service starten, das wahllos VMs beeinträchtigt. Indem N`\gXjjkEMG_`\ii\`e6 VMware diesen Traffic an separate Hosts auslagert, verringert es die Gefahr deut- Die physikalische Netzwerktopologie ei- lich. \i_Xi[ CfjZ_n`kq lich einen Weg, den Fuß auch bei den XiY\`k\k Xcj Gi`eZ`gXc :fe$ Unternehmen in die Türe zu kriegen, @e]fj jlckXekY\`_Xjk\of%iX]ÙN€_c\i`jZ_\iGcXkq_`ijZ_È1 JkXZb%@ej\`e\i=i\`q\`kg]c\^k\iGXZ\dXb\i]•i selten scheint es, als schiele man bei C`elo$DX^Xq`e'/&('#J%.' ;\Y`Xe% '+&)'(+

K\jkY\kk]•iJ;E K`k\ck_\dX JXe[bXjk\ejg`\c\ D`e`e\k

+- ;XebD`e`e\kbfejkil`\ikG_`c`gN\kk\j\`e\J;E$Kfgfcf^`\eqle€Z_jk`dJXe[bXjk\e#Y\mfi\ij`\Xl]\`e\ q`\dc`Z_\inXZ_j\e\I\Z_e\i]Xidcfjc€jjk%EXd\jgXZ\j`dB\ie\cdXZ_\e\jd^c`Z_%G_`c`gN\kk\ nnn%c`elo$dX^Xq`e%[\

Linux-Kernel bereits seit einiger Zeit an- bietet. Beispielsweise verzichtet Mininet auf eine vollständige Virtualisierung und

Ÿ`dX^\YXmXi`Xj#()*I=%Zfd emuliert virtuelle Switches und Hosts als einfache Prozesse auf einem gemeinsa- men Hostsystem. Weil sich diese Prozesse aber wie indi- viduelle, miteinander vernetzte Geräte verhalten sollen, muss der Kernel sie voneinander trennen. Hierbei machen sich die mit Version 2.2.24 eingeführten Network Namespaces R*T nützlich. Sie ermöglichen es, Prozesse mit individuel- len Netzwerkschnittstellen sowie eigenen Routing- und Arp-Tabellen auszustatten. Jeder Prozess verfügt über einen eigenen Netzwerkkontext, die Kommunikation wickeln zwei Prozesse über die ihnen zu- Mit einem einfachen Software-Update Hosts über die maximale Anzahl an Swit- geordneten virtuellen Netzwerkschnitt- für den Open-Flow-Controller ändert ches und virtuellen Hosts bestimmt. Über stellen ab. ein Netzwerk-Admin oft das komplette einen Open-Flow-Controller kontrolliert Prozesse reden allerdings nur direkt mit- Verhalten eines Open-Flow-organisierten und steuert der Admin dieses Testnetz einander, wenn zwischen ihren Netz- Netzwerks R(T. Das Update kann er selbst dann nach Gutdünken. Doch das ist nicht werkschnittstellen eine Art virtuelles schreiben, schließlich stehen die meisten alles: Die emulierten Hosts führen jedes Kabel existiert. Das setzt Mininet mit Controller unter Open-Source-Lizenzen. unmodifizierte Linux-Programm aus. So den so genannten Veth Pairs um, die den Doch wie findet er heraus, ob seine Con- prüft der Betreiber ohne Aufwand, ob Paketaustausch zwischen zwei Schnitt- troller-Erweiterung auch mit der Topolo- und wie sich das veränderte Netzwerk stellen erlauben. gie des Produktivnetzwerks harmoniert? auf einzelne Programme auswirkt, die in 8YY`c[le^( illustriert, wie es der Kernel Dumm wäre es, wenn er sie aktiviert und ihm laufen. über die Network Namespaces ermög- plötzlich das Routing oder die Firewall Mininet testet aber nicht nur neue Rou- licht, einen Rechner mit einem Netzwerk Amok laufen. Will er das Update zu- ting- und Forwarding-Regeln auf Herz auszustatten, das über zahlreiche Schnitt- nächst ausgiebig in einer kontrollierten und Nieren. Will ein Admin die Topolo- stellen verfügt. In dem dargestellten Bei- Umgebung testen, stößt er schnell auf gie eines realen Netzwerks verändern, spiel hängen die zwei virtuellen Hosts H1 Mininet R)T. kann er die Folgen bereits im Vorfeld über und H2 an einem gemeinsamen Switch Mini net emulieren oder er verwendet es, S1. Bash-Prozesse emulieren jeweils H1 JXe[bXjk\e]•iE\kqn\ib\i um neue Netze noch in der Planungs- und H2, der Switch S1 läuft im Root Na- phase zu evaluieren. mespace, in dem auch der Linux-Kernel Mininet braucht nur ein einziges Linux- operiert. H1 und H2 bringen jeweils ei- System, um ein Netzwerk zu emulieren, >i`]]`e[`\Ki`Zbb`jk\ gene Network Namespaces und eigene das bei Bedarf Hunderte von virtuellen Netzwerkschnittstellen mit, »h1-eth0« Switches und Hosts entfaltet. Es bildet Damit Mininet die große Zahl an virtuel- beziehungsweise »h2-eth0«. also ein komplettes Netzwerk mitsamt len Switches und Hosts auf einem phy- Der Switch S1 verfügt nur über zwei angeschlossenen Computern auf einem sikalischen Rechner nachbildet, nutzt es Ports, »s1-eth0« und »s1-eth1«, die ihn Rechner ab, wobei die Hardware des einige ausgefeilte Technologien, die der über Veth Pair mit den entsprechenden F=$:fekifcc\i

K:G D`e`e\k

¾\k_'½ IffkEXd\jgXZ\

Jf]knXi\jn`kZ_

JfZb\k JfZb\k

¾j($\k_'½ ¾j($\k_(½

M\k_GX`i M\k_GX`i ¾_($\k_'½ ¾_)$\k_'½

Gifq\jj( Gifq\jj)

?($EXd\jgXZ\ ?)$EXd\jgXZ\

8YY`c[le^(1D`e`e\kelkqk[`\E\knfibEXd\jgXZ\j`dB\ie\c#ldXl]\`e\d?fjkmfe\`eXe[\ij\gXi`\ik\ m`ikl\cc\?fjkjle[Jn`kZ_\jXeqlc\^\e%

Schnittstellen der Hosts verbinden. Die der maximalen Datenrate eines jeden Kommunikation zwischen H1 und H2 er- emulierten Links zusätzlich dessen Paket- folgt somit ausschließlich über S1. fehlerrate und Latenz. Daneben legt der Ein Softwareswitch spielt den Paket- Admin über »tc« das Buffering-Verhalten vermittler zwischen den Schnittstellen der Netzwerkschnittstellen fest. Dies be- »s1-eth0« und »s1-eth1«. Er läuft im Root stimmt darüber, wie die Schnittstellen in Namespace, verwendet die physikalische einer Überlastsituation mit Paketen um- Schnittstelle »eth0« und wartet auf Be- gehen. Hier kommen neben einem ein- fehle des Open-Flow-Controllers, die ihn fachen First-in-first-out-Verfahren (Fifo) über das Open-Flow-Protokoll erreichen. auch komplexere Techniken wie Random Der Controller läuft meist außerhalb des Early Detection (RED) zum Einsatz. Mininet-Hosts, oft auch auf anderen Ma- schinen im Netzwerk. Fg\e$=cfn$M\ij`fe\e Mininet bringt jedoch auch selbst Con- troller mit, die sich über das Installa- Generell kommt Mininet mit verschiede- tionsskript einspielen lassen: Nox R+T, nen Softwareswitches zurecht, die wiede- den Open-Vswitch-Controller R,T sowie rum zu unterschiedlichen Versionen von den Referenz-Controller von Open Flow Open Flow kompatibel sind. Die aktuelle 1.0 R-T. Die drei laufen auf derselben Mininet-Version 2.1 liefert in der Stan- physikalischen Maschine wie Mininet, dardinstallation native Unterstützung für reden über das lokale Loopback Device den Referenzswitch von Open Flow 1.0 mit dem Switch und lassen sich über das R-T, den Indigo Virtual Switch R/T sowie Mininet-CLI starten. für Open Vswitch R0T. Die Referenzim- Um den emulierten Kabeln bestimmte plementierung ist ein reines Userspace- Eigenschaften zuzuweisen, instruiert Programm, während die beiden anderen Mininet das im Linux-Kernel verankerte als Kernelmodule laufen und daher eine Traffic-Shaping-Werkzeug »tc« (Traffic wesentlich höhere Performance bei ge- Control, R.T). Das Tool reguliert neben ringerem Forwarding Delay erzielen (KX$ Y\cc\(). KXY\cc\(1Lek\ijk•kqk\Jn`kZ_\j Alle drei Switches im- Jf]knXi\jn`kZ_ Fg\e$=cfn$M\ij`fe Df[lj plementieren Open Flow 1.0. Wer mit der I\]\i\eq`dgc\d\ek`\ile^ (%' Lj\ijgXZ\ neuen Version Open @e[`^fM`iklXcJn`kZ_ (%' B\ie\cjgXZ\ Flow 1.3.x R('T expe- Fg\eMjn`kZ_ (%' B\ie\cjgXZ\ rimentieren möchte, F]jf]kjn`kZ_(* (%* Lj\ijgXZ\ kann den Referenz- '+&)'(+ K`k\ck_\dX D`e`e\k

+/

8YY`c[le^)1;Xeb[\jGpk_fe$8G@c€jjkj`Z_D`e`e\kd`k\`e\i?Xe[mfcc9\]\_c\ 8YY`c[le^*1N\in`cc#bXeej\`eK\jke\kqXlZ_d`k?`c]\\`e\i^iX]`jZ_\eFY\i$ lde\l\?fjkj\in\`k\ie#[`\[\i8[d`eXlZ_^c\`Z_bfe]`^li`\ik% ]c€Z_\\ekn\i]\e#[`\Jf]knXi\_\`kD`e`<[`k% nnn%c`elo$dX^Xq`e%[\ switch gegen die Variante von Open Flow # py net.addLink(net.get("S1"), net.get5 ein Netz mit höherem Datenaufkommen 1.3 (»ofsoftswitch13«) austauschen. Dies ("H3")) emulieren möchte, kann auf mein Projekt klappt am einfachsten, wenn der Admin Maxinet R(*T zurückgreifen, das Mininet Mininet mit und aktiviert die neue Schnittstelle von auf mehrere physikalische Rechner ver- S1. Dafür muss er zunächst den Namen teilt. (kki) ■ # mininet/util/install.sh -n3fx der neuen Schnittstelle herausfinden. installiert. Dank der Option liefert der Dies geschieht mit: Netzwerkemulator eine zu Open Flow 1.3 @e]fj # py net.get("S1").intfList() kompatible Version von Nox aus. R(T D`e`e\k$N\Yj\`k\1R_kkg1&&d`e`e\k%fi^T [, , ,5 ] R)T ?\`dXkmfeFg\e=cfn1 @ek\iXbk`fed`kD`e`e\k R_kkgj1&&nnn%fg\ee\knfib`e^%fi^T Mit dem Wissen, dass der Name »s1-eth3« R*T E\knfibEXd\jgXZ\j1 Mininet bietet ein umfangreiches Python- lautet, darf der Mininet-Betreiber die R_kkg1&&Ycf^%jZfkkcfn\%fi^&)'(*&'0&'+& API R((T an, über das der Admin das ge- Schnittstelle nun aktivieren: `ekif[lZ`e^$c`elo$e\knfib$eXd\jgXZ\j&T samte Verhalten jeder einzelnen Kompo- R+T Efo$:fekifcc\i1R_kkg1&&nnn%efoi\gf%fi^T # py net.get("S1").attach("s1-eth3") nente steuert. Er kann darüber die Topo- R,T Fg\e$Mjn`kZ_$:fekifcc\i1 logie des Netzes bestimmen, beliebige Abschließend muss der Admin noch die R_kkg1&&fg\emjn`kZ_%fi^&Z^`$Y`e&fmjdXe% Prozesse auf Hosts starten, dynamisch IP-Adresse von H3 konfigurieren: Z^`6gX^\4lk`c`k`\j)=fmj$Zfekifcc\i%/T die Parameter einer Netzwerkschnittstelle R-T Fg\e=cfn(%'#I\c\Xj\Efk\j1 # py net.get('H3').cmd("ifconfig h3-eth0 5 verändern und Ports von Switches wäh- R_kkg1&&XiZ_`m\%fg\e]cfn%fi^&nb&`e[\o% 10.0.0.3") rend der Emulation ab- und wieder ein- g_g&Fg\e=cfnV(%'Vi\c\Xj\Vefk\jT schalten. Um das Verhalten eines Netz- Ein Ping-Test prüft zum Schluss, ob der R.T BcXljI\Z_\ik#GXki`ZbDZ?Xi[p#ÙMfi$ werks in einem dynamischen Umfeld zu Host H1 den neuen Host H3 erreicht. Wie [i€e^c\iÈ1C`elo$DX^Xq`e')&)'',#J%)/ beobachten, ermöglicht es Mininet sogar, 8YY`c[le^ ) zeigt, ist der Test erfolg- R/T @e[`^fM`iklXcJn`kZ_1 während einer laufenden Emulation zu- reich. Eine ausführliche Demonstration R_kkg1&&nnn%gifa\Zk]cff[c`^_k%fi^& sätzliche Switches, Hosts und Netzwerk- der Mininet-Fähigkeiten zeigt der Open- `e[`^f$m`iklXc$jn`kZ_&T schnittstellen zu ergänzen. Flow-Artikel in diesem Schwerpunkt. R0T Fg\eMjn`kZ_1R_kkg1&&fg\emjn`kZ_%fi^T Eine Besonderheit von Mininet ist der R('TFg\e$=cfn$Jg\Zj1R_kkgj1&&nnn% erwähnte interaktive Kommandozeilen- =Xq`k fg\ee\knfib`e^%fi^&j[e$i\jfliZ\j& modus (CLI-Modus). In ihm setzt der fe]$jg\Z`]`ZXk`fej&fg\e]cfnT Benutzer während einer laufenden Emu- Mininet eignet sich hervorragend, um au- R((T Gpk_fe$8G@mfeD`e`e\k1 lation Befehle auf Hosts ab. Zusätzlich tomatische Netzwerkexperimente unter R_kkg1&&d`e`e\k%fi^&Xg`&XeefkXk\[%_kdcT erlaubt er es, Python-Code einzutippen realitätsnahen Bedingungen umzuset- R()TD`e`<[`k1R_kkg1&&^i\^fip^\\%nfi[gi\jj% und auszuführen, der etwa die Topologie zen. Der CLI-Modus macht es zu einem Zfd&ZXk\^fip&d`e`\[`k&T des Netzes interaktiv verändert. handlichen Werkzeug für Rapid-Proto- R(*T DXo`e\k1R_kkg1&&nnn%Zj%le`$gX[\iYfie% Um zu prüfen, ob der verwendete Open- typing-Entwicklungen von Controller- [\&6dXo`e\kT Flow-Controller mit dynamisch auftau- Erweiterungen, zudem gibt es mit Mini chenden Rechnern zurecht kommt, soll Edit (8YY`c[le^ *) auch ein GUI zum ;\i8lkfi das folgende Beispiel ein bestehendes Anlegen von Netzwerken R()T. G_`c`g N\kk\ `jk ;fbkf$ Netz um einen Host »H3« erweitern: Weil Mininet aber auf nur einem Rech- iXe[ Xe [\i Le`m\ij`k€k ner läuft, ist seine Leistungsfähigkeit be- GX[\iYfie% @d IX_d\e # py net.addHost("H3") grenzt. Auf einem i7-Prozessor mit 3,2 [\j Jfe[\i]fijZ_le^jY\$ GHz Taktrate schafft Mininet zum Bei- i\`Z_\j 0'( lek\ijlZ_k \i Im nächsten Schritt verkabelt der Betrei- spiel einen Gesamtdatendurchsatz von [`\ I\bfe]`^liXk`fe mfe ber den Host mit S1 höchstens 2,3 GBit pro Sekunde. Wer E\kqn\ibkfgfcf^`\e[liZ_Fm\icXp$E\kq\% ()&)'(' '+&)'(+

@e\`^\e\iJXZ_\1;$;M; Jf]knXi\ Befgg`o#=fj[\d#DX^efc`X <`e]•_ile^

+0 8lZ_[`\j\eDfeXkY\bfdd\e[`\;$B€l]\in`\[\i[`\[fgg\ck\;Xk\ed\e^\qld\`e]XZ_\eGi\`j1Mfe [\i;M;Yffk\k\obclj`mBcXljBefgg\ijD\[`Xc`eo:\Y`k<[`k`fe#[Xql^`YkËj=fj[\d$M`[\fj#\`e<$9ffb#qn\` MDjle[a\[\D\e^\Jf]knXi\%DXiblj=\`ce\i nnn%c`elo$dX^Xq`e%[\

System enthält er Pro- @e_Xck gramme und Tools, ,' Befgg`o.%* die in der jeweiligen BcXljBefgg\ijC`m\$9\ki`\Yjjpjk\d`e Magazin-Ausgabe ge- [\ie\l\jk\e$DX^efc`XY`\k\kXkkiXbk`m\ es nicht im Heft abge- Ql^XY\e[\j?\ijk\cc\ij% handelte Software, die ,/ 9`kgXiX[\ die Redaktion beson- Jf]knXi\]•i[`\;liZ_]•_ile^le[8lj$ ders empfiehlt, alles n\ikle^mfeFec`e\$Ld]iX^\e% gebündelt unter einer -- B;<=iXd\nfibj, ;`\B;<=iXd\nfibj,jfcc\eFi[ele^`e HTML-Oberfläche. [\e9`Yc`fk_\b\e$NljkYi`e^\e%E\Y\e$ Y\`gif]`k`\i\edfY`c\>\i€k\le[[\i Befgg`o 8en\e[\i#\idljjn\e`^\i`ejkXcc`\i\e% 8YY`c[le^(1efd\% J\Z_jN\ibq\l^\#[`\[\e8[d`e$8cckX^ bootet, landet bei der \ic\`Z_k\ie% neuesten Ausgabe von Klaus Knoppers Bitparade und den Tooltipps gibt es auch Knoppix, der Version 7.3 „Medialinx vier Videos mit knapp vier Stunden Lauf- Neben einem normalen Linux-Magazin Cebit Edition“ (8YY`c[le^ (). Das für zeit aus Brüssel. Da traf sich Anfang Fe- und dem Abonnement ohne Datenträger den Betrieb ohne Festplatteninstallation bruar die Open-Source-Welt zur Fosdem gibt es die DELUG-Ausgabe mit Monats- konzipierte System basiert wie üblich und hatte viel zu besprechen, vom Kernel DVD, bei der die Redaktion den Daten- auf Debian GNU/ Linux, genauer: aus bis zur NSA-Affäre (8YY`c[le^ )), von träger nach einem speziellen Konzept einem Mix von Debian Stable (Wheezy) BSD über Wikipedia-Strategien bis hin zusammenstellt: In einer Art modularem sowie Grafiktreibern und Desktop-Pro- zu Android. grammen aus Jessie. Ein eigener Artikel in MD#<$9ffb#Jf]knXi\ der Software-Rubrik dieses Heftes beschäf- Freunde leistungsstarker Contentma- tigt sich explizit mit nagement-Systeme greifen zum Magno- den vielen Neuerun- lia-CMS, das der Hersteller – erweitert gen dieser Knoppix- um schicke Funktionen – als virtuelle Ausgabe exklusiv fürs Maschine zur Verfügung gestellt hat. Linux-Magazin. Auch dazu erläutert ein eigener Artikel in diesem Heft, was die VM kann und wie M`[\fj sie in Betrieb gelangt. Damit nicht genug: Passend zum Ti- Wer die DELUG-DVD telthema gibt es auf der DVD ein kosten- umdreht, findet in loses E-Book aus dem Verlag O’Reilly: einem HTML-Menü Das „Praxishandbuch VMware Sphere 5“ zahlreiche weitere von Ralp Göpel, dazu noch eine virtuelle 8YY`c[le^)1Bfjk\ecfjXl][\i;$;M;1M`[\fjmfe[\i=fj[\d%MXi$ Inhalte. Neben jeder Maschine mit Mininet und Whitepapers e`j_$le[9J;$

,' BcXljBefgg\i#j\`kc\kqk\dAX_id`kGif]\jjfi\ek`k\c#jk\cckqli:\Y`k)'(+j\`e\Befgg`o.%*D\[`Xc`eo<[`$ k`femfi%@d8ik`b\c^`Yk\i^c\`Z_j\cYjk<`eYc`Zb\`e;`jki`Ylk`fej$@ek\ieXle[i•Zbk[`\Yc`kq^\jZ_\`k\Lg$ [Xk\]lebk`fe]•iLJ9$Jk`Zbjjfn`\[XjL<=@$9ffk\e`eji\Z_k\C`Z_k%BcXljBefgg\i nnn%c`elo$dX^Xq`e%[\

■ Gnome 3.8.4 (Bootoption »knoppix desktop=gnome«) ■ Einfacher Desktop-Export via VNC und RDP für Remote Desktop View- ing unter Linux und Windows (8Y$ Y`c[le^)) ■ Smbmount-knoppix, das Such- und Mount-Utility für Samba-Netzlauf- werke ■ Chromium 31.0.1650.63, Icewea- sel 26.0 mit Adblock Plus 2.4.1 und Noscript 2.6.8.14, aktualisierter Text- browser Elinks ■ Libre Office 4.1.4 und Gimp 2.8.6 ■ Wine 1.5 ■ Virtualbox 4.3.2 und Qemu-kvm 1.7.0 ■ Mutt-Vorlagen zur Mailkonfiguration

Ÿ8l[i`ljD\i]\c[Xj#()*I=%Zfd ■ automatische Blattlageerkennung im Scanprogramm Adriane-ocr und Tas- Seit über einem Jahrzehnt erscheinen Für Systeme mit mehr als 4 GByte RAM taturlernprogramm Karl im Adriane auf meine Initiative hin unter dem Na- startet mit der Bootoption »knoppix64« Audio Desktop men Knoppix („Knoppers Unix System“) alternativ ein 64-Bit-Kernel (8YY`c[le^ ■ Auf Wunsch der Linux-Magazin- jährlich etwa zwei Zusammenstellungen (). Möglich werden so auch Systemre- Redaktion: Adobe Reader und Flash- von Linux-Software. Knoppix bootet von paraturen in 64-Bit-Umgebungen per player-Plugin (8YY`c[le^*). DVD oder USB-Flashdisk und läuft sofort Chroot. Hier eine sehr kurz gefasste Liste Die meisten anderen Programme tragen fertig konfiguriert los – ohne auf einer mit Highlights der neuen Version: neue Versionsnummern, nur fallen die Festplatte installiert zu sein. Die enthal- ■ Experimentell unterstützter UEFI-Boot Änderungen nicht so spektakulär aus. tene Software eignet sich zum Arbeiten, (32 und 64 Bit) von USB-Sticks Surfen im Internet, Spielen, Unterrichten, ■ LXDE, der schlanke Knoppix-Stan- K\`cjjZ_n`\i`^#%%% Lernen, Programmieren und Retten von darddesktop mit dem Dateimanager Daten defekter Betriebssysteme. Pcmanfm 1.1.2 Knoppix hält Schritt mit der fortlau- Die pünktlich zur Cebit 2014 fertig ge- ■ KDE 4.8.4 (Bootoption »knoppix fenden Entwicklung von GNU/ Linux. wordene Version 7.3.0 R(T basiert wie desktop=«) Bibliotheken, Tools und Applikationen bei Knoppix üblich aus einem Mix von Debian Stable (Wheezy) und einigen Befgg`o$Jlggfik Paketen (in erster Linie Grafiktreiber C`elo$DX^Xq`e$B€l]\i# [`\ GifYc\d\ d`k [\i [\iGfjkXejZ_i`]k%N\e`^\KX^\jg€k\ic\`jk\k und Desktop-Programme) aus Testing ;$Befgg`o$;M;_XY\e#j`e[e`Z_kXl]j`Z_ [\iM\icX^bfjk\ecfj\e

8YY`c[le^)1@dJlggfikf[\iC\_iY\ki`\Y_`c]i\`Z_\in\`jkj`Z_I\dfk\;\jbkfgM`\n`e^m`XME:le[I;G% '+&)'(+ Jf]knXi\ ware auf »Secure Boot« gesetzt, so ist der Start von anderen Betriebssystemen als den vom Hersteller signierten nicht erlaubt. In diesem Fall hilft die Bios- Einstellung »CSM«, die Abkürzung für Befgg`o.%* „Compatibility Support Module“, sach- gemäß ließe es sich eher als „Traditionell ,) starten per Boot Record und Bootloader“ übersetzen. Bei EFI-Computern sollte CSM stets vorhanden sein. Für alle Fälle, bei denen von USB-Flash-

nnn%c`elo$dX^Xq`e%[\ disk zu starten nicht möglich ist, enthält Knoppix 7.3 im Ordner »KNOPPIX« das ISO-Image einer gerade mal 12 MByte großen Boot-Only-CD, die der Benutzer 8YY`c[le^*1;\igifgi`\k€i\8[fY\I\X[\i i\Z_kj ^\_ikefidXc\in\`j\e`Z_k`eBefgg`o#C`Yi\F]]`Z\ auf einen leeren Rohling brennen und c`ebj [X^\^\ejZ_fe% von der er den Computer in Kombination mit einem Knoppix-7.3-USB-Stick hoch- das Arbeiten mit Knoppix um mindes- sible Benutzerdaten wie Passwörter stark fahren kann. Der Bootprozess beginnt auf tens den Faktor fünf, sodass Startzeiten verschlüsseln (8YY`c[le^/). der CD und wechselt nach kurzer Zeit auf vom Laden des Kernels bis zum komplet- den USB-Stick. Der Workaround funktio- ten Desktop inklusive Compiz unter 15 <=@$9\jfe[\i_\`k\ele[ niert bei den meisten Problem-PCs sehr Sekunden möglich sind, einigermaßen _pYi`[\j9ffk\e gut, speziell bei Macs mit eingeschränk- moderne Computer-Hardware und ein ter Möglichkeit, von externen Datenträ- schneller USB-Stick vorausgesetzt. Das Starten direkt von USB-Flashdisk gern zu starten, selbst per EFI. ist schnell und komfortabel, da Knoppix ;\iLJ9$Jk`Zb`jk getätigte Konfigurationsänderungen und EfjZi`gkjfi^k]•i e\l\i[`e^jlg[Xk\YXi angefallene Benutzerdateien automatisch 9ifnj\i$J`Z_\i_\`k auf die Datenpartition schreibt. Allerdings Eines der am häufigsten nachgefragten gibt es sehr alte und sehr neue Computer, Nicht erst seit Ed Snowdens verdienst- neuen Features war die Aktualisierbar- die nicht von USB booten: Bei den einen vollen Enthüllungen und der damit ein- keit: Flash-knoppix untersucht nun das unterstützt dies das Bios nicht, bei den hergehenden breiten Sensibilisierung im Zielmedium auf eine alte Knoppix-Ins- anderen erschwert oder verbietet EFI das Jahr 2013 besitzen Sicherheit und Schutz tallation hin und bietet an, nur das kom- Starten von externen Datenträgern. der Privatsphäre Priorität in Knoppix’ Ar- primierte Dateisystem und den Kernel Grundsätzlich ist Knoppix auch im EFI- chitektur. Firefox, der in Debian und des- auszutauschen, statt alles komplett neu Modus von USB-Stick startfähig, da der wegen auch in Knoppix Iceweasel heißt, zu installieren. Ordner »efi« auf der ersten Partition die ist mit dem scharfgeschalteten Noscript- Da Softwarepakete, die der Anwender dafür notwendigen Startdateien enthält. Plugin R)T ausgestattet, das bis auf we- selbst installiert hat, mit dem neuen Sys- Ist auf dem Rechner jedoch die EFI-Firm- nige Ausnahmen bei jeder Webseite mit tem inkompatibel sein könnten, gibt es eine Option, um nur die persönlichen Daten und Einstellungen in »/home/ knoppix« zu behalten – oder doch alles nachträglich Installierte zu behalten (8Y$ Y`c[le^ -). Das ist was zwar meistens nicht empfehlenswert, spart aber manch- mal Nacharbeit. Damit das Update auf dem USB-Stick funktioniert, muss der Benutzer bei der Knoppix-Installation für die erste Parti- tion mehr Platz einkalkulieren, damit spätere Updates auch draufpassen – 4,5 GByte sind ein guter Wert. Die beschreib- bare Partition, die es seit Knoppix 7.1 gibt, kann sich dann über den Rest des Sticks ziehen (8YY`c[le^ .). Optional 8YY`c[le^+1;`\d\`jk\e8en\e[\iY\ki\`Y\eBefgg`omfeLJ9$Jk`Zb%;Xildgi€j\ek`\ik[\i;\jbkfg^c\`Z_ lassen sich auf der Datenpartition sen- [XjgXjj\e[\@Zfe% '+&)'(+ Jf]knXi\ aktiven Inhalten oder die auf Plugins oder die Hardware zugrei- fen will, beim Anwen- der um Bestätigung Befgg`o.%* oder Ablehnung nach- sucht. Noscript vermutet bei ,* Javascript- oder Flash- Inhalten oder beim Start von Plugins, 8YY`c[le^,1;\i=cXj_$@ejkXcc\i\icXlYk\j#\`e\e^if\e 8YY`c[le^-19\`dLg[Xk\bXee[\i8en\e[\ieli[`\g\ijec`Z_\e

welche die Kamera, LJ9$Jk`ZbjfldqlgXik`k`fe`\i\e#[Xjj\ie\Y\e[\i=8K*)$ ;Xk\ele[<`ejk\ccle^\e`e¾&_fd\&befgg`o½Y\_Xck\ef[\iXcc\j nnn%c`elo$dX^Xq`e%[\ das Mikrofon oder \`e\C`elo$GXik`k`feXec\^k% eXZ_ki€^c`Z_@ejkXcc`\ik\% andere Komponenten aktivieren, negative Auswirkungen auf dürfen eigene IPtables-Regeln einstel- per SSH oder VNC-Server startet, sodass die Sicherheit und Stabilität des Brow- len). Für die normale Linux-Nutzung ihm ein Zugriff über das Netzwerk mög- sers und blendet am unteren Rand des als sicherer Internetclient ist die Firewall lich wird. Browsers, oberhalb des Statusbalkens, nicht erforderlich, ja kann sogar kon- gelbe Benachrichtigungen ein. Der Be- traproduktiv wirken, wenn es um die Gi`mXkjg_€i\ nutzer soll dann entscheiden, ob er die Nutzung von Streaming, beispielsweise Webseite permanent, nur für die Session Videokonferenzen, geht, abhängig von Tor (The Onion Router, R*T) ist eine oder gar nicht für aktive Inhalte freischal- der dafür verwendeten Software. Privacy-Erweiterung, welche die Privat- tet. Noscript macht zudem Banking und sphäre schützen soll. Benutzer werden Bezahltransaktionen beim Einkaufen im F_e\?`ek\ik•iZ_\e#XY\i oft unbemerkt durch manipulierte Web- Internet viel sicherer, da es viele Cross- \`e\f]]\e\Mfi[\ik•i seiten oder Werbeanzeigen mit Tracing- Site-Scripting-Attacken erkennt und da- Funktion ausspioniert. Der Betreiber er- vor warnt. Sämtliche Benutzerzugänge in Knoppix fährt durch die IP-Adresse des Besuchers sind übrigens gesperrt – es gibt keine nicht nur dessen Internetanbieter und 9\c`\Yk#XY\i\`^\ekc`Z_ Hintertüren oder Standardpasswörter, den Standort, sondern kann durch Kom- leek`^1;`\=`i\nXcc nicht einmal für den unprivilegierten bination mit anderen gesammelte Daten Benutzeraccount »knoppix«. Daher ist ein Profil über besuchte Webseiten, ge- Erstaunlich viele Anwender fragen mich ein Login auch nicht möglich. Wer einen kaufte Produkte, Tätigkeit in sozialen nach einer Firewall für Knoppix. Ich ver- Screenlocker startet, sperrt sich praktisch Netzwerken und so weiter anlegen. Be- mute, weil bei anderen Betriebssystemen aus, da es kein gültiges Passwort zum rechtigterweise ist nicht jeder Internet- Dienste von außen zu- und angreifbar Entsperren gibt. Daher habe ich das bei nutzer mit dieser Art Transparenz seines sind, was ein Portfilter natürlich zu reg- vielen anderen Distributionen übliche Alltags im Netz einverstanden. lementieren versteht. Ein Standard-Knop- Absperren des Bildschirms beim Schlie- Über ein komplexes Netz von Gateways pix ist allerdings so konfiguriert, dass es ßen des Notebook-Displays oder bei In- erschwert Tor IP-Adress-gestützte Samme- gar keine Dienste startet, die Ports nach aktivität abgeschaltet. laktivitäten. Webseiten-Betreiber sehen draußen öffnen oder von dort erreich- Der einzigen Möglichkeiten für einen An- nämlich nur die Adresse des Rechners, bar sind. (Außer, jemand startet Samba greifer, in ein Knoppix-Sytem einzubre- der die direkte Verbindung zur Webseite oder VNC, den Remote Desktop Server, chen, sind, dass er sich entweder selbst aufbaut. Bei Teilnahme am Tor-Netzwerk aus dem Menü). Ein Portscanner, den davor setzt – der Benutzer »knoppix« ist dies eine der vielen, zufälligen Exit man auf ein laufendes Knoppix-System kann per »sudo« Programme als Admi- Nodes, aber nicht die IP-Adresse des ei- losläss, sollte daher auch ohne Firewall nistrator ohne Passworteingabe starten genen PC. Aber Vorsicht: Tor ist nicht keinerlei offene, angreifbare Ports fest- –, oder indem er einen Remotezugang für den sicheren Zugriff auf Dienste aus- stellen. Dennoch besitzt Knoppix einen einfach zu konfigurierenden Firewall, die aus dem »Knoppix«-Menü he- raus startet und drei Komplexitätsstufen von »Easy« (8YY`c$ [le^0) bis »Experte« 8YY`c[le^.1;`\Y\jZ_i\`YYXi\GXik`k`fe[Xi]j`Z_ 8YY`c[le^/1Fgk`feXcbXee[\i8en\e[\ij\`e\j\ej`Yc\e;Xk\ejkXib anbietet (Experten •Y\i[\eI\jk[\jJk`Zbjq`\_\e% m\ijZ_c•jj\ckjg\`Z_\ie% '+&)'(+ Jf]knXi\ gelegt, die einen autorisierten und au- thentifizierenden Zugang erfordern, wie die Anmeldung bei Webdiensten, welche Passwörter oder andere persönliche Iden- tifikationen abfragen. Durch die vielen Befgg`o.%* Zwischenstationen in Tor-Netzwerk sind trotz der ausgefeilten Technik dahinter ,+ durchaus Manipulationen möglich. Fürs Onlinebanking würde ich empfehlen, den Tor-Proxy als Ausnahme zu deaktivieren, oder gar nicht erst einzustellen.

nnn%c`elo$dX^Xq`e%[\ Tor lässt sich durch ein Startprogramm im Knoppix-Menü in Gang setzen. Da- nach muss der Benutzer einen Proxy im Webbrowser sener Wahl einrichten. Eine Ein-Klick-Aktivierung des Tor-Proxys ist 8YY`c[le^('1:_ifd`ldle[=`i\]fo_XY\e[`\Kfi$GifopjjZ_fegXjj\e[\`e^\Yle[\e% in Chromium und Firefox bereits vorein- gestellt (8YY`c[le^('). In Version 7.3 habe ich den Terminalser- Häufige Bootoptionen nennt die Boot- ver etwas modifiziert, damit unabhängig Hilfe, abrufbar mit [F2] und [F3], andere GO<$9ffkj\im\i vom auf dem Server selbst gestarteten sind in der Textdatei »KNOPPIX/knop- Kernel stets ein 32-Bit-System für die pix-cheatcodes.txt« aufgelistet. Klemmt Knoppix lässt sich als Bootserver für das Clients gebaut wird. (64-Bit-Hardware beispielsweise der Desktop dort fest, LAN konfigurieren. Der eignet sich bei- läuft damit natürlich ebenfalls.) Sinn wo eigentlich der 3-D-Windowmanager spielsweise prima als Zentralrechner für der Modifikation ist es, dass die Clients Compiz starten muss, sollten die Boot- den Lehrbetrieb. Andere PCs dürfen dann grundsätzlich ohne zusätzliche Bootopti- optionen »knoppix nocomposite« oder den Server zum Starten benutzen und le- onen zur Auswahl des Kernels starten. »knoppix no3d« weiterhelfen. Die eine send von der Ferne aus auf den Knoppix- schaltet die Composite-Erweiterung des Datenträger zugreifen. Programme führen 9ffkfgk`fe\eXcjEfkeX^\c Grafiksubsystems ab, die andere verhin- die Clients hingegen normal lokal aus. dert den Compiz-Start. Um den Server einzurichten sucht der Normalerweise benötigt Knoppix keiner- Ich wünsche allen Magazin-Lesern mit User im Knoppix-Menü den Eintrag lei Bootoptionen, um die vorgefundene der neuen Version viel Freude! (jk) ■ »knoppix-terminalserver«. Die Konfigu- Hardware inklusive Grafikkarte zu erken- ration ist sehr einfach gehalten: Im We- nen und das System optimal zu konfigu- sentlichen muss der Benutzer nur den rieren. Mit einer zunehmenden Anzahl @e]fj gewünschten IP-Bereich für die Clients verschiedener Chipsätze und Kombinati- R(T Befgg`o.%*1R_kkg1&&befgg\i%e\k&befgg`o& angeben und gegebenenfalls abwei- onen derselben erweist es aber manchmal befgg`o.*'%_kdcT chende Bootoptionen bestätigen. So ist doch als notwendig, das eine oder andere R)TEfjZi`gk1R_kkgj1&&X[[fej%dfq`ccX%fi^&[\& es möglich, ein ganzes Klassenzimmer Feature oder eine einzelne Komponenten ]`i\]fo&X[[fe&efjZi`gk&T mit nur einem einzigen USB-Stick oder (vorübergehend) abzuschalten, um zum R*TKfi1R_kkgj1&&nnn%kfigifa\Zk%fi^T der DVD mit Knoppix zu betreiben. regulären Desktop durchzustarten. R+T8l[`f;\jbkfgI\]\i\eZ\@dgc\d\ekXk`fe Xe[E\knfib`e^

;\i8lkfi Befgg`o$

'+&)'(+

8l];M;1DX^efc`X:DJ:fddle`kp<[`k`fed`k\obclj`m\e8[[fej Jf]knXi\ :DJd`k

,- C\j\i#[`\[`\j\jDX^Xq`eXcj;$8lj^XY\d`k;M;`e?€e[\e_Xck\e#[•i]\ej`Z_•Y\iDX^efc`X:DJ ]i\l\e%Qli:fddle`kp<[`k`fe,%)%)^`Yk\jefZ_`ek\i\jjXek\

probieren möchte, tut sich der Server mit folgenden Komman- das am besten mit der dos als normaler User starten: virtuellen Maschine, ./magnolia_control.sh start && tail -f5 die sich auf der DVD ../logs/catalina.out unter »delug/vm/« be- findet. Die VM eignet Der Befehl gibt zudem das Log auf die sich für den Start in Konsole aus. Der erste Start kann Minu- den VMware-Produk- ten dauern, danach ist die Startseite der ten Play er, Server und Installation unter »http://localhost:8080« Workstation. erreichbar. Die publizierte Website ist un- 8YY`c[le^(1;XjJ_fg$Df[lc`jkY\i\`kj`ek\^i`\ik% Da eine DVD keinen ter »http://localhost:8080/magnoliaPub- Schreibzugriff erlaubt, lic/« zu finden. Ist das nicht so, gibt es ein Das Contentmanagement-System (CMS) startet der Anwender zunächst das Skript Problem mit einigen Linux-Einstellungen. Magnolia R(T ist in Java umgesetzt und »vmprepare.sh«, welches das Zip-Archiv Vor dessen Lösung stoppt man das Log- verwendet Open-Source-Komponenten. »magnolia-demo.zip« in das Verzeich- ging mit [Strg]+[C] und den Server mit Sie machen die in ihrer Community-Ver- nis »/tmp/magnolia-demo/« entpackt. »./magnolia_control.sh stop«. sion unter GPL lizenzierte Software flexi- Um die VM im Player einzubinden, Magnolia CMS legt sehr viele kleine Da- bel und reich an Features, was Magnolia klickt er auf »Open an existing Virtual teien an. Mit »ulimit -n« prüft der Admin im CMS-Wettbewerb des Linux-Magazins Machine« und wählt die Datei »/tmp/ daher die Anzahl der erlaubten Files unter Beweis gestellt hat R)T. Für die magnolia-demo/magnolia-demo.vmx«. pro Prozess. 1024 reicht nicht aus, zum DELUG-Ausgabe hat der Hersteller einige Erscheint der Dialog »This virtual ma- Erhöhen bearbeitet er unter modernen attraktive Erweiterungen mit eingebaut. chine may have been moved or copied«, Linuxen die Datei »/etc/security/limits. wählt er »I copied it«. conf« und erweitert sie um C`jk`e^(. Zu- =•e]Ql^XY\e Zum Login am virtualisierten Linux dient sätzlich trägt er in die Datei »/etc/pam.d/ »root« mit dem Passwort »magnolia1234«. common-session« diese Zeile ein: Als exklusive Technology-Preview ist Die Weboberfläche des CMS ist unter der session required pam_limits.so der Tag Manager an Bord. Er erlaubt es IP-Adresse der VM zu erreichen. Nutzer- Autoren, ohne Hilfe durch technisches namen und Passwort für die Magnolia- Danach ist ein Reboot unumgänglich R*T. Personal, Tags und Tracking-Code einzu- Instanz lauten »superuser«. Außerdem ist es empfehlenswert, die ma- fügen. Exklusiv sind ebenfalls die REST- ximale Heap-Größe in Java zu erhöhen. API-Tools auf der DVD vertreten. Dazu @ejkXccXk`fe Dazu ist im Tomcat-Skript »set env.sh« der kommen drei Extensions, die Magnolia Wert von »-Xmx512M« auf »-Xmx1024M« noch nie in ein Bündel integriert hat: Wer Magnolia auf dem eigenen Linux- zu setzen, anschließend der Tomcat-Ser- Das Shop-Modul (8YY`c[le^(), der So- Rechner installieren und betreiben ver neu zu starten. ■ cial Media Hub sowie die Deadlink-App, möchte, kopiert das Archiv »linux mag- die die ganze Website nach toten Links demo-1.0-tomcat-bundle.tar.gz«. Es ent- durchsucht. Wer Magnolia CMS aus- hält alle benötigten Komponenten in- @e]fj klusive des Servlet-Containers Tomcat R(T DX^efc`X:DJ1R_kkg1&&nnn%dX^efc`X$Zdj% C`jk`e^(1¾&\kZ&j\Zli`kp&c`d`kj% 7. Erforderlich ist lediglich eine Java- Zfd&c`elo$dX^Xq`eT Zfe]½ 8ljjZ_e`kk Laufzeitumgebung ab Version 6, die R)T:Xijk\eQ\iYjk#Ù9c•_\e[\i:fek\ek$ 01 # Redaktion hat mit Open JDK 7u gute 9XldÈ1C`elo$DX^Xq`e((&(*#J%)/ 02 Erfahrungen gemacht. Nach dem Entpa- R*T DX^efc`XBefne@jjl\j1 03 * soft nofile 10000 cken wechselt der Admin ins Verzeichnis R_kkg1&&[fZld\ekXk`fe%dX^efc`X$Zdj%Zfd& 04 * hard nofile 50000 »apache-tomcat-7.0.47/bin/«. Dort lässt [`jgcXp&;F:J&Befne"`jjl\jT

'+&)'(+

;i\`Kffcj]•iFec`e\$Ld]iX^\e Jf]knXi\ D\`ele^q€_ck 9`kgXiX[\

,/ FY\jldle`m\ij`k€i\Jkl[`\e#[`\Ble[\eql]i`\[\e_\`kf[\i[`\gfc`k`jZ_\D\`ele^^\_kÆLd]iX^\e]`e[\e qle\_d\e[`d@ek\ie\kjkXkk%;`\9`kgXiX[\Y\ki\`Yk\Y\e]XccjKi\e[]fijZ_le^1N\cZ_\Kffcj\`^e\ej`Z_]•i Fec`e\$Ld]iX^\ele[_\c]\eY\`[\ijkXk`jk`jZ_\e8ljn\ikle^XdY\jk\e6D\cX

temvoraussetzungen auf und beschreibt neben der Einrichtung auf dem eigenen Server auch den lokalen Betrieb auf Win- dows-Rechnern. Zum Test diente Version 2.05+ vom 4. Februar 2014. Vor dem Auspacken des Downloadpakets erzeugt der Admin eine neue Datenbank für Lime Survey. Das »limesurvey«-Ver- zeichnis legt er unterhalb des Document Root vom Webserver ab. Danach passt er noch die Berechtigungen der Verzeich- nisse »/limesurvey/tmp«, »/limesurvey/ upload« und »/limesurvey/application/ config« an und macht sie mindestens für den Besitzer und die Gruppe les-, schreib-

Ÿ;lj`kGXepXb_fd#()*I=%Zfd und ausführbar. Die Installation des Umfragetools stößt er Umfragen sind das tägliche Brot der tung auf einem typischen LAMP-System danach im Browser an und ruft dazu die Marktforscher, auch Studenten, Firmen gelingen. Alle drei Kandidaten mussten URL »http://example.com/limesurvey/ und Journalisten benötigen aktuelle Mei- zudem zeigen, wie sie mit den erfassten admin« auf und folgt den Anweisungen. nungsbilder. Sie befragen die Teilnehmer Antworten der Teilnehmer umgehen, ob Im letzten Schritt legt er einen Admin- entweder persönlich, telefonisch, schrift- es Anonymisierungsfunktionen gibt und Account samt Passwort an, trägt den Sei- lich oder online. Die Vorteile computer- ob die Kandidaten bei der Auswertung tennamen ein und entscheidet sich für gestützter Befragungen liegen auf der helfen und die Daten zur Weiterverarbei- eine der über 80 Sprachen. Hand: Die Software liefert nicht nur den tung exportieren. Jetzt kann sich der Administrator einlog- Fragebogen per Browser aus, sondern gen. Über die grünen Icons am oberen speichert die Antworten direkt auf dem C`d\Jlim\p Rand konfiguriert er allgemeine Einstel- Server. Die meisten Umfragetools enthal- lungen, überprüft und sichert die Da- ten daher Funktionen, die bei der statis- Der erste Testkandidat kommt aus dem tenbank, bearbeitet die Beschriftungssets tischen Auswertung helfen, Berichte und Open-Source-Lager und ist kostenlos. und startet den Plugin-Manager, der seit Diagramme generieren und die Daten in Lime Survey R)T steht unter der GPL Version 2.05 dabei ist. Ein paar Erweite- andere Formate exportieren. und fühlt sich in einer klassischen LAMP- rungen liefern die Entwickler mit aus, Plattformen, die Umfragesoftware hosten Umgebung wohl. 2003 startete das Pro- solche von Drittanbietern stellt das Wiki und ihre Tools gegen mehr oder weniger jekt unter dem Namen PHP Surveyor. R,T zusammen. Geld zur Verfügung stellen, gibt es im 2007 benannten die Entwickler es um Netz zuhauf. Einen Vertreter aus dieser und strichen das „PHP“ aus dem Na- Ld]iX^\kffcj DELUG-DVD Liga hat auch die Bitparade in den Test men, um Konflikte mit der PHP-Lizenz 8l][\i;$;M;[`\j\jDX$ mit aufgenommen: Polldaddy R(T. Im Ver- zu vermeiden. ^Xq`ej Y\]`e[\e j`Z_ [`\ `e [`\j\d 8ik`b\c gleich treten zwei Lösungen für den eige- Lime Survey ist in PHP implementiert ^\k\jk\k\eGif^iXdd\C`d\Jlim\p M\ij`fe nen Server an, die beiden Open-Source- und arbeitet nicht nur mit MySQL, son- )%',"mfd+%=\YilXi)'(+ le[Fg`eX M\i$ Programme Lime Survey R)T und Opina dern auch mit PostgreSQL oder einer MS- j`fe)%.%'mfdEfm\dY\i)'(* %;`\Y\`[\e R*T. Hier schauten sich die Tester an, SQL-Datenbank zusammen. Die deutsche Kffcj]•iFec`e\$Ld]iX^\ecXl]\eXl]^€e^`$ wie komfortabel Installation und Einrich- Installationsanleitung R+T listet alle Sys- ^\eC8DG$J\im\ie% '+&)'(+ Jf]knXi\ Hinter dem Symbol mit dem Pinsel befin- det sich der Vorlageneditor, mit dem Nut- zer ihren Umfragen ein schickes Design verpassen. Rund zehn fertige Looks sind

dabei, die Anwender direkt im Webinter- 9`kgXiX[\ face mit einem eigenen Farbschema, Logo oder weiteren Texten versehen – HTML- und CSS-Kenntnisse vorausgesetzt. Die ,0 Lime-Survey-Webseite offeriert im Down- loadbereich weitere Templates. Um eine Umfrage zu erstellen, klickt der

Admin im Webinterface auf das grüne nnn%c`elo$dX^Xq`e%[\ Pluszeichen rechts oben, vergibt einen Namen, trägt eine Beschreibung ein und sucht aus dem Dropdownmenü eine Spra- 8YY`c[le^(1D`k\`e\ibc\`e\eMfijZ_Xl\ic\`Z_k\ikC`d\Jlim\p[`\8ljnX_c[\ji`Z_k`^\e=iX^\kpgj% che aus. Weitere Sprachen und Überset- zungen der Fragen arbeitet er auf Wunsch Fortschrittsbalken ein, der den Teilneh- In einem Dropdownmenü sucht der Be- zu einem späteren Zeitpunkt ein. mern zeigt, wie viel Prozent der Umfrage nutzer jetzt aus einem großen Sortiment Lime Survey bietet Wysiwyg-Editoren, sie bereits erledigt haben. einen Fragetyp aus. Gut gefällt, dass das um eine Beschreibung, einen Willkom- Umfragetool eine Vorschau einblendet, menstext oder eine Endnachricht für die >i•e[c`Z_ sobald der Anwender mit der Maus über Befragten zu hinterlassen. Außerdem gibt einem Eintrag schwebt (siehe 8YY`c[le^ der Verwalter eine Mailadresse, eine Ad- Für jede Gruppe definiert der Verwalter (). Ein Klick auf »Zeige erweiterte Einstel- resse für Rückläufer und gegebenenfalls als Nächstes die einzelnen Fragen, die er lungen« führt für den gewählten Fragetyp eine Faxnummer an. per Mausklick hinzufügt. Er weist ihnen zur Feinabstimmung. Der Administrator Nach dem Speichern erscheint die noch dabei einen internen Code zu. Dieser ist beeinflusst hierüber etwa die Anzeige, leere Umfrage im Webinterface. Über frei wählbar, sollte aber einer gewissen die Logik, ein Zeitlimit und die spätere das Pluszeichen neben dem Feld »Fra- Logik folgen. So bietet sich beispiels- statistische Auswertung. Die eigentliche gegruppen« erzeugt der Anwender nun weise für die Fragen der ersten Erhebung Frage tippt er danach in ein Editorfenster mindestens eine solche Sammlung von »A001«, »A002«, »A003« an, für die der ein, wo er sie mit multimedialen Inhalten Fragen, auf Wunsch auch mehrere. Län- zweiten »B001«, »B002«, »B003« und so wie Bildern oder Flash-Animationen an- gere Umfragen bleiben übersichtlicher, weiter. Ganz unten im Dialog befindet reichern kann. wenn sie mehrere Fragegruppen und da- sich eine Schaltfläche, über die Nutzer Nach dem Abspeichern der Frage geht mit Unterseiten enthalten. Lime Survey vorhandene Fragen, Fragegruppen oder es ans Feintuning. Icons über der Frage blendet am oberen Rand außerdem einen ganze Umfragen importieren. bearbeiten sie, blenden eine Vorschau '+&)'(+ Jf]knXi\ ein, überprüfen die Umfragelogik, bear- benötigten Zeit (siehe beiten die Antwort-Optionen und even- 8YY`c[le^ )). Nach tuelle Vorgabewerte. Zusätzlich findet dem Sichern informiert der Nutzer Buttons, um die Frage zu lö- Lime Survey darüber,

9`kgXiX[\ schen, zu kopieren und zu exportieren. dass die Umfrage nun Für Letzteres benötigt Lime Survey die aktiv und die Ergeb- PHP-XML-Erweiterung. Das Symbol mit nistabelle erzeugt ist. -' den abzweigenden Pfeilen führt zu einer In der Voreinstellung Maske, in der Anwender die Bedingungen sind alle Erhebungen der Frage festlegen. Damit ist es möglich, öffentlich. Wer einen Teilnehmer abhängig von den gegebenen geschlossenen Teil-

nnn%c`elo$dX^Xq`e%[\ Antworten durch die Umfrage zu leiten. nehmerkreis bevor- zugt, klickt auf »Zum @e8bk`fe geschlossenen Modus umschalten« und er- Hat der Admin alle Gruppen und Fragen zeugt einen Zugangs- eingerichtet, sollte er die Umfrage mit schlüssel. 8YY`c[le^*1C`d\Jlim\p\ogfik`\ik`em`\c\=fidXk\le[q\`Z_e\kXlZ_ einem Klick auf das Zahnradsymbol links Den Link zu öffentli- ]XiY`^\9Xcb\e[`X^iXdd\#[`\•Y\ij`Z_kc`Z_[`\

9`kgXiX[\ Opina nicht und beschränkt sich auf rei- nen Text. Eine Möglichkeit, die Fragen auf mehrere Seiten zu verteilen, fanden -) die Tester ebenfalls nicht. Das führt dazu, dass bei langen Umfragen jede Menge Scrollarbeit für die Teilnehmer ansteht.

nnn%c`elo$dX^Xq`e%[\ JgiXZ_i\`j\

Auf dem Reiter »Publication« legt der An- wender vor der Veröffentlichung der Um- frage letzte Hand an. Er gibt Nachrichten für die Begrüßung und Verabschiedung, 8YY`c[le^-1;\eM\icXl]\`e\iLd]iX^\jfn`\[\kX`cc`\ik\8e^XY\eql[\eK\`ce\_d\ie]`e[\k[\iM\inXck\i einen Header und einen Footer ein. Au- Xl][\dI\`k\i¾KiXZb½%8dfY\i\eIXe[bfe]`^li`\ik\i[Xj@ek\imXccqli8eq\`^\% ßerdem setzt er hier einen Titel und kon- figuriert die Adresse, über welche die ten Anwender mit CSS-Kenntnissen die E-Mail ist abgeschnitten. Auch hier hilft Umfrage erreichbar ist. Wiederholt er Stylesheets im Verzeichnis »ui/css« auf es, die Zeichenkette hinter die Opina- eine Umfrage zu einem späteren Zeit- dem Server. URL »http://example.com:8080/opina« punkt, so gibt er ihr einen neuen Titel Das Programm bietet in der aktuellen Ver- zu hängen. und eine neue URL, anstatt von vorne sion keine Funktion, um echte anonyme Der zweite Kandidat bietet Datenexport zu beginnen. Über das Symbol mit dem Umfragen zu erstellen. Es protokolliert nur für Ergebnisse und speichert diese Auge öffnet der Nutzer eine Vorschau für IP-Adressen und zeigt sie auf dem Reiter als CSV- oder SPSS-Dateien. Eine Export- nicht veröffentlichte Erhebungen und per »Reports« an. Die Tester fanden keine funktion für die Umfrage selbst und auch Klick auf das Vorhängeschloss öffnet und Möglichkeit, dieses Verhalten zu deak- Importfunktionen, mit denen Anwender schließt er Umfragen von Hand. tivieren. Auf dem Tab »Access Control« fertige Erhebungen oder einzelne Fra- Ein Timer für Quizfragen und Tests fehlt. definieren Admins, ob eine Umfrage öf- gen beziehungsweise Gruppen einlesen, Ebenso ist ein eigenes Layout nur auf fentlich oder geschlossen, mit Passwort suchten die Tester vergeblich. Umwegen möglich. Opina liefert von oder Ticket zu erreichen ist. Im Feld da- Grafische Auswertungen der Umfragen Haus aus nur das Default-Theme mit, neben suchen sie aus den vorher ange- findet der Benutzer unter »Track« sowie und auch eine Suche im Web förderte legten Kontakten Benutzer aus, die eine unter »Reports«. Der erste Reiter zeichnet keine alternativen Looks zutage. Auf der Einladung per Mail erhalten. den Verlauf auf (siehe 8YY`c[le^-), der Projekthomepage schreibt der Hersteller, Die verschickten Nachrichten leiden an zweite generiert eine Zusammenfassung dass er auf Wunsch Themes für seine der gleichen Kinderkrankheit wie die mit Balkendiagrammen und erlaubt unter Kunden entwickelt. Alternativ bearbei- zur Registrierung, und die URL in der »Respondents« einen Einblick in die Ant- worten einzelner Teilnehmer.

Gfcc[X[[p

Unter dem schönen Namen Polldaddy R(T firmiert ein kommerzieller Cloudservice des kalifornischen Unternehmens Auto- mattic, Inc. R/T, das auch Produkte wie Wordpress.com, Akismet und Gravatar entwickelt. Der dritte Kandidat bietet wie die anderen Automattic-Dienste den Zugang via Single Sign-on; die Tester nutzten ihren bestehenden Wordpress. com-Account und verknüpften diesen mit der Umfrageplattform. Ein Paket zur Installation auf dem eige- nen Server gibt es nicht und alle Daten 8YY`c[le^,1

Der Anwender hat die Wahl zwischen drei 9`kgXiX[\ Preismodellen. Dem kostenlosen Account fehlt vor allem die Exportfunktion – ein K.-o.-Kriterium für alle, die ihre Ergeb- -* nisse statistisch auswerten möchten. Die Pro-Version kostet 200 US-Dollar pro Jahr (pro Monat rund 30 US-Dollar) und bietet neben dem Export auch bessere Filter nnn%c`elo$dX^Xq`e%[\ für die Antworten, angepasste Links zur 8YY`c[le^.1Gfcc[X[[p_Xkd\_i\i\Ld]iX^\kpg\e`d8e^\Yfkle[m\ijXdd\cke`Z_kXcc\j`e\`e\i\`eq`^\e Umfrage und die Möglichkeit, den CSS- BXk\^fi`\%Jf\ijk\cc\e8en\e[\iY\hl\dIXk\jg`\cZ_\ele[9\n\ikle^\e% Code zu verändern. Mit dem Corporate- Account für knapp 900 US-Dollar jährlich textantworten, Matrixfragen, Multiple- ßerdem ist es möglich, Verzweigungen (pro Monat rund 100 US-Dollar) dürfen Choice- und Sortieraufgaben im Ange- einzurichten. Diese führen wie die Bedin- bis zu zehn Mitarbeiter auf die Umfragen bot. Ein Klick auf einen Eintrag öffnet gungen bei Lime Survey dazu, dass das zugreifen, die auch unter dem eigenen die Einstellungen. Über diese wandelt Tool die Teilnehmer abhängig von ihren Domainnamen erreichbar sind. der Nutzer auch eine Mehrfachauswahl Antworten weiter- und umleitet. Nach dem Login klicken Benutzer auf das in eine Einfachauswahl um, indem er Multimediale Elemente sind mit Ein- Icon mit dem Zahnrad beziehungsweise die Antwortmöglichkeiten im Dropdown- schränkungen möglich. Videos binden auf den Avatar, um ihr Profil zu bearbei- menü rechts reduziert – das ist bei Lime Anwender per Link auf externe Quellen ten und die Sprache für das Webinterface Survey und Opina besser gelöst. ein, Bilder (Jpeg, PNG und Gif) sowie zu setzen. Polldaddy bietet neben Um- MP3-Dateien dürfen sie direkt hochla- fragen auch Abstimmungen, Quiz und >lkXiiXe^`\ik den. Optional stehen die Medien auch in Bewertungen an (8YY`c[le^.). Bei Ab- anderen Umfragen zur Verfügung, sofern stimmungen beantworten die Teilnehmer Mehr Komfort als bei der Konkurrenz Nutzer das entsprechende Häkchen beim eine einzige Frage, ein Quiz fragt Wissen gibt es jedoch bei den Matrixfragen. Hier Upload setzen. Über den Reiter »Media- ab und wertet die Antworten aus, bei darf der Benutzer Fragen und Antworten thek« desselben Dialogs sind hochgela- Bewertungen dürfen die Teilnehmer et- direkt in einem Interface nebeneinander dene Bilder und MP3s erreichbar. was einstufen und zwischen einem und eintippen und muss nicht getrennte Ein- Fragegruppen wie bei Lime Survey gibt es fünf Sternchen beziehungsweise Daumen gabemasken bemühen. Polldaddy bietet nicht. Polldaddy blendet am oberen Rand hoch oder runter vergeben. ebenfalls an, die einzelnen Elemente der der Umfrage Buttons ein, über die An- Entscheidet sich der Benutzer für die Um- Matrixfragen bei jedem Durchlauf der wender Seiten hinzufügen, kopieren und frage, richtet er zunächst den Namen, den Umfrage in zufälligen Kombinationen löschen. Nicht so gut gelöst ist, dass der Permalink und eine Begrüßung für die anzuzeigen. Dazu würfelt das Tool ent- Anwender die Reihenfolge der Fragen nur Teilnehmer ein. Eine eigene Schlussmel- weder nur die Fragen, nur die Antworten auf den Seiten selbst umsortieren kann. dung gibt es nur bei den Bezahlvarianten. oder gleich beides durcheinander. Au- Es ist nicht möglich, ein Element zu ver- Weiter unten auf der Seite konfiguriert er, wann eine Umfrage als beendet gilt und ob es eine oder mehrere Rückmeldungen per Computer geben darf. Rechts dane- ben setzen Nutzer der kostenpflichtigen Zugänge einen Passwort- oder Captcha- Schutz und beschränken die Teilnahme auf IP- oder E-Mail-Adressen. Weiter geht es auf dem Reiter »Ques- tion Editor« mit den eigentlichen Fragen. Links stehen die unterschiedlichen Ty- pen, die per Drag & Drop oder Klick in die Liste wandern. Hier bleiben keine Wünsche unerfüllt – lediglich an der deutschen Übersetzung einiger Schaltflä- chen und Feldbeschriftungen könnte ein Profi noch mal feilen (siehe 8YY`c[le^ 8YY`c[le^/1|Y\ij`Z_kc`Z_le[m`\c]€ck`^^`Ykj`Z_Gfcc[X[[p%8cc\i[`e^jj`e[[`\|Y\ij\kqle^\ek\`cn\`j\ /). Polldaddy hat unter anderem Frei- e`Z_k^\cle^\e#jfki€^k[\iElkq\i\`e8cld`e`ldXejk\cc\\`e\jD`e`dldj\`e% '+&)'(+ Jf]knXi\ bis gar nicht übersetzte Funktionen sor- gen für administrativen Blindflug. Zudem ist es ärgerlich, dass die Aktivierungs- links in den vom System verschickten

9`kgXiX[\ Mails nicht vollständig sind. Polldaddy bietet als einziger Kandidat keinen Schutz vor nachträglichen Än- -+ derungen, auf diese Weise gehen bereits eingegebene Antworten verloren, wenn der Admin laufende Umfragen ändert. Anwender, die mit Wordpress bloggen und ab und zu die Meinung ihrer Leser nnn%c`elo$dX^Xq`e%[\ erforschen möchten, finden im Cloud- service aber ein handliches und über- 8YY`c[le^01Gfcc[X[[p^\n`eek[\e;\j`^en\kkY\n\iY`dK\jk%9\`[\e]\ik`^\eK_\d\j[•i]k\]•ia\[\e sichtliches Tool, das von Haus aus prima >\jZ_dXZb\knXj[XY\`j\`e%<`e^i`]]\`e[\e:JJ$Hl\ccZf[\Y`\k\eXY\ieli[`\9\qX_cmXi`Xek\e% mit der Blogsoftware zusammenarbeitet. Eine wissenschaftliche Umfrage und sen- schieben. Wer nicht ganz aufmerksam Popup einzubinden. Wordpress-Nutzer sible Themen sollten Nutzer jedoch mit arbeitet, braucht viel Geduld und etliche verwenden am besten den angegebenen einem der beiden anderen Kandidaten Mausklicks, bis alles passt. Shortcode. durchführen, weil Datenschutz nicht ge- Der Reiter »Survey Style« verpasst der Als Cloudservice, der auf Servern in den währleistet ist. Polldaddy-Umfrage den richtigen Look. USA gehostet wird, eignet sich Polldaddy Als klaren Sieger küren die Tester Lime 16 fertige Themes sind für alle Account- nicht für vertrauliche Umfragen. Anony- Survey. Das Programm bietet den größten typen vorhanden, eine Vorschau verrät, mität ist nicht garantiert, der Anwender Funktionsumfang und die besten Sicher- wie die fertige Präsentation aussieht kann nicht prüfen, welche Daten der heits- und Anonymisierungsmaßnahmen. (8YY`c[le^ 0). Dem Inhaber eines Be- Anbieter sammelt. In den Ergebnissen Obwohl sich Einsteiger in der Administ- zahlkontos ist es zudem möglich, das tauchen zudem die IP-Adressen der Teil- rationsoberfläche verlaufen, kann sich Layout individuell zu gestalten und di- nehmer auf. die Benutzerfreundlichkeit immer noch rekt in den CSS-Code einzugreifen. In Über den Reiter »Ergebnisse« erreichen sehen lassen. Nachbesserungsbedarf gibt der kostenfreien Version darf der Nutzer Benutzer die grafische Auswertung und es lediglich bei den Themes. Die mitge- immerhin aus 18 verschiedenen Schrift- die Export-Optionen. Erstere kann er lieferten Layoutvorschläge wirken recht arten aussuchen. auch als PDF-Dokument herunterladen. altbacken. Komplexere Umfragen erfor- Die Funktion versteckt sich wenig intuitiv dern etwas Einarbeitungszeit, wobei die JZ_Xlcljk`^ hinter dem Menüpunkt »CSV exportie- umfangreiche Dokumentation hilft. Lime ren«. Für Resultate von Multiple-Choice- Survey ist zudem die einzige Software im Benutzer, die eine deutsche Umfrage Fragen zeichnet Polldaddy Balkendia- Test, die es den Teilnehmern erlaubt, eine mit Polldaddy gestalten, sollten sich gramme, für Matrixfragen farbige Tabel- begonnene Umfrage zwischenzuspei- unbedingt dem Reiter »Edit Language« len, für die Textfragen blendet das Tool chern und zu einem späteren Zeitpunkt widmen. Einige der Übersetzungen sind die vollständigen Antworten ein. Beim zu beenden. (hej) ■ unvollständig oder falsch. In den Feldern Datenexport wählen Nutzer zwischen auf der rechten Seite bringen Anwender CSV-, XML- oder Excel-Dateien. Alter- ihre eigenen Formulierungen unter. Sie nativ schickt Polldaddy als einziger Test- @e]fj sollten abschließend nicht vergessen, die kandidat die Ergebnisse direkt zu Google R(T Gfcc[X[[p1R_kkg1&&gfcc[X[[p%ZfdT Modifikationen abzuspeichern, damit sie Docs und erzeugt ein neues Spreadsheet. R)TC`d\Jlim\p1R_kkg1&&nnn%c`d\jlim\p%fi^T bei der nächsten Umfrage auf das eigene Anders als Lime Survey und Opina gene- R*T Fg`eX1R_kkg1&&fg`eX_h%ZfdT Sprachpaket zugreifen können. riert Polldaddy keine SPSS-Dateien. R+TC`d\Jlim\p`ejkXcc`\i\e1R_kkg1&&dXelXc% Oben rechts unter »Antworten sammeln« c`d\jlim\p%fi^&@ejkXccXk`fe&[\T findet der Nutzer Funktionen, um die 8lj^\]iX^k R,TC`d\$Jlim\p$Gcl^`ejmfe;i`kkXeY`\k\ie1 Umfrage zu verbreiten. Hier erfährt er R_kkg1&&dXelXc%c`d\jlim\p%fi^&8mX`cXYc\V den Link oder macht seine Erhebung Wenn es um die Geschwindigkeit beim k_`i[VgXikpVgcl^`ejT per Facebook oder Twitter bekannt. Poll- Zusammenklicken von Umfragen geht, R-TBc`ZXg1R_kkg1&&bc`ZXg%\jT daddy generiert sogar QR-Codes in fünf gewinnt Opina ganz knapp vor Polldaddy. R.T Fg`eX$@ejkXccXk`fe1 verschiedenen Größen. Das Tool verwal- Während die aufgeräumte Administra- R_kkgj1&&fg`eX_h%q\e[\jb%Zfd&\eki`\j& tet E-Mail-Listen der Teilnehmer und ver- tionsoberfläche des freien Programms )/*('.'-$@ejkXccXk`fe$>l`[\T schickt Einladungen. Außerdem bietet die gefällt, enttäuscht das Gesamtbild. Feh- R/T8lkfdXkk`Z#@eZ%1R_kkg1&&XlkfdXkk`Z%ZfdT Software fertigen Quellcode an, um die lende Konfigurationsmöglichkeiten, nicht R0TGfcc[X[[pGfccjIXk`e^j1 Umfrage in eine Webseite inline oder per vorhandene Dokumentation und schlecht R_kkg1&&nfi[gi\jj%fi^&gcl^`ej&gfcc[X[[pT

'+&)'(+

;`\B;<=iXd\nfibj,jk\_\ebliqmfi[\i=\ik`^jk\ccle^ Jf]knXi\ M`iklfj^\jZ_`Z_k\k B;<=iXd\nfibj

-- J\`k]Xjk[i\`AX_i\eXiY\`k\eY`jql)'

noch um eine wohldefinierte Aufgabe. Programmierer sollten sich einzelne Bi- bliotheken herauspicken und nutzen können, ohne gleich die restlichen KDE- Bibliotheken einbinden und später an die Nutzer mitliefern zu müssten. Wer beispielsweise mit Zip-Archiven hantiert, bindet nur noch »KArchive« ein. Besonderen Wert haben die Entwickler auf die Plattformunabhängigkeit gelegt: Die Bibliotheken sollen nicht nur auf Linux-PCs laufen, sondern sich mög- lichst einfach auch auf anderen Gerä- ten wiederverwenden lassen. Die KDE- Entwickler haben dabei natürlich primär Smartphones und Tablets im Auge, aber auch die Windows-Plattform.

>\jZ_\eb\mfeXl\e ŸA\ee`]\iJnXee#()*I=%Zfd Ende 2011 führte Qt das Open Gover- Die KDE-Bibliotheken fassen Funktio- theken auch noch auf klassische Desk- nance Model ein R*T. Dies ermöglichte nen und Aufgaben zusammen, die für top-Anwendungen zugeschnitten, was es den KDE-Entwicklern, sowohl aktiv verschiedene KDE-Anwendungen nötig wiederum den Einsatz auf Mobilgeräten bei der Entwicklung von Qt mitzuhelfen sein können. So kümmert sich beispiels- erschwert. Diese Situation hat sich bis als auch Code aus den KDE-Bibliotheken weise »KArchive« um das Packen und heute nicht wesentlich geändert, alle Bi- in das Qt-Projekt einfließen zu lassen. Entpacken von Archiven, während die bliotheken firmieren lediglich unter dem Letzteres hat gleich zwei Vorteile: Qt-Pro- »Solid«-Bibliothek Informationen über neuen Namen KDE Platform 4 R(T. grammierer profitieren von den zusätz- die Hardware liefert, etwa den Batterie- lichen Funktionen, während umgekehrt und Netzwerkstatus. Diese Bibliotheken 8Yjg\Zbbli die KDE-Bibliotheken schrumpfen und sind jedoch im Laufe der Zeit recht prag- sich ihre Abhängigkeiten untereinander matisch entstanden und gewachsen. In Es musste sich also dringend etwas än- verringern. Ein KDE-Programm kann der Folge kamen daher viele Abhängig- dern. Auf dem Entwicklertreffen Platform jetzt viel häufiger direkt auf Qt aufbauen keiten untereinander und von anderen 11 in Randa (8YY`c[le^() setzten sich und muss nicht noch eine KDE-Biblio- Libraries hinzu. daher einige KDE-Programmierer zusam- thek einbinden. Das wiederum brachte gehörigen Over- men und arbeiteten einen Plan für die Als Paradebeispiel nennt Jos Poortvliet head mit sich: Will ein Programmierer nächste Fassung der KDE-Bibliotheken (8YY`c[le^ )), Leiter des KDE-Marke- nur eine einzelne Funktion nutzen, muss aus. Das war gleichzeitig der Startschuss ting-Teams, in einem seiner Blogbeiträge er trotzdem gleich mehrere Bibliotheken für die mittlerweile fast dreijährige Ent- den Code für die Zeitzonen R+T: Nach- einbinden. Obendrein stellen die KDE- wicklungszeit R)T. dem dieser aus den KDE-Bibliotheken in Entwickler alle Bibliotheken gemein- Als Erstes haben die KDE-Entwickler alle die Klasse »QDateTime« gewandert ist, sam als dickes Paket bereit, Anwender Bibliotheken entschlackt und vor allem können insbesondere die Bibliotheken mussten diese »Kdelibs« immer komplett die Abhängigkeiten untereinander redu- für das Personal Information Manage- installieren. Außerdem sind die Biblio- ziert. Jede Bibliothek kümmert sich nur ment direkt Qt nutzen. Das machte wie- '+&)'(+ Jf]knXi\ derum auf einen Schlag die Bibliotheken »KDateTime«, »KTimeZone« und »KLo- cale« überflüssig. Aufgrund dieser massiven Vorteile ha- ben die KDE-Entwickler ihre Bibliotheken

nach Quelltext untersucht, der sich für B;<=iXd\nfibj eine Integration in Qt eignen könnte. Den so identifizierten Code überarbeiteten sie -. vor der Übergabe gründlich und prüften ihn mit neuen Tests. Dass da viel Arbeit drinsteckt, zeigt eine lange Liste mit den Beiträgen der KDE-Macher zu Qt im KDE- nnn%c`elo$dX^Xq`e%[\ Community-Wiki R,T. Der Austausch von Code zwischen KDE und Qt läuft weiter, die KDE-Entwickler dürften also auch in

Zukunft maßgeblich bei der Weiterent- ŸDXiblj=\`ce\i wicklung von Qt mithelfen – und davon 8YY`c[le^)1Fg\eJlj\j:fddle`kp$DXeX^\iAfjGffikmc`\kÆ_`\iY\`\`e\dMfikiX^`eK_\jjXcfe`b`Æ`jk profitieren. ql^c\`Z_D`k^c`\[[\jB;<$DXib\k`e^$K\Xdjle[Ycf^^k^\ie\•Y\i[`\bfdd\e[\e=iXd\nfibj%

QljXdd\ed`kHk Trotz des Code-Austausches gibt es nach 5 ersetzen somit die alte KDE Platform wie vor einige KDE-Bibliotheken, die di- 4. Dabei ist unbedingt der Plural (also Wie die Zusammenarbeit abläuft, verriet rekt auf Qt aufsetzen und ein paar dort Frameworks) zu verwenden. Wer ihn ver- KDE-Entwickler Aleix Pol im Gespräch vermisste Funktionen ergänzen. Bei sol- gisst, wird verbal geteert und gefedert, so mit dem Linux-Magazin: „Erst einmal chen Bibliotheken sprechen die KDE-Ent- wie der Autor dieses Artikels zu Beginn werden wir die KDE-Anwendungen in wickler auch von Qt-Addons (oder von der Recherche. eine Wayland-freundliche Umgebung „Drop-in Qt Addon Libraries“). Diesen bringen müssen." Auch wenn die An- Begriff haben sie jedoch selbst erfunden, ;i\`BXk\^fi`\e1=lebk`fe# strengungen dazu bereits vor Jahren be- es handelt sich nicht um Plugins im klas- @ek\^iXk`fele[Jfclk`fe gannen, müsse man hier weiterhin auf sischen Sinn R-T. gute Zusammenarbeit achten. „Darüber Des Weiteren bleiben noch weit über Alle Frameworks sortieren die Macher hinaus betrachten wir uns nicht mehr als 50 KDE-Bibliotheken bestehen. Um hier in drei Kategorien R.T: Die so genannten auf Qt basierend, sondern denken, dass zumindest die Übersicht etwas zu ver- Functional Frameworks (in einigen Do- die Qt-Frameworks Teil unseres Stacks bessern, fassen die KDE-Entwickler ihre kumenten auch als Functional Elements sind. Wenn uns also etwas an Qt stört, Bibliotheken noch einmal zu Frameworks bezeichnet) weisen keine weiteren Ab- versuchen wir das Beste, um diese Situ- zusammen. Jedes Framework besteht aus hängigkeiten auf, sie sind also vollkom- ation zu verbessern. Das war erst durch einer oder mehreren Bibliotheken R)T. men unabhängig nutzbar. In diese Ka- das Open-Governance-Modell möglich. Aufgrund dieser Neueinteilung haben tegorie fällt beispielsweise »KArchive«, Das ist auch der Grund, warum es nicht sich die Verantwortlichen zudem dazu das sich exklusiv um das Komprimieren schon früher passiert ist. In Zukunft entschlossen, sämtliche Bibliotheken un- und Dekomprimieren von Archiven küm- erwarten wir sowohl Bugfixes als auch ter dem Namen KDE Frameworks 5 wei- mert. Die Integration Frameworks (oder spürbare Performance-Verbesserungen.“ terzuentwickeln. Die KDE Frameworks Integration Elements) können hingegen ŸB;<$Gifa\bk

8YY`c[le^(1@dAX_i\)'((kiX]\ej`Z_B;<$

B;<=iXd\nfibj Zugriff auf Dateien in den offiziellen Qt-Bibliotheken ab. Ein einem Netzwerk reali- Beispiel wäre das Framework »KDoc- -/ siert. Dazu greift KIO tools«, das auf die Dienste von »KAr- wiederum auf die Hilfe chive« zurückgreift. des Kioslave-Daemon ■ Tier-3-Frameworks wiederum dürfen zurück (8YY`c[le^ beliebige andere Frameworks einspan- nen sowie natürlich System- und die nnn%c`elo$dX^Xq`e%[\ *). Das KDE-Wiki bezeichnet diese drei offiziellen Qt-Bibliotheken nutzen. Kategorien als Typen, Zu den Tier-3-Frameworks zählt bei- der offiziellen Sprech- spielsweise KIO, das die »KDoctools« weise zufolge „hat das benötigt. Framework Solid den Interessiert sich ein Entwickler für ein Typ Integration“. KDE-Framework und gehört dieses zu Tier 1, so muss er sich folglich um die k\Xl

8YY`c[le^+1;`\=iXd\nfibj,^ilgg`\i\e[`\m`\c\eB;<$9`Yc`fk_\b\ed`k`_i\ele•Y\ij`Z_kc`Z_\e8Y_€e^`^b\`k\e`em`\iK`\ij%>Xeqlek\ec`\^kK`\i(d`k9Xj`j$ 9`Yc`fk_\b\en`\BZf[\Zj#[Xi•Y\iK`\i)d`kBXlk_#BZiXj_le[Xe[\i\e#c`ebj[Xe\Y\e]`e[\kj`Z_K`\i*d`kY\`jg`\cjn\`j\Bk\ok\[`kfigcl^`ef[\iB[\j`^e\igcl^`e% Le[•Y\iXcc\dk_ifekK`\i+d`kB[\+jlggfik#=iXd\nfib`ek\^iXk`fe#B]`c\Xl[`fgi\m`\nle[B_kdc%;`\C`e`\eq\`^\e1

■ Die Kde4support-Bibliotheken, die an- @ehcl[\ chen Desktops), der Frameworks und B;<=iXd\nfibj dere Anwendungen während ihrer Por- der An wendungen entkoppelt R(*T. Die tierung nutzen – aber nicht länger. Auf der Website Inqlude R()T sammeln genannten Teile sollen sogar Releases -0 ■ Die Kcmutils, ein Modul, das verwen- die KDE-Entwickler neben ihren KDE überspringen dürfen, wenn die zuständi- det wird, um unsere Systemsettings Frameworks auch weitere Bibliotheken, gen Programmierer eine längere Entwick- zu erstellen. die auf Qt aufbauen. Sie wollen so ein lungszeit benötigen. Das soll besonders ■ Khtml, das wohl durch »QtWebKit« Verzeichnis schaffen, in dem Qt-Program- beim Portieren von Anwendungen auf die nnn%c`elo$dX^Xq`e%[\ ersetzt wird – es ist groß und kaum mierer nach fertigen Komponenten für KDE Frameworks 5 helfen. gewartet.“ ihre Anwendungen suchen können (8Y$ Die erste Betaversion der KDE Frame- Insgesamt bietet sich so ein recht kom- Y`c[le^,). Inqlude befindet sich derzeit works 5 wird nach den derzeitigen Plä- plexes Bild, das die Entwickler durch die Zuordnung von vier Tiers zu entwirren 8eq\`^\ versuchen.

>\jZ_€]kjY\[`e^le^\e

Die Überarbeitung der KDE-Bibliotheken dauert schon fast drei Jahre an. Betei- ligt sind ungefähr 20 Programmierer, darunter sowohl bezahlte Vollzeit-Ent- wickler als auch freiwillige Helfer R-T. Und die haben ganze Arbeit geleistet: Die Frameworks 5 bestanden zum Re- daktionsschluss aus über 50 einzelnen Frameworks, darunter 19 Qt-Addons, die außer zu Qt keine weiteren Abhän- gigkeiten aufweisen, neun die ihrerseits nur unabhängige Bibliotheken benötigen (Tier 2), und 31 mit komplexeren Abhän- gigkeiten (Tier 3 und 4). Ein aktuelles Abhängigkeitsdiagramm zeigt 8YY`c[le^+(siehe auch R0T), eine Liste mit allen Frameworks und den je- weiligen Maintainern bietet R('T. Die Entwicklung läuft strikt nach den vom KDE-Projekt selbst aufgestellten Frame- works Policies ab R.T. Dabei folgen die Bibliotheken zunächst einem einheitlichen Code-Stil, der sich an den Gepflogenheiten des Qt-Projekts orientiert R((T. Das soll vor allem Qt- Programmierern den Einstieg und die Nutzung der Frameworks erleichtern. Zudem muss ein Framework eine ganz bestimmte Verzeichnisstruktur besitzen. Das Unterverzeichnis »docs« enthält etwa die Dokumentation, unter »examples« finden Programmierer Beispielcode. Um eine hohe Qualität zu garantieren, müssen Entwickler ihre Frameworks automatisierten Unit-Tests unterwerfen. Geeignete Tests müssen dem Framework '+&)'(+ Jf]knXi\

@e]fj R(T JklXikAXim`j#ÙI\gfj`k`fe`e^k_\B;< 9iXe[È1R_kkg1&&[fk%b[\%fi^&)''0&((&)+& i\gfj`k`fe`e^$b[\$YiXe[T

B;<=iXd\nfibj R)T B;<$:fddle`kp$N`b`Æ=iXd\nfibj&K\i$ d`efcf^p1R_kkg1&&Zfddle`kp%b[\%fi^& .' =iXd\nfibj&K\id`efcf^pT R*T Hk>fm\ieXeZ\Df[\c1R_kkg1&&hk$gifa\Zk% fi^&n`b`&K_\VHkV>fm\ieXeZ\VDf[\cT R+T AfjGffikmc`\k#ÙHk,%)Æ=fle[Xk`fe]fi

nnn%c`elo$dX^Xq`e%[\ B;<=iXd\nfibj,È1 R_kkg1&&[fk%b[\%fi^&)'(*&()&(.&hk$,)$ ]fle[Xk`fe$b[\$]iXd\nfibj$,T R,T B;<$:fddle`kp$N`b`Æ:feki`Ylk`e^kf Hk,\g`Z1R_kkg1&&Zfddle`kp%b[\%fi^& 8YY`c[le^,1;`\J\`k\@ehcl[\]•_ikY\i\`kja\kqkqX_ci\`Z_\`ek\i\jjXek\9`Yc`fk_\b\e]•iHk$Gif^iXdd`\i\i =iXd\nfibj&iXg_[\iB;<=iXd\nfibj R(,T, doch soll in den nächsten Tagen M\ij`fe,1 eine Alphaversion kommen. In der Pre- Die Entwickler der KDE Frameworks 5 R_kkg1&&X^Xk\Xl%Zfd&kdg&b],&b],%ge^T view tragen die Frameworks noch die scheinen auf einem guten Weg: Die Bib- R('T B;<$:fddle`kp$N`b`Æ=iXd\nfibj&C`jk1 Versionsnummer 4.95.0, die Bibliotheken liotheken werden plattformunabhängig, R_kkg1&&Zfddle`kp%b[\%fi^&=iXd\nfibj& basierten auf dem am 12. Dezember 2013 schlanker und modularer. Programmierer C`jkT veröffentlichten Qt 5.2. können sich zudem gezielt die Frame- R((T AfjGffikmc`\k#ÙB;<=iXd\nfibj,189`^ Später sollen alle überarbeiteten KDE- works herauspicken, die ihr Programm ;\Xc]fi=i\\Jf]knXi\È1 Bibliotheken die Versionsnummer 5 er- benötigt, und müssen keinen dicken R_kkg1&&nnn%c`elo%Zfd&e\nj&jf]knXi\& halten und sich neben der alten KDE Klumpen mit ungenutzten Bibliotheken Xggc`ZXk`fej&.,,.-/$b[\$]iXd\nfibj$,$ Platform 4 installieren lassen R(-T. Den mehr ausliefern. Von der Übereignung X$Y`^$[\Xc$]fi$]i\\$jf]knXi\T aktuellen Entwicklungsstand verrät eine des Quellcodes an das Qt-Projekt profi- R()T @ehcl[\1R_kkg1&&`ehcl[\%fi^T Seite im KDE-Wiki R(.T. Die zu erledi- tieren alle Qt- und KDE-Entwickler. De- R(*T ?fnXi[:_Xe#ÙB;<I\c\Xj\JkilZkli\ genden Aufgaben bezeichnen die KDE- nen helfen auch die einheitlichen, an Qt `k$I\gfj`kfip1R_kkgj1&&gifa\Zkj%b[\%fi^& Vorabversionen liefert ebenfalls das KDE- Allerdings bestehen die KDE Frameworks gifa\Zkj&]iXd\nfibjT Wiki R(/T. 5 noch immer aus über 50 einzelnen Tei- R(,T Hl\ccZf[\[\iK\Z_$Gi\m`\n1 Fertige Pakete von den Alphaversionen len, in denen sich Entwickler erst einmal R_kkg1&&[fnecfX[%b[\%fi^&lejkXYc\& wird es laut Aleix Pol vom KDE-Projekt zurechtfinden müssen. Die Einteilung in ] i X d \ n f i b j & + % 0 , % ' & T vorerst aber wohl nicht geben: „KDE Types und Tiers verwirrt eher, als dass R(-T B;<$:fddle`kp$N`b`Æ=iXd\nfibj&:f$ Frameworks sind genau das, Frame- sie hilft – eine einfache Liste mit allen `ejkXccXY`c`kp1R_kkg1&&Zfddle`kp%b[\%fi^& works. Ich weiß, es ist nicht aufregend, vorhandenen Bibliotheken und ihren Ab- =iXd\nfibj&:f`ejkXccXY`c`kpT aber das geht etwas weiter als Tar-Files. hängigkeiten wäre übersichtlicher und R(.T B;<$:fddle`kp$N`b`Æ=iXd\nfibj&

.) Jf]knXi\ nnn%c`elo$dX^Xq`e%[\ Kffck`ggj '+&)'(+ Kffc wartung ihrer Linux-Server SSHaufder Über eineneigenenTerminal-Emulator nen SchedulerundeinenLogviewer. sie Dateimanager, einenTexteditor, ei- Hosts-Datei. Unter»Werkzeuge« finden neue Fi ren dieinstalliertenPakete, definieren nutzer denFestplattenplatz ab, inspizie- In derAbteilung»System« fragen dieBe- MySQL, Apacheundmehr. Bind, Samba,Cron, DHCP, NFS, IPtables, installierten Dienste. Ajentiunterstützt allgemeine Systemeinstellungen unddie Über denlinken Rand erreichen Admins Auslastung sowie dieSwap-Nutzung ein. und blendetdieUptime, CPU-undRAM- Das Panel zeigtdenaktuellenStatusan Optional läuftdasGanzeüberHTTPS. über Port 8000zumAjenti-Dashboard. In derVoreinstellung gelangenNutzer Distributionen. jekt-Homepage gibtesPakete füraktuelle Webbrowser zurVerfügung. Auf derPro- stellt einkomfortables Adminpanel per Ajenti anschauen.DasPython-Programm Schnittstelle bevorzugt, dersolltesich Kommandozeile. Wer einegrafische Die meisten N\ibq\l^\`dBliqk\jk mandozeilenprofis gefallendürfte. tion von Linux-Servern, dieselbstKom- Oberfläche fürdieRemote-Administra- ★★★★★ auf demServer. öffnet dasAdminpanel sogareineShell 8a\ek`(%)%(. 8ck\ieXk`m\e1N\Yd`e C`q\eq1C>GCm* Hl\cc\1 N\Y$YXj`\ik\j8[d`egXe\c rewallregeln oderbearbeitendie R_kkg1&&Xa\ek`%fi^T Ajentiisteinekomfortable Admins nutzenzurFern- k`ggj ■ ★★★ chen Rücksichtnehmenzumüssen. lung von Quotasoderanderen Sonderzei- verarbeiten, ohneauf dieSonderbehand- oder miteigenenSkriptenautomatisiert gramme wieAwk oderCutweiterreichen Das Ergebnis könnenBenutzer anPro- beide Programme nichtan. arbeiten. DieZeilenendenselbsttasten Zeilen mitmaximal65 536 Zeichenver- ein. ImGegensatzzuUncsvkann Csvnur führungszeichen undEscape-Sequenzen mata ein.BeiBedarfbautesauchAn- Pipezeichen wiederausundfügtKom- den Rückweg empfiehlt.Es wechselt das Mit imPaket istdasTool Csv, dassichfür frei wählbare Symbole aus. Feldern odertauschtsiedurch andere, Zeilenumbrüche und-vorschübe ausden durch Pipes. Außerdem löschtdasTool rungszeichen undersetzt den Feldtrenner entfernt Escape-Sequenzensowie Anfüh- arbeit nötig.UncsvübernimmtdenJob, men weiterzuverarbeiten, istoftHand- Um CSV-Dateien mitanderen Program- Komma zumEinsatz. und alsTrennzeichen kommt meistdas Anführungszeichen begrenzen dieFelder ken undTabellenkalkulationen etabliert. CSV-Dateien experimentieren. händigt, dersollte mitUncsvundCsv bearbeitung anweitere Programme aus- Austauschformat zwischenDatenban- LeZjm'%0%( 8ck\ieXk`m\e1b\`e\ C`q\eq1@J: Hl\cc\1 :JM$;Xk\`\ebfem\ik`\i\e ★★ R_kkg1&&kXd\ek`j%Zfd&gifa\Zkj&leZjmT Wer CSV-Dateien ohneNach- habensichalsgängiges ■ Linux-System zuerzeugen. komplexe Zufallszahlenaufdem eigenen ★★★ abzulegen. es, diePID-Dateianeinemanderen Ort ten einenOnlinetestundermöglichen Nicht-Linux-Systemen lauffähig,enthal- tures. Neuere Versionen sindsogarauf Haveged erhältfortlaufendneueFea- beschreibt dieumfangreiche Manpage. Anfertigen von Luks-Schlüsseldateien, Anwendungsbeispiele, zumBeispiel Weitere Konfigurationsparameter und diese Buffergröße. rufoption »-b«beeinflussenBenutzer mit Zufallswerten vor. Hinterder Auf- hält dasTool einenBuffervon 512 KByte ins File»sample«.InderVoreinstellung dernfalls schreibt Haveged seineDaten gibt eraußerdem dieZieldateian;an- von derDateigrößeinKByte. Hinter»-f« Programm mitdemParameter »-r«gefolgt Zufallswerten erzeugen,sostarteterdas Will derAnwender eineeigeneDateimit urandom« schreibt. »/dev/random« beziehungsweise »/dev/ dert Rootrechte, daerseineDatennach Prozessorzustand an.DerDiensterfor- Pool groß genugist,undzapftdazuden and Expansion)dafür, dassderEntropie- (Hardware Volatile Entropy Gathering sorgt mitHilfedesHavege-Algorithmus Verschlüsselung. DerDaemonHaveged Zufallszahlen ?Xm\^\[(%/ 8ck\ieXk`m\e1K`d\i$\ekifgp[#8l[`f$GCm* Hl\cc\1

.+ Jf]knXi\ nnn%c`elo$dX^Xq`e%[\ Kffck`ggj '+&)'(+ Thema ausschweigt. da sichdieDokumentationzu diesem der solltedenEntwicklerkontaktieren, Wer eigenePluginsbeisteuernmöchte, funktion undeinenHeap-Analyser. Breakpoint-Manager, eineOpcode-Such- rungen beigelegt,beispielsweise einen Debugger bereits zahlreiche Erweite- Programmierer Evan Teran hatseinem erweitern denFunktionsumfang. Der EDB istmodularaufgebaut,Plugins Bereiche. Bytes undanalysiert zusammenhängende zum BeginneinerFunktion, bearbeitet springt zubestimmtenAdressen oder Assembler-Code setzterBreakpoints, Mausklick, umsiezukommentieren. Im ten Zeilennummerngelangtermiteinem zeichen markierthat.Zudenhiergeliste- len präsentiert,diederNutzeralsLese- einen Bookmarks-Bereich, derCodezei- Stacks. DieQt-Anwendung bietetzudem Register unddenaktuellenInhaltdes Assembler-Code, eineListederCPU- gramm inEDBgeladenhat,siehterden Nachdem derEntwicklerdasBinärpro- Verfügung steht. zur Hand,fürdiederQuellcodenicht bei derDiagnosesolcherAnwendungen tigt Qt4.6oderneuerundgehtvor allem EDB, eineChancegeben.DasGUIbenö- mag, dersollteEvan’s Debugger, kurz (GNU Debugger).Wer esliebergrafisch fans greifen unterLinuxgernezumGDB bei derFehlersuche. Kommandozeilen- wünscht, dannunterstützt einDebugger Funktioniert intuitiv zubedienen. grafische Oberfläche. DerDebugger ist Funktionsvielfalt unddieübersichtliche ★★★★ <;9'%0%)' 8ck\ieXk`m\e1>;9#GCm) Hl\cc\1 ;\Yl^^\i]•i9`e€i[Xk\`\e ★ [\Yl^^\iT R_kkg1&&Zf[\]''%Zfd&gifa\Zkj EDBbestichtdurch seine einProgramm nichtwiege- ■ ★★★ und »pmaster«-Prozesse. Parameter zurSteuerungder»pworker«- die Datei»README«.Sieerklärtauchalle dieser FilesundetlicheBeispieleliefert Detaillierte InformationenzumAufbau hinter demParameter »language«. definiert derAdmin inder».job«-Datei Um welchen Dateitypes sichhandelt, oder Javascript-Anwendungen entgegen. nur Shellskripte, Python-,Java-, Ruby- out-Einstellungen. PrunnimmtalsJobs Clusterhosts sowie verschiedene Time- grammdatei, diePriorität, eine Listealler weise denPfadzurausführbaren Pro- alle notwendigen Metadaten,beispiels- folgen derJson-Notation.Sieenthalten tei mitderEndung».job«an.DieseFiles behandeln, legtderAdmin eineSteuerda- Um einProgramm alsJobimClusterzu bleme auftreten. Rechner neu,etwa wenn Hardwarepro- ihn gegebenenfallsaufeinemanderen hält denJobimmerimAuge undstartet dem Anwender. LetztgenanntesTool be- waltung unddieKommunikation mit mert, übernimmt»pmaster«dieJobver- eigentliche Ausführung desJobsküm- »pworker« imHintergrund sichumdie die Handinarbeiten.Während nenten, demWorker unddemMaster, schlangen. Esbestehtauszwei Kompo- verteilt Prioritätenundverwaltet Warte- Python-Tool überwacht dieRessourcen, Linux- undanderen Unix-Systemen. Das das parallele Ausführen von Tasks auf Prun steuert tion gründlichstudieren. Anwender diemitgelieferteDokumenta- bungen. Vor demersten Aufruf sollten tung inHigh-Availability-Cluster-Umge- Gile Hl\cc\1 AfYm\inXckle^]•i:cljk\i 8ck\ieXk`m\e1KXjb:ileZ_\i C`q\eq18gXZ_\ ★★ R_kkgj1&&^`k_lY%Zfd&XYl[e`b&gileT PrunerleichtertdieJobverwal- als Cluster-Job-Scheduler ■ etwa Tcpdump oderWireshark zum Pacp-Format, dasgängigeSnifferwie akzeptieren dieProgramme Dateienim arbeiten undabspielen.AlsDatenquelle die aufgezeichnetenNetzwerktraffic be- Diese auch Beispiele. ben einerAnleitung findenBenutzerhier satz einBesuchimWikiempfiehlt. Ne- ist soumfassend,dasssichvor demEin- ★★★★ Dateien aufzuspüren. Tcpcapinfo hilftdabei,defektePCAP- eigene Skripte. DasDiagnosewerkzeug Anwender Tcpreplay-Manipulationen in Tcpprep zurVerfügung. Damitintegrieren zen, stehtauchalseigenesTool namens Tcprewrite fürihre Anpassungennut- Der Präprozessor, denTcpreplay und Anonymisierung von IP-Adressen. wie etwa dasPort-Remapping oderdie umfang undermöglichenÄnderungen Beide habeneinenähnlichenFunktions- kete während desEinspielensmodifiziert. arbeitet, undTcpreplay-edit, dasDatenpa- gramme Tcprewrite, dasPcap-Dateien be- Mit imPaket dabeisinddiebeidenPro- noch gezielter. atime« steuernBenutzerdasGeschehen Abspielen, undmit»--pps«oder»--oneat- plier« beschleunigtoderverlangsamt das Aufzeichnung ab. DerParameter »--multi- in dergleichenGeschwindigkeit wiedie erneut. InderVoreinstellung läuftalles modus sendetesauchdieAntwortpakete Archiv enthaltenenAnfragen, imServer- Als ClientwiederholtesnurdieimPcap- Client- oderimServermodus betreiben. der dasTool Tcpreplay wahlweise im Bei derWiedergabe kann derAnwen- Speichern nutzen. KZgi\gcXp+ 8ck\ieXk`m\e1E\kje`]]$e^#Gi\gcXp C`q\eq1>GCm* Hl\cc\1 ^\Y\e D`k^\jZ_e`kk\e\eK:G$;Xk\em\ib\_in`\[\i$ Toolsammlung enthältWerkzeuge, ★ R_kkg1&&kZgi\gcXp%Xgge\kX%ZfdT DieTcpreplay-Toolsammlung %'%' (U. Vollbracht/ hej)

■ '+&)'(+

8lj[\d8cckX^\`e\jJpjX[d`e1Df[VYn]•i8gXZ_\ JpjX[d`e  ;`\d`k[\eI•jj\ce <`e]•_ile^

., <`ei\Z_\ejkXib\iN\Yj\im\i_`c]kn\e`^#n\eej`Z_qlm`\c\9\elkq\ild[`\9Xe[Yi\`k\j\`e\iE\kqXeY`e[le^ YXc^\e%JpjX[d`e$Bfclde`jk:_Xicp_Xkj`Z_\ekjZ_`\[\e1>if\JXl^\ibi`\^\eXej\`e\iKi€eb\b•e]k`^[`\ jZ_c\Z_k\i\eGc€kq\%:_XicpB•_eXjk nnn%c`elo$dX^Xq`e%[\

Ich habe einen Webserver, der mit 100 Die beiden »Bandwidth«- MBit/ s angebunden ist und auf dem Dut- Zeilen geben die maximale zende virtuelle Hosts laufen. Einer davon Geschwindigkeit an, in der bietet ISO-Images von Linux-Distributio- Apache seine Daten an die nen zum Download an, die teils mehrere definierten Clients sendet. GByte groß sind. Wenn genug Leute zeit- Hier muss ich die Reihenfolge gleich daran saugen, gibt es eine Rohrver- beachten, denn es gilt „first stopfung – die Downloads drängen den Match“: Die erste auf einen restlichen HTTP-Verkehr an die Wand, die Client zutreffende Bandwidth- Apache-Antwortzeiten gehen in die Knie Regel gewinnt, ich muss also und die User werden unleidig. spezielle Regeln vor allgemei- Meine Rettung hört auf den Namen Liba- neren definieren. pache2-mod-bw R(T oder ähnlich, je nach Schreibt der Admin als ma- Distribution. Das „bw“ steht für Band- ximale Geschwindigkeit eine width, und genau deren Verbrauch kann Null in die Konfiguration wie in der ers- 2 MByte. Zuletzt lege ich die Geschwin- ich damit steuern. 8YY`c[le^( zeigt als ten Bandwidth-Zeile, gibt es keine Be- digkeit für die Schwergewichte fest. Ich Beispiel einen Ausschnitt aus einer Apa- grenzung – das Netz 10.50.0.0/ 16 hat entscheide mich für 5 MBit/ s, in Bytes che-Konfiguration, das demonstriert, was al so freie Bahn. Für alle anderen Clients pro Sekunde bedeutet das 655 360. mit dem Modul alles machbar ist. gilt das in der nächsten Zeile festgelegte Auch die Zahl gleichzeitiger Verbindun- Es kann kaum überraschen, dass »Band- Limit von 20 MBit/ s. Achtung, hier liegt gen darf ich begrenzen. Die Null in der widthModule On« die Bandbreitenre- ein Stolperstein im Weg: Die Geschwin- ersten »MaxConnection«-Zeile setzt dem gulierung für diesen virtuellen Host digkeit muss man in Bytes pro Sekunde Netz 10.50.0.0/ 16 keine Limits, für alle einschaltet. Dagegen sieht »ForceBand- einstellen, deshalb der Wert 2 621 440. anderen gelten 32 Parallelverbindungen widthModule On« ein wenig doppelt als Obergrenze. Ist sie ausgeschöpft, ant- gemoppelt aus. Die Zeile ist trotzdem ;`\>if\eki`]]kËj_Xik wortet der Apache normalerweise mit notwendig, denn nur sie zwingt alle Ver- dem Fehlercode 503 (Service unavaila- bindungen durch Mod_bw und nicht nur »LargeFileLimit« gibt mir die Möglich- ble), was mir reichlich unspezifisch er- ausgewählte Mime-Types. keit, die Geschwindigkeit beim Down- scheint. Mod_bw bietet aber die Möglich- load großer Dateien keit, einen anderen Code festzulegen, ich zu drosseln, während nehme 510 und lasse eine selbst gestaltete der Host kleine mit der Fehlerseite zurückgeben. (jk) ■ normalen ausliefert. Drei Parameter muss ich angeben: Zuerst @e]fj kommt der Dateityp, R(T Df[VYn1R_kkg1&&`me%Zc&ZXk\^fip&XgXZ_\& im Beispiel ».iso«, YXe[n`[k_T Mod_bw würde hier auch ein Asterisk als ;\i8lkfi Platzhalter akzeptie- :_XicpB•_eXjkX[d`e`jki`\ik ren. Danach kommt Le`o$Jpjk\d\`dI\Z_\eq\e$ die Dateigröße in Byte, kildE`\[\ii_\`e%Qlj\`e\e oberhalb der die Re- 8l]^XY\e ^\_i\e J`Z_\i$ gel greift – die Angabe _\`k le[ M\i]•^YXib\`k [\i 8YY`c[le^(18gXZ_\$9\`jg`\cbfe]`^liXk`fed`kDf[VYn$;`i\bk`m\e% 2 097 152 entspricht =`i\nXccjle[[\i;DQ% '+&)'(+

<`em`ikl\cc\jIX`[`dE\kqd`k8K8fm\i

.- N\imfdÙJg\`Z_\ie`dE\kqÈjgi`Z_k#d\`ekf]k[Xj<`eY`e[\emfe>\i€k\em`X@$J:J@%;`\j\i8ik`b\cjk\cck[`\ \`e]XZ_\8ck\ieXk`m\8K8fm\i

ren Kombination müssen allerdings im Netzwerk eindeutig sein. Neben Optionen für die schreibgeschützte Bereitstellung und Einstellungen des Puf- fers oder der Zugriffsmodi ist auch die Angabe von MAC-Adressen als komma- separierte Liste möglich. Das funktioniert als Whitelist: Nur Computer mit einer der angegebenen MAC-Adressen haben Zugriff auf die Daten. Zu Testzwecken bietet es sich an, Raw- Images zu verwenden. Der folgende Be- fehl erzeugt ein Abbild mit einer Größe von 10 GByte:

dd if=/dev/zero of=/test/raw_image.raw5 bs=1M count=10000

ŸFc\eX9`c`fe#()*I=%Zfd Wer es lieber mit realen Datenträgern probieren möchte, setzt statt des Image Ganz ähnlich wie I-SCSI ist auch ATA »vblade« installieren, auf Debian-Syste- »/test/raw_image.raw« einfach das ge- over Ethernet (AOE, R(T) ein Protokoll men geht das schnell mit »aptitude install wünschte Device ein, etwa »/dev/sdc1« für den Zugriff auf Datenträger übers vblade«. Nicht weniger einfach läuft die für die erste Partition der als »sdc« einge- Ethernet. Der Zugriff auf die Datenträger Prozedur auf dem Initiator, nur sind hier bundenen Festplatte. erfolgt mit ATA-Befehlen, die das Proto- die AOE-Tools erforderlich (»aptitude ins- koll zur Übertragung über das Netzwerk tall aoe-tools«). Jetzt steht das Kernelmo- J_\c]jle[Jcfkj in Datenpakete verpackt und auf der dul »aoe« bereit, »modprobe aoe« lädt es. Gegenseite wieder zusammenbaut (8Y$ Soll es beim Start standardmäßig geladen Um das soeben erzeugte Raw-Image auf Y`c[le^ (). Diese Vorgehensweise ermög- werden, ist ein entsprechender Eintrag in dem Target über Shelf 2 und Slot 1 frei- licht einen vergleichsweise Hardware-na- der Datei »/etc/modules« erforderlich. zugeben, reicht ein einfaches: hen Zugriff auf Speichergeräte über das vblade 2 1 eth0 /test/raw_image.raw Netzwerk hinweg. 9\i\`kjk\ccle^mfe Die genauen Spezifikationen des Proto- ;Xk\eki€^\ie Wenn auf dem Initiator-System alle Vor- kolls lassen sich auf der Webseite R(T aussetzungen erfüllt sind, dann wird der nachlesen: Ganz ähnlich wie bei I-SCSI Das Bereitstellen von Datenträgern oder Datenträger sofort sichtbar sein. Ist das bezeichnet die Literatur das System, das Partitionen übernimmt das Programm nicht der Fall, dann sollte der Adminis- die physikalischen Datenträger bereit- Vblade. Es erwartet als Parameter eine trator den Befehl »aoe-discover« aufru- stellt, als Target. Initiator heißt das Sys- Shelf-Nummer (Shelf steht für Regal oder fen. Welche Datenträger dem System zur tem, das die Datenträger einbindet. Ablage), eine Slot-Nummer (Einschub), Verfügung stehen, zeigt »ls /dev/etherd«,etherd«, die Netzwerkschnittstelle, über welche die Bereitstellung erfolgen soll, sowie ;$;M; 9\ek`^k\Bfdgfe\ek\e DELUG-DVD die Angabe der Partition oder des Daten- 8l][\i;$;M;]`e[\eC\$ Für den Betrieb eines AOE-Setups ist nicht trägers. Auch eine Datei bereitzustellen, j\ia\n\`cj\`eKXi$8iZ_`m[\iqldI\[Xbk`$ viel Software erforderlich. Auf dem Target zum Beispiel Raw-Images, ist möglich. fejjZ_cljje\l\jk\e8lj^XY\mfeMYcX[\le[ muss der Administrator nur das Paket Die Shelf- und die Slot-Nummer oder de- [\i8F<$Kffcj% '+&)'(+ JpjX[d`e ohne Neustart umge- tionsdatei »mdadm.conf« anlegen und @e`k`Xkfi hend bereitzustellen, sicher aufbewahren (C`jk`e^)). kann er es auch mit Experimentierfreudige Administratoren »vblade-persist start greifen statt zu Mdadm zu Btr-FS, weil 2 1« sofort aktivieren. es in der Handhabung deutlich einfacher Einen Überblick über als Mdadm ist, dabei aber mehr Mög- :c`\ek&KXi^\k( 8K8fm\i

:c`\ek&KXi^\k) E\kqn\ib$IX`[ ;Xk\ej`Z_\ile^le[ nnn%c`elo$dX^Xq`e%[\ IX`[ M`iklXc`j`\ile^ =i\`^XY\1 Wer im eigenen Netz- E=J#JXdYX#%%% werk mehrere Compu- Wer öfter Datenträger-Sicherungen übers ter vorhält, die ohne- Netzwerk anfertigen muss (wie das bei- hin rund um die Uhr spielsweise in der Datenforensik häufig :c`\ek&KXi^\k* im Betrieb sind und der Fall ist), wird besonderen Gefallen 8YY`c[le^(1IX`[$;\m`Z\j`dE\kqd`k8K8fm\i

Hierbei muss der Admin absolute Pfade Damit der Administrator bei einem Aus- 01 DEVICE /dev/etherd/e*.* für den Datenträger oder die Datei ver- fall des Initiators ohne großen Zeitver- 02 # auto-create devices with Debian standard wenden. Danach markiert er das De- lust den Raid-Verbund auf einem anderen permissions vice mit »vblade-persist auto 2 1« für System reaktivieren kann, sollte er sich 03 CREATE owner=root group=disk mode=0660 auto=yes 04 # automatically tag new arrays as belonging to the den automatischen Start. Um es auch eine entsprechende Mdadm-Konfigura- local system 05 HOMEHOST 06 # instruct the monitoring daemon where to send mail alerts 07 MAILADDR root 08 # definitions of existing MD arrays 09 ARRAY /dev/md/0 devices=/dev/etherd/e1.1,/dev/etherd/ e2.1,/dev/etherd/e3.1 8YY`c[le^)1¾Xf\$jkXk½q\`^k#[Xjj[\d@e`k`Xkfi[i\`;Xk\eki€^\iqliM\i]•^le^jk\_\e% '+&)'(+ JpjX[d`e einschlägigen Projekte hat bis zum Re- daktionsschluss lediglich das Team von Deftlinux R-T mit einer Zusage für die nächste Version reagiert.

8K8fm\i

nnn%c`elo$dX^Xq`e%[\ Admin schnell ein gesichertes Image als 8YY`c[le^*18lZ_[Xj=fi\ej`b$Kffc>lpdX^\i\ib\eek8F<$CXl]n\ib\Xl]8e_`\Yle[\icXlYk^Xeq\;Xk\e$ virtuelle Festplatte ins Netzwerk stellen. ki€^\ijZ_e\cc•Y\ijE\kqn\ibqlj`Z_\ie% Wie Xmount funktioniert, erklärt ein frü- herer Artikel des Linux-Magazins R/T. Der Admin braucht nur das defekte Gerät neuen System wieder aufbauen. Hierbei Forensiker, die ein Datenträgerabbild im durch ein funktionstüchtiges auszutau- kann der Administrator auf die zuvor ge- Encase-Format mit Schreibsupport bereit- schen, wobei er beispielsweise auch eine sicherte Konfiguration zurückgreifen oder stellen wollen, sollten dieses zunächst reale Festplatte durch ein Raw-Image auf direkt Mdadm verwenden: virtuell in ein Raw-Image umwandeln einer anderen Maschine ersetzen kann. mdadm --assemble /dev/md0 /dev/etherd/e1.15 und das Raw-File anschließend als Da- Der neue Datenträger sollte nur der /dev/etherd/e2.1 /dev/etherd/e3.1 tenträger einbinden. Größe des ursprünglichen entsprechen Auf einem entfernten Rechner kann die und ist schließlich über Vblade-persist Im diesem Fall stellt der Befehl das Raid Virtualisierung des Systems beispiels- freizugeben. auf einem anderen System wieder her: weise über »qemu-kvm« erfolgen. Im Wer zum Beispiel das mit »e2.1« verbun- einfachsten Falle gelingt das mit dene und ausgefallene Device lösen will, =Xq`k ruft den folgenden Befehl auf: qemu-kvm -m 1024 -hda /dev/etherd/e2.3 ATA over Ethernet ist ein vielverspre- mdadm /dev/md0 --remove /dev/etherd/e2.1 das bewusst auf mögliche Optimierungen chendes Protokoll, das vieles vereinfacht verzichtet und keine Anpassungen des Anschließend nimmt er das neue Gerät, und eigentlich mehr Beachtung verdient Gastsystems an die neue Umgebung be- hier als »e4.1« dargestellt, in den Raid- hat. Der richtige Einsatz kann Adminis- rücksichtigt, dafür aber deutlich klarere Verbund auf: tratoren und Forensikern die Arbeit an Fehlermeldungen ausgeben wird. einigen Stellen erleichtern – nicht selten mdadm /dev/md0 --add /dev/etherd/e4.1 lassen sich damit sogar Raid-Strukturen 8lj]Xcc\`e\jKXi^\kjf[\i Im Hintergrund startet die Software nun virtualisieren. (mfe) ■ [\j@e`k`Xkfij den Rebuild-Prozess, der je nach Größe des Systems einige Stunden in Anspruch Fällt ein Target aus, ist dies im Prinzip nehmen kann. @e]fj nichts anderes als der Ausfall einer Fest- Fällt dagegen ein Initiator aus, dann R(T 8F<$JkXe[Xi[1R_kkg1&&jlggfik%ZfiX`[%Zfd& platte in einem normalen Raid-Verbund. lässt sich der Verbund einfach auf einem [fZld\ekj&Xf\i((%kokT R)T>lpdX^\i1R_kkg1&&^lpdX^\i%j]%e\kT C`jk`e^*1IX`[$M\iYle[d`k9ki$=J R*T >idc1R_kkg1&&nnn%^idc%fi^T 01 # mkfs.btrfs -d raid5 -m raid5 -L nwraid /dev/etherd/e1.1 /dev/etherd/e2.1 /dev/etherd/e3.1 R+T:X`e\1R_kkg1&&nnn%ZX`e\$c`m\%e\kT 02 R,T8F<$KffcjY\`JfliZ\]fi^\1 03 WARNING! - Btrfs v0.20-rc1 IS EXPERIMENTAL R_kkg1&&Xf\kffcj%jfliZ\]fi^\%e\kT 04 WARNING! - see http://btrfs.wiki.kernel.org before using R-T;\]kc`elo1R_kkg1&&nnn%[\]kc`elo%e\kT 05 R.T Odflek$?fd\gX^\1 06 adding device /dev/etherd/e2.1 id 2 R_kkg1&&nnn%g`e^l`e%clT 07 adding device /dev/etherd/e3.1 id 3 R/T?Xej$G\k\iD\ib\cle[DXiblj=\`ce\i# 08 Setting RAID5/6 feature flag ÙBi\lqle[hl\iÈ1C`elo$DX^Xq`e('&'0# 09 fs created label nwraid on /dev/etherd/e1.1 J%0' 10 nodesize 4096 leafsize 4096 sectorsize 4096 size 29.30GB 11 Btrfs v0.20-rc1 ;\i8lkfi ;\ee`jJZ_i\`Y\i`jk:fdglk\i$=fi\ej`b\i`e[\i C`jk`e^+1Odflek K_•i`e^\i=`eXeqm\inXckle^%N\ee\ie`Z_k^\$

01 # xmount --in ewf --out dd --cache daten.ovl Festplattenabbild.e?? /mnt/analyse iX[\\knXjd`k=Xd`c`\le[=i\le[\elek\ie`ddk#

02 # vblade 2 3 eth0 /mnt/analyse/Festplattenabbild.dd Y\jZ_€]k`^k\ij`Z_d`kC`elole[:fdglk\i$=f$ i\ej`bf[\i[i\_k\`e\Ile[\d`k[\dDfkfiiX[%

'+&)'(+

8l]cjle^[\jN`ek\ii€kj\cj =fild E`\jgiXZ_cfj N`ek\ii€kj\c

/' Elin\ij`Z_`e[\iGif^iXdd`\ijgiXZ_\e$?`jkfi`\Xljb\eek#_Xkk\\`e\:_XeZ\Y\`[\e=iX^\e[\jN`ek\ii€k$ j\cjXlj8lj^XY\')&(+%;`\jdXc^`YkËje\Y\e[\ebe`]]c`^\e=iX^\eXlZ_[`\8eknfik\eÆle[[\eEXd\e[\j I€kj\cbe`^j)'(+#[\ie\Y\e[\dIl_dXlZ_\`e\eM`[\fi\Zfi[\i]•i[\eIXjgY\iipG`\`ejki\`Z_k%E`cjDX^elj nnn%c`elo$dX^Xq`e%[\

8cc\`eld\`e\qld`e[\jk^ik\ek\`cji`Z_k`^\Cjle^]•i[`\)'8l]$ ten Code formulieren hilft. Die in C`jk`e^( per Ocaml kodierte ^XY\e[\jN`ek\ii€kj\cjXlj[\dC`elo$DX^Xq`e')&)'(+qljkXe[\ Sortierfunktion, die auf beliebigen Typen funktioniert, ist ein qlY\bfdd\e#Y\[Xi]\jn\`k•Y\i[liZ_jZ_e`kkc`Z_\iB\eeke`jj\ schönes Beispiel dafür. [\iGif^iXdd`\ijgiXZ_\e$>\jZ_`Z_k\%Jf^\j\_\e[Xi]j`Z_a\[\i K\`ce\_d\iXcjJ`\^\ikpgY\kiXZ_k\e% ;\iC\^\e[\eXZ_dfk`m`\ik\[\elijgi•e^c`Z_\e8lkfiqli >\n`ee\i [\j JXZ_gi\`j\j Æ M`[\fi\Zfi[\i$c\`Z_e`jXlj[\dDXkk$ IXjgY\iipG`mfe;M9C`ebR(TÆbfeek\a\[fZ_eli\`e\i[\ik\`ce\_$ *_€lj$\n`ee\iÈ [liZ_jZ_i\`k\k`dj\cY\e9`Y\ck\ok[XjNXgg\ek`\i[\iJgiXZ_\6 c•]k\k[Xj>\_\`de`j%;\i8ik`b\cj\cYjki\g\k`\ik[`\=iX^\ele[ Der Urvater Abraham des Perl-Universums, Larry Wall, ist ka- Y\Xeknfik\kj`\bfii\bkÆn`\^\nf_ekXlj]•_ic`Z_% lifornischer Programmierer und bekennender Christ. Er beruft sich bei der Namenswahl seiner Skriptsprache gerne auf Mat- 8bifepd\j`e[]•iGif^iXdd`\ijgiXZ_\e[liZ_XljY\c`\Yk#i\$ thäus 13, 46: „Als er eine besonders wertvolle Perle fand, ver- blij`m\Xcc\dXc%N\cZ_\JgiXZ_\\i]Xe[\`eDXeed`k[€e`jZ_\d kaufte er alles, was er besaß, und kaufte sie.“ Inspiriert vom (GXjj]•ijNfic[N`[\N\Y6 Umschlag eines frühen Perl-Buches reüssierte das Kamel zum Obwohl er heute in den Vereinigten Staaten lebt, ist Rasmus Sinnbild für Perl. Der zitierte Evangelist wusste auch dazu einen Lerdorf auf Grönland geboren und damit gebürtiger Däne. Den Vers, nämlich 19, 24: „Nochmals sage ich euch: Eher geht ein „PHP: Hypertext Preprocessor“ schrieb er anfangs als Ersatz Kamel durch ein Nadelöhr, als dass ein Reicher in das Reich für eine Reihe von Perl-Skripten. Gottes gelangt.“

<`e Yi`k`jZ_\i Kli`e^$8nXi[$>\n`ee\i \ekn`Zb\ck\ \`e\ [\i ;Xj<`ei•Zb\emfe:f[\XcjjpekXbk`jZ_\j

01 let rec sort = function 02 | [] -> [] <`e \`[^\ejj`jZ_\i :fdg`c\i$ insert x (sort l) BXjbX[\ Xe JgiXZ_\e# nfmfe [`\ \ijk\ le[ mfe `_d Xcc\`e 04 \eknfi]\e\[`\^ik\M\iYi\`kle^^\]le[\e_Xk%Jg€k\inXi 05 and insert elem = function , `_d\`e\JgiXZ_\e`Z_k^\el^le[\i\eknXi]d`kBfcc\^\eXe\`e\i 06 | [] -> [elem] \lifg€`jZ_\e?fZ_jZ_lc\efZ_\`e[XqlgXjj\e[\j9\ki`\Yjjpjk\d 07 | x :: l -> le[\`e\eql^\_i`^\eI\Z_e\i%N`\cXlk\k[Xj^\idXe`jZ_\vhl`$

08 if elem < x then elem :: x :: l else x :: insert elem l;; fd mXc\ek[\iGif^iXdd`\ild^\Yle^6 ŸM`Z_XpXB`Xkp`e^$8e^jlc\\#()*I=%Z 8eknfik\e

( G G?G ) F FZXdc * E EX[\c_i + = =fikiXe '+&)'(+ , 8 8cY\i`Z_ - F FXb . G G`b\ / N N_`k\jgXZ\ 0 9 9:GC (' < 

Niklaus Wirth entwarf neben seiner bekanntesten Kreation Der US-Amerikaner Martin Richards entwickelte 1969 mit BCPL Pascal auch noch Modula, Modula-2 sowie Oberon. Die Spra- eine plattformunabhängige, aber sehr systemnahe Program- N`ek\ii€kj\c che brachte eine Entwicklungs- und Laufzeitumgebung mit. miersprache, die zwar relativ wenig Komfort und Sicherheits- An der ETH Zürich schuf Wirth mit seinem Team dafür die mechanismen enthielt, aber zugleich die zentralen Sprach- Systemplattform Ceres. Oberon ist ein anderer Name für den konstrukte einer imperativen Sprache umsetzte. Die Idee von /( Hüter des Nibelungeschatzes, Alberich, einen Zwerg der nor- Objektcode stammt in Teilen aus diesem Sprachkonzept. Über dischen Mythologie. den Umweg von B, das kaum produktiv zum Einsatz kam, entwickelte sich daraus C. Auch später blieb BCPL in Mode,

<`e \jZ_dXZbji`Z_kle^\`e\jCjZ_nXjj\i$Jl[\jld%Li$ -jgi•e^c`Z_kXl]k\[\i`ej\`e\d?\`dXkcXe[d`k\`e\dFi[\e FYnf_c\ij\_i]i•_[XjBfeq\gk[\i__\i\eGif^iXd$ Xlj^\q\`Z_e\k\\n`ee\i\ekn`Zb\ck\j`\6 a\[fZ_[Xj:f[\$Jkl[`ldm\i\`e]XZ_k%;`\_`\i^\jlZ_k\JgiXZ_\ Y`c[\k\`e\8ljeX_d\#n\`cj`\[`\j\JpdYfc\qld\`eq`^\eGi`eq`g \i_\Ykle[giXbk`jZ_lej`Z_kYXiYc\`Yk%N`\_\`k[`\JgiXZ_\6 Die Programmiersprache Whitespace besteht nur aus – ge- nau! – Whitespaces, also aus Leerzeichen, Tabulatoren und Zeilenumbrüchen. Das macht sie relativ schwer ausdruckbar. Dennoch ist die Sprache, die nach dem Stack-Prinzip arbeitet, in der Lage, beliebige Berechnungen auszuführen.

ŸD`Zif8GC ;`\ ^\jlZ_k\ JgiXZ_\ kiXk Xcj M\iY`e[le^j^c`\[ qn`jZ_\e ?fZ_$ le[ DXjZ_`e\ejgiXZ_\ Xl]# `ejg`i`\ik\ [\e _\lk`^\e 8YY`c[le^(18GCY\elkqk]•ij\`e\eHl\ccZf[\Q\`Z_\eXl\i_XcY[\i^\n_ec`$ 0HlXj`$JkXe[Xi[]•i[`\Jpjk\dgif^iXdd`\ile^le[c\^k\\`e\ Z_\e@JF$//,0$(,$JpdYfc\%@e[\e(0-'\iAX_i\e\ii\`Z_k\dXe[Xj[liZ_[Xj >ile[cX^\]•iFYa\bkZf[\% |Y\i\`eXe[\i[ilZb\emfeqn\`Q\`Z_\eXl]\`e\d=\iejZ_i\`Y\i% '+&)'(+ =fild

APL (A ) ist recht einfach aufgebaut für die chromatische Erhöhung eines Tons „Sharp“, was C#- und kann gut mit Vektoren und Matrizen umgehen. Sie macht Erfinder Microsoft wohl für einen gelungenen Scherz und es leicht, schnell zu Ergebnissen zu kommen. Wäre da nicht Seitenhieb auf C++ hielt. Wer bei Microsoft Beethoven hört, ist N`ek\ii€kj\c die Syntax: Gerade die Operatoren bestehen oft aus mehrfach leider nicht überliefert. Linux-Entwickler greifen zu Mono, um übereinandergedruckten Symbolen (8YY`c[le^(). in der objektorientierten Sprache zu programmieren. /) Um etwa einen Kommentar einzuleiten, tippten Programmierer ein großes A ein, bewegte den Cursor ein Zeichen zurück und <`e\Jk\l\ijgiXZ_\[\jLe`o$LimXk\ijnXi\`e\d9i`k\e überdruckten es mit einem kleinen O. Als Eingabefolge würde ql fcc%

nnn%c`elo$dX^Xq`e%[\ nur auf einem Fernschreiber. Um diese Limitierungen moder- 9\[\lkle^Y\j`kqk%N\cZ_\i

8YY`c[le^*1:fdglk\ig`fe`\i`e>iXZ\?fgg\i\i]Xe[e`Z_keli:fYfc#jfe[\ie 8YY`c[le^)19\\k_fm\eBcXm`\ijfeXk\Ei%(+fg%).Ei%)Y\^`eekd`kXl]^\Yif$ XlZ_[Xj;\Yl^^`e^%;Xj:_Xe^\cf^mfe(0+.d`k`_i\d\ijk\e^\]le[\e9l^`jk Z_\e\e8bbfi[\e`e[\iKfeXik[\j\ijk\eJXkq\j:`j$Dfcc% \i_Xck\e^\Yc`\Y\ele[jk\_k_\lk\`d8iZ_`m[\iLJ$DXi`e\% '+&)'(+ =fild

Mfe[\iNXgg\e^\jkXckle^dXcXY^\j\_\e#jg`\c\eK`\i\ Vererbungspfaden von einer Superklasse erben. Dieses Problem eli`en\e`^\eGif^iXdd`\ijgiXZ_\e\`e\e\ee\ejn\ik\ gibt es bei Einfachvererbung nicht. Da in Smalltalk jede Instanz Ifcc\% 9\` n\cZ_\i JgiXZ_\# ^\ie\ XlZ_ `e [\i 9`c[le^ ein Objekt ist, heißt ihre Metaklasse folgerichtig Object. (- N`ek\ii€kj\c \`e^\j\kqk#Yc\`Yk\`egfjj`\ic`Z_\jI\gk`c[X^\^\eleXY[`e^YXi6 Um Kindern den Zugang zum Programmieren zu erleichtern, N`\[XjN_fËjn_fmfe:fdg`c\iYXl$

;XjjXcc\j#nXje`Z_kY\c\^YXi`jk#b\`e\NX_i_\`k[Xijk\cck# e\ee\e Cf^`b\i [`\ :cfj\[$Nfic[$8jjldgk`fe% N\cZ_\ @e]fj (/JgiXZ_\YXlk[XiXl]Xl]6;\i\n`ee\i der Anwender parametrisieren muss. ;`\8YY`c[le^Xl][\iqn\`k\eJ\`k\fY\em\i$ i€kXcc\bfii\bk\e<`eq\cXeknfik\e%N\ij`\`e <`e\Xe^\_\e[\DXk_\dXk`b\i`ee\`^k\`e`_i\iAl^\e[ [Xj`dmfic\kqk\e?\]kY\jZ_i`\Y\e\eJZ_\dX qlJZ_•Z_k\ie_\`k%EXZ_[\dj`\`e\`e\di\efdd`\ik\e \`e]•kk\ik\#bXdXl][\eCjle^jjXkqÙ8Gc\X (0=fijZ_le^jq\ekildXe^\_\l\ik_Xkk\#Y\eXeek\j`\Æ[\i ]fic\XeJf]knXi\Èle[bfeek\[`\j\eY`jqld |Y\ic`\]\ile^eXZ_Æ[`\[fikd`k`_i\dK\Xd\ekn`Zb\ck\JgiXZ_\ (,%=\YilXiXeRn`ek\i7c`elo$dX^Xq`e%[\TjZ_`$ j\cYjk`ife`jZ_eXZ_lem\iY`e[c`Z_\eGXikp^\jgi€Z_\e%Mfen\cZ_\i Zb\e%8cc\(''$gifq\ek`^i`Z_k`^\e8eknfik\e# BcXjj\\iYka\[\@ejkXeq`ee\i_XcY[`\j\iJgiXZ_\6 \jnXi\e(+#_XY\eXe[\iXejZ_c`\\e[\eM\i$ An der Ideenschmiede Palo Alto Research Center entwickelte cfjle^k\`c^\efdd\e% Adele Goldberg mit ihrem Team Smalltalk, die das objektorien- ;`\ Xlj^\bc•^\ck\ M`[\fi\Zfi[\i$ le[ KM$ tierte Modell sehr konsequent umsetzte. Entwickler arbeiteten Jf]knXi\mfe;M9C`eb]•i[\e auf einem persistenten Desktop, der seinerseits ebenso wie IXjgY\iipG`R(T – `ebclj`m\ Compiler und Editor weitgehend in Smalltalk geschrieben war \`e\j bfdgXk`Yc\d LJ9$c•ZbnlejZ_ '+&)'(+

;`\Gif$J`\Y\e$JXk($KfZ_k\iDpm`[\fj`\^kmfi>\i`Z_k^\^\e\`e\FJJ$=`idX =fild ?X]kle^j]iX^\e I\Z_k

/+ ;`\:fddle`kp\`e\jFg\e$JfliZ\$;fnecfX[gif^iXddj_Xk\`eDf[lcgif^iXdd`\ik#[Xj^\ck\e[\Bfg`\i$ jZ_lkqY\jk`ddle^\em\ic\kqk%8cjf^\_k[`\Gif$J`\Y\e$JXk($KfZ_k\iDpm`[\fmfi>\i`Z_kÆle[^\n`eek ^\^\e[`\=`idX_`ek\i[\iFJJ$Jf]knXi\%<`eLik\`cd`kBfej\hl\eq\e%:_i`jkfg_\i;\E`Zfcf#DXiblj=\`ce\i nnn%c`elo$dX^Xq`e%[\

einstweilige Verfügung R,T auf „Unterlas- sung der Herstellung, des Vertriebs und des Besitzes (zu gewerblichen Zwecken) der Software Jdownloader 2“. Als Begründung stand darin, die Software ermögliche es Anwendern illegalerweise, geschützte Videostreams herunterzula- den und zu speichern, selbst wenn diese durch „die technischen Maßnahmen En- crypted Real-Time Messaging Protocol (RTMPE, R-T) und durch Token-URLs geschützt waren“. Hinzu kommt sicherlich auch, dass den Klägern die komfortable Bedienung des Download-Helpers ein Dorn im Auge war,

ŸY\ccX^\\#g_fkfZXj\%Zfd der die Zwischenablage des Anwenders überwacht und vorauseilend gehorsam Im Open-Source-Umfeld sind Abmah- beispielsweise Remote-Steuerung via HTTP- und FTP-Links nach herunterlad- nungen keine Seltenheit, auch hier sind CLI, Android und Webinterface. Die baren Inhalten wie Videodateien oder typischerweise Urheberrechtsverletzun- abgemahnte Appwork GmbH hatte ihn Flash-Videos scannt. Anwender können gen oft Gegenstand des Streits. Wie die unter der URL R*T zum Download ange- so mit wenigen Mausklicks Inhalte auf Geschichte des Projekts GPL-Violations boten (bei Redaktionsschluss hatte sich die Festplatte speichern, im vorliegen- R(T zeigt, stammen die Abmahnungen allerdings der Eintrag im Impressum der den Fall auch verbotenes, weil kopier- häufig aus der Open-Source-Community Webseite geändert). geschütztes Material aus der Mediathek selbst. Allerdings gibt es auch welche von Eskaliert der Streit um eine Abmahnung der Klägerin. außen, die sich gegen freie Software rich- und meinen es beide Seiten ernst, dann Um dies dem Gericht glaubhaft zu ma- ten und bisweilen drastische Konsequen- trifft man sich früher oder später vor chen, hatte ein Rechtsanwalt des Musik- zen haben können. Ein Fall, der kürzlich Gericht. Dort wird dann mit schnell verlages Myvideo vor dem Verfahren eine gegen die Open-Source-Gemeinschaft wachsenden Kosten und Risiken über Version von Jdownloader 2 heruntergela- ausgetragen wurde, dreht sich um das in Rechtsfragen gestritten, die für die OSS- den und auf seinem Rechner installiert. Java geschriebene Jdownloader 2 und die Gemeinschaft allgemein von Interesse Damit war es ihm ein Leichtes, von der Firma Appwork R)T. sind: Kopierschutz, die Bedeutung von Webseite der Pro-Sieben-Sat1-Tochter „technisch wirksam“, Störer- und Ge- Myvideo.de (R.T, 8YY`c[le^*) ein ge- A[fnecfX[\i)Xcj9\`jg`\c schäftsführerhaftung und wer überhaupt schütztes Video herunterzuladen und für ein OSS-Projekt haftet. dauerhaft zu speichern. Danach konnte Der beliebte Open-Source-Downloadma- Nachdem sich die Appwork GmbH als er das Video mit einem herkömmlichen nager erleichtert das Herunterladen und Betreiberin der Webseite Jdownloader. Mediaplayer beliebig oft abspielen. dauerhafte Speichern von zum Beispiel org auf eine Abmahnung mit der Auf- gestreamten Inhalten aus dem Internet forderung zur Abgabe einer Unterlas- 8ljjk`\^jjq\eXi`f ungemein (8YY`c[le^\e(und)). Dank sungserklärung nicht eingelassen hatte, Java läuft er auf allen gängigen Betriebs- erzwang der Abmahner, die Pro-Sieben- In einem solchermaßen umstrittenen Ab- systemen und Plattformen, er bringt Sat1-Gruppe R+T, gegen den Geschäfts- mahnfall gehen die Kosten schnell in die zahlreiche komfortable Funktionen mit, führer und seine Firma Appwork eine Höhe. Wie hoch, darüber entscheiden '+&)'(+ =fild peln. Derartige Summen können für kleine Gesellschaften, zum Beispiel eine haftungsbeschränkte Unternehmergesell- schaft, ein hohes Risiko bedeuten, im schlimmsten Fall gar bis zur Insolvenz. I\Z_k Und dabei ist von Schadenersatzansprü- chen noch gar nicht die Rede. Keine gu- ten Aussichten für kleine Unternehmen, /, möchte man meinen. Aber hätte man den Unterlassungsan- spruch und die Kosten früher abwehren

können? Wenn die GmbH die Unterlas- nnn%c`elo$dX^Xq`e%[\ sungserklärung unterzeichnet hätte, wä- ren wohl nur die vorgerichtlichen Kosten angefallen und die Angelegenheit wäre zunächst erledigt gewesen. Abgesehen 8YY`c[le^(1A[fnecfX[\i)lek\ijk•kqkm`\c\Gcl^`ejle[bXeeM`[\f[Xk\`\eXljN\Yc`ebj\okiX_`\i\e#[fZ_ davon, dass man wegen der weitreichen- _`\i`jkMfij`Z_k^\Yfk\e1E`Z_k`dd\i`jk[Xjc\^Xc% den Folgen einer Unterlassungserklärung diese nicht ungeprüft unterschreiben der gerichtliche Streitwert und der an- legte die Beklagte Widerspruch ein, was sollte, gab es wohl aus Sicht der Abge- waltliche Gegenstandswert. Das Gericht weitere Gerichtsgebühren und Anwalts- mahnten rechtliche Zweifel an der Recht- hatte im Verfahren einen Streitwert von kosten hinzukommen ließ. mäßigkeit, sodass man sich entschied, 200 000 Euro festgesetzt – Streitwerte Dass nur der Geschäftsführer Wider- die einstweilige Verfügung zumindest in über 25 000 Euro sind in gewerblichen spruch einlegte und nur er sich anwaltlich Kauf zu nehmen. Urheberrechtsstreitigkeiten fast schon die vertreten ließ, begrenzte die Folgekosten Regel (8YY`c[le^+). Eine Deckelung des einigermaßen. Hätten sowohl Antragstel- NXjY\[\lk\k\`^\ekc`Z_ Gegenstandswerts auf 1000 Euro nach § lerin als auch die beiden Antragsgegner – Ùk\Z_e`jZ_n`ibjXdÈ6 97a Abs. 3 UrhG kommt nur bei nicht ge- anwaltlich vertreten, vor dem Landgericht werblichen Rechtsverletzungen und auch herrscht Anwaltszwang – gemeinsam Wi- Einer der Knackpunkte im Verfahren war nur bei Erst-Tätern in Betracht. derruf eingelegt, wäre das zu erwartende die Frage, ob es sich bei der verwende- Dass der vorliegende Streitwert mögli- Prozesskostenrisko bei einem Streitwert ten RTMPE-Verschlüsselung überhaupt cherweise doch zu hoch angesetzt war, von 200 000 Euro für das einstweilige um eine wirksame Schutzmaßnahme ge- mag die Gegenseite dazu bewogen ha- Verfügungsverfahren auf nahezu 20 000 mäß § 95a UrhG handelt. Die Beklagte ben, Beschwerde gegen den Streitwertbe- Euro angewachsen. meinte, das technische Verfahren nutze schluss einzulegen. Legt man den Betrag Ein etwaiges Berufungsverfahren würde eher eine Art Verschlüsselung der Daten von 200 000 Euro auch für das anwaltli- das Kostenrisiko sogar mehr als verdop- dazu, Man-in-the-Middle-Attacken, also che Abmahnschreiben zu Grunde, so be- laufen sich die mittleren Anwaltsgebüh- ren für dieses Schreiben allein auf mehr als 3000 Euro. Durch Unterzeichnung der Unterlassungserklärung wäre die abge- mahnte GmbH und deren Geschäftsfüh- rer vermutlich noch mit diesem Betrag davongekommen. >\i`Z_kj$le[ 8enXckjbfjk\e

Da Appworks die Erklärung nicht abgab, erwirkte der Musikverlag im Frühjahr 2013 eine einstweilige Verfügung vor Ge- richt. Hier fielen zunächst mehr als 2600 Euro Gerichts- und weitere Anwaltsge- bühren an. Bisher entstanden für den Erlass der einstweiligen Verfügung daher schon Kosten in Höhe von nahezu 7500 Euro. Gegen die einstweilige Verfügung 8YY`c[le^)1@e\`e\dE`^_kcp9l`c[mfeA[fnecfX[\i)nXi[\ildjki`kk\e\M`[\f[\Zf[\i$?XZb\ek_Xck\e% '+&)'(+ =fild wesen. Nur eine Betaversion, kompiliert als Nightly Build, habe ein RTMPE-Plug in enthalten. Dies aber habe ein Open- Source-Entwickler implementiert, ohne I\Z_k dass die GmbH oder ihr Geschäftsführer davon Kenntnis erlangt hätten. Beide beriefen sich deshalb auf die Haf- /- tungserleichterung nach §§ 7 Abs. 2, 10 TMG. Dementsprechend wären diejeni- gen haftungsrechtlich privilegiert, die nur fremde Informationen in einem Kommu-

nnn%c`elo$dX^Xq`e%[\ nikationsnetz übermitteln oder die den Zugang zur Nutzung dieser Informatio- nen vermitteln. 8YY`c[le^*1M`[\fjXlj[\d=le[ljmfeGifJ`\Y\eJXk(KMXl]Dpm`[\fj`e[elijZ_\`eYXi]i\`% Das Landgericht Hamburg machte deut- lich, dass die Haftungsprivilegierung ein Mitstreamen Dritter bei der Übertra- Letztlich verhindere RTMPE erfolgreich, grundsätzlich für eine Open-Source- gung des Streams zu verhindern. RTMPE so das Gericht, dass der Stream zu ir- Plattform gelten könne, lehnte jedoch sei somit kein Kopierschutz. gendeinem Zeitpunkt als vollständige Vi- eine Haftungserleichterung in diesem Fall Das Urheberrechtsgesetz sagt dazu: deodatei auf dem Computer vorliegt und ab, weil sich die GmbH die Entwicklung „Gemäß § 95a UrhG sind technische so eine urheberrechtliche Vervielfältigung der Software zu eigen gemacht habe. Für Maßnahmen Technologien, Vorrichtun- mittels Download eintritt. Das Argument das Gericht war entscheidend, dass die gen und Bestandteile, die im normalen der Gegenseite, dass es sich dabei ledig- GmbH als Herausgeberin der Software Betrieb dazu bestimmt sind, geschützte lich um eine Verschlüsselung handle, die auftrat und das Open-Source-Projekt nur Werke oder andere nach diesem Gesetz den Übertragungsweg betreffe, spielte für am Rande erwähnte. geschützte Schutzgegenstände betref- das Gericht keine Rolle, sondern nur das fende Handlungen, die vom Rechtsin- Ergebnis: die Erschwerung des vollstän- ;`\?X]kle^[\j haber nicht genehmigt sind, zu verhin- digen Downloads. >\jZ_€]kj]•_i\ij dern oder einzuschränken. Technische Zu dieser Überzeugung des Gerichts trug Maßnahmen im Sinne des § 95a UrhG auch die Produktbeschreibung der be- So war beispielsweise in einem Infor- sind wirksam, soweit sie durch die Nut- nutzten Streamingsoftware von Adobe mationsfenster ein Copyright-Vermerk zung eines geschützten Werkes oder bei. In ihr beschreibt und vermarktet der angebracht, der die GmbH als Rechte- eines anderen nach diesem Gesetz ge- Hersteller selbst RTMPE als „Copy Protec- Inhaberin auswies. Was das Gericht je- schützten Schutzgegenstandes von dem tion Mechanism“ (R/T, 8YY`c[le^,). doch nicht diskutiert hat, ist die Frage, ob Rechtsinhaber durch eine Zugangskont- die Haftungsprivilegierung nicht eigent- rolle, einen Schutzmechanismus wie Ver- 8Y\i[Xj`jk[fZ_\`eFg\e$ lich von vornherein ausscheidet, da sie schlüsselung, Verzerrung oder sonstige JfliZ\$Gifa\bk6 bei Unterlassungsansprüchen nach der Umwandlung oder einen Mechanismus herrschenden Rechtsprechung nicht an- zur Kontrolle der Vervielfältigung, die die Die gegnerische Partei brachte vor, dass wendbar ist. Ein Unterlassungsanspruch Erreichung des Schutzziels sicherstellen, die Software als Open-Source-Produkt hätte damit trotz Haftungsprivilegierung unter Kontrolle gehalten wird.“ entstanden sei, deren Entwicklung von weiterhin Bestand. einer Gemeinschaft N`ibjXd`jk#nXjld^Xe^\e unabhängiger Ent- n\i[\edljj wickler vorangetrie- ben werde. Diese Ent- Das Landgericht Hamburg bejahte die wickler handeln nicht wirksame technische Schutzmaßnahme im Auftrag der GmbH, und bestätigte zugleich die Tendenz in die Webseite Jdown- der Rechtsprechung, keine allzu hohen loader.org stelle ledig- Anforderungen an die Wirksamkeit des lich eine Plattform für Schutzes zu stellen. Er müsse keinen ab- die Entwicklung zur soluten Schutz bieten, sondern nur eine Verfügung. Hürde sein, die ein normaler Nutzer nicht Außerdem sei in der ohne Weiteres überwinden könne. Keine offiziellen Programm-

Hürde würde vorliegen, wenn sich der version der GmbH die ŸgXb_eplj_Z_pp#()*I=%Zfd Schutz mit allgemein verfügbaren legalen RTMPE-Funktionalität 8YY`c[le^+1Jki\`kn\ik\a\ej\`kjmfe),'''

;`\=fc^\e I\Z_k nische Schutzmaßnahmen sind nicht Im Ergebnis läuft die hoch, es reicht, wenn der normale Be- Argumentation des nutzer diese nicht umgehen kann. Gerichts auf eine ur- ■ Die urheberrechtliche Abmahnung /. heberrechtliche Ver- mit anschließender einstweiliger Ver- kehrssicherungspflicht fügung ist ein scharfes und kosten- hinaus: Jeder, der in intensives Schwert, das den Rechte-

ŸJ`dfe8cm`e^\#()*I=%Zfd seinem Verantwor- Inhabern an die Hand gegeben wird. nnn%c`elo$dX^Xq`e%[\ 8YY`c[le^,1EXZ_=\_c\ief[\iC•Zb\eY\`[\i@dgc\d\ek`\ile^\`e\j tungsbereich eine Ge- ■ Die Abwehr einer solchen gestaltet Bfg`\ijZ_lkq\j]iX^k[\i>\j\kq^\Y\ie`Z_k% fahrenquelle schafft, sich schwierig und ist meist mit einem muss die ihm zumut- hohen Kostenrisiko verbunden. Da der Geschäftsführer der GmbH die baren Maßnahmen zur Abwendung von ■ Durch die Störerhaftung kann eine RTMPE-Funktionalität nicht selbst hin- Gefahren treffen, die für Dritte entstehen Haftung für die Teilnehmer an einem zugefügt hatte, prüfte das Gericht zu- könnten. Eine solche Verkehrssicherungs- OSS-Projekt entstehen, ohne dass ei- nächst die Haftung des Geschäftsführers pflicht hat der BGH bereits im Wettbe- genes Verschulden notwendig ist. als Störer (also als der, der willentlich werbsrecht statuiert, bislang wurde aber ■ Es gibt Tendenzen in der Rechtspre- und adäquat kausal eine Rechtsverlet- davon ausgegangen, dass es im Urhe- chung, durch die eine urheberrechtli- zung herbeigeführt hat, ohne selbst Täter berrecht eine solche Pflicht neben der che Verkehrssicherungspflicht statuiert oder Teilnehmer zu sein – vergleichbar Störerhaftung nicht gebe. wird, die auch den Geschäftsführer offenen WLAN-Hotspots) und führte aus, Für die Open-Source-Welt bedeutet dies treffen kann. dass nach ständiger Rechtsprechung ne- eine aktive Prüfpflicht, jedenfalls für Soft- Vor allem die beiden letzten Punkte ben der Haftung der GmbH als Störer im ware, die sie in eigenen Produkten ein- können ein beträchtliches Risiko für die Normalfall keine Haftung des Geschäfts- setzt. Die gilt umso mehr, wenn Rechts- Open-Source-Branche darstellen. Die führers besteht, soweit Letzterer nicht an verletzungen auf der Hand liegen, bei- kann nur hoffen, dass weitere Instanzen der Rechtsverletzung teilgenommen und spielsweise wenn auf eigenen Foren die dem Hamburger Urteil nicht folgen. ■ nicht von ihr gewusst hat. Implementierung bereits diskutiert wird. Unklar ist, ob eine solche Prüfpflicht auch Jfi^]Xckjg]c`Z_kle^\bc€ik reine OSS-Plattformen wie Sourceforge, @e]fj Github oder einzelne Entwickler betrifft. R(T >GC$M`fcXk`fej1R_kkg1&&^gc$m`fcXk`fej%fi^T Nicht diskutiert hat das Gericht die um- Hier hilft möglicherweise, dass die Soft- R)T8ggnfib1R_kkg1&&n\dXb\pfliXggnfib%ZfdT strittene Frage, ob die Grundsätze der ware als Sourcecode normalerweise nicht R*T A[fnecfX[\i1R_kkg1&&a[fnecfX[\i%fi^T Störerhaftung überhaupt auf § 95a UrhG lauffähig und für den normalen Benutzer R+TGifJ`\Y\eJXk(1 anwendbar sind und möglicherweise oh- ohne Zusatzkenntnisse nicht zu benut- R_kkg1&&nnn%Gif$J`\Y\e$JXk(%ZfdT nehin nur eine Haftung als Täter oder zen ist. Anders mag das bei Binärpro- R,T<`ejkn\`c`^\M\i]•^le^ 8q%1*('F(++&(*1 Teilnehmer in Betracht zu ziehen ist. Das grammen aussehen. R_kkg1&&iXjZ_c\^Xc%[\&lgcfX[j&d\[`X&C>V Landgericht begründete schließlich in be- ??VV9%m%V),%'+%(*VV8q%V*('VFV(++$(*%g[]T merkenswerter Weise eine Haftung des =Xq`k R-TIKDG<1 Geschäftsführers als Täter. Als Geschäfts- R_kkg1&&Ycf^j%X[fY\%Zfd&Xdj&kX^&ikdg\T führer habe er dafür gesorgt, dass die Auch wenn Hoster von OSS-Projekten R.T Dpm`[\f1R_kkg1&&nnn%dpm`[\f%[\T Entwicklerplattform entstehen und dass sich hier möglicherweise auf eine Haf- R/T8[fY\qlIKDG<1R_kkg1&&Ycf^j%X[fY\%Zfd& das Programm mit RTMPE-Funktionalität tungsprivilegierung berufen können und [`^`kXcd\[`X&)''0&'.&e\nVikdg\V heruntergeladen werden konnte. Schadenersatzansprüche nicht bestehen, Zfek\ekVgifk\Zk`feVnV(&T Auf der anderen Seite habe er keine Vor- können dennoch (kostenintensive) Unter- R0T;XjLik\`c 8q%*('F(++&(* 1R_kkg1&& kehrungen getroffen, die verhindern, lassungsansprüche bleiben. Es bleibt ab- iXjZ_c\^Xc%[\&lgcfX[j&d\[`X&C>V?XdYli^V dass das Programm einer breiten Masse zuwarten, ob sich diese Rechtsprechung LikVVmVV)0V((V)'(*VV8QVV*('VFV(++$(*%g[]T zu Verfügung gestellt wird. Eine Kontrolle durchsetzt. Das Gericht ist auch nicht war nicht vorgesehen. näher darauf eingegangen, welche Vor- ;\i8lkfi Dass ein unabhängiger Entwickler den kehrungen und Kontrollen der Geschäfts- I\Z_kjXenXck ;i% :_i`jkf$ RTMPE-Hack früher oder später imple- führer hätte treffen müssen. Inwieweit g_\i;\E`Zfcf`jkD`k^c`\[ mentieren und als Nightly Build der bei größeren Projekten die verdachtsun- [\i I\Z_kjXenXckjbXdd\i ganzen Internetgemeinde zur Verfügung abhängige und ständige (automatisierte) E•ieY\i^ le[ Y\i€k \`e\ stellen würde, sei für den Geschäftsführer Analyse jeder Codezeile machbar und M`\cqX_c mfe Fg\e$JfliZ\$ abzusehen gewesen, zumal dies auf den zumutbar sein kann, bleibt unklar. =`id\e% // =fild nnn%c`elo$dX^Xq`e%[\ 9•Z_\i '+&)'(+ Klo Kapitel kümmertsichumunmögliche sogar Co gramme ausführen können–darunter simulieren undsomitbeliebigePro- raschenderweise eineTuring-Maschine ein paareinfacheSysteme vor, dieüber- Implementierung. DanachstelltStuart alles umdenLambda-Kalkül undseine Im zweiten Buchteildreht sichzunächst Maschinen. pitel dieerstaunlich universellen Turing- Verwendung finden,sowie imfünftenKa- Es folgenKellerautomaten, diealsParser wie diesereguläre Ausdrücke auswerten. einfache endlicheAutomaten undzeigt, und Semantikein.Anschließendbauter auf denUnterschied zwischenSyntax Schnelleinführung inRuby gehtStuart gleich passendenRuby-Code. Nacheiner anschauliche Beispieleundliefertdazu Stattdessen setzterdurchgehend auf matische Formeln unddrögeBeweise. Dabei verzichtet derAutor aufmathe- M\ijk\_\ef_e\DXk_\ „Understanding Computation“. Stuart inseinemenglischsprachigen Buch sche Informatiknach,sondernauchTom Dieser Frage gehtnichtnurdietheoreti- putern überhauptinendlicherZeitlösen? Welche Probleme <`e@e]fidXk`b$9lZ_jfn`\\`eGif^iXdd`\i$IXk^\Y\i :f[\Y\`dXcck€^c`Z_\eGif^iXdd`\i\e% d`e`jk`jZ_\8lkfdXk\ele[Kli`e^$DXjZ_`e\eXejZ_Xlc`Z_#[\iqn\ ;`\9•Z_\ij\`k\Y\jZ_€]k`^kj`Z_[`\jdXcjfnf_cd`kK_\fi`\Xcj @e]f nway’s nway’s Game ofLife. Dasachte lassensichmitCom- @J9E0./$($++0*$)0).$* <$9ffb)*

@J9E0./$*$/0.)($,-.$) <$9ffb)'

'+&)'(+

8l][\eGlebk^\YiXZ_k =fild C\j\iYi`\]\ C\j\iYi`\]\

0' ?XY\eJ`\8ei\^le^\e#JkXk\d\ekjf[\iBfdd\ekXi\6;XeejZ_i\`Y\eJ`\XeRi\[Xbk`fe7c`elo$dX^Xq`e%[\T% ;`\I\[Xbk`feY\_€ck\jj`Z_mfi#[`\QljZ_i`]k\ele[C\j\iYi`\]\qlb•iq\e%J`\m\i]]\ekc`Z_kXcc\9\`ki€^\d`k EXd\e#jf]\ie[\i8lkfie`Z_kXlj[i•Zbc`Z_8efepd`k€kn•ejZ_k% nnn%c`elo$dX^Xq`e%[\

DXb\]`c\j`d9`c[ 9`^D\dfip anderen Kommandos voranstellen kann: R_kkgj1&&^`k_lY%Zfd&=\_&efZXZ_\T 02/14, S. 98: Zu Michael Schillis Auswahl 03/ 14, S. 92: Der Artikel „Speicherfres- Thomas Güttler per E-Mail von Perl-Modulen: Auch mein Modul, ser“ hat mich angeregt, einem mir wohl- unter R_kkg1&&dXb\gg%j]%e\kT zu finden, bekannten Problem nachzugehen. Mein Bei aller Ähnlichkeit funktioniert »posix_ verwandelt Makefiles in Graphen. Anwendungsfall: Die von einem Backup- fadvise()« in der Tat etwas anders als das Daniel Pfeiffer per E-Mail Programm gelesenen Daten landen im erwähnte »O_DIRECT«. Allerdings sehen Cache, obwohl sie dort eigentlich nichts wir in vielerlei Hinsicht ähnliche Prob- K|M]•i@K zu suchen haben. Die gelesenen Daten leme: Man muss selbst programmieren werden nicht in den nächsten Minuten und genau wissen, was man tut, sonst 03/ 14, S. 24: Im Beitrag „Beinharter Er- erneut benötigt. schießt man sich schnell ins eigene Bein. folg“ habe ich einen kleinen Fehler ent- Während der (sehr gute) Artikel sich Eine Anwendung, die sich nicht daran deckt. Dort ist von einem „TÜV Deutsch- mit den Auswirkungen beschäftigt, kann hält, zerstört unter Umständen das ge- land“ die Rede, den es aber gar nicht gibt. man auch das Problem bei der Wurzel samte System. (Willi Nüßer) ■ Es existieren mehrere TÜV-Konzerne, die packen: Vom Backup-Programm gelese- Deutschland mehr oder weniger regional nen Daten gehören nicht in den Cache. \jXdk^i\ TÜV Nord gehört. -»-drop-cache« möglich. Daneben gibt d`k[\i<`e_\`k9pk\Xe^\Y\e#\jdljjXY\i Christian Seip, per E-Mail es ein Tool namens Nocache, das man B9pk\_\`\e%

'+&)'(+

B\ie\c$le[Ki\`Y\igif^iXdd`\ile^d`k[\dC`elo$B\ie\cÆ=fc^\.* Befn$_fn B\ie$K\Z_e`b B\ie$K\Z_e`b

0) ;XjKiXZ`e^$N\ibq\l^BkXg_`c]k8[d`ejle[B\ie\c\ekn`Zbc\ieY\`Kle`e^le[=\_c\ijlZ_\%;`\j\B\ie$K\Z_e`b q\`^k[`\\ijk\eJZ_i`kk\d`k[\d@ek\igi\k\i`dB\ie\c%A•i^\eHlX[\#

zenz beispielsweise fachen Funktionserweiterung von Pro- verhindert eine Auf- grammen geschrieben wurde. Als ein- nahme des Codes in gebettete Skriptsprache findet Lua sich den Standard-Linux- beispielsweise im Spiel Minecraft, im Kernel, auch erlau- Netzwerkanalysator Wireshark, in Nmap ben die Komplexität und im Mediaplayer VLC. Der Interpre- und die Fixierung ter beziehungsweise die zur Abarbeitung der Lösung auf eine notwendige virtuelle Maschine umfasst einzelne Plattform nur wenige Hundert KByte, der Bytecode keinen Einsatz in den selbst besteht aus gerade mal 38 Befeh- kleineren eingebette- len. Die Sprache ist ein Mischmasch aus ten Systemen. Außer- C und Pascal und nicht typisiert. Der Typ dem kann Dtrace das einer Variablen, ob Integer oder String, System „einfrieren“ ergibt sich aus dem Kontext. lassen – bei produk- Ende 2013 hat Linus Torvalds auf Vor- tiven Systemen lässt schlag von Greg Kroah-Hartman den der Systemadminis- Ktap-Kerneltreiber in sein Standard-Li- trator also lieber die nux übernommen. Allerdings hagelte es Finger davon. stante pede kräftig Kritik, die Torvalds Mit entsprechender zwang den Commit wieder rückgängig zu

Ÿgj[\j`^e(#=fkfc`X Euphorie haben im machen. Die Kernelentwickler kritisierten Mai 2013 Admins und allerdings nicht Ktap selbst, sondern die Linux bietet schon seit Kernel 2.6.9 vom Kernelentwickler den neuen Ansatz Ktap Geschwindigkeit, mit der ein so umfang- Oktober 2004 Kernel-Tracing, also die R)T aufgenommen. Als schlanke Lösung reiches und auch sicherheitskritisches Möglichkeit, Informationen über Kernel- erlaubt Ktap das Tracing auf Embedded- Subsystem ohne ausgiebige kritische interne Abläufe nachzuverfolgen. Bereits Systemen genauso wie auf Servern. Eine Kontrolle übernommen werden sollte. 2005 stellte die „Kern-Technik“ die da- eingebaute Skriptsprache zur Definition Jetzt ist die Aufnahme des Subsystems mals aktuellen Kernel-Interfaces Kprobe der zu messenden Abläufe (Tracing), die für einen der nächsten Kernel, vielleicht und Jprobe vor R(T. Da diese in der Hand- in Bytecode übersetzt auf einer virtu- 3.15, vorgesehen. Dennoch lässt sich habung jedoch kompliziert sind, haben ellen Maschine (VM) im Kernel läuft, Ktap bereits heute sinnvoll einsetzen. sie nur eine sehr kleine Anwenderbasis bietet nicht nur Flexibilität, sondern auch für sich gewonnen. weitgehende Unabhängigkeit von der zu- @ek\igi\k\i`dB\ie\c Mit Systemtap und Dtrace ist in den letz- grunde liegenden Hardware. ten Jahren ein Werkzeugkasten entstan- Ob auf einer x86-Plattform oder einem Ktap besteht aus zwei Teilen: zum einen den, mit dem sich das Tracing-Interface System mit ARM-Prozessor (Tablet, aus der zumeist als Modul realisierten programmgesteuert nutzen lässt. Damit Smartphone): Der Code läuft gleicherma- Kernelerweiterung »ktapvm.ko« und zum können Admins und Entwickler kom- ßen und vor allem auch in gemischten, anderen aus der Applikation »ktap«. Bei plexe Fehlersuchen realisieren oder Per- verteilten Umgebungen. der Kernelerweiterung handelt es sich formance-Bottlenecks aufspüren. um den Interpreter, die VM und die An- Allerdings stehen diese Werkzeugkästen MfiY`c[D`e\ZiX]k bindung an die Kernelfunktionen, die so nicht allen offen. Das hängt zum einen genannte Runtime-Library. Die Ktap-Ap- mit lizenzrechtlichen Problemen, zum Beim Skripting hat sich der Ktap-Ent- plikation lädt Lua-Programme, übersetzt anderen mit den technischen Lösungen wickler Jovi Zhangwei für Lua entschie- sie in Bytecode und übergibt diesen dem als solchen zusammen. Die Dtrace-Li- den, eine Sprache, die speziell zur ein- Kernel. Sie initiiert die Abarbeitung, holt '+&)'(+ Befn$_fn DEBUG_FS« und »CONFIG_FTRACE_SYS- neu generiert. Für alle Freunde des Edi- 8ggc`bXk`fe BkXg$Jbi`gk ClX CALLS« kompiliert. Damit braucht man tors Vim installiert »make install« gleich BkXg nur noch den Ktap-Quellcode per Git auf Syntaxdateien mit, die die Schlüsselwör- den Rechner zu holen und per »make« zu ter im Editor farblich hervorheben. übersetzen. Es empfiehlt sich, zuvor noch

Lj\icXe[ B\ie$K\Z_e`b die Pakete »elfutils« und »libelf-dev« zu 9pk\Zf[\ Flkglk B\ie\c <`eq\`c\i installieren. Mit Hilfe dieser Werkzeuge ClX$@ek\igi\k\i beziehungsweise Bibliotheken verarbeitet Ein erster Test mit Ktap ist schnell 0* MD B\ie\cdf[lc ¾bkXgmd%bf½ Ktap ELF-Dateien (Executable and Lin- durchgeführt. Dazu gibt der Anwender BkXg$Ilek`d\$C`YiXip kable Format) sowie die in Programm- im Ktap-Quellcodeverzeichnis (hier hat dateien hinterlegten Meta-Informationen »make« den Applikationsteil abgelegt) auf der Kommandozeile den Einzeiler ¾lgifY\½ ¾bgifY\½ ¾]kiXZ\½ ¾g\i]½ und löst Adressen auf. Damit ist es Ktap nnn%c`elo$dX^Xq`e%[\ auch möglich, Applikationen zu überwa- sudo ./ktap -e 'printf("Hello World\n")' 8YY`c[le^(1BkXgY\jk\_kXlj\`e\dB\ie\cdf[lc chen. C`jk`e^( zeigt die Kommandos zum le[\`e\i8ggc`bXk`fe% Installieren im Detail R*T. ein. Verständlicherweise benötigt Ktap Nach dem erfolgreichen »make load« bei der Ausführung Rootrechte, sodass die Ergebnisse ab und stellt sie auf dem aus dem Quellcode-Verzeichnis heraus man es mit vorangestelltem »sudo« auf- Bildschirm dar (8YY`c[le^(). ist Ktap einsatzbereit. Optional kann der Die Installation von Ktap gestaltet sich Admin noch »sudo make install« sowie C`jk`e^(1BkXg`ejkXcc`\i\e unter Ubuntu 12.04 LTS erfreulich pro- danach »depmod« aufrufen. Damit ins- 01 $ sudo apt-get install elfutils libelf-dev blemlos. Der mitgelieferte Betriebssys- talliert er Kernelmodul und Applikation 02 $ git clone http://github.com/ktap/ktap.git temkern ist bereits mit den benötigten für den systemweiten Zugriff. Allerdings 03 $ cd ktap Optionen »CONFIG_EVENT_TRACING«, wird das Kernelmodul beim nächsten Up- 04 $ make »CONFIG_PERF_EVENTS«, »CONFIG_ date des Linux-Kernels nicht automatisch 05 $ sudo make load '+&)'(+ Befn$_fn ruft. Auf die Eingabe des Passworts re- Ausdrucks. Außerdem folgt noch eine B\ie\cjlYjpjk\d =lebk`fejeXd\ agiert die Anwendung mit dem bekann- durch geschweifte Klammern eingefasste ten Erstlingswerk „Hello World“. Codesequenz. Immer wenn die hinter ¾kiXZ\]Y\i\`Z_1]eXd\ N`i[d`ka\[\d8l]$ Die Option »-e« erlaubt es, ein Kommando »trace« definierte Kernelfunktion ausge- r ki\k\e[\i=lebk`fe direkt anzugeben, ohne sie erwartet Ktap führt wird, arbeitet der Lua-Interpreter Codesequenz ¾]Y\i\`Z_1]eXd\½ B\ie$K\Z_e`b eine Skriptdatei. Innerhalb der Hochkom- die Codesequenz ab (8YY`c[le^)). t½ XY^\XiY\`k\k% mata folgen die auszuführenden Befehle ¾kiXZ\V\e[ 8l]il]\i]fc^keXZ_ in der Programmiersprache Lua. Im obi- 0+ Gifq\jj\Y\fYXZ_k\e r RJki^T"R:T gen Fall ist das nur ein »printf()«. Das in Codesequenz der Programmiersprache C übliche Semi- C`jk`e^ ) zeigt einen Ktap-Befehl samt t½ kolon kann, muss aber nicht folgen. Eine Ergebnis, der die gerade aktiven Rechen- »main()«-Funktion wie in C-Programmen prozesse ausgibt, und zwar mit deren nnn%c`elo$dX^Xq`e%[\ 8YY`c[le^)1G\i¾kiXZ\½j\kqk[\i8en\e[\i|Y\i$ gibt es nicht. PID, Namen und der CPU, auf der der nXZ_le^jglebk\% Die so genannte Runtime-Library er- Job läuft. Die in der Befehlszeile verwen- weitert Lua unter anderem um Funkti- deten Funktionsaufrufe »cpu()«, »pid()« von Ktap die mit »-- Programm« ange- onen zum Kernel-Tracing. Wesentlich und »execname()« sind fest in Ktap ein- hängte zu tracende Applikation startet. ist »trace«, gefolgt von der Angabe eines gebaut. Weitere Standardfunktionen listet Bereits laufende Programme lassen sich Funktionsbereichs und – durch Doppel- KXY\cc\( auf. übrigens unter Angabe ihrer Prozess-ID punkt getrennt – eines Funktionsnamens, Auf das Kommando »./ktap -le« gibt Ktap mit »-p PID« überwachen. durchaus auch in Form eines regulären die Namen der Funktionen aus, die man mit dem Befehl »trace« verwenden und Jpjk\dZXccj C`jk`e^)18bk`m\I\Z_\egifq\jj\ überwachen kann. Bei Kernel 3.5.0 sind Xlj^\Y\e das immerhin 1254. Es gibt noch viele Ein weiteres Beispiel zeigt C`jk`e^*. Hier

01 # ktap -e weitere Routinen, auf die Ktap über das listet Ktap fortlaufend jene Programme 'trace sched:sched_process_exec Ftrace-Subsystem zugreift. Der Befehl auf, die den Systemcall »open()« aufru- { print("cpu pid name: ", cpu(), pid(), »ktap -lf Programm« listet Funktionen fen. Dabei gibt es neben dem Programm- execname()); }' auf, die man zusätzlich in der Anwen- namen auch den Name der Dateien aus, 02 Tracing... Hit Ctrl-C to end. dung »Programm« tracen kann. auf die die Anwendungen zugreifen. 03 cpu pid name: 2 20990 sh Wie sich damit ein in C geschriebenes Besonders interessant ist die Fähigkeit 04 cpu pid name: 1 20991 ps 05 cpu pid name: 3 20992 grep „Hello World“-Programm überwachen der Programmiersprache Lua, mit Tabel- 06 cpu pid name: 3 20993 sh lässt, zeigt 8YY`c[le^*. Dort ist eben- len in Kombination mit Histogrammen 07 cpu pid name: 2 20994 sh falls zu sehen, wie unter der Kontrolle umzugehen. Tabellen dürfen in ihren Zei- 08 cpu pid name: 3 20995 w 09 cpu pid name: 1 20996 grep KXY\cc\(1=lebk`fe\e[\iBkXg$Ilek`d\$C`YiXipR*T 10 cpu pid name: 2 20998 grep =lebk`fejeXd\ 9\[\lkle^ gi`ek JZ_e\cc\#le]fidXk`\ik\8lj^XY\mfe;Xk\e C`jk`e^*1BkXg•Y\inXZ_k[Xj gi`ek] ]dk#R¿T =fidXk`\ik\8lj^XY\mfe;Xk\e {]]e\emfe;Xk\`\e gX`ij k  =lebk`fe#ld•Y\iXcc\JZ_c•jj\c$N\ik$GXXi\\`e\iKXY\cc\ql`k\i`\i\e 01 sudo ./ktap -e 'trace syscalls:sys_enter_open c\e j  =Xccj[Xj8i^ld\ek\`eJki`e^`jk#n`i[[`\C€e^\[\jJki`e^jqli•Zb^\$ { print( execname(), user_string(arg2)) }' c\e k ^\Y\e2`jk[Xj8i^ld\ek\`e\KXY\cc\#`jk[Xj

»s«. Mit jedem Auftreten zählt der zuge- 01 # ktap -e 's={} trace syscalls:sys_enter_* { s[argname]+=1 } trace_end { histogram(s) }' hörige Tabelleneintrag hoch. Sobald der 02 Tracing... Hit Ctrl-C to end. Anwender Ktap per [Strg]+[C] abbricht, 03 ^C ruft es die Funktion »trace_end()« auf 04 value ------Distribution ------count (siehe 8YY`c[le^)). Diese gibt die Ta- 05 sys_enter_read |@@@@@@@@@@ 13677 belle »s« als Histogramm aus. 06 sys_enter_close |@@@@@ 7034 07 sys_enter_open |@@@@@ 6922 08 sys_enter_recvfrom |@@@ 4160 8ljYc`Zb 09 sys_enter_newstat |@@ 3279 10 sys_enter_poll |@ 2642 Auf seiner Homepage R+T nennt der 11 sys_enter_setitimer |@ 2499 Kernelentwickler Brendan D. Gregg wei- 12 sys_enter_writev |@ 2484 tere Beispiele, die belegen, welches Po- 13 sys_enter_ioctl |@ 2301 tenzial der Interpreter im Kernel hat. Der 14 sys_enter_select | 1271 Overhead hält sich dabei nach Angaben 15 sys_enter_mmap | 1208 16 sys_enter_rt_sigaction | 874 17 sys_enter_newfstat | 666 ;`\8lkfi\e 18 sys_enter_alarm | 660

N\YXen\e[le^\e`e:cfali\jZ_i\`Y\e Gif^iXdd`\i\e N\Y]lebk`feXc :cfali\

0- :cfali\j`\_kXljn`\C`jgle[c€l]k•Y\iXcc#nfAXmX`ejkXcc`\ik`jk%;XebgiXbk`jZ_\iKffcjle[Xlj^\i\`]k\i 9`Yc`fk_\b\e`jkd`k[\iJgiXZ_\XlZ_iXjZ_\`e\df[\ie\N\YXen\e[le^gif^iXdd`\ik%AXeJk\g`\e nnn%c`elo$dX^Xq`e%[\

den Inhalt von »webapp«: Die Datei »project.clj« enthält Informationen über das Projekt und die Komponenten, die es benötigt – derzeit nur die aktuelle Clojure-Release. Das Verzeichnis »src/« enthält den ersten Namespace der Anwendung »webapp. core«. Namespaces sind das wichtigste Mittel des Clojure-Programmierers, um Module mit unterschiedlichen Zuständig- keiten voneinander zu trennen. Dabei darf jeder Namespace alle oder einzelne Objekte in anderen referenzieren. Aller- dings kann ein Namespace die Sicht- barkeit von Objekten nach außen durch »private« unterbinden. Ÿ>Xc`eXG\j_bfmX#()*I=%Zfd @ek\iXbk`m1I (require 'webapp.core) mierkonzept Closure anlehnt. diesen Artikel kam Version 2.3.4 zum nil Clojure-Verfechter loben die überdurch- Einsatz, daneben die jüngste stabile Clo- user=> (in-ns 'webapp.core) schnittliche Produktivität, die die aus- jure-Release 1.5.1 sowie Open JDK 7 als # drucksstarke Sprache erlaubt, und be- Java-Implementierung. webapp.core=> (foo "It works!") ziehen sich gerne auf einen Aufsatz des Das Projektverzeichnis für den Webchat It works! Hello, World! nil Lisp-Verfechters und Unternehmers Paul legt das Kommando »lein new webapp« Graham R,T. Das alles hat mittlerweile ei- an und füllt es gleich mit einem Gerüst Eine einfache Änderung an der Quell- nige Internet-Startups dazu bewogen, auf für die Anwendung. 8YY`c[le^ ) zeigt textdatei demonstriert, wie die REPL auf '+&)'(+ Gif^iXdd`\i\e wert an »srv«. Im Browser ist die Anwen- dung nun unter »http://localhost:8080« erreichbar. Die Funktion zum Starten des Webservers hat wiederum eine Funktion zurückgegeben. Das lässt sich in der :cfali\ REPL mit dem Prädikat »fn?« überprüfen. Ruft man die Funktion selbst auf, fährt der Server herunter: 0.

webapp.core=> (fn? srv) true webapp.core=> (srv) nil nnn%c`elo$dX^Xq`e%[\

8YY`c[le^(1;`\j\:_Xk$8en\e[le^c€jjkj`Z_d`k 8YY`c[le^)1;Xj9l`c[jpjk\dC\`e`e^\e_Xk[Xj Der Server lässt sich mit »(http/run-ser- :cfali\le[AXmXjZi`gkldj\kq\e% >\i•jk[\i8en\e[le^\iq\l^k% ver app {:port 8080}))« wieder starten, ohne einen Neustart der REPL. Man kann geänderten Code reagiert. In C`jk`e^ ( runter. Nun folgen weitere Änderungen sogar mehrere Instanzen an unterschied- ist die Reihenfolge der Argumente in der an der Datei »core.clj« im Editor. Diese lichen Ports betreiben. »println«-Funktion vertauscht. Nach dem Zeilen holen Code aus der Compojure- Abspeichern im Editor lädt man in dersel- Bibliothek in den aktuellen Namespace: K\dgcXk`e^ ben REPL nur den Namespace neu, um (ns webapp.core die geänderte Ausgabe zu erhalten: Die Datei »project.clj« nennt mit Hiccup (:require [compojure.core :refer 5 [defroutes GET]])) R0T und Enlive R('T noch zwei weitere webapp.core=> (require 'webapp.core :reload) Abhängigkeiten. Beide sind Templating- nil webapp.core=> (foo "It works!") Dies importiert »defroutes« und »GET« Bibliotheken, jede verfolgt aber einen Hello, World! It works! aus dem Namespace »compojure.core« anderen Ansatz. nil und macht sie nutzbar für eine erste ein- C`jk`e^ * macht Hiccup verfügbar und Diese Fähigkeit der REPL ermöglicht es fache Anwendung: »app« hat sich geändert: Die Anwendung dem Entwickler, fortlaufend seine Ände- verwendet nicht mehr die Zeichenkette (defroutes app rungen am Code auszuprobieren. Viele „Hello, World!“, sondern ruft die Funk- (GET "/" [] "

Hello World

")) Editoren wie Vim oder Emacs können tion »root« auf, die in den Zeilen darüber eine REPL integrieren. Hier definiert »app« einen Ring-Handler. definiert ist. Die verwendet Hiccup, um Er begrüßt Websurfer, die per HTTP- >\Y•e[\ck\9`Yc`fk_\b\e GET die Adresse »/« abrufen, mit „Hello C`jk`e^(1¾jiZ&n\YXgg&Zfi\%Zca½ World“. Damit das funktioniert, benötigt 01 (defn foo Die Clojure-Welt kennt kaum große, mo- die Anwendung aber einen HTTP-Ser- 02 "I don't do a whole lot." nolithische Frameworks. Die meisten An- ver. Den liefert Httpkit R/T, das zu dem 03 [x] 04 (println "Hello, World!" x)) wendungen verwenden eine Sammlung erforderlichen Namespace in »core.clj« kleiner Bibliotheken, von denen jede ei- hinzukommt: nem klar eingegrenzten Zweck dient. Ty- C`jk`e^)1¾gifa\Zk%Zca½ (ns webapp.core pische Clojure-Webanwendungen setzen 01 :dependencies [[org.clojure/clojure "1.5.1"] (:require [compojure.core :refer5 02 [compojure "1.1.6"] auf die Bibliothek Ring, die eine Abstrak- [defroutes GET]] tion des HTTP-Protokolls darstellt. Die [org.httpkit.server :as http])) 03 [hiccup "1.0.4"] Beispielanwendung wird allerdings nicht 04 [enlive "1.1.5"] 05 [http-kit "2.1.16"]] direkt Ring benutzen, sondern Compo- Nun stehen alle Funktionen aus »org. jure R.T, das auf Ring aufsetzt. Dazu httpkit.server« unter dem Präfix »http/« kommen einige weitere Libraries, die die zur Verfügung. Damit lässt sich der Web- C`jk`e^*1¾jiZ&n\YXgg&Zfi\%Zca½

Datei »project.clj« als Abhängigkeiten de- server in der REPL ausprobieren: 01 (ns webapp.core finiert (C`jk`e^)). 02 (:require [compojure.core :refer [defroutes GET]] user=> (require 'webapp.core :reload) Das Hinzufügen einer neuen Bibliothek 03 [org.httpkit.server :as http] nil 04 [hiccup.core :as hiccup])) ist eine der wenigen Gelegenheiten, bei user=> (ns webapp.core) 05 denen der Entwickler seine REPL neu nil 06 (defn root startet. Dafür gibt es zwar auch Tools, webapp.core=> (def srv (http/run-server app5 07 [] doch ein einfaches [Strg]+[D] und die {:port 8080})) 08 (hiccup/html [:h1 "Hello, Hiccup!"])) #'webapp.core/srv erneute Eingabe von »lein repl« tun es 09 10 (defroutes app ebenso. Anschließend lädt Leiningen die Die Funktion »http/run-server« startet die 11 (GET "/" [] (root))) erforderlichen Dateien automatisch he- Anwendung, »def« bindet den Rückgabe- '+&)'(+ Gif^iXdd`\i\e HTML auszugeben. Eines der interessan- Die nächste Eingabe lädt nach dem Spei- Wer will, kann diese Experimente auf testen Features von Clojure besteht darin, chern der Datei den Namespace neu: der REPL auf eigene Faust fortsetzen, dass der Entwickler Teile des Codes än- eine Kleinigkeit ändern, vielleicht etwas webapp.core=> (require 'webapp.core :reload) dern kann, ohne den Rest der virtuellen kaputt machen und wieder reparieren. nil :cfali\ Maschine anzutasten. Da das Erzeugen Als nützlich erweist sich dabei, dass sich des HTML-Codes in eine eigene Funktion Den Server braucht der Entwickler da- in der REPL Dokumentation und Quell- ausgelagert ist, darf der Entwickler sie bei nicht neu zu starten. Das neue Ver- text zu Funktionen nachschlagen lassen. 0/ verändern und sieht sofort die Auswir- halten der Funktion »root« sollte schon Dazu dienen die Kommandos »clojure. kung auf die Anwendung. nach dem Neuladen der Seite im Browser repl/doc« und »clojure.repl/source«, wie sichtbar sein. die Beispielsitzung in C`jk`e^- zeigt. >lk\eKX^ Hiccup verwendet einen Clojure-typi- schen Ansatz, um HTML zu erzeugen, in- nnn%c`elo$dX^Xq`e%[\ <`e\:_Xk$8en\e[le^ Beispielsweise könnte man den Gruß dem es die Daten in einfachen Strukturen abändern, etwa in „Guten Tag“. Befin- abbildet. Da die gebräuchlichen Typen Aus den ersten Gehversuchen mit Clojure det sich die REPL bereits im Namespace wie Listen, Vektoren, Maps und Sets eine soll nun ein Webchat werden, der Web- »webapp.core«, stehen die definierten gemeinsame Programmierschnittstelle sockets verwendet. Die Beispielanwen- Aliase zur Verfügung: besitzen, lassen sich Hiccup-Templates dung besteht aus nur vier Dateien. In praktischerweise mit den üblichen Clo- »project.clj« (C`jk`e^.) findet sich die be- webapp.core=> (hiccup/html [:h1 [:em "Guten5 jure-Mitteln verarbeiten. reits bekannte Liste der Abhängigkeiten: Tag"] ", Hiccup!"]) "

Guten Tag,, Hiccup!

" Wer mit Webdesignern zusammenarbei- Clojure selbst und drei Bibliotheken. Da- tet, die den Umgang mit HTML gewohnt neben macht aber der Schlüssel »:main« Der Rückgabewert sieht gut aus – fol- sind, hat mit Hiccup allerdings nicht viel das folgende »webapp.main« zum Haupt- gender Code hält die Änderung in »src/ Freude. Für dieses Szenario bietet sich Namespace der Anwendung. webapp/core.clj« fest: besser die Templating-Bibliothek Enlive Die verschachtelte Map neben »:profiles« an. Ein simples Template, als Datei »re- gibt an, dass Leiningen alle Namespaces (defn root sources/templates/index.html« gespei- vor dem Ausführen (»:aot«, „ahead of [] (hiccup/html [:h1 [:em "Guten Tag"] ",5 chert, zeigt C`jk`e^+. time“) zu Java-Class-Dateien kompilieren Hiccup!"])) Die neue Version von »src/webapp/core. soll. Diese beiden Einstellungen machen clj« in C`jk`e^ , verwendet »:require«, es möglich, die Anwendung später als C`jk`e^+1¾i\jfliZ\j&k\dgcXk\j& um die Bibliothek Enlive einzubinden. Jar-Archiv zu exportieren. `e[\o%_kdc½ Die Funktion »deftemplate« ersetzt die Der Namespace »webapp.core«, wie ihn

01 vorige Definition von »root« und wen- C`jk`e^/ zeigt, hat sich allerdings merk- 02 det das Template an. Sie nimmt keine lich verändert. Unter den erforderlichen 03 Argumente entgegen und setzt einfach Namespaces (»:require«) findet sich nun 04 »

« des Template ein. Um die Ände- »ring.middleware.params«. Mit ihrer 06 rung sichtbar zu machen, reicht es, den Hilfe kann die Anwendung auf Parameter 07

Namespace in der REPL sowie die Seite aus HTTP-Anfragen in Form eines Hash 08 im Browser neu zu laden. zugreifen. Auch das »root«-Template in Zeile 7 sieht C`jk`e^,1¾jiZ&n\YXgg&Zfi\%Zca½ anders aus. Es nimmt nun »request« als

01 (ns webapp.core 07 einziges Argument entgegen. Wird das

02 (:require [compojure.core :refer [defroutes 08 (deftemplate root "templates/index.html" Template aufgerufen, sucht es im HTML- GET]] 09 [] Objektbaum nach dem CSS-Selektor 03 [org.httpkit.server :as http] 10 [:h1] (enlive/append "Hello, Enlive!")) »#name«. Wird es fündig, setzt es den 04 [hiccup.core :as hiccup] passenden Wert aus dem Hash »request« 11 05 [net.cgrand.enlive-html :refer ein, der folgende Struktur besitzt: [deftemplate] 12 (defroutes app 06 :as enlive])) 13 (GET "/" [] (root))) {:params {"name" "gesuchter Wert"}}

Ab Zeile 27 definiert das Listing die Funk- C`jk`e^-1;fbld\ekXk`fele[Hl\cck\ok tion »app«. Diese legt zunächst ein Atom

01 webapp.core=> (clojure.repl/doc foo) 07 webapp.core=> (clojure.repl/source foo) an, das ein leeres Set enthält und an das 02 ------08 (defn foo Symbol »channels« gebunden ist. Dieses 03 webapp.core/foo 09 "I don't do a whole lot." Atom wird Verweise auf alle Verbindun- 04 ([x]) 10 [x] gen zum Chatroom speichern. Bei einem 05 I don't do a whole lot. 11 (println "Hello, World!" x)) Atom handelt es sich in Clojure um einen 06 nil 12 nil Container, der andere Objekte aufnimmt. '+&)'(+ Gif^iXdd`\i\e Sie lassen sich dann nur mittels atomarer Transaktionen verändern. Das heißt, eine Änderung gelingt entweder vollständig oder Clojure versucht es noch einmal, sie durchzuführen. :cfali\

M\i€e[\ic`Z_ 00 Das Atom vollbringt noch ein weiteres Kunststück: Mit seiner Hilfe lassen sich die in funktionalen Sprachen eigentlich unveränderbaren Datenstrukturen in nnn%c`elo$dX^Xq`e%[\ Clojure dennoch ändern. Normalerweise geben Funktion nämlich nur aktualisierte Kopien einer Datenstruktur zurück, etwa beim Vektor »v« in der folgenden inter- 8YY`c[le^*1;\iG]X[¾&nj½`jk]•iN\YjfZb\kji\j\im`\ik#Xe[\ie]XccjY\jZ_n\ikj`Z_[`\:_Xk$8en\e[le^% aktiven Sitzung. Die Funktion »conj« fügt ihm ein zusätzliches Element hinzu – webapp.core=> (def a (atom [1 2])) mert sich Ring und übergibt dabei den eigentlich nur der ausgegebenen Kopie #'webapp.core/a HTTP-Request als Argument. – und der ursprüngliche Vektor bleibt webapp.core=> a Neu ist die zweite Route, die den Pfad # unverändert: »"/ws"« bedient. Sie ist als Rückgabe- webapp.core=> (swap! a conj 3) [1 2 3] wert der Funktion »websocket« mit dem webapp.core=> (def v [1 2]) webapp.core=> a Argument »channels« definiert. Wie im #'webapp.core/v # webapp.core=> v Funktionskörper (Zeilen 26 bis 35) zu se- [1 2] hen ist, gibt sie eine Funktion zurück, die webapp.core=> (conj v 3) Der Code innerhalb des »let«-Ausdrucks [1 2 3] (C`jk`e^ /, Zeilen 38 bis 42) ruft die C`jk`e^.1¾gifa\Zk%Zca½ webapp.core=> v Funktion »wrap-params« mit dem Rück- 01 (defproject webapp "0.1.0-SNAPSHOT" [1 2] gabewert eines »routes«-Aufrufs auf. In- 02 :main webapp.main Schließt der Clojure-Programmierer aber nerhalb von »routes« sind zwei Routen zu 03 :profiles {:uberjar {:aot :all}} einen Vektor oder ein Set in ein Atom sehen. Die erste ist übrigens kein Aufruf 04 :dependencies [[org.clojure/clojure "1.5.1"] ein, kann er es als veränderliche Daten- der Funktion »root«, denn der hieße in 05 [http-kit "2.1.16"] sammlung benutzen, dazu mit garantiert Clojure »(root)«. Sie wird stattdessen als 06 [compojure "1.1.6"] 07 [enlive "1.1.5"]]) exklusivem Zugriff: Wert übergeben. Um das Aufrufen küm-

C`jk`e^/1¾jiZ&n\YXgg&Zfi\%Zca½

01 (ns webapp.core 23 (http/on-receive (fn [msg] (broadcast channels (str name ": "

02 (:require [compojure.core :refer [routes GET]] msg)))))

03 [org.httpkit.server :as http] 24 (broadcast channels (str name " joined")))

04 [net.cgrand.enlive-html :as enlive] 25

05 [ring.middleware.params :refer [wrap-params]])) 26 (defn websocket

06 27 [channels] 07 (enlive/deftemplate root "templates/index.html" 28 (fn [request] 08 [request] 29 (let [name (get-in request [:params "name"])] 09 [:#name] (enlive/set-attr :value (get-in request [:params "name"]))) 30 (http/with-channel request channel 10 31 (if (http/websocket? channel) 11 (defn broadcast 32 (new-client channels channel name) 12 [channels message] 33 (http/send! channel {:status 426 13 (doseq [channel (deref channels)] 34 :headers {"Content-Type" "text/plain"} 14 (http/send! channel message))) 35 :body "You need WebSockets!"})))))) 15 36 16 (defn new-client 17 [channels channel name] 37 (def app 18 (swap! channels conj channel) 38 (let [channels (atom #{})] 19 (doto channel 39 (wrap-params 20 (http/on-close (fn [_] 40 (routes 21 (swap! channels disj channel) 41 (GET "/" [] root) 22 (broadcast channels (str name " has left")))) 42 (GET "/ws" [] (websocket channels)))))) '+&)'(+ Gif^iXdd`\i\e als Argument einen eingehenden HTTP- Request entgegennimmt. Aus dessen Parameterliste extrahiert sie »name«. Im nächsten Schritt bindet »http/with-chan- :cfali\ nel« das Symbol »channel« an einen asynchronen Kanal, der eine Websocket- Verbindung sein sollte. Ist er es nicht, ('' meldet die Anwendung einen Fehler und setzt den HTTP-Status »426 Upgrade Re- 8YY`c[le^+1C\`e`e^\egXZbk[`\bfdgc\kk\8en\e[le^jXdk9`Yc`fk_\b\e`e\`ecXl]]€_`^\jAXi$8iZ_`m% quired« (8YY`c[le^*). Im Erfolgsfall aber gibt der Code den Ka- der zwei Handler für den Kanal defi- tion »http/send!«, um die Nachricht an niert. Beim Schließen des Kanals (»http/ nnn%c`elo$dX^Xq`e%[\ nal an die Funktion »new-client« weiter, jeden einzelnen zu übermitteln. zusammen mit dem Parameter »name« on-close«) kommt wieder »swap!« zum Wer langsam unruhig wird und die An- und dem Atom »channels«. Wie der Einsatz, aber diesmal mit »disj«, das im wendung starten möchte, sollte sich noch Name andeutet, ist »new-client« (Zeilen Gegensatz zu »conj« ein Element aus dem kurz gedulden und die restlichen zwei 16 bis 24) für neu aufgenommene Ver- Set »channels« entfernt. Dann sendet die Dateien ansehen: »src/webapp/main.clj« bindungen zuständig. Die Funktion ruft Anwendung einen Broadcast an die rest- (C`jk`e^0) enthält einen kleinen Name- zunächst »swap!« mit dem Atom »chan- lichen Kanäle, dass ein Gesprächsteilneh- space, der beim Starten der Anwendung nels« als Argument auf. »swap!« wendet mer ausgestiegen ist. hilft. Er bindet den HTTP-Server sowie die restlichen Argumente auf die Werte die »app« aus »webapp.core« ein. im Atom an und ersetzt dessen Inhalt mit ;liZ_jX^\XeXcc\ Die Funktion »-main« entspricht der dem Ergebnis. »main«-Methode aus der Java-Welt – sie Der neue Wert im Atom ist »(conj pre- Beim Empfang (»http/on-receive«) einer tritt in Aktion, wenn man die Anwendung vious-value channel)«, also das Set der neuen Nachricht schickt das Programm auf der Kommandozeile aufruft. Sie star- existierenden Verbindungen zuzüglich sie einfach an alle Clients. Im letzten tet den Server und gibt eine kurze Status- der neuen. Darauf folgt der »doto«-Block, Schritt meldet »new-client« die Ankunft meldung aus. Das Keyword »:gen-class« eines neuen Teilnehmers. im Namespace veranlasst den Compiler, C`jk`e^01¾jiZ&n\YXgg&dX`e%Zca½ Die »broadcast«-Funktion selbst ist eben- »webapp.main« zu einer Java-Klasse zu

01 (ns webapp.main falls einen Blick wert (C`jk`e^/, Zeilen kompilieren. 02 (:require [webapp.core :refer [app]] 11 bis 14). Sie nimmt zwei Argumente C`jk`e^ (' schließlich ist das Enlive- 03 [org.httpkit.server :as http]) entgegen, das Atom mit allen Kanälen Template. Es enthält HTML sowie etwas 04 (:gen-class)) und eine Zeichenkette, die als Nachricht Javascript, um die Websocket-Verbindun- 05 verschickt werden soll. Mit »deref« extra- gen im Browser zu öffnen und HTML- 06 (defn -main [] hiert sie aus dem »channels«-Atom das Sonderzeichen zu maskieren. 07 (http/run-server app {:port 8080}) Set mit den Kanälen. Dann iteriert sie Startet der Entwickler die Anwendung 08 (println "The server is up!")) über alle Kanäle und verwendet die Funk- nun mit »lein run«, ruft dies die »-main«-

C`jk`e^('1¾i\jfliZ\j&k\dgcXk\j&`e[\o%_kdc½

01 16 document.getElementById("button"). body.scrollHeight);

02 addEventListener("click", fn, false); 32 };

03

content="text/html; charset=UTF-8"> function (event) { 34 websocket.send(input.value);

04 18 if (event.keyCode == 13) { fn(); } 35 input.value = ""; 05

Chat

19 }); 36 }); 06
20 } 37 } else { 07 21 if (name) { 38 log.innerHTML = "

What's your name? 08 22 var host = document.location.host;

"; 09 host + "/ws?name=" + name); 40 window.location = "?name=" + 10 "name").value; 30 log.appendChild(pre); 46 15 var set_callback = function (fn) { 31 window.scrollTo(0, document. 47 '+&)'(+ Gif^iXdd`\i\e Funktion im Namespace »main« auf. Statt Clojure wissen möchte, findet eine Reihe R-T C\`e`e^\e1R_kkgj1&&^`k_lY%Zfd& den Server aus dem Projektverzeichnis von Büchern über die Programmierspra- k\Z_efdXeZp&c\`e`e^\eT heraus aufzurufen, kann man die ganze che auf dem Markt R((T, vornehmlich R.T :fdgfali\1R_kkgj1&&^`k_lY%Zfd& Anwendung auch in ein Jar-Archiv pa- allerdings in englischer Sprache. Wer n\Xm\a\jk\i&Zfdgfali\T cken, das sich fürs Deployment oder die Übung braucht, findet auf der Website R/T ?kkgb`k1R_kkg1&&_kkg$b`k%fi^T :cfali\ Weitergabe an Kunden eignet. Es enthält 4clojure.com R()T eine große Sammlung R0T ?`ZZlg1 alles, was der Webchat benötigt. Dafür von Programmieraufgaben. Der Blog-Ag- R_kkgj1&&^`k_lY%Zfd&n\Xm\a\jk\i&_`ZZlgT gibt es das Leiningen-Kommando »lein gregator Planet Clojure R(*T schließlich R('T 

trieb nehmen (8YY`c[le^+). R()T Gif^iXdd`\iXl]^XY\e1 nnn%c`elo$dX^Xq`e%[\ @e]fj R_kkg1&&+Zcfali\%ZfdT 8ljYc`Zb R(T :cfali\1R_kkg1&&Zcfali\%fi^T R(*T GcXe\k:cfali\1R_kkg1&&gcXe\k%Zcfali\%`eT R)T :cfali\$Lj\i^iflgj1 R(+T C`jk`e^jql[`\j\d8ik`b\c1 Hat man sich an die Clojure-Syntax und R_kkg1&&[\m%Zcfali\%fi^&[`jgcXp& R_kkg1&&nnn%c`elo$dX^Xq`e%[\&jkXk`Z& das Arbeiten auf der REPL gewöhnt, las- Zfddle`kp&:cfali\"Lj\i">iflgjT c`jk`e^j&dX^Xq`e&)'(+&'+&Zcfali\T sen sich mit Leiningen und einer Hand- R*T iX_Xd#Ù9\Xk`e^k_\8m\iX^\jÈ1 NXijZ_Xljkl[`\ik#Y\^\`jk\ikj`Z_]•i:cfali\le[ Clojure-Ökosystems dar. Wer mehr über R_kkg1&&nnn%gXlc^iX_Xd%Zfd&Xm^%_kdcT ?Xjb\ccle[^\_k^\ie\qld9\i^jk\`^\e% '+&)'(+

Df[\ie\j:""`e[\iGiXo`jÆ=fc^\(, Gif^iXdd`\i\e

:""(( :""(("*4:""(+

(') )'(+`jk\`eY\jfe[\i\jAX_i]•i:""%;i\`AX_i\eXZ_:""((\i]€_ik[\iJgiXZ_jkXe[Xi[d`k:""(+[\ec\kqk\e =\`ejZ_c`]]%E\Y\e^\e\i`jZ_\eCXdY[X$=lebk`fe\ele[[\im\i\`e]XZ_k\ei`dd nnn%c`elo$dX^Xq`e%[\

tumsangabe, sondern eine Arbeitshypo- these. Einen Einblick in den laufenden Standardisierungsprozess gibt R(T.

I\[le[XeqY\j\`k`^k

Gerade mal zwei Monate ist es her, da stellte ein Artikel R)T dieser Serie die au- tomatische Ermittlung des Rückgabetyps eines Funktionstemplates vor. Bereits mit C++14 (C`jk`e^ () wird das einfacher. Das Funktionstemplate »add« in Zeile 4 ermittelt den Rückgabetyp automa- tisch aus dem Ergebnis des Ausdrucks »decltype(fir + sec)« in Zeile 5. Dabei leitet das Schlüsselwort »auto« den ver- zögerten Rückgabetyp ein. Ein scharfer Blick auf das Funktionstemplate offen- bart die Redundanz: Der Ausdruck »fir Zugegeben, C++ ist nicht mehr das, was für die Sprache sind, stellen C++03 und + sec« muss in C++11 sowohl bei der es einmal war. Mit C++11 , C++14 und C++14 (unten) Überarbeitungen der zu Definition des Rückgabetyps (Zeile 5) als C++17 muss sich die Programmierspra- diesem Zeitpunkt gültigen Norm dar. Sie auch bei der Berechnung des Rückgabe- che immer wieder mit Veränderungen beseitigen im Wesentlichen Bugs und werts (Zeile 6) stehen. auseinandersetzen. Der Zeitstrahl zu den bringen kleine Verbesserungen. Das ist in C++14 beim Funktionstemplate Standards in 8YY`c[le^( soll das Zahlen- Auch wenn C++17 suggeriert, dass genau »add14« (Zeile 9) nicht mehr erforderlich. spiel entwirren: Während C++98, C++11 im Jahr 2017 der nächste große Wurf Die Sprache ermittelt nun automatisch und C++17 (oben) vollwertige Standards ansteht, so ist das keine zuverlässige Da- den Rückgabetyp aus dem Rückgabe-

C`jk`e^(1M\i\`e]XZ_k\XlkfdXk`jZ_\I•Zb^XY\kpg\e

01 #include 15 27 02 #include 16 std::cout << std::endl; 28 auto a1= add14(2000,14); 03 17 29 auto b1= add14(2000L,14); 04 template 18 auto a= add(2000,11); 30 auto c1= add14(3,0.1415); 05 auto add(T1 fir, T2 sec) -> decltype(fir + 19 auto b= add(2000L,11); 31 sec){ 20 auto c= add(3,0.1415); 32 std::cout << "a1: " << a1 << " of type " 06 return fir + sec; 21 << typeid(a1).name() << std::endl; 07 } 22 std::cout << "a: " << a << " of type " << 33 std::cout << "b1: " << b1 << " of type " 08 typeid(a).name() << std::endl; << typeid(b1).name() << std::endl; 09 template 23 std::cout << "b: " << b << " of type " << 34 std::cout << "c1: " << c1 << " of type " 10 auto add14(T1 fir, T2 sec){ typeid(b).name() << std::endl; << typeid(c1).name() << std::endl; 11 return fir + sec; 24 std::cout << "c: " << c << " of type " << 35 12 } typeid(c).name() << std::endl; 36 std::cout << std::endl; 13 25 37 14 int main(){ 26 std::cout << std::endl; 38 } '+&)'(+ Gif^iXdd`\i\e

C++98 C++11 C++17

C++03 C++14 :""((

8YY`c[le^(1;`\:""$JkXe[Xi[j1FY\e[`\dX^\Yc`Z_\eE\lXl]cX^\e#lek\e[`\ EXZ_Y\jj\ile^\e[\iJgiXZ_m\ij`fe\e% ('* wert. Wie das Ausführen des Programms explizit angeben in 8YY`c[le^) zeigt, sind die mit unter- – das verhindert schiedlicher Notation automatisch ermit- ihren generischen 8YY`c[le^)18lkfdXk`jZ_\j9\jk`dd\e[\jI•Zb^XY\kpgjd`k:""((le[:""(+% telten Rückgabetypen identisch. So ergibt Einsatz. Den fei- nnn%c`elo$dX^Xq`e%[\ »int + int« den Typ »int« (Zeilen 22 und nen Unterschied zwischen Lambda-Funk- Lambda-Funktion »add14()« sowohl für 28), »long + int« den Typ »long« (Zeilen tionen und generischen Lambda-Funktio- Vektoren vom Typ »int« als auch solche 19 und 29) und »double + int« den Typ nen machen die zwei Funktionen »add()« vom Typ »std::string« geeignet ist. Diese »double« (Zeilen 20 und 30). und »add14()« in den Zeilen 7 und 8 von Flexibilität fehlt der Lambda-Funktion »[] C`jk`e^) anschaulich. Während die erste (int i, int j){ return i+j; }« in Zeile 27. >\e\i`jZ_\CXdY[X$ nur Argumente vom Typ »int« akzeptiert, Sie lässt sich nur auf »int«-Typen anwen- =lebk`fe\e nimmt die zweite Argumente beliebigen den. In 8YY`c[le^* ist das Programm in Typs an. Kleiner Unterschied, große Aus- Aktion zu sehen. Lambda-Funktionen sind eines der wich- wirkungen: In Zeile 14 lassen sich mit tigsten Features von C++11. Mit ihnen »add()« lediglich zwei »int«-Werte zusam- M`\c\e\l\C`k\iXc\ drückt der Programmierer Funktionalität menzählen. Im Gegensatz dazu addiert kurz und genau an der Stelle aus, an der »add14()« in den Zeilen 16 bis 22 Werte Literale in C++ repräsentieren einen ex- er sie benötigt. Bessere Lesbarkeit und der Typen »int«, »long«, »double« und pliziten Wert. Beispielsweise steht »1« für höhere Flexibilität des Codes sind zwei »std::string«. den Integer-Wert 1, »1L« für den Long- der vielen Punkte, die für Lambda-Funk- Besonders praktisch sind generische Wert 1. C++14 bringt eine Vielzahl neuer tionen sprechen. Die Details zu diesem Lambda-Funktionen beim Einsatz in der Literale. Mit Ausnahme des binären Li- funktionalen Baustein in C++11 lassen Standard Template Library. Sie machen es terals »0b10«, das durch das Präfix »0b« sich in den zwei ersten Artikeln dieser möglich, Algorithmen ohne die Angabe definiert ist, besitzen alle anderen neuen Serie nachlesen (R*T,R+T). eines Typs zu formulieren. Der subtile Literale in C++11 ein Suffix, das hinten Was fehlt den Lambda-Funktionen in Unterschied zwischen »std::accumulate« angehängt wird. So wird »"Hello"s« durch C++11, das C++14 bietet? In C++11 muss in Zeile 27 und »std::accumulate« in den »s« zum String-Literal. Neben binären Li- der Entwickler den Typ der Argumente Zeilen 30 und 34 ist, dass die generische teralen führt C++14 Literale für Strings,

C`jk`e^)1>\e\i`jZ_\CXdY[X$=lebk`fe\e

01 #include 22 std::cout << "add14(\"Hello \"s,\"World\"s): " <<

02 #include add14("Hello "s,"World"s) << std::endl;

03 #include 23 04 24 std::cout << std::endl; 05 using namespace std::literals; 25 06 26 std::vector myVec{1,2,3,4,5,6,7,8,9}; 07 auto add=[](int i,int i2){ return i + i2; }; 27 auto res= std::accumulate(myVec.begin(),myVec.end(),0,[](int i, 08 auto add14=[](auto i,auto i2){ return i + i2; }; 09 int j){ return i+j;}); 10 int main(){ 28 std::cout << "res: " << res << std::endl; 11 29

12 std::cout << std::endl; 30 auto res14= std::accumulate(myVec.begin(),myVec.end(),0, add14);

13 31 std::cout << "res14: " << res14 << std::endl; 14 std::cout << "add(2000,11): " << add(2000,11) << std::endl; 32 15 33 std::vector myStr{"Hello"s," World"s}; 16 std::cout << "add14(2000,14): " << add14(2000,14) << std::endl; 34 auto str14= std::accumulate(myStr.begin(),myStr.end(),""s, add14); 17 std::cout << "add14(2000L,14): " << add14(2000L,14) << std::endl; 35 std::cout << "str14: " << str14 << std::endl; 18 std::cout << "add14(3,0.1415): " << add14(3,0.1415) << std::endl; 19 36 20 std::cout << "add14(std::string(\"Hello\"),std::string(\" World\")): " 37 std::cout << std::endl; 21 << add14(std::string("Hello "),std::string("World")) << 38

std::endl; 39 } '+&)'(+ Gif^iXdd`\i\e :""((

('+

8YY`c[le^+1;\iQ\`kXl]nXe[]•i\`e\eJZ_lckX^#`em\ijZ_`\[\e\e 8YY`c[le^*1CXdY[X$=lebk`fe\em\ijlj^\e\i`jZ_\CXdY[X$=lebk`fe\e% 8l]cjle^\e[Xi^\jk\cck% nnn%c`elo$dX^Xq`e%[\ Zeitangaben und komplexe Zahlen ein. nau 45 Minuten (2700= 45 * 60). Der Zu ihrem Schutz benutzen C++11-Pro- KXY\cc\( stellt die Neuzugänge mit ihrem umständlichen Definition einer Schul- grammierer typischerweise einen Mutex Typ und einem Beispiel vor. stunde in C++11 in den Zeilen 10 und 11 (Mutual Exclusion). Dieser stellt sicher, Neben der Lesbarkeit bieten die neuen Li- steht die einfache durch das Zeitliteral dass ein Thread nur exklusiv, also als terale besonders einen großen Vorteil: Da »45min« (Zeile 12) in C++14 gegenüber. Einziger, auf die Variable zugreifen darf. ihre Einheit direkt im Literal ausgedrückt 8YY`c[le^+ zeigt das Resultat des Pro- In C++11 verpackt man Mutexe in Locks, ist, gewährleistet der Compiler die Typsi- gramms und gibt aus, der Schultag sei um zu gewährleisten, dass der Mutex die cherheit. Das Rechnen mit Zeitangaben 27 300 Sekunden lang (Zeile 22). Dies Variable wieder freigibt. gerät damit zum Kinderspiel. C`jk`e^* entspricht 7,58333 Stunden (Zeile 28), Geschieht dies nicht, kann ein verges- als Beispiel berechnet, wie viel zeitlichen 455 Minuten (Zeile 29) oder 2.73*107 Mil- sener Mutex zu einer so genannten Ver- Aufwand ein gewöhnlicher Schultag be- lisekunden (Zeile 30). klemmung führen. Im Englischen ist der nötigt. Die Antwort gibt das Programm in Die Brüche »std::ratio« in den Zeilen 24 Begriff Deadlock dafür gebräuchlich. In unterschiedlichen Zeiteinheiten. bis 26 geben die Relation zu Sekunden diesem Zustand wartet ein Thread auf wieder. So steht »std::ratio<3600>« Zugang zu dem kritischen Bereich, erhält J\ble[\eYilZ_k\`c\ für das 3600-Fache einer Sekunde, aber nie den Zugriff. Das Programm ist »std::ratio<1,1000>« für das 1/ 1000-Fa- blockiert und als einzige Rettung bleibt, Damit er die Zeitliterale verwenden kann, che einer Sekunde. Um die Brüche exakt das Programm mit [Strg]+[C] abzubre- macht der Programmierer sie in Zeile 4 darzustellen, speichert der Code sie je- chen. Details zum Zusammenspiel von durch »using« bekannt. Per Definition be- weils in »double«-Typen. Mutexen und deren Abstraktion in Locks steht der Zeitaufwand für einen Schultag lassen sich in dem Artikel „Gemeinsam aus der Dauer von Hin- und Rückweg, Bi`k`jZ_\N\kkc€l]\le[ ins Ziel“ R/T genau nachlesen. sechs Schulstunden, vier kurzen Pausen, M\ibc\ddle^\e einer langen Pause und der Zeit für die >ifY\CfZbj Hausaufgaben (Zeile 20). Um die Problematik von Locks in C++11 Die entsprechenden Zeitliterale definie- und deren Lösung in C++14 einander Das Problem bei C++11-Locks besteht ren die Zeilen 14 bis 18. Das Zeitliteral für gegenüberzustellen, ist ein wenig The- darin, dass sie zu grob vorgehen: Auch eine Schulstunde, »45min«, ist in Zeile 12 orie erforderlich: Ein kritischer Wettlauf wenn alle Threads nur lesend auf die auskommentiert. Statt dessen kommt das um einen Datenbereich entsteht, wenn gemeinsame Variable zugreifen wollen, Objekt »schoolHour« in Zeile 11 zum Ein- mehrere Threads gleichzeitig lesend und müssen sie unnötigerweise Schlange satz. »schoolHour« ist vom Typ »shour«. schreibend auf dessen Variablen zugrei- stehen und warten, bis sie zum Zuge Dabei entspricht »shour« einer Zeitdauer fen wollen. Entschei- von 2700 Sekunden, im Typ »long long« dend ist, dass mindes- KXY\cc\(1C`k\iXc$Jl]]`o\ gespeichert (Zeile 10). tens einer der Threads Gi€]`o&Jl]]`o Kpg 9\`jg`\c Da C++ als Auflösung für Zeitangaben die Variable verändern 'Y Yffc 'Y(' Sekunden verwendet, entspricht dies ge- möchte. j jk[11jki`e^ ?\ccfj Der Einfachheit hal- ` Zfdgc\o3[flYc\5 ,` :fdg`c\i]•i:""(+ ber geht dieser Artikel `c Zfdgc\o3cfe^[flYc\5 ,`c im weiteren Verlauf ;`\ M\ij`fe *%+ [\j :cXe^$:fdg`c\ij R,T `] fdgc\o3]cfXk5 ,`] davon aus, dass der lek\ijk•kqkXcj\ijk\mfccjk€e[`^[\e:""(+$ _ jk[11Z_ifef11_flij ,_ JkXe[Xi[% 8Y\i XlZ_ [\i Xbkl\cc\ >:: +%0 kritische Bereich aus d`e jk[11Z_ifef11d`elk\j ,d`e R-TY`\k\k[`\d\`jk\e=\Xkli\jmfe:""(+% einer einzigen Variab- j jk[11Z_ifef11j\Zfe[j ,j D`k ¾jk[4Z""(p½ Xcj =cX^ •Y\ij\kqk \i Xcc\ len besteht. Durch das dj jk[11Z_ifef11d`cc`j\Zfe[j ,dj 9\`jg`\c\ [`\j\j 8ik`b\cj% >\eXl\i\j qli gleichzeitige Lesen :fdg`c\i$Lek\ijk•kqle^ mfe :""(+ `jk `d und Schreiben ist de- lj jk[11Z_ifef11d`Zifj\Zfe[j ,lj e\l\e:""$=8H$N`b`R.TeXZ_qlc\j\e% ren Wert undefiniert. ej jk[11Z_ifef11eXefj\Zfe[j ,ej '+&)'(+ Gif^iXdd`\i\e kommen. Dabei wäre es nur erforder- verwenden. Beim Verlassen der Funk- lich, dass der Thread, der die Variable tion wird das Shared Lock und damit verändern will, ein exklusives Lock auch der Shared Mutex automatisch auf die Variable erhält. C++14 löst freigegeben. :""(( das Problem mit einer besonderen Art Im Gegensatz dazu steht der Aus- von Locking. druck »std::lock_guard writerLock(teleBookMutex)« C\j\e\icXlYk (Zeile 14) in der Funktion »addToTele- (', Book()«. Er benutzt für den synchro- Reader-Writer-Locks R0T erlauben es nisierten Zugriff exklusiv den glei- einerseits, mit Threads zu program- chen Mutex »teleBookMutex«. Durch »std::lock_guard« in Kombination mit mieren, die eine Variable nur gleich- nnn%c`elo$dX^Xq`e%[\ zeitig lesen, andererseits mit Threads »std::shared_mutex« ist der Zugriff zu arbeiten, die eine Variable exklu- auf die Variable »teleBook[na]« ex- siv modifizieren. C`jk`e^ + gibt ein klusiv, während »std::shared_lock« in Beispiel dafür. Die gemeinsame Vari- Kombination mit »std::shared_mutex« able, die es dort zu schützen gilt, ist den gemeinsamen Zugriff erlaubt. ein Telefonbuch. Da der lesende Zu- griff auf das Telefonbuch viel häufiger Dlk\ogcljCfZb stattfindet als der schreibende, bietet 8YY`c[le^,1>\d\`ejXd\jC\j\ele[JZ_i\`Y\e\`e\jK\c\$ es sich an, die neuen Reader-Writer- ]feYlZ_jd`kI\X[\i$Ni`k\i$CfZbj% Aus den Sprachfeatures Shared Locks einzusetzen. Mutex und Shared Lock entstehen Als Telefonbuch kommt in Zeile 9 eine Funktionen, die die globalen Funktionen so die Reader-Writer-Locks. Je nach- Map zum Einsatz. Diese bildet Strings »printNumber« (Zeile 21) oder »addToTe- dem, wie der Programmierer den Mutex auf natürliche Zahlen ab, beziehungs- leBook()« (Zeile 13) aufrufen. anwendet, gewährt er einem einzi- weise Namen auf Telefonnummern. Die Das Entscheidende an der Funk- gen Thread exklusiven Zugriff (»lock_ Zeilen 30 bis 39 sind dabei der Dreh- und tion »printNumber()« zum Ausgeben guard«) oder mehreren Angelpunkt. Zehn verschiedene Threads der Telefonnummer ist der Ausdruck Threads gemeinsam lesenden (»shared_ möchten gleichzeitig das Telefonbuch »std::shared_lock lock«). verwenden. Aber nur zwei davon, »w1« readerLock(teleBookMutex)« in Zeile 22. Der Rest des Programms ist schnell er- und »w2« (Zeilen 32 und 35), wollen das Er stellt durch das Shared Lock auf den klärt: Die Funktion »addToTeleBook« Telefonbuch modifizieren, die restlichen Shared Mutex »teleBookMutex« sicher, schreibt die zwei Statusmeldungen (Zei- Threads geben nur die Telefonnummer dass die lesenden Threads beim Zugrei- len 15 und 18) auf die Konsole und schläft auf der Konsole aus. Alle Threads er- fen auf die Map »teleBook[na]« in der für eine halbe Sekunde, während sie ex- halten ihre Arbeitspakete als Lambda- folgenden Zeile gemeinsam den Mutex klusiv das Lock hält. Zum Abschluss ge-

C`jk`e^*1I\Z_e\ed`kQ\`kc`k\iXc\e

01 #include 21 02 #include 22 std::cout << "School day in seconds: " << schoolDayInSeconds.count() 03 << std::endl; 04 using namespace std::literals::chrono_literals; 23 05 24 std::chrono::duration> schoolDayInHours = 06 int main(){ schoolDayInSeconds; 07 25 std::chrono::duration> schoolDayInMinutes = 08 std::cout << std::endl; schoolDayInSeconds; 09 26 std::chrono::duration> 10 typedef std::chrono::duration> hour; schoolDayInMilliseconds = schoolDayInSeconds; 11 auto schoolHour= hour(1); 27 12 // auto schoolHour= 45min; 28 std::cout << "School day in hours: " << schoolDayInHours.count() 13 << std::endl; 14 auto shortBreak= 300s; 29 std::cout << "School day in minutes: " << schoolDayInMinutes.count() 15 auto longBreak= 0.25h; << std::endl; 16 30 std::cout << "School day in milliseconds: " << 17 auto schoolWay= 15min; schoolDayInMilliseconds.count() << std::endl; 18 auto homework= 2h; 31 19 32 std::cout << std::endl; 20 auto schoolDayInSeconds = 2 * schoolWay + 6 * schoolHour + 4 * 33 shortBreak + longBreak + homework; 34 } '+&)'(+ Gif^iXdd`\i\e ben die Zeilen 55 bis 57 den Inhalt des Variable, die lesenden Threads greifen R)T IX`e\i>i`dd#ÙE\l\8lj[ilZbjbiX]kÈ1 Telefonbuchs aus. gleichzeitig schreibend auf sie zu. Das C`elo$DX^Xq`e')&(+#J%('+ Wer sich die Ausgabe des Programms in Ergebnis ist der abgebildete Textsalat. R*T IX`e\i>i`dd#Ù;`\i`dd#ÙBliqle[beXZb`^È1 Funktion »addToTeleBook()« mit den Sta- Wikipedia-Artikel R('T empfohlen. C`elo$DX^Xq`e')&()#J%0) tusmeldungen »STARTING UPDATE […] R,T :cXe^*%+1R_kkg1&&ccmd%fi^&i\c\Xj\j&*%+& ('- ENDING UPDATE« für Scott und Bjarne N`\^\_kËjn\`k\i6 kffcj&ZcXe^&[fZj&I\c\Xj\Efk\j%_kdcT wird geschützt ausgeführt, sodass der R-T >::+%01R_kkg1&&^ZZ%^el%fi^&^ZZ$+%0& Inhalt des Telefonbuchs die definierten Der nächste Artikel dieser Reihe wird in Z_Xe^\j%_kdcT Werte besitzt. Die lesenden Threads dage- die Tiefen des C++11-Memory-Modells R.T ÙN_\en`ccZfdg`c\ij`dgc\d\ek:""(+6È1 gen schreiben unkoordiniert auf die Kon- eintauchen und die Antwort auf den Le- nnn%c`elo$dX^Xq`e%[\ R_kkg1&&`jfZgg%fi^&n`b`&]Xh&Zgg(+ sole. Das ist aber nicht verwunderlich, serbrief von Jörg Böhme R((T geben. Das Zgg(+$Zfdg`c\ijT denn die Konsole ist eine gemeinsame C++11-Memory-Modell basiert auf den R/T IX`e\i>i`dd#Ù>\d\`ejXd`ejQ`\cÈ1 Erfahrungen des Java-Memory-Modells C`eloDX^Xq`e'-&()#J%0' und definiert unter anderem Zusiche- R0T ?fnXi[?`eeXek#;\kc\]MfccdXee# ;\i8lkfi rungen, wann eine Aktion eines Thread ?Xej9f\_d#ÙJ_Xi\[cfZb`e^`e:""È1 IX`e\i >i`dd XiY\`k\k für andere Threads sichtbar ist. Überra- R_kkg1&&`jfZgg%fi^&Ycf^&)'(*&'+& Xcj Jf]knXi\$8iZ_`k\bk schungen – und nicht nur für den C++- e*-,0$j_Xi\[$cfZb`e^T le[ >ilgg\ec\`k\i Y\` [\i Guru – gibt es in der nächsten Folge R('T:""(+1R_kkg1&&\e%n`b`g\[`X%fi^&n`b`& D\kiXo >dY? `e Ifkkn\`c% inklusive. (mhu) ■ :)9)9(+T @ejY\jfe[\i\[`\Jf]knXi\ R((T Ai^9_d\#C\j\iYi`\]qldD\dfipDX$ [\i_Xlj\`^\e\e;\]`Yi`ccX$ eX^\d\ek1C`eloDX^Xq`e'(&(+#J%/) kfi\e`jk`_d\`e\?\iq\ejXe^\c\^\e_\`k%J\`e\ @e]fj R()TC`jk`e^jqld8ik`b\c1 9•Z_\iÙ:""((]•iGif^iXdd`\i\iÈle[Ù:""bliq R(T JkXklj[\i:""$JkXe[Xi[`j`\ile^1 R_kkg1&&nnn%c`elo$dX^Xq`e%[\&jkXk`Z& ^lkÈj`e[Y\`dM\icX^FËI\`ccp\ijZ_`\e\e% R_kkg1&&`jfZgg%fi^&jk[&jkXkljT c`jk`e^j&dX^Xq`e&)'(+&'+&Zgg&T

C`jk`e^+1I\X[\i$Ni`k\i$CfZbj

01 #include 31 std::thread reader2([]{ printNumber("Ritchie"); }); 02 #include 32 std::thread w1([]{ addToTeleBook("Scott",1968); }); 03 #include 33 std::thread reader3([]{ printNumber("Dijkstra"); }); 04 #include 34 std::thread reader4([]{ printNumber("Scott"); }); 05 #include 35 std::thread w2([]{ addToTeleBook("Bjarne",1965); }); 06 #include 36 std::thread reader5([]{ printNumber("Scott"); }); 07 #include 37 std::thread reader6([]{ printNumber("Ritchie"); }); 08 38 std::thread reader7([]{ printNumber("Scott"); }); 09 std::map teleBook{{"Dijkstra",1972},{"Scott",1976}, 39 std::thread reader8([]{ printNumber("Bjarne"); }); {"Ritchie",1983}}; 40 10 41 reader1.join(); 11 std::shared_mutex teleBookMutex; 42 reader2.join(); 12 43 reader3.join(); 13 void addToTeleBook(const std::string& na, int tele){ 44 reader4.join(); 14 std::lock_guard writerLock(teleBookMutex); 45 reader5.join(); 15 std::cout << "\nSTARTING UPDATE " << na; 46 reader6.join(); 16 std::this_thread::sleep_for(std::chrono::milliseconds(500)); 47 reader7.join(); 17 teleBook[na]= tele; 48 reader8.join(); 18 std::cout << " ... ENDING UPDATE " << na << std::endl; 49 w1.join(); 19 } 50 w2.join(); 20 51 21 void printNumber(const std::string& na){ 52 std::cout << std::endl; 22 std::shared_lock readerLock(teleBookMutex); 53 23 std::cout << na << ": " << teleBook[na]; 54 std::cout << "\nThe new telephone book" << std::endl; 24 } 55 for (auto teleIt: teleBook){ 25 56 std::cout << teleIt.first << ": " << teleIt.second << std::endl; 26 int main(){ 57 } 27 58 28 std::cout << std::endl; 59 std::cout << std::endl; 29 60 30 std::thread reader1([]{ printNumber("Scott"); }); 61 }

'+&)'(+

9`^$;XkX$JlZ_dXjZ_`e\]•iJki`e^jjfn`\=fkfjd`kLdbi\`jjlZ_\ Gif^iXdd`\i\e

('/ ;`\Xl]8gXZ_\ClZ\e\YXj`\i\e[\Mfcck\ok$JlZ_\e^`e\\^\e[^\jZ_fjj\e_Xk%D`Z_X\cJZ_`cc` nnn%c`elo$dX^Xq`e%[\

Home verzeichnis, das Skript in C`jk`e^ ( übermittelt alle rekursiv gefundenen Textdateien über die REST-Schnittstelle an den laufenden Elasticsearch-Server zur Indizierung. Der Aufruf

$ fs-index ~/git/articles

dauerte erst einige Minuten, ein zweiter Aufruf mit angewärmtem Plattencache lief dann innerhalb von 30 Sekunden durch. Eine anschließende Suche nach dem Wort „Balkon“ zeigt Ergebnisse in Bruchteilen einer Sekunde:

$ fs-search balkon /home/mschilli/git/articles/water/t.pnd /home/mschilli/git/articles/gimp/t.pnd

Ÿ@mXeBd`k#()*I=%Zfd Die im Index gefundenen Dateien offen- baren, dass ich das Wort „Balkon“ bislang Auf der Suche nach einer Suchmaschine nizieren. 8YY`c[le^( zeigt einen »GET«- nur in zwei Ausgaben verwendet habe: zum schnellen Durchforsten von Logda- Request auf den laufenden Server, der Einmal im Juli 2008 in einem Artikel über teien stieß ich neulich auf Elasticsearch den Status anzeigt. Perls Schnittstelle zum Foto-Editor Gimp, R)T, eine auf Apache Lucene basierende Zum Einfüttern von Daten und fürs spä- der ein von meinem Balkon aus geschos- Volltextsuche mit allerhand Extras. Auf tere Abfragen gibt es eine Reihe von REST- senes Foto manipulierte R,T, und ein- der Downloadseite bietet das Open- Clients in mehreren Sprachen. Offizieller mal im März 2007, als der Perl-Snapshot Source-Projekt neben dem üblichen Tar- Perl-Client darf sich das CPAN-Modul die automatische Bewässerungsanlage ball auch ein Debian-Paket an. Die bei Elasticsearch nennen. Zu beachten ist für meine Balkonpflanzen ins gleißende Redaktionsschluss aktuelle Pre-Release- allerdings, dass Elasticsearch (aktuelle Licht der Öffentlichkeit rückte R-T. Version 1.0.0.RC2 findet mit »sudo dpkg Version 1.03, R*T) der Nachfolger des --install *.deb« ohne Probleme den Weg veralteten Moduls »ElasticSearch« (gro- Jk\kjlejZ_Xi]\JlZ_\g\i in jedes Ubuntu. Praktischerweise liegt ßes S, R+T) ist. Zweifellos eine äußerst Jk\dd`e^ dem Debian-Paket ein Bootskript bei, mit unglückliche Namenswahl des CPAN- dem Root von der Kommandozeile per Autors, schon allein weil die alte Version Es zeigt sich weiter, dass Elasticsearch auf dem CPAN liegen geblieben ist und Groß- und Kleinschreibung ignoriert und # /etc/init.d/elasticsearch start bei Suchabfragen auf Rj\XiZ_%ZgXe%fi^T von sich aus Begriffe einer Stammform- den Elasticsearch-Server auf dem vorein- vor der neuen hochploppt. Reduktion unterzieht (Stemming): Eine gestellten Port 9200 in Gang setzt. Als nutzbringende Beispielanwendung Suche nach „Pflanze“ liefert nämlich die für eine Elasticsearch-Volltextsuche iden- Gfcp^cfkkf[\iG\ic tifiziere ich die Stichwortsuche in allen Fec`e\GCLJ bislang im Linux-Magazin erschienenen @e \`e\d JZi\\eZXjk [\dfejki`\ik Die meisten Praxis-Tutorials aus dem Perl-Snapshots. Die Manuskripte der D`Z_X\c JZ_`cc` [Xj 9\`jg`\c1 R_kkg1&& Web nutzen die REST-Schnittstelle, um über 200 Artikel dieser Reihe finden sich nnn%c`elo$dX^Xq`e%[\&)'(+&'+&gcljT mit dem Server über HTTP zu kommu- in einem Git-Repository unter meinem '+&)'(+ Gif^iXdd`\i\e folge beginnen. Abge- Per Cut & Paste kann der davon über- sehen davon findet die raschte Entwickler den Vorgang Schritt Suchfunktion jede Na- für Schritt nachvollziehen. del im Heuhaufen, Elasticsearch speichert die Daten einer und das zügig. Applikation unter einem Index, den Das »fs-index«-Skript die Zeile 7 mit »fs« (wie File System) G\ic$JeXgj_fk in C`jk`e^( nimmt in benennt. Falls schon Daten vorliegen, Zeile 9 das ihm von löscht die Methode »delete()« ihn in Zeile ('0 der Kommandozeile 13. Die umwickelnde »eval«-Anweisung übergebene Suchver- fängt etwaige Fehler stillschweigend ab, 8YY`c[le^(1EXZ_[\dJkXik\e[\j;X\dfeXeknfik\k[`\j\iXl][\dGfik zeichnis entgegen und beispielsweise wenn der Index noch gar ruft den Konstruktor 0)''Xl]8G@$8e]iX^\e% nicht existiert, weil es sich um den aller- nnn%c`elo$dX^Xq`e%[\ der Klasse »Elastic- ersten Aufruf von »fs-index« handelt. gleichen Ergebnisse wie oben, obwohl in search« auf. Falls Suchabfragen einmal den Textdateien ausschließlich von „Bal- nicht das gewünschte Ergebnis bringen, Ql^if\le[9`e€i[Xk\`\e konpflanzen“ die Rede ist. Allerdings be- lässt sich der Konstruktor mit d•jj\e[iXl\eYc\`Y\e greift das Analysetool nicht, dass „Bal- my $es = Elasticsearch->new( kone“ die Mehrzahl von „Balkon“ ist, Die Funktion »find()« aus dem Modul trace_to => ['File','log'] und liefert in diesem Fall keine Treffer. ); File::Find wühlt sich ab Zeile 15 durch Leider treibt es Elasticsearch manchmal die Verzeichnisse auf der Festplatte, be- zu weit mit der unscharfen Suche und dazu überreden, in der Logdatei »log« alle ginnend bei dem auf der Kommandozeile präsentiert Fundstücke, die keine sind, an den Elasticsearch-Server abgesetzten übergebenen Startverzeichnis. Gefundene weil Wörter mit der gleichen Zeichen- Befehle im Curl-Format auszuspucken. Binärdateien ignoriert Zeile 18, genau

C`jk`e^(1¾]j$`e[\o½

01 #!/usr/local/bin/perl -w 12 my $es = Elasticsearch->new( ); 22 $es->index( 02 use strict; 13 eval { $es->indices->delete( index => $idx 23 index => $idx, 03 use Elasticsearch; ) }; 24 type => 'text', 04 use File::Find; 14 25 body => { 05 use Sysadm::Install qw( slurp ); 15 find sub { 26 content => $content, 06 16 my $file = $File::Find::name; 27 file => $file, 07 my $idx = "fs"; 17 return if ! -f $file; 28 } 08 18 return if ! -T $file; 09 my( $base ) = @ARGV; 19 return if -s $file > 100_000; 29 ); 10 die "usage: $0 basedir" if !defined $base; 20 my $content = slurp $file; 30 print "Added $file\n"; 11 21 31 }, $base; '+&)'(+ Gif^iXdd`\i\e wie alles außen vor bleibt, was keine Verzeichnis verwandelt.) Jedenfalls liefert zum archivierten Dateinamen in Rich- richtige Datei oder größer als 100 000 Elasticsearch auf »fs-search '*'« hin zehn tung Terminal sendet. Bytes ist. Die Funktion »slurp()« aus dem mehr oder minder zufällige Ergebnisse CPAN-Modul Sysadm::Install überträgt zurück, denn unkonfiguriert ist die ma- JlZ_\`e>GJ$9`c[\i[Xk\e dann den Inhalt würdiger Dateien in den ximale Trefferzahl auf 10 eingestellt. Ein G\ic$JeXgj_fk Speicher, den die Methode »index()« in etwas später vorgestelltes Skript ändert Elasticsearch hat aber noch mehr drauf. Zeile 22 unter dem Schlüssel »content« diesen Wert auf 100 ab. Zum Beispiel erweitert der so genannte ((' in die Datenbank füttert. Der Name der Die in Zeile 12 aufgerufene Methode Geo Distance Filter R.T die klassische Datei gelangt unter dem Eintrag »file« »search()« nimmt den Namen des Such- Volltextsuche um eine interessante Fa- ebenfalls dorthin. index, unter dem die Daten liegen (wie- cette. Wer den Filter installiert und zu der »fs«) und im »body«-Teil der Anfrage jedem Dokument passende Geodaten den Query-String entgegen. Aus der Doku- nnn%c`elo$dX^Xq`e%[\ CfbXc\jBc\`e$>ff^c\d`k speichert, dem zeigt die Suchengine m`\c\eHl\ip$=fidXk\e mentation R)T ist zu entnehmen, dass genau jene Einträge, die sich in einem Elasticsearch offenbar eine ganze Reihe bestimmten Umkreis befinden. Das ist Später findet das Skript in C`jk`e^ ) historisch gewachsener Query-Formate zum Beispiel dann von Nutzen, wenn Dateien zu vorgegebenen Stichworten, versteht, was die etwas absurd anmuten- man übermüdet mit seinem Mobiltele- ähnlich wie dies die Suchmaschinen des de Verschachtelung »query/query_string/ fon herumirrt und ein offenes 5-Sterne- Internets tun. Wenn ich dieses Skript per query« notwendig macht. Restaurant sucht. »fs-search '*'« aufrufe, passt darauf je- Als Ergebnis der Erkundungsmission Da mein iPhone 5 wie jedes andere Smart- des Dokument im Index. (Die einfachen kommt eine Referenz auf ein Array von phone zu jedem geschossenen Bild die Anführungszeichen verhindern, dass die Treffern zurück, über das die For-Schleife Geodaten im Exif-Header der Jpeg-Datei Unix-Shell sich des Metazeichens »*« be- in den Zeilen 20 und 21 iteriert und je- ablegt, bietet sich eine Suche an, die zu mächtigt und in einen Glob auf das lokale weils den ebenfalls übermittelten Eintrag einem vorgegebenen Bild im Fotoalbum des Telefons („Gallery“) jene Bilder her- C`jk`e^)1¾]j$j\XiZ_½ aussucht, die ich im 1-Kilometer-Radius

01 #!/usr/local/bin/perl -w 13 index => $idx, dazu geschossen habe. Die 8YY`c[le^) 02 use strict; 14 body => { zeigt zum Beispiel ein Foto des neu ge- 03 use Elasticsearch; 15 query => { bauten östlichen Bogens der Bay Bridge 04 16 query_string => { R/T bei mir zu Hause in San Francisco. 17 query => $query } } } 05 my $idx = "fs"; Auf einem Fuß- und Radweg kann ich seit 18 ); 06 19 letztem Jahr dort bis zur Mitte der neuen 07 my( $query ) = @ARGV; 20 for my $result ( Brücke laufen. 08 die "usage: $0 query" if !defined $query; 21 @{ $results->{ hits }->{ hits } } ) { 8YY`c[le^* listet die Ausgabe des Kom- 09 22 mandos »exiftags« des vom Telefon auf 10 my $es = Elasticsearch->new( ); 23 print $result->{ _source }->{ file }, den Linux-Rechner übertragenen Fotos 11 24 "\n"; auf. Fast ganz unten steht dort, dass das 12 my $results = $es->search( 25 } Bild an einer Geo-Location mit 37° 48.87’

C`jk`e^*1¾@G_fe\G`Z>\f%gd½

01 ########################################### 20 my( $head, $d, $m ) = loc_parse( 39 ########################################### 02 package IPhonePicGeo; 21 $info->{ Latitude } ); 40 my( $field ) = @_; 03 # Extract decimal GPS location from Photo 22 if( $head eq "S" ) { 41 04 # Mike Schilli, 2014 ([email protected]) 23 $d = -$d; 42 return if !defined $field; 05 ########################################### 24 } 43 44 # Latitude: N 37° 25.16' 06 use Image::EXIF; 25 my $lat = dm2decimal( $d, $m ); 45 # Longitude: W 122° 1.53' 07 use Geo::Coordinates::DecimalDegrees; 26 46 my( $head, $d, $m ) = 08 27 ( $head, $d, $m ) = loc_parse( 47 ( $field =~ /^(\w) # heading 09 ########################################### 28 $info->{ Longitude } ); 48 \s+ 10 sub photo_latlon { 29 if( $head eq "W" ) { 49 (\d+) # degrees 11 ########################################### 30 $d = -$d; 50 . # degree symbol 12 my( $pic ) = @_; 31 } 51 \s+ 13 32 my $lon = dm2decimal( $d, $m ); 52 ([\d.]+) # minutes 14 my $exif = Image::EXIF->new(); 33 53 /x ); 15 $exif->file_name( $pic ); 34 return( $lat, $lon ); 54 16 my $info = $exif->get_image_info(); 35 } 55 return( $head, $d, $m ); 17 36 56 } 18 return if !exists $info->{ Latitude }; 37 ########################################### 57 19 38 sub loc_parse { 58 1; '+&)'(+ Gif^iXdd`\i\e G\ic$JeXgj_fk

((( nnn%c`elo$dX^Xq`e%[\

8YY`c[le^)1<`eg\i`G_fe\^\jZ_fjj\e\j9`c[[\ie\l\e9Xp9i`[^\% nördlicher Breite und 122° 21.55’ westli- tive Fließkommazahl »-122.3555«. Google cher Länge geschossen wurde. Maps bestätigt in 8YY`c[le^+, dass der talentierte Fotograf beim Auslösen der Df[\ie\iJ\okXek Kamera tatsächlich in der Mitte der San Francisco Bay auf der Bay Bridge stand. Die Funktion »photo_latlon()« in C`jk`e^ Um herauszufinden, ob im Fotoalbum * liest diese Werte mit dem CPAN-Mo- mehr Bilder liegen, die in einem Umkreis dul Image::EXIF aus und rechnet sie mit von einem Kilometer aufgenommen wur- 8YY`c[le^*1;`\>GJ$;Xk\e[\j`G_fe\$=fkfjjk\$ »dm2decimal()« aus dem Modul Geo:: den, speichert »photo-index« in C`jk`e^+ _\ed`k*.—+/%/.Ëei[c`Z_\i9i\`k\le[())—)(%,,Ë Coordinates::DecimalDegrees in Fließ- alle Fotos im Verzeichnis »~/iphone« auf n\jkc`Z_\iC€e^\`d\^\e[ Property namens »Location«. Die Doku- che beziehungsweise südliche Breite, W mentation auf R.T ist in diesem Punkt oder E für westliche oder östliche Länge) Die Funktion »find()« wühlt sich auch übrigens veraltet und beschreibt ein nicht gefolgt von der numerischen Gradangabe rekursiv durch Unterverzeichnisse. Damit mehr funktionierendes Mapping. C`jk`e^ und dem in UTF-8 kodierten Gradsymbol. die Suchengine die Geodaten Abfrage- + habe ich hingegen erfolgreich mit Elas- Nach einem oder mehreren Leerzeichen performance-optimiert speichert, ist so ticsearch 1.0.0 RC2 getestet. folgt die Minutenangabe. genanntes Mapping erforderlich: Zu dem Von den gefundenen Jpeg-Bildern extra- So wird aus N 37° 48.87’ der Wert im Index »photos« verwendeten Doku- hiert Zeile 32 mit dem Modul »IPhone- »37.816« und aus W 122° 21.55’ die nega- menttyp »photo« definiert das »create()«- PicGeo« aus C`jk`e^* die Geodaten und

C`jk`e^+1¾g_fkf$`e[\o½

01 #!/usr/local/bin/perl -w 16 index => $idx, 31 my( $lat, $lon ) =

02 use strict; 17 body => { 32 IPhonePicGeo::photo_latlon( $pic );

03 use File::Find; 18 mappings => { 33 return if !defined $lat;

04 use Elasticsearch; 19 photo => { 34 35 $es->index( 05 use IPhonePicGeo; 20 properties => { 36 index => $idx, 06 21 Location => { 37 type => "photo", 07 my $idx = "photos"; 22 type => "geo_point" } } } } } 38 body => { 08 my $dir = glob "~/iphone"; 23 ); 39 file => $pic, 09 24 40 Location => [ $lat, $lon ], 10 my $es = Elasticsearch->new( ); 25 find sub { 41 }, 11 26 my $pic = $File::Find::name; 42 ); 12 eval { # Delete existing index if present 27 43 13 $es->indices->delete( index => $idx ) }; 28 return if ! -f $pic; 44 print "Added: $pic ($lat/$lon)\n"; 14 29 return if $pic !~ /.jpg$/i; 45 15 $es->indices->create( 30 46 }, $dir; '+&)'(+ Gif^iXdd`\i\e G\ic$JeXgj_fk

(() nnn%c`elo$dX^Xq`e%[\ 8YY`c[le^+1;\i>\fglebkR*.%/(-#$())%*,,,TY\]`e[\kj`Z_kXkj€Z_c`Z_Xl][\i 8YY`c[le^,1@e\`e\dB`cfd\k\iLdbi\`j]`e[\k

schiebt sie samt Dateinamen im »Body«- 40 die Applikation »eog« (Eye of Gnome) weiter und auf Stackoverflow.com beant- Teil der »index()«-Methode ab Zeile 35 in auf, die alle Treffer als Thumbnails an- worten Freiwillige offene Fragen. (jk) ■ die elastische Datenbank. zeigt (8YY`c[le^,). Durch sie darf der Nachdem die Daten aller Fotos archiviert User nun nach Herzenslust klicken. sind, sucht das Skript in C`jk`e^, Bilder, @e]fj die ich in einem Kilometer Entfernung zu B\`e\C`d`kj R(T C`jk`e^jql[`\j\d8ik`b\c1 einem auf der Kommandozeile übergebe- R]kg1&&nnn%c`elo$dX^Xq`e%[\&glY&c`jk`e^j& nen Referenzfoto geknipst habe. Hierzu Die Geofunktion ist nur eine von vie- dX^Xq`e&)'(+&'+&G\icT ermittelt es die Geodaten des Referenz- len Plugin-ähnlichen Erweiterungen des R)T;fnecfX[$J\`k\mfe€ike\iÈ1R_kkg1&&nnn%c`elo$dX^Xq`e%[\& ßend ruft die »system()«-Funktion in Zeile Aber das Tutorial R0T hilft gewissenhaft 8lj^XY\e&)''.&'*&;\i$Df\i[\i$`jk$ e`dd\i$[\i$>X\ike\iT C`jk`e^,1¾g_fkf$^gj$dXkZ_½ R.T \f;`jkXeZ\=`ck\i1 01 #!/usr/local/bin/perl -w 21 match_all => {}, R_kkg1&&nnn%\cXjk`Zj\XiZ_%fi^&^l`[\& 02 use strict; 22 }, \e&\cXjk`Zj\XiZ_&i\]\i\eZ\&Zlii\ek& 03 use Elasticsearch; 23 filter => { hl\ip$[jc$^\f$[`jkXeZ\$]`ck\i%_kdcT 04 use IPhonePicGeo; 24 geo_distance => { R/TD`Z_X\cJZ_`cc`#Ù;`\e\l\9Xp9i`[^\•Y\i 05 25 distance => "1km", [`\JXe=iXeZ`jZf9Xp`jk\e[c`Z_]\ik`^È1 06 my $idx = "photos"; 26 "Location" => [ $lat, $lon ], R_kkg1&&ljXile[Yi`\]%Zfd&('*&g(%_kdcT 07 27 } R0Tnew( ); 34 for my $result ( PX_ff `e JleepmXc\# BXc`$ 15 35 @{ $results->{ hits }->{ hits } } ) { ]fie`\e%@ej\`e\ij\`k(00. 16 my $results = $es->search( 36 push @files, cXl]\e[\eBfclde\]fijZ_k 17 index => $idx, 37 $result->{ _source }->{ file }; \ia\[\eDfeXkeXZ_giXb$ 18 size => 100, 38 } k`jZ_\e 8en\e[le^\e [\i Jbi`gkjgiXZ_\ G\ic% 19 body => { 39 Lek\i RdjZ_`cc`7g\icd\`jk\i%ZfdT Y\Xeknfik\k 20 query => { 40 system "eog", @files; \i^\ie\=iX^\e%

'+&)'(+ PROFI

J\im`Z\ MARKT

Sie fragen sich, wo Sie maßgeschnei- Hardware, Software, Seminaranbieter, derte Linux-Systeme und kompetente Systemhaus, Netzwerk/TK und Schu- @e]fidXk`fe\e Ansprechpartner zu Open-Source-The- lung/Beratung. Der IT-Profimarkt-Ein- ]fi[\ieJ`\Y`kk\XeY\`1 @K$Gif]`dXibk men finden? Der IT-Profimarkt weist Ih- trag ist ein Service von Linux-Magazin D\[`Xc`eo8> nen als zuverlässiges Nachschlagewerk und LinuxUser. 8eq\`^\eXYk\`cle^ ((+ den Weg. Die hier gelisteten Unterneh- men beschäftigen Experten auf ihrem Fec`e\$JlZ_\ GlkqYilee\iJki%.( Gebiet und bieten hochwertige Produkte ;$/(.*0D•eZ_\e und Leistungen. Besonders bequem finden Sie einen K\c%1"+0 ' /0&00*+(($)*

nnn%c`elo$dX^Xq`e%[\ Die exakten Angebote jeder Firma ent- Linux-Anbieter in Ihrer Nähe über die =Xo1"+0 ' /0&00*+(($00 nehmen Sie deren Homepage. Der er- neue Online-Umkreis-Suche unter: <$DX`c1Xeq\`^\e7c`elo$dX^Xq`e%[\ sten Orientierung dienen die Kategorien R_kkg1&&nnn%`k$gif]`dXibk%[\T

 (4?Xi[nXi\  )4E\kqn\ib&KB  *4Jpjk\d_Xlj @K$Gif]`dXibkÆC`jk\jfik`\ikeXZ_Gfjkc\`kqX_c    +4=XZ_c`k\iXkli   +4J\d`eXiXeY`\k\i  ,4Jf]knXi\  ,4Jf]knXi\  -4JZ_lcle^&9\iXkle^  -49\iXkle^ =`idX 8ejZ_i`]k K\c\]fe N\Y ( ) * + , - JZ_c`kk\idXee`ek\ie\kle`ojlggfik '('00;i\j[\e#KXee\ejki%) '*,($/')00/$( nnn%jZ_c`kk\idXee%[\ ¹ ¹ ¹ ¹ `dle`oo>dY?LE@OZfejlckXekj '(+-/Dfi`kqYli^#?\`ei`Z_$?\`e\$Jki%+ '*,($/*0.,$' nnn%`dle`oo%[\ ¹ ¹ ¹ ¹ ¹ ?\`ec\`eJlggfik>dY? ('((09\ic`e#JZ_n\[k\iJkiX\/&0Y '*'$+',',($' nnn%_\`ec\`e$jlggfik%[\ ¹¹¹¹¹ KLOD8E:fdglk\i ('*-09\ic`e#8ekfe$JX\]bfn$GcXkq/ '*'$0.-'0..* nnn%klodXe%[\ ¹ ¹ ¹ ¹ ¹ :fdgXjf>dY? ('+*09\ic`e#;i`\j\e\iJkiXjj\)* '*'$*)-0**' nnn%ZfdgXjf%[\ ¹ ¹ ¹ ¹ ¹ \c\^fJf]knXi\Jfclk`fej>dY? (**,,9\ic`e#>ljkXm$D\p\i$8cc\\), '*'$)*+,/-0$- nnn%\c\^fjf]k%Zfd ¹¹¹¹ m\i`fe>dY? (-)++8ck\e_f]#Lek\i[\e9lZ_\e))\ '***-*$+-('$' nnn%m\i`fe%[\ ¹ ¹ ¹ Cf^`ZNXp>dY? (0'-(JZ_n\i`e#?X^\efn\iJki%.* '*/,$*00*+$+/ nnn%cf^`ZnXp%[\ ¹ ¹ ¹ ¹ JpYlZX>dY? )'+,0?XdYli^#?\ii\e^iXY\e)- '+'$)./-*(0' nnn%jpYlZX%[\ ¹¹¹ ¹¹ AdY? *'(-0?Xeefm\i# ',(($()*,00$' nnn%kXc`Zfd%[\ ¹ ¹ ¹ ¹ ¹ :Xc\eY\i^\idY? **-')9`\c\]\c[#E`\[\ejki%)- ',)($0--/-$' nnn%k\lkf%e\k ¹ ¹ ¹ ¹ ¹ C@EdY? */((/9iXlejZ_n\`^#:pi`Xbji`e^('X ',*($(/','/$' nnn%c`e\k$j\im`Z\j%[\ ¹¹¹¹¹¹ Fg\e@K>dY? +',00;•jj\c[fi]#@e[\iJk\\c\**X$+( ')(($)*0,..$' nnn%Fg\e@K%[\ ¹ ¹ ¹ ¹ ¹ C`elo$Jpjk\d\>dY? +,)..dY? +,).0dY? +0'.+FjeXYi•Zb#E\l\i>iXY\e(. ',+($**,'/$*' `ek\mXk`fe%[\ ¹ ¹ ¹ ¹ l`Y^dY_ ,,((/DX`eq#9fe`]Xq`ljgcXkq(Y '-(*($).,-($' nnn%l`Y%[\ ¹¹¹¹ C@J8>dY? ,,+((9`e^\e#FE@:LJ>dY? ,0.,,8iejY\i^#Df\_e\jki%,, ')0*)$0(-' nnn%^fe`Zlj%Zfd ¹¹¹¹¹ jXm\@G>dY? -+)/*;XidjkX[k#JXXcYXljki%/$(' '-(,($---)-- nnn%jXm\`g%[\ ¹¹¹ ¹¹ C`elo?XljJklkk^Xik .',-,Jklkk^Xik# '.(($)/,(0', nnn%c`elo_Xlj%[\ ¹ ¹ ¹ ¹ ¹ ?\jj\en`\j\ejkiXjj\(' DXe]i\[?\lYXZ_<;Mle[ .*.)/\n€_i%  J%((- J\d`eXi\

UNIX-C-C++ Java IT- Mit Experten lernen. MEDIALINX Seminare IT-ACADEMY in Nürnberg (oder inhouse) UNIX/Linux – die offiziellen Trainings UNIX/Linux-Aufbau C, C-Aufbau C++ mit Marco Welter, OOA/OOD (mit UML) Zarafa Deutschland GmbH Java Perl, XML Zarafa Administrator weitere Kurse auf Anfrage, Telephonhotline 249 € Dipl.-Ing. Zarafa Engineer Christoph Stockmayer GmbH 249 € 4DIXBJH/CHt%SFJIÚIFOTUSB•F 5FMt'BY EMail: [email protected] www.medialinx-academy.de http://www.stockmayer.de

          



   



  













IT- MEDIALINX IT- MEDIALINX      Mit Experten lernen. Mit Experten lernen. IT-ACADEMY IT-ACADEMY  $ %                 !      E IMA -  "       #  $  D  . %#$!/01!$ %#$!/ #2- 34#!! 5/ 4! mit Peer Heinlein, mit Rainer Grimm,      &   '&  Heinlein Support GmbH science + computing AG     ( 249 € 199 €      Vereinfachen Sie Ihren Sysadmin-Alltag   C25 mit Skripting-Know-How für Profis!  !"#$## %& '(()*+, -'(()*+( www.medialinx-academy.de www.medialinx-academy.de   

IT- MEDIALINX IT- MEDIALINX IT- MEDIALINX Mit Experten lernen. IT-ACADEMY Mit Experten lernen. IT-ACADEMY Mit Experten lernen. IT-ACADEMY

E A- C T das offizielle Training mit Klaus Knopper, Gründer der mit Philipp Hahn, mit Achim Ledermüller, Knoppix-Distribution, Univention GmbH Netways GmbH KNOPPER.NET 299 € 299 € 199 € NETWAYS ® Automatisieren Sie komplexe Aufgaben mit Hilfe effizienter Skripte! www.medialinx-academy.de www.medialinx-academy.de www.medialinx-academy.de @K$Gif]`dXibk&DXibk '+&)'(+ J\im`Z\

@K$Gif]`dXibkÆC`jk\jfik`\ikeXZ_Gfjkc\`kqX_c =fikj\kqle^mfeJ%((+ =`idX 8ejZ_i`]k K\c\]fe N\Y ( ) * + , - `e$glk;XjC`elo$Jpjk\d_Xlj .-(**BXicjil_\#Dfckb\jki%+0 '.)($-/'*)//$' nnn%`e$glk%[\ ¹¹¹¹¹¹ DXibk 9f[\ej\f ./))+J`e^\e#Gfd\q`Xjki%0 '..*($(+.-()' nnn%Yf[\ej\f%[\ ¹¹¹ @K$Gif]`dXibk C`elo@e]fidXk`feJpjk\dj8> /(.*0D•eZ_\e#GlkqYilee\ijki%.( '/0$00*+()$' nnn%c`elo$X^%Zfd ¹ ¹ ¹ ¹ ¹

((- C`eloCXe[@ek\ieXk`feXc>dY? /(.*0D•eZ_\e#GlkqYilee\ijki%.( '/0$00*+(++( nnn%c`elocXe[%[\ ¹¹¹¹¹¹ Jpe\i^pJpjk\dj>dY? /(/)0D•eZ_\e#BfeiX[$Qlj\$GcXkq/ '/0$/0'/','' nnn%jpe\i^pjpjk\dj%[\ ¹ ¹ ¹ ¹ ¹ 9(Jpjk\dj>dY? /,'//Mf_Yli^#Fjk\i]\c[jkiXjj\. '/+,.$0*('0- nnn%Y($jpjk\dj%[\ ¹¹¹¹¹ 8K@O8> /,.(-Lek\ijZ_c\`_\`d#<`ejk\`ejki%(' '/0$+,)*,*/$' nnn%Xk`o%[\ ¹¹¹¹¹¹ nnn%c`elo$dX^Xq`e%[\ Klo\[f:fdglk\ij>dY? /-*+*Be`^jYilee#Q\gg\c`ejki%* '0)($(-+0/./.$' nnn%c`elo$fec`e\j_fg%[\ ¹ ¹ ¹ ¹ FJK:Fg\eJfliZ\KiX`e`e^Xe[ 0'+),E•ieY\i^# '0(($*+.+,++ nnn%fjkZ%[\ ¹¹¹¹¹¹ :fejlck`e^>dY? NXc[\dXi$Bc`eb$Jki%(' ;`gc%$@e^%:_i`jkfg_JkfZbdXp\i>dY? 0',.(JZ_nX`^#;i\`__\ejki%( '0(($,',)+( nnn%jkfZbdXp\i%[\ ¹ ¹ ¹ gXjZfd$E\kqn\ibk\Z_e`b>dY? 0++-0;\^^\e[fi]#9\i^\iJki%+) '00($).''-' nnn%gXjZfd%e\k ¹ ¹ ¹ ¹ ¹ :f%B> I\XcJkl]]@e]fidXk`b8> :?$*''.9\ie#:_lkq\ejkiXjj\)+ ''+($*($*/)++++ nnn%i\Xcjkl]]%Z_ ¹ ¹ ¹ :8K8K<: :?$*'(*9\ie#;Xddn\^+* ''+($*($**')-*' nnn%ZXkXk\Z%Z_ ¹ ¹ ¹ JpjZfeJpjk\dY\iXkle^j8> :?$/''*Q•i`Z_#Qn\`\ijkiXjj\()0 ''+($++$+,+)'(' nnn%jpjZfe%Z_ ¹ ¹ ¹ ¹ ¹ N•ik_G_f\e`o>dY? @K$*0(''9fq\e#BiXmf^cjkiX\+ ''*0'+.(,-+((( nnn%nl\ik_$g_f\e`o%Zfd ¹ ¹ ¹ ¹ @K$Gif]`dXibkc`jk\kXljjZ_c`\c`Z_Lek\ie\_d\e#[`\C\`jkle^\eile[ldC`eloY`\k\e%8cc\8e^XY\ef_e\>\n€_i% ■      

              !" ! # " " $ "  % & "'  " (  ) " *& " +

  !"#

       

()' J\im`Z\ nnn%c`elo$dX^Xq`e%[\ @ej\i\ek\e '+&)'(+ _kkg1&&nnn%]cX^^d^dk%Zfd&c`elo& E\nPfib#EP#LJ8 )'(+ ?`^_G\i]fidXeZ\:fdglk`e^C`elo]fiNXccJki\\k '.%'+%)'(+ _kkg1&&nnn%c`elokX^\%Xk /')'>iXq#{jk\ii\`Z_ 8ck\GfjkjkiX\(+0 =?AfXee\ld >iXq\iC`elo$KX^\)'(* '+%$',%'+%)'(+ _kkg1&&c`Yi\^iXg_`Zjd\\k`e^%fi^&)'(+& Le`m\ij`k€kC\`gq`^ C`Yi\>iXg_`ZjD\\k`e^)'(+ ')%$',%'+%)'(+ _kkgj1&&nnn%lj\e`o%fi^&Zfe]\i\eZ\&ej[`(+ J\Xkkc\#N8#LJ8 LJGLK\Z_efcf^p:fe]\i\eZ\ >K: )+%$).%'*%)'(+ _kkg1&&nnn%cl^X%[\&8bk`fe\e&C@K$)'(+& ?fZ_jZ_lc\8l^jYli^ (*%8l^jYli^\iC`elo$@e]f$KX^ ))%'*%)'(+ _kkg1&&Z_\de`kq\i%c`elo$kX^\%[\&)'(+& Le`m\ij`k€k:_\de`kq :_\de`kq\iC`elo$KX^\)'(+ (,%$(-%'*%)'(+ _kkg1&&nnn%c`eXif%fi^&Zfee\Zk$cZX(+ DXZXl#:_`eX C`eXif:fee\Zk8j`X '*%$'.%'*%)'(+ M\iXejkXckle^\e ;@_k1&nnXded^qe[,. _kkg1&&nnn%X[d`e$dX^Xq`e%[\ 8;D@E ei`ji>_k1&nnX[f[l\%\ ((/ _kkg1&&nnn%Xe[if`[$lj\i%[\ 8e[if`[Lj\i>P 8;EKdY? \:e_k1&[Yf]*[Yf]f^). _kkg1&&[\YZfe](*%[\YZfe]%fi^ ;\Y:fe] \g`:dl`X`e_k1&nn[c_$f%\((0 _kkg1&&nnn%[\cg_`$Zfd%[\ ;\cg_`:fddle`ZXk`fej d\[[gf\kd? kg&n%d\[[gf\k%\((. _kkg1&&nnn%\dY\[[\[$gifa\Zkj%e\k \dY\[[\[gifa\Zkj>dY? \eZl\NYi>Y_k1&nn]ij_c$\\%\ ((, _kkg1&&nnn%]\iejZ_lc\$n\Y\i%[\ =\iejZ_lc\N\Y\i>dY? @GD^qe kg&n%`gd^qe[0( _kkg1&&nnn%^`dg$dX^Xq`e%[\ >@DG$DX^Xq`e iqiCeoK^&f=FEiXq\iC`elo$KX^\Z&f=?AF8EEY_k1&nn_`c`$lgi%\ *.#,( _kkg1&&nnn%_\`ec\`e$jlggfik%[\ ?\`ec\`eJlggfik>dY? fk<\`e>Y_k1&nn_jek[ ) _kkg1&&nnn%_fjke\k%[\ _fjkEdY? ZefX`\:dl\d? kg&n%Z%\ +. _kkg1&&nnn%`Zf%[\ @Zf@eefmXk`m\:fdglk\i>dY? `l$XX`_kkg1&&nnn%c`elo$dX^Xq`e%[\(,#,0#-, C`elo$DX^Xq`e `l$XX`e`\ kg&n%`l$XX`%\ ('0 _kkg1&&nnn%c`elo$dX^Xq`e%[\ C`elo$DX^Xq`eFec`e\ `l_kc kg&n%`l_kc[0 _kkg1&&nnn%c`elo_fk\c%[\ C`elo_fk\c `lL\_k1&nnceoji[0' _kkg1&&nnn%c`elolj\i%[\ C`eloLj\i \`ceK8X\p kg&n%\`ce$Z[d%\ 0*# _kkg1&&nnn%d\[`Xc`eo$XZX[\dp%[\ D\[`Xc`eo@K$8ZX[\dp ('(#((, ()+ _kkg1&&nnn%d`kknXc[%[\ D`kknXc[:DJ\im`Z\>dY?:f%B>  \npd? kg&n%\np%\ -( _kkg1&&nnn%e\knXpj%[\ E\knXpj>dY? @ej\i\ek\em\iq\`Z_e`j          g&n%X_j%\ *, kg1&&nnn%ZXe_fjk%[\ C`elo=\jkEfik_n\jk)'(+ )-%$).%'+%)'(+ _kkgj1&&Zfe]\i\eZ\%fg\ejlj\%fi^ ;lYifme`b#BifXk`\e Fg\eJlj\:fe]\i\eZ\)'(+ )+%$)/%'+%)'(+ _kkg1&&jXdYXog%fi^ >kk`e^\e JXdYX\OG\i`\eZ\)'(+ (*%$(-%',%)'(+ _kkg1&&nnn%_\`ec\`e$jlggfik%[\&jcXZ 9\ic`e ?\`ec\`e (*%$(+%',%)'(+ _kkg1&&nnn%_\`ec\`e$jlggfik%[\&dX`cj\im\i$bfe]\i\eq 9\ic`e ?\`ec\`eDX`cj\im\i$Bfe]\i\eq)'(+ ()%',%)'(+ _kkg1&&nnn%c`elokX^%fi^ 9\ic`e C`elokX^)'(+ '/%$('%',%)'(+ _kkg1&&nnn%\lifg\Xe$c`jg$jpdgfj`ld%fi^ GXi`j kg&n%`\Z((. _kkg1&&nnn%e`e\%Z_ E`e\@ek\ie\kJfclk`fej8> Ë\cpMiXd?:> kg&n%i`c%\ (* _kkg1&&nnn%fi\`ccp%[\ FËI\`ccpM\icX^>dY?:fB> i%KX\_d`qiCeoK^_kkg1&&Z_\de`kq\i%c`elo$kX^ Fi^%$K\Xd[\i:_\de`kq\iC`elo$KX^\ \^kf`%% kg&n%\^kf`%\ ((. _kkg1&&nnn%g\e^lkife`o%[\ G\e^lkife`o\%B% cj\mi8_k1&nnglji\%\ ),#,,#.(# _kkg1&&nnn%gcljj\im\i%[\ GcljJ\im\i8> /0#('.#((* +, _kkg1&&nnn%iXjgY\iip$g`$^\\b%[\ IXjgY\iipG`>\\b  Zck\dee\ekl`lgi_kkg1&&jZ_c`kk\idXee%[\ JZ_c`kk\idXee`ek\ie\kle`ojlggfik Zlq\b kg&n%Zlq\bZd -0 _kkg1&&nnn%jZ_lkqn\ib%Zfd JZ_lkqn\ib ge\\^KXeefjc`^ kg&n%ge\\^Zd ((, _kkg1&&nnn%jg\ee\Y\i^%Zfd Jg\ee\Y\i^KiX`e`e^:fejlck`e^ kZdpi>Y_k1&nnjfbX\%\ ((, _kkg1&&nnn%jkfZbdXp\i%[\ JkfZbdXp\i>dY? kXf8_k1&nnjik%\ (( _kkg1&&nnn%jkiXkf%[\ JkiXkf8> < l\f:dl\j>Y_k1&nnceofcejf%\ ()* _kkg1&&nnn%c`elo$fec`e\j_fg%[\ Klo\[f:fdglk\ij>dY? \kf`_k1&nnnYigXZd)0#*( _kkg1&&nnn%n\Ykifg`X%Zfd N\Ykifg`X ?%cYc)(_k1&nnni[fke[p%f(. _kkg1&&nnn%nfic[_fjk`e^[Xpj%Zfd N?;%^cfYXc)'(* 9\XZ_kle^% >dY? _kkg1&&nnn%\ekn`Zbc\i%Zfd Y\`%N`iY`kk\elej\i\C\j\i [\ le[G:Gif[lZkj _kkg1&&nnn%gZ$gif[lZkj%[\ le[Jf]knXi\ _XZbXkkXZb%Zfd le[D`kknXc[:DJ\im`Z\>dY?:f%B> _kkg1&& _kkg1&&nnn%\lifjkfi%Zfd le[?8:B8KK8:B@KJ<:LI@KP>dY? _k <`e\dK\`c[`\j\i8lj^XY\c`\^\e9\`cX^\e[\i=`id\e\jZ_€]kjY\i\`Z_[\iD\[`Xc`eo8> Ef$D\[`X$8lj^XY\ -#+' .#', J]i()#/' j`\_\K`k\c  I\[Xbk`fejXejZ_i`]k GlkqYilee\iJki%.( ;$;M;$8lj^XY\ /#,' 0#*, J]i(.#Ç j`\_\K`k\c  AX_i\j$;M; <`eq\cgi\`j  (+#0, (+#0, J]i(/#0' (+#0, /(.*0D•eZ_\e AX_i\j$;M; qld8Yf(  -#.' -#.' J]i/#,' -#.' 

K\c%1'/0&00*+(($' D`e`$8Yf *8lj^XY\e  *#Ç *#Ç J]i+#,' *#Ç  J\im`Z\ =Xo1'/0&00*+(($00f[\i$0- AX_i\jXYfEfD\[`X -,#)' .(#0' J]i('.#,' /+#-' @ek\ie\k nnn%c`elo$dX^Xq`e%[\ AX_i\jXYf;$;M; /.#0' 0-#0' J]i(+)#/' 00#0' <$DX`c i\[Xbk`fe7c`elo$dX^Xq`e%[\ Gi\`j\;`^`kXc ;\lkjZ_cXe[ {jk\ii\`Z_ JZ_n\`q 8ljcXe[\jZ_€]kjc\`kle^ 9i`XeFjYfie MfijkXe[ #YfjYfie7d\[`Xc`eo$^ilgg\%[\ ;`^`JlY qldGi`ekXYf  ()#Ç ()#Ç J]i()#Ç ()#Ç  ?\idXeeGcXeb MfijkXe[ #_gcXeb7d\[`Xc`eo$^ilgg\%[\ ?KDC$8iZ_`m qld8Yf(  ()#Ç ()#Ç J]i()#Ç ()#Ç @dgi\jjld Gi\`j\BfdY`XYfj ;\lkjZ_cXe[ {jk\ii\`Z_ JZ_n\`q 8ljcXe[$D`k^c`\[jZ_X]k dfeXkc% DXk_`Xj?lY\i#d_lY\i7c`elo$dX^Xq`e%[\ d_l ;$;M;  I\[Xbk`fejck^%Fec`e\ DXk_`Xj?lY\i#d_lY\i7c`elo$dX^Xq`e%[\ d_l *d`k8;D@E$8Yfle[Y\`[\eAX_i\j$;M;j JZ_•c\i$le[Jkl[\ek\e\id€`^le^1)'Gifq\ek^\^\eMficX^\\`e\jJZ_•c\iXljn\`j\j Gi`ek$le[Fec`e\i\[Xbk`fe f[\i \`e\i Xbkl\cc\e @ddXki`blcXk`fejY\jZ_\`e`^le^% ;\i Xbkl\cc\ EXZ_n\`j `jk Y\` M\ic€e^\ile^e\l ql \iYi`e^\e% 8e[\i\ 8Yf$=fid\e#

8bkl\cc#=fild#Jf]knXi\# Bi`jk`XeB`jjc`e^#bb`jjc`e^7c`elo$dX^Xq`e%[\ bb` nnn%c`elo$dX^Xq`e%[\ Gif^iXdd`\ile^ DXk_`Xj?lY\i#d_lY\i7c`elo$dX^Xq`e%[\ d_l  Xl]8e]iX^\% 8[i\jj€e[\ile^\eY`kk\ld^\_\e[d`kk\`c\e#[XEXZ_j\e[\Xl]ki€^\Y\`[\iGfjke`Z_k JpjX[d`e#Befn$_fn DXiblj=\`ce\i#d]\`ce\i7c`elo$dX^Xq`e%[\ d]\ ]•iQ\`kjZ_i`]k\e^\ck\e% Jk€e[`^\D`kXiY\`k\i QXZb9ifne#D\cXiX]`b D`b\>Xa\i =Xo1"+0 ' /0&00*+((Æ00 D`Z_X\cJ\`k\i#dj\`k\i7c`elo$dX^Xq`e%[\ o_fZ_+#D•eZ_\e K`k\c$@ccljkiXk`fe  K\c%1"+0 ' /0&00*+((Æ)* 9`c[eXZ_n\`j ()*I=%Zfd#=fkfc`X%[\#G_fkfZXj\%Zfd#G`o\c`f%[\le[Xe[\i\ D\[`XY\iXkle^LJ8 8eeA\jj\#Xa\jj\7c`elo$dX^Xq`e\%Zfd ;$;M; K_fdXjC\`Z_k\ejk\ie#kc\`Z_k\ejk\ie7c`elo$dX^Xq`e%[\ kc\ le[n\`k\i\C€e[\i K\c%1"(./,/+(//*+ ;XiiX_9li\e#[Yli\e7c`elo$dX^Xq`e\%Zfd :_\]i\[Xbk`fe\e C`eloDX^Xq`e\@ek\ieXk`feXc K\c%1"(./,/,-*'/) @ek\ieXk`feXcAf\:XjX[ aZXjX[7c`elo$dX^Xq`e\%Zfd    dY?:f%B> F_djkiX\(#/,.(-Lek\ijZ_c\`_\`d C`eloDX^Xq`e\JgX`e K\c%1'/0&*(0'-$'#=Xo1'/0&*(0'-$((* GXlc:%9ifne gYifne7c`elo$dX^Xq`e\%\j  C`eloDX^Xq`e\9iXj`c ;ilZb Mf^\c;ilZb>dY?#0.)'+?Z_Y\i^ IX]X\cG\i\^i`ef ig\i\^i`ef7c`elodX^Xq`e\%Zfd%Yi  ;\i9\^i`]]Le`on`i[`e[`\j\iJZ_i\`Yn\`j\Xcj^\e\i\cc\9\q\`Z_ele^]•i[`\Le`o$ €_ec`Z_\e9\ki`\Yjjpjk\d\m\ijZ_`\[\e\i?\ijk\cc\iY\elkqk%C`elo`jk\`e^\kiX^\e\j Gif[lbk`fe :_i`jk`XeLcci`Z_#Zlcci`Z_7c`elo$dX^Xq`e%[\ DXib\eq\`Z_\emfeC`elj KfimXc[jle[n`i[`e lej\i\d DXib\eeXd\ed`k j\`e\i dY? \`e^\jXe[k\DXeljbi`gk\bXeeb\`e\?X]kle^•Y\iefdd\en\i[\e% >l[ile9cXeq K\Xdc\`kle^ ;Xj\e\_d`^le^[\jM\icX^j`e `i^\e[\`e\i=fidm\im`\c]€ck`^kf[\im\iYi\`k\kn\i[\e% K\c%1"+0$ ' .(*($).'.$).+ =Xo1"+0$ ' .(*($).'.$./$-'( :fgpi`^_kŸ(00+Æ)'(+D\[`Xc`eo8>

Bipgkf$@e]f 8lkfi\e[`\j\i8lj^XY\

>elG>$JZ_c•jj\c[\iC`elo$DX^Xq`e$I\[Xbk`fe1 QXZb9ifne QXZbjB\ie\c$E\nj )' glY(')+;&++='=)9*)'''$',$'/I\[Xbk`feC`elo$DX^Xq`e D\cXi`dd :""(("*4:""(+ (') GlYc`Z$B\p[\i;=E$G:81 BcXljBefgg\i <`eJk`ZbXe[\ij ,' glY)'+/I&.)/)9)+,)''.$()$()# G$G:8#:G$Gfc`Zp1)''/$)''0  DXiZBie\i 8cc\j`d=cljj *) 3_kkgj1&&nnn%gb`%[]e%[\&g^g5 :_XicpB•_eXjk ;`\d`k[\eI•jj\ce ., B\p]`e^\igi`ek4*0;0;..=0/8/=((9)--9;/=)<</=99,8 DXik`eCfjZ_n`kq Elimfi\ijk\`e\E`jZ_\ +' G>G$Q\ik`]`bXk[\i;=E$Lj\i$:81 glY)'+/I&-*-)9G$Lj\i$:8#:G$Gfc`Zp1)''/$)''0  :_i`jkfg_\i;\E`Zfcf ?X]kle^j]iX^\e /+ 3_kkgj1&&nnn%gb`%[]e%[\&g^g5 A•i^\eHlX[\ B\ie$K\Z_e`b 0) B\p]`e^\igi`ek4*'0-+...,/+/)):,/0)8/,(008;(;+'- D`Z_X\cJZ_`cc` G>$JZ_c•jj\c[\i:8Z\ik1 AXeJk\g`\e N\Y]lebk`feXc 0- glY(')+;&-,;'=;,/)''*$'.$((R\og`i\j1)'**$'.$'*T B\p]`e^\igi`ek48*(;+=/(<=+<9;'.9+,-=8'+;)99';'(-,;'=;,/ Ln\MfccYiXZ_k Kffck`ggj .) l`[:8:\ikJ`^e`e^8lk_fi`kp Iffk:8 3^g^7ZXZ\ik%fi^5 G_`c`gN\kk\ JXe[bXjk\ejg`\c\ +- ()) J\im`Z\ nnn%c`elo$dX^Xq`e%[\ MfijZ_Xl',&)'(+MfijZ_Xl')&)'(* '+&)'(+'(&)'(* Ÿ>fbfifbf#joZ%_l MfijZ_Xl wer diebesteFlexibilität andenTag legt. stiegshürden besonders niedrigliegen,aberandererseits auch, einander. DasZielistherauszufinden, wo einerseits dieEin- barer Einsteiger-Szenarienfreie Monitoring-Lösungen gegen- Der nächsteMagazin-Schwerpunkt testetanhandüberschau- ist dennjetztwiederlos?!“-ErlebnissezurSeltenheitmacht. nere FirmenlohnteinganzheitlichesMonitoring,daes„Was shop ausgefallenist,merken nurdieKunden …Schonfürklei- vor Tagen festgefressene Lüfter, dassseitMitternachtderWeb- Erfahrungen sein:Überraschend vollgelaufene Volumes, schon ernsthaft monitoren, werden schonreich anunangenehmen Firmen, dieihre echtenundvirtuellenServer bislang nicht Dfe`kfi`e^]•i8e]€e^\i ;XZ_q\`c\ ŸnXkZ_XiXifaaXeXjX`e#()*I=%Zfd ;`\e€Z_jk\8lj^XY\\ijZ_\`ekXd)'%D€iq ',&)'(+ Xl]'+&)'(+ MfijZ_Xl |Y\i für ZeitangabenunddieRich-Client-BibliothekJava FX. Linux-Magazin demonstriertLambdas, Streams, dasneueAPI Neuerungen inSyntax undStandardbibliothek. Das nächste Die jüngsteVersion 8derProgrammiersprache Java bringt 8Z_k\@ej\cXl]^\kXlZ_k out unddieVersion 12.Dalohntes, genauerhinzuschauen. gen keine. Ende 2013 gabesplötzlicheinenManagementBuy- 2011 dannSebringSoftware. NeueVersionen erschienen dage- früheren HPOpenMail.2007 übernahmXandros dieFirma, 2003 beganndieScalixCorporation miteigenenArbeitenam N\Z_j\cmfcc\>iflgnXi\1JZXc`o verspricht. MitJollagibtesaucheinepassendeHardware. gegenüber demJava, HTML5oderJavascript anderer Systeme Apps sindnative Programme, was einenPerformancegewinn raus. ÜberdenLinux-Kern liegteinQt5,darauf aufsetzende nach demepisodenhaften„Mer“rappelt sichSailfishOShe- Aus denRuinen von NokiasMeego-Ableger„Harmattan“und JX`c]`j_FJXl]AfccX geduldig –undso machenwirdenPraxistest. faches ArbeitenmitdemMultimediamaterial. AberPapier ist nun istsieda:DerVideoeditor Lightworks 11.5 verspricht ein- Monat ummusstenwir aufdieneueVersion warten, M`[\fjZ_e`kkd`kC`^_knfibj ohne GrundgibteskritischeStimmen. Die Ideeistclever unddasKonzept bestechend, abernicht das neueInit-System dieKontrolle überdasgesamteSystem. Wenn esnachdenEntwicklerndesSystemd ginge, übernähme Jpjk\d[Æ[`\e\l\D`kk\ zialisten füralleFälle. reicht vom abgespecktenMini-System bis zumMultiboot-Spe- zu einemstimmigenGesamtkonzept zusammenzustellen.Das freier Software habenSiedieFreiheit, sichdieKomponenten System. Daspielt sich vieleAnwender einschlankes undoptimalabgestimmtes Für denEinsatzvon LinuxaufeinemmobilenGerätwünschen C`elo]•i[\edfY`c\e<`ejXkq \ijZ_\`ekXd*%8gi`c)'(+ ;`\8lj^XY\',&)'(+ Linux klarseineVorteile aus, dennnurmit jZ_i`]k