[cap-talk] RATS and NLTSS

Jed Donnelley jed at nersc.gov
Wed Jul 11 23:24:08 EDT 2007



At 5:52 PM -0400 7/11/07, Jonathan S. Shapiro wrote:
> I'd be interested to know more about what happened with RATS and NTLSS.
> I speculate that they were initially built for larger or non-commodity
> machines and never transitioned to the 386. Was there ever an effort
> made to mainstream these operating systems?
One other minor point that might be worth mentioning regarding
RATS and NLTSS (which were both developed at LLNL),
RATS was always imagined to have a very limited research
function, partly as a communication system on the ARPA
network (circa 1972) and with telephone dialers and partly
as a research system in it's own right for the Research Into
the Security of Operating System research project.

Some such research systems (e.g. Unix, Minix come to mind)
do end up having a life far beyond their originally intended research
life, but when the RISOS project was complete, except for a
brief use as a "transaction controller" for a Department Of
Transportation project, there was no further work on the
RATS system.

By contrast the NLTSS was always imagined to be the
production operating system for at least the Livermore
Computer Center - taking over from the previous
generation "LTSS" system.  LTSS was the Livermore
TimeSharing System and NLTSS picked up the name
New (sometimes Network) Livermore TimeSharing
System - even know the developers called it
LINOS for the Livermore Interactive Network
Operating System.

An early version of the NLTSS system (kernel,
basic servers) was put together as a "dual system"
(running over the existing LTSS device drivers) in
about a year.  We grossly underestimated what it
was going to take to develop the LTSS emulation
so that the major applications could run unmodified
on top of a compatibility library.

One simple example would be illustrative and might
interest Norm Hardy.  The older LTSS system had
a linear process structure called a "controller/controllee"
structure (which as I recall dated back to Norm's days
at LLNL).  The NLTSS system simply had communicable
capabilities to processes which could be stored (or not)
in directories.  The LTSS structure was somewhat
convoluted with mechanisms to send messages around
elements of the chain (e.g. to the top level controller,
to the controlling "terminal", etc.).  We ended up having
to emulate all that structure.

That was just one example of many.  I found it rather
upsetting that the users at LLNL forced us to stand on
our hands to emulate LTSS exactly, but then in the late
1980s they were quite willing to abandon that API that
they had programmed to for so many years in favor
of the Unix/Posix API - which to us seemed in itself
limited in rather awkward ways - e.g. with a tree structured
process graph vs. our general directed graph, with a much
more limited pipe/network IPC mechanism, etc.

One other aspect of the NLTSS system that made it
unsuitable for further development outside of LLNL is
that it came with it's own complete network protocol
suite - known as LINCS (the Livermore Interactive
Network Communication System) - distinct from
TCP (though it also supported TCP).  This might
seem a bit strange from the modern perspective,
but if you remember that LLNL needed to develop
all their own software and much of their own hardware
(e.g. networking and display hardware) in those days,
it isn't so surprising that we would include an updated
network protocol suite with our new operating system
in that 1979 time frame before TCP was developed.

I still feel the transport level protocol that was developed
within LINCS - referred to as Delta-T:

Fletcher, J. C., and R. W. Watson,
"Mechanisms for a Reliable Timer-Based Protocol,"
Computer Networks 2, 271 (Sept./Oct. 1978). Also in Proc. Computer 
Network Protocols Symposium, Liege, Belgium (February 1978), pp. 
C5-1/C5-17.

Watson, R. W.,
"Delta-t Protocol Specifications,"
Lawrence Livermore National Laboratory, Report UCRL-52881 (November 1979).

had some advantages over TCP (mostly related to minimizing packet
costs for reliable transport - particularly suitable for the sorts of
RPC uses that LINCS and NLTSS required) that are missing in
widely used protocols to this day.

It would have been rather difficult to adapt NLTSS to a
TCP-only environment.

One heritage of NLTSS/LINCS that is still around is HPSS:

http://www.hpss-collaboration.org/hpss/

HPSS started out as the file/directory system (servers) from
NLTSS/LINCS, becoming known as "Unitree" when worked
on as part of the National Storage Laboratory and eventually
being picked up as the IBM HPSS product in collaboration
with LLNL - as it still stands today, though the collaboration
is now wider.  Most of my old OS group that did the NLTSS
development moved over to doing storage systems when
the OS work stopped but the Unitree/HPSS development work
continued (late 1980s).  At least two of them still work on HPSS
at LLNL.

Likely more than you wanted to know, but just FYI as you asked
about RATS and NLTSS seemingly as if they had something
in common besides both being developed at LLNL.  The RISOS
project where RATS was developed was a rather separate and
distinct "work for others" research project vs. the NLTSS
project that had to go through the full political and budget wringer
of such a large development project at a major government
funded laboratory like LLNL.

--Jed   http://www.webstart.com/jed/


More information about the cap-talk mailing list