[TUHS] Bootstrapping UNIX - how was it done

Clem Cole via TUHS tuhs at tuhs.org
Wed Mar 25 02:49:07 AEST 2026


On Tue, Mar 24, 2026 at 1:50 AM Lars Brinkhoff via TUHS <tuhs at tuhs.org>
wrote:

> Dan Cross wrote:
> > Despite the similarity in name, the 635 and 645 were very different
> machines
>
Be careful, that's not completely true.

I always thought that approximately, the 645 = 635 + Multics stuff.
>
Exactly: the GE645 is a 635 plus what GE called the Appending Unit (APU) .
This was the same idea IBM used with the 360 models 65 and 67.  The 67 had
what IBM called the Data Address Translator (DAT) and some new microcode.



> Is that not so?
>
The APU had the new hardware to:

   - Paged Segmentation: Support for both paging and independent segments,
   which allowed for the "single-level store" abstraction central to Multics.
   - New Addressing Modes: The addition of an "Appending Mode" that used
   18-bit segment numbers and 18-bit offsets, effectively expanding the
   address space and simplifying virtual memory support.
   - Associative Memory: Implementation of what is now known as a Translation
   Lookaside Buffer (TLB) to speed up address translation.
   - Base Registers: Eight 24-bit address base registers (often used in
   pairs) to handle segmented addresses.

Note that because of the changes to the addressing logic and the
instruction set, the GE-645 was not directly object-code compatible with
the GE-635. However, the 645 remained compatible enough with the 635 family
to run the standard GE operating system (GECOS) and memory controllers.  The
GE-645 featured a way to switch hardware (described as a "mode knob") — that
allowed it to operate in "GCOS mode".
So an object file written for the GE-635 GECOS could run a 645 running
GECOS with mode nob set.  But that same object could not run directly on
*Multics* as a native executable.  I don't have the details, but I believe
the 635 object can be run using a simulator or a specific command that sets
up a GECOS environment for the processing and runs that object.

FWIW: TSS/360 worked the same way.  An OS/360 application could not
directly execute on a 67 running TSS/360, although it was basically
straightforward to modify the source [this is what my first paid
programming gig was - moving York/APL to TSS].  That said, CP-67
"Hypervisor" from IBM Cambridge allowed you to boot unmodified copies of
OS/360.  So a 67 could run those user binaries in a VM [this is like
running VMWare on my Intel Mac, so I can run Windows-11 applications in a
"hosted" Win11 instance].


More information about the TUHS mailing list