結論と対象読者
Apache NuttXは、小規模なマイコン環境でもUNIXに近いAPIとファイル記述子中心の設計を利用したい開発者向けのオープンソースRTOSです。300以上のボードと15以上のCPUアーキテクチャが公式に案内されていますが、「ボード名がある」ことと「必要な周辺機能が完成している」ことは同じではありません。
このページは、Apache NuttXを現在の利用候補として検討する人、既存環境の資料を探す人、OS設計や互換性を研究する人を対象にしています。
30秒要約
- Apache Software Foundationの組み込み向けRTOS
- POSIXとANSI標準への近さを重視
- Kconfigと多数のボード設定を提供
- 実機採用前にボード別READMEと対応ドライバーを確認する
概要と背景
Apache NuttXは、RTOSでありながら、タスク、ファイル、ソケット、デバイスをUNIXに近い方法で扱えるよう設計されています。8ビット級から64ビット級まで広い範囲を対象とし、Linuxを搭載できない小型機器で共通APIを使いたい場合に有力です。
特徴・できること
- プリエンプティブなリアルタイムスケジューリング
- POSIX系APIとVFS
- ネットワーク、USB、ファイルシステムなどのサブシステム
- Kconfigによる構成選択
- 多様なMCU、SoC、評価ボード向けポート
現在の位置付けと利用上の前提
2026年7月24日時点で公式サイトとlatestドキュメントは更新され、300以上のボード、1500以上の構成テンプレートを案内しています。ただし古いボードや削除済みポートも含まれるため、latestのSupported Platformsとソースツリーを確認してください。
確認日は2026年7月24日です。更新状況、対応機器、料金、ライセンス、互換性、安全性は変わる可能性があります。公式資料で確認できない条件は「要確認」として扱ってください。
近い対象との比較
FreeRTOS
FreeRTOSは軽量カーネルとして既存SDKへ組み込みやすく、NuttXはUNIX風APIと統合サブシステムを重視します。
Zephyr
ZephyrはDevicetree、west、Kconfigを統合した大規模な共通基盤です。NuttXはPOSIXに近いプログラミングモデルが選択理由になります。
組み込みLinux
NuttXは小さいメモリと高速起動に向きますが、Linuxの完全なプロセス分離やアプリ資産をそのまま使えるわけではありません。
確認/試行の条件と注意点
- 対象ボードの公式ページとREADMEを読む
- 必要なUART、SPI、I2C、USB、無線機能の実装状態を確認する
- 公式リリースと開発版を区別する
- NSH上でストレージ、ネットワーク、更新処理を実機検証する
- 量産用設定とツールチェーンを固定する
本番環境や重要データを扱う前に、隔離した仮想マシンまたは予備機で、起動、更新、ネットワーク、ストレージ、バックアップ、復元まで確認してください。
参考リンク
- Apache NuttX公式サイト - Apache NuttX公式サイトの公式情報を確認できます。
- 最新ドキュメント - 最新ドキュメントの公式情報を確認できます。
- 対応プラットフォーム - 対応プラットフォームの公式情報を確認できます。
- リリース一覧 - リリース一覧の公式情報を確認できます。
<!-- ppp-rewrite-priority:20260802-rank-0150 -->
追加調査で押さえる実務ポイント
Apache NuttX(一般に「ナットエックス」と読まれます)は、microcontroller向けのPOSIX志向リアルタイムOSです。小さなmemory環境でtask、file descriptor、socket、VFS、driverをUNIXに近いAPIで扱えます。2026年8月2日時点の最新releaseは13.0.0です。ただし「boardが一覧にある」ことと、必要なUART、USB、Ethernet、Wi-Fi、storageが完成していることは別です。
基本情報
| 項目 | 内容 |
|---|---|
| 最新版 | 13.0.0 |
| 公開日 | 2026-07-12 |
| 分類 | RTOS |
| license | Apache License 2.0 |
| API | POSIX/ANSI C志向 |
| build | Kconfig、Make/CMake |
| shell | NSH |
| 対象 | MCU・SoC |
実行モデル
NuttX applicationはtask/threadとして動き、driverはVFSを通じてfile descriptorで操作できます。build時にKconfigで機能を選び、board configurationごとにfirmwareを生成します。
最小構成の流れ
``sh tools/configure.sh <board>:nsh make ``
実際のboard名、toolchain、flash手順は対象boardのREADMEで確認します。
NSH
NuttShellはfile、mount、network、process確認に使えるshellです。productionで残すcommandとauthenticationを検討します。
FreeRTOS・Zephyrとの違い
| 観点 | NuttX | FreeRTOS | Zephyr |
|---|---|---|---|
| API | POSIX志向 | kernel API中心 | modern RTOS framework |
| VFS | 強い | integration次第 | あり |
| shell | NSH | application次第 | shell |
| config | Kconfig | SDK次第 | Kconfig/Devicetree |
| 用途 | UNIX風組込み | 小型kernel | 大規模共通基盤 |
対応確認
- CPU architecture。
- exact board。
- defconfig。
- board README。
- UART console。
- flash。
- clock。
- peripheral driver。
- network。
- power mode。
Security
NuttXは小型環境を対象とし、すべてのinput validationをOSが代行するわけではありません。application側でbuffer、network input、privilege、key、updateを設計します。
向く用途
- POSIX APIを使うMCU
- network appliance
- drone/autopilot研究
- sensor gateway
- file system付きdevice
- RTOS学習
慎重になる用途
- safety certification
- secure boot要件
- MPU/MMU分離必須
- vendor SDK専用driver
- ultra-small memory
- production OTA未設計
導入手順
- release archiveとsignature。
- supported platform。
- example build。
- serial console。
- peripheral test。
- stress test。
- watchdog。
- update/rollback。
- license。
- reproducible build。
次に読む
参考リンク
- nuttx.apache.org - 公式
- nuttx.apache.org - release
- nuttx.apache.org - documentation
- nuttx.apache.org - platforms
- nuttx.apache.org - security