TRIX (operating system)

Last updated
TRIX
Developer MIT's Laboratory for Computer Science (LCS)
OS family Unix-like
Working stateHistoric
Source model Open source
Initial release1986;38 years ago (1986)
Available in English
Platforms NuMachine
Kernel type Monolithic kernel
Default
user interface
Command-line interface

TRIX is a network-oriented research operating system developed in the late 1970s at MIT's Laboratory for Computer Science (LCS) by Professor Steve Ward and his research group. It ran on the NuMachine and had remote procedure call functionality built into its kernel, but was otherwise a Version 7 Unix workalike.

Contents

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. [1] After that, each instance of the kernel was able to access global data. [1] The system also supported data private to each CPU. [1] Access to the filesystem was provided by a program in user space. [1] [2]

The kernel supported unnamed threads running in domains. [1] A domain was the equivalent of a Unix process without a stack pointer [2] (each thread in a domain had a stack pointer [2] ). A thread could change domains, [1] and the system scheduler would migrate threads between CPUs in order to keep all processors busy. [1] Threads had access to a single kind of mutual exclusion primitive, and one of seven priorities. [1] The scheduler was designed to avoid priority inversion. [1] User space programs could create threads through a spawn system call. [1]

A garbage collector would periodically identify and free unused domains. [1]

The shared memory model used to coordinate work between the various CPUs caused memory bus contention and was known to be a source of inefficiency. [1] [2] The designers were aware of designs that would have alleviated the contention. [2] Indeed, TRIX's original design used a nonblocking message passing mechanism, [2] but "this implementation was found to have deficiencies often overlooked in the literature," [2] including poor performance. [2]

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. [1] The system was designed to be easily portable. [2] 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. [1]

Attempted use by the GNU Project

Richard Stallman mentions in the 1985 GNU Manifesto that "an initial kernel exists" for the GNU operating system, "but many more features are needed to emulate Unix." [3] This was a reference to TRIX's kernel, which TRIX's authors had decided to distribute as free software. [4]

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." [5] 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 for GNU. They eventually decided Trix was unusable as a starting point, primarily because:

See also

Related Research Articles

<span class="mw-page-title-main">GNU</span> Free software collection

GNU is an extensive collection of free software, 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 operating systems popularly known as Linux. Most of GNU is licensed under the GNU Project's own General Public License (GPL).

<span class="mw-page-title-main">GNU Hurd</span> Operating system kernel designed as a replacement for Unix

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 released as free software under the GNU General Public License. When the Linux kernel proved to be a viable solution, development of GNU Hurd slowed, at times alternating between stasis and renewed activity and interest.

<span class="mw-page-title-main">Microkernel</span> Kernel that provides fewer services than a traditional kernel

In computer science, a microkernel is the near-minimum amount of software that can provide the mechanisms needed to implement an operating system (OS). These mechanisms include low-level address space management, thread management, and inter-process communication (IPC).

Mach is a kernel developed at Carnegie Mellon University by Richard Rashid and Avie Tevanian to support operating system research, primarily distributed and parallel computing. Mach is often considered one of the earliest examples of a microkernel. However, not all versions of Mach are microkernels. Mach's derivatives are the basis of the operating system kernel in GNU Hurd and of Apple's XNU kernel used in macOS, iOS, iPadOS, tvOS, and watchOS.

<span class="mw-page-title-main">Operating system</span> Software that manages computer hardware resources

An operating system (OS) is system software that manages computer hardware and software resources, and provides common services for computer programs.

<span class="mw-page-title-main">Thread (computing)</span> Smallest sequence of programmed instructions that can be managed independently by a scheduler

In computer science, a thread of execution is the smallest sequence of programmed instructions that can be managed independently by a scheduler, which is typically a part of the operating system. In many cases, a thread is a component of a process.

<span class="mw-page-title-main">GNU Project</span> Free software 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 collaboratively developing and publishing software that gives everyone the rights to freely run the software, copy and distribute it, study it, and modify it. GNU software grants these rights in its license.

<span class="mw-page-title-main">DragonFly BSD</span> Free and open-source Unix-like operating system

DragonFly BSD is a free and open-source Unix-like operating system forked from FreeBSD 4.8. Matthew Dillon, an Amiga developer in the late 1980s and early 1990s and FreeBSD developer between 1994 and 2003, began working on DragonFly BSD in June 2003 and announced it on the FreeBSD mailing lists on 16 July 2003.

C dynamic memory allocation refers to performing manual memory management for dynamic memory allocation in the C programming language via a group of functions in the C standard library, namely malloc, realloc, calloc, aligned_alloc and free.

<span class="mw-page-title-main">GNU/Linux naming controversy</span> Issues of what to call a system with the GNU toolchain and the Linux kernel

