跳到主要内容

NuttX 简介

NuttX 是一个嵌入式实时操作系统(RTOS),设计目标是兼容 POSIX 和 ANSI 标准,以便在小型嵌入式系统中提供标准化的操作系统功能。NuttX 支持 8 位到 32 位的微控制器,常被用于物联网(IoT)设备、无人机、机器人、消费电子产品等需要可靠、实时操作的嵌入式应用中。

NuttX 发展历程

  • NuttX 嵌入式操作系统最早于 2007 年由 Gregory Nutt 先生正式开源,并采用了宽松的 BSD 许可证。
  • 2016年,NuttX 被三星选为 TizenRT 操作系统的内核。
  • 2019年,在小米的推动下,NuttX 正式进入 Apache 基金会,NuttX 也成为了小米 Vela 操作系统的内核。
  • 经过开源社区多年的不懈努力,NuttX 功能丰富,性能稳定,商业化成熟度高,Fitbit 最近两代的手环产品和索尼多款消费级产品都是基于 NuttX 开发的。

主要特性

NuttX 最大的特点就是对 POSIX 标准有原生兼容,这意味着很多 Linux 社区的开源软件都可以很方便地移植到 NuttX 上,极大地简化了开源软件移植,提高了代码复用率,降低了开发者的学习曲线。

提示

其他大多数 RTOS 需要适配层把 POSIX API 转成内部 API,而且通常只兼容一小部分的 POSIX 接口。

具体来说,NuttX 系统具有以下特点:

  • 完成度高:NuttX集成了文件系统、网络协议栈、图形库和驱动框架,减少开发成本。
  • 模块化设计:所有组件甚至组件内部特性,都可以通过配置Kconfig来调整或关闭,可按需对系统进行裁剪,适用于不同产品形态。
  • 代码精简:所有组件都是从头编码,专门对代码和数据做了优化设计。
  • 轻量级:虽然NuttX实现了传统操作系统的所有功能,但是最终生成的代码尺寸还是可以很小(最小配置不到32KB,最大配置不超过256KB)。
  • 和 Linux 系统的兼容性:因为 NuttX 整体设计、代码组织,编译过程和 Linux 非常接近,大大降低了 Android/Linux 开发者的迁移成本。
  • 活跃开放的社区:很多厂商(比如小米、Sony,乐鑫、NXP 等)和开源爱好者都在积极回馈社区。

相关链接