Harmony is an experimental computer
operating system
An operating system (OS) is system software that manages computer hardware, software resources, and provides common services for computer programs.
Time-sharing operating systems schedule tasks for efficient use of the system and may also in ...
(OS) developed at the
National Research Council Canada
The National Research Council Canada (NRC; french: Conseil national de recherches Canada) is the primary national agency of the Government of Canada dedicated to science and technology research & development. It is the largest federal research ...
in
Ottawa
Ottawa (, ; Canadian French: ) is the capital city of Canada. It is located at the confluence of the Ottawa River and the Rideau River in the southern portion of the province of Ontario. Ottawa borders Gatineau, Quebec, and forms the core ...
. It is a second-generation
message passing
In computer science, message passing is a technique for invoking behavior (i.e., running a program) on a computer. The invoking program sends a message to a process (which may be an actor or object) and relies on that process and its supporting i ...
system that was also used as the basis for several research projects, including
robotics
Robotics is an interdisciplinary branch of computer science and engineering. Robotics involves design, construction, operation, and use of robots. The goal of robotics is to design machines that can help and assist humans. Robotics integrat ...
sensing and graphical
workstation
A workstation is a special computer designed for technical or scientific applications. Intended primarily to be used by a single user, they are commonly connected to a local area network and run multi-user operating systems. The term ''workstat ...
development. Harmony was actively developed throughout the 1980s and into the mid-1990s.
History
Harmony was a successor to the
Thoth
Thoth (; from grc-koi, Θώθ ''Thṓth'', borrowed from cop, Ⲑⲱⲟⲩⲧ ''Thōout'', Egyptian: ', the reflex of " eis like the Ibis") is an ancient Egyptian deity. In art, he was often depicted as a man with the head of an ibis or a ...
system developed at the
University of Waterloo
The University of Waterloo (UWaterloo, UW, or Waterloo) is a public research university with a main campus in Waterloo, Ontario
Waterloo is a city in the Canadian province of Ontario. It is one of three cities in the Regional Municipality ...
.
Work on Harmony began at roughly the same time as that on the Verex kernel developed at the
University of British Columbia.
David Cheriton
David Ross Cheriton (born March 29, 1951) is a Canadian computer scientist, mathematician, billionaire businessman, philanthropist, and venture capitalist. He is a computer science professor at Stanford University, where he founded and leads the ...
was involved in both Thoth and Verex, and would later go on to develop the
V System at
Stanford University
Stanford University, officially Leland Stanford Junior University, is a private research university in Stanford, California. The campus occupies , among the largest in the United States, and enrolls over 17,000 students. Stanford is consider ...
. Harmony's principal developers included W. Morven Gentleman, Stephen A. MacKay, Darlene A. Stewart, and Marceli Wein.
Early ports of the system existed for a variety of
Motorola 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 ...
-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.
Harmony achieved
formal verification in 1995.
Features
Harmony was designed as a
real-time operating system (RTOS) for
robot control.
It is a
multitasking,
multiprocessing
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 ar ...
system. It is not
multi-user.
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.
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".
It is likened to a
subroutine
In computer programming, a function or subroutine is a sequence of program instructions that performs a specific task, packaged as a unit. This unit can then be used in programs wherever that particular task should be performed.
Functions may ...
, 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.
A task is bound to a given 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
In computer science, message passing is a technique for invoking behavior (i.e., running a program) on a computer. The invoking program sends a message to a process (which may be an actor or object) and relies on that process and its supporting i ...
and four associated
primitives.
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.
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''.
The Harmony kernel underpinned the ''Actra'' project — a multiprocessing, multitasking Smalltalk.
Harmony was used in the multitasking, multiprocessor ''Adagio'' robotics simulation workstation.
Concepts from both Harmony and Adagio influenced the design of the Smalltalk-based ''Eva'' event driven user interface builder.
Harmony was used as the underlying OS for several experimental robotic systems.
Commercial
Harmony was commercialized by the Taurus Computer Products division of Canadian industrial computer company ''Dy4''.
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.
Another commercial operating system derived from Harmony is the Unison OS from Rowebot Research Inc.
References
Further reading
*
*
*
*
*
*
*
*
*
*
*
*
*
{{Operating systems
Real-time operating systems
National Research Council (Canada)
Microkernel-based operating systems
Robot operating systems
Operating system families