awesome-repositories.com
Blog
awesome-repositories.com

Découvrez les meilleurs dépôts open-source grâce à notre recherche par IA.

ExplorerRecherches sélectionnéesAlternatives open sourceLogiciels auto-hébergésBlogPlan du site
ProjetÀ proposNotre méthodologiePresseServeur MCP
Mentions légalesConfidentialitéConditions d'utilisation
© 2026 Bringes Technology SRL·VAT RO45896025·hello@awesome-repositories.com
·
apache avatar

apache/nuttx

0
View on GitHub↗
3,912 stars·1,605 forks·C·Apache-2.0·10 vuesnuttx.apache.org↗

Nuttx

NuttX est un système d'exploitation temps réel (RTOS) conforme à POSIX, conçu pour les microcontrôleurs allant des architectures 8 bits aux 64 bits. Il fournit un environnement d'exécution déterministe avec un ordonnanceur de tâches temps réel et un noyau embarqué POSIX pour assurer une exécution de code portable sur diverses cibles matérielles.

Le projet se distingue par une couche d'abstraction matérielle complète qui fournit des pilotes standardisés pour I2C, SPI, CAN et USB sur divers chipsets de semi-conducteurs. Il dispose également d'une pile réseau embarquée prenant en charge TCP, UDP, IPv4 et IPv6, ainsi que des protocoles industriels tels que Modbus et DroneCAN.

Le système couvre un large éventail de capacités, incluant une gestion avancée de la mémoire avec pagination à la demande, des opérations cryptographiques sécurisées et un système de fichiers virtuel pour gérer des types de stockage disparates. Il intègre en outre des interfaces de haut niveau pour les interfaces graphiques, la synthèse audio et l'exécution de plusieurs langages de script et charges de travail WebAssembly.

L'environnement est construit en utilisant Make ou CMake pour cibler des configurations de cartes et des chipsets spécifiques.

