NuttX: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
Sito Web
 
(119 versioni intermedie di 51 utenti non mostrate)
Riga 1:
{{Sistema operativo
| nome = NuttX
| sviluppatore = Gregory Nutt
| famiglia = [[Sistema operativo real-time]]
|ultima_versione_pubblicata = 12.10.0
| modello_sorgente = [[Open Source]]
|data_ultima_pubblicazione = {{data|07|07|2025}} <ref>{{Cita web|url=https://nuttx.apache.org/releases/12.10.0/|titolo=NuttX-12.10.0 Released|accesso=07 luglio 2025}}</ref>
| versione_ultimo_rilascio = 7.11 stabile
| tipo_kernel = [[RTOS]], [[Microkernel]]
| data_ultimo_rilascio = 13 agosto 2015
| piattaforme_supportate = [[ARMArchitettura architectureARM|ARM]], [[Atmel AVR|AVR]], [[AVR32]], [[HCS12]], [[LatticeMico32|LM32]], [[MIPS architecture|MIPS]], [[RISC-V]], [[SuperH]], [[Tensilica|Xtensa XL6]], [[Zilog Z80|Z80]]
| tipo_kernel = [[RTOS]], [[Microkernel]]
|tipologia_licenza =
| licenza = [[BSD_licenses|BSD]] (con qualche applicazione [[GPL]] e [[LGPL]])
|licenza = [[Apache License 2.0]]
| piattaforme_supportate = [[ARM architecture|ARM]], [[Atmel AVR|AVR]], [[AVR32]], [[HCS12]], [[SuperH]], [[Zilog Z80|Z80]]
| stadio_sviluppo = stabile
| sito_web = httphttps://www.nuttx.apache.org/
}}
 
'''NuttX''' è un [[sistema operativo real-time]] (RTOS) [[Free and Open Source Software]] (FOSS) molto compatto ed efficiente progettato per applicazioni [[Sistema embedded|embedded]]. Il sistema supporta diverse architetture è scalabile per microcontrollori da 8-bit a 32 bit, gli standard di riferimento principali in NuttX sono gli standard [[POSIX]] e [[ANSI]]. Ulteriori API standard da Unix e altre comuni RTOS (come VxWorks ) vengono adottate per funzionalità non disponibili in questi standard o per funzionalità che non sono appropriate per ambienti profondamente integrati, come fork ().
 
NuttX è stato pubblicato nel 2007 da Gregory Nutt sotto la licenza [[Licenze BSD|BSD]]. Da dicembre 2019 è entrato a far parte del progetto Incubator di Apache Software Foundation, data in cui l'intero progetto ha iniziato a essere distribuito sotto la [[Apache License]] 2. Da novembre 2022 Apache NuttX è passato da progetto Incubator a progetto di primo livello <ref>{{Cita web|url=https://news.apache.org/foundation/entry/the-apache-software-foundation-announces-apache-nuttx-as-a-top-level-project|titolo=NuttX-11.0.0}}</ref> (TPL).
NuttX è stato rilasciato nel 2007 da Gregorio Nutt sotto la licenza [[BSD_licenses|BSD]].
 
Il [[Kernel]] supporta una varietà di meccanismi come: [[multithreading]], timer software, [[Semaforo (informatica)|semafori]], [[mutex]], [[Monitor_Monitor (sincronizzazione)|variabili condizionali]], messaggi, [[evento (informatica)|sorgenti di evento]], code, I/O sincrono o asincrono con possibilità di timeout.
 
Il [[Kernel]] supporta una varietà di meccanismi come: [[multithreading]], timer software, [[Semaforo (informatica)|semafori]], [[mutex]], [[Monitor_(sincronizzazione)|variabili condizionali]], messaggi, [[evento (informatica)|sorgenti di evento]], code, I/O sincrono o asincrono con possibilità di timeout.
== Caratteristiche principali ==
* Conforme agli standard.
* Task Management Core.
* Design modulare.
* Completamente preemptible.
* Naturalmente scalabile.
* Altamente configurabile.
* Facilmente estendibile a nuove architetture di processori, l'architettura SoC, o architetture board.
* FIFO, round-robin, e “sporadic” scheduling.
* In tempo reale, deterministico, con il supporto per l'ereditarietà prioritario.
* Operazione tickless.
* Controlli POSIX / ANSI-like, code dei messaggi, counting semaphores, clocks/timers, segnali, pthreads, variabili di ambiente, filesystem.
* VxWorks-like gestione delle attività e timer watchdog.
* Socket BSD.
* Estensioni per la gestione di prelazione.
* Attività facoltative con ambienti di indirizzo (Processi).
* Configurazioni di memoria: (1) Flat embedded build, (2) Protected build con MPU, e (3) Kernel build with MMU.
* On-demand paging.
* Log di sistema.
 
== Piattaforme supportate ==
* [[ARMArchitettura architectureARM|ARM]]
** [[ARM7]]TDMI (TI TMS320 C6571C5471, Calypso, MoxART, NXP LPC214x, LPC2378, STMicro STR71x)
** [[ARM9]]20T (Freescale i.MX1)
** [[ARM9]]26EJS (TI DM320, NXP LPC31xx)
** [[ARM Cortex-A]]5 (Atmel SAMA5D2, SAMA5D3, SAMA5D4)
** [[ARM Cortex-A]]8 (Allwinner A10)
** [[ARM Cortex-M]]0A9 (nuvoTon NUC120, NXP/Freescale KL25Z, KL26Z, Atmel SAMD20/21, SAML21i.MX6)
** ARM Cortex-R4/R4F (TI TMS570, Samsung Artik)
** [[ARM Cortex-M]]3 ([[STMicroelectronics|ST Micro]] [[STM32]] F1/F2/F3, TI/Stellaris LM3S, NXP LPC17xx, Atmel SAM3U/3X, SiliconLabs EFM32)
** [[ARM Cortex-M]]40 (with/withoutnuvoTon floatingNUC120, pointNXP/Freescale unit:KL25Z, ST Micro STM32 F4KL26Z, TI/StellarisAtmel LM4FSAMD20/TM4C21, NXP LPC43xxSAML21, FreescaleST KinetisMicro K40STM32 F0/L0/60G0, AtmelRaspberry SAM4C/4E/4S/4LPi RP2040)
** [[ARM Cortex-M]]73 (Atmel SAMV7, [[STMicroelectronics|ST Micro]] [[STM32]] F1/L1/F3, TI/Stellaris LM3S, TI CC13x0, NXP LPC17xx, Atmel SAM3U/3X, SiliconLabs F7EFM32)
** [[ARM Cortex-M]]4 (with/without floating point unit: ST Micro STM32 F3/F4/L4/L4+, TI/Stellaris LM4F/TM4C, TI CC13x2, NXP LPC40xx/LPC43xx/LPC54xx, Freescale Kinetis K20/K28/K40/60/64/66, Atmel SAM4C/4E/4S/4L, Infineon XMC4xxx, Nordic NRF52xxx, Sony CXD56xx/Spresense)
** [[ARM Cortex-M]]7 (Atmel SAMV71/SAME70, ST Micro STM32 F7/H7, NXP i.MX RT)
* [[Atmel AVR]]
** Atmel 8-bit AVR (AT90USB, ATmega)
** [[AVR32]]
* Freescale [[M68HCS12]]
** [[HCS12]]
** [[Freescale_Semiconductor#Kinetis]] KL25Z
* Intel
** [[Intel 8052|80c52]]
** [[X86|80×86]]
* [[architettura MIPS|MIPS]]
* [[PIC microcontroller|MicroChip PIC32MX]] ([[MIPS architecture|MIPS]])
** MicroChip PIC32MX (MIPS32 24Kc)
** MicroChip PIC32MZ (MIPS32 M14K)
* Misoc
** LM32 (Qemu)
** Minerva (Verilator)
* OpenRISC
** mor1kx
* Renesas/Hitachi
** Renesas/Hitachi [[SuperH]]
** Renesas M16C/26
* [[ZilogRISC-V]]
** SiFive FE310 (RV32IM)
** Zilog Z16F
** Kendryte K210 (RV64GC)
** Enjoy Digital LITEX (RV32IMA)
** NEXT RISC-V NR5Mxx (RV32IM)
** GreenWaves GAP8 (RV32IM)
** BouffaloLab BL602 (RV32IMFC)
** Espressif Systems ESP32-C3 (RV32IMC)
* [[Tensilica|Xtensa]]
** Expressif Systems ESP32 (LX6)
** Expressif Systems ESP32-S2 (LX7)
** Expressif Systems ESP32-S3 (LX7)
** [[HCS12ZiLOG]]
** Zilog Z16F ZNeo
** [[Zilog eZ80]] Acclaim!
** [[Z8 Encore!|Zilog Z8Encore!]]
** [[Zilog Z80]]
 
 
== File system ==
{{T|inglese|informatica|aprile 2023}}
* Piccolo filesystem in memoria, root pseudo-file-system.
* Virtual File System (VFS).
* Mount-able volumes. Bind mountpoint, filesystem, and block device driver.
Riga 60 ⟶ 97:
* NXFFS. Il piccolo sistema di file flash wear-leveling NuttX.
* SMART. File system FLASH da Ken Pettit.
* SPIFFS. FLASH file system da Peter Anderson.
* LittleFS. FLASH file system da ARM mbed.
* RomfsROMFS FileSystemfile system supporto.
* CROMFS file system support (compressed).
* BINFS pseudo-file system support.
* Driver generico per SPI-based MMC / SD / SDHC card.
* Romfs FileSystem supporto.
* Un Binary Loader con il supporto per i seguenti formati:
Separato linked ELF modules.
Separato linked NXFLAT modules. NXFLAT è un formato binario che può essere XIP da un file system.
* PATH di supporto variabile.
* Trasferimenti di file via TFTP e FTP (get e put), HTML (wget), e [[Zmodem]] (sz e rz).
* Intel conversioni HEX.
 
Riga 72 ⟶ 113:
* Libreria C standard pienamente integrata nel sistema operativo
* Include il supporto in virgola mobile tramite una libreria matematica standard
* Add-on uClibc++ modulo fornisce libreria standard C++ supporta iostreams, stringhe, STL, RTTI, eccezioni, ecc. (LGPL)
 
== Networking ==
* Supporto di più interfaccieinterfacce di rete; supporto di più link layer
* IPv4, IPv6, TCP / IP, UDP, ARP, ICMP, ICMPv6, IGMPv2 and MLDv1/v2 (client) stacks.
* Stream e datagram sockets.
* Raw socket e local, supporto Unix ___domain socket.
Riga 100 ⟶ 141:
 
== Supporto USB ==
 
=== Supporto per host USB ===
* Architettura host USB per driver di controller host USB e driver di classe USB dipendenti dal dispositivo.
Riga 115 ⟶ 155:
* Framebuffer driver.
* LCD driver per entrambi i display LCD paralleli e SPI OLED.
* FTDI/Bridgetek FT800 e FT801 GUI drivers.
* LittlevGL framebuffer driver.
* VNC Server.
* NX Graphics Subsystem: Libreria grafica, sistema a finestre e supporto font funziona sia con framebuffer o driver LCD.
* NuttX Widget: [4] Una interfaccia grafica scritta in conservatrice C++ che si integra con la grafica NX.
* NuttX Window Manager: UnaUn piccolo window manager basato sul NX Graphics Subsystem e widget NuttX.
 
== Progetti che utilizzano NuttX ==
Riga 124 ⟶ 167:
* Pixhawk:. Un avanzato, User-Friendly Autopilota.
* OsmocomBB utilizza NuttX per sviluppare un sistema operativo per telefoni cellulari.
* Motorola Moto Z.
* Sony sta usando NuttX nei loro processori audio.
* Sony sta usando NuttX nella scheda di sviluppo Spresense
* Samsung TizenRT basato su NuttX RTOS.
 
== Note ==
<references />
 
== Collegamenti esterni ==
*[{{cita web|http://www.nuttx.apache.org |NuttX homepage]}}
* [https://lists.apache.org/list.html?dev@nuttx.apache.org Official NuttX user group]
* [https://groups.google.com/forum/#!forum/nuttx vecchio NuttX user group (Google Groups)]
* [http://www.nx-engineering.com NX-Engineering is a consulting created by Gregory Nutt to give support to companies using NuttX] {{Webarchive|url=https://web.archive.org/web/20160613082639/http://www.nx-engineering.com/ |date=13 giugno 2016 }}
 
{{Portale|informatica}}
 
[[Categoria:SoftwareSistemi real-timeoperativi liberi]]
[[Categoria:Sistemi operativi]]
[[Categoria:Sistemi operativi real-time]]
[[Categoria:Sistemi operativi embedded]]