ERTOS Software
ERTOS (and its UNSW-based predecessor DiSy) has developed a number of
software packages that are released as open source. This includes
operating system (OS) kernels, OS personalities for microkernels, and OS
ports and development tools.
These pages are a starting point for downloading the various
packages and systems. General information about these packages and systems
can be found in our Research pages. We recommend
that first-time visitors check out our newcomers page
to get an idea of what to expect from our software.
Iguana
Iguana forms the core of our
embedded operating systems. It provides basic services, such as
protection, memory management and naming, that are required in almost
every system.
Go ahead and download the
latest version of Iguana.
L4
L4 forms the base of most of our work. It
is a state-of-the-art, high-performance microkernel. Our version,
called NICTA::Pistachio-embedded, implements the NICTA N1
API, which is specifically aimed at the requirements of embedded
systems, in particular small size and high performance.
Download the latest version of
NICTA::Pistachio-embedded, or see it in action in the Iguana Project.
Kenge
Kenge is our framework for building
L4-based systems. It is structured as an extensible set of projects,
consisting mostly of libraries and services (but also including some
applications), supported by a build system. Iguana is a Kenge project.
The Kenge build system can be seen in action in the Iguana Project.
Wombat
Wombat is a complete para-virtualized Linux kernel running de-privileged (i.e., in
user mode) on top of Iguana. It is based on the para-virtualisation of Linux,
which means that we introduced L4 as a new architecture that Linux can run on.
Contrary to most other para-virtualised Linux systems, Wombat
is highly portable and presently runs on x86, ARM and MIPS.
Performance benchmarks show Wombat
performs very well compared to native Linux, and even out performs it
in some benchmarks.
Wombat is available as part of the Iguana Project.
Magpie
Magpie is an IDL compiler, meaning a program which generates
the message-passing stub code required to invoke component interfaces
specified in an interface-definition language (IDL). Magpie differs from
other IDL compilers by its design for extensibility, meaning that it is
not tied to a particular IDL. At present it supports a modified
CORBA syntax. It produces stub code either in C or optimised ARM
assembler.
Magpie is used heavily in the Iguana Project, and we recommend
that you use it in your own projects too, rather than using explicit L4
IPC system calls and parameter marshalling.
Download the latest version of
Magpie.
Linux-on-Linux
An offshoot of the vNUMA project,
Linux-On-Linux is a User-mode Linux workalike for IA64.
Find more details and download it from the Virtualisation pages.
Fast Address-Space Switching
ARM7 and ARM9 cores feature virtually-addressed caches and TLBs not
tagged with an address-space identifier. As a consequence, most
operating systems flush the caches and TLB on every context switch,
which bears a very high cost.
Fast address-space switching is a technique which minimises cache
flushes, and can result in reduction of context-switching costs by
orders of magnitude. This technique is implemented in
NICTA::Pistachio-embedded. For Linux, the patches have been integrated
into Snapgear's 2.4.x Linux kernel.
Sulima
Sulima is an instruction-set-architecture simulator for the MIPS64
architecture. It was developed at UNSW by Patryk Zadarnowski and has
since been maintained at ERTOS. It specifically supports the U4600
platform (based on an R4700 processor) which we use for most MIPS-based
development. It is also used for teaching at UNSW.
The latest version of Sulima is available for download.
Benchmarks
Performance evaluation and tuning is an inherent part of our work,
and often no suitable standard benchmarks are available. People then
tend to develop ad-hoc benchmarks, some of which develop into
generally useful tools.
We offer some of our better-developed benchmark
suites for download.
Version Control Repository Access
For those with more experience, you may want to stay up to date with
the latest NICTA/ERTOS - L4/Iguana source code. See the
version control howto for more details.