home | help
LINUX(4)		  i386 Kernel Interfaces Manual 		LINUX(4)

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 pro-
     vided.

     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-de-
			       velopment 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 fol-
     lowing 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  en-
     vironment	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.

FreeBSD 8.0			 March 17, 2008 			LINUX(4)

home | help