Linux Embedded un pinguino piccolo così



Documenti analoghi
Software Open Source per sistemi embedded

Network Monitoring. Introduzione all attività di Network Monitoring introduzione a Nagios come motore ideale

Informatica di base. Hardware: CPU SCHEDA MADRE. Informatica Hardware di un PC Prof. Corrado Lai

Seminari Acmesystems. NerInformatica. Relatore : Luciano Neri. Ingegnere libero professionista Ordine degli Ingegneri di Vicenza

Calcolatori Elettronici A a.a. 2008/2009

Sistemi embedded un dispositivo incapsulato progettato per una determinata applicazione

Marco Cesati Dipartimento di Ingegneria Civile e Ingegneria Informatica Università degli Studi di Roma Tor Vergata

Lezione E5. Sistemi embedded e real-time

Il computer: primi elementi

Input/Output. Moduli di Input/ Output. gestiscono quantità di dati differenti a velocità diverse in formati diversi. n Grande varietà di periferiche

Corso di Sistemi di Elaborazione A.A. 2008/2009

Virtualizzazione con KVM. Reggio Emilia - Linux Day 2014 Stefano Strozzi KVM

Vari tipi di computer

Presentazione di virtual desktop client + LTSP server

I componenti di un Sistema di elaborazione. CPU (central process unit)

Il Sistema Operativo. Di cosa parleremo? Come si esegue un programma. La nozione di processo. Il sistema operativo

Hardware di un Computer

Software. Algoritmo. Algoritmo INFORMATICA PER LE DISCIPLINE UMANISTICHE 2 (13042)

Embedded Linux Introduzione

Applicativo SBNWeb. Configurazione hardware e software di base di un server LINUX per gli applicativi SBNWeb e OPAC di POLO

Il sistema di I/O. Hardware di I/O Interfacce di I/O Software di I/O. Introduzione

Macchine Virtuali. Docente: Fabio Tordini

Lezione 4 La Struttura dei Sistemi Operativi. Introduzione

Prestazioni CPU Corso di Calcolatori Elettronici A 2007/2008 Sito Web: Prof. G. Quarella prof@quarella.

Software di sistema e software applicativo. I programmi che fanno funzionare il computer e quelli che gli permettono di svolgere attività specifiche

Laureando: Damiano Vittor. Relatore: Dott. Ing. Massimiliano Nolich

Definizione Parte del software che gestisce I programmi applicativi L interfaccia tra il calcolatore e i programmi applicativi Le funzionalità di base

LLinux nelle Console da gioco

Introduzione alle tecnologie informatiche. Strumenti mentali per il futuro

Architettura hardware

Arduino UNO. Single board microcontroller

Architetture Informatiche. Dal Mainframe al Personal Computer

Architetture Informatiche. Dal Mainframe al Personal Computer

Piano Nazionale di Formazione degli Insegnanti sulle Tecnologie dell'informazione e della Comunicazione. Percorso Formativo C1.

introduzione I MICROCONTROLLORI

Software relazione. Software di base Software applicativo. Hardware. Bios. Sistema operativo. Programmi applicativi

Architettura di un sistema operativo

Collegamento al sistema

Prototipazione GNU/Linux-Arduino

Approccio stratificato

Dr. Andrea Niri aka AndydnA ANDYDNA.NET S.r.l.

The Onion PC. Virtualizzazione strato dopo strato

Virtualizzazione di macchine Linux tramite XEN

