Open main menu
Home
Random
Recent changes
Special pages
Community portal
Preferences
About Wikipedia
Disclaimers
Incubator escapee wiki
Search
User menu
Talk
Dark mode
Contributions
Create account
Log in
Editing
IBM System/38
(section)
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
===Machine Interface=== The System/38 and its descendants use a machine interface architecture to isolate the [[application software]] and most of the operating system from hardware dependencies, including such details as address size and register size. Compilers for System/38 and its successors generate code in a high-level instruction set known as the ''Machine Interface'', or MI. MI is a virtual instruction set; it is not the instruction set of the underlying CPU. MI operates on ''objects'' instead of traditional memory addresses or registers.<ref>{{cite book | chapter-url = http://www.cs.washington.edu/homes/levy/capabook/Chapter8.pdf | title = Capability-Based Computer Systems | chapter = The IBM System/38 | first = Henry M. | last = Levy | publisher = Digital Press | year = 1984 | isbn = 0-932376-22-3}}</ref> Unlike some other virtual-machine architectures in which the virtual instructions are interpreted at runtime (see [[P-code machine]]), MI instructions are never interpreted. They constitute an intermediate compile time step and are [[binary translation|translated into the processor's instruction set]] as the final compilation step. The MI instructions are stored within the final program object, in addition to the executable machine instructions. If a program is moved from a processor with one native instruction set to a processor with another native instruction set, the MI instructions will be re-translated into the native instruction set of the new machine before the program is executed for the first time on the new machine. The TIMI (Technology Independent Machine Interface) of OS/400 is a backwards compatible extension of the System/38 MI. As a result, it is possible for a program originally developed on a System/38 to run on current [[IBM i]] hardware without ever being recompiled.<ref name="inside-as400" />
Edit summary
(Briefly describe your changes)
By publishing changes, you agree to the
Terms of Use
, and you irrevocably agree to release your contribution under the
CC BY-SA 4.0 License
and the
GFDL
. You agree that a hyperlink or URL is sufficient attribution under the Creative Commons license.
Cancel
Editing help
(opens in new window)