ArticleslgStudy

computer science

NLTSS

NLTSS is a computer science topic covered in the lgStudy science library. This page brings together a partial reference excerpt, illustrations, worked examples, real-world applications and a short study plan, so you can understand NLTSS rather than just read about it. In short: The Network Livermore Timesharing System (NLTSS, also sometimes the New Livermore Time Sharing System and internally as LINOS, the LINCS Interactive Network Operating System) is an operating system that was actively developed at Lawrence Livermore Laboratory (LLL) (now Lawrence Livermore National Laboratory, LLNL) from 1979 until about 1988, though it continued to run production applications and be supported and eve…

Key takeaways

  • NLTSS belongs to computer science; place it in that map before memorising details.
  • Learn the definition first, then one example that makes the definition concrete.
  • Connect NLTSS to a quantity you can measure, compute or draw — that is where exam questions come from.
  • Reproduce the core statement of NLTSS from memory before moving on to harder problems.

Reference excerpt

The Network Livermore Timesharing System (NLTSS, also sometimes the New Livermore Time Sharing System and internally as LINOS, the LINCS Interactive Network Operating System) is an operating system that was actively developed at Lawrence Livermore Laboratory (LLL) (now Lawrence Livermore National Laboratory, LLNL) from 1979 until about 1988, though it continued to run production applications and be supported and even, in some cases, extended until 1995. A previous operating system, the Livermore Time Sharing System had been developed over a decade earlier at LLL. NLTSS ran initially on a CDC 7600 computer, but only ran production from about 1984 until 1995 on Cray computers including the Cray-1, Cray X-MP, and Cray Y-MP models.

Characteristics The NLTSS operating system was unusual in many respects and unique in some.

Low-level architecture NLTSS was a microkernel message passing system. It was unique in that only one system call was supported by the kernel of the system. That system call, which might be called "communicate" (it didn't have a name because it didn't need to be distinguished from other system calls) accepted a list of "buffer tables" (e.g., see The NLTSS Message System Interface) that contained control information for message communication – either sends or receives. Such communication, both locally within the system and across a network was all the kernel of the system supported directly for user processes. The "message system" (supporting the one call and the network protocols) and drivers for the disks and processor composed the entire kernel of the system.

Mid-level architecture NLTSS is a capability-based security client–server system. The two primary servers are the file server and the process server. The file server was a process privileged to be trusted by the drivers for local storage (disk storage,) and the process server was a process privileged to be trusted by the processor driver (software that switched time sharing control between processes in the "alternator", handled interrupts for processes besides the "communicate" call, provided access to memory and process state for the process server, etc.). NLTSS was a true network operating system in that its resource requests could come from local processes or remote processes anywhere on the network and the servers didn't distinguish them. A server's only means to make such distinctions would be by network address and they had no reason to make such distinctions. All requests to the servers appeared as network requests. Communication between processes in NLTSS by convention used the Livermore Interactive Network Communication System (LINCS) protocol suite, which defined a protocol stack along the lines of that defined by the OSI reference model. The transport level protocol for NLTSS and LINCS was named Delta-T. At the presentation level, LINCS defined standards for communicating numbered parameters as tokens (e.g., integers, capabilities, etc.) that were stored in a session level record for processing in a remote procedure call sort of mechanism. The notion of a "user" was only rather peripherally defined in NLTSS. There was an "account server" that kept track of which users were using which resources (e.g., requests to create objects such as file or processes required such an account capability). Access control was entirely managed with capabilities (communicable authority tokens).

File server Any process could make requests to the file server for the creation of files (returning a file capability), ask to read or write files (by presenting a file capability), etc. For example, the act of reading a file generally required three buffer tables, one to send the request to the file server, one to receive the reply from the file server, and one to receive the data from the file. These three requests were generally submitted at one time to the message system, sometimes bundled with other requests. Control bits could be set in the buffer tables to awaken (unblock) a process whenever any of the buffer tables submitted were marked "Done". A library call to read a file would typically block until the control reply was received from the file server, though asynchronous I/O would of course not block and could check or block later. Any such differences on the user side were invisible to the file server.