Valutazione delle Prestazioni. Valutazione delle Prestazioni. Architetture dei Calcolatori (Lettere. Tempo di risposta e throughput

Il sistema di elaborazione Hardware e software

Struttura del Calcolatore Corso di Abilità Informatiche Laurea in Fisica. prof. Corrado Santoro

I sistemi di elaborazione: situazione attuale

Corso di Informatica

Riferimento rapido per l'installazione SUSE Linux Enterprise Server 11

Indice generale. Introduzione...xiii. Breve storia di Raspberry Pi...1. Fuori dalla scatola...5

Dispensa di Informatica I.1

VIRTUALIZZAZIONE LUG - CREMONA. Linux Day - 25 Ottobre 2008

Il Sistema Operativo (1)

Introduzione ecos. Agenda. Giovanni Perbellini

Sistema di Gestione dei Contenuti Multimediali

Esempio: aggiungere j

Il sistema di elaborazione

VMware. Gestione dello shutdown con UPS MetaSystem

Come funziona un sistema di elaborazione

SISTEMI DI ELABORAZIONE DELLE INFORMAZIONI

Scienze del computer. Cliente. Funzioni del computer. Problema. Teorie. Ingegneria del Software. Strumenti e Tecniche per Risolvere il problema

Introduzione ai sistemi operativi

La gestione di un calcolatore. Sistemi Operativi primo modulo Introduzione. Sistema operativo (2) Sistema operativo (1)

ISTVAS Ancona Introduzione ai sistemi operativi Tecnologie Informatiche

Dynamic 07 -Software per la lettura ottica e data capture. G.Q.S. Srl Global Quality Service Via Bernini, 5/7 Corsico (MILANO)

Prima Esercitazione. Unix e GNU/Linux. GNU/Linux e linguaggio C. Stefano Monti smonti@deis.unibo.it

Coprocessore di Comunicazione Ethernet 2500-ECC1

Introduzione ai Sistemi Operativi

Microcontrollori. Elettronica dei Sistemi Programmabili A.A

Tecnico Hardware & Sistemistica

Linux a Scuola. Rete LTSP (Linux Terminal Server Project) Relatore: Ross

RETI E SISTEMI INFORMATIVI

Virtualizzazione VirtualBox su Host Windows

Riferimento rapido per l'installazione SUSE Linux Enterprise Server 11 SP1

SISTEMI E DISPOSITIVI EMBEDDED

Sistemi Operativi (modulo di Informatica II) Sottosistema di I/O

VirtualBox. Eseguire altri sistemi operativi dentro Linux. Stefano Sanfilippo. POuL. 28 ottobre 2013

Elettronica dei Sistemi Programmabili

Sistemi Operativi. Introduzione UNICAL. Facoltà di Ingegneria. Domenico Talia A.A

Corso di Informatica

MODULO 02. Iniziamo a usare il computer

Linux lo installo a 32 o 64 bit? (teoria e pratica)

Organizzazione Monolitica

Tecnologia dell Informazione

Implementazione di sistemi real time

CAPITOLO 5 - Sistemi Operativi Moderni

Intel One Boot Flash Update Utility Guida dell utente

INTRODUZIONE AI SISTEMI EMBEDDED

Memoria Secondaria o di Massa

Creare una Rete Locale Lezione n. 1

Introduzione all'architettura dei Calcolatori

LINUX. Che cos'e` un sistema operativo?

Livello logico digitale. bus e memorie

Come valutare e scegliere un Sistema Operativo Embedded

Robotica di servizio su piattaforma Linux. relatore: Alessandro Budai con la collaborazione dello SmartLab (

INFORMATICA. Il Sistema Operativo. di Roberta Molinari

L informatica INTRODUZIONE. L informatica. Tassonomia: criteri. È la disciplina scientifica che studia

Porting su architettura ARM Marvell 88F6281 ed analisi comparativa delle patch real-time RTAI e Xenomai per il kernel Linux

CONTROLLO NUMERICO Z32

CdL in Medicina Veterinaria - STPA AA

Transcript:

Linux Embedded un pinguino piccolo così Fabrizio Vacca fabrizio.vacca@microc.it

Agenda Introduzione Sistemi embedded: hardware Sistemi embedded: software Piccola panoramica di progetti Open Source DEMO

Introduzione Spero proprio non siate già piazzati così...

I sistemi embedded (qualunque cosa essi siano!) hanno guadagnato negli ultimi anni una vasta fetta di mercato + 64 % http://linuxdevices.com/news/ns9103141896.html Introduzione (seria)

Introduzione (seria) Situazione nel 2004

Nel 2007 Linux è il sistema operativo più il diffuso su sistemi embedded http://www.linuxdevices.com/articles/at7065740528.html Introduzione (seria)

... ecco invece la situazione del mercato embedded dal punto di vista HW http://www.linuxdevices.com/articles/at7065740528.html Introduzione (seria)

Riflessione (introduttiva) Mercato embedded un mercato che cresce del 64% in 5 anni un mercato in cui Linux detiene quasi il 50% dello share secondo la VDC Research il mercato embedded crescerà anche nei prossimi anni malgrado la stagnazione economica Servono strumenti per supportare la crescita! http://www.vdcresearch.com

Legge di Moore (digressione HW!) La densità dei transistor per unità di area, integrabili su un singolo circuito integrati, raddoppia ogni due anni P4 P3 8086 Pentium

Legge di Moore: impatto visuale Intel 4004 (1971) Intel Pentium 4 (2000) 2300 transistor / 108 khz 42 M transistor / 1.5 GHz

Sfide... 3G Algorithms complexity for wireless 2G CPU Performance (~ Moore s Law) Battery capacity 1G

Sistemi embedded: HARDWARE Come definirlo? Chiamiamo sistema embedded ogni sistema di elaborazione in cui: Le interazioni uomo macchina sono molto più limitate di quelle di un tradizionale sistema di elaborazione; Le applicazioni sono generalmente non installabili o comunque scarsamenre flessibili; Il sottosistema di I/O implica una immersione del sistema (no tastiera / video convenzionali)

Costruire un sistema embedded Ovviamente dal punto di vista software! Boot loader Kernel Applicativi

Costruire un sistema embedded (II) Quali strumenti servono? ovviamente un sistema di sviluppo (host) Linux (preferibile) o Cygwin cross compiler per sistema target (embedded) parecchia pazienza...

Cross compiler Compilatore C che funziona sulla macchina ospite (host) e produce codice per il sistema embedded (target) Si usa quando il sistema target è troppo lento o troppo povero di risorse per essere in grado di eseguire un compilatore C

Cross compiler come procurarselo Essenzialmente due possibilità costruirselo from the scratch - laborioso - controllo sulla toolchain ottenuta - http://kegel.com/crosstool - http://gcc.gnu.org/wiki/building%20cross%20toolchains%20with%20gcc procurarsi una toolchain precostruita - grande varietà di versioni di gcc + libc - http://www.codesourcery.com

Boot loader Primo programma caricato all'accensione del sistema embedded Oltre al semplice caricamento del sistema operativo si occupa di: system test inizializzazione delle periferiche gestione upgrade OS in flash 2 progetti Open Source per embedded Das U Boot ( http://sourceforge.net/projects/u boot ) Redboot ( http://sourceware.org/redboot ) GRUB (! )

Kernel E' possibile scegliere tra il 2.6, 2.4 o addirittura il vecchio 2.0 Esistono vari punti di partenza duri e puri: kernel.org uclinux o Snapgear distribuzioni per embedded tipo ARM Debian,... Processo abbastanza straightforward (una volta applicate le patch necessarie)

Applicativi Praticamente sono portabili in ambiente embedded tutti i progetti open source attualmente disponibili Progetto Busybox comandi di linux di base possibilità di configurazione fine dei comandi da includere = controllo del memory footprint molto più semplice che ricompilare i vari pacchetti (fileutils, coreutils,...) http://www.busybox.net

Applicativi (II) Se si utilizza una soluzione chiavi in mano come Snapgear o uclinux sono disponibili anche molti altri applicativi (ad esempio un X server Microwindows) Nel compilare / costruire applicativi per Linux embedded risulta molto utile il progetto Scratchbox (Linux from the scratch)

Sistema di sviluppo Da alcuni anni sono nati due progetti per l'emulazione di sistemi (embedded e non) QEMU SkyEye Se correttamente configurati consentono lo sviluppo di applicazioni embedded senza la necessità di una scheda

Una possibile scheda di sviluppo (low cost!)

Caratteristiche principali NetSilicon NS9360 @ 150 MHz ARM926EJ S RISC Processor Optimized 10/100 Ethernet MAC LCD Controller USB Ports v.2.0 Full Speed (12 Mbps) and Low Speed (1.5 Mbps) 2 Serial Ports (UART) System Bus DMA and Peripheral Bus DMA Power Management Vectored Interrupt Controller General Purpose Timers/Counters/PWM General Purpose I/O Real Time Clock

DEMO Un sacco di bla, bla, bla... Cosa vedremo esempio di cross compilazione di un semplice programma C cross compilazione utilizzando ambiente Scratchbox Kernel 2.4 per piattaforma ARM ed esecuzione nel simulatore SkyEye boot reale di un sistema embedded

GRAZIE PER L'ATTENZIONE! fabrizio.vacca@microc.it