Features

  • Embedded Real-Time Operating Systems - Provides a lightweight, deterministic operating system for real-time task execution on resource-constrained microcontroller hardware.
  • POSIX Interfaces - Implements a POSIX-compliant kernel and standardized system interfaces to ensure portable code across microcontroller architectures.
  • POSIX-Compliant Execution Environments - Implements standardized POSIX and ANSI APIs to ensure portable code execution across diverse microcontroller architectures.
  • Board Support Packages - Provides board support packages to map hardware-dependent settings, memory maps, and device drivers for new targets.
  • Hardware Abstraction Layers - Provides standardized hardware abstraction layers that decouple high-level drivers from specific microcontroller hardware platforms.
  • Embedded Hardware Deployment - Supports a wide range of 8-bit to 64-bit architectures, System-on-Chip series, and specific development boards for flexible hardware targeting.
  • Hardware Porting Frameworks - Provides a framework for defining processor architectures, SoC-specific logic, and board-level peripherals for hardware porting.
  • Network Stacks - Implements a full network stack supporting TCP, UDP, IPv4, and IPv6 via a standard socket interface.
  • Embedded Network Stacks - Ships a comprehensive embedded networking stack implementing TCP, UDP, IPv4, IPv6, Modbus, and DroneCAN.
  • Hardware Abstraction Interfaces - Provides a standardized framework for character, block, and specialized drivers to interact with hardware through a consistent high-level API.
  • Executable Program Loading - Parses and loads executable programs from the filesystem into memory for immediate execution.
  • Hardware Interfacing and Drivers - Provides a standardized device interface layer that connects high-level protocol stacks to physical hardware.
  • Hardware Abstraction Layers - Provides a consistent API and framework of device nodes to decouple high-level logic from physical hardware peripherals.
  • Hardware Resource Abstractions - Controls physical hardware through a system of device drivers and device nodes using standardized system calls.
  • Inter-Process Communication - Provides mechanisms for synchronizing execution and exchanging data between concurrent threads or processes using queues and semaphores.
  • Interactive System Shells - Provides a shell environment with a command-line editor, text editor, and standard Unix-like utilities for system management.
  • Boot & Startup Management - Provides utilities to load, verify, and launch system images from storage into memory during the device startup process.
  • Device Drivers - Provides a framework for character, block, and specialized drivers to interface hardware with the OS.
  • Memory Management Systems - Provides comprehensive systems for managing memory lifecycles, including on-demand paging and thread-local storage.
  • Dynamic Memory Allocation - Provides mechanisms for allocating and reallocating memory dynamically based on runtime requirements.
  • Hybrid Memory Allocators - Manages system resources using a combination of page, granule, and heap allocators to support varying memory protection modes.
  • System Call Interfaces - Implements the software interrupt mechanism that allows user-space applications to request kernel services.
  • Interrupt Masking - Saves and restores the interrupt enable state to protect critical sections of code from being interrupted.
  • Kernel Isolation Mechanisms - Separates unprivileged user-mode applications from the kernel using architecture-specific software interrupts.
  • Multi-Architecture Support - Runs on a wide range of processor architectures from 8-bit to 64-bit and various semiconductor chipsets.
  • Native Binary Execution - Provides mechanisms to load and execute compiled binary files directly from storage into memory.
  • Real-Time Task Scheduling - Provides deterministic scheduling of tasks and resources to ensure predictable execution timing for real-time operations.
  • Task Execution Coordination - Manages execution units for system-wide multitasking and deterministic scheduling.
  • Concurrent Thread Execution - Manages multiple execution paths using system threads to ensure real-time performance and non-blocking operations.
  • Executable Path Resolvers - Searches defined system directories to resolve requested command names to absolute binary file paths.
  • Symbol-To-Address Mapping - Maps undefined symbols to memory addresses using symbol tables to enable dynamic linking of binary modules.
  • Virtual File Systems - Provides a standardized API to access disparate storage types and block devices through a single unified directory hierarchy.
  • Sensor Drivers - Implements drivers to collect data from hardware sensors like accelerometers and barometers via I2C and SPI.
  • Graphics and Rendering - Builds user interfaces using a combination of window managers, text-based TUIs, and image libraries.
  • Cryptographic Key Management - Manages the lifecycle of cryptographic keys, including generation, derivation, and persistence to non-volatile storage.
  • In-Memory File Systems - Implements an in-memory file system that generates content on-the-fly without physical storage media.
  • Partition and Format Management - Creates and formats disk partitions, boot record tables, and file systems like FAT or SmartFS.
  • Initialization Drivers - Runs specific driver setup routines during the early boot process before system resources like memory allocation are available.
  • Unified File Access Interfaces - Provides a standardized API for interacting with multiple disparate file systems and storage drivers through a single interface.
  • Virtual File Systems - Organizes files and directories across various storage types through a standardized virtual file system interface.
  • Runtime Debugging - Provides tools for inspecting and troubleshooting the execution of the system on target hardware in real-time.
  • Framebuffer Graphics Drivers - Renders text, images, and graphical user interfaces using framebuffers and specialized graphics libraries.
  • Framebuffer Renderers - Writes visual data directly to a framebuffer or LCD using low-level rendering logic.
  • USB Interface Configuration - Supports the configuration of USB operational modes, including storage, communication, and composite device interfaces.
  • Custom OS Image Builders - Compiles a scalable execution environment for microcontrollers using build systems like Make or CMake to target specific hardware architectures.
  • Embedded Systems Debugging - Provides tools for stack overflow checks, core dumps, and hardware-assisted tracing on embedded architectures.
  • General Purpose Input Output Controllers - Provides interfaces for managing digital pin states and configurations for LEDs and buttons.
  • Industrial Control System Integrations - Integrates industrial controllers and messaging protocols like Modbus and SCPI to manage industrial hardware.
  • Non-Volatile Storage - Interfaces with FLASH, EEPROM, NVRAM, and SD/MMC cards to store and retrieve persistent data.
  • Peripheral Hardware Controllers - Provides APIs for managing a wide range of hardware peripherals, including ADC, SPI, and I2C interfaces.
  • MQTT Messaging Integrations - Provides MQTT protocol integration for lightweight pub-sub machine-to-machine communication.
  • Industrial Communication Libraries - Ships libraries implementing industrial protocols like CAN, Modbus, and DroneCAN for automation device communication.
  • Dynamic IP Address Management - Assigns and renews IP addresses for IPv4 and IPv6 using automated client requests.
  • Local Network Connectivity - Implements local network connectivity including DHCP acquisition and interface status monitoring for embedded devices.
  • CAN Bus Interfaces - Provides interfaces for transmitting and receiving data over the Controller Area Network (CAN) bus.
  • Modbus Protocol Libraries - Provides comprehensive libraries for interacting with the Modbus protocol as both a client and server.
  • Network Routing and Traffic Management - Provides mechanisms for directing data packets through network bridges and IP forwarding.
  • Network Protocol Implementations - Includes a library implementation of the CANopen standard for industrial device communication.
  • Network Service Implementations - Runs servers and clients for common communication protocols including SSH, FTP, and WebSockets.
  • Network Traffic Routing - Directs data packets between interfaces and hosts using routing tables and address translation.
  • Network Traffic Rules - Implements a rule-based system to filter and control network packet flow.
  • Inter-Processor Communication - Facilitates data exchange and synchronization between multiple processors using dedicated controllers.
  • Asymmetric Multi-Processing Frameworks - Implements a standardized interface to coordinate resource sharing and communication between disparate processor cores.
  • System Debugging - Performs low-level analysis of system failures using coredumps, critical section monitoring, and stack backtraces.
  • Dynamic Module Loading - Execute separately linked programs by connecting them to the base system code at runtime.
  • I/O Buffering - Implements intermediate memory buffers to optimize data transfer between drivers, networking, and applications.
  • Inter-Process Shared Memory - Provides low-level primitives for creating shared memory regions for high-performance communication between processes.
  • Interactive Shells - Provides a native shell environment for executing system commands and managing the device via a terminal interface.
  • Fixed-Size Memory Pool Managers - Implements fixed-size memory pool managers to provide deterministic allocation and avoid heap fragmentation.
  • Multiple Heap Instances - Allows the initialization and management of independent memory pools for different parts of an application.
  • Native Shells - Provides a native shell for executing utilities and managing the system from a terminal interface.
  • Network Interface Drivers - Implements drivers for Ethernet and other network hardware to enable system connectivity.
  • Demand Paging Mechanisms - Loads program segments into physical memory only when accessed to optimize RAM usage on constrained devices.
  • Physical Page Allocators - Implements management of raw physical memory frames for kernel and user-space usage in systems with an MMU.
  • System Configuration Interfaces - Allows adjustment of operational settings and hardware parameters to tailor the system to specific microcontroller requirements.
  • Runtime Symbol Resolution - Provides mechanisms for loading and resolving external symbols across compiled modules during program execution.
  • Dynamic Script Execution - Integrates language interpreters and runtimes to execute scripts and bytecode on embedded hardware without recompilation.
  • Embedded Script Execution - Runs code through embedded interpreters for multiple languages including Python, Lua, JavaScript, Forth, and BASIC.
  • Multi-Language Runtimes - Run applications written in various compiled and interpreted languages to support diverse development stacks.
  • Shell Script Execution - Invokes a shell interpreter to run sequences of commands, including loops and conditionals, to automate system tasks.
  • WebAssembly Runtimes - Executes WebAssembly binaries using lightweight micro-runtimes optimized for embedded environments.
  • Cryptographic Hash Generation - Generates secure hashes and HMACs using algorithms such as SHA-2 and MD5 to verify data integrity.
  • Cryptographic Operations - Provides standardized APIs for performing symmetric and asymmetric cryptographic operations.
  • Cryptography Libraries - Ships comprehensive libraries for SSL/TLS encryption, cryptographic hashing, and secure element control.
  • Network Traffic Filtering - Filters IP packets and translates network addresses to control and restrict network traffic for system security.
  • Asymmetric Algorithm Implementations - Handles digital signatures and encryption using asymmetric algorithms such as RSA and ECDSA.
  • Symmetric Encryption - Provides symmetric encryption and decryption using block and stream ciphers like AES and ChaCha20.
  • User Access Management - Handles user password files and authentication records to control system access.
  • Remote Command Execution - Allows the execution of specific programs or scripts on a distant machine via network protocols.
  • SSH and Telnet Remote Shells - Implements secure and plaintext remote command-line access via SSH and Telnet.
  • Backtrace Generation - Automatically generates call stacks from memory dumps to diagnose program crashes and processor faults.
  • Hardware Performance Benchmarking - Runs standardized benchmarks to measure the computational speed and efficiency of the hardware and software configuration.
  • Performance Measurement - Provides high-resolution timing and resource tracking to evaluate CPU, RAM, and filesystem performance.
  • Graphical User Interfaces - Draws windows, widgets, and visual elements on a screen using integrated libraries and window managers.
  • High-Level UI Components - Implements framed windows and toolbar logic through high-level window drawing operations.
  • Widget Libraries - Provides a C++ library for building and managing object-oriented graphical user interface widgets.
  • Terminal User Interfaces - Builds interactive keyboard-driven terminal interfaces using a standardized curses library.

