Login
Newsletter
Werbung

Di, 28. August 2018, 17:02

Software::Entwicklung

Mes wird ein GNU-Projekt

Das Mes-Projekt hat Version 0.17 veröffentlicht und ist unter das Dach von GNU gezogen. Mes hilft Distributionen, auf einem leeren System GCC, die GNU-C-Bibliothek und Compiler-Werkzeuge zu compilieren.

GNU

Mes ist ein Teil des Bootstrappable Builds-Projekts, das versucht, das Bootstrap-Dilemma im Allgemeinen zu lösen. Das Dilemma besteht darin, dass jeder Compiler selbst einen Compiler benötigt, um aus dem Quellcode erstellt zu werden (für Interpreter besteht das analoge Problem). Ist der Compiler in einer anderen Sprache geschrieben als die, die er compiliert, benötigt man zuerst einen Compiler für diese andere Sprache. Mit irgendeinem Compiler muss man allerdings anfangen. Verfügt man über eine ältere Version des Compilers, mit der man den neuen Compiler erstellen kann, ist das Problem gelöst. Ebenfalls gelöst ist das Problem, wenn man einen Compiler eines anderen Herstellers nutzen kann. Allerdings stellt sich hier die Frage, ob man den Binärdateien dieses Herstellers vertrauen möchte. Mes vermeidet dieses Problem für einen spezifischen, aber grundlegenden Fall: Es ermöglicht die Erstellung von GCC, der GNU-C-Bibliothek und der im Paket binutils enthaltenen Compiler-Werkzeuge, die alle voneinander abhängen, ohne auf externe Werkzeuge zuzugreifen. Dies ist für Distributionen wie GuixSD interessant, die von Grund auf aus dem Quellcode erstellt werden sollen.

Mit Version 0.17 ist Mes jetzt ein offizielles GNU-Projekt. In dieser Version besteht es aus einem Scheme-Interpreter, der aus 5.000 Zeilen C-Code compiliert werden kann, und einem minimalen C-Compiler, der in Scheme geschrieben ist. Da für den Start zumindest ein Programm als ausführbare Datei vorliegen muss, wird der Scheme-Interpreter mit Hilfe von M2-Planet compiliert. Dieser kann den in Scheme geschriebenen minimalen C-Compiler ausführen, der eine minimal modifizierte Version von TinyCC so weit compilieren kann, dass TinyCC sich dann selbst compilieren kann. TinyCC ist ein vollständiger C-Compilter und damit leistungsfähig genug, um die erste Stufe von GCC zu compileren. Diese ist selbst wiederum ein minimaler C-Compiler und erledigt dann den Rest.

Auf diese Weise können glibc 2.2.5, binutils 2.20.1 und gcc-4.7.4 erstellt werden. Jede weitere Komponente einer Linux-Distribution lässt sich mit deren Hilfe danach aus dem Quellcode erstellen. Wenn man jeglichen Quellcode aus vertrauenswürdigen Quellen bezieht, kann so garantiert werden, dass man dem generierten System vollständig vertrauen kann. Die Vertrauenswürdigkeit ist der wesentliche Punkt des gesamten Projekts.

Zur Zeit werden nur 32 Bit x86-Systeme unterstützt, an 64-Bit-Systemen wird noch gefeilt. Mes steht wie die meisten GNU-Projekte unter der GPLv3 und kann von den GNU-Servern heruntergeladen werden.

Werbung
Pro-Linux
Traut euch!
Neue Nachrichten
Werbung