Persönliches dies-und-das
OSS und Vielfalt
Zebuntu heißt nun zeVenOS, aus irgendwelchen rechtlichen Gründen. Bernd Korz (der Mensch hinter Zeta) ist auch nicht mehr dabei, und irgendwie ist das Ding eh etwas seltsam: “yet another Ubuntu distro”, mit “BeOS touch”.. Hmm..
Naja, scheint, als ob der Hauptentwickler von dem System einfach eine nette Zusammenstellung neuer Defaults und Tools in ein ISO-Image presst. Zu Open Source-Entwicklung hat er jedenfalls folgendes zu erzählen:
Als Schlusswort, Vielfalt, ist je wie man es sieht ein Vorteil oder Nachteil von freier und offener Software. Ich sehe Vielfalt eher als einen Vorteil, solange man sich an Standards hält. Sprich man entwickelt sich z.B. nicht seinen eigenen Kernel oder Treiber.
…
GCC, __udivdi3 und -mregparm=3, die zweite
Nur ein kleiner Nachtrag: ich habe GCC nicht beibringen können, __udivdi3 andere Aufrufsemantik zu geben, als den Default, von daher bleibt -mregparm=3 bei meiner GRUB2-Variante deaktiviert.
Es geht aber, theoretisch: __attribute__ ((regparm(1))). Den kleinen Kniff habe ich gefunden, als ich die handvoll Assemblerfunktionen verarzten musste, die auf regparm(3) basierten.
…Eine Laudatio für Qemu
Habe ich schonmal Qemu über den grünen Klee gelobt? Nein? Dann wird es höchste Zeit dafür:
Wie letztens schon einmal erwähnt, ist Qemu zusammen mit einem Debugger (GDB) eine super Möglichkeit, Code zu singlesteppen, an den man sonst nicht so leicht rankommt. Und auch ohne Debugger ist es sehr angenehm, Treiber zu schreiben oder sonstigen Lowlevel-Krams zu machen, ohne alle 3 Minuten rebooten zu müssen (bzw. nur eine virtuelle Maschine starten zu müssen).
…Linux Nasties: saubere Interfaces
“Some attributes in sysfs need a terminating newline, some don’t, so try both.” - heißt es in einem Changelog eines Ubuntu-Packages. Das bedarf keines weiteren Kommentars von meiner Seite.
…Notes Experience #3: "Autoren", die 2.
Zur Problematik mit dem Verständnis, das Notes von “Autoren” hat, habe ich mich schon einmal ausgelassen.
Wenn man ein Dokument von mehreren Autoren bearbeiten lassen will, reicht der Trick, “@Username” evaluieren zu lassen, allerdings nicht aus.
Um allen Autoren Schreibrecht auf das Dokument zu geben (in diesem Fall war es eine Art Zähler), ist die richtige Lösung, einen festen Wert “*” in ein Autorenfeld zu legen, wodurch (Wildcard-sei-Dank) jeder Autor berechtigt ist, das Dokument zu editieren (Dokumenteneigenschaften beachten!)
…das __udivdi3-Abenteuer
Nachdem ich im letzten Eintrag angemerkt habe, womit ich zu kämpfen hatte, hier die Lösung: gcc -mregparm=3 ist eine nette Möglichkeit, in stand-alone Code dafür zu sorgen, dass der Code ein wenig kleiner und schneller wird. Allerdings muss der Code auch wirklich stand-alone sein, und nicht etwa auf fremde Funktionen aufbauen - etwa aus libgcc.. Ups :-)
Nachdem ich den Tree ohne die Option hab bauen lassen, funktionierte dann auch alles. Und da diese Option vor allem aus Platzgründen genutzt wurde, wir in coreboot aber etwas mehr Platz haben, als die paar Sektoren in der ersten Spur der Festplatte (in die der “normale” GRUB2 reinpassen muss), geht das auch noch..
…GDB single stepper automatisieren
Heute musste ich relativ viel mit GDB (GNU Debugger) hantieren, der zusammen mit QEmu ein echt wertvolles Tool darstellt.
Unter anderem geht es um die Frage, an welcher Stelle GRUB2 (der Bootloader), bzw. ein Modul, an dem ich gerade arbeite hängt (und im zweiten Schritt, warum).
Also GRUB2 in QEmu geladen, der mit GDB-Hook ausgestattet wurde (-s -S flags), gdb drangehängt, kernel.elf als Symboltabelle hergenommen (0x8200 ist in meinem Fall die Ladeadresse), das Modul für die Symbole in GDB geladen (set debug=modules, insmod - die letzte genannte Adresse ist in der Regel der gesuchte Wert) und durchgesteppt. und gesteppt. und gesteppt.. So ein Singlestepper kann ganz schön langweilig sein, der geht wirklich jeden einzelnen Befehl durch und nexti (also nicht jeden Sprung mitnehmen) war nicht detailliert genug. Da QEmu hängt, sobald das Problem auftritt, muss sich das doch irgendwie automatisieren lassen.
Netatalk und Mac OS X 10.5
Seit OS X 10.5 werden nicht-Apple AFP-Server nicht mehr ohne weiteres gefunden. Das liegt diesmal nicht daran, dass AFP mal wieder verändert wurde, sondern dass für den Lookup nun mDNS alias Zeroconf alias Bonjour, statt appletalk verwendet wird.
Mit dem Wissen ist die Lösung dann auch denkbar einfach:
Den avahi server installieren, folgenden Service unterbringen (auf Debian-Systemen zB unter /etc/avahi/services/afpd.service), avahi neu starten:
<?xml version="1.0" standalone='no'?>
<!--*-nxml-*-->
<!DOCTYPE service-group SYSTEM "avahi-service.dtd">
<service-group>
<name replace-wildcards="yes">%h</name>
<service>
<type>_afpovertcp._tcp</type>
<port>548</port>
</service>
</service-group>
gefunden zB im Ubuntuusers-wiki
…Auch die FSF hat ein RDF (reality distortion field)
Brad Eckert fasst in seinem Post auf comp.lang.forth ganz gut zusammen (finde ich), was im gesamten Thread so los war.
Angefangen hat der Thread damit, dass Mr. Eckert wissen wollte, wie die Lizensierung einer Sammlung von Forthcode aussehen könnte, die einerseits den Code offenhalten soll, andererseits auch für kommerzielle Entwickler (in FSF-Sprech wäre das dann “proprietär”) irgendwie nutzbar sein soll. Hintergrund der Überlegung ist wohl, dass auf c.l.f in letzter Zeit häufiger die Ansicht vertreten wurde, dass einer der Punkte, warum Forth relativ obskur ist und bleibt, der Mangel an Bibliotheken ist.
…Hochzeitstag
Wir hatten am Samstag einen schönen Hochzeitstag - erst Brunch im Cafe Extrablatt, danach haben wir unseren Gutschein für die Claudius Therme, den wir zur Hochzeit geschenkt bekamen, aufgebraucht. Sehr, sehr schöner Tag, wenn auch die Wassertreterei in Salzlake anstrengend war.
Leider hat sich an diesem Tag eine der zwei Festplatten im Desktop verabschiedet. Die andere wurde zur neuen Systemfestplatte befördert und am Sonntag war das wichtigste schon wieder installiert. Datenverlust gab es glücklicherweise auch keinen. Datensicherung ist ein ärgerliches Thema…
…