Archive for category Linux

What Windows has really lacked

Hear, hear!

“What Windows has really lacked, besides pervasive and effective security controls, of course, is an emotional attachment with users. Unlike rival computing platforms such as Linux and the Mac, there aren’t fanatical groups of Windows enthusiasts roaming the Internet and striking down non-believers with unnecessary religious zeal and bias. In fact, if you think about it, the closest we have to that scenario in the Windows world are guys like me, and I couldn’t care less if you choose not to run Windows. Instead, Windows guys tend to be more pragmatic than Linux and Mac fanatics. First, we’re not fanatics, and while I can’t speak for the rest of the community, I completely understand why someone might want to run Mac OS X, and I’d never ridicule them for making that choice.”



pirates ho?

Who said that:


She’s good to go, hoist anchor! Here’s some real booty for all you land-lubbers.

There’s not too many changes, with t’bulk of the patch bein’ defconfig updates, but the shortlog at the aft of this here email describes the details if you care, you scurvy dogs.”

Yeah, you’re right… it’s teh linus…well… go here and take a look … it’s the guy in the middle..


No Comments

KDE on MacOS X

Well nice description what this could do:

“They may not work. They may not even install. They may make your monitor explode in a shower of glass. EVEN LCDs! They may make your children grow horns, and cause the people in your neighborhood to explode spontaneously while doing the Macarena. They will rip out your eyeballs, and eat your soul with a really dull spoon, laughing and cackling while forcing Cheerios up your nose. They will make your intestines explode in a rain of confetti, while evil clowns bite your feet.”

But what it really will do is slightly different:


No Comments

Thinstuff releases RDP Server…for Linux’n’stuff

Thinstuff released it’s RDP Server version 1.0 recently. Some of the features:

  • RDP server for Linux
    • RLE compression
    • RDP protocol compression
    • Data encryption
    • Client selected resolutions and bits per pixel
    • Fullscreen mode
    • RDP Bitmap Cache
    • RDP Orders
    • Compatible Clients: RDP 5.0, 5.1, 5.2, Windows CE, rdesktop
  • Optimized for many kinds of X11 applications for optimal performance
  • Change resolution while clients are connected
  • Very low bandwidth consumption
  • Shadowing support to view a session multiple times
  • Terminal Server
    • Database or passwd/shadow user management
    • Passwd/shadow or PAM authentication
    • Management through Java Client
    • Authentication by specifying username and password in the RDP client or at a login window within the RDP session

Obviously the RDP server is a X Server on the linux side with a RDP interface to the rest of the world…very cool indeed. As soon as I have some time I’ll give it a try…


No Comments

a ready to go VMware Image for MONO…

The Mono team (well, Novell) created a mono-development-environment-in-a-box as an VMware Image. You can grab it at the source.

“The image is a SUSE Linux Enterprise Desktop 10, and it includes the latest version of Mono, the development tools, documentation and samples for Windows.Forms and ASP.NET.

The MonoDevelop IDE is included in the image for developers, and Postgress and MySQL are installed to test your application with a database.”

I’ve made some screenshots:

explore the WinForms implementation of mono

Source: Mono VMware Image

No Comments

browse the web with the iLiad

The iRex iLiad e-ink e-book reader is such a fantastic device, a friend of mine is willing to put the >600 euro down to get one. And if he reads this, he’ll be even more motivated to bite the bullet:

“From the factory, the Iliad only uses and maintains Internet connectivity for a very short time and for one specific purpose; to connect to the Rex site. Some enterprising device owners put a little hack together with a PDF file and some http for an address bar and they’re now surfing the web as long they like on the Iliad.”


1 Comment

IIS6 and Apache syscall graph

SanaSecurity created these two graphics:

Apache syscall graph

IIS6 syscal graph

What’s this? You may ask…it’s an API dependency graph of the current Apache webserver and the current IIS webserver.

As some people try to interpret those graphics to the favor of their loved one. I cannot see anything discussable about these graphics, so I leave it to you to just enjoy them as they look quite nice 🙂


1 Comment

How to setup secure 802.1x WPA2 enterprise wireless lan on a linksys WRT54G / GS Revision 4

This article is in german, but I am going to make a translated english version available soon. Thanks to Volker -cosrahn- Henze for writing this great how-to.

Für Feedback und/oder Fragen bitte die Kommentarfunktion verwenden.


Dieses Howto ist ein bischen anders als andere. Es ist ein “Monolitisches” Howto. Wir haben sozusagen einen Snapshot des, bis dato, aktuellen OpenWRT auf unseren Server gezogen und werden damit das gesamte System aufbauen. Es wird keine Updates geben. Das ist natürlich nicht gut aber wir haben diesen Ansatz gewählt um ein Howto zu realisieren bei dem keine Fragen offen bleiben. Also wenn Du es GENAU so machst wie wir hier, solltest Du danach einen wunderschönen Linksys haben der dir einen sicheren und komfortablen Weg bietet dein WLAN vor Unbefugten zu schützen aber trotzdem schnell und einfach Freunden, Bekannten und Nachbarn den Zugriff zu gewähren oder wieder zu enziehen. Warum kein Customized-Image? Wir müssten es testen und dazu felht einfach die Zeit und die Hardware. Aber ich denke das wir demnächst evtl. solch ein Image bauen werden. Allerdings hat solch ein Howto auch den Vorteil das ihr wisst was in eurem Linksys steckt und nicht einfach sagt “Ich glaub der Klumpen da in der Ecke macht das…” Gut dann viel Spass!


  • Linksys WRT54GS Revision 4

  • Ein Rechner mit telnet und SSH (SSH für Windowser gibt es hier)

  • Möglichkeiten Dateien per scp zu übertragen (mit scp, WinSCP usw.)

  • Grundkenntnisse mit dem Umgang mit Maus und Tastatur


Linksys auspacken. Die Warnung “Zuerst CD laufen lassen, dann die Kabel anschließen.” kann man getrost überlesen. Und steckt nun das beiliegende Kabel an den Port 1 und an einen beliebigen Rechner. Nun bekommt man eine IP (, die IP des Linksys ist die also mit in deinem Browser kommst Du auf das Webinterface. Login: admin und Passwort: admin

Die Logindaten sollten auch auf der beiliegenden
Dokumentations-CD zu finden sein.

So sieht das Webfrontend von Linksys aus. Nach dem Flashen wir der Linksys kein
Webfrontend haben. Man kann allerdings eines Nachinstallieren.
Aber dies ist ein anderes Howto…


Die entsprechende Firmware erhält man hier: (1,61 MB) – Dies ist ein Mirror des

!!!!!!!!!! ACHTUNG nun wirds heiß !!!!!!!!!!
Überprüfe unbedingt noch einmal ob nicht doch ein Stromausfall angekündigt wurde oder der Nachbar versucht mit dem Föhn baden zu gehen. Ein Stromausfall wäre fatal für den Linksys.

Klick auf Administration->Firmware Upgrade

Die Datei openwrt-wrt54gs_v4-jffs2.bin angeben

laufendes Update


Nun ist es soweit. Wenn alles geklappt hat kannst du dich per telnet einloggen.

Das erste Telnet

root@OpenWrt:~# telnet
Connected to
Escape character is ‘^]’.
=== IMPORTANT ============================
Use ‘passwd’ to set your login password
this will disable telnet and enable SSH

BusyBox v1.00 (2006.03.27-00:00+0000) Built-in shell (ash)
Enter ‘help’ for a list of built-in commands.

_______ ________ __
| |.—–.—–.—–.| | | |.—-.| |_
| – || _ | -__| || | | || _|| _|
|_______|| __|_____|__|__||________||__| |____|
|__| W I R E L E S S F R E E D O M
WHITE RUSSIAN (RC5) ——————————-
* 2 oz Vodka Mix the Vodka and Kahlua together
* 1 oz Kahlua over ice, then float the cream or
* 1/2oz cream milk on the top.

Nach dem einloggen erstmal ein Reset da die Dateisysteme noch read-only sind:

root@OpenWrt:~# reboot

Nach diesem Reboot kann man sich wieder einloggen. Als erstes muss ein neues Passwort gesetzt werden:

root@OpenWrt:~# telnet
root@OpenWrt:~# passwd
Changing password for root
Enter the new password (minimum of 5 characters)
Please use a combination of upper and lower case letters and numbers.
Enter new password:
Re-enter new password:
Password changed.

Nun loggen wir uns wieder aus, da Telnet nicht besonders sicher ist
und jeder mitlesen könnte was wir eingeben.

root@OpenWrt:~# exit
volker@buran ~ $ ssh root@
root@’s password:

BusyBox v1.00 (2005.07.18-21:49+0000) Built-in shell (ash)
Enter ‘help’ for a list of built-in commands.

_______ ________ __
| |.—–.—–.—–.| | | |.—-.| |_
| – || _ | -__| || | | || _|| _|
|_______|| __|_____|__|__||________||__| |____|
|__| W I R E L E S S F R E E D O M
WHITE RUSSIAN (RC2) ——————————-
* 2 oz Vodka Mix the Vodka and Kahlua together
* 1 oz Kahlua over ice, then float the cream or
* 1/2oz cream milk on the top.


Nun sollte man sich um Internet kümmern. Dies ist aber nicht Teil dieses How-To da es da einfach sehr viele Möglichkeiten gibt einen Linksys mit dem Internet zu verbinden. Deshalb die, meiner Meinung nach, zwei gängigsten hier und noch mehr Infos dazu gibt es hier.

FeM-Net oder andere größere LANs

Hier die Vorgehensweise wenn ihr das Gerät an einem größeren LAN wie dem FeM-Net betreiben wollt. Bitte achtet darauf das der Internet-Port(das ist der der ein Stückchen weiter weg ist on den anderen) des Linksys mit dem LAN verbunden ist. ACHTUNG wenn ihr einen anderen Port mit dem FeM-Net verbindet wird euer FeM-Net-Port deaktiviert.

Jetzt braucht ihr die MAC-Adresse des Linksys um ihn im FeM-Net freizuschalten. Das ist ganz einfach.

