本文へ
ハクソク

世界を動かす技術を、日本語で。

FTL: クラウド向けの新しいオペレーティングシステム

元記事: 原文(ftl-os.org)

概要

  • FTL は、ユーザ空間で動作する OSライブラリ 型の新しいOS設計
  • Linuxバイナリ互換性 と 高い分離性 を両立
  • 軽量・安全なコンテナ と 高性能 を両立するカーネル設計
  • アプリ感覚でOS機能追加・デバッグ が可能
  • RustやNode.js 等、幅広いアプリケーション対応予定

FTLとは何か

  • FTL は、ユーザ空間で動作する OSをライブラリとして構築 できる新しいオペレーティングシステム
  • ユーザ空間OS設計により、 機能追加・デバッグ・アップグレード をアプリケーション開発のような感覚で実現
  • FTLカーネルは、 既存のモノリシックカーネルよりも優れた分離性 を提供
    • 軽量な ハードウェアベースの分離 (ユーザモード)を活用
    • ハイパーバイザーのようなインターフェースを持つ
  • ベアメタルマシン不要、仮想環境やクラウド上で動作可能
  • Linuxバイナリ互換性 を実現し、既存のLinuxアプリケーションをそのまま実行可能
    • 例:Rust製HTTPサーバがFTL上で稼働

FTLの特徴と設計

  • 各コンテナは、 ユーザ空間OS(共有ライブラリ) として動作
    • Linuxプロセス、VFS、TCP/IPなどの主要OS機能を実装
  • FTLカーネルは、 最小限のインターフェース でLinuxシステムコールをユーザ空間で実装可能に
    • ハイパーバイザーのような役割
  • マイクロカーネルの柔軟性・安全性 と モノリシックカーネルの性能・シンプルさ を両立
  • Unikernel的な特化アプリケーション もPOSIX抽象化なしで実行可能

セキュリティ・拡張性

  • FTLの目標は、 軽量コンテナをVM並みに安全 にし、アプリケーションに新しいOSレベルの能力を提供
  • OSが単なる ライブラリ であるため、 カーネルやeBPFの知識がなくても拡張 可能
    • printfs追加、セキュリティアップデート、新機能追加が容易かつ安全

ロードマップ

  • 2026年9月: Linux HTTPサーバのFTL上稼働(v0.0.1リリース済)
  • 2026年10月: Async Rustアプリサポート(Linuxスレッド、epoll等)(v0.1.0リリース済)
  • 2026年11月: ファイルシステム対応
  • 2026年12月: Node.js/Goサポート
  • 2027年1月: SMP、コンテナイメージ、64bit Armサポート

参考リンク


FTL は、クラウドや次世代アプリケーション向けに新たなOS設計の可能性を切り開くプロジェクト

提供: ハクソク · 要約更新:

AIによる日本語要約です。内容は原文とあわせてご確認ください。

Hacker Newsの議論を読む

Hackerたちの意見

FTL v0.1.0がリリースされたよ!非同期Rustサポート(マルチスレッドのTokioランタイム)や、Linux互換レイヤーの欠けてた部分がたくさん追加されたみたい。 (私のプロジェクトじゃないけど)

これってただの趣味なの?GNUみたいに大きくてプロフェッショナルにはならないのかな?

└

子供たちはそのリファレンスを理解できないと思うよ。

└

早く、著者のシャツなしでビール飲んでる写真を見つけよう!消される前にね。

└

80386でしか動かないんだ、だってそれしか持ってないから。

└

単なる趣味人じゃなくて、熱心なファンだよ。[1][2] 前に[3][4]。 [1] https://x.com/seiyanuta [2] https://seiya.me/ [3] https://news.ycombinator.com/item?id=42631873 [4] https://news.ycombinator.com/item?id=28986229 * その言及は分かってるし、参照対象のクラスを変えてることも理解してるよ。とにかく、FTL(次のやつも…)FTW、神のご加護を。

「クラウド」のための「OS」って何を意味するの?デバイスモデルのためにKVMやパラバーチャリゼーションに委ねるってこと?それとも、ネイティブハードウェア上で動くカスタムOSをゼロから設計してるの?Linuxの機能を再実装しないように、ハードウェアサポートにどんな制約をかけてるの?「クラウド」向けに宣伝されてるのは、実行するデプロイマシンが事前にわかってるから?それとも、カーネル開発者たちにとってハードウェアサポートは(比較的)簡単な問題だと思われてるのかな?それとも、マイクロカーネル=勝利=Linuxの機能以上のことが実装できるって賭けなの?プロジェクトの最終的な目標が気になるな、今あるものだけじゃなくてね(そうじゃないと、今のところの答えは1文目になっちゃうけど)。

└

OSは一つだけ… BIOSだよ!

└

ユーザースペースは簡単な部分だ。私たちのコンピュータの風景を定義する歴史的な問題は、現代のカーネルがブロッキングAPIの幻想を提供しようとすごく頑張っていることだ。ファイルを書き込むと、時間がかかって、その後終わったら続ける。これは煙と鏡で、ハードウェアが全くそう動いているわけじゃない! 常に「書いて、忘れろ」だ。これを書いて、メモリの領域を渡すから、終わったら起こしてくれ。根本的に非同期なんだ。OSはスレッドやプロセスの抽象を提供して、APIがブロッキングだと思わせる。ひどい副作用は、言語デザイナーが非同期プログラミングについて考える必要がなくなることだ! ファイルに書き込むとき、実行中にバイトが移動しないように気を使う必要がない。いや、POSIX APIにバインドして、このブロッキングの世界の幻想を楽しめばいいんだ。 - Matklad https://alexalejandre.com/interviews/interview-with-matklad/

これは実際面白いね。ほとんどのコンテナは独立したカーネルをまったく必要としないから。もちろん、これでコンテナは実質的にchrootジャイルに近づくけど(それはいいことだし)、いくつかの機能が制限されることになるね。

こちらが著者のサイトだよ:https://seiya.me -- Vercelで働いてるみたいで、かなり信頼できそう。

自分のアプリとハードウェア用にエージェントにアセンブリを生成させて、それに直接ブートしてるよ。

Hacker Newsで議論の続きを見る