Das Unternehmen Vivo hat den Code des BlueOS-Kernels, der in Rust geschrieben ist, geöffnet.

Das Unternehmen Vivo, das etwa 10 % des weltweiten Smartphone-Marktes hält (5. Platz unter den Smartphone-Herstellern), hat den ersten offiziellen öffentlichen Release des Betriebssystemkerns BlueOS (Blue River OS) vorgestellt. Das Betriebssystem BlueOS wird seit 2018 entwickelt und wird bereits in der Vivo Watch-Serie eingesetzt. Vivo arbeitet auch an der Implementierung von BlueOS in Smartglasses, Robotern, intelligenten Terminals und konsumbezogenen KI-Geräten. Der Kerncode ist in Rust geschrieben und unter der Lizenz Apache 2.0 veröffentlicht. Auch die Systemframeworks von BlueOS sind in Rust verfasst.

Das Betriebssystem BlueOS wird von Anfang an mit dem Fokus auf Sicherheitsaspekte entwickelt und verwendet die Programmiersprache Rust, um Schwachstellen zu vermeiden, die durch Speicherfehler verursacht werden. Statistiken von Google und Microsoft zeigen, dass 70 % aller Schwachstellen in Betriebssystemen auf solche Fehler zurückzuführen sind. Um einen sicheren Umgang mit Speicher zu gewährleisten, kombiniert BlueOS die Verwendung von smarten Zeigern zur Laufzeit mit Überprüfungen zur Kompilierungszeit, die von der Sprache Rust bereitgestellt werden (Tracking von Objektbesitz, Überprüfung der Variablenübertragung, Berücksichtigung der Lebensdauer von Objekten).

Der Kern von BlueOS (Blue River Kernel) ist auf minimalen Ressourcenverbrauch optimiert und kann auf Embedded-Plattformen, mobilen Geräten und im Internet der Dinge eingesetzt werden. In der minimalen Konfiguration benötigt der Kernel lediglich 13 KB RAM für den Betrieb. Gleichzeitig unterstützt der Kernel moderne Prozessorarchitekturen, einschließlich ARM und RISC-V. Über dem Kernel wird eine Standard C-Bibliothek bereitgestellt, die die in POSIX definierten Programmierschnittstellen sowie die rust-std-Bibliothek unterstützt.

Der Kernel bietet einen Task-Scheduler, ein Dateisystem, einen Speicherverwaltung-Mechanismus, einen Netzwerk-Stack und eine Reihe von Treibern. Es werden mehrere Scheduling-Algorithmen unterstützt, darunter sowohl Algorithmen für eine gleichmäßige Verteilung der Zeitscheiben zwischen Prozessen als auch Echtzeitalgorithmen auf Basis von Prioritätsberechnungen. Es stehen mehrere Speicherzuweisungsalgorithmen zur Verfügung, die für unterschiedliche Nutzungsszenarien optimiert sind.

Es wird ein eigenes Dateisystem mit klassischer hierarchischer Architektur basierend auf Inodes sowie die Dateisysteme tmpfs, devfs, sysfs, procfs, nfs und fat32 bereitgestellt. Der TCP/IP-Stack unterstützt die POSIX-Socket-API, socketfd und die Verarbeitung von Daten im blockierenden und nicht-blockierenden Modus und kann in Konfigurationen mit mehreren Netzwerkkarten verwendet werden. Zur Reduzierung der Overheads bei der Datenübertragung wird eine Zero-Copy-Architektur eingesetzt, die eine Zwischenpufferung ausschließt.

Für die Entwicklung von Treibern wird eine Abstraktionsschicht für den Zugriff auf Hardware angeboten, die es ermöglicht, Treiber in der Sprache Rust zu erstellen sowie bereits für andere Kerne entwickelte Treiber in C zu portieren. Die Dokumentation zum Kernel beschränkt sich derzeit auf Anweisungen zum Erstellen und Testen sowie auf Hinweise zur Implementierung eigener Systemaufrufe und zur Beschreibung grundlegender Datentypen. Zum Testen wird empfohlen, QEMU (mps2-an385, mps3-an547, virt-aarch64, virt-riscv64) oder das Raspberry Pi Pico2-Board zu verwenden.

Quelle: opennet.ru

60GB SSD 8Gb DDR4