NuttX

Last updated

NuttX
NuttX logo.png
NuttX logo
Developer Apache Software Foundation
Written in C, C++, assembly
OS family POSIX
Working stateCurrent
Source model Open source
Initial release2007;17 years ago (2007)
Latest release 12.4.0 / February 15, 2024;23 days ago (2024-02-15) [1]
Repository
Marketing target Embedded systems
Platforms ARM, AVR, AVR32, HCS12, LM32, MIPS, RISC-V, OpenRISC, SuperH, Xtensa, x86, x86-64, Z80
Kernel type Real-time microkernel
License Apache License 2.0
Official website nuttx.apache.org

NuttX is a free and open-source Real-Time Operating System (RTOS) with an emphasis on technical standards compliance and on having a small footprint. Scalable from 8-bit to 64-bit microcontroller environments, [2] the main governing standards in NuttX are from the Portable Operating System Interface (POSIX) and the American National Standards Institute (ANSI). Further standard application programming interfaces (APIs) from Unix and other common RTOSes (such as VxWorks) are adopted for functions unavailable under these standards,[ citation needed ] or inappropriate for deeply embedded environments, such as the fork() system call.[ citation needed ]

Contents

NuttX was initially released in 2007 under the permissive BSD license. [3] In December 2019, it began incubation at the Apache Software Foundation. [4] changing its license from BSD to Apache License and graduated to a top-level project in November 2022. [5]

Usage

NuttX RTOS is used in a variety of applications, including the Sony CXD5602/Spresense microcontroller [6] as well as an audio recorder from Sony. [7]

The firmware for some of Motorola's MotoMod accessories for the Moto Z used NuttX RTOS, [8] [9] and NuttX is also used in the PX4 autopilot drones, which use NuttX to control a variety of autonomous platforms. [10]

