このブログ投稿は、Xen Venture に関する私たちの将来の貢献に関する紹介シーケンスであり、スタックのさまざまな段階で、Rust の代替プログラムを調達することに関連しています。
🧅 コンテキスト
XCP-ng を構成するプラットフォーム全体には、かなり多くの多様なプログラムが含まれています: Xen (ハイパーバイザー) 、XAPI (API/ツールスタック)、SMAPI (ストレージ スタック) など、さまざまなものがあり、ゲスト ツールなどに感心します
このプラットフォームは、C、Python、OCaml に感心するさまざまな言語の組み合わせです。さらにはジョグ。 一部の部分は、1 つのプロットまたはその反対の虚弱であり、保守可能な危険がないことはありません。 私たちはその確率を利用してそれらのいくつかを再考し、その確率を使ってRustをテーブルに上げたかった.
🦀 Why Rust?
それには多くの理由があります。 おそらく、XCP-ng 内で使用されている言語が既に 4 つあると主張することに成功するとしたら、別の言語を追加する必要はありません。 幸いなことに、Jog は 1 つのコンポーネントで完全に使用されており、完全に交換することもできます。
技術面
問題の負荷
Rust は啓蒙的で閃光のようなものなので、他にどのような廃止を望みますか? また、さまざまなフェーズ (スタックの減少と改善) で機能するプログラミング言語も必要です。 私は Jog や Python が、XCP-ng でしがみつくことができるような低段階のものを処理することを信頼していません。 Rust の活用により、XCP-ng スタックの各場所 に なる適性がもたらされます
さらに、Rust はもはや「関心のある分野」の言語ではありません。 たとえば、山が多いにもかかわらず、OCaml (XAPI で使用される) はもはや十分に識別されておらず、この言語で経験した危険なしに機会を減らしています。 ここでも、オープンソース界隈が貢献者を集める可能性を減らしています。 私たちは、Rust が偏見を持たないことで、もはやその (雇用と貢献のそれぞれの) ブロッカーではなくなるかもしれないと考えています。 「欲しかった」ノウハウ.
そしてクロージング時にはお客様から絶賛の声を頂いております。 おそらくこれに関するさまざまな情報源を手に入れることができますが、最大のものはStack Overflowの年次色相であり、Rustは何十年もの間「愛されている」としてトップです:それはもはや永遠の流行ではありません.
Rust は、本質的に最も愛されている言語として、7 番目の 300 と 65 日を迎えています。ビルダーの 87% が、引き続き使用する必要があると発表しています。
オファー.
明らかに、最初の試みとして Xen ハイパーバイザーと Rust 全体を書き直す必要はありません。 実際には、ここでの私たちのフェアは、その周りのいくつかの小さな部分を交換するために開かれ、言語自体を「立ち上げ」、プラットフォーム全体のためにレンガを次々と交換する方法を考えることを可能にします.
これが、最初の 2 つの部分を Rust で書き直すことにした理由です: Linux ゲスト ツール (現在は Jog にある) とメトリクス デーモン (OCaml にある)
Linux ビジター ツール
この共有手順については、すぐに専用の記事を作成する予定です。 しかし、通常、これは Jog で記述されたインストルメントであり、Xen Venture 内ではホストされていませんが、XenServer チームによって Github でホストされています
コードの品質、応答性、およびパッケージ化の難しさは、この「上流」でそれらを処理します。 さらに、Citrix (現在の Cloud Instrument Neighborhood) XenServer 組織ではなく、Xen Venture リポジトリ内でホストされることを望んでいます。 そのため、必要な配置に
新しいリポジトリ
を作成しました 。
rrdd メトリクス デーモンこのセグメントは 小さなデーモンがDom0で実行され、エクスポートされたメトリクスを構築し、XAPI購入者全体が使用しますXen Orchestra. このデーモンは、XML でカプセル化された RRD を生成します。これは、デコードするための CPU 使用率の点で非常に高価です (そして、最初の場所で確実に生成されます)。 手順の小さな分離された共有として、Rust に変換することも適切な目標です!
ここにも、バース メトリクスをスタック全体に引き上げるためのより広いプロジェクトのセグメントがあります。私たちの仕事は、ハイパーバイザーの内部の
上流
からまっすぐに始まりました。 XAPI クライアントである Xen Orchestra と同じ量を転送します。 これは、Birth Metrics にずっとしがみつくには山積みかもしれません!🎯ターゲット
また、Rust でさまざまな「より大きなプロジェクト」に取り組んでおり、間違いなく次の 300 日と 65 日から開始されます (理想的にはもっと早い時期ですが、そこに到達する前に構築することがたくさんあります)。
xenopsd-ng )述べたように、Rust を使用することは、まったく新しい構造を取り戻し、技術的負債を奪う機会でもあります。 xenopsd-ng プロジェクトの開発は頻繁に行われます: 低段階の Xen API 用に単一のプログラムを実行しながら、Xen ツールスタックを統合するよう努めます。 ホットスタックはこれです:

