Kerla:Rustで記述され、LinuxABIと互換性のある新しいカーネル

Kerlaプロジェクトに関する情報が最近リリースされました。これは、Rust言語で記述されたオペレーティングシステムカーネルとして開発されています。 コードは、Apache2.0およびMITライセンスの下で配布されます。 このプロジェクトは、C言語で書かれたマイクロカーネルオペレーティングシステムReseaの作成で知られる日本の開発者SeiyaNutaによって開発されています。

新しいカーネルは最初に狙いを定めます ABIレベルでLinuxカーネルとの互換性を確保します。 これにより、Linux用に構築された変更されていないバイナリをKerlaベースの環境で実行できるようになります。

ケララ州について

Kerlaはモノリシックオペレーティングシステムカーネルです Rustでゼロから作成されました。 開発の現段階では、Kerla x86_64アーキテクチャを備えたシステムでのみ実行できます また、write、stat、mmap、pipe、pollなどの基本的なシステムコールを実装し、シグナル、無名パイプ、コンテキストスイッチをサポートします。 fork、wait4、execveなどの呼び出しは、プロセスを制御するために提供されます。 ttyおよび疑似端末(pty)がサポートされています。 initramfsファイルシステム(ルートFSのマウントに使用)の中で、tmpfsとdevfsは引き続きサポートされています。

TCPおよびUDPソケットをサポートするネットワークスタックも提供されます。 smoltcpライブラリに基づいています。 開発者は、コントローラーvirtio-netを使用してQEMUまたはFirecracker VMで動作するブート環境を準備しました。これには、SSH経由で既に接続できます。。 Muslはシステムライブラリとして使用され、BusyBoxはユーザーユーティリティとして使用されます。 Dockerに基づいて、Kerlaカーネルを使用して独自のinitramfsブートを作成できるビルドシステムが用意されています。

これまでのところ、新しいカーネルについての詳細はほとんど提供されていませんが、Kerlaの機能に最も注目を集めているのは、Rustで記述されているという事実です。 それで、Rustでそれを書くことは他の言語や既存のコードよりも何か利点がありますか? 多くの人がこの質問に「はい」と答え、言語が提供するメモリセキュリティの利点を強調しました。

また、実行時のメモリアクセスの精度を評価するときにも提供されます。 そのうえ、Mozillaは、Rustが整数のオーバーフローに対する保護を提供すると信じています、使用前に変数値の必須の初期化を必要とし、デフォルトで参照と不変変数の概念を採用し、論理エラーを最小限に抑えるための強力な静的型付けを提供し、パターンのマッチングを通じて入力処理を簡素化します。

利点の中で、コードの品質を評価するための統合ツールを強調します 実際のハードウェアだけでなく、QEMUでも実行できる単体テストを作成します。 基本的に、Mozillaは、コンパイラがエラーを拒否するため、Rustのデバッグが容易であると考えています。 しかし、入り江はRustのいくつかの欠点を指摘しました。

「C ++と同様に、テンプレートを使用せずに慣用的なRustを作成することはほとんど不可能であるため、バイナリが肥大化し、コンパイル時間が遅くなります。 これらのコンパイル時チェックもすべてコストがかかります。 また、何かを書き直すと、古い成熟したコードベースが失われ、妥当な時間内に同様の品質のコードベースを作成する方法はありません。 Rustでプログラムを書き直すよりも、拡張する方がはるかに優れています。 Rustでプログラムを書き直すよりも、プログラムを拡張する方がよいでしょう」とソフトウェアエンジニアは言います。

その作成者によると、Linux開発者が 特にLinusTorvalds自身、 彼らは、Rustでカーネル全体を書き直すというアイデアを拒否しました。

「安全なリンクを作成するためにいくつかの作業を行ってから、Rustで追加のコードを記述しても、その成熟したコードを楽しむことができます。 (これはLinuxが行うことであり、Rustでカーネルモジュールを作成する機能を追加するための取り組みがあります)」と彼は付け加えました。 Linux開発者は、約XNUMX年間、Rust言語を使用して特定の新しいカーネルモジュールを作成する可能性を模索してきました。 これにより、「RustforLinux」プロジェクトが生まれました。

最後に、それについてもっと知りたい場合は、詳細を調べることができます 次のリンクで。


コメントを残す

あなたのメールアドレスが公開されることはありません。 必須フィールドには付いています *

*

*

  1. データの責任者:MiguelÁngelGatón
  2. データの目的:SPAMの制御、コメント管理。
  3. 正当化:あなたの同意
  4. データの伝達:法的義務がある場合を除き、データが第三者に伝達されることはありません。
  5. データストレージ:Occentus Networks(EU)がホストするデータベース
  6. 権利:いつでも情報を制限、回復、削除できます。