Open Source im professionellen Einsatz

© sxc.hu

Linux portieren

Exotische Architekturen

,

Computer, Handys, Mediaplayer und Supermarktkassen - Linux ist auf unterschiedlichster Hardware anzutreffen. Ein Schlüssel für diese Anpassungsfähigkeit des freien Betriebssystems ist unter anderem die GNU Compiler Collection.

Es gibt kaum eine Rechnerarchitektur, auf der der Linux-Kernel nicht läuft. Wenn es eine gibt, finden sich meist sehr schnell ein paar Programmierer, die für Abhilfe sorgen. Die Geschichte der Linux-Portierung ist fast so alt wie der Kernel selbst: Kernel-Vater Linus Torvalds selbst übertrug seinen für x86 geschriebenen Systemkern auf die Alpha-Architektur. Nur wenig später fand Linux seinen Weg auf Sparc-Rechner. Die jüngsten Ports übertragen Linux auf die Embedded-Architekturen AVR32 und Blackfin.

Weltenbummler

Dass Linux jemals so viele fremde Welten erobern würde, war zumindest 1991 noch nicht absehbar. Linus Torvalds selbst hat angenommen, sein "Terminal-Emulator" sei nicht portabel, da er das Task-Switching der x86-Architektur verwendete [1]. Dank der frei verfügbaren GNU Compiler Collection (GCC) entwickelte sich Linux aber schnell zu einem der am besten portierbaren Systeme. Die Hersteller von Embedded-Systemen suchten einen hoch anpassbaren Systemkern und fanden ihn in Linux. Weitere Portierungen kamen schlicht deshalb zustande, weil einige Kernelentwickler Linux auch auf ihrer Lieblings-Architektur nutzen wollten.

Erster Brückenschlag

Grundlagen jeder Linux-Portierung sind die Binutils, eine Sammlung von Programmierwerkzeugen für Assembler- und Binärcode, sowie die GCC. Beide müssen zunächst auf dem vom Entwickler genutzten Rechner, dem Host, vorliegen. Der Entwickler richtet auf diesem Rechner - beispielsweise einem gewöhnlichen x86-Computer - eine Umgebung für die Cross-Kompilierung ein. Dazu erstellt er eine Maschinenbeschreibung der Zielmaschine, dem Target.

Die notwendigen Informationen liegen üblicherweise in Form von Hersteller-Spezifikationen vor. Diese Beschreibung und maschinenspezifische Einstellungen nutzen der GNU-Assembler (Gas) und die BFD-Bibliothek aus den Binutils. Sie erzeugen und formatieren damit aus Assembler-Befehlen gültigen Binärcode. Danach nimmt der Entwickler sich die GNU Compiler Collection vor. Sie benötigt ebenfalls ein Beschreibung des Target. Diesmal enthalten die Beschreibungen detaillierte Informationen über die Zielarchitektur, nämlich wie ihre Komponenten sich ansprechen lassen und wie sie miteinander kommunizieren.

Diesen Artikel als PDF kaufen

Als digitales Abo

Als PDF im Abo bestellen

comments powered by Disqus

Ausgabe 07/2013

Preis € 6,40

Insecurity Bulletin

Insecurity Bulletin

Im Insecurity Bulletin widmet sich Mark Vogelsberger aktuellen Sicherheitslücken sowie Hintergründen und Security-Grundlagen. mehr...

Linux-Magazin auf Facebook