Provided by: freebsd-manpages_7.1~beta1-1_all bug

NAME

     linux - Linux ABI support

SYNOPSIS

     To compile support for this ABI into the kernel, place the following line
     in your kernel configuration file:

           options COMPAT_LINUX

     Alternatively, to load the ABI as a module at boot time, place the
     following line in loader.conf(5):

           linux_load="YES"

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.