Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ i286emul(C) — OpenDesktop 1.0.0y

Media Vault

Software Library

Restoration Projects

Artifacts Sought


     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 8/29/89)                                  I286EMUL(C)

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