TRIX (operating System)
   HOME

TheInfoList



OR:

TRIX is a network-oriented research operating system developed in the late 1970s at
MIT The Massachusetts Institute of Technology (MIT) is a private land-grant research university in Cambridge, Massachusetts. Established in 1861, MIT has played a key role in the development of modern technology and science, and is one of the mo ...
's
Laboratory for Computer Science Computer Science and Artificial Intelligence Laboratory (CSAIL) is a research institute at the Massachusetts Institute of Technology (MIT) formed by the 2003 merger of the Laboratory for Computer Science (LCS) and the Artificial Intelligence Lab ...
(LCS) by Professor Steve Ward and his research group. It ran on the
NuMachine The NuMachine, or Nu machine, was an early microprocessor-based computer workstation designed to interface with local area networks. It was developed in the late 1970s at MIT's Laboratory for Computer Science (LCS) by Professor Steve Ward and his r ...
and had
remote procedure call In distributed computing, a remote procedure call (RPC) is when a computer program causes a procedure (subroutine) to execute in a different address space (commonly on another computer on a shared network), which is coded as if it were a normal (l ...
functionality built into its
kernel Kernel may refer to: Computing * Kernel (operating system), the central component of most operating systems * Kernel (image processing), a matrix used for image convolution * Compute kernel, in GPGPU programming * Kernel method, in machine learnin ...
, but was otherwise a
Version 7 Unix Seventh Edition Unix, also called Version 7 Unix, Version 7 or just V7, was an important early release of the Unix operating system. V7, released in 1979, was the last Bell Laboratories release to see widespread distribution before the commercial ...
workalike.


Design and implementation

On startup, the NuMachine would load the same program on each CPU in the system, passing each instance the numeric ID of the CPU it was running on. TRIX relied on this design to have the first CPU set up global data structures and then set a flag to signal that initialization was complete. After that, each instance of the kernel was able to access global data. The system also supported data private to each CPU. Access to the filesystem was provided by a program in
user space A modern computer operating system usually segregates virtual memory into user space and kernel space. Primarily, this separation serves to provide memory protection and hardware protection from malicious or errant software behaviour. Kernel ...
. The kernel supported unnamed threads running in domains. A domain was the equivalent of a Unix process without a stack pointer (each thread in a domain had a stack pointer). A thread could change domains, and the system scheduler would migrate threads between CPUs in order to keep all processors busy. Threads had access to a single kind of mutual exclusion primitive, and one of seven priorities. The scheduler was designed to avoid
priority inversion In computer science, priority inversion is a scenario in scheduling in which a high priority task is indirectly superseded by a lower priority task effectively inverting the assigned priorities of the tasks. This violates the priority model that h ...
. User space programs could create threads through a spawn system call. A
garbage collector A waste collector, also known as a garbageman, garbage collector, trashman (in the US), binman or (rarely) dustman (in the UK), is a person employed by a public or private enterprise to collect and dispose of municipal solid waste (refuse) and r ...
would periodically identify and free unused domains. The shared memory model used to coordinate work between the various CPUs caused
memory bus In computer architecture, a bus (shortened form of the Latin '' omnibus'', and historically also called data highway or databus) is a communication system that transfers data between components inside a computer, or between computers. This ex ...
contention and was known to be a source of inefficiency. The designers were aware of designs that would have alleviated the contention. Indeed, TRIX's original design used a nonblocking message passing mechanism, but "this implementation was found to have deficiencies often overlooked in the literature," including poor performance. Although the TRIX operating system was first implemented on the NuMachine, this was due to the availability of the NuMachine at MIT, not because of any characteristic of the architecture. The system was designed to be easily portable. It was implemented largely in C with little assembly code. The mutual exclusion primitive could be ported to any architecture with an atomic test and set instruction.


Attempted use by the GNU Project

Richard Stallman Richard Matthew Stallman (; born March 16, 1953), also known by his initials, rms, is an American free software movement activist and programmer. He campaigns for software to be distributed in such a manner that its users have the freedom to ...
mentions in the 1985
GNU Manifesto __NOTOC__ The ''GNU Manifesto'' is a call-to-action by Richard Stallman encouraging participation and support of the GNU Project's goal in developing the GNU free computer operating system. The GNU Manifesto was published in March 1985 in '' D ...
that "an initial kernel exists" for the
GNU operating system GNU () is an extensive collection of free software (383 packages as of January 2022), which can be used as an operating system or can be used in parts with other operating systems. The use of the completed GNU tools led to the family of operat ...
, "but many more features are needed to emulate Unix." This was a reference to TRIX's kernel, which TRIX's authors had decided to distribute as
free software Free software or libre software is computer software distributed under terms that allow users to run the software for any purpose as well as to study, change, and distribute it and any adapted versions. Free software is a matter of liberty, no ...
. In a speech in October 1986, Stallman elaborated that "the TRIX kernel runs, and it has a certain limited amount of Unix compatibility, but it needs a lot more. Currently it has a file system that uses the same structure on disk as the ancient Unix file system does. This made it easier to debug the thing, because they could set up the files with Unix, and then they could run TRIX, but that file system doesn't have any of the features that I believe are necessary." The features Stallman wished to add (file versioning, undeletion, information on when and how and where the file was backed up on tape, atomic file updates) were not generally associated with Unix. In December 1986, developers used TRIX's kernel as a base in their first attempt to create a
kernel Kernel may refer to: Computing * Kernel (operating system), the central component of most operating systems * Kernel (image processing), a matrix used for image convolution * Compute kernel, in GPGPU programming * Kernel method, in machine learnin ...
for GNU. They eventually decided Trix was unusable as a starting point, primarily because: * it only ran on "an obscure, expensive
68000 The Motorola 68000 (sometimes shortened to Motorola 68k or m68k and usually pronounced "sixty-eight-thousand") is a 16/32-bit complex instruction set computer (CISC) microprocessor, introduced in 1979 by Motorola Semiconductor Products Sector ...
box", and would therefore require
porting In software engineering, porting is the process of adapting software for the purpose of achieving some form of execution in a computing environment that is different from the one that a given program (meant for such execution) was originally desi ...
to other
architectures Architecture is the art and technique of designing and building, as distinguished from the skills associated with construction. It is both the process and the product of sketching, conceiving, planning, designing, and constructing buildings o ...
, and * it was decided that the Mach microkernel was a better underlying design for a server-based operating system. This second attempt evolved into the
GNU Hurd GNU Hurd is a collection of microkernel servers written as part of GNU, for the GNU Mach microkernel. It has been under development since 1990 by the GNU Project of the Free Software Foundation, designed as a replacement for the Unix kernel, and ...
.


See also

*
GNU Mach GNU Mach is an implementation of the Mach microkernel. It is the default microkernel in the GNU Hurd. GNU Mach runs on IA-32 machines. GNU Mach is maintained by developers on the GNU project. It is distributed under the terms of the GNU General ...
*
Comparison of kernels A kernel is a component of a computer operating system. A comparison of system kernels can provide insight into the design and architectural choices made by the developers of particular operating systems. Comparison criteria The following tabl ...


References


Further reading

* Ward, S.A. TRIX: a Network-oriented Operating System. COMPCON, Spring 1980, pp. 344–349.


External links


TRIX kernel source code
(can also b
browsed online


on the
GNU Project The GNU Project () is a free software, mass collaboration project announced by Richard Stallman on September 27, 1983. Its goal is to give computer users freedom and control in their use of their computers and computing devices by collaborati ...
web site {{DEFAULTSORT:TRIX (Operating System) 1986 software Free software operating systems GNU Project software Massachusetts Institute of Technology software Monolithic kernels Unix variants 68k architecture