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.