“Free Memory” unter Linux

Alle Unix-Tools, welche die Speicherplatzsituation (RAM) des Systems ausweisen, zeigen nach einer gewissen Laufzeit beim freien Speicher nur noch Bruchteile des gesamten verfügbaren Speichers an – auch wenn die laufenden Prozesse in Wirklichkeit gar nicht so viel Speicher benötigen und eigentlich viel mehr freier Speicher vorhanden ist.
Warum ist das so?
Linux hält alle Daten, die es mal von der Festplatte gelesen hat, im RAM auf Abruf bereit. Diese Daten – genannt «disk cache» – sind eigentlich freier Speicher, welcher freigegeben wird, sobald ein Programm ihn benötigt.
Leider verfälscht das die Anzeige des gesamthaft freien Speichers unter Linux.
(Quelle: http://www.linuxhowtos.org/System/Linux%20Memory%20Management.htm)

Das Java-Geschwür gibt sich wie immer allergrösste Mühe, alle verfügbaren Systemressourcen für sich zu beanspruchen. Aber sein Speicher wurde auf 4 GB limitiert. Trotzdem zeigt top an, dass von den 12 GB Memory nur noch etwa 400 MB frei sind.
Abhilfe
Alle aktiven Prozesse auflisten, und deren effektiven Speicherverbrauch zusammenzählen.
Das Kommando ps auxc listet alle aktiven Prozesse auf. Darunter auch die Spalte RSS – Resident set size, the non-swapped physical memory that a task has used (in Kilobytes)
$ ps auxc
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND root 1 0.0 0.0 10352 632 ? Ss Apr10 0:02 init root 3425 0.0 0.0 5912 668 ? Ss Apr10 0:02 syslogd root 3428 0.0 0.0 3808 432 ? Ss Apr10 0:00 klogd root 3446 0.0 0.0 98764 3316 ? S Apr10 0:00 pbx_exchange blubber 3449 0.0 0.0 176132 7276 ? S 15:51 0:00 httpd dbus 3462 0.0 0.0 21260 704 ? Ss Apr10 0:00 dbus-daemon blubber 3468 0.0 0.0 176180 7276 ? S 15:51 0:00 httpd root 3480 0.0 0.1 174992 12596 ? Sl Apr10 3:41 snmpd blubber 3482 0.0 0.0 176180 7816 ? S 15:51 0:00 httpd root 3499 0.0 0.0 63520 1220 ? Ss Apr10 0:00 sshd root 3518 0.0 0.0 21648 892 ? Ss Apr10 0:00 xinetd ntp 3534 0.0 0.0 19196 4892 ? SLs Apr10 0:00 ntpd
Skriptibus. Effektiv belegter Speicher berechnen. “Renn durch alle Werte der 6. Spalte (RSS), addiere und gib aus”:
$ ps aux | awk '{sum +=$6}; END {print sum}'
5348340
free zeigt die Speichersituation an. Unter anderem auch total Memory.
$ free
total used free shared buffers cached
Mem: 12296040 12229320 66720 0 839756 5974144
-/+ buffers/cache: 5415420 6880620
Swap: 14683400 308 14683092
“Zweite Zeile, zweiter Wert von ‘free’ ausgeben”:
$ free | sed -ne '2p' | awk '{ print $2 }'
12296040
Und jetzt alle zusammen: Gesamter Speicher – effektiv belegter Speicher = freier Speicher
$ echo $((`free | sed -ne '2p' | awk '{ print $2 }'` - `ps aux | awk '{sum +=$6}; END {print sum}'`))
6848232
Puppenspiele

Ich habe ein neues Spielzeug: Puppet.
Puppet, an automated administrative engine for your *nix systems, performs administrative tasks (such as adding users, installing packages, and updating server configurations) based on a centralized specification.
Wie oft musste ich Server einrichten, Apaches konfigurieren und dergleichen. Nach dem x-ten mal kommt zwar eine gewisse Routine auf. Aber dann ändert etwas; einem Apache muss ein Varnish-Cache vornedran gestellt werden – hmm. Was muss ich jetzt schon wieder alles anpassen? Ports der VirtualHosts, der Listen Port… Ganz gewiss geht was vergessen, und erst nach dem 3. mal Dienste neustarten und ausprobieren funktioniert alles.
Das ist jetzt Vergangenheit. [mehr...]
Kon-Boot – Nettes Stück Software

Was ist Kon-Boot?
Kon-Boot ist eine Software, welche es uns erlaubt sich auf einem lokalen Computer anzumelden ohne das Admin/Root Passwort Passwort zu kennen.
Ein Briliantes Werkzeug für Sysadmins, wenn es mal (aus welchem Grund auch immer sei dahingestellt…) lokal einen PW Reset durchzuführen gilt. Auch sympatisch finde ich, dass die Unterstützung von Windows und Linux zugleich in einem Tool vereint wird. Weiterhin gilt anzumerken, dass die jeweiligen Passwörter im Gegensatz zu anderen Tools (NT PW Recovery,ERD/CIA Commander…) nicht verändert werden, da Kon-Boot “on the fly” Veränderungen am Windows bzw. Linux Kernel vornimmt und uns so einen Login bypass erlaubt. Neu booten und alles ist wieder beim alten, sofern man nicht explizit etwas geändert hat. Auch ein Berechnen der Passwörter mittels “Rainbow-Tables” ,wie es etwa das Ophrack Utility pflegt, fällt somit weg, es sei denn das Klartext PW sei von Interesse! ![]()
Skype: Chatlogs auslesen & mehr
Gut zu wissen: Skype speichert alle Daten, Chatlogs, Kontakte in einer SQLITE3 Datei. #Mac
Alle gespeicherten Chat-Teilnehmer ausgeben:
sqlite3 ~/Library/Application\ Support/Skype/[yourskypename]/main.db "SELECT author FROM messages WHERE 1=1 GROUP BY author"
Chatlog für Teilnehmer [chatpartner] ausgeben:
sqlite3 ~/Library/Application\ Support/Skype/[yourskypename]/main.db "SELECT author, timestamp, body_xml FROM messages WHERE dialog_partner = '[chatpartner]'"
Gefunden auf hier.
Terminal Tipp: Schweig!
Jedesmal, wenn ein neues Terminalfenster aufgeht:
Last login: Mon Apr 18 16:45:43 on ttys008Die Meldung nervt.
Abhilfe:
touch ~/.hushlogin
Irgendwann wie Stevens schreiben
Ein Artikel, den ich schon ziemlich lange gesucht habe.
Wiedergefunden und geklaut aus einer Datenschleuder [PDF]

Jeder will sie – kaum jemand schreibt sie: Die klare, verständliche, lesbare technische Dokumentation. Wie schreibt man gute technische Dokumentation? Was ist das eigentlich, “gutes Schreiben” ?
The Github experience
![]()
Ich habe gerade die Vorteile, die Git & Github bieten, hautnah erfahren!
Hoh, da ist etwas tolles auf Github: node-search-engine. Ein auf node.js basierter Webcrawler, der das Internet durchsucht (asynchron und parallel, yay) und in einer CouchDB speichert.
*geifer* – gleich ausprobieren!
Ich mache also einen “Fork”.
![]()
Was passiert da: Das Repository node-search-engine, welches dem Benutzer kurokikaze gehört, wird unter meinen Account als eigenständiges Repository kopiert.

Jetzt gehörst du mir. Und ich kann dich klonen und drücken wie es mir beliebt.
Uuh, da läuft noch was nicht. Eine binäre Library funktioniert unter Mac OS X nicht, ein Syntaxfehler, und ein Funktionsname hat sich geändert.
So. Ich glaube jetzt läufts! Gleich committen und auf Github übertragen.
Hmm. Ich habe wohl gerade ein paar Bugs gefixt. Das Projekt liegt seit April 2010 brach – vielleicht freut sich der Entwickler ja über meine Verbesserungen.
![]()
Ich schicke ihm eine Pull-Anfrage:

Das heisst soviel wie: “Hey schau mal, ich habe da eine Verbesserung für dein Projekt – wenn es dir gefällt, kannst du diese Änderungen übernehmen!”
2 Minuten später:

Noch ein bisschen später:

Er ist dankbar und hat meine Verbesserungen gleich übernommen! YAY
Ist ja ein tolles Konzept! Jeder hat sein Repository. Jeder kann es kopieren. Es braucht keine Berechtigungen, kein “Hauptentwicklungszweig”. Was toll ist, wird geforkt, und wenn die Änderung passt, wird sie übernommen. Wenn nicht, existiert einfach ein Fork, eine Variante der Software eigenständig weiter.
Schläft die Entwicklung ein, finden sich sicher Entwickler um einen populären Fork, die ihn weiterentwickeln. Die Macht ist quasi nicht mehr bei den Entwicklern oder bei einer Firma, sondern bei der Software selbst. Die Firma mag Konkurs gehen, die Software lebt weiter. Der beste Fork gewinnt.
Erst durch Github wird das Opensource-Prinzip wirklich gelebt.
Intergalaktischer Informationsbegleiter
…für Datenreisende.

Was: Jediritter Infopad. Reiseführer durch die Galaxis. Personal Messenger Pad.
Wie: Zugriff auf das globale Datennetz
Wann: Immer dabei bei wichtigen Missionen
Kennt ihr die? Diese Geräte, die Helden begleiten. In allen Filmen mit viel Raumschiff und Reisen durch’s Universum. Sie werden eingesetzt als Kommunikationsmittel, Notizblock, allwissendes Mobilterminal, Sonderbare-Steine-Analysegerät und scheinen niemals Strom zu verbrauchen.
Und wisst ihr was? So. Was. Gibts. Wirklich. !
Es heisst “Kindle“, kommt von Amazon, und war ursprünglich dazu gedacht, Bücher zu lesen.
Der Clou ist aber: Mit dabei ist, als “Experimental Feature”, ein vollwertiger Webkit-Browser mit Javascript Unterstützung.
Da ein Webbrowser alleine aber noch nicht sonderlich nützlich ist, gibt es gratis Internet dazu.
Und zwar weltweit. Ohne Abogebühr.

Jaaa, da staunst Du, he? Wusste ich nämlich auch nicht. Wissen die wenigsten… Weil das weltweite gratis Internet über 3G ist ein “nettes Nebenprodukt”…
Und wie lange der Akku wohl hält? Ein paar Stunden? Tage? Wochen? Ja genau. Ein paar Wochen. Da staunst Du grad nochmals, gell?
Warum das so ist: Das Display hat weder eine störende Hintergrundbeleuchtung, noch Pixel. Das Zauberwort heisst “E Ink” – elektronische Tinte. Braucht nur Strom beim “Umblättern”.
Suchbild; finde den Pixel:

im Gegensatz zu euren tollen iPhones, die nach zwei Minuten schon “Akku! Akku! Akku!” schreien, kann man dieses schicke Gerät zu recht als Mobile bezeichnen. Damit kann ich locker 2 Wochen irgendwo in die Türkei in die Flugferien und damit auf Wettersites zugreifen.
Hach – dieses Gerät versprüht mit seinem Monochrom-Display so einen Analog-Charme. Ich mag so unscheinbar altertümlich daherkommende Sachen, die aber hochwertigen futuristischen Schnickschnack eingebaut haben.

“Yes, it’s a Macintosh” war der erste Gedanke, der mir durch den Kopf schoss.
DigitalColor-Farbmesser

Tippfehler for fun and profit – eigentlich wollte ich den Kalender starten. Irgendwas ist mir dabei abferheyt, und dabei kam ein wunderbares Werkzeug zum Vorschein:

Das digitale Farbmessgerät.
Gopf. Ich hatte schon x-mal nach “RGB-Meter Widget” und so gesucht… Dabei ist das von Haus aus dabei, als Dienstprogramm!
Die Macht des einfachen Textformats
geklaut von hier

Ich hasse Word. Das tut nie das, was man will.
Dieser Ausspruch läßt sich auf viele anderen Programme übertragen: Word, Excel, Powerpoint, die ganze OpenOffice Suite, Keynote, Numbers, Page, Graphikprogramme, und so weiter. Ganz spannend wird es, wenn eine Keynote-Präsentation in das Format von Powerpoint umgewandelt werden soll. Oder, noch schlimmer, Word nach OpenOffice Writer. Dann bleibt einem meistens nur noch übrig, den reinen Text von dem einen in das andere Programm zu kopieren und die Formatierung anschließend wieder nachzuvollziehen.
Einer der Gründe ist die Verwendung von sehr eigenwilligen Datenformaten. Heutzutage sind die meisten Office-Dateien nichts anderes als eine Sammlung von XML-Dateien, die in eine ZIP-Datei gepackt wurden. Manchmal hilfreich, meistens irrelevant. Selbst wenn diese Datenformate “normiert” sind, jedes Programm interpretiert die Norm auf eine eigene Art und Weise. Im Ergebnis läßt sich jede Datei nur von einem Programm lesen und verarbeiten. Der Anwender ist dem Programm auf Gedeih und Verderb ausgeliefert. Ein falsches Bit und der Anwender kann die Datei nicht mehr öffnen.
In vielen Fällen geht es auch anders. Es gibt ein Datenformat, dass in so gut wie auf jeder Plattform verfügbar ist: ganz normaler Text. Jedes Betriebssystem liefert mindestens eine Anwendung zum Erstellen von Textdateien mit. Unter Windows ist es Notepad, unter OSX ist es TextEdit, unter Linux gibt es vi, Emacs, gEdit und wie sie alle heißen.
Erstaunlich viele Daten lassen sich als normale Textdateien ablegen. Die meisten Texte lassen sich so schreiben. Für besondere Bestandteile können sogenannte Auszeichnungssprachen genutzt werden. Das müssen nicht gleich komplizierte Sprachen, wie XML, HTML oder LaTeX sein. Meistens reichen einfache Muster, wie Sie jeder bei normalen Text verwenden würde. Zum Beispiel wird eine Textpassage kursiv gestellt, indem diese mit dem Zeichen ‘*’ eingerahmt wird. Übrigens, die meisten Inhalte von Wikipedia sind auf diese Art und Weise erstellt worden. Ein offeneres Format gibt es nicht.

Werden Dateien im Textformat erstellt, so eröffnet sich dem interessierten Anwender ein ganzes Biotop von Anwendungen:
- ein paar hundert Programme der diversen (Unix-) Shells: grep, sort, diff, cut, …
- zig Programme der (Windows-) Eingabeaufforderung
- jede Programmiersprache erlaubt das Lesen und Verarbeiten von Textdateien
- Versionskontrollsysteme, um die Änderungen zu protokollieren, alte Stände wiederherzustellen oder gleichzeitige Zugriffe zu koordinieren (Probieren Sie das einmal mit Word, Writer oder Pages)
- Graphiken können zum Beispiel mit graphviz erstellt werden
All diese Programme arbeiten zusammen.
Zur Textformatierung gibt es wunderbare Werkzeuge:
- reStructuredText interpretiert den eingegebenen Text sehr anwendernah und erzeugt daraus u.a. HTML-, XML, ODP- und LaTeX-Dokumente, sowie mit Hilfe von S5 ansehnliche Präsentationen.
- Markdown, Multimarkdown und Textile erstellen mit einfachen Angaben strukturierte HTML-Dokumente.
Mit ganz normalem Text ist jeder Anwender Herr seiner Daten. Archivierungsprobleme gibt es nicht. Sicherheitsprobleme auch nicht. Es ist schon recht schwierig einen Schädling in einer Textdatei so unterzubringen, dass er unerkannt bleibt. Selbst wenn dieser in der schieren Masse von Text verborgen wird, es gibt immer genügend Werkzeuge, die nicht von dem Schädling betroffen ist.
Wenn das keine Gründe sind. Wann steigst Du um?


