Das U-Boot
# Das U-Boot

Das U-Boot (The Universal Boot Loader) ist eine Bootstrap-Software, die auf unterschiedlichen Prozessoren insbesondere auf Mikrocontrollern lauffähig ist (u. a. PowerPC, ARM, AVR32, MIPS, Blackfin). Sie wird hauptsächlich im Bereich der Embedded Systems eingesetzt.

Durch flexible Konfigurationsmöglichkeiten während des Kompilierens ist es möglich, spezielle Varianten für unterschiedliche Anwendungsfälle zu generieren. Auch zur Laufzeit lässt sich das Verhalten durch umfangreiche Kommandozeilenbefehle bzw. eine Shell (Hush vom BusyBox-Projekt) sowie persistent speicherbare Umgebungsvariablen beeinflussen.

Die Entwicklung des Projektes ist stark an Linux angelehnt. Teile des Quellcodes stammen von dort. Besonderer Wert wurde auf das Booten von Linux-Images gelegt. Die Software kann mittels Cross-Compiler auf einem x86 PC für die Zielplattformen kompiliert werden. Unterstützung dafür bieten Toolchains wie crosstool, das Embedded Linux Development Kit (ELDK) oder OpenEmbedded.

U-Boot basiert auf einem 8xx-PowerPC-Bootloader namens 8xxROM von Magnus Damm. Als das Projekt auf SourceForge umzog, wurde es in PPCBoot umbenannt, da dort keine Projektnamen erlaubt waren, die mit Ziffern beginnen. Im November 2002 wurde das Projekt erneut umbenannt, als die Unterstützung einer Vielzahl weitere Architekturen aufgenommen wurde.

Nachdem U-Boot zunächst für PowerPC entwickelt wurde und damals noch nicht für ARM-Prozessoren verwendbar war, spaltete sich das heute eigenständige Projekt ARMboot ab.

Mittlerweile ist das Projekt von SourceForge auf eine eigene GitLab-Instanz umgezogen.

## Entwicklungsprozess

Der Entwicklungsprozess ähnelt dem Entwicklungsprozess von Linux. Ein Entwicklungszyklus dauert zwei Monate. Die ersten zwei Wochen können neue Features eingebracht werden. Nach diesem Merge Window können nur noch Änderungen in das nächste Release eingebracht werden, die vorhandene Fehler beheben. Änderungen werden in Form von E-Mails mit dem entsprechenden Patch an die U-Boot-Mailingliste eingebracht.

