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


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

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

     

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

    Не знаю...

     
     
  • 3.5, МИСАКА (?), 16:18, 05/07/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Сам себя не похвалишь...
     
  • 2.21, Аноним (21), 18:43, 05/07/2026 [^] [^^] [^^^] [ответить]  
  • +2 +/
    За ваш счет прорекламирую еще один свой проект: https://gitlab.com/megastallman/uncoded
     
     
  • 3.37, Мемоним (?), 20:37, 05/07/2026 [^] [^^] [^^^] [ответить]  
  • +/
    > That is the same VSCode, but with telemetry anti-features being cut out with sed
    > sed

    https://ast-grep.github.io/ не будет удобнее?

     
     
  • 4.53, Аноним (53), 00:31, 06/07/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Спасибо!
     
  • 3.42, Смузихеб забывший пароль (?), 22:14, 05/07/2026 [^] [^^] [^^^] [ответить]  
  • +/
    тогда заодно не грех и попОС вспомнить, о котором как-то маловато новосте
    и какого-то местного анона, хотевшего это из любопытства палкой потыкать
     

  • 1.6, Аноним (6), 16:41, 05/07/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +3 +/
    Я думал что название привлечет больше комментаторов. Странно
     
     
  • 2.9, Аноним (9), 16:51, 05/07/2026 [^] [^^] [^^^] [ответить]  
  • +1 +/
    На новостях про 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 создавать, если тут не ответишь :)

     
     
  • 2.27, Аноним (21), 18:56, 05/07/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Спасибо! Будем пережевывать. Хоть можно и посоздавать ишшуев.
     
  • 2.41, Alladin (?), 21:13, 05/07/2026 [^] [^^] [^^^] [ответить]  
  • +/
    кто бы за gpt сделал ревью)
     

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

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

     
     
  • 2.22, Аноним (21), 18:45, 05/07/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Да, я таковым себя чувствал еще до появления ЫЫ. Человек - всего лишь придаток к машине.
     

  • 1.12, Аноним (12), 17:08, 05/07/2026 Скрыто ботом-модератором [﹢﹢﹢] [ · · · ]     [к модератору]
  • +1 +/
     
  • 1.13, Аноним (13), 17:09, 05/07/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    /compat/? Да это-ж vice versa
     
     
  • 2.23, Аноним (21), 18:46, 05/07/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Эта иерархия - /compat/linux взята мною из линуксулятора. Только наоборот.
     

  • 1.17, Аноним (17), 17:43, 05/07/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +3 +/
    Название - огонь!
     
  • 1.19, Аноним (19), 18:39, 05/07/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    > и написан с использованием AI-ассистента...

    Удивительный мир сходит с ума.

     
  • 1.20, Анонимище (?), 18:42, 05/07/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Представь что Ты - троян написаный для Windows. Но тебя запускают в WINE для FreeBSD. A сама FreeBSDовская версия WINE запускается через BSDun на Linux. И да, сам Linux работает в виртуалке запущенной под Android.

    И ты в полной растеряности, к такому безумию тебя создатель не готовил

     
     
  • 2.24, Аноним (21), 18:49, 05/07/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Так, подождите! Я на Вайне недавно гонял Msys2, pacman install ... работает. И даже mc. Подробности здесь: https://tilde.club/~megastallman/
     
  • 2.25, Ivan_83 (ok), 18:53, 05/07/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Вы зря себя обнадёживаете.
    Код просто пройдётся рекурсивным поиском по фс фильтруя wallet.dat и прочее и отправит что найдёт.
    Точно так же ему никто не помешает пофировать файлы до которых он дотянется.
    Там не требуется куча платформо специфичного кода.
     
     
  • 3.28, Анонимище (?), 18:56, 05/07/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Не, ну понятно что внутри своего загончика троян может напакостить. Но вот убежать из такого многослойного пирога уже вряд ли получится, если только лично за вами не охотится Моссад
     
     
  • 4.46, Ivan_83 (ok), 22:39, 05/07/2026 [^] [^^] [^^^] [ответить]  
  • +/
    wine это не про защиту/изоляцию.
    Единственное что тут упоминали chroot.
     
  • 2.29, Аноним (29), 19:00, 05/07/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Ага, а этот линукс - крутится как pod в кубернетисе, а кубернетис в виртуалке на Hyper-v
     

  • 1.26, Аноним (26), 18:54, 05/07/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    Зачем в бсд запускать линуксовые бинарники понятно, иначе там вообще никакого софта не будет полезного. Но зачем запускать бсдешные бинарникитна линуксе? 🤔
     
     
  • 2.30, Аноним (21), 19:04, 05/07/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Да, я об этом тоже думал. Но мне просто важен факт того что это вообще можно сделать. Ну и нативная сборка/портирование/написание кода под фрибзд без виртуальных машин - тоже неплохой юзкейс.

    Кстати, сюда: https://github.com/mrclksr/linux-browser-installer а добавлял оперу несколько лет назад.

     
     
  • 3.31, Аноним (26), 19:27, 05/07/2026 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Юзкейс где? На локалхостах академиков? В проде нет и быть не может такого юзкейса.
     
     
  • 4.34, Аноним (21), 20:08, 05/07/2026 [^] [^^] [^^^] [ответить]  
  • +/
    А почему бы и нет? И на локалхостах мэйнтейнеров.
     
     
  • 5.45, Аноним (45), 22:38, 05/07/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Я вообще не против, программирование вполне неплохое хобби. Меня как хобби-антрополога интересует мотивация и цели.
     
  • 3.48, Аноним (-), 23:04, 05/07/2026 [^] [^^] [^^^] [ответить]  
  • +/
    > Да, я об этом тоже думал. Но мне просто важен факт того что это вообще можно сделать.
    > Ну и нативная сборка/портирование/написание кода под фрибзд без виртуальных машин
    > - тоже неплохой юзкейс.

    А этим кто-то вообще щанимается?

     
  • 2.40, Мемоним (?), 21:02, 05/07/2026 [^] [^^] [^^^] [ответить]  
  • –2 +/
    > Но зачем запускать бсдешные бинарникитна линуксе?

    Для безболезненной миграции с ГНИ/Линукса на что-то более свободное и независимое

     
     
  • 3.44, Аноним (45), 22:36, 05/07/2026 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Для безболезненной миграции нужно чтобы поддержка железа для начала была без линукса в виртуалочке, и поддержка всего современного софта вроде докеров-куберов. А там уже и о миграции можно думать.
     

  • 1.32, Ананоним (?), 19:40, 05/07/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Возможно это будет для меня трамплином в переходе на FreeBSD, как в своё время стал CygWin.
     
  • 1.33, Аноним (33), 20:04, 05/07/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    У них талант называть проекты, чтобы ру комьюнити посмешить.
     
     
  • 2.36, Аноним (36), 20:19, 05/07/2026 [^] [^^] [^^^] [ответить]  
  • +/
    у них?, комменты посмотри, это похоже у нас
     

  • 1.35, Аноним (35), 20:18, 05/07/2026 Скрыто ботом-модератором [﹢﹢﹢] [ · · · ]     [к модератору]
  • +/
     

  • 1.39, Мемоним (?), 20:54, 05/07/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Кстати, автор, не хочешь с проектом https://chimera-linux.org/ скооперироваться?
     
     
  • 2.51, Аноним (53), 00:22, 06/07/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Мне как раз нужно нечто другое Бинарная совместимость, вне зависимости от того ... большой текст свёрнут, показать
     

  • 1.50, Аноним (50), 23:26, 05/07/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Когда на Линуксе поиграем в игры от Плойки?
     
     
  • 2.52, Аноним (53), 00:27, 06/07/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Это хороший вопрос. У меня нет доступа к ее проприетарному юзерленду, и у меня будут очень тяжелые проблемы с 3Д. Не знаю, получится ли написать прослойку для проброса ускорения. В лучшем случае это будет зубодробительная перепаковка каждой структуры.
     

  • 1.54, Аноним (54), 00:32, 06/07/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Круто. Надеюсь запуск исполняемых файлов других BSD помимо FreeBSD тоже будет реализован.
     
  • 1.55, Аноним (55), 01:36, 06/07/2026 Скрыто ботом-модератором [﹢﹢﹢] [ · · · ]     [к модератору]
  • +/
     
  • 1.56, Ivan_83 (ok), 01:46, 06/07/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    250 сисколов - маловато, их там под 500.
    Но часть сисколов можно транслировать напрямую, части нужна прослойка для мапинга флагов.

    > Для реализации механизма kevent/kqueue поверх epoll() отдельно была применена модификация компонентов в пространстве пользователя

    Вроде была у линуксойдов какая то либа с типа эмуляцией kqueue(). Но по мне целиком повторить очень сложно=не возможно, слишком уж там много функционала.
    Вот epoll() накидать на базе kqueue() - легко.

     
  • 1.57, warlock66613 (ok), 01:46, 06/07/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Это реальный проект или ИИ-шлак?
     
  • 1.58, Аноним (58), 02:16, 06/07/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    >При помощи kprobe cистемные вызовы FreeBSD отделялись от системных вызовов Linux и заворачивались в отдельную таблицу

    Есть же syscall user dispatch https://docs.kernel.org/admin-guide/syscall-user-dispatch.html

     

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



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

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