Apache NuttX: POSIX-nahes RTOS vom 8-Bit-Mikrocontroller bis zur 64-Bit-Umgebung
Apache NuttX ist ein ausgereiftes Echtzeit-Embedded-Betriebssystem (RTOS).
Auf einen Blick
- Was ist das?
- NuttX ist ein Echtzeit-Betriebssystem in C mit Fokus auf POSIX- und ANSI-Konformität. Dieser Beitrag ordnet ein, was die README tatsächlich hergibt, wo die Board-Liste wirklich steht und welche Angaben fehlen.
- Für wen ist es gedacht?
- Geeignet ist NuttX für eingebettete Projekte, die POSIX-nahe Schnittstellen auf Mikrocontrollern ab 8 Bit suchen und die Pflege eines Board-Ports selbst tragen können. Weniger geeignet ist es für Teams, die ein zertifiziertes System mit Supportvertrag erwarten, denn solche Angaben enthält das Material nicht.
- Darf ich es kommerziell nutzen?
- Ja. Apache-2.0 ist eine freizügige Lizenz: Sie dürfen darauf aufbauende Software nutzen, verändern und verkaufen, solange Sie die Urheberrechts- und Lizenzhinweise beibehalten.
- Wird es noch gepflegt?
- Ja. Das Repository hat innerhalb des letzten Tages neue Commits erhalten.
- In welcher Sprache ist es geschrieben?
- Hauptsächlich C, laut der Sprachstatistik von GitHub.
Die Antworten beruhen auf den GitHub-Daten des Projekts (zuletzt abgeglichen am 15. September 2026) und auf unserer Analyse. Sie sind keine Rechtsberatung.
TIEFGEHENDE OPEN-SOURCE-ANALYSE
NuttX zwischen POSIX, ANSI und den VxWorks-APIs
Die README von apache/nuttx definiert das Projekt in einem Satz: NuttX ist ein Echtzeit-Betriebssystem, dessen Leitplanken Standardkonformität und ein kleiner Speicherbedarf sind. Als primäre Normen nennt das Projekt die POSIX- und ANSI-Standards. Fehlt dort eine Funktion, oder passt eine Funktion nicht in tief eingebettete Umgebungen, greift NuttX auf APIs aus Unix und aus anderen Echtzeitsystemen wie VxWorks zurück.
Die README liefert selbst ein Beispiel dafür: fork() wird als Standard-API genannt, die für tief eingebettete Umgebungen ungeeignet ist. Das ist eine brauchbare Orientierung, denn es zeigt, dass POSIX-Konformität hier kein bedingungsloses Versprechen ist, sondern eine Richtschnur mit dokumentierten Ausnahmen. Wer Code von einem Linux-Host nach NuttX zieht, muss deshalb jede benutzte Schnittstelle einzeln prüfen, statt auf vollständige Quellkompatibilität zu setzen.
In der Dokumentation taucht der Name NuttX meist ohne den Zusatz Apache auf. Die README weist ausdrücklich darauf hin, dass viele Teile der Dokumentation das System einfach NuttX nennen.
Vom 8-Bit-Mikrocontroller bis zur 64-Bit-Umgebung in C
Zur Hardwarebreite macht die README eine konkrete Angabe: NuttX skaliert von 8-Bit- bis zu 64-Bit-Mikrocontroller-Umgebungen. Welche Boards tatsächlich unterstützt werden, steht nicht im Text der README, sondern auf der Seite Supported Platforms unter nuttx.apache.org/docs/latest/platforms/index.html.
Aus den Repository-Metadaten ergibt sich das Umfeld des Projekts. Die Hauptsprache ist C, der Standardzweig heißt master, das Repository ist nicht archiviert, und als Projektseite ist nuttx.apache.org eingetragen. Zum Zeitpunkt der Erhebung verzeichnet GitHub 4.013 Sterne, 1.679 Forks und 748 offene Issues. Solche Zahlen beschreiben Aufmerksamkeit und Arbeitslast, über die Reife eines bestimmten Board-Ports sagen sie nichts.
Wer ein konkretes Zielboard im Blick hat, muss die Plattformseite öffnen, statt aus der Spanne von 8 bis 64 Bit auf einen Treibervorrat zu schließen. Die README selbst gibt keine Einteilung nach Hersteller oder Architektur vor.
Der NuttX-Simulator als Einstieg ohne Board
Für den Einstieg verweist die README auf den Getting-Started-Leitfaden unter nuttx.apache.org/docs/latest/quickstart/index.html. Aufschlussreicher ist der Hinweis darauf, dass NuttX einen eigenen Simulator mitbringt, der im Terminal läuft. Wer kein Board zur Hand hat, kann das System damit ausprobieren, ohne Hardware zu beschaffen.
Die README nennt allerdings weder einen Baubefehl für den Simulator noch die unterstützten Zielarchitekturen, und sie stellt keinen Vergleich zwischen dem Verhalten im Simulator und auf echter Hardware an. Diese Angaben fehlen im Material vollständig. Praktisch heißt das: Der Simulator taugt laut README als Einstiegspunkt, die Befehle zum Bauen und Starten müssen aus dem Quickstart-Leitfaden kommen.
Für Treibercode oder Timing-Verhalten ist der Simulator allein keine ausreichende Grundlage, weil Zeitverhalten eines echten Mikrocontrollers nicht aus der Terminalumgebung folgt.
Drei NuttX-Dokumentationsquellen: docs/latest, lokaler Build, cwiki
Die NuttX-Dokumentation verteilt sich auf drei Orte, die die README benennt. Aktuell ist die Documentation Page unter nuttx.apache.org/docs/latest/. Wer eine lokale Kopie bevorzugt, findet unter nuttx.apache.org/docs/latest/contributing/documentation.html eine Bauanleitung. Diese Anleitung ist im Umfeld des Mitwirkens angesiedelt und richtet sich damit eher an Beitragende als an Anwender.
Daneben bleibt die alte Dokumentation im Apache-Wiki unter cwiki.apache.org/NUTTX/NuttX erreichbar. Die README ordnet diese Quellen nicht zueinander. Es steht dort nicht, wann das Wiki gegenüber der aktuellen Website vorzuziehen ist, und nicht, ob Wiki-Inhalte noch gepflegt werden.
Wer eine Antwort sucht, sollte daher zuerst auf docs/latest/ nachsehen und das Wiki als historischen Zusatz behandeln. Dokumentation selbst zu bauen lohnt sich vor allem, wenn man offline arbeiten oder an den Texten mitarbeiten will.
Board-Support liegt auf der Supported-Plattforms-Seite, nicht in der README
Bei der Board-Frage ist die README ungewöhnlich knapp. Sie behauptet eine breite Plattformunterstützung, nennt aber kein einziges konkretes Board, keinen Hersteller und keine Architektur. Auch zum Speicherbedarf, etwa in Kilobyte für einen Minimal-Build, macht das Material keine Angabe. Die README formuliert nur die Zielrichtung eines kleinen Fußabdrucks, ohne Zahlen zu liefern.
Ebenso wenig sind ein Sicherheitsmodell, Zertifizierungen nach Industrienormen, eine Versionsstrategie oder ein Veröffentlichungsplan dokumentiert. Das Fehlen dieser Angaben ist kein Zeichen gegen das Projekt, sondern eine Folge davon, dass die README als Einstiegsseite angelegt ist und Details an die Website auslagert.
Wer NuttX für ein Produkt evaluiert, braucht deshalb drei Dinge: die Board-Liste auf docs/latest/platforms/index.html, den Quickstart-Leitfaden für den ersten Build und bei offenen Fragen den Issue-Tracker. Die verzeichneten 748 offenen Issues deuten auf laufende Arbeit hin, deren Inhalt die README nicht aufschlüsselt.
Contributing-Leitfaden, Apache-2.0-Lizenz und offene Punkte
Beitragende verweist die README an den Contributing-Leitfaden unter nuttx.apache.org/docs/latest/contributing/index.html. Dort sollen Git-Nutzung, Kodierstandard, Arbeitsablauf und die Prinzipien des Projekts stehen. Diese Prinzipien fasst die README nicht zusammen, sodass der Leitfaden für jeden Patchgang verpflichtend ist. Wie der Issue-Tracker im Detail genutzt wird, etwa mit Vorlagen oder Label-Konventionen, ist im Material nicht angegeben.
Rechtlich gilt laut README: Der Code im Repository steht unter der Apache-2-Lizenz oder unter einer damit kompatiblen Lizenz. Details nennt die Seite nuttx.apache.org/docs/latest/introduction/licensing.html. Für die Praxis heißt das unter anderem, dass eigene Änderungen an NuttX in einem kommerziellen Gerät nicht offengelegt werden müssen, während der Lizenztext und die Hinweise auf den Patentverzicht der Beitragenden erhalten bleiben.
Über Gewährleistung, Sicherheitsupdates oder kommerziellen Support sagt die README nichts. Diese Punkte sind in der Dokumentation nicht angegeben und müssen mit dem Anbieter der eigenen Hardware geklärt werden.
Redaktionelles Fazit
Geeignet ist NuttX für eingebettete Projekte, die POSIX-nahe Schnittstellen auf Mikrocontrollern ab 8 Bit suchen und die Pflege eines Board-Ports selbst tragen können. Weniger geeignet ist es für Teams, die ein zertifiziertes System mit Supportvertrag erwarten, denn solche Angaben enthält das Material nicht. Vor einer Entscheidung sollte ein Build für das eigene Zielboard nach dem Quickstart-Leitfaden unter nuttx.apache.org/docs/latest/quickstart/index.html stehen und die Board-Liste auf docs/latest/platforms/index.html geprüft sein.
Community-Notizen