run on many, if not all of today’s IBM systems. Actually, this philosophy held
true even for the older systems before the IBM 360.
During about the
same period that the IBM 360 mainframes were emerging, Digital
Equipment Corporation was starting to bring out the first variants of
minicomputers, primarily 8-bit machines. Not until the late 1960’s and early
1970’s did DEC introduce its 16-bit PDP-11 series. Shortly thereafter, they
brought out their family of 32-bit computers, starting with VAX 780 systems.
DEC also developed multi-user, multi-tasking operating systems for both series;
the RSX system for the PDP-11 machines and VMS for the VAX machines. Both the
RSX and the VMS families evolved into true multi-user, multi-tasking operating
systems. By virtue of being effective multi-user systems, they had significant
security infrastructures in place; both used an account and password approach
to identity authentication of users.
The DEC systems
also saw the introduction of one of the more powerful networking systems up to
that time; a general architecture called DECnet. DECnet was proprietary to DEC;
it encompassed a series of hardware based protocol line controllers that
supported encrypted data transmission at up to 56,000 bits per second over
telephone lines and 10,000,000 bits per second over Ethernet-based local area
networks. DECnet-based networking coupled with RSX and VMS operating systems
provided relatively secure, wide-area networking for the application programs
of the day.
UNIX was an
operating system developed by a small group at Bell Laboratories during the
late 1960’s through the early 1970’s. Led by Dennis Ritchie and Ken Thompson,
the development team focused on a full blown operating system capable of running
first on the early generations of mini-computers from Digital Equipment
Corporation; specifically, the various PDP series machines. It was then ported
to a variety of other computer systems. UNIX was perhaps the first operating
system developed from a philosophical basis. The philosophy was essentially
that small is good, and many good but small programs can be aggregated into
larger, more powerful programs. In that way, the tendency is to do one small
thing well, and then use that rendition in every place where it is necessary to
do that thing. It has been well recognized over the years that UNIX has a
distinct Buddhist flair to it.
The development
of UNIX went hand-in-hand with a powerful programming language called simply “C”.
The initial versions of UNIX were written in C, which meant that porting to new
hardware systems only required the development of a C-language to
machine-language compiler for each new hardware platform. This development
philosophy holds even today, although the tendency is to form an abstract
hardware platform through the definition of a virtual machine. We will consider that concept just a bit later.
One of the more
minor, yet still significant mutational events that occurred concurrently with
the development and deployment of UNIX, was what we might term the theorization
of computer programming as a cognitive activity. Brian W. Kernighan and P.J.
Plauger contributed significantly to this transformation through their
publication of a small book entitled The Elements of Programming Style.
Within its approximately 170 pages, it offered a wide range of tips for
developing computer software that was more compact, reliable and robust than
anything the field had seen previously. The emergence of this cognition based
approach to programming contributed in no small part to the ability to develop
large-scale software systems that could actually be made to work.
UNIX was one of
the first operating systems developed around a collection of core software that
was developed with secure operations in mind. Building secure systems on top of
this kernel could
|