、フェアはここに集まることです:

Rust で記述された、より優れた API 全体を表す 1 つのシェア。
部品の負荷?エコシステム全体を調査し、Rust で書き直される孤立した部分に優先順位を付けるかもしれません.
それは本当に適切なクイズです: Rust を Xen ハイパーバイザー自体の内部で直接起動するために開いていますか?
これは真に「ロー ステージ」のコード シェアであり、マイクロ カーネルであるため、おそらくすでに固執している可能性があります。主にCで書かれているのに対し(Meetingではほんの少し)、非常に整然とした見慣れない点が得られました。 または、C エコシステムの成熟度に関係なく、バグを生成するコンパイラの最適化を賞賛する何かにしがみつくことはもはや珍しくありません (gcc)!
だから、簡単に開くために奪うRustでより多くのスキルを獲得しながら、最初に物事とより良いステージ。 中止へのさまざまな要素は、「鋼に非常に閉ざされた」行動と実行可能な望ましくない側面の結果に関するRustの成熟度をビデオで表示することです.

とにかく、変更前のプロジェクトで開くには十分ですRust の Xen のコア。 しかし、しばらくすると、このRust lopeがそのレベルに関連することは間違いありません. Xen と Rust のそれぞれの世界での私たちの開発に従うために、この新しいシーケンスに合わせて終了してください!
)- 開発ブログ
さび
述べたように、Rust を使用することは、まったく新しい構造を取り戻し、技術的負債を奪う機会でもあります。 xenopsd-ng プロジェクトの開発は頻繁に行われます: 低段階の Xen API 用に単一のプログラムを実行しながら、Xen ツールスタックを統合するよう努めます。 ホットスタックはこれです:

、フェアはここに集まることです:
Rust で記述された、より優れた API 全体を表す 1 つのシェア。
部品の負荷?エコシステム全体を調査し、Rust で書き直される孤立した部分に優先順位を付けるかもしれません.
それは本当に適切なクイズです: Rust を Xen ハイパーバイザー自体の内部で直接起動するために開いていますか?
これは真に「ロー ステージ」のコード シェアであり、マイクロ カーネルであるため、おそらくすでに固執している可能性があります。主にCで書かれているのに対し(Meetingではほんの少し)、非常に整然とした見慣れない点が得られました。 または、C エコシステムの成熟度に関係なく、バグを生成するコンパイラの最適化を賞賛する何かにしがみつくことはもはや珍しくありません (gcc)!
だから、簡単に開くために奪うRustでより多くのスキルを獲得しながら、最初に物事とより良いステージ。 中止へのさまざまな要素は、「鋼に非常に閉ざされた」行動と実行可能な望ましくない側面の結果に関するRustの成熟度をビデオで表示することです.

とにかく、変更前のプロジェクトで開くには十分ですRust の Xen のコア。 しかし、しばらくすると、このRust lopeがそのレベルに関連することは間違いありません. Xen と Rust のそれぞれの世界での私たちの開発に従うために、この新しいシーケンスに合わせて終了してください!
)- 開発ブログ
さび
gcc)!
とにかく、変更前のプロジェクトで開くには十分ですRust の Xen のコア。 しかし、しばらくすると、このRust lopeがそのレベルに関連することは間違いありません. Xen と Rust のそれぞれの世界での私たちの開発に従うために、この新しいシーケンスに合わせて終了してください!
- 開発ブログ
- )
