I286EMUL(C) UNIX System V
Name
i286emul - emulate UNIX 80286
Syntax
i286emul [ arg ... ] prog286
Description
i286emul is an emulator that allows programs from UNIX
System V Release 2 or Release 3 on the Intel 80286 to run on
UNIX System V Release 3 on the Intel 80386.
The UNIX system recognizes an attempt to exec(S) a 286
program, and automatically exec's the 286 emulator with the
286 program name as an additional argument. It is not
necessary to specify the i286emul emulator on the command
line. The 286 programs can be invoked using the same
command format as on the 286 UNIX System V.
i286emul reads the 286 program's text and data into memory
and maps them through the LDT (Local Descriptor Table) (via
sysi86(S)) as 286 text and data segments. It also sets
callgate 89 in the GDT (Global Descriptor Table) (which is
used by 286 programs for system calls) to point to a routine
in i286emul. i286emul starts the 286 program by jumping to
its entry point.
When the 286 program attempts to do a system call, i286emul
takes control. It does any conversions needed between the
286 system call and the equivalent 386 system call, and
performs the 386 system call. The results are converted to
the form the 286 program expects, and the 286 program is
resumed.
The following are some of the differences between a program
running on a 286 and a 286 program using i286emul on a 386:
⊕ A 286 program under i286emul always has 64K in the
stack segment if it is a large-model process, or 64K in
the data segment if it is a small-model process.
⊕ System calls and signal handling use more space on the
stack under i286emul than it does on a 286.
⊕ Attempts to unlink or write on the 286 program will
fail on the 286 with ETXTBSY. Under i286emul, they
will not fail.
⊕ ptrace(S) is not supported under i286emul.
⊕ The 286 program must be readable for the emulator to
read it.
Files
/bin/i286emul
The emulator must have this name and be in /bin if it
is to be automatically invoked when exec(S) is used on
a 286 program.
Notes
The signal mechanism under the emulator is the System V
release 2 signal mechanism rather than the System V release
3 mechanism.
(printed 2/15/90) I286EMUL(C)