Профиль: Аноним (вход | регистрация) не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 обязательно


Обсуждение (15) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, ыть (ok), 15:57, 05/07/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +13 +/
    "Как вы яхту назовете, так она и поплывет". К-н Врунгель (С)
     
  • 1.2, Аноним (2), 16:06, 05/07/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +8 +/
    Лайк не глядя за название :)
     
     
  • 2.16, Eifan (?), 17:22, 05/07/2026 [^] [^^] [^^^] [ответить]  
  • +1 +/
    А в компе, где стоит ОС, для которой он предназначен, должен быть этот БП

    https://content.onliner.by/forum/295662/800x800/323f0ad73c33958f85c7923b1e4802

     

  • 1.3, iPony128052 (?), 16:06, 05/07/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    Кто-то из местных навайбкодил?
     
     
  • 2.4, Аноним (4), 16:09, 05/07/2026 [^] [^^] [^^^] [ответить]  
  • +2 +/
    > Автор новости: megastallman
    > https://gitlab.com/megastallman/bsdun

    Не знаю...

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

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

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

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

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

     
  • 1.11, Аноним (11), 17:04, 05/07/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    > автор выполнив "pkg install ..." перезаписал содержимое /usr/local/* в Linux

    Не автор, а костыль к ИИшке.

     
  • 1.12, Аноним (12), 17:08, 05/07/2026 Скрыто ботом-модератором [﹢﹢﹢] [ · · · ]     [к модератору]
  • +/
     
  • 1.13, Аноним (13), 17:09, 05/07/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    /compat/? Да это-ж vice versa
     
  • 1.17, Аноним (17), 17:43, 05/07/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Название - огонь!
     

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



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

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