1. The rover that had to be reprogrammed from Earth

Andy Weir’s The Martian returns as the recalled work because Mark Watney’s survival depends on understanding and modifying the software of the Pathfinder probe from a distance. The desktop will also be modified from Earth, but its software must be organized so that changes are safe, localized, and reversible.

This entry reads about spacecraft flight software architectures.

2. The layered view

Spacecraft flight software is typically organized in layers:

  • Hardware abstraction: drivers and board support packages that isolate the rest of the software from the specific processor and peripherals.
  • Operating system abstraction: services for tasks, semaphores, queues, timers, and memory management.
  • Core services: messaging, event logging, time management, table services, and command/telemetry handling.
  • Applications: mission-specific functions such as attitude control, thermal management, autonomy, and communications.

NASA’s core Flight System implements this layering explicitly. It includes the Platform Support Package (PSP), the Operating System Abstraction Layer (OSAL), the Core Flight Executive (cFE), and reusable cFS applications.

3. Reuse across missions

The cFS approach is to build reusable, configurable applications rather than cloning and modifying software for each mission. A comparative survey of flight software frameworks describes cFS as a three-layer architecture that separates applications from the operating system and hardware.

A NASA Johnson Space Center overview notes that cFS has powered more than forty NASA missions, from small-class to flagship, and is the primary architecture for Lunar Gateway. The framework’s layered design allows applications to be written once and ported across hardware platforms and operating systems.

4. Publish-subscribe messaging

A key cFS feature is a publish-subscribe message service that decouples applications. An application producing telemetry publishes messages to a software bus; applications needing that data subscribe to it. This means:

  • Applications can be added, removed, or relocated without rewriting their interfaces.
  • Messages are location-agnostic, supporting multi-core, distributed, and partitioned architectures.
  • The system can be reconfigured at runtime.

A NASA paper on using CCSDS standards notes that cFS applications can be loaded, started, stopped, and unloaded at runtime using cFE services.

5. What this changes

  • Flight software architecture matters for maintainability, portability, and testability.
  • The desktop should adopt a layered architecture with clear separation between hardware abstraction, core services, and applications.
  • The next entry will read about real-time operating systems.