Bugtraq mailing list archives

Re: Bounds checking - historical aside


From: Bill_Royds () PCH GC CA (Bill Royds)
Date: Tue, 21 Jul 1998 15:16:31 -0400


The Burroughs 6700 was used as basis of HP9000 minicomputer series. It was
also used a from of Algol as system implementation language so even
operating system software had bounds checking. And it was one of the
fastest of its generation (It was a stack based machine with RISC like
operands ).

Actually the Intel 38x+ architecture can have bounds checking by properly
using the segment registers. It is just that most OS's don't let compilers
at them.





I will add another:

   4) Use hardware that supports bounds checking.

OK This isn't an option for most of us since most HW architectures that
we are currently stuck with don't implement bounds checking. Going back
a few years (mid 70's) we had a Burroughs B6700 which had a stack based
architechure and used a segmentent memory model.  Each array or string
was allocated its own segment and was accessed through a descriptor
which held base address and bounds information.  There was a hardware
index instruction which retrieved the data and performed the bounds
check potentially in parallel.  (There were also hardware string copy
and compare operators).

In those days FORTRAN ruled and we often had visiting staff trying to
run their programs on the B6700 only to have is spit it out with an
"INVALID INDEX" message.  The usual response was "What's wrong with
your computer, this program is in use by 100s of people all over the
world and I have been using it for x years without problems".

The more things change the more they stay the same.

I have very fond memories of the B6700, it was by far the best machine
I ever worked on.

Cheers, Russell.



Current thread: