FTL: проект новой облачной ОС запускает Linux-программы в контейнерах
На сайте ftl-os.org представлен FTL, новая операционная система для облачных сред. Ключевая идея: операционную систему можно собрать как библиотеку. В каждом контейнере работает ОС пользовательского уровня (userspace OS), разделяемая библиотека, которая реализует большую часть привычных понятий ОС: процессы Linux, виртуальную файловую систему (VFS), стек TCP/IP.
Под контейнерами работает минимальное ядро FTL. Оно даёт небольшой интерфейс, через который системные вызовы Linux реализуются уже в пользовательском пространстве, по аналогии с гипервизором. Изоляция строится на лёгкой аппаратной изоляции (пользовательский режим), поэтому, как сказано на сайте, физические серверы без виртуализации (bare-metal) не нужны. На схеме проекта показано различие с Linux: в Linux процессы обращаются к единому монолитному ядру, где собраны процессы, fork/exec, память, сигналы, TCP/IP, /proc, /dev и драйверы; в FTL процессы обращаются к userspace OS внутри контейнера, а ядро FTL отвечает только за vCPU, память и драйверы.
Проект заявляет совместимость с бинарными файлами Linux. В качестве примера приведено, что HTTP-сервер на Rust, который отдаёт сам сайт, это приложение для Linux, запущенное на FTL. Кроме того, на FTL можно запускать специализированные приложения в духе юникернелов (unikernel) без абстракций POSIX.
Авторы сайта утверждают, что такой дизайн сочетает лучшее от микроядер (гибкость и безопасность) и монолитных ядер (производительность и простота). Заявленная цель, сделать лёгкие контейнеры такими же безопасными, как виртуальные машины, и открыть приложениям новые возможности уровня ОС без потери производительности. Также сказано, что ядро FTL изолирует контейнеры лучше существующих монолитных ядер, а отладка и безопасное обновление ОС становятся похожими на работу с обычным приложением. Большинство возможностей ядра Linux, по утверждению сайта, можно расширять без программирования ядра и eBPF: добавлять отладочные printf, ставить обновления безопасности и быстро и безопасно добавлять функции.
Текст сайта, это описание концепции и заявленных целей; тестов, замеров производительности и подтверждения тезиса о лучшей изоляции в нём нет. Авторы, компания или мейнтейнеры, версия, лицензия, поддерживаемое железо и облачные платформы, а также степень совместимости с Linux (какие системные вызовы и программы работают) не указаны.
Ключевые факты
- FTL, операционная система для облаков: в каждом контейнере работает ОС пользовательского уровня в виде разделяемой библиотеки (процессы Linux, VFS, TCP/IP).
- Минимальное ядро FTL изолирует контейнеры и даёт гипервизороподобный интерфейс для реализации системных вызовов Linux в пользовательском пространстве; изоляция опирается на лёгкий аппаратный режим пользователя, физические серверы не нужны.
- Заявлена совместимость с бинарными файлами Linux: HTTP-сервер на Rust, отдающий сайт проекта, приложение для Linux на FTL; возможны и юникернел-подобные приложения без POSIX.
- Цель проекта, сделать лёгкие контейнеры такими же безопасными, как виртуальные машины, без потери производительности; замеров и доказательств на сайте нет.
- По утверждению сайта, большинство возможностей ядра Linux можно расширять без программирования ядра и eBPF.
Почему это важно
Проект предлагает иную границу между ядром и приложением в облаке: вместо одного общего монолитного ядра на всех контейнеров, минимальное ядро плюс собственная ОС в каждом контейнере. Авторы сайта позиционируют это как сочетание гибкости и безопасности микроядер с производительностью и простотой монолитных ядер. Пока это заявленная идея и цель, а не подтверждённый результат.
Кому это важно
Тем, кто работает с контейнерами и облачной инфраструктурой, интересуется устройством операционных систем, изоляцией рабочих нагрузок и альтернативами связке «Linux плюс контейнеры» или «Linux плюс виртуальные машины». Также тем, кто хочет менять поведение ОС без написания кода ядра или eBPF-программ.
Как это применить
Сайт описывает концепцию и пример: Linux-приложение (HTTP-сервер на Rust) работает поверх FTL, а ОС можно собрать как библиотеку под нужды приложения. Способ установки, версии, лицензия и поддерживаемые платформы в тексте не указаны, так что оценить готовность к использованию по нему нельзя; разумный шаг, перейти по ссылке «Read more» на сайте проекта.
Можно ли доверять
Источник, сам сайт проекта, то есть собственные заявления авторов. Утверждения о лучшей изоляции, чем у монолитных ядер, и о безопасности на уровне виртуальных машин не подкреплены тестами или цифрами; производительность не измерялась в приведённом тексте. Живой пример, сам сайт, который обслуживается приложением на FTL, показывает работоспособность, но не масштаб и не зрелость. Авторы и организация в тексте не названы.
Риски и подводные камни
Степень совместимости с Linux не уточнена: неизвестно, какие системные вызовы и программы работают. Не названы поддерживаемое железо, облачные платформы и архитектуры, не сказано, открыт ли код. Компромисс между безопасностью, производительностью и совместимостью заявлен как достигнутый, но не продемонстрирован, поэтому к утверждениям стоит относиться как к цели проекта.