Asterinasプロジェクトは、汎用オペレーティングシステムでの使用を想定してRustで記述されたカーネル、バージョン0.19をリリースしました。このカーネルは、カーネルと互換性のあるABI(アプリケーションバイナリインターフェース)を提供します。 Linux 代わりにこれらを使用することもできます。AsterinasカーネルとNixOSシステム環境を組み合わせたAsterinas NixOSディストリビューションは、並行して開発されています。このプロジェクトのコードは2022年から開発されており、MPL(Mozilla Public License)の下で配布されています。
現在、カーネルには240以上のシステムコールが実装されています。 LinuxAsterinas NixOS ディストリビューションは、100 を超える NixOS パッケージとともに Asterinas カーネル上で動作することが検証されています。サポートされているパッケージには、Xfce、Firefox、bash、systemd、Podman、QEMU、rsync、Apache httpd、nginx、SQLite、Redis、Clang、GCC、Go、Lua、Node.js、OpenJDK、Perl、PHP、Python、Ruby、Rust、Git、FFmpeg、PyTorch、TensorFlow、Ollama、Codex などがあります。
カーネルは、x86-64 アーキテクチャを完全にサポートし、ARM64、RISC-V 64、および Intel TDX に基づく分離を備えた x86-64 を部分的にサポートし、LoongArch 64 アーキテクチャの初期サポートも提供します。優先アプリケーション分野には、以下のシステムが含まれます。 Linux ABI(アーキテクチャ・ベース・インターフェース)は存在するが、より高いレベルのセキュリティが求められる。例えば、Asterinasはセキュアなシステム環境の構築に利用されることが提案されている。 仮想マシン分離には ARM CCA、AMD SEV、Intel TDX などのテクノロジが使用され、ホスト システム側ではコンテナの起動が保証されます。
メモリエラーの発生確率を低減するため、AsterinasはRust言語と限定的なunsafeブロックの使用を採用しています。メモリエラーは最も危険な脆弱性の主な原因となります。カーネルはフレームカーネルアーキテクチャを使用して構築されており、マイクロカーネルの分離機能とモノリシックカーネルの効率性を両立させようとしています。
Asterinasのカーネルコンポーネントは共有アドレス空間に配置され、セキュリティは、潜在的に脆弱性を持つ可能性のあるコードからセキュアなコードを論理的に分離することによって実現されます。カーネルは、Rustで記述されたOSフレームワークとOSサービスの2つの部分に分かれています。OSサービスでは、安全でないブロックの使用が禁止されており、安全でないブロック内でのコード実行を必要とするすべての低レベル操作はOSフレームワークに移動され、高レベルAPIを介してのみアクセス可能です。すべてのシステムコール、ファイルシステム、およびドライバはOSサービスレベルで実装されており、安全でないブロックを含めることはできません。
システムサービスやカーネルモジュールの開発には、OSDK(オペレーティングシステム開発キット)が提供されており、オペレーティングシステムコンポーネントの作成、ビルド、テスト、実行を行うためのcargo-osdkユーティリティが含まれています。開発者は、OSTD(オペレーティングシステム標準ライブラリ)セットにもアクセスできます。これには、オペレーティングシステムコンポーネントでの使用に適したRust標準ライブラリ(crate std)が含まれています。
Asterinas 0.19の変更点には以下が含まれます。
- DRM(Direct Rendering Manager)サブシステム、/dev/driデバイス、KMS(カーネルモード設定)インターフェース、および「modesetting」ドライバが実装され、フレームバッファを使用する従来のfbdevドライバの代わりに、X.Org ServerとMesaに基づいた標準グラフィックススタックを起動できるようになりました。
- AArch64(ARM64)アーキテクチャのサポートが追加され、x86-64と並んで主要な開発アーキテクチャとして利用できるようになりました。AArch64向けに第2レベルのサポートが実装され、基本機能、継続的インテグレーションテスト、および部分的なテストカバレッジが保証されます。
- AsterinasをKata ContainersおよびConfidential Containersのゲストシステムとして動作させるための作業が継続された。標準的なカーネルファイルシステムテストスイートに合格する新しいOverlayfs実装が提案された。 Linux xfstestsも追加されました。新しいマウントAPIが実装されました。virtio-fsコードが安定化されました。プロトコルサポートが追加されました。
QEMU、クラウドハイパーバイザー、Firecrackerなどで使用されているダイレクトブート方式。起動時間が短縮されました。 仮想マシンそのメモリは、Intel TDXテクノロジーを使用して暗号化されています。 - OSTD(オペレーティングシステム標準ライブラリ)フレームワークは、Intel VMXをベースとした最小限のハイパーバイザーを作成するための基本的なAPIを実装しています。
- Rustドライバ開発モデルのサポートを追加しました。カーネルコンポーネントに似た機能を持つアスターデバイスコンポーネントを追加しました。 Linux ドライバ開発のための基本的なプリミティブと抽象化を備えているが、安全でないコードを使用せずにRustで記述されている。
- セルフホスティングが可能になりました。AsterinasカーネルとNixOSパッケージがインストールされた環境から、Asterinasカーネルをビルドできるようになりました。
出所: オープンネット.ru
