NuttX

NuttX
NuttX
开发者Gregory Nutt
编程语言C, C++, 汇编语言
作業系統家族实时操作系统
運作狀態活跃
源码模式开放原始码
首次发布2007年,​17年前​(2007
当前版本
  • 12.5.1 (2024年4月15日;穩定版本)[1]
編輯維基數據鏈接
市場取向嵌入式系统
支援平台ARM, AVR, AVR32, HCS12, LM32, MIPS, RISC-V, SuperH, Xtensa XL6, Z80
内核类别微内核
许可证Apache License 2.0
官方網站nuttx.apache.org
仓库
  • github.com/apache/nuttx
編輯維基數據鏈接

NuttX是一个专注于标准合规和占用少記憶體的实时操作系统(RTOS)。它可以在8位到32位的微控制器上部署。NuttX在编写时主要参照了POSIXANSI标准。对于那些标准中没有的部分,如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库
  • 拥有完善的用户手册描述

支持架构[2]

  • 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
  • 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

参考资料

  1. ^ Release 12.5.1. 2024年4月15日 [2024年4月23日]. 
  2. ^ Supported Platforms — NuttX latest documentation. nuttx.apache.org. [2022-06-03]. (原始内容存档于2022-07-28). 

外部链接

  • NuttX 主页(页面存档备份,存于互联网档案馆
  • Official NuttX用户组 (Yahoo Groups)(页面存档备份,存于互联网档案馆
  • NuttX官方用户组 (Google Groups)Portuguese Web Archive的存檔,存档日期2011-01-22
  • NuttX文件檔 (页面存档备份,存于互联网档案馆
开放源代码
  • Mynewt OS英语Apache Mynewt OS
  • BeRTOS英语BeRTOS
  • ChibiOS/RT
  • Contiki
  • Composite
  • Djyos
  • ECOS
  • ERIKA Enterprise英语ERIKA Enterprise
  • FreeRTOS
  • Fuchsia
  • FunkOS英语FunkOS
  • Nano-RK英语Nano-RK
  • NuttX
  • One os
  • QP
  • RIOT
  • RTAI英语RTAI
  • RTEMS
  • RTLinux
  • RT-Thread
  • seL4英语seL4
  • Talon DSP RTOS英语Talon DSP RTOS
  • TI-RTOS英语TI-RTOS
  • TinyOS
  • TockOS
  • TRON
  • Wombat OS英语Wombat OS
  • Xenomai
  • Zephyr
专有软件
  • 4690 OS英语4690 Operating System
  • DioneOS英语DioneOS
  • INTEGRITY
  • Junos OS英语Junos OS
  • LynxOS
  • µC/OS-II英语Micro-Controller Operating Systems
  • MQX英语MQX
  • Multiuser DOS英语Multiuser DOS
  • Nucleus RTOS
  • OpenComRTOS英语OpenComRTOS
  • OSE英语Operating System Embedded
  • OS-9英语OS-9
  • OS2000英语OS2000
  • PikeOS英语PikeOS
  • QNX
  • REX OS英语REX OS
  • ScreenOS英语ScreenOS
  • L4微内核系列
  • ThreadX
  • TPF英语Transaction Processing Facility
  • VRTX
  • VxWorks
  • Windows Embedded Compact
  • SylixOS
历史上的
  • DNIX英语DNIX
  • DSOS英语DSOS
  • EROS英语EROS (microkernel)
  • CoyotOS英语CoyotOS
  • FlexOS英语FlexOS
  • MERT/UNIX-RT英语Multi-Environment Real-Time
  • pSOS英语pSOS (real-time operating system)
  • RMX
  • RSX-11
  • RT-11英语RT-11
  • Sintran III英语Sintran III
  • Symbian
  • THEOS英语THEOS
  • UNOS英语UNOS (operating system)
  • 分类:实时操作系统