Bei der Entwicklung oder Leistungsbewertung von Software ist die Bestimmung des Speicherverbrauchs eines Prozesses eine häufige Aufgabe. Durch die Nutzung von dynamisch geladenen Bibliotheken und die gemeinsame Nutzung von Speicherseiten durch mehrere Prozesse ist die genaue Bestimmung der verbrauchten Ressourcen eine Frage der Zählweise. Bei der Verwendung von bekannten Linux-Werkzeugen wie ps, htop oder top wird zumeist die Gesamtmenge aller durch einen Prozess verbrauchten virtuellen Speicherseiten gezählt. Die Bestimmung ist unabhängig davon, ob die zu Grunde liegenden physikalischen Speicherbereiche eventuell durch mehrere Prozesse gleichzeitig genutzt werden. Die gemessene Speichermenge wird dabei als Resident Set Size (RSS) bezeichnet. Durch die mehrfache Zählung wird die Auslegung der Speicherausstattung einer Maschine erschwert.
Das von Matt Mackall geschriebene Programm smem ist ein Werkzeug, das verschiedene Berichte über die Speichernutzung auf einem Linux-System erstellen kann. Im Gegensatz zu den bereits genannten Werkzeugen kann smem die Proportional Set Size (PSS) bestimmen. Die PSS ist eine weitere Messgröße für den Speicherverbrauch eines Programms, bei welcher die durch Bibliotheken genutzte Speichermenge gleichmäßig auf die nutzenden Applikationen aufgeteilt wird. Wird eine Bibliothek durch drei Programme genutzt, wird jeweils nur ein Drittel des durch die Bibliothek verbrauchten Speichers für die PSS der nutzenden Programme einkalkuliert. Neben der Bestimmung der PSS ist zusätzlich die Bestimmung der Unique Set Size (USS) möglich. Die USS eines Prozesses ist die Speichermenge, die nur durch diesen Prozess genutzt wird. Wird der entsprechende Prozess entfernt, wird auf dem System diese Speichermenge frei.

