La Diffusione Del Software Open-Source Nei Sistemi Embedded
Total Page:16
File Type:pdf, Size:1020Kb
Matteo Vellere - La Diffusione del software Open-Source nei Sistemi Embedded Università degli studi di Padova Dipartimento di Tecnica e Gestione dei Sistemi Industriali Corso di Laurea Triennale in Ingegneria Meccanica e Meccatronica LA DIFFUSIONE DEL SOFTWARE OPEN-SOURCE NEI SISTEMI EMBEDDED THE SPREAD OF OPEN-SOURCE SOFTWARE IN EMBEDDED SYSTEMS RELATORE: CH.MO PROF. Reggiani Monica LAUREANDO: Vellere Matteo ANNO ACCADEMICO: 2013/2014 Pag. 1 Matteo Vellere - La Diffusione del software Open-Source nei Sistemi Embedded Pag. 2 Matteo Vellere - La Diffusione del software Open-Source nei Sistemi Embedded INDICE GENERALE INTRODUZIONE.......................................................................................................................4 1.I Sistemi Embedded.................................................................................................................6 1.1.Generalità sui Sistemi Embedded.....................................................................................6 1.2.Evoluzione storica dei dispositivi.....................................................................................8 1.3.Caratteristiche.................................................................................................................10 1.3.1.Microcontrollori e Microprocessori........................................................................10 1.3.2.Field Programmable Gate Array (FPGA)...............................................................11 1.3.3.Digital Signal Processors (DSP).............................................................................11 1.3.4.Application Specific Integrated Circuit (ASIC).....................................................11 2.Il Software Open Source........................................................................................................12 2.1.Disambiguazione............................................................................................................12 2.2.Origine............................................................................................................................13 2.3.Filosofia..........................................................................................................................16 2.4.I vantaggi dell'Open Source...........................................................................................18 2.4.1.Basso costo iniziale.................................................................................................18 2.4.2.Indipendenza dai fornitori.......................................................................................18 2.4.3.Sicurezza.................................................................................................................19 2.4.4.Flessibilità...............................................................................................................19 2.4.5.Interoperabilità........................................................................................................19 2.5.Diffusione.......................................................................................................................20 2.5.1.In Italia....................................................................................................................21 2.6.I principali tipi di licenza................................................................................................22 2.6.1.Pubblico dominio....................................................................................................22 2.6.2.Licenze FSF: GPL e LGPL.....................................................................................22 2.6.3.Licenze Open Source: MPL e BSD License...........................................................23 2.6.4.Dual Licensing........................................................................................................24 3.Possibilità Open Source per i Sistemi Embedded..................................................................25 3.1.Sommario.......................................................................................................................26 3.1.1.Integrazione............................................................................................................26 3.1.2.Innovazione.............................................................................................................26 3.1.3.Industrializzazione..................................................................................................27 3.2.Panorama........................................................................................................................27 3.2.1.Hardware modeling................................................................................................27 3.2.2.Compiler tool chains...............................................................................................28 3.2.3.Libraries..................................................................................................................28 3.2.4.Graphical Computer-aided Software Engineering (CASE)....................................29 3.2.5.Source code debugging...........................................................................................29 3.2.6.Version control........................................................................................................29 3.2.7.Build systems..........................................................................................................29 3.2.8.Operating systems...................................................................................................29 3.2.9.Middleware and applications..................................................................................30 3.3.Diffusione.......................................................................................................................31 Pag. 3 Matteo Vellere - La Diffusione del software Open-Source nei Sistemi Embedded 3.4.Vantaggi dei FOSS nei Sistemi Embedded....................................................................36 3.4.1.Vantaggi per gli sviluppatori...................................................................................37 3.4.2.Vantaggi per i manager...........................................................................................37 3.4.3.Vantaggi per le compagnie......................................................................................37 3.4.4.Vantaggi per i clienti e gli utilizzatori.....................................................................37 3.5.Difetti..............................................................................................................................38 3.6.Kernel per Sistemi Embedded........................................................................................38 3.6.1.Tipi di Kernel..........................................................................................................38 3.6.2.Kernel Monolitici....................................................................................................39 3.6.3.Microkernel.............................................................................................................40 3.6.4.Kernel Ibridi............................................................................................................40 3.6.5.Esokernel................................................................................................................41 4.Linux Embedded....................................................................................................................42 4.1.Introduzione....................................................................................................................42 4.2.Caratteristiche.................................................................................................................43 4.2.1.Configurabilità........................................................................................................43 4.2.2.Performance Real Time..........................................................................................44 4.2.3.Graphical User Interface.........................................................................................46 4.2.4.Strumenti di Sviluppo.............................................................................................46 4.2.5.Considerazioni Economiche...................................................................................47 4.2.6.Supporto Tecnico....................................................................................................47 4.3.Esempi Applicativi.........................................................................................................47 5.Android..................................................................................................................................49 5.1.Storia..............................................................................................................................49 5.2.La struttura del sistema...................................................................................................49 5.3.Il Kernel di Android.......................................................................................................51 5.3.1.Process Scheduler...................................................................................................53 5.3.2.Memory Manager...................................................................................................55 5.3.3.Virtual Filesystem...................................................................................................56