A new experimental project called BSDun is trying to give Linux something rather unusual: the ability to run unmodified FreeBSD binaries directly on a Linux system.
It is designed as a Linux kernel module that teaches the kernel to recognize and load FreeBSD ELF executables. Once loaded, those programs run against a FreeBSD userland under /compat/freebsd, allowing Linux to execute FreeBSD tools without recompiling them.
The project describes itself as the mirror image of FreeBSD’s Linuxulator. While Linuxulator allows FreeBSD systems to run Linux binaries, BSDun takes the opposite route by letting Linux run FreeBSD binaries.
Technically, BSDun works by registering a FreeBSD ELF handler in Linux’s binary format chain. When a program runs, the module checks if the file is a FreeBSD binary through the ELF OSABI field or a FreeBSD ABI note.
If not, BSDun steps aside and lets Linux handle the file normally. If it is, BSDun loads the ELF image, prepares a FreeBSD-flavored auxiliary vector, and redirects the runtime environment to the FreeBSD compatibility root.
That compatibility root defaults to /compat/freebsd. The project expects users to populate it with a FreeBSD base system, including components like FreeBSD’s dynamic loader and libc.
According to the project’s README, BSDun can already run real FreeBSD binaries end-to-end, including FreeBSD’s /bin/sh. The author also reports working support for both statically linked tools and dynamically linked programs through FreeBSD’s ld-elf.so.1 and libraries such as libc.so.7 and libthr.so.3.
Additionally, it lists working shell features, external command execution, pipelines, redirection, networking, DNS resolution, FreeBSD’s pkg package manager, ping, kqueue/kevent, threading, dynamically linked base utilities, and common command-line tools like sed, awk, grep, find, stat, tail, and others.
However, this is still experimental work. BSDun is not part of the upstream Linux kernel, nor should ordinary users treat it as a stable subsystem. It relies on a kernel module, FreeBSD syscall translation, ELF loading logic, signal handling translation, filesystem rerooting, networking structure translation, and several best-effort compatibility mappings between the FreeBSD and Linux ABIs.
One important caveat is security semantics. The project notes that some Capsicum-related calls are accepted as successful no-ops because Linux does not provide FreeBSD’s Capsicum sandboxing model. This means some software may run but not with the exact same security behavior it would have on FreeBSD.
Still, the idea is fascinating. So, the answer to the question “Can Linux directly host another Unix-like operating system’s binary interface?” at the moment is “partly, experimentally, and impressively.”
The project is only days old, according to its GitLab page, which shows it was created on June 23, 2026, and currently has no tagged releases. We will, for sure, watch closely to see how it unfolds over time.
For additional details, see the project’s GitLab page.
