HelenOS
   HOME

TheInfoList



OR:

HelenOS is an
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 ...
based on a multiserver
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, ...
design. The
source code In computing, source code, or simply code or source, is a plain text computer program written in a programming language. A programmer writes the human readable source code to control the behavior of a computer. Since a computer, at base, only ...
of HelenOS is written in C and published under the BSD-3-Clause license. The system is described as a “research development open-source operating system”.


Technical overview

The microkernel handles multitasking, memory management and
inter-process communication In computer science, interprocess communication (IPC) is the sharing of data between running Process (computing), processes in a computer system. Mechanisms for IPC may be provided by an operating system. Applications which use IPC are often cat ...
. It also provides kernel-based threads and supports
symmetric multiprocessing Symmetric multiprocessing or shared-memory multiprocessing (SMP) involves a multiprocessor computer hardware and software architecture where two or more identical processors are connected to a single, shared main memory, have full access to all ...
. Typical to microkernel design, file systems, networking, device drivers and graphical user interface are isolated from each other into a collection of user space components that communicate via a message bus. Each process (called ''task'') can contain several threads (preemptively scheduled by the kernel) which, in turn, can contain several
fibers Fiber (spelled fibre in British English; from ) is a natural or artificial substance that is significantly longer than it is wide. Fibers are often used in the manufacture of other materials. The strongest engineering materials often inco ...
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 In telecommunications and computer networking, connection-oriented communication is a communication protocol where a communication session or a semi-permanent connection is established before any useful data can be transferred. The established ...
and
asynchronous Asynchrony is any dynamic far from synchronization. If and as parts of an asynchronous system become more synchronized, those parts or even the whole system can be said to be in sync. Asynchrony or asynchronous may refer to: Electronics and com ...
. 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 development is community-driven. The developer community consists of a small core team, mainly staff and former and contemporary students of the Faculty of Mathematics and Physics at
Charles University in Prague Charles University (CUNI; , UK; ; ), or historically as the University of Prague (), is the largest university in the Czech Republic. It is one of the oldest universities in the world in continuous operation, the oldest university north of the ...
, and a number of contributors around the world. In 2011, 2012 and 2014, HelenOS participated in the
Google Summer of Code The Google Summer of Code, often abbreviated to GSoC, is an international annual program in which Google awards stipends to contributors who successfully complete a free and open-source software coding project during the summer. , the program is ...
as a mentoring organization. In 2013, the project was a mentoring organization in the ESA Summer of Code in Space 2013 program. The
source code In computing, source code, or simply code or source, is a plain text computer program written in a programming language. A programmer writes the human readable source code to control the behavior of a computer. Since a computer, at base, only ...
of HelenOS is published under the BSD-3-Clause license, while some third-party components are available under the
GNU General Public License The GNU General Public Licenses (GNU GPL or simply GPL) are a series of widely used free software licenses, or ''copyleft'' licenses, that guarantee end users the freedom to run, study, share, or modify the software. The GPL was the first ...
. Both of these licences are
free software licenses A free-software license is a notice that grants the recipient of a piece of software extensive rights to modify and redistribute that software. These actions are usually prohibited by copyright law, but the rights-holder (usually the author) ...
, making HelenOS
free software Free software, libre software, libreware sometimes known as freedom-respecting software is computer software distributed open-source license, under terms that allow users to run the software for any purpose as well as to study, change, distribut ...
.


Hardware support

HelenOS runs on several different CPU architectures including
ARM In human anatomy, the arm refers to the upper limb in common usage, although academically the term specifically means the upper arm between the glenohumeral joint (shoulder joint) and the elbow joint. The distal part of the upper limb between ...
,
x86-64 x86-64 (also known as x64, x86_64, AMD64, and Intel 64) is a 64-bit extension of the x86 instruction set architecture, instruction set. It was announced in 1999 and first available in the AMD Opteron family in 2003. It introduces two new ope ...
,
IA-32 IA-32 (short for "Intel Architecture, 32-bit", commonly called ''i386'') is the 32-bit version of the x86 instruction set architecture, designed by Intel and first implemented in the i386, 80386 microprocessor in 1985. IA-32 is the first incarn ...
, IA-64 (
Itanium Itanium (; ) is a discontinued family of 64-bit computing, 64-bit Intel microprocessors that implement the Intel Itanium architecture (formerly called IA-64). The Itanium architecture originated at Hewlett-Packard (HP), and was later jointly dev ...
), MIPS,
PowerPC PowerPC (with the backronym Performance Optimization With Enhanced RISC – Performance Computing, sometimes abbreviated as PPC) is a reduced instruction set computer (RISC) instruction set architecture (ISA) created by the 1991 Apple Inc., App ...
(32-bit only), SPARC V9 and
RISC-V RISC-V (pronounced "risk-five") is an open standard instruction set architecture (ISA) based on established reduced instruction set computer (RISC) principles. The project commenced in 2010 at the University of California, Berkeley. It transfer ...
. 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). HelenOS supports PATA,
SATA SATA (Serial AT Attachment) is a computer bus interface that connects host bus adapters to mass storage devices such as hard disk drives, optical drives, and solid-state drives. Serial ATA succeeded the earlier Parallel ATA (PATA) standard ...
,
USB mass storage The USB mass storage device class (also known as USB MSC or UMS) is a set of computing communications protocols, specifically a USB Device Class, defined by the USB Implementers Forum that makes a USB device accessible to a host computing dev ...
, USB HID, an Atheros USB
WiFi Wi-Fi () is a family of wireless network protocols based on the IEEE 802.11 family of standards, which are commonly used for Wireless LAN, local area networking of devices and Internet access, allowing nearby digital devices to exchange data by ...
dongle, several
Ethernet Ethernet ( ) is a family of wired computer networking technologies commonly used in local area networks (LAN), metropolitan area networks (MAN) and wide area networks (WAN). It was commercially introduced in 1980 and first standardized in 198 ...
network cards, SoundBlaster 16 and Intel HDA audio devices, serial ports, keyboards, mice and framebuffers.


Research and academic 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 that, HelenOS has been used by students as a platform for software projects and master theses.Defended HelenOS theses at Faculty of Mathematics and Physics, Charles University in Prague
/ref>


References


External links


HelenOS home page

HelenOS theses, papers and documentation.

HelenOS
on GitHub {{Hobbyist operating systems Free software operating systems Microkernel-based operating systems ARM operating systems MIPS operating systems IA-32 operating systems X86-64 operating systems Microkernels Software using the BSD license Hobbyist operating systems