---
name: "linux"
section: "4"
platform: "linux"
package: "freebsd-manpages"
version: "6.0-5"
release: "Debian 4.0 (Etch)"
platforms: ["linux", "freebsd"]
url: "https://new.carta.tech/linux/4"
---

# linux(4)

Linux ABI support

## NAME

**linux** – Linux ABI support

## SYNOPSIS

To link Linux ABI support into the kernel: **options COMPAT\_LINUX**

To load the Linux ABI support kernel module:

```
kldload linux
```

## 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)](/elf/5.md) 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)](/sysctl/8.md) tunable variables are available:

- compat.linux.osname

  Linux kernel operating system name.

- compat.linux.osrelease

  Linux kernel operating system release.

- 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
fi
```

For information on loading the **linux** kernel loadable module automatically on system startup, see [rc.conf(5)](/rc.conf/5.md). 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

## SEE ALSO

[brandelf(1)](/brandelf/1.md), [elf(5)](/elf/5.md), linprocfs(5)

## HISTORY

Linux ABI support first appeared in FreeBSD 2.1.
