Skip to main content

Overview

The Core Flight System (cFS) is NASA's open-source flight software framework, used on over 50 missions. It provides a portable, layered architecture that separates hardware-specific code from application logic, so the same flight apps run on different processors and operating systems without modification.

cFS exists because spacecraft flight software faces a recurring problem: every new mission re-implements the same services — task scheduling, message routing, configuration management, time synchronization — on top of whatever hardware and RTOS the mission selects. cFS solves this by defining three abstraction layers that isolate applications from the platform beneath them.

Architecture​

The stack has three layers. The Platform Support Package (PSP) abstracts the physical board. The Operating System Abstraction Layer (OSAL) abstracts the real-time operating system. The core Flight Executive (cFE) provides five services that every application can use: task management, message passing, event logging, table-based configuration, and time synchronization.

cFE (Core Flight Executive)
OSAL (OS Abstraction Layer)
PSP (Platform Support Package)
Hardware / RTOS
VxWorks
RTEMS
Linux

Mission​

A mission is a collection of apps running on the framework above. The Mission section covers how a mission is organized and how it addresses the concerns that every spacecraft faces:

  • Structure — apps, libraries, tables, configuration, and the build process
  • Deployment — updating apps and configuration on a running spacecraft
  • Scheduling — time-driven execution and deterministic CPU allocation
  • Communication — how apps exchange data through the bus
  • Identification — spacecraft IDs, APIDs, and message routing
  • Time — how the spacecraft knows what time it is and stays synchronized
  • Processor — hardware assumptions: word size, endianness, radiation, no MMU
  • Fault Tolerance — error detection and recovery, from bit flips to app crashes
  • Memory — bounded, pre-allocated memory without a general-purpose heap

How LeoDOS Uses cFS​

All LeoDOS flight applications are cFS apps. The communication stack — framing, routing, reliable transport — runs as cFS tasks that communicate through the Software Bus. This means the protocol stack benefits from cFS's built-in services: configuration tables can be updated from the ground without restarting an app, events from any layer are captured and downlinked as telemetry, and the entire stack shares a single synchronized time reference.