In October 2023, Xiaomi announced they were open-sourcing Xiaomi Vela, an IoT software platform based on NuttX that is part of the Xiaomi HyperOS ecosystem (Xiaomi's HyperOS devices include devices based on NuttX, Linux, and Android). Xiaomi Vela is used to power many Xiaomi IoT devices (specifically devices with embedded systems and low computational power, but not more advanced devices like smartphones). [11] [12]

Forks

In December 2016, Samsung created TizenRT, [13] a fork for smart home appliances and IoT devices.

Related Research Articles

In software engineering, a compatibility layer is an interface that allows binaries for a legacy or foreign system to run on a host system. This translates system calls for the foreign system into native system calls for the host system. With some libraries for the foreign system, this will often be sufficient to run foreign binaries on the host system. A hardware compatibility layer consists of tools that allow hardware emulation.

<span class="mw-page-title-main">UEFI</span> Operating system and firmware specification

Unified Extensible Firmware Interface is a specification that defines the architecture of the platform firmware used for booting the computer hardware and its interface for interaction with the operating system. Examples of firmware that implement the specification are AMI Aptio, Phoenix SecureCore, TianoCore EDK II, InsydeH2O. UEFI replaces the BIOS which was present in the boot ROM of all personal computers that are IBM PC compatible, although it can provide backwards compatibility with the BIOS using CSM booting. Intel developed the original Extensible Firmware Interface (EFI) specification. Some of the EFI's practices and data formats mirror those of Microsoft Windows. In 2005, UEFI deprecated EFI 1.10.

<span class="mw-page-title-main">FreeRTOS</span> Real-time operating system

FreeRTOS is a real-time operating system kernel for embedded devices that has been ported to 35 microcontroller platforms. It is distributed under the MIT License.

<span class="mw-page-title-main">Phoenix-RTOS</span>

Phoenix-RTOS is a real-time operating system designed for Internet of Things appliances. The main goal of the system is to facilitate the creation of "Software Defined Solutions".

<span class="mw-page-title-main">.NET Micro Framework</span> Open source .NET platform

The .NET Micro Framework (NETMF) is a .NET Framework platform for resource-constrained devices with at least 512 kB of flash and 256 kB of random-access memory (RAM). It includes a small version of the .NET Common Language Runtime (CLR) and supports development in C#, Visual Basic .NET, and debugging using Microsoft Visual Studio. NETMF features a subset of the .NET base class libraries, an implementation of Windows Communication Foundation (WCF), a GUI framework loosely based on Windows Presentation Foundation (WPF), and a Web Services stack based on Simple Object Access Protocol (SOAP) and Web Services Description Language (WSDL). NETMF also features added libraries specific to embedded applications. It is free and open-source software released under Apache License 2.0.

A Bluetooth stack is software that is an implementation of the Bluetooth protocol stack.

A mobile operating system is an operating system used for smartphones, tablets, smartwatches, smartglasses, or other non-laptop personal mobile computing devices. While computers such as typical/mobile laptops are "mobile", the operating systems used on them are generally not considered mobile, as they were originally designed for desktop computers that historically did not have or need specific mobile features. This line distinguishing mobile and other forms has become blurred in recent years, due to the fact that newer devices have become smaller and more mobile unlike hardware of the past. Key notabilities blurring this line are the introduction of tablet computers, light-weight laptops, and the hybridization of the two in 2-in-1 PCs.

<span class="mw-page-title-main">Bada</span> Discontinued mobile operating system

Bada is a discontinued mobile operating system developed by Samsung Electronics for devices such as mid- to high-end smartphones and tablet computers. The name is derived from "바다 (bada)", meaning "ocean" or "sea" in Korean. All phones running Bada were branded with the name Wave, unlike Samsung's Android devices which are branded as Galaxy.

Huawei Lite OS is a discontinued lightweight real-time operating system (RTOS) developed by Huawei. It is an open source, POSIX compliant operating system for Internet of things (IoT) devices, released under a three-clause BSD license. Microcontrollers of different architectures such as ARM, x86, and RISC-V are supported by the project. Huawei LiteOS is part of Huawei's '1+8+N' Internet of Things solution, and has been featured in a number of open source development kits and industry offerings.

<span class="mw-page-title-main">Tizen</span> Linux-based mobile operating system

Tizen is a Linux-based mobile operating system backed by the Linux Foundation, developed and used primarily by Samsung Electronics.

Mbed is a development platform and real-time operating system (RTOS) designed for internet-connected devices that utilize 32-bit ARM Cortex-M microcontrollers. These internet-enabled devices are often categorized under the Internet of Things (IoT) umbrella. The Mbed project is a collaborative effort led by Arm Holdings, in partnership with various technology companies and contributors.

bhyve is a type-2 hypervisor initially written for FreeBSD. It can also be used on a number of illumos based distributions including SmartOS, OpenIndiana, and OmniOS. A port of bhyve to macOS called xhyve is also available.

The PX4 autopilot is an open-source system designed for affordable autonomous aircraft, suitable for hobbyists operating small and remotely piloted aircraft. Originating in 2009, this project is continually evolving, with ongoing development and utilization at the Computer Vision and Geometry Lab of ETH Zurich. It also receives support from the Autonomous Systems Lab and the Automatic Control Laboratory. Currently, numerous vendors are manufacturing PX4 autopilots and associated accessories.

<span class="mw-page-title-main">Zephyr (operating system)</span> Real-time operating system

Zephyr is a small real-time operating system (RTOS) for connected, resource-constrained and embedded devices supporting multiple architectures and released under the Apache License 2.0. Zephyr includes a kernel, and all components and libraries, device drivers, protocol stacks, file systems, and firmware updates, needed to develop full application software.

<span class="mw-page-title-main">Apache Mynewt</span> Real-time operating system

Apache Mynewt is a modular real-time operating system for connected Internet of things (IoT) devices that must operate for long times under power, memory, and storage constraints. It is free and open-source software incubating under the Apache Software Foundation, with source code distributed under the Apache License 2.0, a permissive license that is conducive to commercial adoption of open-source software.

Mongoose OS is an Internet of Things (IoT) Firmware Development Framework available under Apache License Version 2.0. It supports low power, connected microcontrollers such as: ESP32, ESP8266, TI CC3200, TI CC3220, STM32. Its purpose is to be a complete environment for prototyping, development and managing connected devices.

Zerynth is a software implementation of the Python programming language for programming microcontrollers. It targets 32-bit microcontroller platforms and is designed to mix Python with C code. It connects the microcontrollers to the Cloud for developing Internet of Things (IoT) products.

<span class="mw-page-title-main">FatFs</span> Software library for microcontrollers

FatFs is a lightweight software library for microcontrollers and embedded systems that implements FAT/exFAT file system support. Written on pure ANSI C, FatFs is platform-independent and easy to port on many hardware platforms such as 8051, PIC, AVR, ARM, Z80. FatFs is designed as thread-safe and is built into ChibiOS, RT-Thread, ErlendOS, and Zephyr real-time operating systems.

References

  1. "Apache NuttX-12.4.0" . Retrieved March 9, 2024.
  2. "About Apache NuttX". nuttx.apache.org. Retrieved June 23, 2023.
  3. "NuttX Project at SourceForge" . Retrieved October 18, 2023.
  4. "Apache NuttX (Incubating)". incubator.apache.org. Retrieved April 29, 2021.
  5. "The Apache Software Foundation Announces Apache® NuttX™ as a Top-Level Project". news.apache.org. Retrieved June 23, 2023.
  6. "Spresense combines multi-core and power efficiency" . Retrieved September 5, 2019.
  7. "Developing Audio Products with Cortex-M3/NuttX/C++11" (PDF). Archived from the original (PDF) on January 20, 2017. Retrieved January 20, 2017.
  8. "Moto Mods Firmware: Overview" . Retrieved December 28, 2016.
  9. "Modular Moto Z Android phone supports DIY and RPi HAT add-ons" . Retrieved August 22, 2016.
  10. "Autopilot PX4" . Retrieved May 3, 2013.
  11. "Xiaomi Unveils Xiaomi HyperOS, a Human-centric Operating System Designed and Tailored to Connect Personal Devices, Cars, and Smart Home Products in a Smart Ecosystem" . Retrieved December 12, 2023.
  12. "Xiaomi Vela IoT Platform is Being Open-Sourced Based on NuttX Real-time OS" . Retrieved December 12, 2023.
  13. TizenRT repo