smem ist in Python geschrieben und benötigt mindestens Version 2.6.27 des Linux-Kernels, da erst dieser die notwendige Datei pagemap mit der Zuordnung von virtuellem zu physikalischem Speicher für jeden Prozess in /proc enthält. Neben der Auflistung von RSS, PSS, USS und verbrauchtem Swap-Speicher für Prozesse und Nutzer mit verschiedenen Filterkriterien beherrscht smem auch die Ausgabe von Torten- und Balkengrafiken als PNG, SVG, JPG und EPS. Das Programm ist allerdings im Moment noch nicht in allen Distributionen enthalten.
Unter opensourcejahrbuch.de findet sich die neueste Ausgabe das Open-Source-Jahrbuchs. Über 50 Autoren stellen auf 577 Seiten Informationen, Diskussionbeiträge und Analysen zum Thema Open Source vor. Die Autorenliste umfasst Namen wie Bruce Perens und Richard Stallman, aus Themensicht bietet sich ein weites Spektrum von politischen, ökonomischen, sozialen bis hin zu technischen Belangen.
Ich habe diese Woche meine zwei Rechner mit Ubuntu 6.10 (Edgy Eft) installiert und damit Gentoo auf diesen Rechnern abgelöst. Die Installation verlief auf beiden Rechnern problemlos, nur der Dialog zur Platten-Partionierung war etwas hackelig, durch Neupartitionierung war das Problem aber zu lösen.
Das Installieren der Updates verlief zügig und ohne sichtbare Fehler. Auf dem Thinkpad mit SuperSavage-Grafik funktionierte Direct-Rendering Out-of-the-Box, beim Desktop musste ich noch die proprietären fglrx-Treiber von ATI installieren und konfigurieren. Bis jetzt fand sich sämtliche Software, die ich brauchte, in den verfügbaren Quellen.
Der Umstieg von Gentoo zu Ubuntu hatte folgende Gründe:
- Gentoo ist im Moment nicht mehr so trendy wie noch vor zwei Jahren, viele Entwickler verlassen das Projekt und widmen sich anderen Distributionen. Die Pakete scheinen deswegen nicht mehr überall so gepflegt wie ich mir das vorstelle.
- Da bei Gentoo aus dem Quellcode installiert wird benötigen Updates lange Compilerläufe, die mir persönlich jetzt zu lange dauern. Updates bei Bibliotheken können wenn Abhängigkeiten zu OpenOffice, Firefox oder X auftreten in wahre Compile-Marathons ausarten. Manchmal erscheinen dann weitere Updates bevor der letzte Compile-Lauf beendet ist.
- Die Paketverwaltung bei Gentoo ist für Nutzer ausgelegt die Fehler und Sicherheitsmängel durch Updates auf neue oder neueste Programmversionen lösen. Das reine Fixen von Sicherheitsmängeln oder Fehlern bei Beibehaltung des Featureumfangs scheint bei Gentoo nicht unbedingt Priorität zu haben. Viel Entwicklerarbeit basiert auf den jeweilig neueste Softwarerevisionen. Ich möchte in Zukunft vor allem ein stabiles System mit halbwegs aktuellen Versionen.
- Konfiguration ist bei Gentoo immer noch viel Handarbeit. Ich finde es sehr nützlich die Kommandozeile benutzen zu können, habe aber auch nichts gegen automatisierte, graphische Lösungen wo sie sinnvoll, funktional und effektiv sind. Bei Ubuntu erhoffe ich mir weniger Administrationsaufwand.
Generell bin ich mit Gentoo nicht unzufrieden gewesen, meine Ziele und Anforderungen haben sich aber dahingehend geändert, dass ich ein System möchte bei dem Stabilität vor Aktualität steht.
Natürlich hat der Wechsel auch ein paar Nachteile:
- Subjektiv erscheint mir Ubuntu ein wenig langsamer als mein Gentoo, allerdings nicht soviel, dass ich es als störend empfinde. Hier kann man aber sicher noch ein paar Anpassungen vornehmen. Der empfundene Unterschied kann auch daher herrühren, dass ich gleichzeitig von XFCE auf Gnome gewechselt bin.
- In Liferea werden anscheinend keine https-Anfragen unterstützt. Hier werde ich eventuell ein Nichtdistributionspaket installieren.
- Das angesammelte Wissen über die Erstellung von ebuilds ist jetzt nutzlos, das Wissen zum Erstellen eigener Pakete für Ubuntu muss ich mir neu aneignen.
Bis jetzt scheint mir der Wechsel aber eine gute Entscheidung.
SpOn berichtet über eine Software von trifinite.org, die es ermöglicht die Bluetooth-Freisprecheinrichtungen in Autos, besonders in neuen Audis abzuhören. Die Software heißt “The CarWhisperer”. Audi verwendete als feste PIN vor dem ersten Pairing immer “1234″ oder “0000″ und macht damit die Freisprecheinrichtungen angreifbar.
Alle reden über den Tiger, aber wie wichtig ist das eigentlich, wenn man gar keinen Mac hat? Aufreger gibt es bei jedem Betriebsystem, für Mac OS X braucht man passende Hardware, Windows ist kommerziell und unsicher, die BSDs haben für den Desktop einen zu kleinen Nutzerkreis und der Linux-Kern ist auch nicht mehr das, was er mal war.
Wie überzeugt die Nutzer im Netz von unterschiedlichen Betriebssystemen sind zeigt das Operating System Sucks-Rules-O-Meter. Mag PearPC für Linux eigentlich auch das neue Mac OS X?
ditaa ist ein Kommandozeilenwerkzeug in Java mit dem man Diagramme, die in ASCII-Art entwurfen wurden in schöne Bitmap-Grafiken umwandeln kann.
Das Programm ermöglicht es eine Textdatei wie folgende:
+-------------------+ +----------------+
| | | |
| datenkobold.de |--->| Leser |
| | | |
+-------------------+ +----------------+
^ :
| Feedback |
+-----------------------+
einfach in eine hübsche Block-Grafik umzuwandeln:

Einfach mal anschauen, ich finde es ganz interessant.
Grafikprozessoren auf modernen Grafikkarten haben mittlerweile ein ähnliches Komplexitätsniveau wie das der Hauptprozessoren erreicht. Deshalb gibt es eine wachsende Gemeinschaft von Nutzern und Forschern, welche die Leistungsfähigkeit der Grafikprozessoren für allgemeine, nicht auf Grafikanwendungen beschränkte Probleme nutzen möchten. Viele Informationen dazu finden sich auf den Seiten zu “General-Purpose Computation Using Graphics Hardware”
Mein Wunsch wäre ein Kernelmodul, welches ermöglicht, dass der Grafikprozessor transparent zur Emulation eines weiteren, virtuellen Prozessors im System genutzt wird. In einem Cluster wäre so etwas doch bestimmt nicht schlecht, oder? Wer hat Lust?
Update (Sommer 2009):
In diesem Bereich hat sich mittlerweile viel getan. Eine absolut transparente Nutzung ist zwar nicht möglich, mit Compute Unified Device Architecture (CUDA) von Nvidia existiert allerdings eine Schnittstelle zur Nutzung des Grafikprozessors für nicht-grafische Berechnungen. Mit den aktuellen Bestrebungen Grafikprozessoren und Hauptprozessoren auf einem Chip zu integrieren sind auch neue Impulse auf der Software-Seite zu erwarten.
Kommentare