Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ i286emul(C) — OpenDesktop 3.0.0

Media Vault

Software Library

Restoration Projects

Artifacts Sought


 i286emul(C)                     19 June 1992                     i286emul(C)


 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 auto-
    matically exec's the 286 emulator with the 286 program name as an addi-
    tional 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 con-
    trol.  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 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.

 File


    /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.


Typewritten Software • bear@typewritten.org • Edmonds, WA 98026