Harmony (operating System)
   HOME

TheInfoList



OR:

Harmony is an experimental computer
operating system An operating system (OS) is system software that manages computer hardware and software resources, and provides common daemon (computing), services for computer programs. Time-sharing operating systems scheduler (computing), schedule tasks for ...
(OS) developed at the
National Research Council Canada The National Research Council Canada (NRC; ) is the primary national agency of the Government of Canada dedicated to science and technology research and development. It is the largest federal research and development organization in Canada. Th ...
in
Ottawa Ottawa is the capital city of Canada. It is located in the southern Ontario, southern portion of the province of Ontario, at the confluence of the Ottawa River and the Rideau River. Ottawa borders Gatineau, Gatineau, Quebec, and forms the cor ...
. 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 ...
system that was also used as the basis for several research projects, including
robotics Robotics is the interdisciplinary study and practice of the design, construction, operation, and use of robots. Within mechanical engineering, robotics is the design and construction of the physical structures of robots, while in computer s ...
sensing and graphical
workstation A workstation is a special computer designed for technical or computational science, 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 syste ...
development. Harmony was actively developed throughout the 1980s and into the mid-1990s.


History

Harmony was a successor to the
Thoth Thoth (from , borrowed from , , 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 African sacred ibis, ibis or a baboon, animals sacred to him. His feminine count ...
system developed at the
University of Waterloo The University of Waterloo (UWaterloo, UW, or Waterloo) is a Public university, public research university located in Waterloo, Ontario, Canada. The main campus is on of land adjacent to uptown Waterloo and Waterloo Park. The university also op ...
. Work on Harmony began at roughly the same time as that on the Verex kernel developed at the
University of British Columbia The University of British Columbia (UBC) is a Public university, public research university with campuses near University of British Columbia Vancouver, Vancouver and University of British Columbia Okanagan, Kelowna, in British Columbia, Canada ...
.
David Cheriton David Ross Cheriton (born March 29, 1951) 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. ...
was involved in both Thoth and Verex, and would later go on to develop the V System at
Stanford University Leland Stanford Junior University, commonly referred to as Stanford University, is a Private university, private research university in Stanford, California, United States. It was founded in 1885 by railroad magnate Leland Stanford (the eighth ...
. 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 VMEbus (Versa Module Eurocard bus) is a computer bus standard physically based on Eurocard sizes. History In 1979, during development of the Motorola 68000 CPU, one of their engineers, Jack Kister, decided to set about creating a standar ...
and
Multibus Multibus is a computer bus standard used in industrial systems. It was developed by Intel Corporation and was adopted as the IEEE 796 bus. The Multibus specification was a robust industry standard with a relatively large form factor, allowing ...
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 VAX (an acronym for virtual address extension) is a series of computers featuring a 32-bit instruction set architecture (ISA) and virtual memory that was developed and sold by Digital Equipment Corporation (DEC) in the late 20th century. The V ...
. Harmony achieved
formal verification In the context of hardware and software systems, formal verification is the act of proving or disproving the correctness of a system with respect to a certain formal specification or property, using formal methods of mathematics. Formal ver ...
in 1995.


Features

Harmony was designed as a
real-time operating system A real-time operating system (RTOS) is an operating system (OS) for real-time computing applications that processes data and events that have critically defined time constraints. A RTOS is distinct from a time-sharing operating system, such as Unix ...
(RTOS) for
robot A robot is a machine—especially one Computer program, programmable by a computer—capable of carrying out a complex series of actions Automation, automatically. A robot can be guided by an external control device, or the robot control, co ...
control. It is a multitasking,
multiprocessing Multiprocessing (MP) 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. The ...
system. It is not
multi-user Multi-user software is computer software that allows access by multiple users of a computer. Time-sharing systems are multi-user systems. Most batch processing systems for mainframe computers may also be considered "multi-user", to avoid leavi ...
. Harmony provided a
runtime system In computer programming, a runtime system or runtime environment is a sub-system that exists in the computer where a program is created, as well as in the computers where the program is intended to be run. The name comes from the compile time ...
(environment) only; development took place on a separate system, originally an Apple
Macintosh Mac is a brand of personal computers designed and marketed by Apple Inc., Apple since 1984. The name is short for Macintosh (its official name until 1999), a reference to the McIntosh (apple), McIntosh apple. The current product lineup inclu ...
. 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 Read-only memory (ROM) is a type of non-volatile memory used in computers and other electronic devices. Data stored in ROM cannot be electronically modified after the manufacture of the memory device. Read-only memory is useful for storing sof ...
(ROM). Although the term did not appear in the original papers, Harmony was later referred to as a
microkernel In computer science, a microkernel (often abbreviated as μ-kernel) 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, ...
. 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 (also procedure, method, subroutine, routine, or subprogram) is a callable unit of software logic that has a well-defined interface and behavior and can be invoked multiple times. Callable units provide a ...
, 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 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 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 ...
and four associated primitives. Shared memory is also supported. Destruction of a task closes all of its connections.
Input/output In computing, input/output (I/O, i/o, or informally io or IO) is the communication between an information processing system, such as a computer, and the outside world, such as another computer system, peripherals, or a human operator. Inputs a ...
uses a
data stream In connection-oriented communication, a data stream is the transmission of a sequence of digitally encoded signals to convey information. Typically, the transmitted symbols are grouped into a series of packets. Data streaming has become u ...
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 Carleton University is an English-language public university, public research university in Ottawa, Ontario, Canada. Founded in 1942 as Carleton College, the institution originally operated as a private, non-denominational evening college to se ...
. It was later commercialized as ''
Remedy Remedy, Remedies, The Remedy or Remediation may refer to: Computing and gaming * Remedy Corp, an American software company * Remedy Entertainment, a Finnish video game developer Law, politics, and society * Environmental remediation, the remov ...
''. 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 Rowebots 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