IBM

the IBM AS/400 machine-interface (MI)

I don't get how the machine-interface (IBM calls it "MI") works. They say the AS/400 is somewhat unusual because there are two machine-levels that play a role in practice. The upper one is called the MI-level and the lower one is the CISC/RISC platform, therefore MI, the Machine Interface, is in a very real sense what makes your machine an AS/400 rather than just a souped-up PowerPC. AS/400 is made in layers, and the operating system does not depend on the lowest layer (the hardware), therefore you can change processors (e.g. from CISC to Power) without the need of touching OS/400, and applications (the highest layer) are also independent.

How is it possible? Doesn't it sound like "java"? And exactly, what is the Machine-Level? And what is above and below the MI?
Head Full of Snow. Lemon Scented You
Its a binary layer, as in when you write applications for IBM i or OS/400 you don't actually compile to the underlying CPU's code, afaik. Compilers produce a CPU independent intermediate code which the OS changes to PPC, x86 etc code as needed. It's a neat concept.
:O3x02L: R16000 700MHz 8GB RAM kanna
:Octane: R12000 300MHz SI 896MB RAM yuuka
:Octane2: R12000A 400MHz V6 2.5GB RAM
:Indy: (Acclaim) R4600 133MHz XL Graphics 32MB RAM
:Indy: (Challenge S) R4600 133MHz (MIPS III Build Server)
Thinkpad W530 i7 3940XM 3GHz, 32GB, K1000M Windows 8.1 Embedded rin
Thinkpad R40 Pentium M 1.5GHz 2GB RAM kasha
Heh, I've toyed with that idea in my various notes towards hobbyist OS development. Never knew that it saw production use in a professional OS.
Computers: Amiga 1200, DEC VAXStation 4000/60, DEC MicroPDP-11/73
Synthesizers: Roland JX-10/SH-09/HS-80/MT-32/D-50, Yamaha DX7-II/V50/TX7/TG33/FB-01, Korg MS-20 Mini/ARP Odyssey/DW-8000/M1, Ensoniq SQ-80, E-mu Emax HD/Proteus-2, Casio CZ-5000, Moog Satellite, Sequential Circuits Prophet-600
Doesn't it sound like "java"?


Java, especially AOT compilation, does indeed work on a similar scheme.
smit happens.

:Fuel: bigred , 900MHz R16K, 4GB RAM, V12 DCD, 6.5.30
:Indy: indy , 150MHz R4400SC, 256MB RAM, XL24, 6.5.10
:Indigo2IMP: purplehaze , 175MHz R10000, Solid IMPACT
probably posted from Image bruce , Quad 2.5GHz PowerPC 970MP, 16GB RAM, Mac OS X 10.4.11
plus IBM POWER6 p520 * Apple Network Server 500 * RDI PrecisionBook * BeBox * Solbourne S3000 * Commodore 128 * many more...
So, is it similar to byte-code?
Head Full of Snow. Lemon Scented You
Y888099 wrote: So, is it similar to byte-code?

"Bytecode" is just a generic term for the machine language of a virtual-machine architecture, so, yes.

I'm curious, does it always do the translation dynamically on loading, or does it cache it in the filesystem somewhere?
Computers: Amiga 1200, DEC VAXStation 4000/60, DEC MicroPDP-11/73
Synthesizers: Roland JX-10/SH-09/HS-80/MT-32/D-50, Yamaha DX7-II/V50/TX7/TG33/FB-01, Korg MS-20 Mini/ARP Odyssey/DW-8000/M1, Ensoniq SQ-80, E-mu Emax HD/Proteus-2, Casio CZ-5000, Moog Satellite, Sequential Circuits Prophet-600
I believe it's cached, but this (like many things in System i) is abstracted away.
smit happens.

:Fuel: bigred , 900MHz R16K, 4GB RAM, V12 DCD, 6.5.30
:Indy: indy , 150MHz R4400SC, 256MB RAM, XL24, 6.5.10
:Indigo2IMP: purplehaze , 175MHz R10000, Solid IMPACT
probably posted from Image bruce , Quad 2.5GHz PowerPC 970MP, 16GB RAM, Mac OS X 10.4.11
plus IBM POWER6 p520 * Apple Network Server 500 * RDI PrecisionBook * BeBox * Solbourne S3000 * Commodore 128 * many more...
There is a really good book that explains everything called "Inside The AS/400". I've been meaning to pick up a copy. When you see what IBM moved into silicon you'll wonder why we still use the architecture we do.