Новый экспериментальный проект BSDun пытается дать Linux довольно необычную возможность: запускать немодифицированные бинарные файлы FreeBSD напрямую в системе Linux.
Это модуль ядра Linux, который учит ядро распознавать и загружать исполняемые файлы FreeBSD в формате ELF. После загрузки программы работают с пользовательским окружением FreeBSD из /compat/freebsd, что позволяет запускать инструменты FreeBSD без перекомпиляции.
Проект позиционирует себя как зеркальное отражение Linuxulator во FreeBSD. Если Linuxulator позволяет системам FreeBSD запускать бинарные файлы Linux, то BSDun идёт противоположным путём, позволяя Linux запускать бинарные файлы FreeBSD.
Технически BSDun регистрирует обработчик ELF-файлов FreeBSD в цепочке бинарных форматов Linux. При запуске программы модуль проверяет, является ли файл бинарным файлом FreeBSD, по полю ELF OSABI или примечанию ABI FreeBSD.
Если нет, BSDun уходит в сторону и позволяет Linux обработать файл как обычно. Если да, BSDun загружает образ ELF, подготавливает вспомогательный вектор во вкусе FreeBSD и перенаправляет среду выполнения в корень совместимости FreeBSD.
Этот корень совместимости по умолчанию указывает на /compat/freebsd. Ожидается, что пользователи заполнят его базовой системой FreeBSD, включая такие компоненты, как динамический загрузчик FreeBSD и libc.
Согласно README проекта, BSDun уже может запускать настоящие бинарные файлы FreeBSD от начала и до конца, включая /bin/sh из FreeBSD. Автор также сообщает о работающей поддержке статически скомпонованных утилит и динамически скомпонованных программ через ld-elf.so.1 из FreeBSD и библиотеки, такие как libc.so.7 и libthr.so.3.
Также в списке значатся работающие возможности оболочки, выполнение внешних команд, конвейеры, перенаправление, работа с сетью, разрешение DNS, пакетный менеджер FreeBSD pkg, ping, kqueue/kevent, многопоточность, динамически скомпонованные базовые утилиты, а также распространённые инструменты командной строки, такие как sed, awk, grep, find, stat, tail и другие.
Тем не менее, это всё ещё экспериментальная разработка. BSDun не является частью основного ядра Linux, и обычным пользователям не следует рассматривать его как стабильную подсистему. Он опирается на модуль ядра, трансляцию системных вызовов FreeBSD, логику загрузки ELF, трансляцию обработки сигналов, переопределение корня файловой системы, трансляцию сетевых структур и несколько сопоставлений совместимости между ABI FreeBSD и Linux, выполненных по мере возможности.
Важное предостережение касается семантики безопасности. В проекте отмечается, что некоторые вызовы, связанные с Capsicum, принимаются как успешные пустые операции, поскольку Linux не предоставляет модель песочницы Capsicum, используемую во FreeBSD. Это означает, что некоторые программы могут работать, но с иным поведением в плане безопасности, чем на FreeBSD.
Идея всё равно захватывающая. Так что ответ на вопрос “Может ли Linux напрямую поддерживать бинарный интерфейс другой Unix-подобной операционной системы?” в данный момент звучит как “частично, экспериментально и впечатляюще”.
Судя по странице проекта на GitLab, он появился всего несколько дней назад: дата создания — 23 июня 2026 года, и пока нет тегированных релизов. Мы обязательно будем внимательно следить за его развитием.
Дополнительные подробности можно найти на странице проекта в GitLab.





Пока нет комментариев. Будьте первым!