i286emul -- emulate UNIX 80286


i286emul [ arg ... ] prog286


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:


The signal mechanism under the emulator is the System V release 2 signal mechanism rather than the System V release 3 mechanism.


the emulator must have this name and be in

if it is to be automatically invoked when exec is used on a 286 program

© 2003 Caldera International, Inc. All rights reserved.
SCO OpenServer Release 5.0.7 -- 11 February 2003