7 Punkte von GN⁺ 2023-11-30 | 1 Kommentare | Auf WhatsApp teilen
  • Microsoft hat das Echtzeitbetriebssystem ThreadX, das es durch die Übernahme von Express Logic erhalten hatte, als Open Source freigegeben.
  • Das ThreadX-RTOS und die dazugehörige Azure-RTOS-Entwicklungssuite werden an die Eclipse Foundation gespendet und künftig als Eclipse ThreadX bekannt sein; sie sind unter der MIT-Lizenz nutzbar.
  • Es gibt viele Echtzeitbetriebssysteme (RTOS), doch ThreadX wird auf mehr als 1,2 Milliarden Geräten eingesetzt und spielt auf verschiedenen Geräten, darunter dem Raspberry Pi, eine zentrale Rolle.

Die Beziehung zwischen Raspberry Pi und ThreadX

  • ThreadX wird zum Betrieb der Management Engine in Intel-Chips sowie der Firmware des Raspberry Pi verwendet.
  • Auf Raspberry Pi 1, 2 und 3 heißt es bootcode.bin, auf Pi 4 und 400 start*.elf; diese Dateien sind zwar auf GitHub und in Debian enthalten, aber proprietäre „Blobs“, deren Quellcode nicht veröffentlicht wurde.
  • Es läuft auf der VideoCore-GPU des Raspberry Pi, während die Arm-Kerne als von der GPU abhängige Slave-Geräte arbeiten.

Die Bedeutung von Microsofts Übernahme von ThreadX und der Open-Source-Freigabe

  • Microsoft übernahm Express Logic 2019, als ThreadX 21 Jahre alt wurde, und benannte es in Azure RTOS um.
  • Die Übernahme scheint eine Reaktion darauf gewesen zu sein, dass AWS die Kontrolle über FreeRTOS übernahm; der ursprüngliche Entwickler William Lamie gründete ein neues Unternehmen und verkauft nun PX5OS, ein RTOS der „fünften Generation“ mit POSIX-kompatiblen Threads.
  • ThreadX ist ein bewährtes Produkt, und einige Versionen verfügen über die TÜV-Zertifizierung für funktionale Sicherheit, was für bestimmte Kunden attraktiv ist.

Meinung von GN⁺

  • Der wichtigste Punkt dieses Artikels ist, dass Microsoft das ThreadX-RTOS als Open Source freigegeben hat. Das ist eine bedeutende Veränderung, die der Entwickler-Community mehr Möglichkeiten bieten und technologische Innovation fördern kann.
  • Die Open-Source-Freigabe eröffnet die Möglichkeit, dass der Software-Stack von Geräten wie dem Raspberry Pi vollständig Open Source wird, was sie für viele Menschen zu einer attraktiveren Wahl machen könnte.
  • Diese Entwicklung ist sowohl für Technikbegeisterte als auch für Fachleute eine spannende Nachricht und dürfte sich positiv auf Wachstum und Innovation im Open-Source-Ökosystem auswirken.

