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.