Что такое FTL?

  • Можно создавать собственную ОС как библиотеку. Такой дизайн с ОС в пользовательском пространстве упрощает добавление функций, отладку и обновление системы — всё как при разработке обычных приложений.
  • Ядро FTL изолирует контейнеры (экземпляры userspace OS) лучше, чем монолитные ядра, благодаря интерфейсу, похожему на гипервизор, построенному на облегчённой аппаратной изоляции (пользовательский режим). Не требуются bare-metal машины.
  • FTL совместима с Linux-бинарниками. Например, Rust-сервер, обслуживающий этот сайт — это Linux-приложение, работающее на FTL. Можно также запускать специализированные приложения типа Unikernel без POSIX-абстракций.

Как это работает

Каждый контейнер выполняет userspace OS — общую библиотеку, которая реализует большинство концепций ОС: Linux-процессы, VFS, TCP/IP. Ядро FTL предоставляет минимальный интерфейс для реализации системных вызовов Linux в пользовательском пространстве, подобно гипервизору.

FTL объединяет лучшее из микроядер (гибкость и безопасность) и монолитных ядер (производительность и простота). Цель проекта — обеспечить контейнерам безопасность уровня VM и разблокировать новые возможности на уровне ОС в приложениях без потери производительности:

FTL                                   Linux
┌────────────────────────────────┐    ┌────────────────────────────────┐
│┏━━━━━━━━━━━━━┓  ┏━━━━━━━━━━━━━┓│    │┏━━━━━━━━━━━━━┓  ┏━━━━━━━━━━━━━┓│
│┃             ┃  ┃             ┃│    │┃             ┃  ┃             ┃│
│┃    Linux    ┃  ┃    Linux    ┃│    │┃    Linux    ┃  ┃    Linux    ┃│
│┃   Process   ┃  ┃   Process   ┃│    │┃   Process   ┃  ┃   Process   ┃│
│┃             ┃  ┃             ┃│    │┃             ┃  ┃             ┃│
│┃╌╌╌╌╌ Linux system calls ╌╌╌╌╌┃│    │┗━━━━━━━━━━━━━┛  ┗━━━━━━━━━━━━━┛│
│┃                              ┃│    └────────────────────────────────┘
│┃         Userspace OS         ┃│    ╌╌╌╌╌╌╌╌ Linux's interface ╌╌╌╌╌╌╌
│┃   (Process, VFS, TCP, ...)   ┃│    ╔════════════════════════════════╗
│┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛│    ║                                ║
└────────────────────────────────┘    ║          Linux Kernel          ║
╌╌╌╌╌╌╌ minimal interface ╌╌╌╌╌╌╌╌    ║                                ║
╔════════════════════════════════╗    ║   process, fork/exec, memory,  ║
║           FTL Kernel           ║    ║     signals, TCP/IP, /proc,    ║
║    vCPU, memory, drivers, ...  ║    ║       /dev, drivers ...        ║
╚════════════════════════════════╝    ╚════════════════════════════════╝

Дизайн userspace OS позволяет расширять большинство возможностей Linux-ядра без программирования в самом ядре или eBPF. Можно добавлять отладочный вывод, применять безопасность обновления и быстро добавлять новые функции. В FTL ОС — это просто библиотека. Подробнее.

Дорожная карта

  • Сентябрь 2026: запуск простого Linux HTTP-сервера на FTL (выпущено в v0.0.1 ✅)
  • Октябрь 2026: поддержка асинхронных Rust-приложений — Linux threads, epoll, ... (выпущено в v0.1.0 ✅)
  • Ноябрь 2026: файловая система
  • Декабрь 2026: поддержка Node.js / Go
  • Январь 2027: SMP, образы контейнеров, поддержка 64-bit Arm

Ссылки