# NASA F-Prime: код с Марса

NASA выложила в открытый доступ F-Prime (11k звёзд) — фреймворк, который летал на марсианском вертолёте Ingenuity и спутниках, а запускается даже на Raspberry Pi. Можно изучать, как пишут софт, которому нельзя падать, и даже продавать.

NASA выложила в открытый доступ фреймворк, на котором построено полётное и встраиваемое ПО для реальных космических аппаратов — включая марсианский вертолёт. Это не демо и не учебный проект: та же архитектура, тот же код, то же требование «падать нельзя». Забрать, собрать и запустить можно бесплатно хоть дома.

## 1. Что такое F´ и почему это не демо

- Логика: компонентный C++-фреймворк для полётного и встраиваемого ПО — очереди сообщений, чёткие интерфейсы между модулями, автогенерация кода из описания системы.
- Метрики: около 11 тысяч звёзд на GitHub, лицензия Apache-2.0 — открытый код, который можно свободно использовать, модифицировать и даже продавать.
- Разработчик: создан в NASA Jet Propulsion Laboratory (JPL) — той же лаборатории, что управляет марсоходами и межпланетными зондами.
- Источник: github.com/nasa/fprime.

## 2. Где он реально летал

- Марс: вертолёт Mars Helicopter (Ingenuity) официально числится в списке проектов F´ — Linux на процессоре Snapdragon 801, полёты с 30 июля 2020 года, миссия продолжается.
- Кубсаты и инструменты: ASTERIA (космический телескоп-кубсат), Lunar Flashlight (кубсат к Луне), Near Earth Asteroid Scout (кубсат к астероидам), ISS-RapidScat (инструмент на МКС), CADRE (луноход).
- Итог: фреймворк проверен не на одном эксперименте, а на разных классах аппаратов — от инструментов на МКС до вертолёта на другой планете.

## 3. Запускается даже на Raspberry Pi

- Логика: репозиторий официально помечен темой raspberry-pi на GitHub, а в CMake-инструментах есть отдельный toolchain именно под эту платформу.
- Кросс-компиляция: в документации есть отдельный туториал по сборке под другую архитектуру — тот же процесс, что используется при переносе кода на реальное embedded-железо.
- Вывод: архитектура, стоящая за полётным ПО, собирается и запускается на плате за несколько тысяч рублей — без симулятора и без доступа к настоящему спутнику.

## 4. Что здесь смотреть и зачем

- Ценность: архитектура, где сбой одного компонента не должен останавливать всю систему — изоляция через компоненты, очереди сообщений и строгие интерфейсы между модулями.
- Инструменты: автогенерация кода из модели системы, готовая библиотека проверенных компонентов, встроенные средства модульного и интеграционного тестирования.
- Разница с типичным кодом: практики отказоустойчивости для железа, которое нельзя перезагрузить рукой за 200+ миллионов километров от Земли, в обычных туториалах не встречаются.

> Здесь падать нельзя — и это решение видно в каждой строчке архитектуры, а не только в документации.

## 5. Как попробовать

```
pip install fprime-bootstrap
fprime-bootstrap project
```

- Дальше: официальный туториал Hello World проводит через установку, создание проекта, написание и тестирование первого компонента.
- Требования: Linux, Windows с WSL или macOS, git, Python 3.10+ и компилятор Clang или GCC.
- Источник: fprime.jpl.nasa.gov, репозиторий — github.com/nasa/fprime.

---

Источник: https://localhost:3000/m/nasa-fprime-mars-code
