HelenOS
Encyclopedia
HelenOS is an operating system
based on a multiserver microkernel
design. The source code
of HelenOS is published under a BSD License.
microkernel
called SPARTAN. The microkernel handles multitasking
, memory management and inter-process communication
. It also provides kernel-based thread
s and supports symmetric multiprocessing
.
Each process (called task) can contain several threads
(preemptively scheduled by the kernel) which, in turn, can contain several fibers
scheduled cooperatively in user space. Device and file-system drivers, as well as other system services, are implemented by a collection of user-space tasks (servers), creating thus the multiserver nature of HelenOS.
Tasks communicate via HelenOS IPC, which is connection-oriented
and asynchronous. It can be used to send small fixed-size messages, blocks of bytes or to negotiate sharing of memory. Messages can be forwarded without copying bulk data or mapping memory to the address space of middle-men tasks.
, with help from other contributors around the world.
The source code
of HelenOS is published under the BSD licence, while some third-party components are available under the GNU General Public License
. Both of these licences are free software licences, making HelenOS free software
.
, x86-64
, IA-32
, IA-64 (Itanium
), MIPS
, PowerPC
(32-bit only), and SPARC
V9. At some point in time, various versions of HelenOS ran on real hardware from each architecture (as opposed to running only in a simulator of that architecture).
Support for peripheral devices is mostly limited to keyboards, display devices and simulated disks.
Operating system
An operating system is a set of programs that manage computer hardware resources and provide common services for application software. The operating system is the most important type of system software in a computer system...
based on a multiserver microkernel
Microkernel
In computer science, a microkernel is the near-minimum amount of software that can provide the mechanisms needed to implement an operating system . These mechanisms include low-level address space management, thread management, and inter-process communication...
design. The source code
Source code
In computer science, source code is text written using the format and syntax of the programming language that it is being written in. Such a language is specially designed to facilitate the work of computer programmers, who specify the actions to be performed by a computer mostly by writing source...
of HelenOS is published under a BSD License.
Technical overview
HelenOS is based on a preemptiblePreemption (computing)
In computing, preemption is the act of temporarily interrupting a task being carried out by a computer system, without requiring its cooperation, and with the intention of resuming the task at a later time. Such a change is known as a context switch...
microkernel
Microkernel
In computer science, a microkernel is the near-minimum amount of software that can provide the mechanisms needed to implement an operating system . These mechanisms include low-level address space management, thread management, and inter-process communication...
called SPARTAN. The microkernel handles multitasking
Computer multitasking
In computing, multitasking is a method where multiple tasks, also known as processes, share common processing resources such as a CPU. In the case of a computer with a single CPU, only one task is said to be running at any point in time, meaning that the CPU is actively executing instructions for...
, memory management and inter-process communication
Inter-process communication
In computing, Inter-process communication is a set of methods for the exchange of data among multiple threads in one or more processes. Processes may be running on one or more computers connected by a network. IPC methods are divided into methods for message passing, synchronization, shared...
. It also provides kernel-based thread
Thread (computer science)
In computer science, a thread of execution is the smallest unit of processing that can be scheduled by an operating system. The implementation of threads and processes differs from one operating system to another, but in most cases, a thread is contained inside a process...
s and supports symmetric multiprocessing
Symmetric multiprocessing
In computing, symmetric multiprocessing involves a multiprocessor computer hardware architecture where two or more identical processors are connected to a single shared main memory and are controlled by a single OS instance. Most common multiprocessor systems today use an SMP architecture...
.
Each process (called task) can contain several threads
Thread (computer science)
In computer science, a thread of execution is the smallest unit of processing that can be scheduled by an operating system. The implementation of threads and processes differs from one operating system to another, but in most cases, a thread is contained inside a process...
(preemptively scheduled by the kernel) which, in turn, can contain several fibers
Fiber (computer science)
In computer science, a fiber is a particularly lightweight thread of execution.Like threads, fibers share address space. However, fibers use co-operative multitasking while threads use pre-emptive multitasking. Threads often depend on the kernel's thread scheduler to preempt a busy thread and...
scheduled cooperatively in user space. Device and file-system drivers, as well as other system services, are implemented by a collection of user-space tasks (servers), creating thus the multiserver nature of HelenOS.
Tasks communicate via HelenOS IPC, which is connection-oriented
Connection-oriented
Connection-oriented communication is a data communication mode in telecommunications whereby the devices at the end points use a protocol to establish an end-to-end logical or physical connection before any data may be sent. In case of digital transmission, in-order delivery of a bit stream or...
and asynchronous. It can be used to send small fixed-size messages, blocks of bytes or to negotiate sharing of memory. Messages can be forwarded without copying bulk data or mapping memory to the address space of middle-men tasks.
Development
HelenOS is partly hobbyist, partly academic, being developed mainly by staff and former and contemporary students of the Faculty of Mathematics and Physics at Charles University in PragueCharles University in Prague
Charles University in Prague is the oldest and largest university in the Czech Republic. Founded in 1348, it was the first university in Central Europe and is also considered the earliest German university...
, with help from other contributors around the world.
The source code
Source code
In computer science, source code is text written using the format and syntax of the programming language that it is being written in. Such a language is specially designed to facilitate the work of computer programmers, who specify the actions to be performed by a computer mostly by writing source...
of HelenOS is published under the BSD licence, while some third-party components are available under the GNU General Public License
GNU General Public License
The GNU General Public License is the most widely used free software license, originally written by Richard Stallman for the GNU Project....
. Both of these licences are free software licences, making HelenOS free software
Free software
Free software, software libre or libre software is software that can be used, studied, and modified without restriction, and which can be copied and redistributed in modified or unmodified form either without restriction, or with restrictions that only ensure that further recipients can also do...
.
Hardware support
HelenOS runs on several different CPU architectures including ARMARM architecture
ARM is a 32-bit reduced instruction set computer instruction set architecture developed by ARM Holdings. It was named the Advanced RISC Machine, and before that, the Acorn RISC Machine. The ARM architecture is the most widely used 32-bit ISA in numbers produced...
, x86-64
X86-64
x86-64 is an extension of the x86 instruction set. It supports vastly larger virtual and physical address spaces than are possible on x86, thereby allowing programmers to conveniently work with much larger data sets. x86-64 also provides 64-bit general purpose registers and numerous other...
, IA-32
IA-32
IA-32 , also known as x86-32, i386 or x86, is the CISC instruction-set architecture of Intel's most commercially successful microprocessors, and was first implemented in the Intel 80386 as a 32-bit extension of x86 architecture...
, IA-64 (Itanium
Itanium
Itanium is a family of 64-bit Intel microprocessors that implement the Intel Itanium architecture . Intel markets the processors for enterprise servers and high-performance computing systems...
), MIPS
MIPS architecture
MIPS is a reduced instruction set computer instruction set architecture developed by MIPS Technologies . The early MIPS architectures were 32-bit, and later versions were 64-bit...
, PowerPC
PowerPC
PowerPC is a RISC architecture created by the 1991 Apple–IBM–Motorola alliance, known as AIM...
(32-bit only), and SPARC
SPARC
SPARC is a RISC instruction set architecture developed by Sun Microsystems and introduced in mid-1987....
V9. At some point in time, various versions of HelenOS ran on real hardware from each architecture (as opposed to running only in a simulator of that architecture).
Support for peripheral devices is mostly limited to keyboards, display devices and simulated disks.
Research use
HelenOS is being used for research in the area of software components and verification by the Department of Distributed and Dependable Systems, Charles University, Prague. Besides of that, HelenOS has been used by students as a platform for software projects and master theses.External links
- HelenOS home page
- Porting SPARTAN kernel to SPARC V9 architecture
- Implementace souborového systému v operačním systému HelenOS, XXXII. konference EurOpen, sborník příspěvků, p. 149 - p. 157
- HelenOS IPC and Behavior Protocols
- Component-based General-purpose Operating System
- A Road to a Formally Verified General-Purpose Operating System