Eine Entwicklergruppe aus China entwickelt den Asterinas-Kernel, der in der Programmiersprache Rust geschrieben ist und fĂŒr den Einsatz in allgemeinen Betriebssystemen vorgesehen ist. Um die Integration mit bereits entwickelten Systemkomponenten zu erleichtern, bietet der Kernel eine ABI (Application Binary Interface), die mit dem Linux-Kernel kompatibel ist und als dessen Ersatz verwendet werden kann. Der Code des Projekts wird unter der Lizenz MPL (Mozilla Public License) verbreitet.
Das Projekt entwickelt sich seit Herbst 2022 und hat bereits in diesem Jahr das Ziel, ein Niveau zu erreichen, das fĂŒr eine breite Nutzung geeignet ist. virtuellen Maschinen mit der Architektur x86-64. Ab dem nĂ€chsten Jahr plant man, den Fokus auf die Implementierung der UnterstĂŒtzung fĂŒr Hardware und andere CPU-Architekturen zu verlagern. Zu den priorisierten Anwendungsbereichen gehören Systeme, die auf Linux ABI basieren, aber ein höheres MaĂ an Sicherheit erfordern. Zum Beispiel wird empfohlen, Asterinas zur Schaffung einer geschĂŒtzten Systemumgebung zu verwenden. virtuelle Maschinen, wobei Technologien wie ARM CCA, AMD SEV und Intel TDX zur Isolation verwendet werden, sowie auf der Host-Systemseite zur AusfĂŒhrung von Containern.
Um das Risiko von Speicherfehlern zu verringern, die die Hauptquelle fĂŒr die gefĂ€hrlichsten SicherheitsanfĂ€lligkeiten darstellen, wurde bei der Programmierung von Asterinas die Programmiersprache Rust und eine Strategie zur eingeschrĂ€nkten Verwendung von Unsafe-Blöcken eingesetzt. Der Kernel wurde unter Verwendung der Framekernel-Architektur entwickelt, in der die Entwickler versucht haben, die Isolationsmöglichkeiten von Mikrokernen mit der Effizienz monolithischer Kerne zu verbinden.
Die Kernel-Komponenten in Asterinas werden im gemeinsamen Adressraum platziert, und die Sicherheit wird durch logische Trennung von sicherem Code und potenziell unsicherem Code erreicht. Der Kernel ist in zwei Teile gegliedert, die in Rust geschrieben sind: OS Framework und OS Services. In OS Services ist die Verwendung von Unsafe-Blöcken verboten, und alle Low-Level-Operationen, die die AusfĂŒhrung von Code in Unsafe-Blöcken erfordern, wurden in OS Framework verlagert und sind nur ĂŒber eine High-Level-API zugĂ€nglich. Alle Systemaufrufe, Dateisysteme und Treiber werden auf der Ebene von OS Services umgesetzt und dĂŒrfen keine Unsafe-Blöcke enthalten.
Bei der Entwicklung von Systemdiensten und Kernmodulen wird empfohlen, das OSDK (Operating System Development Kit) zu verwenden, das das Dienstprogramm cargo-osdk zur Erstellung, Kompilierung, Testung und AusfĂŒhrung von Betriebssystemkomponenten bereitstellt. FĂŒr Entwickler wurde ein Satz von Bibliotheken OSTD (Operating System Standard Library) vorbereitet, der eine Bearbeitung der Standardbibliotheken Rust (crate std) darstellt, die fĂŒr die Verwendung in Betriebssystemkomponenten angepasst wurde.
Quelle: opennet.ru