root@OpenWrt:~# ifconfig vlan1
vlan1 Link encap:Ethernet HWaddr 00:14:BF:CA:FE:01
inet6 addr: fe80::214:bfff:feca:fe01/64 Scope:Link
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:0 (0.0 MiB) TX bytes:0 (0.0 MiB)

Bei unserem Gerät wäre die MAC-Adresse “00:14:BF:CA:FE:01”.


Das ist leicht. Einfach ein paar NVRAM Variablen setzen und das DSL-Modem an den WAN-Port des Linksys stecken.

nvram set wan_ifname=ppp0
nvram set wan_proto=pppoe
nvram set ppp_idletime=10
nvram set ppp_mtu=1492
nvram set ppp_passwd=
nvram set ppp_redialperiod=15
nvram set ppp_username=
nvram set pppoe_ifname=vlan1
nvram commit

Wenn du fertig bist schalte das WAN-Interface ein mit:

ifup wan


Jetzt machen wir erstmal ein Update der Softwarepakete. Wir stellen eine Packet-Sammlung bereit um sicherzustellen das alles genauso funktioniert wie wir es beschrieben haben. Das heißt aber nicht das diese Howto auch nicht mit späteren Versionen funktionieren wird.

root@OpenWrt:~# cp /etc/ipkg.conf /etc/ipkg.conf.old
root@OpenWrt:~# vi /etc/ipkg.conf
* Taste “i” drücken (Insert-Modus)
* nun die folgenden Einträge ändern
src whiterussian
src non-free
src whiterussian
src non-free
den Rest lassen wir einfach so
* Taste “Esc” drücken (Kommando-Modus)

Jetzt kann man mit einem ipkg update die Paket-Informationen holen.

root@OpenWrt:~# ipkg update
Downloading …
Connecting to[]:80
Packages 100% |******************************************|
121 KB 00:00 ETA
Updated list of available packages in /usr/lib/ipkg/lists/whiterussian
Downloading …
Connecting to[]:80
Packages 100% |******************************************|
568 00:00 ETA
Updated list of available packages in /usr/lib/ipkg/lists/non-free


Dieser Schritt ist wichtig da ihr mit diesem Tool den Linksys mit der Zeit im Internet syncronisieren müsst. Der Linksys besitzt keine Pufferbatterie und kann seine Zeit nicht zwischenspeichern. Die Zeit wird aber unbediengt gebraucht damit die PKI(das mit OpenSSL erstellte Zeug) funktioniert.

root@OpenWrt:~# ipkg install ntpclient

ntpclient_2003_194-2_mipsel.ipk …
Connecting to[]:80
ntpclient_2003_194-2 100% |*******************************************|
9555 00:00 ETA
Unpacking ntpclient…Done.
Configuring ntpclient…Done.

Nun schnell die Zeit syncen.

root@OpenWrt:~# ntpclient -h -s

Ggf. kann hier statt ein beliebig anderer Zeitserver verwendet werden.

Und ein Startscript welches beim einschalten des Linksys die aktuelle Zeit aus dem Internet holt.

root@OpenWrt:~# echo “#!/bin/ash” >/etc/init.d/S70ntp
root@OpenWrt:~# echo “ntpclient -h -s” >>/etc/init.d/S70ntp
root@OpenWrt:~# chmod a+x /etc/init.d/S70ntp

Geschaft, nun haben wir, so Gott will, immer die richtige Uhrzeit auf unserem Linksys.


Installation der propritären Tools. Auch wenn es nicht schön ist, diesen Schritt kannst Du nicht überspringen. Der propritäre NAS und die WL-tools müssen nachinstalliert werden.

root@OpenWrt:~# ipkg install nas

nas_3.90.37-16_mipsel.ipk …
Connecting to[]:80
nas_3.90.37-16_mipse 100% |******************************************|
75771 00:00 ETA
Unpacking nas…Done.
Configuring nas…Done.
root@OpenWrt:~# ipkg install wl

wl_3.90.37-1_mipsel.ipk …
Connecting to[]:80
wl_3.90.37-1_mipsel. 100% |******************************************|
40906 00:00 ETA
Unpacking wl…Done.
Configuring wl…Done.

Der NAS wird benötigt um die Kommunikation zwischen WLAN-Device des Linksys und dem Radius-Server. Die WL-Tools werden benötigt um alle Funktionen des propritären WLAN-Treibers zu nutzen.


Mit OpenSSL wird nun eine Root-CA erstellt. Dies bietet die Möglichkeit dynamisch Zertifikate an beliebige Personen zu verteilen ohne das ihr euch kompliziert Pre-Shared-Keys zuflüstern müsst. Außerdem kann man Zertifikate zurückziehen wenn man jemanden nicht mehr leiden kann. Das ist besonders in größeren Infrastrukturen sehr sinnvoll. Installiert euch openssl-utils auf eurem, mittlerweile liebgewonnen, Linksys. Im übrigen ist es ratsam die Root-CA auf einem anderen PC zu erstellen. Hier der Einfachheit-wegen direkt auf dem Linksys.

root@OpenWrt:~# ipkg install openssl-util

Legt euch ein Verzeichnis an in dem die Root-CA gespeichert wird.

root@OpenWrt:~# cd /usr/share/
root@OpenWrt:/usr/share/CA# mkdir CA
root@OpenWrt:/usr/share/CA# cd CA

OpenSSL brauch ein paar Verzeichnisse, in dem es seinen sinnlosen Mist ablegen kann.

root@OpenWrt:/usr/share/CA# mkdir certs crl newcerts private users

Erstelle die Seriennummer und die Indexdatei für die Root-CA.

root@OpenWrt:/usr/share/CA# echo “01” > serial
root@OpenWrt:/usr/share/CA# cp /dev/null index.txt
root@OpenWrt:/usr/share/CA# cp /etc/ssl/openssl.cnf .

Mach eine Kopie der Orginal OpenSSL-Konfig-Datei und ändere es wie Du es benötigst.

root@OpenWrt:/usr/share/CA# vi openssl.cnf
* Taste “i” drücken (Insert-Mode)
* mit den Pfeiltasten nach unten scrollen bis zum Feld [ CA_default ]
* den Parameter
dir = ./demoCA
* tauschen gegen
dir = ./
* Dann die beliebigen Anpassungen machen
* Taste “ESC” drücken (Kommando-Modus)

Für die Client Zertifikate benötigt man spezielle Windows XP Extensions. Dazu legen wir eine neue Datei mit dem Namen xpextensions an.

root@OpenWrt:/usr/share/CA# vi xpextensions
* Taste “i” drücken (Insert-Mode)
Die Zeilen hinzufügen
[ xpclient_ext ]
extendedKeyUsage =
[ xpserver_ext ]
extendedKeyUsage =
* Taste “ESC” drücken (Kommando-Modus)


Sie ist 1095 Tage gültig. Das kann natürlich nach belieben angepasst werden in dem man die Zahl nach der Option -days verändert.

root@OpenWrt:/usr/share/CA# openssl req -new -x509 \
-keyout private/cakey.pem -out cacert.pem -days 1095 -config openssl.cnf
Generating a 1024 bit RSA private key
writing new private key to ‘private/cakey.pem’
Enter PEM pass phrase: “Das_Root-CA_Passwort”
Verifying – Enter PEM pass phrase: “Das_Root-CA_Passwort”
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter ‘.’, the field will be left blank.
Country Name (2 letter code) [AU]:DE
State or Province Name (full name) [Some-State]:Thueringen
Locality Name (eg, city) []:Ilmenau
Organization Name (eg, company) [Internet Widgits Pty Ltd]:FeM e.V.
Organizational Unit Name (eg, section) []:Technik
Common Name (eg, YOUR name) []:Cosrahn
Email Address []:somemailadress

Tipp: Merkt euch das Passwort. Und dieses sollte niemals in falsche Hände geraten.

root@OpenWrt:/usr/share/CA# openssl pkcs12 -export -in cacert.pem -inkey private/cakey.pem \
-out caroot.p12 -cacerts -descert
Enter pass phrase for private/cakey.pem: “Das_Root-CA_Passwort”
Enter Export Password: “caroot_p12_Passwort” (kann auch leer sein)
Verifying – Enter Export Password: “caroot_p12_Passwort” (kann auch leer sein)
root@OpenWrt:/usr/share/CA# openssl pkcs12 -in caroot.p12 -out caroot.pem
Enter Import Password: “caroot_p12_Passwort”
MAC verified OK
Enter PEM pass phrase: “caroot_pem_Passwort”
Verifying – Enter PEM pass phrase: “caroot_pem_Passwort”

Und für Windows.

root@OpenWrt:/usr/share/CA# openssl x509 -in cacert.pem \
-inform PEM -out cacert.der -outform DER


root@OpenWrt:/usr/share/CA# openssl req -nodes -new -x509 -keyout radius-req.pem \
-out radius-req.pem -days 730 -config openssl.cnf
Generating a 1024 bit RSA private key
writing new private key to ‘radius-req.pem’
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter ‘.’, the field will be left blank.
Country Name (2 letter code) [AU]:DE
State or Province Name (full name) [Some-State]:Thueringen
Locality Name (eg, city) []:Ilmenau
Organization Name (eg, company) [Internet Widgits Pty Ltd]:FeM e.V.
Organizational Unit Name (eg, section) []:Technik
Common Name (eg, YOUR name) []:Cosrahn
Email Address []:somemailaddress
root@OpenWrt:/usr/share/CA# openssl x509 -x509toreq \
-in radius-req.pem -signkey radius-req.pem -out radius-tmp.pem
Getting request Private Key
Generating certificate request

Zertifizieren des Request Bitte achte hier auf die Reihenfolge “-infiles radius-tmp.pem” ist die letzte Option in der Kommandozeile.