1 Kommentare

 
GN⁺ 2023-11-30
Hacker-News-Kommentare
  • "Azure RTOS" ist etwas, das Microsoft hastig gekauft hat, nachdem Amazon FreeRTOS übernommen hatte. Bill Lamie gründete PX5 und nahm den Großteil der Talente mit, um an einem neuen schlanken Embedded-RTOS zu arbeiten. Falls Microsoft diesen Schritt macht, könnte das bedeuten, dass Azure RTOS und IoT-Knoten nicht mehr auf der Roadmap stehen. ThreadX verfügt über ein deutlich größeres Ökosystem als FreeRTOS und läuft auch auf anderen Plattformen als Raspberry Pi. Renesas stellte es kostenlos bereit, wenn man deren SoC kaufte.
  • Sicherheitszertifizierungen sind besonders interessant. "Safety Software" zu entwickeln, erfordert sehr viel Arbeit. Ein Open-Source-RTOS zu haben, das zugleich sicherheitszertifiziert ist, ist ziemlich großartig. Um die Zertifizierung aufrechtzuerhalten, muss irgendwo investiert werden. Sicherheitsstandards zu verstehen, die richtigen Entwicklungsprozesse aufzubauen und diese mit fortlaufenden Softwareänderungen zu pflegen, ist nicht so einfach wie nur Code zu schreiben und auszuführen. Das ist keine Art von Softwareentwicklung, die man als Hobby betreibt. Ich hoffe, Microsoft finanziert diesen Entwicklungsaufwand. FreeRTOS ist nicht sicherheitszertifiziert, aber SAFERTOS ist eine kommerzielle Implementierung mit derselben API, die sicherheitszertifiziert ist.
  • Als ich ThreadX verwendet habe, hat es mir sehr gut gefallen. Es als "Betriebssystem" zu bezeichnen, ist großzügig, da es im Grunde aus Funktionen besteht, die Dinge wie Interrupt-Service-Routinen, Thread-Erzeugung und Speicherverwaltungsfunktionen bereitstellen. ThreadX war sehr leichtgewichtig und gut darin, die Arbeit zu erledigen. Ich habe Funktionen wie tx_thread_create, tx_malloc usw. aufgerufen und Queues, Semaphore, Mutexe und Ähnliches verwendet. Es freut mich zu sehen, dass ThreadX noch lebt. Ich musste Echtzeit-Regelkreise für Strom/Lüfter/Temperatursteuerung ausführen, daher musste ich kontrollieren können, wann bestimmte Vorgänge stattfinden, und nach Erkennung eines Problems innerhalb eines festen Zeitfensters Befehle ausgeben, um zu reagieren oder das System sicher zu halten.
  • Für alle, die sich fragen, warum Azure ein RTOS hat: Microsoft hat 2019 Express Logic und deren ThreadX-RTOS übernommen. ThreadX wird in vielen Mikrocontrollern mit stark begrenzten Ressourcen eingesetzt. Das Azure-Branding scheint, abgesehen davon, dass IoT-Geräte mit der Cloud kommunizieren, wenig Bedeutung zu haben.
  • Derzeit ist nur die aktuelle Version auf GitHub verfügbar, und von der VideoCore-Version ist keine Spur zu sehen. Es besteht die Hoffnung, dass die Raspberry Pi Foundation vielleicht die Erlaubnis erhalten kann, den Quellcode ihrer eigenen Version offenzulegen.
  • Der Code ist gut, aber ich denke, es gibt mehrere Möglichkeiten, ihn portabler und programmerfreundlicher zu machen. Das gilt insbesondere für die portierten Assembler-Code-Teile. Es ist schwierig, Indizes für Datenstrukturen zu ändern, daher lassen sich Strukturen nicht leicht anpassen. Wenn C-Strukturen und Assembler-Indizes nicht synchron sind, kann das System abstürzen. Würde man die Indizes im Assembler-Code zu Makros machen, ließen sie sich leichter ändern. Man könnte Header für den Assembler und Header für den C-Code erstellen und die Strukturen per Makros definieren. So würden C-Code und Assembler-Code synchron bleiben. Der Nachteil ist, dass man Strukturen mit diesen Makros definieren muss, aber das betrifft nur Strukturen, die in Assembler und C oder auf einer höheren Ebene verwendet werden.
  • Es ist lange her, dass ich von ThreadX gehört habe. Vor etwa 20 Jahren habe ich an einem ThreadX-basierten Produkt gearbeitet. Es war ein Anwendungsgerät, das weder Echtzeit-Scheduling noch schnelles Booten benötigte, aber die Entscheidung für ThreadX lag außerhalb meines Einflussbereichs. Es gab sogar ein separates "fortgeschrittenes" Produkt, das Embedded Linux ausführte und mit dem die Arbeit angenehm war. Entwicklung, Debugging und Testen mit ThreadX dauerten zwei- bis dreimal so lange. Das lag daran, dass viele Komfortfunktionen, an die man sich im Kernel gewöhnt, in ThreadX nicht vorhanden waren. Ich würde es nur für sehr einfache sicherheitskritische Geräte empfehlen.
  • Das ist tatsächlich eine große Sache, und es ist großartig, dass die Eclipse Foundation das betreut. Microsoft verdient dafür Lob und Anerkennung. Sie haben eine gute Erfolgsbilanz, deshalb bin ich sehr optimistisch, aber dieses Projekt wird viel kontinuierliche Unterstützung brauchen. Es liegt nun nicht mehr allein in Microsofts Verantwortung, aber während alles in Gang kommt, könnten sie eine größere Last tragen.
  • Als ich an Deskjet-Firmware gearbeitet habe, war ThreadX ein ordentliches RTOS. Damals waren Open-Source-Betriebssysteme und insbesondere die Tools dafür noch nicht für diese Aufgabe geeignet. Heute sieht die Lage aber ganz anders aus, und es gibt Alternativen.
  • ThreadX ist nicht Open Source. Der Quellcode ist öffentlich zugänglich, wird aber als Evaluierungsversion, also unter einer proprietären Lizenz, bereitgestellt.