Domanda

Un modo per vederlo è che Linux embedded inizia con Linux desktop e elimina le parti non necessarie per i sistemi embedded (è proprio vero?), mentre eCos è progettato da zero per i sistemi embedded.

Ora, supponiamo un processore ARM, probabilmente ARM 7: le prestazioni fanno la differenza?In realtà stiamo parlando di un sistema a carico molto basso, massimo 500 transazioni al giorno.

Eventuali vantaggi dell'uno rispetto all'altro (o FreeRTOS, ecc.)?Stabilità, maturità, prestazioni, strumenti di sviluppo e qualcos'altro?

Tutto quello che riesco a pensare è che se lo sono certo che non eseguirò mai il porting su un altro sistema operativo, quindi se scelgo Linux incorporato, non ho bisogno di un livello di astrazione del sistema operativo per consentirmi di eseguire test unitari sull'host (box Linux desktop).

Qualche pensiero o commento?Grazie.

È stato utile?

Soluzione

Ogni dispositivo su cui ho installato Linux è partito da zero e non era una versione ridotta di qualche distribuzione.

eCos e Linux hanno obiettivi diversi.Linux è concepito per essere un sistema simile a Unix completo di tutte le funzionalità e di conseguenza non è così preoccupato dei requisiti minimi di sistema.eCos è un sistema operativo in tempo reale progettato per sistemi che spesso hanno risorse limitate.C'è molta sovrapposizione tra i due sistemi operativi e in molte situazioni entrambi funzioneranno ugualmente bene.

Nella mia esperienza, se il tuo sistema ha le risorse e i tuoi requisiti non sono banali, lo sviluppo sarà più veloce con Linux.È più facile trovare sviluppatori Linux competenti che sviluppatori RTOS, gli strumenti sono più economici, i processi sono protetti gli uni dagli altri, si tende ad avere una migliore visibilità del sistema in esecuzione, ecc.

Un'alternativa (migliore, secondo me) a eCos è RTEMS (http://www.rtems.com).È in circolazione da più tempo e l'ultima volta che ho controllato, supportava più architetture di eCos.Ha anche un BSP per PC e funziona con qemu per l'emulazione.

Altri suggerimenti

Non vi è alcun vantaggio reale nel mettere Linux su un ARM7 IMO;ARM7 non ha MMU e la protezione della memoria è il motivo principale per utilizzare un sistema operativo come Linux.uClinux funzionerà su target senza MMU, ma hai perso uno dei motivi più convincenti per usare Linux e hai ancora bisogno di enormi risorse di memoria (un flash da 4 MB, 16 MB di RAM sarebbero un minimo ragionevole).

Molti dispositivi ARM7 non dispongono di bus di memoria esterni per collegare tanta memoria e, su chip flash e RAM, in genere vanno da 32K a 1M a seconda del dispositivo.

Linux non è intrinsecamente "in tempo reale".Per la funzionalità in tempo reale è spesso abbinato a un kernel in tempo reale, dove Linux viene eseguito essenzialmente come attività inattiva o su obiettivi con funzionalità come macchina virtuale separata.Quindi, se è necessaria una risposta deterministica e rapida agli eventi esterni, avrai bisogno di un RTOS come eCOS.

eCOS è eccezionale in quanto dispone di un ampio ecosistema di funzionalità aggiuntive e supporto per dispositivi che rivaleggia con la maggior parte delle offerte commerciali.Tuttavia, qualcosa come FreeRTOS è probabilmente più facile da "creare", ma non fornisce altro che uno scheduler di thread e meccanismi di comunicazione tra processi.Elementi come un file system o TCP/IP devono provenire da terze parti (sebbene esistano soluzioni ugualmente piccole e gratuite adatte anche per sistemi embedded).

Se utilizzi un kernel semplice come FreeRTOS o uC/OS-III, non avrai perso troppo tempo, quindi l'investimento non è un ostacolo all'utilizzo di qualcos'altro la prossima volta.Linux d'altra parte potrebbe scoraggiarti dall'usare qualcosa di più piccolo e più mirato la prossima volta, e i progetti successivi potrebbero costare molto più del necessario solo per supportare il tuo sistema operativo preferito.

Linux incorporato == Linux nel 99% dei casi.Basta configurare il kernel in modo diverso.

La più grande differenza in termini di prestazioni è che con eCos puoi, a seconda della tua implementazione/configurazione, avere un tempo di risposta previsto mentre con Linux sei in balia del controller di interruzione.

Linux ha una base di fan molto più grande di eCos, quindi più aiuto per lo sviluppo, e supporta un'ampia gamma di CPU.Inoltre, a seconda dei driver che desideri, puoi compilare ed eseguire il tuo programma su un PC con Linux.

Linux può rilevare blocchi/deadlock e inviare risposte/riavvii automatici per mantenere un'elevata disponibilità del sistema.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top