Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

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

NAME
     linux -- Linux ABI	support

SYNOPSIS
     To	enable the Linux ABI at	boot time, place the following line in
     rc.conf(5):

	   linux_enable="YES"

DESCRIPTION
     The linux kernel module provides limited Linux ABI	(application binary
     interface)	compatibility, making it possible to run many unmodified Linux
     applications without the need for virtualization or emulation.  Some of
     the facilities provided are:

     +o	 Linux to native system	call translation

     +o	 Linux-specific	system calls

     +o	 Special signal	handling for Linux processes

     +o	 Path translation mechanism

     +o	 Linux-specific	virtual	file systems

     The path translation mechanism makes Linux	processes look up file paths
     under emul_path (defaulting to /compat/linux) before /.  For example,
     when Linux	process	attempts to open /etc/passwd, it will really access
     /compat/linux/etc/passwd, unless the latter does not exist.  This is used
     to	make sure Linux	processes load Linux shared libraries instead of their
     similarly-named FreeBSD counterparts, and also to provide alternative
     versions of certain other files and virtual file systems.

     To	install	Linux shared libraries and system files	into /compat/linux,
     either use	the emulators/linux_base-c7 port or package, or	debootstrap(8)
     installed from sysutils/debootstrap.

     To	avoid mounting Linux-specific filesystems at startup, add the follow-
     ing line to the rc.conf(5)	file:

	   linux_mounts_enable="NO"

SYSCTL VARIABLES
     The following variables are available as both sysctl(8) variables and
     loader(8) tunables:

     compat.linux.debug
	     Enable debugging messages.	 Set to	0 to silence them.  Defaults
	     to	3.  A setting of 1 prints debug	messages, tells	about unimple-
	     mented stuff (only	once).	Set to 2 is like 1, but	also prints
	     messages about implemented	but not	tested stuff (only once).
	     Setting it	to 3 or	higher is like 2, but no rate limiting of mes-
	     sages.

     compat.linux.default_openfiles
	     Default soft openfiles resource limit for Linux applications.
	     Set to -1 to disable the limit.  Defaults to 1024.

     compat.linux.emul_path
	     Path to the Linux run-time	environment.  Defaults to
	     /compat/linux.

     compat.linux.osname
	     Linux kernel operating system name.  Defaults to "Linux".

     compat.linux.osrelease
	     Linux kernel operating system release.  Changing this to some-
	     thing else	is discouraged on non-development systems, because it
	     may change	the way	Linux programs work.  Some 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.  Defaults	to 198144.

     compat.linux.preserve_vstatus
	     When set to 1, it prevents	Linux applications from	resetting the
	     termios(4)	VSTATUS	setting.  From a user perspective, this	makes
	     SIGINFO work for Linux executables.  Defaults to 1.

     compat.linux.setid_allowed
	     Enable handling of	set-user-ID and	set-group-ID mode bits for the
	     new process image file when image is to be	executed under Linux
	     ABI.  When	set to 0, new Linux images always use credentials of
	     the program that issued the execve(2) call, regardless of the im-
	     age file mode.  This might	be reasonable or even required,	be-
	     cause FreeBSD does	not emulate the	Linux environment completely,
	     and missed	features may result in security	vulnerabilities.  De-
	     faults to 1.

FILES
     /compat/linux	    Linux run-time environment
     /compat/linux/dev	    device file	system,	see devfs(5)
     /compat/linux/dev/fd   file descriptor file system	mounted	with the
			    linrdlnk option, see fdescfs(5)
     /compat/linux/dev/shm  in-memory file system, see tmpfs(5)
     /compat/linux/proc	    Linux process file system, see linprocfs(5)
     /compat/linux/sys	    Linux kernel objects file system, see linsysfs(5)

SEE ALSO
     brandelf(1), pty(4), elf(5), fdescfs(5), linprocfs(5), linsysfs(5),
     tmpfs(5)

HISTORY
     Linux ABI support first appeared for i386 in FreeBSD 2.1.	Support	for
     amd64 binaries first appeared in FreeBSD 10.3.  Support for arm64 bina-
     ries first	appeared in FreeBSD 12.0.

BUGS
     Support for some of the Linux-specific system calls and system call argu-
     ments is missing.

FreeBSD	13.0			January	9, 2022			  FreeBSD 13.0

NAME | SYNOPSIS | DESCRIPTION | SYSCTL VARIABLES | FILES | SEE ALSO | HISTORY | BUGS

Want to link to this manual page? Use this URL:
<https://www.freebsd.org/cgi/man.cgi?query=linux&manpath=FreeBSD+13.1-RELEASE+and+Ports>

home | help