Provided by: freebsd-manpages_11.1-3_all bug

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):

           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.