Historique des stars

Graphique de l'historique des stars pour apache/nuttxGraphique de l'historique des stars pour apache/nuttx

Recherche par IA

Explorez plus de dépôts awesome

Décrivez vos besoins en langage naturel — l'IA classe des milliers de projets open source sélectionnés par pertinence.

Start searching with AI

Collections incluant Nuttx

Sélections manuelles où Nuttx apparaît.
  • Systèmes d'exploitation temps réel pour microcontrôleurs

Alternatives open source à Nuttx

Projets open source similaires, classés selon le nombre de fonctionnalités partagées avec Nuttx.
  • mit-pdos/xv6-publicAvatar de mit-pdos

    mit-pdos/xv6-public

    9,466Voir sur GitHub↗

    xv6 is a Unix-like educational operating system designed for teaching kernel concepts. It is implemented as an instructional kernel for x86 and RISC-V architectures, featuring a virtual memory manager and support for symmetric multiprocessing. The system is designed to demonstrate core OS principles through a simplified re-implementation of Unix Version 6. It provides a controlled environment for studying system calls, trap handling, and process lifecycles. Its capability surface covers process management, including scheduling and context switching, and memory management via page tables for

    C
    Voir sur GitHub↗9,466
  • alibaba/alios-thingsAvatar de alibaba

    alibaba/AliOS-Things

    4,620Voir sur GitHub↗

    AliOS-Things is a scalable operating system for internet-connected devices. It provides an embedded firmware framework and runtime for managing hardware peripherals, network connectivity, and secure data execution across diverse CPU architectures. The system includes an edge AI inference engine for processing audio and image patterns locally without cloud dependencies. It also features a cloud connectivity SDK for automated onboarding, remote diagnostics, and log reporting, alongside a scripting engine for executing high-level code on resource-constrained hardware. Connectivity is handled th

    C
    Voir sur GitHub↗4,620
  • torvalds/linuxAvatar de torvalds

    torvalds/linux

    237,355Voir sur GitHub↗

    The Linux kernel is a monolithic operating system core that manages hardware resources, memory, and process scheduling across diverse computing architectures. It provides a standardized, POSIX-compliant environment for application execution while maintaining a modular driver framework that allows for the dynamic loading and removal of hardware interfaces. The project is distinguished by its high-performance concurrency toolkit, which utilizes lockless synchronization primitives and read-copy-update mechanisms to manage shared data access in multi-core environments. It incorporates a comprehen

    C
    Voir sur GitHub↗237,355
  • redox-os/redoxAvatar de redox-os

    redox-os/redox

    16,054Voir sur GitHub↗

    Redox is a POSIX-compliant, microkernel-based operating system written entirely in Rust. By utilizing a memory-safe language for the kernel and all system components, the project eliminates common vulnerabilities such as buffer overflows and use-after-free errors. Its architecture relies on a minimal kernel that manages only essential hardware and process isolation, delegating all other system services to unprivileged user-space processes. The system distinguishes itself through a modular design where hardware drivers and system services run as independent user-space daemons, allowing them to

    Rustbsdfreebsdgnu
    Voir sur GitHub↗16,054
