Английская Википедия:Harmony (operating system)
Шаблон:Short description Шаблон:Distinguish Шаблон:Infobox OS
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.
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]
References
Further reading
- Шаблон:Cite book
- Шаблон:Cite journal
- Шаблон:Cite journal
- Шаблон:Cite journal
- Шаблон:Cite journal
- Шаблон:Cite conference
- Шаблон:Cite conference
- Шаблон:Cite conference
- Шаблон:Cite journal
- Шаблон:Cite journal
- Шаблон:Cite conference
- Шаблон:Cite journal
- Шаблон:Cite conference
Шаблон:Microkernel Шаблон:Real-time operating systems Шаблон:Operating systems
- ↑ Ошибка цитирования Неверный тег
<ref>
; для сносокtb-paper
не указан текст - ↑ 2,0 2,1 2,2 2,3 2,4 2,5 2,6 2,7 Ошибка цитирования Неверный тег
<ref>
; для сносокera-377
не указан текст - ↑ 3,0 3,1 Ошибка цитирования Неверный тег
<ref>
; для сносокifip-1995
не указан текст - ↑ Ошибка цитирования Неверный тег
<ref>
; для сносокieee-remedy
не указан текст - ↑ Ошибка цитирования Неверный тег
<ref>
; для сносокjoi-julaug2004
не указан текст - ↑ Ошибка цитирования Неверный тег
<ref>
; для сносокcu-jan1989
не указан текст - ↑ Ошибка цитирования Неверный тег
<ref>
; для сносокgi-1986
не указан текст - ↑ Ошибка цитирования Неверный тег
<ref>
; для сносокsgg-oct1985
не указан текст - ↑ Ошибка цитирования Неверный тег
<ref>
; для сносокgi-1988
не указан текст - ↑ Ошибка цитирования Неверный тег
<ref>
; для сносокnrcc-30554
не указан текст - ↑ Ошибка цитирования Неверный тег
<ref>
; для сносокegg-paper
не указан текст - ↑ Ошибка цитирования Неверный тег
<ref>
; для сносокoe-paper
не указан текст - ↑ Ошибка цитирования Неверный тег
<ref>
; для сносокoc-jul1988
не указан текст - ↑ Ошибка цитирования Неверный тег
<ref>
; для сносокa238445
не указан текст - ↑ Ошибка цитирования Неверный тег
<ref>
; для сносокa237560
не указан текст - ↑ Ошибка цитирования Неверный тег
<ref>
; для сносокyucm-dy4
не указан текст - ↑ Ошибка цитирования Неверный тег
<ref>
; для сносокnc-jul2020
не указан текст - ↑ Ошибка цитирования Неверный тег
<ref>
; для сносокzhu-paper
не указан текст
- Английская Википедия
- Real-time operating systems
- National Research Council (Canada)
- Microkernel-based operating systems
- Robot operating systems
- Operating system families
- Страницы, где используется шаблон "Навигационная таблица/Телепорт"
- Страницы с телепортом
- Википедия
- Статья из Википедии
- Статья из Английской Википедии
- Страницы с ошибками в примечаниях