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

Die Firma Vivo, die etwa 10 % des weltweiten Smartphone-Marktes einnimmt (5. Platz unter den Smartphone-Herstellern), hat die erste offizielle öffentliche Version des Betriebssystemkerns BlueOS (Blue River OS) vorgestellt. Das Betriebssystem BlueOS wird seit 2018 entwickelt und wird bereits in der Smartwatch-Reihe Vivo Watch eingesetzt. Vivo arbeitet auch an der Anwendung von BlueOS in Smart Glasses, Robotern, intelligenten Terminals und Verbrauchs-AI-Geräten. Der Kern ist in der Programmiersprache Rust geschrieben und unter der Apache 2.0-Lizenz veröffentlicht. Die System-Frameworks von BlueOS sind ebenfalls in Rust geschrieben.

Das Betriebssystem BlueOS wird ursprünglich mit Blick auf die Sicherheit entwickelt und nutzt die Sprache Rust, um Schwachstellen zu vermeiden, die durch Speicherfehler entstehen, die laut Google und Microsoft 70 % aller Schwachstellen in Betriebssystemen ausmachen. Für eine sichere Arbeit mit dem Speicher wird in BlueOS eine Kombination aus der Verwendung von Smart Pointern zur Laufzeit und Prüfungen zur Kompilierungszeit verwendet, die von der Sprache Rust bereitgestellt werden (Objektbesitzverfolgung, Überprüfung der Variablenverleihung, Berücksichtigung der Lebensdauer von Objekten).

Der BlueOS-Kern (Blue River Kernel) ist für einen minimalen Ressourcenverbrauch optimiert und kann auf eingebetteten Plattformen, mobilen Geräten und Internet-of-Things-Systemen eingesetzt werden. In der minimalen Konfiguration benötigt der Kern nur 13 KB RAM für seine Funktion. Dabei unterstützt der Kern moderne Prozessorarchitekturen, einschließlich ARM und RISC-V. Über dem Kern ist eine Standard-C-Bibliothek implementiert, die die in der POSIX-Norm definierten Programmier-Schnittstellen unterstützt, sowie die Bibliothek rust-std.

Der Kern bietet einen Task-Scheduler, ein Dateisystem, einen Speicherverwaltungmechanismus, einen Netzwerk-Stack und eine Reihe von Treibern. Es werden mehrere Scheduling-Algorithmen unterstützt, darunter Algorithmen zur gleichmäßigen Verteilung von Zeitquantum zwischen Prozessen sowie Echtzeitalgorithmen, die auf Prioritätsberechnungen basieren. Es stehen mehrere Speicherallokierungsalgorithmen zur Verfügung, die für verschiedene Nutzungsszenarien optimiert sind.

Es wird ein eigenes Dateisystem mit klassischer hierarchischer Architektur auf Basis von Inodes bereitgestellt, sowie die Dateisysteme tmpfs, devfs, sysfs, procfs, nfs und fat32. 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 Overheadkosten bei der Datenübertragung kommt eine Zero-Copy-Architektur zum Einsatz, die eine Zwischenpufferung ausschließt.

Für die Entwicklung von Treibern wird eine Schicht zur Abstraktion des Zugriffs auf die Hardware angeboten, die es ermöglicht, Treiber in Rust zu erstellen und Treiber in C, die bereits für andere Kerne entwickelt wurden, zu portieren. Die Dokumentation zum Kern beschränkt sich bisher auf Anleitungen zum Bau und Testen sowie 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

Zuverlässiges Webhosting mit DDoS-Schutz, VPS- und VDS-Server kaufen 🔥 Zuverlässiges Webhosting mit DDoS-Schutz, VPS- und VDS-Server kaufen | ProHoster