Harmony (operating system)

Last updated
Harmony
Developer National Research Council Canada
Written in C, Assembly language
Working stateDiscontinued
Initial release1985;38 years ago (1985)
Marketing targetResearch
Available in English
Update methodCompile from source code
Platforms Motorola 68000 (VMEbus, Multibus), Atari ST (520, 1040), Digital Equipment Corporation VAX
Kernel type Microkernel
Preceded by Thoth
Succeeded byMessage Queue eXecutive (MQX)

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.

Contents

History

Harmony was a successor to the Thoth system developed at the University of Waterloo. [1] Work on Harmony began at roughly the same time as that on the Verex kernel developed at the University of British Columbia. David Cheriton was involved in both Thoth and Verex, and would later go on to develop the V System at Stanford University. Harmony's principal developers included W. Morven Gentleman, Stephen A. MacKay, Darlene A. Stewart, and Marceli Wein. [2]

Early ports of the system existed for a variety of Motorola 68000-based computers, including ones using the VMEbus and Multibus backplanes and in particular the Multibus-based Chorus multiprocessor system at Waterloo. Other hosts included the Atari 520 or 1040 ST. A port also existed for the Digital Equipment Corporation VAX. [2]

Harmony achieved formal verification in 1995. [3]

Features

Harmony was designed as a real-time operating system (RTOS) for robot control. [2] It is a multitasking, multiprocessing system. It is not multi-user. [2] Harmony provided a runtime system (environment) only; development took place on a separate system, originally an Apple Macintosh. For each processor in the system, an image is created that combines Harmony with the one multitask program for that processor at link time, an exception being a case where the kernel is programmed into a read-only memory (ROM).

Although the term did not appear in the original papers, Harmony was later referred to as a microkernel. [3] A key in Harmony is its use of the term task, which in Harmony is defined as the "unit of sequential and synchronous execution" and "the unit of resource ownership". [2] It is likened to a subroutine, but one that must be explicitly created and which runs independently of the task that created it. Programs are made up of a number of tasks. [2] A task is bound to a specific processor, which may be different from that of the instantiating task and which may host many tasks. All system resources are owned and managed by tasks.

Intertask communication is provided mostly by synchronous message passing and four associated primitives. [2] Shared memory is also supported. Destruction of a task closes all of its connections. Input/output uses a data stream model.

Harmony is connection-oriented in that tasks that communicate with each other often maintain state information about each other. In contrast with some other distributed systems, connections in Harmony are inexpensive. [2]

Applications and tools

An advanced debugger called Melody was developed for Harmony at the Advanced Real-Time Toolset Laboratory at Carleton University. It was later commercialized as Remedy . [4]

The Harmony kernel underpinned the Actra project — a multiprocessing, multitasking Smalltalk. [5] [6]

Harmony was used in the multitasking, multiprocessor Adagio robotics simulation workstation. [7] [8]

Concepts from both Harmony and Adagio influenced the design of the Smalltalk-based Eva event driven user interface builder. [9]

Harmony was used as the underlying OS for several experimental robotic systems. [10] [11] [12]

Commercial

Harmony was commercialized by the Taurus Computer Products division of Canadian industrial computer company Dy4. [13] [14] [15] [16] When Dy4 closed down their software division, four of Taurus' former developers founded Precise Software Technologies and continued developing the OS as Precise/MPX, the predecessor to their later Precise/MQX product. [17]

Another commercial operating system derived from Harmony is the Unison OS from Rowebot Research Inc. [18]

Related Research Articles

<span class="mw-page-title-main">Computer multitasking</span> Concurrent execution of multiple processes

In computing, multitasking is the concurrent execution of multiple tasks over a certain period of time. New tasks can interrupt already started ones before they finish, instead of waiting for them to end. As a result, a computer executes segments of multiple tasks in an interleaved manner, while the tasks share common processing resources such as central processing units (CPUs) and main memory. Multitasking automatically interrupts the running program, saving its state and loading the saved state of another program and transferring control to it. This "context switch" may be initiated at fixed time intervals, or the running program may be coded to signal to the supervisory software when it can be interrupted.

<span class="mw-page-title-main">Embedded system</span> Computer system with a dedicated function

An embedded system is a computer system—a combination of a computer processor, computer memory, and input/output peripheral devices—that has a dedicated function within a larger mechanical or electronic system. It is embedded as part of a complete device often including electrical or electronic hardware and mechanical parts. Because an embedded system typically controls physical operations of the machine that it is embedded within, it often has real-time computing constraints. Embedded systems control many devices in common use today. In 2009, it was estimated that ninety-eight percent of all microprocessors manufactured were used in embedded systems.

<span class="mw-page-title-main">Xerox Alto</span> Computer made by Xerox

The Xerox Alto is a computer designed from its inception to support an operating system based on a graphical user interface (GUI), later using the desktop metaphor. The first machines were introduced on 1 March 1973, a decade before mass-market GUI machines became available.

