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




