BSDun layihəsi yayımlandı, bu layihə Linux nüvəsi üçün moduldur ki, bu da FreeBSD üçün tərtib edilmiş dəyişdirilməmiş ELF formatında icra olunabilir faylları tanımaq, yükləmək və Linux-da icra etməyə imkan tanıyır. İşlətmə üçün FreeBSD ətraf mühiti, /compat/freebsd kataloqunda yerləşdirilir. Ümumilikdə, bu layihə FreeBSD Linuxulator-un tam əksi olaraq meydana çıxır. Kod GPLv2+ lisensiyası altında yayımlanır və AI yardımçısı Claude Code tərəfindən yazılmışdır.
BSDun vasitəsilə Linux-da FreeBSD paketlərindən bir çox tətbiqləri uğurla işə salmaq mümkün oldu, bunlar arasında pkg, nginx, mc, ping, xeyes, xfce4-panel, Thunar, xfce4-terminal, Libreoffice, Midori, Epiphany, Chromium və VScode var. Chromium və VScode-ni işə salmaq üçün sandbox-izolyasiyasının söndürülməsi və video yaddaşının ölçüsünün 1024 MB-a qədər məhdudlaşdırılması üçün «—no-sandbox —force-gpu-mem-available-mb=1024» seçimləri tələb olunur.
Modul əsas nüvəyə daxil olunmağı iddia etmir, çünki Solaris ABI-nin silinməsindən sonra Linux nüvəsi başqa icra fayl emalçılarının (OS Personalities) daxil edilməsinə icazə vermir və yalnız bir sistem çağırışları cədvəlini təmin edir. Bu problemi aşmaq üçün BSDun-da kprobe mexanizmi tətbiq olunmuşdur, bu mexanizm bütün sistem çağırışlarını ələ keçirir.
kprobe vasitəsilə FreeBSD sistem çağırışları Linux sistem çağırışlarından ayrıldı və ayrı bir cədvələ sarıldı. FreeBSD sistem çağırışlarının bir hissəsi birbaşa Linux sistem çağırışlarına bağlandı, digər hissə parametr və nəticə strukturunun yenidən qablaşdırılmasını tələb etdi, üçüncü hissə stub-lar (məsələn, Capcicum-la bağlı) ilə əvəzlənmişdir, dördüncü hissə isə Linux nüvəsinin daxili strukturları əsasında həyata keçirildi. epoll() üstündə kevent/kqueue mexanizminin həyata keçirilməsi üçün istifadəçi mühitində komponentlərin modifikasiyası avtomatik olaraq hər FreeBSD icra faylının yüklənməsi zamanı tətbiq olundu.
Ümumilikdə 250-dən çox sistem çağırışı həyata keçirilmişdir. Həmçinin SystemV IPC, şəbəkə funksiyaları, futex-lar, sysctl MIB, prctl, taymerlər və ioctl həyata keçirilmişdir. Fayl sistemlərinin ayrılması üçün Linux tərəfində chroot mühiti istifadə edilmişdir (eksperimentlər zamanı chroot olmadan müəllif «pkg install …» icrasından /usr/local/* məzmununu Linux-da yenidən yazmışdır). Lakin bəzi utilitlər hələ də chroot olmadan işləyə bilər.
Təklif olunan modul FreeBSD üçün proqram təminatının inkişafı, tərtibi və portlaşdırılması üçün istifadə oluna bilər virtual maşınlar. İstifadə qaydasının qısa təlimatı: 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
Mənbə: opennet.ru
