Avalikustatud projekt BSDun, mis arendab Linuxi tuumale moodulit, mis võimaldab tuvastada, laadida ja käitada Linuxis muutmata ELF vormingus teostatud täidetavaid faile, mis on koostatud FreeBSD jaoks. Käivitamiseks kasutatakse simuleeritud FreeBSD keskkonda, mis asub kaustas /compat/freebsd. Üldiselt on projekt täiesti vastupidine FreeBSD Linuxulatorile. Kood levitatakse GPLv2+ litsentsi all ja on kirjutatud AI-abistaja Claude Code abil.
BSDuni abil õnnestus edukalt käivitada Linuxis paljusid rakendusi FreeBSD paketist, sealhulgas pkg, nginx, mc, ping, xeyes, xfce4-panel, Thunar, xfce4-terminal, Libreoffice, Midori, Epiphany, Chromium ja VScode. Chromiumi ja VScode'i käivitamiseks tuleb välja lülitada liivakasti isolatsioon ja piirata video mälu suurust valikute „—no-sandbox —force-gpu-mem-available-mb=1024“ kaudu.
Moodul ei pretendeeri tuuma põhikoosseisu kuuluvusele, kuna alates Solaris ABI eemaldamisest ei luba Linuxi tuuma arhitektuur teiste täidetavate failide töötlejate (OS Personalities) lisamist ja eeldab ainult ühe süsteemikõnede tabeli olemasolu. Selle probleemi kõrvaldamiseks kasutati BSDunis kprobe mehhanismi, mis püüab kõik süsteemikõned kinni.
Kprobe abil eraldati FreeBSD süsteemikõned Linuxi süsteemikõnedest ja pakiti eraldi tabelisse. Üks osa FreeBSD süsteemikõnedest seoti otse Linuxi süsteemikõnedega, teise puhul toimus parameetrite ja tulemuste struktuuri ümberpakendamine, kolmas asendati tihenditega (näiteks, mis on seotud Capcicumiga), ja neljas rakendati Linuxi tuuma sisemiste struktuuride põhjal. Kevent/kqueue mehhanismi rakendamiseks epoll() üle rakendati eraldi modifikatsiooni kasutaja ruumis, mis toimus automaatselt iga FreeBSD täidetava faili laadimisel.
Kokku on rakendatud umbes 250 süsteemikõnet. Samuti on rakendatud SystemV IPC, võrgu funktsioonid, futexid, sysctl MIB, prctl, taimerid ja ioctl. Failisüsteemide eraldamiseks kasutati Linuxi poolel chroot-keskkonda (katsetuste käigus ilma chrootita lõpetas autor „pkg install ...“ käivitamisega /usr/local/* sisu ülekirjutamise Linuxis). Sellegipoolest võivad mõned utiliidid endiselt töötada ilma chrootita.
Pakutavat moodulit saab kasutada FreeBSD tarkvara arendamiseks, kogumiseks ja portimiseks ilma kasutamata. virtuaalmasinate. Lühike kasutusjuhend: 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
Allikas: opennet.ru