root@OpenWrt:/usr/share/CA# openssl ca -config openssl.cnf \
-policy policy_anything -out radius-cert.pem -extensions xpserver_ext \
-extfile xpextensions -infiles radius-tmp.pem
Using configuration from openssl.cnf
Enter pass phrase for /usr/share/CA/private/cakey.pem: “Das_Root-CA_Passwort”
Check that the request matches the signature
Signature ok
Certificate Details:
Serial Number: 1 (0x1)
Not Before: Jan 1 05:15:35 2000 GMT
Not After : Dec 31 05:15:35 2000 GMT
countryName = DE
stateOrProvinceName = Thueringen
localityName = Ilmenau
organizationName = FeM e.V.
organizationalUnitName = Technik
commonName = Cosrahn
emailAddress = somemailaddress
X509v3 extensions:
X509v3 Extended Key Usage:
TLS Web Server Authentication
Certificate is to be certified until Dec 31 05:15:35 2000 GMT (365 days)
Sign the certificate? [y/n]:y

1 out of 1 certificate requests certified, commit? [y/n]y
Write out database with 1 new entries
Data Base Updated

Konvertieren des Zertifikats in PKCS12-Datei damit es lesbar für Outlook; MSIE; Mozilla wird. (dieser Schritt ist nicht unbedingt nötig, da unser Radius kein PKCS12 benötigt).

openssl pkcs12 -export -in radius-cert.pem -out radius-cert.p12\-inkey radius-req.pem -descert


Dieser Schritt muss für jeden Client wiederholt werden.

root@OpenWrt:/usr/share/CA# openssl req -nodes -new -x509\
-keyout client-req.pem -out client-req.pem -days 730 -config openssl.cnf
Generating a 1024 bit RSA private key
writing new private key to ‘client-req.pem’
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter ‘.’, the field will be left blank.
Country Name (2 letter code) [AU]:DE
State or Province Name (full name) [Some-State]:Thueringen
Locality Name (eg, city) []:Ilmenau
Organization Name (eg, company) [Internet Widgits Pty Ltd]:FeM e.V.
Organizational Unit Name (eg, section) []:Technik
Common Name (eg, YOUR name) []:Cosrahn
Email Address []:somemailAddress
root@OpenWrt:/usr/share/CA# openssl x509 -x509toreq -in client-req.pem \
-signkey client-req.pem -out client-tmp.pem
Getting request Private Key
Generating certificate request

Zertifizieren der Request – Bitte achte auf die richtige Reihenfolge “-infiles client-tmp.pem” ist die letzte Option auf der Kommandozeile.

root@OpenWrt:/usr/share/CA# openssl ca -config openssl.cnf -policy policy_anything \
-out client-cert.pem -extensions xpclient_ext -extfile xpextensions \
-infiles client-tmp.pem
Using configuration from openssl.cnf
Enter pass phrase for /usr/share/CA/private/cakey.pem:
DEBUG[load_index]: unique_subject = “yes”
Check that the request matches the signature
Signature ok
Certificate Details:
Serial Number: 2 (0x2)
Not Before: Jan 1 05:37:37 2000 GMT
Not After : Dec 31 05:37:37 2000 GMT
countryName = DE
stateOrProvinceName = Thueringen
localityName = Ilmenau
organizationName = FeM e.V.
organizationalUnitName = Technik
commonName = Cosrahn
emailAddress = somemailAddress
X509v3 extensions:
X509v3 Extended Key Usage:
TLS Web Client Authentication
Certificate is to be certified until Dec 31 05:37:37 2000 GMT (365 days)
Sign the certificate? [y/n]:y

1 out of 1 certificate requests certified, commit? [y/n]y
Write out database with 1 new entries
Data Base Updated

Konvertieren des Zertifikat in PKCS12-Datei (Outlook; MSIE; Mozilla).

openssl pkcs12 -export -in client-cert.pem -out client-cert.p12 \
-inkey client-req.pem -descert

Um grössere Sauerein zu vermeiden hab ich den obigen Teil zu einem kleinen Script zusammen gefasst. Dieses kleine Script hilft beim erstellen eines neuen Clients. Man findet die erstellten Zertifikate in /usr/share/CA/users/[clientname].

Hier das Skript: (,43 KB)

Man kann nun zB. einfach mit:

root@OpenWrt:/usr/share/CA# ./ Paul

ein Zertifikat für den User “Paul” erstellen.


Um den Verschlüsselungsspass komplett zu machen brauchen wir noch eine random-Datei und eine Diffi-Hellmann-Parameter Datei. Dazu gehen wir wie folgt vor.

root@OpenWrt:/usr/share/CA# openssl dhparam -out dh1024.pem 1024
Generating DH parameters, 1024 bit long safe prime, generator 2
This is going to take a long time
root@OpenWrt:/usr/share/CA# dd if=/dev/urandom of=random bs=1k count=1


Wir haben jetzt viele Dateien generiert aber welche ist jetzt wozu da? Also werden wir das jetzt mal aufdröseln.

radius-req.pem – der Key
radius-cert.pem – das Zertifikat
cacert.pem und cacert.der – das CA-Zertifikat
dh1024.pem – das DH Parameter
random – beinhaltet einfach nur zufällige Daten


Der Client:

diese Dateien müssen auf den Rechner der sich in das WLAN einloggen will.

Die Dateien für den Radius behandeln wir später.


Nach dem wir das geschaft haben, können wir mit dem Radius-Server weiter machen. Wenn Du schon einen funktionierenden Radius-Server in deinem Netz benutzt, kannst Du diesen Schritt überspringen. Um den FreeRadius-Server zu installieren geht man wie folgt vor:

root@OpenWrt:~# ipkg install freeradius

root@OpenWrt:~# ipkg install freeradius-utils

root@OpenWrt:~# ipkg install freeradius-mod-eap

root@OpenWrt:~# ipkg install freeradius-mod-eap-md5

root@OpenWrt:~# ipkg install freeradius-mod-eap-peap

root@OpenWrt:~# ipkg install freeradius-mod-eap-tls

root@OpenWrt:~# ipkg install freeradius-mod-eap-ttls

root@OpenWrt:~# ipkg install freeradius-mod-files

root@OpenWrt:~# ipkg install freeradius-mod-pap


Bitte achte darauf dass du kein Paket vergesst.

Damit der RADIUS auch nach einem reboot zur richtigen Zeit startet, muss das Startscript noch umbenannt werden.

mv /etc/init.d/radiusd /etc/init.d/S41radiusd

Dann die erstellten OpenSSL-Zertifikate kopieren.

mkdir /etc/freeradius/ca
cp /usr/share/CA/cacert.pem /etc/freeradius/ca
cp /usr/share/CA/radius-req.pem /etc/freeradius/ca
cp /usr/share/CA/radius-cert.pem /etc/freeradius/ca
cp /usr/share/CA/dh1024.pem /etc/freeradius/ca/
cp /usr/share/CA/random /etc/freeradius/ca/

Die wichtigen Dateien für die Radius Konfiguration sind

  • clients.conf
  • eap.conf
  • radiusd.conf
  • users


