NuttX

NuttX是一个专注于标准合规和占用少記憶體的实时操作系统（RTOS）。它可以在8位到32位的微控制器上部署。NuttX在编写时主要参照了POSIX和ANSI标准。对于那些标准中没有的部分，如fork()等，则参考了VxWorks或其他RTOS。

NuttX最早是在2007年由Gregory Nutt于BSD协议下释出的。

具体实现 
NuttX 基本上完全是由C语言实现的，并且通过Kconfig生成GNU makefile。NuttX的发行版包括了NuttX内核本身和相当一部分的中间件和板级支持包。
NuttX的内核和绝大多数代码完全是由Gregory Nutt完成的，并由他专门维护。所有的社区贡献都必须经过他批准。

关键功能 
 符合各类重要标准
 核心任务管理
 模组化的微核心
 完全可抢占(计算机)
 可扩展，高度可配置
 容易移植到各类新的处理器、SoC或者板级架构上
 先进先出和时间片轮转调度，并可以采取无节拍内核
 实时，具备确定性
 具备和POSIX/ANSI类似的任务控制，有名消息队列，计数信号量，时钟、定时器和信号，POSIX线程，环境变量和文件系统
 具备和VxWorks类似的任务管理和看门狗定时器
 具备和BSD类似的socket接口
 可选的进程实现
 支持对称多处理器
 支持可加载的内核模块
 支持线程本地存储（TLS）
 支持系统日志
 可选实现的系统调用或直接函数调用
 内置了可针对各线程配置的CPU负载监控
 客制化的NuttX C库
 拥有完善的用户手册描述

支持架构 
 ARM
 ARM7TDMI (德州仪器TMS320 C6571, Calypso, MoxART, NXP LPC214x, LPC2378, STMicro STR71x)
 ARM920T (飞思卡尔i.MX1)
 ARM926EJS (德州仪器 DM320, NXP LPC31xx)
 ARM Cortex-A5 (爱特梅尔SAMA5D2, SAMA5D3, SAMA5D4)
 ARM Cortex-A8 (全志A10)
 ARM Cortex-A9 (NXP/Freescale i.MX6)
 ARM Cortex-R4/R4F (TI TMS570, Samsung Artik)
 ARM Cortex-M0/M0+ (新唐: NUC120, NXP: KL25Z, KL26Z, LPC11xx, Atmel: SAMD20/21, SAML21, ST Micro STM32 F0)
 ARM Cortex-M3 (ST Micro STM32 F1/F2/L4, TI/Stellaris LM3S, NXP LPC17xx, Atmel SAM3U/3X, SiliconLabs EFM32)
 ARM Cortex-M4 (有或没有浮点处理器单元：STM32 F3/F4/L4，TI/Stellaris LM4F/TM4C, NXP LPC43xx/LPC54xx, Freescale Kinetis K20/K28/K40/60/64/66, Atmel SAM4C/4E/4S/4L, Infineon XMC4xxx, Nordic NRF52xxx)
 ARM Cortex-M7 (爱特梅尔SAMV71/SAME70, ST Micro STM32 F7, STM32 H7, NXP i.MX RT)
 Atmel AVR
 Atmel 8-bit AVR (AT90USB, ATmega)
 AVR32
 Freescale
 M68HCS12
 Intel
 80×86
 MIPS
 MicroChip PIC32MX (MIPS M4K)
 MicroChip PIC32MZEF (MIPS M5150)
 Misoc
 LM32 (Qemu)
 OpenRISC
 mor1kx
 Renesas/Hitachi
 Renesas/Hitachi SuperH
 Renesas M16C/26
 Renesas RX65N
 RISC-V
 LiteX on ARTY A7
 Xtensa LX6
 Expressif ESP32
 Zilog
 Zilog Z16F
 Zilog eZ80 Acclaim!
 Zilog Z8Encore!
 Zilog Z180
 Zilog Z80

参考资料

外部链接 
 NuttX 主页
 Official NuttX用户组 (Yahoo Groups)
 NuttX官方用户组 (Google Groups)
 NuttX文件檔 

实时操作系统
嵌入式操作系统
自由作業系統
ARM操作系统
使用BSD许可证的软件
微內核