<span class="mw-page-title-main">Xerox Star</span> Early GUI-based computer workstation from Xerox

The Xerox Star workstation, officially named Xerox 8010 Information System, is the first commercial personal computer to incorporate technologies that have since become standard in personal computers, including a bitmapped display, a window-based graphical user interface, icons, folders, mouse (two-button), Ethernet networking, file servers, print servers, and e-mail.

Futurebus, or IEEE 896, is a computer bus standard, intended to replace all local bus connections in a computer, including the CPU, memory, plug-in cards and even, to some extent, LAN links between machines. The effort started in 1979 and didn't complete until 1987, and then immediately went into a redesign that lasted until 1994. By this point, implementation of a chip-set based on the standard lacked industry leadership. It has seen little real-world use, although custom implementations continue to be designed and used throughout industry.

An object-oriented operating system is an operating system that is designed, structured, and operated using object-oriented programming principles.

<span class="mw-page-title-main">Carl Sassenrath</span> American computer scientist

Carl Sassenrath is an architect of operating systems and computer languages. He brought multitasking to personal computers in 1985 with the creation of the Amiga Computer operating system kernel, and he is the designer of the REBOL computer language, REBOL/IOS collaboration environment, the Safeworlds AltME private messaging system, and other products. Carl is currently a Principal Engineer at Roku, Inc.

<span class="mw-page-title-main">DEC Systems Research Center</span> Laboratory in Palo Alto, California

The Systems Research Center (SRC) was a research laboratory created by Digital Equipment Corporation (DEC) in 1984, in Palo Alto, California.

<span class="mw-page-title-main">PERQ</span> First commercially produced personal workstation with a Graphical User Interface

The PERQ, also referred to as the Three Rivers PERQ or ICL PERQ, was a pioneering workstation computer produced in the late 1970s through the early 1980s. In June 1979, the company took its very first order from the UK's Rutherford Appleton Laboratory and the computer was officially launched in August 1979 at SIGGRAPH in Chicago. It was the first commercially produced personal workstation with a Graphical User Interface. The design was heavily influenced by the original workstation computer, the Xerox Alto, which was never commercially produced. The origin of the name "PERQ" was chosen both as an acronym of "Pascal Engine that Runs Quicker," and to evoke the word perquisite commonly called perks, that is employee additional benefits.

Objective Interface Systems, Inc. is a computer communications software and hardware company. The company's headquarters are in Herndon, Virginia, USA. OIS develops, manufactures, licenses, and supports software and hardware products that generally fit into one or more of the following markets:

In computer programming, a green thread is a thread that is scheduled by a runtime library or virtual machine (VM) instead of natively by the underlying operating system (OS). Green threads emulate multithreaded environments without relying on any native OS abilities, and they are managed in user space instead of kernel space, enabling them to work in environments that do not have native thread support.

A virtual fixture is an overlay of augmented sensory information upon a user's perception of a real environment in order to improve human performance in both direct and remotely manipulated tasks. Developed in the early 1990s by Louis Rosenberg at the U.S. Air Force Research Laboratory (AFRL), Virtual Fixtures was a pioneering platform in virtual reality and augmented reality technologies.

<span class="mw-page-title-main">Real-time Control System</span> Reference model architecture

Real-time Control System (RCS) is a reference model architecture, suitable for many software-intensive, real-time computing control problem domains. It defines the types of functions needed in a real-time intelligent control system, and how these functions relate to each other.

MQX is a real-time operating system (RTOS) developed by Precise Software Technologies, Inc., and currently sold by Synopsys, Embedded Access, Inc., and NXP Semiconductors.

MiroSurge is a presently prototypic robotic system designed mainly for research in minimally invasive telesurgery. In the described configuration, the system is designed according to the master slave principle and enables the operator to remotely control minimally invasive surgical instruments including force/torque feedback. The scenario is developed at the Institute of Robotics and Mechatronics within the German Aerospace Center (DLR).

Heterogeneous computing refers to systems that use more than one kind of processor or core. These systems gain performance or energy efficiency not just by adding the same type of processors, but by adding dissimilar coprocessors, usually incorporating specialized processing capabilities to handle particular tasks.

Time-triggered architecture, also known as a time-triggered system, is a computer system that executes one or more sets of tasks according to a pre-determined and set task schedule. Implementation of a TT system will typically involve use of a single interrupt that is linked to the periodic overflow of a timer. This interrupt may drive a task scheduler. The scheduler will‍—‌in turn‍—‌release the system tasks at predetermined points in time.

<span class="mw-page-title-main">Industrial augmented reality</span>

Industrial augmented reality (IAR) is related to the application of augmented reality (AR) and heads-up displays to support an industrial process. The use of IAR dates back to the 1990s with the work of Thomas Caudell and David Mizell about the application of AR at Boeing. Since then several applications of this technique over the years have been proposed showing its potential in supporting some industrial processes. Although there have been several advances in technology, IAR is still considered to be at an infant developmental stage.

