FreeRTOS: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
Botcrux (discussione | contributi)
m Bot: Aggiungo template {{interprogetto}} (FAQ)
Nessun oggetto della modifica
 
(26 versioni intermedie di 19 utenti non mostrate)
Riga 1:
{{F|informaticasistemi operativi|giugno 2017|}}
{{Sistema operativo
| nome = FreeRTOS
| logo = Logo freeRTOS.png
| sviluppatore = Real Time Engineers Ltd.
| famiglia = Sistemi operativi real-time
|prima_versione_pubblicata = 0.1 <ref name="ReleaseHistory">{{cita web |url=https://www.freertos.org/History.txt|sito=FreeRTOS|lingua=EN|accesso=22 settembre 2018}}</ref>
| ultima_versione_pubblicata = 9.0.0
|data_prima_pubblicazione = 2003 <ref>{{cita web|url=https://www.freertos.org/open-source-software.html|titolo=A Better Type of Open Source|sito=FreeRTOS|lingua=EN|accesso=22 settembre 2018|urlarchivio=https://web.archive.org/web/20171027103458/http://www.freertos.org/open-source-software.html|dataarchivio=27 ottobre 2017|urlmorto=sì}}</ref>
| data_ultima_pubblicazione = 16 agosto 2016
| ultima_versione_pubblicata = 910.02.01
| tipo_kernel = [[Microkernel]]
| data_ultima_pubblicazione = 1613 agostomaggio 20162019 <ref name="ReleaseHistory"/>
| tipo_kernel = {{senza fonte|[[Microkernel]]}}
| piattaforme_supportate = [[Architettura ARM|ARM]] (ARM7, ARM9, [[ARM Cortex-M3|Cortex-M3]], [[ARM Cortex-M4|Cortex-M4]], [[ARM Cortex-A8|Cortex-A]]), [[Atmel AVR]], [[AVR32]], [[HCS12]], [[MicroBlaze]], [[Cortus]] (APS1, APS3, APS3R, APS5, FPF3, FPS6, FPS8), [[MSP430]], [[PIC (microcontrollore)|PIC]], [[Renesas Technology|Renesas]] [[Microprocessori H8S|H8/S]], [[SuperH]], RX, [[Architettura X86|x86]], [[Intel 8051#Related processors|8052]], [[Freescale ColdFire|Coldfire]], [[V850]], 78K0R, Fujitsu MB91460 series, Fujitsu MB96340 series, [[Nios II]], Cortex-R4, TMS570, RM4x
| stadio_sviluppo = Stabile
| licenza = [[licenza MIT|MIT open source license]]<ref name="DescrizioneUff">{{cita web |url=https://freertos.org/a00114.html|titolo=License Details|sito=FreeRTOS|lingua=EN|accesso=22 settembre 2019}}</ref>
| licenza = Modified [[GNU General Public License|GPL]]
| sito_web = [http://www.freertos.org Il sito di FreeRTOS.]
}}
'''FreeRTOS''' (Free Real-Time Operating System) è uno dei più popolari<ref>{{cita web|url=https://www.lynx.com/embedded-systems-learning-center/most-popular-real-time-operating-systems-rtos|titolo=WHAT ARE THE MOST POPULAR REAL-TIME OPERATING SYSTEMS?|anno=2019}}</ref> kernel di [[sistema operativo real-time]] utilizzato nei [[Sistema embedded|dispositivi embedded]]. È [[open source]] e distribuito secondo la licenza MIT.<ref name="DescrizioneUff"/>
'''FreeRTOS'''  è un popolare kernel di sistema operativo in real-time utilizzato nei [[Sistema embedded|dispositivi embedded]]. È distribuito sotto la licenza [[GNU General Public License|GPL]] con restrizioni supplementari ed eccezioni opzionali. Le restrizioni vietano l'analisi comparativa mentre l'eccezione consente agli utenti proprietari del codice di conservare il codice sorgente, mantenendo il kernel stesso in ''[[open source]]''. Quindi, in tal modo si facilità l'uso di FreeRTOS nelle applicazioni proprietarie.
 
== Implementazione ==
FreeRTOS è stato ideato per essere compatto e semplice da utilizzare. Il [[kernel]] è composto da solosoli tre file in [[linguaggio C]].  Per rendere il codice più leggibile, quindi facile da trasferire"portare" a nuove architetture, e da gestire, la maggior pensieriparte del sorgente è scritto in [[C (linguaggio)|C]] , ma, dove necessario, sono presenti varie funzioni in [[assembly]]  (soprattutto nelle architetture delle routine di pianificazioneschedulazione relative alle specifiche architetture).
 
FreeRTOS fornisce alcuni metodi per la creazione di [[Thread (informatica)|threads]]  o istruzioni multiple, [[Lock|mutexesmutex]], [[Semaforo (informatica)|semafori]] ande software [[temporizzatori|timer]]. LaPer modalitàle inapplicazioni [[ticklessa kernel]] èbasso utilizzataconsumo perè lepossibile applicazioni che richiedonoutilizzare una bassamodalità potenza[[tickless kernel]]. FreeRTOS  supporta e gestisce le priorità dei thread. LeI applicazioni che vengono utilizzate tramiteprogrammi FreeRTOS possono essere allocati in modo completamente allocatestatico. In alternativa gli oggetti RTOS possono essere allocati in modo dinamico con cinque schemi di assegnazioneallocazione previstipossibili:
 
FreeRTOS fornisce alcuni metodi per la creazione di [[Thread (informatica)|threads]] o istruzioni multiple, [[Lock|mutexes]], [[Semaforo (informatica)|semafori]] and [[temporizzatori]]. La modalità in [[tickless kernel]] è utilizzata per le applicazioni che richiedono una bassa potenza. FreeRTOS supporta e gestisce le priorità dei thread. Le applicazioni che vengono utilizzate tramite FreeRTOS possono essere completamente allocate. In alternativa gli oggetti RTOS possono essere allocati in modo dinamico con cinque schemi di assegnazione previsti:
* solo allocazione;
* allocazione e deallocazione con un semplice e rapido algoritmo;
* unaun algoritmo più complessacomplesso ma più veloce per la allocazione e la deallocazione conche fa uso di [[Coalescenza (informatica)|memoria coalescente]];
* un'alternativa alallo schema più complesso schema che comprendeusa la coalescenza della memoria, che consente ad un heap di interrompereessere frammentato moltein più aree di memoria;
* allocazioneuna e deallocazione di[[Libreria standard del C|libreria librerie in C]] di allocazione e deallocazione con protezione in mutua esclusione.
 
Non esiste nessuna delle funzioni più avanzate che si trovano in genere in sistemi operativi come [[Linux]] o [[Microsoft Windows]], come driver per dispositivi esterni, gestione avanzata della memoria, account utente e rete. LaL'enfasi qualitàviene delposta prodotto è invece definitapiuttosto dallasulla compattezza e dallasulla velocità di esecuzione e lavoro. FreeRTOS può essere considerato come una ''libreria di supporto ai thread,'' piuttosto che come un 'sistema operativo', anche se sono disponibili interfacce a riga di comando e addizionamentidegli diaddon astrazionecompatibili I[[POSIX]] /per Ol'astrazione comedegli POSIXI/O.
 
FreeRTOS implementa piùi thread, avendofacendo in modo che il programma host che richiamarichiami un metodo "thread tick" a brevi intervalli regolari. Il metodo del''thread tick thread'' commutaabilita lei attivitàtask ain secondabase dellaad prioritàuna eschedulazione dicon unopriorità schemaed dia pianificazioneround-robin. L'intervallo solitamentedi tick è solitamente compreso in un range tra 1/1000 ed 1/100 di secondo, eccettoinnescato inda casi diun interrupt derivantiproveniente dalda timerun dell'hardware.realtime Questoclock intervallohardware, spessoma viene variatospesso modificato per configurareadattarsi alla particolariparticolare applicazioniapplicazione.
 
Il download contienedi unaFreeRTOS contiene configurazioni preimpostata,preimpostate unae dimostrazioneprogrammi demo per ogni portaport di architettura e ilper ogni [[compilatore]], permettendonepermettendo un rapido utilizzo. Sul sito  [http://www.freertos.org FreeRTOS.org] è presente una vasta sezione di documentazione e molti tutorial (manuali aggiuntivi e altro materiale sono disponibili a pagamento), così come dettagli sulla struttura dell'RTOS.
 
== Caratteristiche principali ==
* Esistono manuali in PDF e guide di riferimento gratuiti;<ref>{{cita web |url=https://freertos.org/Documentation/RTOS_book.html |titolo=FreeRTOS Documentation |sito=FreeRTOS |lingua=EN |accesso=22 settembre 2019 }}</ref><ref>{{cita web |url=https://freertos.org/wp-content/uploads/2018/07/161204_Mastering_the_FreeRTOS_Real_Time_Kernel-A_Hands-On_Tutorial_Guide.pdf |titolo=Mastering the FreeRTOS Real Time Kernel-A Hands-On Tutorial Guide Documentation |formato=pdf |lingua=EN |accesso=22 settembre 2019 |dataarchivio=22 settembre 2019 |urlarchivio=https://web.archive.org/web/20190922063811/https://freertos.org/wp-content/uploads/2018/07/161204_Mastering_the_FreeRTOS_Real_Time_Kernel-A_Hands-On_Tutorial_Guide.pdf |urlmorto=sì }}</ref>
* Esistono manuali in PDF e guide di riferimento gratuiti;
* Minima occupazione di memoria, basso [[overhead]], e veloce esecuzione dei programmi;
* Modalità [[Tickless kernel|tickless]] opzionale per applicazioni che richiedono unabasso bassa potenzaconsumo;
* È ideale sia per gli hobbisti alle prime armi con i sistemi operativi che per gli sviluppatori professionisti che creano prodotti commerciali;
* Lo schedulatore può essere configurato sia per le operazioni preventivepreemptive che per le cooperative;
* Supporta le coroutine (la coroutine in FreeRTOS è molto semplice ed è formata da processi leggeri che hanno un limitato impatto d'uso delladello [[stack]])
* Supporto tracciaal tracing del programma, tramite macro generiche di traccia. Strumenti come Tracealyzer (cioè FreeRTOS + Trace, fornite dal partner Percepio di FreeRTOS) possono quindi registrare e visualizzare il comportamento di runtime dei sistemi basati su FreeRTOS. Ciò include la pianificazione delle attività e le chiamate del kernel per operazioni di [[Semaforo (informatica)|semaforo]] e [[Coda (informatica)|coda]]. Tracealyzer è uno strumento commerciale, ma è anche disponibile in una versione libera a funzionalità limitata. La versione completa ha un prezzo di 1066 € (US$1,200).
 
== Architetture supportate ==
 
== Progetti correlati ==
 
=== SafeRTOS ===
SafeRTOS è stato costruito come prodotto complementare al FreeRTOS, con funzionalità in comune ma designato per conferire maggiore sicurezza e stabilità. Quando FreeRTOS venne sottoposto all'[[HAZOP|analisi di pericolo e operabilità]], si verificarono condizioni di instabilità e debolezza causati dall'uso intensivo che ne venne fatto da un utente e vari guasti dell'hardware all'interno del modello funzionale. Per risolvere il problema, è stato identificato l'[[Application programming interface|API]] difettoso ed è stato corretto.
 
SafeRTOS è stato sviluoppatosviluppato dalla ''WITTENSTEIN'', che produce sistemi ad elevata integrazione, in collaborazione con la ''Real Time Engineers Ltd'', sviluppatore principale del progetto FreeRTOS. Sia ''SafeRTOS'' che FreeRTOS condividono lo stesso algoritmo di schedulazione, hanno simili [[Application programming interface|API]], e altre caratteristiche in comune, ma sono stati sviluppati con obiettivi differenti. 
SafeRTOS è stato sviluppato interamente in [[C (linguaggio)|C]], al fine di uniformarsi con i requisiti richiesti dalla [[certificazione]] [[IEC61508IEC 61508]].<ref name="SafeRTOS">{{cita web|url=https://www.highintegritysystems.com/safertos/|titolo=Pre-Certified Safety RTOS |sito=HighIntegritySystems |lingua=EN |accesso=22 settembre 2019}}</ref>
 
SafeRTOS è conosciuto per la sua capacità, unica tra i sistemi operativi, di risiedere esclusivamente nella [[Read Only Memory|memoria di sola lettura]] nei chip di un microcontrollore, consentendo così la pre-certificazione di sistemi hardware e software completi all'[[IEC61508IEC 61508]] o ad altri [[norma tecnica|standard]] operativi di sicurezza ed affidabilità. Quando poi viene implementato nella memoria hardware, il codice SafeRTOS può essere utilizzato solo nella sua configurazione originale, pertanto i test di certificazione delle applicazioni che utilizzano questo sistema operativo non devono riesaminare questa parte durante il processo di certificazione funzionale.
 
SafeRTOS è incluso nella [[Read Only Memory|ROM]] di alcuni microcontrollori Stellaris della [[Texas Instruments Incorporated|Texas Instruments]]. È possibile implementare SafeRTOS senza dover acquistare il codice sorgente. In questo campo di applicazione, per mappare le funzioni API nella loro posizione all'interno della ROM viene usato un semplice file ''header ''in [[C (linguaggio)|C]]. È  consigliabile l'utilizzo della ROM perché il codice che contiene il file in questione non è modificabile - scartando la possibilità che un utente erroneamente acceda al codice e lo modifichi - e garantisce che la versione originale testata rimanga identica per tutto il periodo di utilizzo.  Non sarà necessario riesaminare il codice dell'applicazione in modo che si evolva attorno ad esso. Il test del kernel complesso non più viene effettuato in quanto le prove di certificazione già approvate, inclusi il piano di prova, il codice e i risultati, possono essere acquistati "fuori dal piano".
 
=== OpenRTOS ===
Un altro progetto relativo al FreeRTOS, con un codice identico ma differente per licenza e prezzo<ref name="DescrizioneUff"/>, è OpenRTOS creato dall'azienda  ''WITTENSTEIN Aerospace and Simulation Ltd''<ref name="OpenRTOS">{{cita web|url=https://www.highintegritysystems.com/openrtos/|titolo=A New Approach To Embedded Software |sito=HighIntegritySystems |lingua=EN|accesso=22 settembre 2019}}</ref>. I termini della licenza commerciale per OpenRTOS sopprimono ogni riferimento alla licenza GPL. Per esempio, una delle condizioni per l'utilizzo del prodotto per applicazioni commerciali pretende che l'utente dev'essere consapevole dell'uso di OpenRTOS e il relativo codice sorgente, ma non il codice dell'applicazione del prodotto commerciale, pertanto dev'essere fornito dietro richiesta.OpenRTOS è un prodotto commerciale disponibile solo tramite acquisto e non ha requisito obbligatorio di licenza; acquistandola dietro pagamento però si ha la possibilità di accedere alla documentazione integrale di supporto tecnico.
==Note==
<references/>
 
== Altri progetti ==
{{interprogetto}}
 
== Collegamenti esterni ==
{{Portale|Informatica}}
* {{Collegamenti esterni}}
 
{{Portale|Informaticainformatica}}
 
[[Categoria:Sistemi operativi liberi]]