client {
secret = Das_RADIUS_Passwort
shortname = localhost
nastype = other




Nun wollen wir einfach mal unsere 802.1X Umgebung aktivieren.

root@OpenWrt:~# nvram set wl0_akm=wpa wpa2
root@OpenWrt:~# nvram set wl0_auth_mode=radius
root@OpenWrt:~# nvram set wl0_crypto=aes+tkip
root@OpenWrt:~# nvram set wl0_radius_ipaddr=
root@OpenWrt:~# nvram set wl0_radius_key=Das_RADIUS_Passwort
root@OpenWrt:~# nvram set wl0_radius_port=1812
root@OpenWrt:~# nvram set wl0_ssid=My_8021X_Network
root@OpenWrt:~# nvram set wan_hostname=My_8021X_Gateway
root@OpenWrt:~# nvram set wl0_wep=aes+tkip
root@OpenWrt:~# nvram commit

Nun sollte nach einem Reboot der Zauber beginnen. Viel Spass!


ipkg install wireless-tools
ipkg install webif


WPA2 Enterprise-Howto
OpenWRT Konfig Hilfen
OpenSSL X509


the kororaa live cd tryed out…

After Chris recommended the kororaa live cd for my XGL testing questions I downloaded kororaa today and tried it.

This is EXACTLY what I hoped to see. A flawlessly booting live cd and a hyper performant graphical user interface that really really works.

All those graphical gimmicks and gadgets are eye candy – but not only. I think that just because you don’t have to stare at the screen to see how your windows are drawn is a giant leap in comfort and usability.

click on the picture to see it moving…

So far it’s a nice technology demonstration that worked just out of the box. Great!

Oh one question to the linux knowing guys: Can anyone tell me how to capture movies off the screen? Is there a tool that can do that?

Source 1: recommendation
Source 2:

1 Comment

where is the XGL live cd?

There is this XGL stuff which hardware accelerates the linux desktop – but since there are many movies that show the magnificence of this there is actually no real way to try it for ourselves – except when we would compile it ourselves… and that’s,…. well no solution at all.

So – I am searching for a not-too-much-pain bringing way of trying this XGL stuff…



VMware Browser Appliance Virtual Machine

Since there is the free VMware Player that allows you to run virtual machines for free on Windows and Linux there is now a ready-to-go Browser Appliance Virtual Machine based on Ubuntu Linux and Firefox:

“The Browser Appliance is a free virtual machine that allows users to securely browse the Internet using Mozilla Firefox.”

The most interesting thing about that is not the pre-installed Linux or Firefox – it’s the idea of making pre-installed available and usable for free. What if we just had something like that for Virtual PC and Windows… what would the impact of that be: giving thousands and thousands of software developers the opportunity to show and demo their products in the wild…

Source: VMware Browser Applicance Virtual Machine

No Comments

an OSX traffic monitoring tool – even usable when you only have a shell

Since I am quite frequently working on my Mac via ssh I was in desperate need for a tool to monitor the input/output network traffic. I normally don’t need something like ethereal or tcpdump – I just need something that displays a graph and simple traffic statistics and last but not least updates itself frequently. So netstat is not usable for that purpose because it’s not the most concise tool I know. So ethereal and tcpdump are usually used for different purposes like traffic sniffing and dumping – So ahzf gave me the hint to look for something called “darkstat” – And yes: it’s a really useful tool.

Darkstat runs on the host system and monitors the network interfaces. It also incorporates a webserver which allows you to take a look at the statistics.

Darkstats main start-page looks like this:

It’s a great tool that displays more detailed information when you click on the links in the menu bar. If you’re searching for a great network tool for your unix/mac – go for darkstat!

I have to mention that darkstat is no longer under active development – sad but true.


No Comments

Songbird: cloning and extending iTunes

Well – Silence was around the guys who made Winamp after they played a bit with AOL. But here they are – back with another media player: Songbird will face the light in a first preview version in december.

I think that these guys will face serious threat from apple. From my standpoint it’s clearly an iTunes clone…wether the guys are telling different…


No Comments

MDA 3 / Blueangel with Linux…

The linux guys are making progress in porting Linux to the current HTC devices. Apparently they mark their current version of linux for the Blueangel as “not ready for the user” – but it runs and it does make progress.

My experience with linux on such PocketPC / Windows Mobile devices is that you can do all the neat things you can do with your linux pc – when enough space is available – but you can’t do all the neat things you normally do with such a devices like managing appointments, send/receive SMS, place calls… and so on.

At the moment you simply render your device into a brick with linux on it – but time will tell if and when that will change.


No Comments


Florian is working on a XEN setup for our new web hosting machine. It’s a Dell PowerEdge 1850 machine with enough RAM for the four instances…more on that when it’s running productive…


No Comments

RAID6 testing the Linux Enterprise iSCSI Target Software…

This time we got a Software RAID6 Volume with 6 drives which made a volume size of 1953584325 sectors = 953899 Megabyte. This Volume is exported with the iSCSI Enterprise Target Software for Linux.

Aparently it’s a bit faster than the Software RAID5 – which is quite interesting because we expected it to be much slower (more work for the CPU).

Interface-Transferrate with a blocksize of 128 sectors at 0.0 percent of the capacity:

sequential read rate medium (unthrottled): 63045 Kilobyte/s
sequential read rate Read-Ahead (Latency 1.15 ms): 66480 Kilobyte/s
repeatedly sequential read (“coretest”): 54418 Kilobyte/s

permanent transfer rate: (blocksize: 128 sectors):

  • Average: 51447.9 Kilobyte/s
  • Minimum: 49329.7 Kilobyte/s
  • Maximum: 71003.1 Kilobyte/s


  • Average: 11671.8 Kilobyte/s
  • Minimum: 10575.1 Kilobyte/s
  • Maximum: 12278.3 Kilobyte/s

access time read:

  • Average: 14.47 ms
  • Minimum: 0.21 ms
  • Maximum: 28.01 ms

access time write:

  • Average: 37.96 ms
  • Minimum: 9.89 ms
  • Maximum: 100.16 ms

access time read (<504 MByte):

  • Average: 6.21 ms
  • Minimum: 0.12 ms
  • Maximum: 19.65 ms

access time write (<504 MByte):

  • Average: 15.16 ms
  • Minimum: 0.38 ms
  • Maximum: 33.09 ms

we also don’t know what the peaks are…they just show up even after several tests…

1 Comment

he’s our worst nightmare?

If you don’t know who Eric S. Raymond is then inform youself dude! If you know already then continue reading:

So some days ago there was a little…let’s call it “incident”. Some recruiting guy – Mike Walters, CST Senior Recruiter to be precise – sent a mail to Eric S. Raymond. A mail in which he tried to recruit Eric S. Raymond as a potential contributer at Microsoft.

So, despite the fact that Eric S. Raymond tries hard to be “Craig Mundies worst nightmage” he is maybe one of the topmost active opensource maintainers in the world. That’s one guy that takes this whole opensource-thingie serious! What might Mike Walters have thought when he got Eric S. Raymonds answer:

“On the day *I* go to work for Microsoft, faint oinking sounds will be heard from far overhead, the moon will not merely turn blue but develop polkadots, and hell will freeze over so solid the brimstone will go superconductive.”

Maybe he thought: DOH! I need a new job. Actually he said mea culpa.

BTW: Eric S. Raymond DOES look a bit scary, doesn’t he?

Source 1: Who’s this Eric S. Raymond?
Source 2: We He wanted to recruit him. Doh!
Source 3: mea culpa

No Comments

benchmarking the storages: iSCSI Enterprise Target (+Software RAID0)

This time we got a Software RAID0 Volume with 2 drives which made a volume size of 976784130 sectors = 476945 Megabyte. This Volume is exported with the iSCSI Enterprise Target Software for Linux.

You may ask: Why only 2 drives this time? – The answer: The guy who did the setup of the linux machine did not know how to delete the RAID5 volume he created for the previous benchmark. So there where only 2 250 Gigabyte drives left…and yes: we sometimes have a subliminal feeling that we have to hurt him.

Interface-Transferrate with a blocksize of 128 sectors at 0.0 percent of the capacity:

sequential read rate medium (unthrottled): 65399 Kilobyte/s
sequential read rate Read-Ahead (Latency 1.08 ms): 67237 Kilobyte/s
repeatedly sequential read (“coretest”): 55854 Kilobyte/s

permanent transfer rate: (blocksize: 128 sectors):

  • Average: 54098.5 Kilobyte/s
  • Minimum: 51692.8 Kilobyte/s
  • Maximum: 54530.8 Kilobyte/s


  • Average: 30086.6 Kilobyte/s
  • Minimum: 29700.0 Kilobyte/s
  • Maximum: 30895.6 Kilobyte/s

access time read:

  • Average: 13.61 ms
  • Minimum: 0.11 ms
  • Maximum: 26.78 ms

access time write:

  • Average: 15.70 ms
  • Minimum: 0.36 ms
  • Maximum: 41.20 ms

access time read (<504 MByte):

  • Average: 6.22 ms
  • Minimum: 0.11 ms
  • Maximum: 21.31 ms

access time write (<504 MByte):

  • Average: 7.31 ms
  • Minimum: 0.29 ms
  • Maximum: 26.66 ms

No Comments

benchmarking the storages: iSCSI Enterprise Target (+Software RAID5)

This time we got a Software RAID5 Volume with 3 drives which made a volume size of 976784130 sectors = 476945 Megabyte. This Volume is exported with the iSCSI Enterprise Target Software for Linux.

Interface-Transferrate with a blocksize of 128 sectors at 0.0 percent of the capacity:

sequential read rate medium (unthrottled): 61384 Kilobyte/s
sequential read rate Read-Ahead (Latency 1.15 ms): 67472 Kilobyte/s
repeatedly sequential read (“coretest”): 54294 Kilobyte/s

permanent transfer rate: (blocksize: 128 sectors):

  • Average: 51913.4 Kilobyte/s
  • Minimum: 49738.2 Kilobyte/s
  • Maximum: 63889.7 Kilobyte/s


  • Average: 9080.2 Kilobyte/s
  • Minimum: 6650.9 Kilobyte/s
  • Maximum: 10129.3 Kilobyte/s

access time read:

  • Average: 13.47 ms
  • Minimum: 0.12 ms
  • Maximum: 28.65 ms

access time write:

  • Average: 38.82 ms
  • Minimum: 10.10 ms
  • Maximum: 108.19 ms

access time read (<504 MByte):

  • Average: 6.09 ms
  • Minimum: 0.12 ms
  • Maximum: 19.58 ms

access time write (<504 MByte):

  • Average: 14.42 ms
  • Minimum: 0.37 ms
  • Maximum: 75.51 ms

No Comments

the evilgate structure, and 802.1X

I told you about the Linksys WRT54GS-DE router I’ve bought to put an OpenWRT on it. So what’s it all about? Why would I want to have such a firewall-detour-device. And whats a firewall-detour-device anyway?

So let’s take the following situation: You are in a network that allows you to access parts of the internet. Lets say you can access every TCP Ports 21,22,80,119,139,143 and everything above 1024 (list is incomplete!). And this network you are in blocks every UDP data transfer you would like to do. Unfortunately all the interesting things want to have UDP or at least some lower TCP ports. – What to do? That’s why you need the firewall-detour-device. It passes you unfiltered internet through the filtered network.

In our case it would look like that:

As you can see there are two ways to use the firewall-detour-device (the little linksys in the picture). By standard RJ45 ethernet and by 802.11g WLAN. The most interesting case is the WLAN-use-case. But lets’s start with the OpenVPN tunnel: The first thing you need is a machine that has unfiltered internet. You now determine on what ports you can connect through your firewall to that particular server. TCP port 80 for example…now take OpenVPN and with a few lines of configuration the server is set-up. (OpenVPN gives you the ability to connect through virtually every port either UDP or TCP – you even could tunnel through a HTTP/S proxy but that’s not a subject of this article)

The client-side has to be configured accordingly – which means installing OpenWRT on the Linksys and getting OpenVPN ipkg’ed…

The last question would be how you would secure your WLAN access to the firewall-detour-device. You have heard about WPA? In our case we implemented a 802.1X Authentication System: The authentication is done by a radius server which runs on the linksys. The client (the users notebook/desktop pc) has a certificate issued by the same CA that issued the access-points certifcate, with just some XP_EXTENSIONS in the certificate (additional OIDs). On the linksys additionally runs a daemon that changes the WPA key every 3600 seconds (configurable).

So at the end you have a certificate based authentication with a radius server combined with a WPA Implementation which changes the WPA keys in a configurable interval.

A typical OpenVPN config file looks like this:

dev tun
proto udp

# TLS parms
ca [ca-certificate-PEM-format]
cert [client-certificate-PEM-format]
key [client-key-PEM-format]
dh [diffie-hellmann file]

remote [the-OpenVPN-server]

There are some how-to manuals available at the OpenWRT homepage – so I do not copy-paste them here. But there are some misconceptions about the things you have to do on a Windows Client to use a 802.1X WLAN:

You need the root-certificate (the same you used at the accesspoint the only difference is that it has to be in the DER format) and you need a client certificate with XP-Extensions in PKCS#12 format. When you have both you just have to double-click to import them. When you now connect the the 802.1X WLAN you are asked to approve the root-certificate. After that you’re probably asked to choose which client-certificate you would like to use – select your client certificate and voilá. You should be connected to the WLAN authenticated with 802.1X.

Source 1: Linksys Router is now “evilgate”
Source 2: What is WPA?
Source 3: What is 802.1X?
Source 4:

No Comments

a lot storage space (not a Promise Storage Appliance)

So today it continues. After the dissappointing things that happened around the Promise VTrak m500i we started to put the other machines together to do some testing. Therefore we have:

Machine 1:

  • Pentium 4 (Prescott) 3 Ghz

  • 2 Gigabyte of RAM

  • onboard Promise(!) FastTrack 597 SATA

  • 4 Port Onboard SATA

  • 2×80 Gigabyte (Western Digital)

  • 3×250 Gigabyte (Western Digital)

  • 1xGigabit Ethernet (Broadcom)

  • Windows Server 2003 Enterprise Edition

Test-Setup (Machine 2 is not in this picture…)

the drives and behind the fans…LOUD!

a hot-swap fan and SATA cable close-up shot…

Machine 2:

  • Pentium 4 (Prescott) 3 Ghz

  • 2 Gigabyte of RAM

  • 2xPromise(!) FastTrack S150 TX4 SATA

  • 7×250 Gigabyte (Western Digital)

  • 1xGigabit Ethernet (Intel)

  • Linux 2.6.something

Machine 2 on top of Machine 1…

Machine 1 is destined to be the Documentation-Server running a Sharepoint Portal Server 2003. But we’ll do some testing with String Bean WinTarget 2.0 iSCSI Target Software. On Machine 2 the iSCSI Enterprise Target will provide access via iSCSI.

Our testing would be this: We setup a RAID5 on each machine and export this 500 Gigabyte Volume as an iSCSI Target Volume. We then benchmark this volume. After that we do this again with a RAID0 across the 3 drives. (so 750 Gigabyte Volume).

At the moment we only test with Windows on the client-side. We’re using h2benchw for this purpose.

Stay tuned for the results. Oh I almost forgot: The Promise VTrak m500i successfully synched a 1 Terabyte iSCSI Volume and I was able to mount and format this volume. The first test showed that about 66 Megabyte/s are possible on this RAID5 volume. The benchmark is running since about 2 hours – would take 6 more hours to complete. Of course we’ll also will test a stripe on the VTrak m500i.

Source 1: FastTrack S150 TX4 SATA
Source 2: String Bean WinTarget
Source 3: iSCSI Enterprise Target
Source 4: h2benchw

No Comments

create your own iSCSI Target (with Linux…)

You don’t know what an iSCSI Target is? Well simply an iSCSI Target is the “device” that represents a logical disk volume on an iSCSI Server. If you don’t know what iSCSI is – please read here and come back.

So let’s take the case that you would like to make a harddisk volume available across the network. The best block oriented protocol that you could use (and the best sounding…BUZZWOOOOOOORD!) is iSCSI. So there are some commercial iSCSI Implementations for Windows and there are some iSCSI Implementations for Linux. Today cosrahn implemented a solution based on the Linux iSCSI Enterprise Target Project.

This article will give you a list of things you have to do to get it to work by yourself:

You would need:

  1. a linux server with a kernel version 2.6.11 or later

  2. a free disk volume/partition/block device (even a file)

  3. a direct network connection to the machine that would like to use the iSCSI Target

    1. alternatively you have a iSCSI enabled network switch…quite expensive…

  4. a linux or windows machine that has an iSCSI Initiator installed

The iSCSI Initiator is the client part of the solution. It can either be software (like the Microsoft iSCSI Initiator) or hardware (like the Adaptec 7211C). In our case it’s a complete software solution.

Cosrahn installed a Gentoo Linux with a kernel. That took the most of the setup-time. Then he downloaded the source from the iSCSI Enterprise Target page and compiled and installed it.

Then he edited the config file in /etc/ietd.conf:

# iscsi target configuration

# the password NEEDs to be minimum 12 characters to be standard conform
IncomingUser username longpassword

# Targets definitions start with “Target” and the target name.
# The target name must be a globally unique name, the iSCSI
# standard defines the “iSCSI Qualified Name” as follows:
# iqn.yyyy-mm.[:identifier]
# “yyyy-mm” is the date at which the domain is valid and the identifier
# is freely selectable. For further details please check the iSCSI spec.


# Users, who can access this target
# (no users means anyone can access the target)

IncomingUser username specialtargetpassword

# Logical Unit definition
# You must define one logical unit at least.
# Block devices, regular files, LVM, and RAID can be offered
# to the initiators as a block device.
# in our case /dev/sda4 is a partition without any filesystem.

Lun 0 Path=/dev/sda4,Type=fileio

# Alias name for this target
Alias iSCSI-Test-Volume

# various iSCSI parameters
MaxConnections 1
InitialR2T Yes
ImmediateData Yes
MaxRecvDataSegmentLength 8192
MaxBurstLength 262144
FirstBurstLength 65536
DefaultTime2Wait 2
DefaultTime2Retain 20
MaxOutstandingR2T 8
DataPDUInOrder Yes
DataSequenceInOrder Yes
ErrorRecoveryLevel 0
#HeaderDigest CRC32C,None
#DataDigest CRC32C,None

After that we started the iSCSI Target daemon and configured the Windows Client to use the target.

This is the “startup-screen” of the Microsoft iSCSI Initiator.
You can see the node name of the iSCSI client.

This is the “iSCSI Server Discovery” Tab of the Initiator.
This is where you enter the “username” and the “longpassword”

Now there’s the Target Tab of the iSCSI Initiator. If you entered the Logon-Information to the iSCSI Server correctly you should see the target that are exported by the iSCSI Enterprise Target daemon. In our case there are two targets available.(despite the configuration above just exports one…just ignore it, you can create as much as you like)

You have the choice to let the iSCSI Initiator reconnect to the Target automatically on boot time and of course you have to authenticate yourself to the target. In this case it’s “username” and “specialtargetpassword”.

After you entered everything correctly the “inactive” flag would become a “connected” flag. Now fire up the Disk Management in the Computer Management MMC-SnapIn.

Voilá! You should now see a Disk with the size of the exported target…Just start using it like any other hard disk. Create a partition and a filesystem.

Simply as it could be. That’s it. There are some more options like the Header/Data digest – which is an option to ensure data integrity. While this surely will increase data security it also will increase the CPU usage when you access the iSCSI drive. In our test a 1.7 Ghz Pentium-M CPU had an utilization of about 35-40 percent whilst the iSCSI server only had about 7 percent. We think that the client has so much utilization because of the quite cheap network interface card (realtek…). In fact the utilization is quite massive if you enable Header/Data digest-

Source 1:
Source 2: iSCSI Enterprise Target
Source 3: Microsoft iSCSI Initiator
Source 4: Adaptec 7211C (iSCSI HBA Copper)

No Comments

Mission accomplished: Linksys Router is now “evilgate”

After some minutes the job was done – and openwrt instead of the original firmware was flashed into the two new linksys routers.

Please welcome OpenWrt – “White Russian RC2”.

Since the documentation is quite good it just leaves me with this citation:

“With the release of the Linux sources for the Linksys WRT54G/GS series of routers came a number of modified firmwares to extend functionality in various ways. Each firmware was 99% stock sources and 1% added functionality, and each firmware attempted to cater to a certain market segment with the functionality that they provided. The downsides were twofold, one – it was often difficult to find a firmware with the combination of functionality desired (leading to forks and yet more custom firmwares) and two – all the firmwares were based on the original Linksys sources which were far behind mainstream Linux development.

OpenWrt takes a different route, instead of starting out with the Linksys sources, the development started with a clean slate. Piece by piece software was added to bring the functionality back to that of the stock firmware, using the most recent versions available. What makes OpenWrt really unique though is the fact it employs a writable filesystem so the firmware is nolonger a static compilation of software but can instead be dynamically adjusted to fit the particular needs of the situation. In short, the device is turned into a mini linux PC with OpenWrt acting as the distribution, complete with almost all traditional linux commands and a package management system for easily loading on extra software and features.”


No Comments

Linux only became possible…

“Linux only became possible because 20 years of OS research was carefully studied, analyzed, discussed and thrown away.”

(Ingo Molnar on linux-kernel)

You may ask who Ingo Molnar is?…Well:

“Ingo Molnar has been contributing to Linux kernel development since 1995 with an impressive list of accomplishments. Most recently his O(1) scheduler was merged into the 2.5 development kernel, as well as much work to enhance the handling of threads. Other highly visible contributions include software-RAID support and the in-kernel Tux web and FTP servers.”


No Comments

collaboration with a whiteboard

It seems that there’s a great and multi-platform whiteboard application which is definitly worth a try:

“Share a common window on your computer with two or more other Coccinella users. Some of its features:

  • Write text with any font, size, normal, bold, etc.
  • Toolbar with basic drawing capabilities Flexible editing of each item in the canvas window
  • Support for foreign language character sets, from swedish Ã¥, ä, and ö, to Chinese (Unicode)
  • Extended functionality via plugins, see Extensions. This includes mp3’s on all platforms, video, synthetic speech of written text etc.
  • Full QuickTime support on Macs and Windows
  • Open source with the Gnu public license.

It runs in two different network topologies, each with its specific feature. The peer-to-peer mode allows client to connect directly to each other, without an intermediate server. The Jabber server system of instant messaging (IM) contains central management of user resources, such as buddy lists, gateways to other IM systems (ICQ, IRC, MSN Messenger, …), and much more.”

As soon as I have some experiences to share I will write an article… so far: try for yourself…looks promising.


1 Comment

Codetuning on a 32-way Itanium 2 SGI Altix machine

So this morning we played with these nifty dual Itanium 2 HP Servers…and now this: After a short talk with Intel my colleague Matej got access to an SGI Altix 3000 Supercomputer.

they look like that… nice ain’t it?

And because we’re just playing with that machine and there’s no benchmarking or anything like that done until now here are some “juicy facts” straigt from bash:

and the CPU Info of one CPU…:

does anyone know why the BogoMIPS are that low?
Itanium 2 32 Bit CPU Emulation?

oh and there’s some storage space:

More on that … later 😉


1 Comment

TechEd Europe 2005: Microsoft and Opensource Chalk and Talk

We attended the Chalk and Talk Session “Microsoft and Opensource” today… Actually a very interesting session, but I spare any comment on it here, just not to annoy anyone (which would otherwise be possible).

Many customers have questions about Microsoft’s view of Open Source and its ability to coexist and interoperate in a Microsoft environment. The session aims to answer your questions about Open Source and provide information and guidance on Microsoft’s position on open Source. “


Good Morning Linux!

It’s so “funny” to read something like this:

“Seiner(Andrew Morton) Meinung nach komme bei der Kernel-Entwicklung dem Testen nicht genug Aufmerksamkeit zu. Da die Tester weder Dank noch Geld für ihre zeitraubende Arbeit erhielten, würden neue Funktionen nicht genug geprüft. So könnten sich immer mehr Fehler in den Kernel einschleichen.”

Oh. Finally the Linux Kernel Developers noticed that they do their work for free. And finally they must have noticed that some big companies are selling their work for real money.

I don’t want to bash linux or the idea behind. I just want to say that you have to give up some principles to grow. What priniciples. I don’t know for sure.

1 Comment

dynebolic 1.4.1 codename LUMUMBA

I am proud to announce that there’s a new version of dynebolic. Well it’s there since march 15th… but better now then never productions proudly present:

8 8 8 o
8 8 8
.oPYo8 o o odYo. .oPYo. 88 8oPYo. .oPYo. 8 o8 .oPYo.
8 8 8 8 8′ `8 8oooo8 8 8 8 8 8 8 8 ‘
8 8 8 8 8 8 8. 8 8 8 8 8 8 8 .
`YooP’ `YooP8 8 8 `Yooo’ 88 `YooP’ `YooP’ 8 8 `YooP’
:…..::….8 ..::..:…..:..::…..::…..:..:..:…..:
:::::::::…:::::: version 1.4.1 :: codename LUMUMBA :::

Dynebolic is the linux distribution that is used by the reply2all Team of FeM e.V. for interactive video installations based on effecTV.

Source 1:
Source 2:
Source 3:

1 Comment

working with Multiplicity – nextgen multimonitoring

I tested Multiplicity like I promised some days ago. And I would like to show you the results. Because I tested the Trial-Version of Multiplicity I was unable to use it with more than two machines. In fact if I had the full version of Multiplicity I would also be unable to test it because the Mac OSX Version of Multiplicity is not ready… and there are only 3 machines in my Office.

So I took my main development machine and my notebook and installed Multiplicity. The notebook was client and the big-one was the server.

As you can see:

…there’s an overall of 3 displays after Multiplicity found the client machine (escaflowne). You can configure Multiplicity to append the clients to the left or right side of the servers’ physical displays (1,2). As I said: In the trial version only one client is allowed.

The Installation ran quick and without any problems but it failed to configure my Windows XP SP2 Firewall correctly. The problem is the following: by default Multiplicity configures the XP Firewall to only allow access to the Multiplicity network port within the same subnet. The machines I’ve tested on did not reside in the same subnet. So in the first attempt the machines were unable to talk to each other. After I manually configured the XP Firewall to grant access from other subnets it worked instantly.

Another curiosity with Multiplicity is the fact that it’s not the client that accesses the server. It’s the exact other way. You tell the server the name/IP of the client and there it goes. Confusing…

After this relatively small problem it worked just perfect. I used the servers keyboard+mouse to control the two machines without manual switching. Just move the mouse to the screen you want to write or click.. and voilá.

The only problem I had was caused by different mouse-speed and acceleration settings in the two Windows XPs. This is surely something that needs to be fixed. But when you got the correct settings it works perfect. I was even able to play games with the “virtually switched” keyboard+mouse… and I did not notice any lag or something.

But anyway. This tool is just breathtaking. After some hours of use you’re asking yourself why this wasn’t available ealier. I am surely going to buy Multiplicity because it’s not only simplifying my work but also helped me to gain more space on my desk. Because one keyboard+mouse is gone… and as soon as the OSX version is available… even more space would be freed on my desk. Well let me think about the things I can buy now to use the space…hmmm

In the comments of the last article about Multiplicity Uwe Husmann told us that there’s a similar tool available which is called “Synergy2“:

“Synergy lets you easily share a single mouse and keyboard between multiple computers with different operating systems, each with its own display, without special hardware. It’s intended for users with multiple computers on their desk since each system uses its own monitor(s).

Redirecting the mouse and keyboard is as simple as moving the mouse off the edge of your screen. Synergy also merges the clipboards of all the systems into one, allowing cut-and-paste between systems. Furthermore, it synchronizes screen savers so they all start and stop together and, if screen locking is enabled, only one screen requires a password to unlock them all.”

So as you can see Synergy2 does quite the same but it’s available for more operating systems (Windows, Unices, MacOSX). I did not test it for myself, but mape2k and nornagest tested it yesterday. Well and they liked it a lot. It seemed to work without any problem.

(WARNING) Synergy2 is GPL. 😉

Source 1: Multiplicity Homepage
Source 2: Multiplicity – taking the multiple displays idea to the next level
Source 3:


wobble wobble wobble

w00t…seems like they have a lot of fun with the openGL effects for the upcoming gnome Windowmanager 😉

“The wobbly window effect is mildly addictive. Kristian hasn’t gotten much work done since he wrote it. He (and now I) spends all day moving windows around and watching them settle. This video shows off the motion a little better. It also demonstrates Luminocity’s live workspace switcher (aka pager) which updates in synch with the screen. We were surprised by how much more tangible windows felt when they gave a little (i.e. less than in this video) as you moved them (like a real world object). Of course, we turned the effect on “high” for this demo so it’d be very visible.”


No Comments

hax0ring the linksys (run cisco, RUN!)

While we had some racing fun Atze was working on the newly modded Linksys WRT54G Wireless LAN Accesspoint.

Yes it runs Linux now… and hopefully he got the little gizmo working… because when we were there he was cursing all the time because some routing and NAT did not work…

By the way: isn´t this colorful network equipment…i´m sure we would have even red TP cable.


Resüme Chemnitzer Linux-Tage Besuch

Sooo… der Tag neigt sich dem Ende – und wir müssen nach dem aktuell laufenden Vortrag dann auch schonwieder die Heimreise antreten.

Interessant wars – gleich vorweg: Alle meine Vorurteile (okay fast alle…ich hab ja noch mehr 😉 ) bzgl. Linux wurden erfüllt 😉

Da nenn ich einfach mal den abgrund-offenbarenden Vortrag zu Plan 9 stellvertretend für die Vorträge die ich hier so mitbekommen habe… – unfassbar schlecht – leider.

Einziger Lichtblick war der BSD Vergleich… interessant und fachlich schön… davon hät ich wirklich gerne mehr gesehen. – Aber sonst wars sehr larifari Gerede ohne gross in die Tiefe zu gehen – ich bevorzuge da einfach das übliche Punkte System: 100=oberflächlich, wenig Technik, 200=oberflächlich, mit Technikinfos, 300=technisch, tiefgründiger, 400=hardcore tiefgründig und technisch… – Diese Bewertungen gab es hier leider nicht. Vielleicht irgendwann mal.

Schön war es soweit beim CSN – dem Chemnitzer StudentenNetz. Neben zwei Vorträgen denen wir lauschten, konnten wir auch persönlichen Kontakt zu den Jungs (wo sind die Mädels?) vom CSN aufbauen.

Speziell bei so Themen wie Viren VLAN / Quarantäne VLAN und bei Management von grösseren Mengen von Switchen ist offenbar ein grosser Bedarf an Gesprächszeit vorhanden – Zeit die wir leider nicht in diesem Masse mitgebracht haben.

So wie ich das sehe wäre es sinnvoll, speziell was die Studentennetze betrifft, einmal ein zentrales Treffen zu haben, wo man sich eben über solche technischen und vielleicht auch politisch/sozialen Probleme unterhält.

Quelle 1:
Quelle 2: Unix ist tot: Plan 9
Quelle 3: Chemnitzer StudentenNetz


Panorama Vortrag Linux Firewalls

tja, eigentlich warte ich ja auf den nächsten Vortrag “Malicious Code – Gefahren im Linuxbereich”..und deshalb hab ich mal dieses Panorama gemacht:

9267×1358 Pixel – draufklicken für gross

No Comments

nen Tux aus Schnee

“wenn es heiss wird schmilzts”

No Comments

übrigends: Unix ist tot, es lebe Plan 9

Hmm… ich möchte diesen Vortrag mal “diskussionsbedürftig” nennen – jedenfalls stellt der Sprecher Matthias Teege ein paar provokative Theorien auf…

“Unix ist tot – oder wie Rob Pike schon 1991 meinte: “Not only UNIX is dead, it’s starting to smell really bad”. Spätestens als Mitte der 80iger Jahre die Workstations aufkamen und der Trend, weg von den großen zentralisierten Systemen hin zu kleinen, einfachen, vernetzten und personalisierten Rechnern einsetzte, zeigten sich die Schwächen von Unix. Unix war für solche Umgebungen nicht geschaffen worden und hatte Schwierigkeiten, neue Technologien zu adaptieren. Deshalb entwickelte die Gruppe um Dennis Ritchie, Ken Thompson und Rob Pike,die auch für die Entwicklung von Unix und C verantwortlich ist, einen Nachfolger für das veraltete Unix mit dem Namen Plan 9.”

Alles != Plan 9 ist für Kollegen Teege absolut unbrauchbar… nunja, vielleicht hat er das nächste mal auch einen grösseren Font in sein Terminal reinkompiliert..sodass man auch etwas mehr erkennen kann.

Quelle 1:
Quelle 2:

No Comments

Chemnitzer Linuxtage: Kurztreffen mit dem CSN

Nachdem wir schön im Plan hier in Chemnitz angekommen sind haben wir uns direkt auf die Suche nach dem Chemnitzer StudentenNetz gemacht… – und gefunden haben wir sie auch sofort – leider gabs in ihrem Hörsaal kein WLAN. Jedenfalls haben wir uns den Vortrag “CSN und Karriere” von Christian Krause angehört.

Als ehemaliger CSN Gründungsmitglied und Peppercon Entwickler konnte er einiges zu Karrieremöglichkeiten sagen, denn nach dem Studium müssen wir alle mal Geld verdienen (manche sind so klug das schon während des Studiums zu tun). Er selbst war zu seinen CSN Zeiten wärend des Studiums als Werksstudent bei Peppercon aktiv und wurde direkt nach seinem Studium als festangestellter Entwickler übernommen.

Quelle 1:
Quelle 2:

No Comments

Linux auf dem Mac mini…und die Frage: Warum denn eigentlich?!

eine nette Seite die darlegt wie man das Linux auf den Mac mini bekommt:

“Apple’s Mac Mini is something which a lot of Linux users have been waiting for: An inexpensive, readily available PowerPC system in a small, quiet and attractive chassis.

Debian is very popular on Intel i386 compatible systems. Due to the open source nature of the Linux kernel and the Debian operating system, it is possible to build the same software to run on the PowerPC processor found inside the Mac Mini. It’s simple to swap your big, noisy old PC for the slim, svelte Mac Mini, and this page aims to show you how to do just this.”

Für mich bleibt da nur die Frage: Warum zum Teufel will ich das?! Egal. Ich will das jedenfalls nicht 😉



Linux auf dem Nintendo DS

Engadget berichtete heute:

“Using a passthrough and some homebrew demos, someone has Linux running on Nintendo’s new dual-screen portable gaming unit. It appears to use some external hardware, which makes the whole thing currently not-so-portable, but the idea is that all the hardware could be put on a single cartridge.”

Ja. Linux auf dem DS. Nicht schlecht soweit – also nicht das es nun gerade Linux ist, vielmehr das die Hardware damit anderweitig nutzbar wird.

Quelle 1:
Quelle 2:

No Comments

do it the Nerd Way: die Huygens Mission der ESA anschauen

Ich hab hier ja leider auf meinen Arbeitsrechnern kein echtes DVB-S sodass ich die von der ESA angebotenen Astra 1G Kanäle nicht live schauen könnte, wäre da nicht das “Satcast” Projekt hier im Forschungsnetz. Momentan befindet sich das Projekt noch in der Entwicklung – ist also nicht öffentlich im Forschungsnetz verfügbar. Glücklicherweise kann ichs sehen B-) – Eine kleine Kommandozeile, mplayer ploppt auf und schwupps hat man ESA-TV direkt auf dem PC – so ganz ohne DVB-S Karte und rumgefummel 😉 – Ein anderer Einsatzzweck wäre, die Transponder direkt auf den PC zu streamen, besonders dann interessant wenn da garkein MPEG2 Datenstrom kommt 😉

Ich liebe dieses Projekt….kurz ein paar Worte dazu: Ziel wird es sein über das Forschungsnetz Zugang zu möglichst vielen Transpondern und Satelliten gleichzeitig zu ermöglichen – eben vom Arbeitsrechner jedes Teilnehmers aus. (nicht das ein falscher Eindruck entsteht: das ist ein studentisches Forschungsprojekt, (noch) nicht von der Universität direkt gefördert)

Quelle 1:
Quelle 2:
Quelle 3:


dyne:bolic 1.4 ist da !

Seit heute gibt es eine neue Version von dyne:bolic mit dem Namen “LUMUMBA”. Das ISO Image kann man sich wie gewohnt per BitTorrent downloaden…

Leider habe ich momentan meine Debug Xbox nicht hier – sonst hätt ich direkt ausprobiert ob man mittlerweile dyne:bolic auf die Platte installieren kann… 😉

“Dyne:bolic GNU/Linux is a live bootable cd, containing a whole operating system that works straight from boot, without the need to install or change anything on the hard disk.”

“…work well on old PC (Pentium1 64Mb) and even XBOX game consoles,…”

“= 1.4 major update “LUMUMBA”

  • Pure Data equipped with all major extensions:

    • PDP, PiDiP, RRadical, grid, pique, bonk, choice, fiddle, freeverb, zexy, GEM-0.90, OSC and more (10x to Aymeric, Derek, Frank, Yves, Tom and PD!)

  • Blender-2.33a + Yafray-0.0.7 + Python game engine
  • LiVES 0.9.1 with Ogg/Theora and _many_ other codecs!
  • FreeJ-0.7.1 “BIKO” – RASTASOFTWARE! console remote controller (VJ over Ethernet) and Procedural Video Scripting: evolution from NLE systems
  • updated Linux 2.4.26, Alsa, OpenMosix and SquashFS-2.1 with improved efficience and wider device support including Zoran devices and most video boards
  • Xbox support up to recent versions and cromwell bios
  • Python is included with GUI extensions
  • Fix to modem connection, now fully functional
  • new software: Jamin-0.8, InkScape-0.39, poedit-1.2.5, KPhone-4.0.2, TimeMachine-0.2.4, tftp-hpa-0.38, Bomb-1.26, Pure-Ftpd-1.0.20, mlDonkey-2.5.22, Circle-0.41c, Aqualung-0.9b2, FLAC-1.1, iftop-0.17p1, Emacs-21.3, Seq24-0.5.2, Thunderbird-1.0, Chestnut-dialer-0.1, libtheora-1.0a4
  • Mobilemesh wireless adaptive routing daemon see /usr/mobilemesh (10x to Elektra)
  • updated software: FreeJ-0.7.1, MuSE-0.9.1, ImageMagick-6, LADSPA, Jack-0.98.1, Blender-2.33a, Cinelerra-1.2.1, Gaim-1.0, GQview-1.4.3, isolinux 2.10, GEM-0.90, pd-0.37-4, Audacity-1.2.2, LiVES-0.9.1, BlueFish-0.13, EffecTV-0.3.9, MPlayer-1.0pre5, QJackCtl-0.2.10, Hydrogen-0.9, SDL-1.2.7, png-1.2.7, Xfe-0.72, libFOX-1.2.9, Firefox-1.0, Rezound-0.11.1beta, ogg-1.1.1, vorbis-1.0.1, Hydrogen-0.9.1, mjpegtools-1.6.2
  • new games: Eboard, Racer and Eat The Whistle! tk-solitaire and Starfighter-1.1.1 plus the juicy updates for Wesnoth-0.8.6
  • more documentation in the dynebolic user’s manual
  • lectrobrain :: thk03″

Quelle 1:
Quelle 2:


Firefox Anzeige und die Kritik daran

Morgen erscheint ja in der FAZ die schon allerorten besprochene Firefox Anzeige.

In diesem Zusammenhang finde ich die “Manöverkritik” von mas äusserst gut gelungen… da wird die Anzeige fast Wort für Wort auseinandergenommen und ein Gegenvorschlag (der in meinen Augen wirklich besser ist) gebracht:


“Sie arbeiten ehrenamtlich und schenken ihn der ganzen Welt.”

Warum muß jeder, der schonmal irgendwas im Open-Source-Dunstkreis gemacht hat, gleich von “Ehrenamt” sprechen? Ich habe das schon auf Linux-Mailinglisten gesehen, nachdem mal jemand ehrenamtliche 2 Stunden mit der Pflege der Homepage zugebracht hat, und halte es für Wichtigtuerei. “

Sehr interessant soweit.

Meine Meinung zu der Anzeige ist auch eher geteilt. Es ist halt eben nicht die Revolution von der gesprochen wird… aber mich fragt ja niemand.

Quelle 1:
Quelle 2:

1 Comment

“Opensource Meckerer” und das Ding mit dem Kunden

Kiesow schreibt da etwas aufgebracht:

“diese open source meckerer – das ist die sorte mensch, die ihre eigenen beüürfnisse nach ganz oben stellt, dauernd rumnervt und schlechtes karma verbreitet, wenn die nicht umgesetzt werden, aber selbstüüberhaupt keine einzige zeile code beitäägt -, geht mir mittlerweile ja sowas von auf den……
die werden wohl nie verstehen, das die priorätäten von anderen menschen gesetzt werden. und zwar ganz einfach, weil die was mache– – wenn auch meistens, erstmal das wozu sie am meisten lust haben.”

naja… also meine Meinung dazu ist ja, dass häufig genau die von Kiesow angesprochenen Opensource Meckerer in der Realität “Kunden” heissen… – jedenfalls da wo es Geld zu verdienen gilt. – Ich konnte schon häufig beobachten wie das Opensource-Hobby Konzept hart und unvorbereitet auf das “Ich-bin-der-Kunde-und-bezahle-euch(nicht)”-Konzept gestossen ist.

Häufig wird in Opensource eben auch kostenlos gesehen. Offenbar ist vielen Firmen auch nicht ganz bewußt, dass für den Fall, dass man mit Opensource Geld verdienen möchte, eine ganze Menge Pflichten einhergeht.

Hier mal ein paar Artikel von mir zu dem Thema:

  1. Wie Siemens Linux entdeckte (“das ist ja super…”)
  2. USRobotics und seine Linux-embedded-Devices…und das Supportdrama (“USRobotics – eine Firma, kein Support”)

mir fällt dazu nur dies, frei nach dem alten IBM-TV-Spot ein: “Da steht wir brauchen Opensource ! Warum ? Steht nicht da !”


No Comments

ein Cluster aus Xboxen

das ist ja interessant… man nehme 8 Xboxen:

modde sie ein wenig…und setze ein beowulf Cluster drauf auf… und dann schaue man mal was so passiert…

Die Leute von Anandtech haben mal 8 Xboxen zusammengesteckt und sie gegen deutlich teurere und grössere Maschinen antreten lassen.

Ich lass einfach mal zwei Ergebnisse für sich sprechen:

Das ist ziemlich beeindruckend wie ich finde. Wenn blos nicht die Stromrechnung wäre 😉



objektiv getestet: SuSE Linux Enterprise Server 9

Wer jetzt erwartet, das ich mich hingesetzt habe um den SLES9 zu testen, den muss ich enttäuschen. Vermutlich wäre da auch nicht viel Objektivität zu erwarten gewesen, immerhin hätte ich mir Mühe gegeben, hätte ich ihn getestet. Habe ich aber nicht.

Dafür hat dies mas getan…und sein Artikel, kommentiert von mir:

Hmmm…. Also, irgendwie bin ich an die Evaluation des SuSE Linux Enterprise Server 9 mit einer falschen Erwartungshaltung herangegangen. Nachdem er bei mindestens einem Kollegen wahre Begeisterungsstürme hervorgerufen hatte, hatte ich erwartet, daß man da, wo UML und LDAP so toll vorkonfiguriert sind, bestimmt auch ein rattenscharfes Tool zum Administrieren eines Fileservers vorfinden würde

nun. Erwartungen sind dazu da zerstört und niedergetrampelt zu werden!

Nicht, weil plötzlich “Novell” draufsteht, sondern weil ich einfach dachte, daß man in diesen (preislichen) Sphären darauf achtet,…”

Das ist interessant. In den kostenlosen/preislich niederen Sphären sollte man meines Erachtens auch darauf achten, dass man Qualität liefert…oder impliziert das nun, das kostenlose/kostengünstigere Software aufgrund der weniger ausgeprägten Qualitäts-Ansprüche der Entwickler mit starken Qualitäts-Problemen zu kämpfen hat ?

Und um einmal zum Kern des Tests zu kommen:

“Leider sehe ich mich da im Moment etwas enttäuscht, denn das GUI zum Bearbeiten der Shares in YaST sieht aus wie ein fossiler Vorläufer von SWAT, dem Samba-Web-Admin-Tool, und ist nicht viel mehr als ein grafischer Editor für die smb.conf.”

Als jemand der selbst zwei Windows Fileserver auf Basis der Microsoft Server Appliances (NAS-Server) administriert, erstaunt es mich dann doch schon etwas, das Novell nicht mehr Know-How in-petto hat als einen grafischen Editor für die smb.conf auszuliefern.

Man muss dazu sagen das mas in seinem Test natürlich nicht auf eventuelle eDirectory Fähigkeiten eingegangen ist. Aber diejenigen die Novell eDirectory schon benutzt und/oder administriert haben, die mögen mich kommentieren und vervollständigen.

Jedenfalls kommentiert ein Leser von mas das ganze so:

Wenn ich mir überlege was für ein Akt es bisher war ein LDAP-Verzeichnis aufzubauen und darin ein paar Dienste zu integrieren, dann ist der SLES9 ein sehr guter Schritt in die richtige Richtung. Gut, verglichen mit der Einfachheit eines W2K-Servers ist der jetzige Status nicht der Weisheit letzter Schluss,

Hier möchte ich zwei Sachen anmerken:

1. mir wollten bisher immer alle Linux Administratoren weiss machen es wäre überhaupt kein Problem LDAP unter Linux komplett integriert zu implementieren => eine offenbar dreiste Lüge

2. W2k ist alt. W2k3 ist der Stand der Technik. Wie bitter ist das denn, das man auf Produkte angewiesen ist, die die Technologie von vor ~4 Jahren mitbringen…und das nichtmal vollständig und zufriedenstellend ?




Ich bin doch ganz lieb. Und niemandens Feind. Aber danke für die Blumen 😉

“aber der Feind schläft nicht….[…]….Hier wird mit .net-Anwendungen und dasBlog gearbeitet, gruselig, weil es auf jeden Fall inhaltlich gut ist… 😉 “


No Comments

soweit bin ich also schon gekommen

Jetzt debugge ich schon Linux Software… [gröhl]

No Comments


er ist endlich offiziell fertig. Mein digitaler Videorekorder. Eigentlich ein Rechner mit einer Festplatte. Aber wie mans sieht: Er steht ohne Monitor und Tastatur in einer Ecke mit der Sat-Schüssel direkt verbunden und mit einem weiteren Kabel Richtung WLAN Accesspoint.

Im WLAN ist der Videorekorder dann über zwei Wege verfübar. Programmiert werden die Aufnahmen über ein Webinterface. Live-TV schauen geht per Live-Stream. Die Aufnahmen selbst kann man auch per Stream/Dateifreigabe am PC anschauen (sind ja normale MPEG2 Dateien) oder man benutzt in Zukunft den noch von mir zu schaffenden “Thin-Client” benutzen um direkt an einem der Fernseher die Aufnahmen anzuschauen.

Höchstwahrscheinlich werde ich eine Xbox zu einem solchen “Thin-Client” umbauen.

Benutz wird hierfür ein minimal Debian (unstable) + VDR 1.3.12 + streamdev 0.3.3pre3.

Auf der Xbox wird vorraussichtlich auch ein Xdebian oder Gentoox verwendet werden.

Quelle 1:
Quelle 2:
Quelle 3:

No Comments

TechEd 2004 – Session: Mark Russinovich “Linux and Windows Kernel Comparison”

(this Time in “my-version-of-english”)

After talking about his backgrounds Mark Russinovich started the Session, formerly known as “Linux

and Windows Kernel Comparison” and now known as “Windows and Linux: A Tale of two Kernels”.

Here are my notes from the Session:

  • Linux´ history starts in early before Linus Torvalds developed his Linux
    because of the big number of unix derivates the market fragmented

  • 1991 Linus took a college computer science course that used Minix

  • Minix was developed by Andrew Tanenbaum who used Minix as learning workbench

  • Tanenbaum didn´t allow Linus to extend Minix to make it more usable

  • Linus went in his own direction and started working on Linux (Oct 91 Linux 0.02, Mar 94 Linux 1.0)

  • Bill Gates wanted a UNIX rival – the all known Microsoft<>IBM and Windows 3.x and OS/2 story

  • unexpectedly Windows became a hugh success so Microsoft did his own way without IBM


  • both Linux and Windows are monolithic architectures (all core operating system services run in a shared address space in kernel-mode and all system services are part of a single module

  • Windows has a Kernel-mode Windowing subsystem, Linux has X11 user-mode Windowing system

Process Management

  • Windows:

    • Process is a container with address space, handle table, statistics and at least one thread

    • no inherent parent/child relationship

    • Threads are basic sheduling units

    • Fibers are user-mode Threads

  • Linux:

    • Process is called Task, holds basic address space, handle table and statistics

    • there is a parent/child relationship

    • basic scheduling unit

    • no threads per-se, tasks can act like Windows threads by sharing handle table, PID and adress space, PThreads


  • Windows:

    • Two scheduling classes: “Real time” (fixed) priority 16-31

    • “Dynamic” priority 1-15

    • Higher priorities are favored, dynamic priority threads get boosted on wakeups, thread priorities are never lowered

    • Windows thread timeslice is 10ms to 120ms, can vary

    • Reentrang and preemptible

  • Linux:

    • Three scheduling classes: “Normal” (100-139)

    • “Fixed Round Robin” (0-100)

    • “Fixed FIFO” (0-100)

    • Lower priorities are favored, priorities of normal threads go up (decay) as they use CPU, Priorities of interactive threads go down

    • Linux thread timeslice is 10ms-200ms

    • Default is 100ms, varies across entire range based on priority and interactivity level

Multiprocessor Support

  • Windows:

    • up to 32 CPUs on 32 bit and 64 CPUs on 64 bit

    • NUMA is supported

    • Hyperthreading is supported (physical CPUs are favored)

  • Linux:

    • no upper CPU limit (set at kernel build time via kernel constant)

    • Supports NUMA (Scheduler favors a node the thread last run on)

    • Memory Manager is not NUMA aware,

    • Supports Hyperthreading (favors physical CPUs)

Virtual Memory Management

  • Windows splits user-mode/kernel-mode from 2GB/2GB to 3GB/1GB

  • Linux splits user-mode/kernel-mode from 1GB/3GB to 3GB/1GB, 2.6 has “4/4 split” option where kernel mode has its own 4 GB address space

Physical Memory Management

  • Windows:

    • Per-process working sets

  • Linux:

    • global working sets

I/O Management

  • Windows:

    • centered around file object

    • layered driver architecture

    • most i/o operations support asynchronous operations

    • interrupts are split between Interrupt Service Routine and Deferred Procedure Call

    • Supports PnP

    • internal interrupt request level controls interruptability

  • Linux:

    • centered around the inode

    • no layered i/o model

    • most i/o is synchronous

    • only sockets and direct disk i/o support asynchronous i/o

File Caching

  • Windows:

    • single global common cache, Virtual File Cache

  • Linux:

    • almost identical to windows beside the fact that Linux uses user and virtual file cache which can cause inconsistencies between the two caches


  • Windows:

    • Security model based on ACL

    • Users are defines with privileges, member groups

    • security can be appliad to any object manager object (files, processes…)

    • Supports auditing out of the box

  • Linux:

    • two models: Standard Unix Model, ACL (SELinux)

    • Users are defined with privileges and member groups

    • security is implemented on an object-by-object basis

    • no built in auditing support

    • Kernel 2.6 adds Security Module Framework for add-on security modules

After that direct comparrison he talked about the additions that where made to linux to improve performance. For example Linux was only cooperative preemptible till 2.4 and is now preemtible in patches of 2.4 and out-of-the box 2.6. On the other Hand Windows from NT and up is preemtible.

  • Linux introduced per-CPU kernel memory buffers; Windows introduced per-CPU buffers in an NT4 Servicepack in 1997

  • the Linux 2.4 scheduler is O(n), Linux 2.4 patches have a revamped scheulder that´s O(1)

  • Windows from NT and up always had an O(1) scheduler based on pre-sorted thread priority queues

  • Windows Server 2003 introduced per-CPU ready queues

  • Linux load balances queues

  • Windows does not (was not seen as an issue in performance testing by Microsoft)

  • Linux 2.2 introduced SendFile API to send file data over a socket, Linux 2.4 introduced zero-copy Sendfile

  • Windows from NT and up pioneered zero-copy file sending with TransmitFile in Windows NT4

However. The talk was focused on an in-depth comparison of the Windows and Linux internals, and as far as i could see both platforms have their problems 😉 ( unexpected was that conclusion ?!)

No Comments

saubere Wäsche reloaded

wie ich schon vor einigen Tagen berichtet habe wird nun auch im Supermarkt um jeden Kunden gekämpft. Der Kampf wird immer erbitterter – nun ist auch die Wal-Mart Filiale in der Nähe schon Schauplatz des grausamen Gemetzels.

Quelle 1:
Quelle 2:,guid,a8be937e-5b1f-4968-8e7f-e0165d8fa1c8.aspx

1 Comment