Projekti BSDun është publikuar, duke zhvilluar një modul për kernelin Linux, që lejon njohjen, ngarkimin dhe ekzekutimin në Linux të skedarëve ekzekutivë në formatin ELF, të ndërtuar për FreeBSD. Për ekzekutimin përdoret një mjedis i simuluar FreeBSD, i vendosur në dosjen /compat/freebsd. Në përgjithësi, projekti është një kundërshtim i plotë i Linuxulator të FreeBSD. Kodi shpërndahet nën licencën GPLv2+ dhe është shkruar duke përdorur ndihmësin AI Claude Code.
Me BSDun, Ă«shtĂ« arritur tĂ« ekzekutohet me sukses shumĂ« aplikacione nga paketat FreeBSD nĂ« Linux, pĂ«rfshirĂ« pkg, nginx, mc, ping, xeyes, xfce4-panel, Thunar, xfce4-terminal, Libreoffice, Midori, Epiphany, Chromium dhe VScode. PĂ«r tĂ« ekzekutuar Chromium dhe VScode, kĂ«rkohet çaktivizimi i izolimit tĂ« sandbox-it dhe kufizimi i madhĂ«sisĂ« sĂ« memories video me opsionet "âno-sandbox âforce-gpu-mem-available-mb=1024."
Moduli nuk pretendon të përfshihet në përbërjen kryesore të kernelit, pasi që nga heqja e ABI Solaris, arkitektura e kernelit Linux nuk lejon përfshirjen e trajtuesve të tjerë të skedarëve ekzekutivë (OS Personalities) dhe parashikon vetëm një tabelë sistemesh thirrjesh. Për të kaluar këtë problem, në BSDun është përdorur mekanizmi kprobe, që kap të gjitha thirrjet e sistemeve.
Me ndihmën e kprobe, thirrjet sistemore të FreeBSD u ndanë nga thirrjet sistemore të Linux dhe u paketuan në një tabelë të veçantë. Një pjesë e thirrjeve sistemore të FreeBSD lidhej drejtpërdrejt me thirrjet sistemore të Linux, për një tjetër bëhej ripakimi i strukturës së parametrave dhe rezultatit, një e katërta zëvendësohej me stuba (p.sh., ato të lidhura me Capcicum), ndërsa e katërta u realizua mbi strukturat e brendshme të bërthamës së Linux. Për realizimin e mekanizmit kevent/kqueue mbi epoll(), u aplikua një modifikim i veçantë i komponentëve në hapësirën e përdoruesit, që automatizohej gjatë ngarkimit të secilës skedë ekzekutuese të FreeBSD.
Në total, janë realizuar rreth 250 thirrje sistemore. Gjithashtu janë implementuar SystemV IPC, funksione rrjetë, futex, sysctl MIB, prctl, kronometra dhe ioctl. Për ndarjen e sistemeve të skedarëve u përdor një ambient chroot në anën e Linux ( gjatë eksperimenteve pa chroot, autori kryen "pkg install ..." dhe e shkruajti sërish përmbajtjen e /usr/local/* në Linux). Megjithatë, disa utilitare ende mund të funksionojnë pa chroot.
Moduli i propozuar mund të përdoret për zhvillimin, ndërtimin dhe portimin e softuerit për FreeBSD pa përdorim të makinave virtuale. Udhëzues i shkurtër për përdorim: 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
Burimi: opennet.ru
