diff options
| author | Jacob McDonnell <jacob@jacobmcdonnell.com> | 2026-04-25 19:55:43 -0400 |
|---|---|---|
| committer | Jacob McDonnell <jacob@jacobmcdonnell.com> | 2026-04-25 19:55:43 -0400 |
| commit | ac5e55f5f2af5b92794c2aded46c6bae85b5f5ed (patch) | |
| tree | 9367490586c84cba28652e443e3166d66c33b0d9 /static/freebsd/man4/linux.4 3.html | |
| parent | 253e67c8b3a72b3a4757fdbc5845297628db0a4a (diff) | |
docs: Added All FreeBSD Manuals
Diffstat (limited to 'static/freebsd/man4/linux.4 3.html')
| -rw-r--r-- | static/freebsd/man4/linux.4 3.html | 152 |
1 files changed, 152 insertions, 0 deletions
diff --git a/static/freebsd/man4/linux.4 3.html b/static/freebsd/man4/linux.4 3.html new file mode 100644 index 00000000..d10dae0d --- /dev/null +++ b/static/freebsd/man4/linux.4 3.html @@ -0,0 +1,152 @@ +<table class="head"> + <tr> + <td class="head-ltitle">LINUX(4)</td> + <td class="head-vol">Device Drivers Manual</td> + <td class="head-rtitle">LINUX(4)</td> + </tr> +</table> +<div class="manual-text"> +<section class="Sh"> +<h1 class="Sh" id="NAME"><a class="permalink" href="#NAME">NAME</a></h1> +<p class="Pp"><code class="Nm">linux</code> — <span class="Nd">Linux ABI + support</span></p> +</section> +<section class="Sh"> +<h1 class="Sh" id="SYNOPSIS"><a class="permalink" href="#SYNOPSIS">SYNOPSIS</a></h1> +<p class="Pp">To enable the Linux ABI at boot time, place the following line in + <a class="Xr">rc.conf(5)</a>:</p> +<div class="Bd Pp Bd-indent Li"> +<pre>linux_enable="YES"</pre> +</div> +</section> +<section class="Sh"> +<h1 class="Sh" id="DESCRIPTION"><a class="permalink" href="#DESCRIPTION">DESCRIPTION</a></h1> +<p class="Pp">The <code class="Nm">linux</code> 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:</p> +<ul class="Bl-bullet"> + <li>Linux to native system call translation</li> + <li>Linux-specific system calls</li> + <li>Special signal handling for Linux processes</li> + <li>Path translation mechanism</li> + <li>Linux-specific virtual file systems</li> +</ul> +<p class="Pp">The path translation mechanism makes Linux processes look up file + paths under <var class="Va">emul_path</var> (defaulting to + <span class="Pa">/compat/linux</span>) before <span class="Pa">/</span>. For + example, when a Linux process attempts to open + <span class="Pa">/etc/passwd</span>, it will first access + <span class="Pa">/compat/linux/etc/passwd</span>, falling back to + <span class="Pa">/etc/passwd</span> if the compat path 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.</p> +<p class="Pp">To install Linux shared libraries and system files into + <span class="Pa">/compat/linux</span>, either use the + <span class="Pa">emulators/linux_base-c7</span> port or package, or + <a class="Xr">debootstrap(8)</a> installed from + <span class="Pa">sysutils/debootstrap</span>.</p> +<p class="Pp">To avoid mounting Linux-specific filesystems at startup, add the + following line to the <a class="Xr">rc.conf(5)</a> file:</p> +<p class="Pp"></p> +<div class="Bd + Bd-indent"><code class="Li">linux_mounts_enable="NO"</code></div> +</section> +<section class="Sh"> +<h1 class="Sh" id="SYSCTL_VARIABLES"><a class="permalink" href="#SYSCTL_VARIABLES">SYSCTL + VARIABLES</a></h1> +<p class="Pp">The following variables are available as both + <a class="Xr">sysctl(8)</a> variables and <a class="Xr">loader(8)</a> + tunables:</p> +<dl class="Bl-tag"> + <dt id="compat.linux.debug"><var class="Va">compat.linux.debug</var></dt> + <dd>Enable debugging messages. Set to 0 to silence them. Defaults to 3. A + setting of 1 prints debug messages, tells about unimplemented 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 messages.</dd> + <dt id="compat.linux.default_openfiles"><var class="Va">compat.linux.default_openfiles</var></dt> + <dd>Default soft openfiles resource limit for Linux applications. Set to -1 to + disable the limit. Defaults to 1024.</dd> + <dt id="compat.linux.emul_path"><var class="Va">compat.linux.emul_path</var></dt> + <dd>Path to the Linux run-time environment. Defaults to + <span class="Pa">/compat/linux</span>.</dd> + <dt id="compat.linux.osname"><var class="Va">compat.linux.osname</var></dt> + <dd>Linux kernel operating system name. Defaults to "Linux".</dd> + <dt id="compat.linux.osrelease"><var class="Va">compat.linux.osrelease</var></dt> + <dd>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. Some versions of GNU libc are known to use different + syscalls depending on the value of this sysctl.</dd> + <dt id="compat.linux.oss_version"><var class="Va">compat.linux.oss_version</var></dt> + <dd>Linux Open Sound System version. Defaults to 198144.</dd> + <dt id="compat.linux.preserve_vstatus"><var class="Va">compat.linux.preserve_vstatus</var></dt> + <dd>When set to 1, it prevents Linux applications from resetting the + <a class="Xr">termios(4)</a> VSTATUS setting. From a user perspective, + this makes <var class="Va">SIGINFO</var> work for Linux executables. + Defaults to 1.</dd> + <dt id="compat.linux.setid_allowed"><var class="Va">compat.linux.setid_allowed</var></dt> + <dd>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 <a class="Xr">execve(2)</a> call, regardless of the image file mode. + This might be reasonable or even required, because + <span class="Ux">FreeBSD</span> does not emulate the Linux environment + completely, and missed features may result in security vulnerabilities. + Defaults to 1.</dd> + <dt id="compat.linux32.emulate_i386"><var class="Va">compat.linux32.emulate_i386</var></dt> + <dd>In the x86_64 (amd64) world enable the real i386 Linuxulator behavior. For + example, when set to 0, Linux uname -m will return "x86_64" even + if uname itself is a i386 Linux executable. When set to 1, Linux i386 + uname -m will return "i686". Defaults to 0.</dd> +</dl> +</section> +<section class="Sh"> +<h1 class="Sh" id="FILES"><a class="permalink" href="#FILES">FILES</a></h1> +<dl class="Bl-tag Bl-compact"> + <dt><span class="Pa">/compat/linux</span></dt> + <dd>Linux run-time environment</dd> + <dt><span class="Pa">/compat/linux/dev</span></dt> + <dd>device file system, see <a class="Xr">devfs(4)</a></dd> + <dt><span class="Pa">/compat/linux/dev/fd</span></dt> + <dd>file descriptor file system mounted with the + <code class="Cm">linrdlnk</code> option, see + <a class="Xr">fdescfs(4)</a></dd> + <dt><span class="Pa">/compat/linux/dev/mqueue</span></dt> + <dd>symbolic link to a mqueuefs mount, see <a class="Xr">mqueuefs(4)</a></dd> + <dt><span class="Pa">/compat/linux/dev/shm</span></dt> + <dd>in-memory file system, see <a class="Xr">tmpfs(4)</a></dd> + <dt><span class="Pa">/compat/linux/proc</span></dt> + <dd>Linux process file system, see <a class="Xr">linprocfs(4)</a></dd> + <dt><span class="Pa">/compat/linux/sys</span></dt> + <dd>Linux kernel objects file system, see <a class="Xr">linsysfs(4)</a></dd> +</dl> +</section> +<section class="Sh"> +<h1 class="Sh" id="SEE_ALSO"><a class="permalink" href="#SEE_ALSO">SEE + ALSO</a></h1> +<p class="Pp"><a class="Xr">brandelf(1)</a>, <a class="Xr">fdescfs(4)</a>, + <a class="Xr">linprocfs(4)</a>, <a class="Xr">linsysfs(4)</a>, + <a class="Xr">mqueuefs(4)</a>, <a class="Xr">pty(4)</a>, + <a class="Xr">tmpfs(4)</a>, <a class="Xr">elf(5)</a></p> +</section> +<section class="Sh"> +<h1 class="Sh" id="HISTORY"><a class="permalink" href="#HISTORY">HISTORY</a></h1> +<p class="Pp">Linux ABI support first appeared for i386 in + <span class="Ux">FreeBSD 2.1</span>. Support for amd64 binaries first + appeared in <span class="Ux">FreeBSD 10.3</span>. Support for arm64 binaries + first appeared in <span class="Ux">FreeBSD 12.0</span>.</p> +</section> +<section class="Sh"> +<h1 class="Sh" id="BUGS"><a class="permalink" href="#BUGS">BUGS</a></h1> +<p class="Pp">Support for some of the Linux-specific system calls and system + call arguments is missing.</p> +</section> +</div> +<table class="foot"> + <tr> + <td class="foot-date">May 19, 2024</td> + <td class="foot-os">FreeBSD 15.0</td> + </tr> +</table> |
