AIX for IBM system 370

Guy Sotomayor ggs at shiresoft.com
Mon Feb 1 22:37:21 CST 2016



On 2/1/16 8:11 PM, Eric Smith wrote:
> On Mon, Feb 1, 2016 at 8:09 PM, devin davison <lyokoboy0 at gmail.com> wrote:
>> I really wanted to take a look at the AIX version of unix.
>> I don't have any of the original hardware, I assume there was a straight
>> unix port for the system 370,
> There may be a "straight unix port" for the System/370, but AIX ain't
> it. The earlier IX/370 product may be closer to a straight port, but
> is probably even less easily found than AIX/370.
>
> "AIX looks like it was implemented by a pretty smart space alien who
> heard Unix described to him by a different space alien, but they had
> to gesture a lot because their universal translators were broken."
>      --unknown, but often misattributed to Paul Tomblin
You have to remember that IBM called all of it's UNIX products AIX 
regardless of where
they came from.

IX/370 was prior to the AIX naming and if I recall, that was done by 
Interactive.  AIX/370
and AIX PS/2 actually were the same code base (as opposed to AIX RT and 
AIX 3...RS/6000).
Those code bases were from Locus Computer Corporation.

The AIX in the quote was regarding AIX for the RS/6000.  The kernel for 
AIX on the
RS/6000 bore no real resemblance to any other Unix kernel.  That was 
mainly due to
the size of the virtual address space of the Power processors.  At the 
time (32-bits)
the Power CPU supported a 52-bit virtual address space and with 256MB 
segments,
it was possible to map the 4GB address with 16 segment registers also 
because
Power used "inverted page tables", there was no real notion of reloading 
the page
tables.  The page table described the full 52-bit address space.  So to 
do an address
space switch, you just needed to reload a significant set of the segment 
registers
(actually quite fast).

What the kernel did was to allocate each data structure as an array and 
pointed a
segment register at it.  Since at that point, virtual addresses were 
"free", it was just
point a segment register at the array and away you go.  Pretty much 
everything in
the kernel was an index into an array.  Which array, was determined by 
the segment
register.

Yes, it was alien (vs traditional Unix kernels) but it was simple and 
quite fast.

TTFN - Guy



More information about the cctech mailing list