Open main menu
Home
Random
Recent changes
Special pages
Community portal
Preferences
About Wikipedia
Disclaimers
Incubator escapee wiki
Search
User menu
Talk
Dark mode
Contributions
Create account
Log in
Editing
Helios (operating system)
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
{{Short description|Computer operating system}} {{Multiple issues| {{Primary sources|date=August 2015}} {{More footnotes|date=March 2016}} {{Confusing|date=March 2016}} }} {{Infobox OS | name = Helios | logo = | screenshot = | caption = | developer = [[Perihelion Software]] | family = [[Unix-like]] | source_model = [[Open source]] | working_state = Historic | released = {{Start date and age|1988}} | latest_release_version = 1.3.1| latest_release_date = September 1992 | kernel_type = [[Microkernel]] | license = [[GPL v3]] | website = https://github.com/axelmuhr/Helios-NG | }} '''Helios''' is a discontinued [[Unix-like]] [[operating system]] for [[parallel computer]]s. It was developed and published by [[Perihelion Software]]. Its primary [[Computing architecture|architecture]] is the [[Inmos]] [[Transputer]]. Helios' [[microkernel]] implements a distributed namespace and messaging protocol, through which services are accessed. A [[POSIX]] compatibility library enables the use of Unix application software, and the system provides most of the usual Unix utilities. Work on Helios began in the autumn of 1986.<ref>{{cite book|last=Perihelion Software Ltd. |title=The Helios parallel operating system |date=May 1991 |publisher=Prentice Hall International|isbn = 0-13-381237-5|page=9|url=http://www.transputer.net/hbooks/techref/hbk.pdf}}</ref> Its success was limited by the commercial failure of the Transputer, and efforts to move to other architectures met with limited success. Perihelion ceased trading in 1998.<ref>{{cite web|last=King|first=Tim|title=Tim King - CV|url=http://www.tim-king.com/cv.html|access-date=2007-03-18}}</ref> The name of the product was '''Helios'''. In the materials they produced, [[Perihelion Software]] never referred to the operating system as '''HeliOS'''. == Development == In the early 1980s, Tim King joined [[MetaComCo]] from the [[University of Bath]], bringing with him some rights to the [[TRIPOS]] operating system.<ref> {{Cite journal| last1=Richards|first1=M.| last2=Aylward|first2=A.R.| last3=Bond|first3=P.| last4=Evans|first4=R.D.| last5=Knight|first5=B.J.| title=TRIPOS -- a Portable Operating System for Mini-computers| journal=Software: Practice and Experience| volume=9|pages=513β526|date=September 1979| doi=10.1002/spe.4380090702| issue=7|s2cid=2847052}}</ref> MetaComCo secured a contract from [[Commodore International|Commodore]] to work on [[AmigaOS]], with the [[AmigaDOS]] component being derived from TRIPOS. In 1986, King left MetaComCo to found [[Perihelion Software]], and began development of a parallel operating system, initially targeted at the [[INMOS]] [[Transputer]] series of processors. Helios extended TRIPOS' use of a light-weight message passing architecture to networked parallel machines. Helios 1.0 was the first commercial release in the summer of 1988, followed by version 1.1 in autumn 1989, 1.1a in early 1990, 1.2 in December 1990 followed by 1.2.1 and 1.2.2 updates. Version 1.3 was a significant upgrade with numerous utility, [[software library|library]], server and [[device driver|driver]] improvements. The last commercial release was 1.3.1. Later Tim King and Nick Garnett gave permission to release the sources under the [[GNU_General_Public_License#Version_3|GNU General Public License v3]].<ref>{{cite web|last=Muhr|first=Axel|title=Axel Muhr |website=[[GitHub]] |url=https://github.com/axelmuhr/Helios-NG|access-date=2019-04-07}}</ref> Helios 1.4 Alpha was planned to include support for [[OpenLook]], [[OpenMotif]], [[KDE]], [[GNOME|Gnome]], and [[X11R6]] support for the Transputer, [[Linux]], [[Oracle Solaris|Solaris]], and [[Windows]]. This release was not completed.<ref>{{cite web|title=Helios for Transputer|url=http://transputer.classiccmp.org/helios.htm|access-date=2022-05-25}}</ref> == Kernel and nucleus == Helios was designed for a network of multiple [[Node (networking)|nodes]], connected by multiple high-bandwidth communications links. Nodes can be dedicated processing nodes, or processors with attached I/O devices. Small systems might consist of a host PC or workstation connected to a set of several processing nodes, while larger systems might have hundreds of processing nodes supported by dedicated nodes for storage, graphics, or user [[computer terminal|terminals]]. A Helios network requires at least one ''I/O Server'' node that is able to provide a [[file system]] server, [[Virtual console|console]] server and reset control for the processing nodes. At power on, the Helios ''nucleus'' is [[booting|bootstrapped]] from the I/O server into the network. Each node is booted using a small first-stage [[Boot loader|loader]] that then downloads and initialises the nucleus proper. Once running, a node communicates with its neighbours, booting them in turn, if required. The Helios nucleus is composed of the kernel, libraries, loader service and the processor manager service. === Kernel === The Helios kernel is effectively a [[microkernel]], providing a minimal [[Hardware abstraction|abstraction]] above the hardware with most services implemented as non-privileged server processes. It provides memory allocation, process management, message passing and synchronisation primitives. === Libraries === The Helios nucleus contains three libraries: the system, server and utility libraries. The utility library provides some basic library routines for [[C (programming language)|C]] programming that are shared by the other libraries. The system library provides the basic kernel interface, converting C function calls into messages sent to and from the kernel. It implements an abstraction that allows communication between processes regardless of their location in the network. The server library provides name space support functions for writing Helios servers, as described below. === Loader and processor manager === The remaining components of the nucleus are the loader and processor manager servers. Once the kernel is loaded, these processes are bootstrapped, and they integrate the newly running node into the Helios network. == Naming and servers == A key feature in Helios is its distributed name system. A Helios network implements a single unified name space, with a virtual root node, optional virtual network structuring nodes, nodes for each processor, and sub-processor name spaces provided by services. Names are similar to those in [[Unix]], using a forward slash separating character and textual naming elements. The name space is managed by the ''network server'', which is started by the I/O server once the nucleus is booted on its first attached node. The network server uses a provided network map to allocate processor names and initialise drivers for hardware devices at specific nodes in the network. The kernel includes a name resolver, and manages a local cache of routes to previously resolved names. Servers are Helios processes that implement the ''General Server Protocol'', typically with the support of the server library. The server protocol is conceptually similar to the Unix [[Virtual file system|VFS]] API, and more closely to [[Plan 9 from Bell Labs|Plan 9]]'s [[9P (protocol)|9P]]. It requires that servers represent their resources as files, with standardised open/read/write/close-style operations. Similar to facilities such as [[/proc]] in Plan 9 and other [[Unix-like]] operating systems, resources such as files, I/O devices, users, and processes are all represented as virtual files in the namespace served by their managing process. Key servers in Helios are the previously mentioned loader, processor manager and network server, together with the session manager, the window server and the file server. Others include the keyboard, mouse, [[RS-232]] and [[IEEE 1284|Centronics]] servers (built into the host I/O server), the null server (like Unix's [[/dev/null]]), and the logger server (like Unix's [[syslog]]). == Programming and utilities == From a user's perspective, Helios is quite similar to Unix. Most of the usual utility programs are provided, some with extensions to reflect the availability of multiple machines. What is not immediately apparent is that Helios extends the notion of Unix pipes into a language called ''Component Distribution Language'' (CDL). In CDL, a typical Unix shell [[Pipeline (Unix)|pipeline]] such as {{mono|ls | more}} is called a ''task force'', and is transparently distributed by the ''Task Force Manager'' server across the available CPUs. CDL extends traditional Unix syntax with additional operators for bi-directional pipes, sequential and parallel process farm operators, load balancing and resource management. Helios applications can be written using [[C (programming language)|C]], [[C++]], [[FORTRAN]] and [[Modula-2]]. The POSIX library assists in porting existing Unix software, and provides a familiar environment for programmers. == Hardware == Helios was predominantly intended to be used with Transputer systems. It is compatible with products from various manufacturers including INMOS' TRAM systems, the [[Meiko Scientific|Meiko]] [[Meiko Computing Surface|CS]], Parsytec MultiCluster and SuperCluster, and the Telmat T.Node. The [[Atari Transputer Workstation]] was perhaps the highest profile Helios hardware, at least outside academia. Helios can run on T4xx and T8xx, [[32-bit]] Transputers (but not the T2xx [[16-bit]] models) and includes device drivers for various SCSI, Ethernet and graphics hardware from Inmos, Transtech, and others. In its later versions, Helios was ported to the TI TMS320C40 [[Digital signal processor|DSP]] and to the [[ARM architecture]],<ref name="acornuser199406_helios">{{ cite news | url=https://archive.org/details/AcornUser143-Jun94/page/n15/mode/1up | title=Helios on the Arm | work=Acorn User | date=June 1994 | access-date=5 August 2021 | pages=16 }}</ref> the latter used by the Active Book tablet device.<ref name="acornuser199008_abc">{{ cite news | url=https://archive.org/details/AcornUser097-Aug90/page/n8/mode/1up | title=Xmas Launch for Active Books | work=Acorn User | date=August 1990 | access-date=6 May 2021 | pages=7 }}</ref> == References == {{Reflist}} == Further reading == * {{cite book|author=Perihelion Software|year=1989|title=The Helios operating system|publisher=Prentice Hall International (UK) Ltd|isbn=0-13-386004-3}} * {{cite book|author=Perihelion Software|year=1991|title=The Helios parallel operating system|publisher=Prentice Hall International (UK) Ltd|isbn=0-13-381237-5}} == External links == * [http://www.classiccmp.org/transputer/ Ram Meenakshisundaram's Transputer Home Page] {{Webarchive|url=https://web.archive.org/web/20120716211840/http://www.classiccmp.org/transputer/ |date=2012-07-16 }} * [http://transputer.net/hbooks/hbooks.asp Transputer.net Helios Library] {{Unix-like}} {{Distributed operating systems}} [[Category:Distributed operating systems]] [[Category:Microkernel-based operating systems]] [[Category:Unix variants]] [[Category:1988 software]]
Edit summary
(Briefly describe your changes)
By publishing changes, you agree to the
Terms of Use
, and you irrevocably agree to release your contribution under the
CC BY-SA 4.0 License
and the
GFDL
. You agree that a hyperlink or URL is sufficient attribution under the Creative Commons license.
Cancel
Editing help
(opens in new window)
Pages transcluded onto the current version of this page
(
help
)
:
Template:Cite book
(
edit
)
Template:Cite journal
(
edit
)
Template:Cite news
(
edit
)
Template:Cite web
(
edit
)
Template:Distributed operating systems
(
edit
)
Template:Infobox OS
(
edit
)
Template:Mono
(
edit
)
Template:Multiple issues
(
edit
)
Template:Reflist
(
edit
)
Template:Short description
(
edit
)
Template:Unix-like
(
edit
)
Template:Webarchive
(
edit
)