NAME¶
linux
—
Linux ABI support
SYNOPSIS¶
To compile support for this ABI into an i386 kernel place the following line in
your kernel configuration file:
options
COMPAT_LINUX
for an amd64 kernel use:
options
COMPAT_LINUX32
Alternatively, to load the ABI as a module at boot time, place the following
line in
loader.conf(5):
DESCRIPTION¶
The
linux
module provides limited Linux ABI
(application binary interface) compatibility for userland applications. The
module provides the following significant facilities:
- An image activator for correctly branded
elf(5) executable images
- Special signal handling for activated images
- Linux to native system call translation
It is important to note that the Linux ABI support it not provided through an
emulator. Rather, a true (albeit limited) ABI implementation is provided.
The following
sysctl(8) tunable variables are
available:
- compat.linux.osname
- Linux kernel operating system name.
- compat.linux.osrelease
- Linux kernel operating system release. Changing this to something else is
discouraged on non-development systems, because it may change the way
Linux programs work. Recent versions of GNU libc are known to use
different syscalls depending on the value of this sysctl.
- compat.linux.oss_version
- Linux Open Sound System version.
The
linux
module can be linked into the
kernel statically with the
COMPAT_LINUX
kernel configuration option or loaded as required. The following command will
load the module if it is neither linked into the kernel nor already loaded as
a module:
if ! kldstat -v | grep -E 'linux(aout|elf)' > /dev/null; then
kldload linux > /dev/null 2>&1
fi
Note that dynamically linked Linux executables will require a suitable
environment in
/compat/linux. Specifically,
the Linux run-time linker's hints files should be correctly initialized. For
this reason, it is common to execute the following commands to prepare the
system to correctly run Linux executables:
if [ -x /compat/linux/sbin/ldconfig ]; then
/compat/linux/sbin/ldconfig -r /compat/linux
fi
For information on loading the
linux
kernel
loadable module automatically on system startup, see
rc.conf(5). This information applies regardless
of whether the
linux
module is statically
linked into the kernel or loaded as a module.
FILES¶
- /compat/linux
- minimal Linux run-time environment
- /compat/linux/proc
- limited Linux process file system
- /compat/linux/sys
- limited Linux system file system
SEE ALSO¶
brandelf(1),
elf(5),
linprocfs(5),
linsysfs(5)
HISTORY¶
Linux ABI support first appeared in
FreeBSD 2.1.