Voir les 30 alternatives à Nuttx→

Questions fréquentes

Que fait apache/nuttx ?

NuttX est un système d'exploitation temps réel (RTOS) conforme à POSIX, conçu pour les microcontrôleurs allant des architectures 8 bits aux 64 bits. Il fournit un environnement d'exécution déterministe avec un ordonnanceur de tâches temps réel et un noyau embarqué POSIX pour assurer une exécution de code portable sur diverses cibles matérielles.

Quelles sont les fonctionnalités principales de apache/nuttx ?

Les fonctionnalités principales de apache/nuttx sont : Embedded Real-Time Operating Systems, POSIX Interfaces, POSIX-Compliant Execution Environments, Board Support Packages, Hardware Abstraction Layers, Embedded Hardware Deployment, Hardware Porting Frameworks, Network Stacks.

Quelles sont les alternatives open-source à apache/nuttx ?

Les alternatives open-source à apache/nuttx incluent : mit-pdos/xv6-public — xv6 is a Unix-like educational operating system designed for teaching kernel concepts. It is implemented as an… alibaba/alios-things — AliOS-Things is a scalable operating system for internet-connected devices. It provides an embedded firmware framework… torvalds/linux — The Linux kernel is a monolithic operating system core that manages hardware resources, memory, and process scheduling… redox-os/redox — Redox is a POSIX-compliant, microkernel-based operating system written entirely in Rust. By utilizing a memory-safe… apache/incubator-nuttx — NuttX is a POSIX-compliant real-time operating system designed for resource-constrained embedded environments. It… s-matyukevich/raspberry-pi-os — This project is a bare-metal operating system developed for ARM64 architecture. It serves as a low-level…