Профиль: Аноним (вход | регистрация) неRU opennet.me  
The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

Опубликован BSDun, модуль для запуска исполняемых файлов FreeBSD в Linux

05.07.2026 15:50 (MSK)

Опубликован проект BSDun, развивающий модуль для ядра Linux, позволяющий распознавать, загружать и запускать в Linux немодифицированные исполняемые файлы в формате ELF, собранные для FreeBSD. Для запуска применяется эмулируемое окружение FreeBSD, размещаемое в каталоге /compat/freebsd. В целом проект является полной противоположностью FreeBSD Linuxulator. Код распространяется под лицензией GPLv2+ и написан с использованием AI-ассистента Claude Code.

При помощи BSDun удалось успешно запустить в Linux многие приложения из пакетов FreeBSD, среди которых pkg, nginx, mc, ping, xeyes, xfce4-panel, Thunar, xfce4-terminal, Libreoffice, Midori, Epiphany, Chromium и VScode. Для запуска Chromium и VScode требуется отключение sandbox-изоляции и ограничение размера видеопамяти при помощи опций "--no-sandbox --force-gpu-mem-available-mb=1024".

Модуль не претендует на включение в основной состав ядра, поскольку с момента удаления ABI Solaris архитектура ядра Linux не допускает включения иных обработчиков исполняемых файлов (OS Personalities) и предусматривает наличие только одной таблицы системных вызовов. Для обхода этой проблемы в BSDun был задействован механизм kprobe, перехватывающий все системные вызовы.

При помощи kprobe cистемные вызовы FreeBSD отделялись от системных вызовов Linux и заворачивались в отдельную таблицу. Одна часть системных вызовов FreeBSD напрямую привязывалась к системным вызовам Linux, для другой выполнялась переупаковка структуры параметров и результата, третья заменялась заглушками (например, связанные с Capcicum), а четвёртая реализовывалась на основе внутренних структур ядра Linux. Для реализации механизма kevent/kqueue поверх epoll() отдельно была применена модификация компонентов в пространстве пользователя, автоматически осуществляемая при загрузке каждого исполняемого файла FreeBSD.

В общей сложности реализовано около 250 системных вызовов. Также реализованы SystemV IPC, сетевые функции, futex-ы, sysctl MIB, prctl, таймеры и ioctl. Для разграничения файловых систем использовано chroot-окружение на стороне Linux (в процессе экспериментов без chroot автор выполнив "pkg install ..." перезаписал содержимое /usr/local/* в Linux). Тем не менее, некоторые утилиты все ещё могут работать без chroot.

Предложенный модуль может применяться для разработки, сборки и портирования ПО для FreeBSD без использования виртуальных машин. Краткая инструкция по использованию:


   make
   make load
   ./bsdun-freebsd-root-resetup.sh
   ./bsdun-freebsd-enter.sh
   uname -a

   FreeBSD host 16.0-CURRENT FreeBSD 16.0-CURRENT (bsdun) amd64


  1. Главная ссылка к новости (https://gitlab.com/megastallma...)
  2. OpenNews: bsd-user-4-linux - проект по запуску программ FreeBSD в Linux
  3. OpenNews: Выпуск дистрибутива Chimera 20251220, сочетающего ядро Linux с окружением FreeBSD
  4. OpenNews: Выпуск Wifibox 0.12, окружения для использования WiFi-драйверов Linux во FreeBSD
  5. OpenNews: ChaosBSD - форк FreeBSD для тестирования драйверов
  6. OpenNews: Релиз FreeBSD 15.1
Автор новости: megastallman
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/65846-bsdun
Ключевые слова: bsdun, freebsd, linux
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (9) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, ыть (ok), 15:57, 05/07/2026 [ответить]  
  • +9 +/
    "Как вы яхту назовете, так она и поплывет". К-н Врунгель (С)
     
  • 1.2, Аноним (2), 16:06, 05/07/2026 [ответить]  
  • +4 +/
    Лайк не глядя за название :)
     
  • 1.3, iPony128052 (?), 16:06, 05/07/2026 [ответить]  
  • +/
    Кто-то из местных навайбкодил?
     
     
  • 2.4, Аноним (4), 16:09, 05/07/2026 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Автор новости: megastallman
    > https://gitlab.com/megastallman/bsdun

    Не знаю...

     
     
  • 3.5, МИСАКА (?), 16:18, 05/07/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Сам себя не похвалишь...
     

  • 1.6, Аноним (6), 16:41, 05/07/2026 [ответить]  
  • +/
    Я думал что название привлечет больше комментаторов. Странно
     
     
  • 2.9, Аноним (9), 16:51, 05/07/2026 [^] [^^] [^^^] [ответить]  
  • +/
    На новостях про wsl порвались.
     
  • 2.10, Деанимус (?), 16:53, 05/07/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Выходные, сэр.
     

  • 1.7, Аноним (7), 16:50, 05/07/2026 [ответить]  
  • +/
    Привет! Прикольный проект, сделал ревью GPT 5.5 xhigh в несколько проходов, дай Claude, тут реально много чего, что можно исправить и будет прям круто.

    https://paste.debian.net/plainh/8f6a9bcf

    Напиши в комментарий, а то придётся в репе issue создавать, если тут не ответишь :)

     

     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2026 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру