Kip Crosby <engine(a)chac.org> wrote (after a correspondent I've lost
track of):
At 09:58 9/22/97 BST, you wrote:
The IBM AS/400 is, I am told, based on the S/38.
I'd be interested in knowing how, and to what extent. When my company was
installing a bunch of Novell LANs in the late eighties, we used to call an
AS/400 "a '386 surrounded by a lot of expensive air," but I suspect that
that was the same kind of disparaging performance benchmark as comparing an
S/38 to an 8088. I also suspect that what's inside an AS/400 box has
changed an _awful lot_ over the years while the badge has provided continuity.
Doug Jones wrote a nice little explanation of this in a.f.c in early
1996. It's in dejanews if you want to go looking (long URL follows):
http://xp8.dejanews.com/getdoc.xp?recnum=4528820&server=db96q1&CONT…
The summary is that there's a capability-based CISC architecture that
derives from the System/38. That is what the compilers compile to.
The AS/400 loader takes that code and generates RISC code for the
underlying AS/400 CPU. That underlying AS/400 CPU has changed over
the life of the product, and they can change it again. Pretty nifty.
Apparently the underlying RISC architecture doesn't have much in the
way of access protections; all that is implemented in the
loader-generated code.
It's not clear to me whether this means that linked executables can be
moved from one flavor of AS/400 to another, or you have to recompile
from source, and I don't enough about AS/400s to
know whether its
users really care about stuff like that.
-Frank McConnell