Zum Hauptinhalt Zur Navigation Zur Suche

Xous & Baochip-1x: Rust-OS und eigener Chip für sicherere Embedded-Anwendungen

39C3
Für Mikrocontroller gibt es längst Betriebssysteme, doch ihnen fehlen wichtige Sicherheits-Features. Das will Hardwareentwickler Bunnie ändern.
/ Johannes Hiltscher
Kommentare News folgen (öffnet im neuen Fenster)
Sieht aus wie ein Raspberry Pi Pico: der Baochip-1x auf der Dabao-Platine (Bild: Baochip)
Sieht aus wie ein Raspberry Pi Pico: der Baochip-1x auf der Dabao-Platine Bild: Baochip

Einige Mikrocontroller mit RISC-V- oder ARMs Cortex-M-Kernen sind längst leistungsfähiger, als es einst Desktop-Computer waren. Entsprechend ist es nicht ungewöhnlich, auf ihnen mehrere Prozesse für verschiedene Anwendungen auszuführen. Allerdings fehlt Embedded-Betriebssystemen wie Zephyr der zugleich starke und flexible Speicherschutz, wie er von Desktop-Betriebssystemen bekannt ist. Das wollte der Hardwareentwickler und Sicherheitsforscher Andrew Huang alias Bunnie(öffnet im neuen Fenster) ändern.

Beim 39. Chaos Communication Congress (39C3) in Hamburg(öffnet im neuen Fenster) stellte er zusammen mit Sean Cross das Betriebssytem Xous(öffnet im neuen Fenster) und den extra dafür entwickelten Baochip-1x vor. Letzterer enthält einen mit Memory Management Unit (MMU) ausgestatteten Vexriscv(öffnet im neuen Fenster)-Kern.

So etwas sei von ARM, trotz des vergleichsweise geringen Hardwareaufwands, laut Huang nicht zu erwarten – damit die Produktdifferenzierung zwischen Cortex-M und Linux-fähigen und deutlich teureren Cortex-A erhalten bleibe. Mikrocontroller verfügen bestenfalls über eine schwächere Memory Protection Unit (MPU).

Ein Betriebssystem mit der Sicherheit von Rust

Das Betriebssystem Xous ist vollständig in Rust implementiert und übernimmt dessen Sicherheitskonzepte. So ist jede Speicherseite immer nur einem Prozess zugeordnet, der sie beschreiben darf.

Die Zuordnung muss aktiv geändert werden, um einem anderen Prozess Zugriff zu gewähren. Gelöst wird dies über die von der MMU überwachten Zugriffsrechte. Xous ist als Mikrokernel implementiert, der Großteil der Funktionalität wie präemptives Multitasking ist über Prozesse gelöst.

Alle Prozesse laufen dabei mit gleicher Priorität, Daten werden mittels Message Passing ausgetauscht. Auch hierfür wird wieder die MMU genutzt, indem der Sender Daten in eine Speicherseite schreibt und diese anschließend dem Empfänger zur Verfügung stellt.

Der spannendste Teil des Vortrags war allerdings die Geschichte des Baochip-1x.

Per Anhalter zum Prozessor

Begonnen hatte die Entwicklung mit einem FPGA (Field-Programmable Gate Array). Huang wollte allerdings möglichst schnell einen eigenen Chip haben, denn, so seine Aussage: Jede Zeile Code, die für ARM geschrieben wird, stärkt die Bindung an den Prozessorentwickler und damit die Dominanz der von ihm als unsicher gebrandmarkten existierenden Embedded-Betriebssysteme.

Vom Anspruch, auch die Fertigung komplett transparent und damit vertrauenswürdig zu machen, verabschiedete Huang sich schnell – hier wären lediglich alte Prozesse infrage gekommen. Aber auch die hohen Kosten eines eigenen Chips konnten er und seine Mitstreiter nicht stemmen. Damit war die Idee geboren, den eigenen Vexriscv-Kern in einem Chip eines anderen Herstellers unterzubringen – als Anhalter, wie Huang es nannte.

Das Unternehmen Crossbar(öffnet im neuen Fenster), das resistiven Speicher (ReRAM) entwickelt, hat das Design mitgenommen. Crossbar plante bereits einen eigenen Chip mit Cortex-M sowie dem eigenen ReRAM und hatte Huang als Berater angefragt. In diesem Chip fand der Baochip-1x in ungenutzten Bereichen, dem sogenannten Dark Silicon, Platz – vergrößerte diesen also nicht einmal.

Neben dem Vexriscv-Kern sind noch vier angepasste Picorv32-Kerne verbaut, die ähnlich funktionieren wie die Programmable-IO-Einheiten (PIO) bei RP2040 und RP2350.

Ein Chip zum Reinschauen

Beim 39C3 verteilte Huang bereits einige Muster des mit dem Baochip-1x bestückten Dabao-Platine. Sie soll bald auch über Crowdsupply(öffnet im neuen Fenster) erhältlich sein. Darauf ist der bei TSMC in einem 22-nm-Prozess gefertigte Chip ohne das übliche Package aus Kunstharz montiert – ebenfalls ein Sicherheits-Feature. So lassen sich mittels UV-Licht die Halbleiterstrukturen sichtbar machen und eventuelle Manipulationen erkennen.

Der Vexriscv-Kern taktet im Baochip-1x mit 350 MHz, die Picorv32 mit 700 MHz. Dazu gibt es 2 MByte SRAM und 4 MByte ReRAM als Programmspeicher. Der Cortex-M ist in den Chips deaktiviert, die USB-2.0-Schnittstelle überträgt 480 MBit/s (Highspeed). Weitere Details sind über die Baochip-Homepage(öffnet im neuen Fenster) zu finden.


Relevante Themen