プログラミング
FTL: クラウドのための新しいオペレーティングシステム
FTL: A new operating system for clouds (ftl-os.org)
要約
FTLは、ライブラリとしてOSを構築できる新しいユーザー空間OS設計です。コンテナ間の分離を強化し、VM並みのセキュリティとパフォーマンスを両立させることを目指しています。Linuxバイナリとの互換性もあり、既存のアプリケーションをFTL上で安全に実行できます。
全文翻訳
FTLとは?ライブラリとして独自のOSを構築できます。このユーザー空間OS設計により、アプリケーションを書くように、OSの機能追加、デバッグ、安全なアップグレードが容易になります。FTLカーネルは、軽量なハードウェアベースの分離(ユーザーモード)に基づくハイパーバイザーライクなインターフェースにより、既存のモノリシックカーネルよりもコンテナ(ユーザー空間OSインスタンス)を効果的に分離します。ベアメタルマシンは不要です。FTLはLinuxバイナリと互換性があります。例えば、このウェブサイトを提供しているRustベースのHTTPサーバーは、FTL上で実行されているLinuxアプリケーションです。POSIX抽象化なしで、Unikernelライクな特殊化されたアプリケーションを実行することも可能です。
仕組み
各コンテナはユーザー空間OSを実行します。これは、Linuxプロセス、VFS、TCP/IPなどのほとんどのOS概念を実装する共有ライブラリです。FTLカーネルは、ハイパーバイザーのように、ユーザー空間でLinuxシステムコールを実装するための最小限のインターフェースを提供します。FTLは、マイクロカーネル(柔軟性とセキュリティ)とモノリシックカーネル(パフォーマンスとシンプルさ)の利点を組み合わせています。私たちの目標は、パフォーマンスを犠牲にすることなく、軽量なコンテナをVMと同等のセキュリティにし、アプリケーションにおける新しいOSレベルの能力を解き放つことです。
FTL Linux
┌────────────────────────────────┐
│┏━━━━━━━━━━━━━┓ ┏━━━━━━━━━━━━━┓│
│┃ Linux ┃ ┃ Linux ┃│
│┃ Process ┃ ┃ Process ┃│
│┃ ┃ ┃ ┃│
│┃╌╌╌╌╌ Linux system calls ╌╌╌╌╌┃│
│┗━━━━━━━━━━━━━┛ ┗━━━━━━━━━━━━━┛│
└────────────────────────────────┘
│┃ ┃│
└────────────────────────────────┘
│┃ Userspace OS ┃│
│┃ (Process, VFS, TCP, ...) ┃│
│┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛│
╌╌╌╌╌╌╌ Linux's interface ╌╌╌╌╌╌╌
╔════════════════════════════════╗
║ ║
║ Linux Kernel ║
║ process, fork/exec, memory, ║
║ signals, TCP/IP, /proc, ║
║ /dev, drivers ... ║
╚════════════════════════════════╝
╔════════════════════════════════╗
║ FTL Kernel ║
║ vCPU, memory, drivers, ... ║
╚════════════════════════════════╝
ユーザー空間OS設計により、カーネル/eBPFプログラミングなしでほとんどのLinuxカーネル機能を拡張することも可能です。print文の追加、セキュリティアップデートの適用、新機能の迅速かつ安全な追加ができます。FTLでは、OSは単なるライブラリです。詳細はこちらをご覧ください。
ロードマップ
2026年9月: FTL上でシンプルなLinux HTTPサーバーを実行(v0.0.1でリリース済み ✅)
2026年10月: Async Rustアプリ対応 - Linuxスレッド、epollなど(v0.1.0でリリース済み ✅)
2026年11月: ファイルシステム
2026年12月: Node.js / Go対応
2027年1月: SMP、コンテナイメージ、64ビットArm対応
リンク
GitHubリポジトリ
Introducing FTL: A new operating system for clouds (ブログ記事)