FTLはGitHub上のnutaプロジェクトによって作られた、クラウド環境用に設計された新しいオペレーティングシステムです。プロジェクトは「Linux/BSD/Illumosに代わるクラウド環境用のOSとしての新しいオペレーティングシステム」を位置付けています。[primary source]

nuta/ftlのGitHubリポジトリサムネイル
FTLオペレーティングシステムプロジェクトのリポジトリカバー画像github.com

FTLオペレーティングシステムリポジトリを紹介するGitHubのオープングラフ画像で、クラウドOS研究におけるプロジェクトの存在を示しています。

FTLの設計における決定的な特徴は「userspace OS」アプローチです。プロセス管理、仮想ファイルシステム、TCPなどのOS機能をカーネルではなく、userspaceライブラリ(「userspace OS」と呼ばれる)に移します。この設計はexokernelに類似しており、従来のモノリシックカーネルの機能がuserspaceライブラリ(ライブラリOS)に移されます。FTLカーネル自体は、vCPU(スレッド)、仮想アドレススペース(vmspace)、仮想ネットワークなどのハイパーバイザに似たprimitiveを提供し、ハードウェアリソースを多重化する最小のインターフェイスとして機能します。[primary source]

FTLはクラウド環境でLinuxの直接代用となる代替OSとなることを目指します。Linux互換レイヤーはカーネル内機能ではなくuserspaceライブラリとして実装されているため、各FTLコンテナは独立したLinux風のアプリケーションカーネルを持ちます。このアプローチは従来のカーレベル仮想化とは異なり、FTLはハードウェア加速の仮想化ではなく、ユーザー例外処理を使用します。プロジェクトはこの技術がWSL 1、FreeBSDのLinuxulator、OSvなどのシステムに見られると指摘していますが、FTLがuserspaceライブラリとして実装されている点が特徴です。[primary source]

プロジェクトは「LinuxよりBSDに似ている」とし、統合userspaceソフトウェアとともにFTLを同梱する計画を発表しています。MITとApache 2.0の二重ライセンスで提供されます。[primary source]

FTLは軽量で制約のあるデバイスに適するように設計され、「理解しやすく、テスト可能なコードベース」を特徴とし、TypeScriptによるエンドツーエンドテストと素早く編集・コンパイル・実行できるサイクルを備えています。ユーザーはRustツールチェーン、LLVMツール、QEMUをインストールし、その後./run.shを実行してビルドとテストを開始できます。[primary source]

プロジェクトはLinux ABIが「FTLで利用可能なOSインターフェイスの一つにすぎない」と认识し、Linux互換性に加えて独自のパーソナリティとシステムコールを追加する計画です。予定されている「interceptor」機能は、レート制限、セキュリティ監査、ネットワークパケットルーティング、ライブパッチングのため、OSコンポーネントの実行時制御を可能にします。[primary source]