Bachelorarbeit

Das Thema meiner Bachelorarbeit lautete "Schritte zur Portierung des Fiasco Mikrokerns auf PowerPC". Fiasco ist ein an der TU-Dresden entwickelter Mikrokern, der momentan in Versionen für Intel, AMD64, ARM und die Unix-Systemrufschnittstelle existiert.

Hauptteil der Arbeit war die Entwicklung einer architekturneutralen Seitentabellenschnittstelle, welche die MMU-Hardware der darunterliegenden Architektur abstrahiert.

Am 17. November 2006 habe ich die schriftliche Ausarbeitung beim Prüfungsamt eingereicht und die Arbeit schließlich am 05. Dezember 2006 mit einem Vortrag verteidigt.

Open Firmware

Um den portierten Kern vernünftig debuggen zu können, benötige ich eine Ausgabekonsole. Dafür kann man die Open Firmware verwenden, denn diese bietet Programmen über das Client Interface Zugriff auf seine Funktionalität.

Zur Open Firmware möchte ich nicht allzu viele Worte verlieren, denn das haben schon viele andere vor mir und vor allen Dingen umfassender gemacht. Nur soviel: Open Firmware ist in der Lage direkt ELF-Binaries zu starten.

Informationen über die Open Firmware finden Sie unter:

Informationen über das Client Interface der Open Firmware konnte ich im Internet leider nicht finden. So beschloss ich, mich mit den Quelltexten der Bootloader BootX (Darwin bzw. Mac OS X) und Yaboot zu beschäftigen, denn beide verwenden zum Teil das Client Interface. Dem Weg zur Open Firmware Console widme ich daher eine eigene Seite.

Toolchain

Da die Open Firmware nur ELF-Binaries direkt starten kann, musste also auch eine Toolchain (gcc, ld etc.) her, die ELF-Binaries erzeugen kann. Die mit den Mac OS X Developer Tools installierte Toolchain erzeugt leider nur Mach-O Binaries und daher muss man sich also erst selber eine neue bauen. Der Vorteil ist, dass sich beide wunderbar parallel verwenden lassen. Wer diesen Aufwand scheut, der kann auch ein PowerPC Linux installieren und die Projekte dort kompilieren, denn Linux verwendet standardmäßig ELF.

Die Anleitung zum Bau meiner Toolchain aus binutils 2.16.1 und gcc 4.0.2 finden Sie auf einer eigenen Seite.