board. These libraries may include facilities for hardware initialisation, interrupt
handling, hardware clock and timer management.
Design
Operating system can be designed as a monolithic (one piece of software with
many interacting modules), layered or client-server structure. A minimal kernel and a
set of server and client tasks, makes it a lot easier for the vendor to offer a scalable
operating system with more or less services. Scalability means that a set of services
used by an application can be optimised, and is even more useful if there is a
possibility of dynamic downloading and uploading of services. On the other hand,
configurability is a capacity of a RTOS to accommodate changes in underlying
hardware (e.g. location and migration transparency).
The space application is a system for guidance, navigation and control of
autonomous spacecraft with critical phases. For example, the Rosetta spacecraft will
have a number of phases when real-time control from ground will not be feasible.
Additionally, the software must function in an environment which is highly
constrained in both the memory space and processor power (e.g., the distance from
the Sun limits the amount of power available from the solar panels and equipment
needs to be powered down). Hence the need for configurability and component
optimisation in critical phases.
Space missions require long-term maintenance and support. For some
missions, it is very important to have the ability to upgrade code after spacecraft
launch in order to correct bugs found during the operation phase, to make
modifications due to changes in the environment requirements, and to improve certain
functions.
Standards
The space domain covers a lot of very different applications from ground segments,
launchers and satellites to probes. However, majority of applications is built
according to two main standards: ECSS and DO-178B. The development of all
software under the umbrella of European Space Agency (ESA) has to be done in
accordance with the European Cooperation for Space Standardisation (ECSS) space
product assurance standards (ECSS96) which have recently replaced the quality
standard ESA PSS-05. These standards are mainly focused on the software process
rather than on the product and, not surprisingly, COTS RTOS vendors have largely
ignored them. This is not the case with DO-178B (RTCA92), internationally
recognised assurance standard for software development within the aerospace
industry. As all new space projects will be facing the DO-178B certification process,
some RTOS vendors have already made products addressing the standard’s
requirements.
An RTOS needs to interact with application components and its environment through
well-defined interfaces. With the technology being in a constant state of flux, it seems
reasonable to choose RTOS conforming to a widely accepted interface standard.
RTOS conformance to the POSIX 1003.1 standard was chosen as a major criterion for
the selection of COTS RTOS in the GUARDS project implemented in a space domain
(Powell01).