Developer | University of Waterloo |
---|---|
Written in | Eh, Zed, assembly language |
OS family | RTOS |
Working state | Discontinued |
Initial release | October 1976 |
Marketing target | Research |
Available in | English |
Update method | Recompiling |
Platforms | Honeywell 6050 Data General Nova 2 Texas Instruments TI990/10 |
Kernel type | Microkernel |
Succeeded by | Port, Verex, Harmony, V |
Thoth is a real-time, message passing operating system (OS) developed at the University of Waterloo in Waterloo, Ontario Canada.
Thoth was developed at the University of Waterloo in Waterloo, Ontario, Canada. The curriculum at Waterloo includes a Real Time Operating Systems course and an associated "Train lab", where students must develop a real-time operating system (RTOS) to control a model track with multiple trains. [1] [2] [3]
In 1972, the B programming language, a derivative of BCPL, was brought to Waterloo by Stephen C. Johnson while on sabbatical from Bell Labs. [4] A new language derived from B, named Eh, was developed at Waterloo. Thoth was written originally in Eh with some assembly language. [5] [6]
Initial development of Thoth occurred on a Honeywell 6050 computer. [7] It was first run on a Data General Nova 2 in May 1976, and was next ported to a Texas Instruments TI990/10 in August 1976. [7] [5]
In October 1976, the University of Waterloo published Laurence S. Melen's Master's Thesis, titled "A Portable Real-Time Executive, Thoth". [8]
Eh was later upgraded, in part with the addition of data types, and renamed Zed. Thoth was then rewritten in Zed. [9] [10] [11] [12] [13]
One of the early principal developers of Thoth was David Cheriton. Cheriton would go on to develop the Verex kernel, and the V-System OS; both influenced by Thoth. Another early developer was Michael Malcolm, who would later found Waterloo Microsystems, Network Appliances, Inc., Blue Coat Systems, and Kaliedescape, several of whose operating systems are believed to have been derived from or influenced by Thoth.
Certain papers describe DEMOS as the inspiration for Thoth. [14] As prior art Cheriton cited Per Brinch Hansen's RC 4000, then listed Thoth, DEMOS, and Accent together as later developments. [15] Other influences on the development of Thoth included Multics, Data General's RTOS, Honeywell GCLS, and Unix. [5] Later references cite Thoth as the original implementation of its particular use of synchronous message passing and multiprocess program structure, which were subsequently applied by other projects. [16] : 2
Work on Thoth ended around 1982. [17]
Thoth was developed to meet four goals: [7]
Thoth exposes the same abstract machine to application software, regardless of the underlying physical machine. [5] [18] This abstract machine was defined with certain minimal requirements, such that meeting these requirements allowed a given computer to be included in the Thoth Domain of potential Thoth port targets.
Processes running under Thoth can be grouped into "Teams". All processes within a team share a common address space and can share data. [19] [7] This is similar to other systems' concepts of "lightweight processes" or threads. [20] Processes not members of the same team communicate using Thoth's IPC.
Inter Process Communication in Thoth is primarily accomplished by means of synchronous message passing. [7] This approach greatly simplified message queueing. [21]
Although the term was not current when the original papers were written, Thoth has been called a microkernel. [22] [20] [23]
Thoth's synchronous message passing IPC lent itself to the application of an anthropomorphic programming model, building on the work of Carl Hewitt's actor model, and of Smalltalk. [17]
The Thoth operating system provided either the basis or the inspiration for several later projects, some of which are listed below.
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 an operating system 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.
In computing, a process is the instance of a computer program that is being executed by one or many threads. There are many different process models, some of which are light weight, but almost all processes are rooted in an operating system (OS) process which comprises the program code, assigned system resources, physical and logical access permissions, and data structures to initiate, control and coordinate execution activity. Depending on the OS, a process may be made up of multiple threads of execution that execute instructions concurrently.
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.
Symmetric multiprocessing or shared-memory multiprocessing (SMP) involves a multiprocessor computer hardware and software architecture where two or more identical processors are connected to a single, shared main memory, have full access to all input and output devices, and are controlled by a single operating system instance that treats all processors equally, reserving none for special purposes. Most multiprocessor systems today use an SMP architecture. In the case of multi-core processors, the SMP architecture applies to the cores, treating them as separate processors.
Multiprocessing is the use of two or more central processing units (CPUs) within a single computer system. The term also refers to the ability of a system to support more than one processor or the ability to allocate tasks between them. There are many variations on this basic theme, and the definition of multiprocessing can vary with context, mostly as a function of how CPUs are defined.
QNX is a commercial Unix-like real-time operating system, aimed primarily at the embedded systems market.
This article presents a timeline of events in the history of computer operating systems from 1951 to the current day. For a narrative explaining the overall developments, see the History of operating systems.
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.
The V operating system is a discontinued microkernel distributed operating system that was developed by faculty and students in the Distributed Systems Group at Stanford University from 1981 to 1988, led by Professors David Cheriton and Keith A. Lantz. V was the successor to the Thoth operating system and Verex kernel that Cheriton had developed in the 1970s. Despite similar names and close development dates, it is unrelated to UNIX System V.
XNU is the computer operating system (OS) kernel developed at Apple Inc. since December 1996 for use in the Mac OS X operating system and released as free and open-source software as part of the Darwin OS, which, in addition to being the basis for macOS, is also the basis for Apple TV Software, iOS, iPadOS, watchOS, visionOS, and tvOS.
Per Brinch Hansen was a Danish-American computer scientist known for his work in operating systems, concurrent programming and parallel and distributed computing.
David Ross Cheriton is a Canadian computer scientist, businessman, philanthropist, and venture capitalist. He is a computer science professor at Stanford University, where he founded and leads the Distributed Systems Group.
In computing, an inter-processor interrupt (IPI), also known as a shoulder tap, is a special type of interrupt by which one processor may interrupt another processor in a multiprocessor system if the interrupting processor requires action from the other processor. Actions that might be requested include:
HelenOS is an operating system based on a multiserver microkernel design. The source code of HelenOS is written in C and published under the BSD-3-Clause license.
Gernot Heiser is a Scientia Professor and the John Lions Chair for operating systems at UNSW Sydney, where he leads the Trustworthy Systems group (TS).
An asymmetric multiprocessing system is a multiprocessor computer system where not all of the multiple interconnected central processing units (CPUs) are treated equally. For example, a system might allow only one CPU to execute operating system code or might allow only one CPU to perform I/O operations. Other AMP systems might allow any CPU to execute operating system code and perform I/O operations, so that they were symmetric with regard to processor roles, but attached some or all peripherals to particular CPUs, so that they were asymmetric with respect to the peripheral attachment.
A multiprocessor system is defined as "a system with more than one processor", and, more precisely, "a number of central processing units linked together to enable parallel processing to take place".
Harmony is an experimental computer operating system (OS) developed at the National Research Council Canada in Ottawa. It is a second-generation message passing system that was also used as the basis for several research projects, including robotics sensing and graphical workstation development. Harmony was actively developed throughout the 1980s and into the mid-1990s.