nucleus is bootstrapped from the I/O server into the network. Each node is booted using a small first-stage 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 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 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 VFS API, and more closely to Plan 9's 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,