MotorOS - x64仮想環境向けのRustファーストオペレーティングシステム

[PR]記事内のアフィリエイトリンクから収入を得る場合があります
  • URLをコピーしました!

Motoros

C/C++言語に変わるシステムプログラミング言語として注目を集めている「Rust」言語。

Linuxへの導入やLinux互換を目指して開発が進められているOS「Maestro」の登場など、実際にOS開発での活用の事例が見られるなか、クラウド向けの軽量かつセキュアなOS「Motūrus OS(Motor OS)」の開発が進められていることがわかりました。

Motor OSは、Web関連や、「サーバーレス」、エッジキャッシングなど、仮想マシンベースのワークロードをターゲットにした新しいオペレーティングシステムです。

現在、ほとんどの仮想化ワークロードはLinuxを採用していますが、Linuxは先進的な機能を搭載する一方、仮想化ワークロードにとっては理想的とはいえない厄介な問題を抱えています。

  • Linuxはベアメタル用に最適化されているため、VMでは非効率となる。ブロックキャッシュの中腹、ベージテーブルウォークの重複、ホストスケジューラーの問題など。
  • Linuxは使いにくい。Docker、Nix OS、「サーバーレス」などは全て、Linuxの複雑さのために存在する。
  • Linuxは歴史的事情によりあまり安全ではない。

仮想化ワークロードにフォーカスしてゼロから構築された新しいオペレーティング・システムは、Linuxよりもはるかにシンプルでセキュアなものにすることができるとのこと。

Motor OSはRustで構築されたマイクロカーネルベースのオペレーティングシステムで、仮想化ワークロードに特化しており、現在、x64 KVMベースの仮想マシンをサポートし、QemuまたはCloud Hypervisorで実行することができます。

現時点では、ほとんどのサブシステムは開発中の段階ですが、例えばWebサーバーなどを動かすことができるそうです。

現在実行可能な機能は以下の通りです。

  • boots via MBR (Qemu) or PVH (Cloud Hypervisor) in about 200ms
  • himem micro-kernel
  • scheduling:
    • a simple multi-processor round robin (SMP)
    • in-kernel scheduling is cooperative
      • the kernel is very small and does not block, so does not need to be preemptible
    • the userspace is preemptible
  • memory management:
    • only 4K pages at the moment
    • stacks are guarded
    • page faults in the userspace work and are properly handled (only stack memory allocations are currently lazy)
  • I/O subsystem (in the userspace)
    • VirtIO-BLK and VirtIO-NET drivers
    • two simple filesystems (srfs and flatfs)
    • smoltcp-based networking (TCP only at the moment)

      • a simple httpd is provided
  • the userspace:
    • multiple processes, with preemption
    • threads, TLS
    • Rust's standard library mostly ported
      • Rust programs that use Rust standard library and do not depend, directly or indirectly, on Unix or Windows FFI, will cross-compile for Motūrus OS and run, subject to "what does not work" below
    • a simple unix-like shell in the serial console

Motoros screen

現在、MotorOSのインストール用イメージは公開されておらず、Linux環境上で自力でビルドする必要があります。Ubuntu 22.04上(WSL2にも対応)でビルドする方法を説明したドキュメントが公開されています。

プロジェクトの開発者がHacker Newsに登場し、長期的な計画や、コンパイラ、バイナリの互換性など、Motor OSに関する疑問に超えています。

I'm the project author/dev. Thanks a lot for posting this, and for comments/discussions!
I see two main concerns raised here:

(a) long-term viability and support (b) compilers, binary compatibility, etc.

While the first concern is definitely valid, and without a community this project will not succeed, I do believe that potential benefits of Motor OS (or a similarly focused/structured project) will eventually result in a widely used new operating system. There are major problems with Linux inside VMs (and sometimes outside), and the Linux devs are not focused on this enough to clean things up anytime soon. I work on Linux Kernel at my day job, I know.

Re: compiler instability, binary compatibility, etc.: I'm sorry, I don't understand what is the issue here. The latest Linux kernel can be compiled with different GCC or LLVM toolchains on x86_64, and the result will happily run old binaries compiled years ago with who knows what. repr(C) structs in rust are stable... So why so many concerns here?

Again, thank you all for your comments and questions - I'm happy to answer more (at least until my day job kicks in).

私はプロジェクトの作者/開発者です。この投稿とコメント/議論に感謝します!
私はここで2つの主要な懸念が提起されたと見ている:

(a) 長期的な実行可能性とサポート (b) コンパイラ、バイナリの互換性など。

最初の懸念は間違いなく妥当で、コミュニティがなければこのプロジェクトは成功しないだろうが、Motor OS(または同様の焦点を絞った/構造化されたプロジェクト)の潜在的な利点は、最終的に広く使われる新しいオペレーティングシステムにつながると信じている。VM内部(そして時には外部)のLinuxには大きな問題があり、Linuxの開発者たちはすぐに事態を一掃できるほどこの問題に集中していない。私は本業でLinuxカーネルに携わっている。

Re:コンパイラの不安定性、バイナリの互換性など:申し訳ないが、何が問題なのか理解できない。最新のLinuxカーネルは、x86_64上で異なるGCCやLLVMツールチェーンでコンパイルすることができ、その結果、何年も前にコンパイルされた古いバイナリを、誰が知っているかわからないが、喜んで実行することができる。それなのに、なぜこんなに多くの懸念があるのでしょうか?

繰り返しになるが、コメントや質問をありがとう。

MotorOSの作者は、本業でLinuxカーネルに携わっているそうです。Rustの特徴を生かした野心的なプロジェクトとして注目を集めることになるかもしれません。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!
目次