Process server In NLTSS the process server was quite similar to the file server in that user processes could ask for the creation of processes, the starting or stopping of processes, reading or writing process memory or registers, and to be notified of process faults. The process server was an ordinary user mode process that was simply trusted to communicate with the CPU driver, just like the file server was trusted to communicate with the disk driver. The process server stored process state in files provided by the file server and in that regard appeared like any other user process to the file server.

Directory server An example higher level server in NLTSS was the directory server. This server's task was to essentially turn files (invisible to the user) into directories that could be used to store and retrieve capabilities by name. Since capabilities were simply data this wasn't a particularly difficult task, consisting mostly of manipulating access permissions on the capabilities according to the conventions defined in the LINCS protocol suite. One place where this got a bit interesting was regarding an access permission named inheritance. If this bit was on (allowed), then capabilities could be fetched with their full access from the directory. If this bit was turned off (disallowed), then any permissions turned off in the directory capability were in turn turned off in the capability being fetched before it was returned to the requesting application. This mechanism allowed people to store, for example, read/write files in a directory, but to give other users only permission to fetch read-only instances of them.

… excerpt ends here. Continue reading the full article.

Worked examples

Example 1 — a first encounter with NLTSS

Start with the simplest possible case. Write down what NLTSS claims or describes in one sentence, then invent the smallest concrete situation in which that sentence is true. In computer science, the smallest case is usually a single object, a single equation or a single measurement. Check that every symbol or term in your sentence has a meaning in that case.

Example 2 — changing one variable

Take the situation from Example 1 and change exactly one quantity: double it, halve it, or set it to zero. Predict what should happen to NLTSS before you calculate. Comparing your prediction with the result is the fastest way to find out whether you understand the idea or only the words.

Example 3 — an exam-style question

Typical questions about NLTSS ask you to (a) state it precisely, (b) apply it to given data, and (c) explain a limitation. Practise writing all three answers in under five minutes; the third part is what separates a full-mark answer from an average one.

Applications of NLTSS

In research
NLTSS appears in computer science research whenever the underlying quantities have to be modelled precisely. Papers usually cite it as a starting assumption and then explore where it breaks down.
In technology and industry
Engineering practice reuses NLTSS in design rules, simulations and safety margins. Knowing the idea lets you read a specification sheet and understand why the numbers look the way they do.
In the classroom
NLTSS is common in secondary-school and first-year university syllabi. It links to neighbouring topics 1979 software, Capability systems, Microkernel-based operating systems, so understanding it makes those chapters shorter.
In everyday life
Look for NLTSS outside the textbook — in sport, cooking, traffic, electronics or the sky above you. An example you found yourself is remembered far longer than one you were given.
Ask Teacher Smith questions about this articleOpens your AI tutor with a question about “NLTSS” →

Affiliate

Preply — study more efficiently by working with a personal tutor. 50% off.

How to study NLTSS in 20 minutes

  1. Read the reference excerpt below once, without taking notes.
  2. Close the page and write down what NLTSS means in your own words.
  3. Compare your version with the excerpt and mark what you missed.
  4. Work through the three examples above with pen and paper.
  5. Explain NLTSS out loud to somebody else — or to Teacher Smith in the lgStudy chat.

Frequently asked questions

What is NLTSS in simple terms?

The Network Livermore Timesharing System (NLTSS, also sometimes the New Livermore Time Sharing System and internally as LINOS, the LINCS Interactive Network Operating System) is an operating system that was actively developed at Lawrence Livermore Laboratory (LLL) (now Lawrence Livermore National L…

Why does NLTSS matter?

Because it connects several computer science ideas at once: it gives you a definition you can apply, a quantity you can calculate, and a way to check whether a result is plausible.

How should I study NLTSS?

Read the excerpt, restate it from memory, then work through the examples and applications listed on this page. The five-step study plan above takes about twenty minutes.

What does this page cover?

It gives you a compact reference excerpt plus original lgStudy explanations, examples, applications and study material on NLTSS.

Tags

  • 1979 software
  • Capability systems
  • Microkernel-based operating systems
  • Microkernels
  • Supercomputer operating systems
  • Time-sharing operating systems

Keep exploring