Harmony (operating system)

{{Short description|Research operating system}}

{{Distinguish|HarmonyOS|HarmonyOS Next}}

{{Infobox OS

| name = Harmony

| logo =

| logo size =

| logo caption =

| logo alt =

| screenshot =

| caption =

| screenshot_alt =

| developer = National Research Council Canada

| family =

| working state = Discontinued

| source model =

| released = {{Start date and age|1985}}

| discontinued = Yes

| latest release version =

| latest release date = {{Start date and age|1995}}

| marketing target = Research

| programmed in = C, Assembly language

| language = English

| update model = Compile from source code

| supported platforms = Motorola 68000 (VMEbus, Multibus), Atari ST (520, 1040), Digital Equipment Corporation VAX

| kernel type = Microkernel

| userland =

| ui =

| license =

| preceded by = Thoth

| succeeded by = Message Queue eXecutive (MQX)

| website =

| other articles =

}}

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{{Citation needed|reason=there is no source for this and the released and latest release date have comments indicating that the first and last release are not [definitively] known, ergo there is no source for them|date=December 2024}}.

History

Harmony was a successor to the Thoth system developed at the University of Waterloo. 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.

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.

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 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, 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 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 Rowebots Research Inc.

References

{{Reflist|refs=

{{cite conference |last1=Tanner |first1=P. P. |last2=Buxton |first2=W. |date=1985 |url=https://www.billbuxton.com/UIMStax.html |title=Some Issues in Future User Interface Management System (UIMS) Development |pages=67–79 |location=Berlin |conference=User Interface Management Systems}}

{{cite tech report |last1=Gentleman |first1=W.M. |last2=MacKay |first2=S.A. |last3=Stewart |first3=D.A. |last4=Wein |first4=M. |date=February 1989 |title=Using the Harmony Operating System: Release 3.0 |url=https://nrc-publications.canada.ca/eng/view/accepted/?id=237fde1a-3ad3-4abd-a1a4-a8e924063ab0}}

{{cite book |last=Cattel |first=Thierry |date=1995 |editor1-last=Hogrefe |editor1-first=D. |editor2-last=Leue |editor2-first=S. |title=Formal description techniques, VII: proceedings of the 7th IFIP WG 6.1 International Conference on Formal Description Techniques |chapter=Modelling and Verification of a Multiprocessor Realtime OS Kernel |series=IFIP Advances in Information and Communication Technology |url=https://link.springer.com/content/pdf/10.1007%2F978-0-387-34878-0_4.pdf |location=Boston, MA |publisher=Springer |pages=55–70 |doi=10.1007/978-0-387-34878-0_4 |isbn=978-1-5041-2881-0}}

{{cite book |last1=Rowe |first1=P. Kim |last2=Pagurek |first2=B. |date=1–3 December 1987 |title=Proceedings of the 8th IEEE Real-Time Systems Symposium (RTSS '87) |chapter=Remedy, A Real-Time Multiprocessor System Level Debugger |location=San Jose, California, USA |publisher=IEEE Computer Society |pages=230–240 |isbn=0-8186-0815-3}}

{{cite journal |last1=Thomas |first1=Dave |last2=Berry |first2=Brian |date=July–August 2004 |title=Using Active Objects for Structuring Service Oriented Architectures Anthropomorphic Programming with Actors |url=http://www.jot.fm/issues/issue_2004_07/column1.pdf |journal=Journal of Object Technology |volume=3 |number=7 |page=7 |doi= 10.5381/jot.2004.3.7.c1}}

{{cite tech report |last=Duimovich |first=John |date=12 January 1989 |title=Garbage Collection in a Multiprocessor Smalltalk System |url=https://curve.carleton.ca/system/files/etd/8b8acda2-d6e2-4d7d-be8d-e390647aa0ea/etd_pdf/47f74bf9086e82fde98b0f302c1483d6/duimovich-garbagecollectioninamultiprocessorsmalltalk.pdf}}

{{cite journal |last1=MacKay |first1=Stephen A. |last2=Tanner |first2=Peter P. |date=1986 |title=Graphics Tools in Adagio, A Robotics Multitasking Multiprocessor Workstation |url=https://graphicsinterface.org/wp-content/uploads/gi1986-18.pdf |journal=Graphics Interface Proceedings 1986 |pages=98–103}}

{{cite news |author= |title=Workstations '85 Session: Robot Simulator from Canada |url=http://bitsavers.trailing-edge.com/pdf/computerFaire/SiliconGulchGazette/42_Oct85.pdf |work=Silicon Gulch Gazette |date=October 1985 |number=42 |page=2 |publisher=IEEE Computer Society}}

{{cite journal |last1=McAffer |first1=Jeff |last2=Thomas |first2=Dave |date=1 July 1988 |title=Eva: An Event Driven Framework for Building User Interfaces in Smalltalk |journal=Graphics Interface Proceedings 1986 |pages=168–175}}

{{cite conference |url=https://nrc-publications.canada.ca/eng/view/object/?id=8ecdea46-a192-4d78-9be6-094e2c0646c1 |title=Real-Time Control of an Autonomous Mobile Robot Using the Harmony Operating System |last1=Green |first1=David |last2=Liscano |first2=Ramiro |last3=Wein |first3=M. |date=24–26 September 1989 |book-title=Proceedings of the Fourth IEEE International Symposium on Intelligent Control |location=Albany, New York, USA}}

{{cite conference |title=Open System Architecture of a Multiprocessor Robot Controller |last1=Elgazzar |first1=S. |last2=Green |first2=D. |last3=Gentleman |first3=W. M. |date=14–16 June 1988 |book-title=Proceedings of the 7th Canadian CAD/CAM and Robotics Conference |location=Toronto, Ontario}}

{{cite tech report |last1=O'Hara |first1=D. H. |last2=Elgazzar |first2=S. |last3=The |first3= G. |date=December 1987 |title=ALTER-Harmony: Control of PUMA Robot from Chorus Multiprocessor |department=National Research Council of Canada |location=Ottawa, Ontario}}

{{cite news |last=Dryden |first=Alex |date=11 July 1988 |title=Business |url=https://www.newspapers.com/newspage/463648371/ |work=The Ottawa Citizen |page=11}}

{{cite tech report |last=Rottman |first=Michael S. |date=4 March 1991 |title=A Common Interface Real-Time Multiprocessor Operating System for Embedded Systems |url=https://apps.dtic.mil/dtic/tr/fulltext/u2/a238445.pdf|archive-url=https://web.archive.org/web/20210331100731/https://apps.dtic.mil/dtic/tr/fulltext/u2/a238445.pdf|url-status=live|archive-date=March 31, 2021}}

{{cite tech report |editor-last=Bergrman |editor-first=Rich |date=April 1991 |title=Operating Systems Standards Working Group (OSSWG) Next Generation Computer Resources(NGCR) Program First Annual Report: October 1990 |url=https://apps.dtic.mil/dtic/tr/fulltext/u2/a237560.pdf|archive-url=https://web.archive.org/web/20210331100518/https://apps.dtic.mil/dtic/tr/fulltext/u2/a237560.pdf|url-status=live|archive-date=March 31, 2021}}

{{cite web |url=http://www.cse.yorku.ca/museum/collections/DY4/dy4.htm |title=The DY-4 Collection at YUCoM — Manuals and Guides |author= |date=2018 |website=York University Computer Museum}}

{{cite web |url=https://necrocanada.com/obituaries-2020/mati-arno-sauks-february-27-1951-july-25-2020-age-69/ |title=Mati Arno Sauks February 27 1951 July 25 2020 (age 69) |author=luc |date=29 July 2020 |website=Canada Obituaries}}

{{cite tech report |last=Zhu |first=Ming-Yuan |date=May 2012 |title=The Next Hundreds Embedded Real-Time Operating Systems |url=https://www.researchgate.net/publication/308282686 |doi=10.13140/RG.2.2.28990.69445}}

}}

Further reading

  • {{cite book |last1=James |first1=J. |last2=Rowe |first2=K. |last3=Gray |first3=L. |last4=Vishnubhatla |first4=B. |last5=Wan |first5=C. F. |last6=Wilson |first6=M. |date=1985 |title=Proceedings of the 6th IEEE Real-Time Systems Symposium (RTSS '85) |chapter=Experience Porting the Harmony Operating System. |location=San Diego, California, USA. |publisher=IEEE Computer Society |pages=88–99 |isbn=0-8186-0675-4}}
  • {{cite tech report |last=Forsey |first=David R. |date=1985 |title=Harmony in transposition: A toccata for Vax and Motorola 68000}}
  • {{cite tech report |last=Parr |first=R. K. |date=1986 |title=TCP/IP Ethernet Support for the Harmony Operating System |department=University of Waterloo}}
  • {{cite tech report |last=Riese |first=H. M. |date=1986 |title=Towards Harmony on Sylvan |department=University of Waterloo}}
  • {{cite tech report |last=Wong |first=Wai Victoria |date=1987 |title=Concordia Cum Vaxen: Porting Harmony to the VAX-11/750}}
  • {{cite conference |last1=Roth |first1=G. |last2=O'Hara |first2=D. |date=May 1987 |title=A Holdsite Method for Parts Acquisition Using a Laser Rangefinder Mounted on a Robot Wrist |book-title=Proceedings of IEEE Conference on Robotics and Automation |pages=1517–1523 |location=Raleigh, NC}}
  • {{cite conference |last1=Barry |first1=B. M. |last2=Thomas |first2=D. A. |last3=Altoft |first3=J. R. |last4=Wilson |first4=M. |date=4–8 October 1987 |title=Using Objects to Design and Build Radar ESM Systems |book-title=Proceedings of the Conference on Object Oriented Programming Systems, Languages and Applications |volume=22 |number=12 |pages=192–201 |location=Orlando FL}}
  • {{cite conference |last=O'Hara |first=D. H. |date=2–4 February 1988 |title=Multiprocessor Robot Control for Assembly: A Demonstration with Tactile Feedback for Prismatic Shaped Block Insertion |location=Zurich, Switzerland |conference=7th International conference on Robot Vision and Sensory Controls}}
  • {{cite tech report |last1=Gentleman |first1=W. |last2=MacKay |first2=S. |last3=Stewart |first3=D. |date=1988 |title=An Introduction to the Harmony Realtime Operating System |url=ftp://ftp.iks-jena.de/mitarb/lutz/OS/NRC29288.ps.gz}}
  • {{cite tech report |last=Thoreson |first=D. V. P. |date=May 1988 |title=Harmony Multi-Tasking Runtime Support for the Ada Rendezvous |department=Royal Military College of Canada |location=Kingston, Ontario}}
  • {{cite conference |title=Realtime Feedback Control Using a Laser Range Finder and Harmony |last1=Archibald |first1=C. C. |last2=Gentleman |first2=W. M. |last3=O'Hara |first3=D. H. |date=14–16 June 1988 |book-title=Proceedings of the 7th Canadian CAD/CAM and Robotics Conference |location=Toronto, Ontario}}
  • {{cite tech report |last1=O'Hara |first1=D. H. |last2=Kurtz |first2=R. |title=Prismatic-shaped Block Insertion: an Application of a Multiprocessor Robot Controller using Harmony |department=National Research Council of Canada |location=Ottawa, Ontario}}
  • {{cite conference |last1=MacKay |first1=S. A. |last2=Gentleman |first2=W. M. |last3=Stewart |first3=D. A. |last4=Wein |first4=M. |date=26–27 September 1988 |title=Harmony as an Object-Oriented Operating System |book-title=Proceedings of the ACM SIGPLAN Workshop on Object-Oriented Concurrent Programming |volume=24 |pages=201–203 |location=San Diego}}

{{Microkernel}}

{{Real-time operating systems}}

{{Operating systems}}

Category:Real-time operating systems

Category:National Research Council (Canada)

Category:Microkernel-based operating systems

Category:Robot operating systems

Category:Operating system families