Within the free software and the open-source software communities there is controversy over whether to refer to computer operating systems that use a combination of GNU software and the Linux kernel as "GNU/Linux" or "Linux" systems.

Accent is an operating system kernel, most notable for being the predecessor to the Mach kernel. Originally developed at Carnegie Mellon University (CMU), Accent was influenced by the Aleph kernel developed at the University of Rochester. Accent improves upon Aleph, fixing several problems and re-targeting hardware support for networks of workstation machines instead of minicomputers. Accent was part of the SPICE Project at CMU which ran from 1981 to 1985. Development of Accent led directly to the introduction of Mach, used in NeXTSTEP, GNU Hurd, and modern Apple operating systems including Mac OS and iOS.

Spring is a discontinued project in building an experimental microkernel-based object-oriented operating system (OS) developed at Sun Microsystems in the early 1990s. Using technology substantially similar to concepts developed in the Mach kernel, Spring concentrated on providing a richer programming environment supporting multiple inheritance and other features. Spring was also more cleanly separated from the operating systems it would host, divorcing it from its Unix roots and even allowing several OSes to be run at the same time. Development faded out in the mid-1990s, but several ideas and some code from the project was later re-used in the Java programming language libraries and the Solaris operating system.

<span class="mw-page-title-main">Linux</span> Family of Unix-like operating systems

Linux is a family of open-source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991, by Linus Torvalds. Linux is typically packaged as a Linux distribution (distro), which includes the kernel and supporting system software and libraries, many of which are provided by the GNU Project. Many Linux distributions use the word "Linux" in their name, but the Free Software Foundation uses and recommends the name "GNU/Linux" to emphasize the use and importance of GNU software in many distributions, causing some controversy.

GNU variants are operating systems based upon the GNU operating system. According to the GNU project and others, these also include most operating systems using the Linux kernel and a few others using BSD-based kernels.

<span class="mw-page-title-main">History of free and open-source software</span>

In the 1950s and 1960s, computer operating software and compilers were delivered as a part of hardware purchases without separate fees. At the time, source code, the human-readable form of software, was generally distributed with the software providing the ability to fix bugs or add new functions. Universities were early adopters of computing technology. Many of the modifications developed by universities were openly shared, in keeping with the academic principles of sharing knowledge, and organizations sprung up to facilitate sharing. As large-scale operating systems matured, fewer organizations allowed modifications to the operating software, and eventually such operating systems were closed to modification. However, utilities and other added-function applications are still shared and new organizations have been formed to promote the sharing of software.

<span class="mw-page-title-main">Kernel (operating system)</span> Core of a computer operating system

The kernel is a computer program at the core of a computer's operating system and generally has complete control over everything in the system. The kernel is also responsible for preventing and mitigating conflicts between different processes. It is the portion of the operating system code that is always resident in memory and facilitates interactions between hardware and software components. A full kernel controls all hardware resources via device drivers, arbitrates conflicts between processes concerning such resources, and optimizes the utilization of common resources e.g. CPU & cache usage, file systems, and network sockets. On most systems, the kernel is one of the first programs loaded on startup. It handles the rest of startup as well as memory, peripherals, and input/output (I/O) requests from software, translating them into data-processing instructions for the central processing unit.

<span class="mw-page-title-main">Shared memory</span> Computer memory that can be accessed by multiple processes

In computer science, shared memory is memory that may be simultaneously accessed by multiple programs with an intent to provide communication among them or avoid redundant copies. Shared memory is an efficient means of passing data between programs. Depending on context, programs may run on a single processor or on multiple separate processors.

<span class="mw-page-title-main">NextBSD</span> Operating system

NextBSD was an operating system initially based on the trunk version of FreeBSD as of August 2015. It was a fork of FreeBSD which implemented new features developed on branches, but not yet implemented in FreeBSD. As of 2019, the website is defunct, with the last commits on GitHub dating to October 2019. The Wayback Machine captures of the website after December 15, 2017 are domain squatter pages, and as of March 17, 2021, the site is redirects to a fake "Apple Support" page.

The History of the Berkeley Software Distribution begins in the 1970s.

References

  1. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 "A Multiple Processor Implementation of the TRIX Operating System" (PDF). Retrieved 2012-07-02.
  2. 1 2 3 4 5 6 7 8 9 "TRIX: A Communications Oriented Operating System" (PDF). Retrieved 2012-07-02.
  3. "The GNU Manifesto" . Retrieved 2010-08-05.
  4. 1 2 Stallman, Richard M. (January 1987). "Status of the GNU Project". GNU's Bulletin. Free Software Foundation. 1 (2). Retrieved 2018-05-12.
  5. "RMS lecture at KTH". 1986-10-30. Retrieved 2018-05-12.

Further reading