Thoth is a real-time, message passing operating system (OS) developed at the University of Waterloo in Waterloo, Ontario Canada.

<span class="mw-page-title-main">Thorsten O. Zander</span> German scientist (born 1975)

Thorsten O. Zander is a German scientist who introduced the concept of passive brain-computer interface. He co-founded Zander Labs, a German-Dutch company in the field of passive brain computer interface (pBCI) and neuro-adaptive technology (NAT).

References

  1. Tanner, P. P.; Buxton, W. (1985). Some Issues in Future User Interface Management System (UIMS) Development. User Interface Management Systems. Berlin. pp. 67–79.
  2. 1 2 3 4 5 6 7 8 Gentleman, W.M.; MacKay, S.A.; Stewart, D.A.; Wein, M. (February 1989). "Using the Harmony Operating System: Release 3.0".{{cite journal}}: Cite journal requires |journal= (help)
  3. 1 2 Cattel, Thierry (1995). "Modelling and Verification of a Multiprocessor Realtime OS Kernel". In Hogrefe, D.; Leue, S. (eds.). Formal description techniques, VII: proceedings of the 7th IFIP WG 6.1 International Conference on Formal Description Techniques (PDF). IFIP Advances in Information and Communication Technology. Boston, MA: Springer. pp. 55–70. doi:10.1007/978-0-387-34878-0_4. ISBN   978-1-5041-2881-0.
  4. Rowe, P. Kim; Pagurek, B. (1–3 December 1987). "Remedy, A Real-Time Multiprocessor System Level Debugger". Proceedings of the 8th IEEE Real-Time Systems Symposium (RTSS '87). San Jose, Califorinia, USA: IEEE Computer Society. pp. 230–240. ISBN   0-8186-0815-3.
  5. Thomas, Dave; Berry, Brian (July–August 2004). "Using Active Objects for Structuring Service Oriented Architectures Anthropomorphic Programming with Actors" (PDF). Journal of Object Technology. 3 (7): 7. doi:10.5381/jot.2004.3.7.c1.
  6. Duimovich, John (12 January 1989). "Garbage Collection in a Multiprocessor Smalltalk System" (PDF).{{cite journal}}: Cite journal requires |journal= (help)
  7. MacKay, Stephen A.; Tanner, Peter P. (1986). "Graphics Tools in Adagio, A Robotics Multitasking Multiprocessor Workstation" (PDF). Graphics Interface Proceedings 1986: 98–103.
  8. "Workstations '85 Session: Robot Simulator from Canada" (PDF). Silicon Gulch Gazette. No. 42. IEEE Computer Society. October 1985. p. 2.
  9. McAffer, Jeff; Thomas, Dave (1 July 1988). "Eva: An Event Driven Framework for Building User Interfaces in Smalltalk". Graphics Interface Proceedings 1986: 168–175.
  10. Green, David; Liscano, Ramiro; Wein, M. (24–26 September 1989). "Real-Time Control of an Autonomous Mobile Robot Using the Harmony Operating System". Proceedings of the Fourth IEEE International Symposium on Intelligent Control. Albany, New York, USA.
  11. Elgazzar, S.; Green, D.; Gentleman, W. M. (14–16 June 1988). "Open System Architecture of a Multiprocessor Robot Controller". Proceedings of the 7th Canadian CAD/CAM and Robotics Conference. Toronto, Ontario.
  12. O'Hara, D. H.; Elgazzar, S.; The, G. (December 1987). "ALTER-Harmony: Control of PUMA Robot from Chorus Multiprocessor". National Research Council of Canada. Ottawa, Ontario.{{cite journal}}: Cite journal requires |journal= (help)
  13. Dryden, Alex (11 July 1988). "Business". The Ottawa Citizen. p. 11.
  14. Rottman, Michael S. (4 March 1991). "A Common Interface Real-Time Multiprocessor Operating System for Embedded Systems" (PDF). Archived (PDF) from the original on March 31, 2021.{{cite journal}}: Cite journal requires |journal= (help)
  15. Bergrman, Rich, ed. (April 1991). "Operating Systems Standards Working Group (OSSWG) Next Generation Computer Resources(NGCR) Program First Annual Report: October 1990" (PDF). Archived (PDF) from the original on March 31, 2021.{{cite journal}}: Cite journal requires |journal= (help)
  16. "The DY-4 Collection at YUCoM — Manuals and Guides". York University Computer Museum. 2018.
  17. luc (29 July 2020). "Mati Arno Sauks February 27 1951 July 25 2020 (age 69)". Canada Obituaries.
  18. Zhu, Ming-Yuan (May 2012). "The Next Hundreds Embedded Real-Time Operating Systems". doi:10.13140/RG.2.2.28990.69445.{{cite journal}}: Cite journal requires |journal= (help)

Further reading