summaryrefslogtreecommitdiff
path: root/static/freebsd/man4/aout.4 3.html
diff options
context:
space:
mode:
Diffstat (limited to 'static/freebsd/man4/aout.4 3.html')
-rw-r--r--static/freebsd/man4/aout.4 3.html106
1 files changed, 0 insertions, 106 deletions
diff --git a/static/freebsd/man4/aout.4 3.html b/static/freebsd/man4/aout.4 3.html
deleted file mode 100644
index 75f51d33..00000000
--- a/static/freebsd/man4/aout.4 3.html
+++ /dev/null
@@ -1,106 +0,0 @@
-<table class="head">
- <tr>
- <td class="head-ltitle">AOUT(4)</td>
- <td class="head-vol">Device Drivers Manual</td>
- <td class="head-rtitle">AOUT(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">aout</code> &#x2014; <span class="Nd">kernel
- support for executing binary files in legacy a.out format</span></p>
-</section>
-<section class="Sh">
-<h1 class="Sh" id="SYNOPSIS"><a class="permalink" href="#SYNOPSIS">SYNOPSIS</a></h1>
-<div class="Bd Bd-indent Li">
-<pre>kldload a.out</pre>
-</div>
-</section>
-<section class="Sh">
-<h1 class="Sh" id="DESCRIPTION"><a class="permalink" href="#DESCRIPTION">DESCRIPTION</a></h1>
-<p class="Pp">The <a class="Xr">a.out(5)</a> executable format was used before
- the release of <span class="Ux">FreeBSD 3.0</span>. Since i386 was the only
- supported architecture at that time, <a class="Xr">a.out(5)</a> executables
- can only be activated on platforms that support execution of i386 code, such
- as i386 and amd64.</p>
-<p class="Pp">To add kernel support for old syscalls and old syscall invocation
- methods, place the following options in the kernel configuration file:</p>
-<div class="Bd Pp Bd-indent"><code class="Cd">options COMPAT_43</code>
-<br/>
-<code class="Cd">options COMPAT_FREEBSD32</code></div>
-<p class="Pp">The <var class="Va">COMPAT_FREEBSD32</var> option is only required
- on 64-bit CPU architectures.</p>
-<p class="Pp">The <var class="Va">aout.ko</var> module needs to be loaded with
- the <a class="Xr">kldload(8)</a> utility in order to support the
- <a class="Xr">a.out(5)</a> image activator:</p>
-<div class="Bd Pp Bd-indent"><code class="Ic">kldload aout</code></div>
-<p class="Pp">Alternatively, to load the module at boot time, place the
- following line in <a class="Xr">loader.conf(5)</a>:</p>
-<div class="Bd Pp Bd-indent Li">
-<pre>aout_load=&quot;YES&quot;</pre>
-</div>
-<p class="Pp">The <a class="Xr">a.out(5)</a> format was mainstream quite a long
- time ago. Reasonable default settings and security requirements of modern
- operating systems today contradict the default environment of that time and
- require adjustments of the system to mimic natural environment for old
- binaries.</p>
-<p class="Pp">The following <a class="Xr">sysctl(8)</a> tunables are useful for
- this:</p>
-<div class="Bd-indent">
-<dl class="Bl-tag">
- <dt id="security.bsd.map_at_zero"><var class="Va">security.bsd.map_at_zero</var></dt>
- <dd>Set to 1 to allow mapping of process pages at address 0. Some very old
- <var class="Va">ZMAGIC</var> executable images require text mapping at
- address 0.</dd>
- <dt id="kern.pid_max"><var class="Va">kern.pid_max</var></dt>
- <dd>Old versions of <span class="Ux">FreeBSD</span> used signed 16-bit type
- for <var class="Vt">pid_t</var>. Current kernels use 32-bit type for
- <var class="Vt">pid_t</var>, and allow process id's up to 99999. Such
- values cannot be represented by old <var class="Vt">pid_t</var>, mostly
- causing issues for processes using <a class="Xr">wait(2)</a> syscalls, for
- example shells. Set the sysctl to 30000 to work around the problem.</dd>
- <dt id="kern.elf32.read_exec"><var class="Va">kern.elf32.read_exec</var></dt>
- <dd>Set to 1 to force any accessible memory mapping performed by 32-bit
- process to allow execution, see <a class="Xr">mmap(2)</a>. Old i386 CPUs
- did not have a bit in PTE which disallowed execution from the page, so
- many old programs did not specify <var class="Va">PROT_EXEC</var> even for
- mapping of executable code. The sysctl forces
- <var class="Va">PROT_EXEC</var> if mapping has any access allowed at all.
- The setting is only needed if the host architecture allows non-executable
- mappings.</dd>
-</dl>
-</div>
-</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">execve(2)</a>, <a class="Xr">a.out(5)</a>,
- <a class="Xr">elf(5)</a>, <a class="Xr">sysctl(8)</a></p>
-</section>
-<section class="Sh">
-<h1 class="Sh" id="HISTORY"><a class="permalink" href="#HISTORY">HISTORY</a></h1>
-<p class="Pp">The <a class="Xr">a.out(5)</a> executable format was used on
- ancient <span class="Ux">AT&amp;T UNIX</span> and served as the main
- executable format for <span class="Ux">FreeBSD</span> from the beginning up
- to <span class="Ux">FreeBSD 2.2.9</span>. In <span class="Ux">FreeBSD
- 3.0</span> it was superseded by <a class="Xr">elf(5)</a>.</p>
-</section>
-<section class="Sh">
-<h1 class="Sh" id="AUTHORS"><a class="permalink" href="#AUTHORS">AUTHORS</a></h1>
-<p class="Pp">The <code class="Nm">aout</code> manual page was written by
- <span class="An">Konstantin Belousov</span>
- &lt;<a class="Mt" href="mailto:kib@FreeBSD.org">kib@FreeBSD.org</a>&gt;.</p>
-</section>
-<section class="Sh">
-<h1 class="Sh" id="BUGS"><a class="permalink" href="#BUGS">BUGS</a></h1>
-<p class="Pp">On 64bit architectures, not all wrappers for older syscalls are
- implemented.</p>
-</section>
-</div>
-<table class="foot">
- <tr>
- <td class="foot-date">August 14, 2012</td>
- <td class="foot-os">FreeBSD 15.0</td>
- </tr>
-</table>