Presentation Open Wide 18 avril 2012 Technifutur SE

Transcription

Presentation Open Wide 18 avril 2012 Technifutur SE
Systèmes embarqués et logiciel libre
Pierre Ficheux ([email protected])
Avril 2012
Systèmes embarqués et logiciel
libre
1
Présentation PF
●
●
●
●
●
●
Ingénieur Arts et Métiers + Sup'Aéro
Utilisateur de logiciels libres depuis 1989
Utilisateur de Linux depuis 1992
Auteur des trois éditions de l'ouvrage « Linux
embarqué » (Eyrolles), 4ème édition 6/2012
Auteur GNU Linux Magazine, Open Silicium
CTO Open Wide Ingénierie, enseignant EPITA
Systèmes embarqués et logiciel
libre
2
Présentation Open Wide
●
●
●
●
●
SSII/SSLL créée en septembre 2001 avec Thales
et Schneider
Indépendante depuis 2009
Environ 100 salariés sur Paris et Lyon et
Toulouse (1/2012) !
Industrialisation de composants open source
Quatre activités :
–
OW Système d'Information
–
OW Outsourcing: hébergement
–
OW Ingénierie: informatique industrielle
–
OW Technologies: composants Java
Systèmes embarqués et logiciel
libre
3
Domaines d’utilisation
Systèmes embarqués et logiciel
libre
4
Domaines d'application
●
●
●
●
1960-70 : remplacer la mécanique et la logique
« câblée » lorsque c'est possible (souplesse)
1980 : RTOS (Real Time OS) génériques
Historique
–
Militaire, spatial (RTOS/360, VRTX sur Hubble)
–
Contrôle de processus industriel
–
Transport : AUTOSAR/OSEK, ARINC 653 →
certification (DO-178, ...)
–
Internet/Telecom : routeurs, PABX (Chorus)
Assimilé / émergent
–
Multimédia : audio, vidéo, TV, automobile
(GENIVI), Téléphonie, médical
Systèmes embarqués et logiciel
libre
5
Les « nouveaux » domaines
●
●
Équipement grand public jusque la isolé
(multimédia, domotique, …)
« Infotainment » transport: automobile,
aéronautique
–
Ajout de fonctions communicantes →
utilisation de protocoles standards de type
IP et dérivés (HTTP, DHCP, etc.)
–
Difficile d'intégrer ces couches dans des
logiciels embarqués propriétaires →
utilisation d'un OS
–
Notion de « boite noire » dédiée à un
ensemble de fonctions (téléphonie, set-top
box avec services étendus)
Systèmes embarqués et logiciel
libre
6
« Bare board » / RTOS
●
●
Pas de système d'exploitation (Bare Board)
–
Système (très) critique ou très réduit
–
Éventuellement un simple « exécutif » temps
réel (Sysgo)
Utilisation d'un RTOS
–
Plus de souplesse et portabilité mais plus
d'empreinte mémoire
–
Certification possible sur certains OS :
VxWorks 653 (Wind River), LynxOS-178 /
LynxOS-SE (LynuxWorks), INTEGRITY-178
(Green Hills)
Systèmes embarqués et logiciel
libre
7
GPOS / RTOS
●
●
GPOS (Windows, Linux, ...)
–
Lissage des priorités (dynamique) =>
complexe
–
Grand nombre de tâches concurrentes (> 200
sur un PC Linux « inactif »)
–
15M lignes de code pour le noyau Linux 3.x !
RTOS
–
Prévisible : évaluer le pire des cas
–
Déterministe : faible influence de la charge
–
Pas ou peu de notion de « performances
moyennes »
–
Peu de tâches concurrentes
–
Léger (< 100K lignes de code pour FreeRTOS)
Systèmes embarqués et logiciel
libre
8
RTOS, les types de temps-réel
●
●
●
●
●
Temps-réel mou : un retard dans l’obtention du
résultat n’est pas dramatique (multimédia)
Temps-réel dur : un retard dans l’obtention du
résultat le rend inutile (pilotage matériel)
Temps-réel « ferme » : un retard, s’il arrive très
peu souvent, peut être toléré (téléphonie,
multimédia)
La plupart des systèmes temps-réel modernes
sont « hybrides » (exemple : Linux/Xenomai)
–
Certaines tâches sont temps-réel (dur)
–
D'autres ne le sont pas ou peu (mou/ferme)
Frontière mou/dur parfois difficile à définir !
Systèmes embarqués et logiciel
libre
9
Approches asynchrone /
synchrone
●
●
Asynchrone
–
Interaction avec l'environnement
(interruption), dérive d'horloge entre
calculateurs
–
Modélisation complexe (nombreux cas de
préemption)
Synchrone
–
Modélisation statique du comportement
–
Pas d'interruption ni d'allocation dynamique
–
Convient aux systèmes critiques
–
Langages dédiés, génération de code
(ESTEREL, SIGNAL, SynDEx)
–
Exemple du métro automatique parisien 1/14
Systèmes embarqués et logiciel
libre
10
Quelques « RTOS » célèbres
●
●
●
●
●
●
●
●
●
VxWorks de WindRiver (édite également WR
Linux)
QNX, UNIX like
Windows CE / XP Embedded, Windows Mobile
LynxOS de LynuxWorks (édite également
BlueCat Linux)
Nucleus (Mentor Graphics)
µC/OS (micro-C OS) et µC/OS II: RTOS pour
micro-contrôleurs
VRTX
uItron
pSOS
Systèmes embarqués et logiciel
libre
11
Le logiciel libre
Systèmes embarqués et logiciel
libre
12
Le logiciel libre, introduction
●
●
A peu près équivalent à la notion d'open source,
voir http://www.opensource.org
La confusion vient de la signification anglaise
–
●
free = libre / gratuit
Différents types de logiciels
–
Le freeware ou graticiel: gratuit mais sources
non disponibles, pas forcément de licence
(abandon de la « paternité » du code)
–
Le shareware: sources non disponibles, coût
modique, licence souvent propriétaire
–
Le logiciel libre: sources disponibles, licence
open source, non liée à la notion de gratuité
(on peut vendre un logiciel libre)
Systèmes embarqués et logiciel
libre
13
Logiciel libres, quelques
éléments
●
●
●
●
●
Le logiciel libre n'est pas forcément gratuit
La migration vers du logiciel libre n'est JAMAIS
gratuite => le « coût du changement »
Les licences, même libres doivent être
respectées (cf assignation de Free par la FSF ou
problème avec Busybox)
Ces licences ne sont pas incompatibles avec la
vente de logiciel (embarqué ou non) ni de
matériel
La conception de l'architecture du système est
fondamentale afin de prévenir les problèmes de
licence
Systèmes embarqués et logiciel
libre
14
Les licences libres
●
●
●
●
Doivent être compatibles avec le modèle libre,
voir http://www.opensource.org
Problème de compatibilité avec les droits
nationaux
Exemples de licences :
–
GPL / LGPL
–
BSD
–
MIT/X11
–
Mozilla
–
FDL (pour la documentation)
–
CeCILL (France)
Voir http://fr.wikipedia.org/wiki/Licence_libre
Systèmes embarqués et logiciel
libre
15
GPL/LGPL en bref (Linux)
●
●
●
●
●
●
●
GPL = General Public License (GNU/FSF)
On la surnomme également « copyleft »
La GPL v2 (1991) est la plus répandue (ex:
noyau Linux), GPL v3 en 2007 (DRM)
La licence s'applique uniquement en cas de
redistribution
Un code source utilisant du code GPL est du
travail dérivé et doit être publié
Publication: celui qui reçoit la version binaire
peut obtenir le code source
Pas de lien (ld) possible entre du code GPL et du
code « propriétaire » => possible avec la LGPL
(Lesser-GPL)
Systèmes embarqués et logiciel
libre
16
Quelques projets libres majeurs
●
●
●
●
●
●
●
●
●
●
●
X Window System (X11), MIT (MIT/X11)
Projet GNU (GPL/LGPL) → GCC, EMACS, ...
FreeBSD (BSD)
Apache (Apache)
Noyau Linux (GPL)
Eclipse (EPL)
Mozilla / Thunderbird (MPL)
WebKit (BSD/LGPL)
Qt (LGPL)
Android (partiellement)
...
Systèmes embarqués et logiciel
libre
17
Avantages/inconvénients du
logiciel libre
●
●
Avantages
–
Disponibilité du code source: maitrise et
maintenabilité dans le temps
–
Redistribution sans royalties
–
Développements dérivés de code source existant
–
Outils de développement « gratuits » !
Inconvénients
–
Méfiance des décideurs, modèle décentralisé
apparaissant comme « flou »
–
Contraintes des licences (GPL, LGPL)
–
Support parfois non officiel pour certains
matériels
–
Manque d'outils et de documentation
Systèmes embarqués et logiciel
libre
18
Les (RT)OS libres
Systèmes embarqués et logiciel
libre
19
Linux comme (RT)OS
●
●
●
●
Réservé aux systèmes complexes
–
32 bits
–
Gestion complexe de la mémoire (MMU)
–
Empreinte mémoire importante: 2 Mo pour
µCLinux (MMU-less), 4 Mo pour Linux
–
Consommation mémoire vive : 16 Mo
minimum
Migration temps réel des anciens RTOS
complexe car Linux n’est pas TR → évolution
avec les extensions PREEMPT-RT et Xenomai
Incompatible avec les systèmes critiques
Souvent utilisé pour les outils, les simulateurs et
architectures « mixtes » (banc de test)
Systèmes embarqués et logiciel
libre
20
Linux comme (RT)OS , suite
●
●
Désormais, « embarqué » n’implique pas
forcément « temps réel » et/ou très faible
empreinte mémoire
Dans les autres cas on peut utiliser d'autres
systèmes plus légers et TR
–
eCos / Lepton (libre / POSIX)
–
RTEMS (libre / POSIX)
–
Micro-C-OS II (8 bits ou plus)
Systèmes embarqués et logiciel
libre
21
eCos
●
●
●
●
●
●
Embeddable Configurable OS (CYGNUS 1997)
Supporte de nombreux CPU (16), 32 et 64 bits
Empreinte mémoire de 10 à 100 Ko
Outils de configuration avancé, gestion de
« packages »
Version « pro » par
Utilisé dans le multimédia :
–
http://www.ecoscentric.com/ecos/examples.s
html
Systèmes embarqués et logiciel
libre
22
RTEMS
●
●
●
●
●
●
●
●
●
Real-Time Executive for Missile/Military Systems
→ RTE for Multiprocessor Systems
Développé depuis 1988, libre depuis 1994
32 bits CPU (8/16 bits avec TinyRTEMS)
API POSIX, ARINC 653 (AIR/ESA)
Programmation C/C++/Ada
Empreinte minimale entre 64 et 128 Ko (256 à
400 Ko suivant le nombre de paquets)
Utilisation industrielle (ESA, EADS, ...)
Large communauté de développeurs
http://wiki.rtems.org/wiki/index.php
Systèmes embarqués et logiciel
libre
23
Les outils
Systèmes embarqués et logiciel
libre
24
Typologie des outils
●
●
●
●
●
●
Développement: compilation, mise au point
(GNU Toolchain)
EDI / IDE
Construction de distribution, paquets logiciels,
production
Emulation
Sondes « matérielles » (JTAG)
Outils divers (gestion de version)
→ La plupart de ces outils existent dans le
monde du logiciel libre
Systèmes embarqués et logiciel
libre
25
Outils de développement
●
●
●
Intégration des outils GNU (compilation, mise au
point) dans un EDI (Environnement de
Développement Intégré)
–
Eclipse + plugin CDT (C/C++)
–
QtCreator
Produits commerciaux liés à un éditeur (Eclipse
+ outils)
–
Workbench (Wind River → CDT)
–
DevRocket (Montavista)
Libre ou commercial ?
–
Outils additionnels intégrés (LTT, KGDB, ...)
–
Support technique !
Systèmes embarqués et logiciel
libre
26
Création de distribution Linux
●
●
●
●
Utiliser un produit d’éditeur (Wind River, MV, …)
→ €€€
Adapter une distribution Linux classique
–
Limité au niveau matériel (x86)
–
Empreinte mémoire importante
–
Pour des cas très particuliers
Créer la distribution « from scratch »
–
Complexe
–
Difficile/impossible à industrialiser:
●
gestion des dépendances
●
évolutions
Utiliser un outil de génération : Buildroot,
OpenEmbedded, OpenWrt, LTIB
Systèmes embarqués et logiciel
libre
27
Utilisation des outils de
production
●
●
●
●
Un « moteur » crée la distribution à partir des
sources des composants adaptés en appliquant
des « patch »
Ne fournit pas les sources: uniquement les patch
et les règles de production prenant en compte
les dépendances :-)
Peut produire la chaîne croisée
Produit les différents éléments de la distribution
–
Image du bootloader
–
Noyau Linux
–
Image du « root-filesystem »
Systèmes embarqués et logiciel
libre
28
Quelques outils de production
libres
●
●
●
●
OpenEmbedded
–
Moteur écrit en Python
–
Très puissant mais lourd
–
Basé sur des fichiers de configuration !
Buildroot
–
Au départ un démonstrateur pour uClibc
–
Désormais un véritable outil, bien maintenu !
OpenWrt
–
Dérivé de BR
–
Orienté vers les IAD (Internet Access Device)
Autres: LTIB, PTXdist, ...
Systèmes embarqués et logiciel
libre
29
OpenEmbedded
●
●
●
●
●
●
Une « généralisation » de l'approche utilisée
dans BR
Utilise un moteur écrit en Python (bitbake) et un
ensemble de règles utilisant un principe
d'héritage => « recipe » (recette)
Pas d'interface de configuration
Processus lourd => plusieurs heures pour la
première compilation (environ 30mn pour BR)
TRES puissant, recommandé dans le cas ou l'on
gère un grand nombre de configurations
Gère la notion de paquet binaire, contrairement
à BR
Systèmes embarqués et logiciel
libre
30
Buildroot
Systèmes embarqués et logiciel
libre
31
Buildroot, histoire
●
●
●
●
●
●
●
Lié au projet uClibc (micro-C-libc) : libC plus
légère que la Glibc
But initial: produire des images de test de uClibc
Moteur basé sur des fichiers Makefile et des
scripts-shell
Outil de configuration « graphique »
Peut désormais utiliser Glibc, Eglibc, ...
Repris en 2009 par Peter Korsgaard et Thomas
Petazzoni
Une version officielle tous les 3 mois:
2009.02, ..., 2011.02...2012.02
Systèmes embarqués et logiciel
libre
32
Émulateur QEMU
●
●
●
●
Émulateur de matériel initialement développé
par Fabrice Bellard, diffusé sous GPL v2
Exécuté dans l'espace utilisateur de Linux
Permet d'émuler diverses architectures: x86,
PowerPC, ARM, etc.
Émulation de carte complète => outil de
développement, mise au point, test automatique
–
●
●
Outil de certification DO-178 (Couverture) =>
http://www.open-do.org/projects/couverture
Désormais, large communauté avec dépôt Git
sur http://git.savannah.gnu.org/cgit/qemu.git
Voir la démo
Systèmes embarqués et logiciel
libre
33
Sondes JTAG
●
●
●
GDB → gdbserver / KGDB
Sondes JTAG commerciales (Abatron, Wind
River, …) → €€€
OpenOCD (libre)
Systèmes embarqués et logiciel
libre
34
Outils « libres » pour
l’embarqué critique
●
●
●
●
●
●
●
OCARINA (TPT) : « compilateur » AADL
(Architecture Analysis and Design Language)
SynDEx (INRIA) : Synchronized Distributed
Executive, générateur de code « synchrone »
POK (TPT) : RTOS ARINC 653
TASTE (ESA) : The Assert Set of Tools for
Engineering
TOPCASED (Airbus) : Toolkit in OPen source for
Critical Applications & SystEms Development
B événementiel (CLEARSY)
Initiative Open-DO (www.open-do.org)
Systèmes embarqués et logiciel
libre
35
Linux: tendances
Systèmes embarqués et logiciel
libre
36
Les tendances 2003-2007
Systèmes embarqués et logiciel
libre
37
Linux foundation (2010)
Systèmes embarqués et logiciel
libre
38
Linux foundation (2010), suite
Systèmes embarqués et logiciel
libre
39
Explication du phénomène
●
●
●
●
●
●
Fiabilité et performances de Linux → validation
dans le monde du serveur
Disponibilité du code source
Support matériel généralisé ou presque
Pas de royalties (interdit par les licences OSS)
Réduction des coûts (prix des licences
développeur → PME)
Orientation stratégique des leaders de
l’embarqué vers Linux: Wind River, LynuxWorks,
Mentor Graphics
Systèmes embarqués et logiciel
libre
40
Évolution du modèle, dès 2007 !
Systèmes embarqués et logiciel
libre
41
Explications
●
Linux est entré depuis longtemps au cœur de la
stratégie des grands groupes industriels
–
THALES
–
THOMSON/Technicolor (depuis 1997)
–
SAGEMCOM / SAGEM Défense
–
EADS
–
Opérateurs de Télécom
–
Orange (impose Linux à ses sous-traitants)
–
Free a toujours utilisé Linux
–
Les autres suivent (SFR, Bouygues)
Systèmes embarqués et logiciel
libre
42
Explications, suite
●
●
●
●
●
Évolution du marché des télécoms (convergence
téléphonie/Internet)
Linux arrive au niveau des « terminaux »
(Android) et concurrence les OS spécialisés
comme Symbian ou Windows
Linux est omniprésent au niveau des routeurs
grand public
Les projets libres communautaires (ex:
OpenWrt) deviennent viables pour les industriels
(SFR)
Des solutions techniques «temps réel» sont
disponibles sur Linux (PREEMPT-RT, RTAI,
Xenomai)
→ Meilleure confiance des décideurs
Systèmes embarqués et logiciel
libre
43
Évolution du modèle « éditeur »
Systèmes embarqués et logiciel
libre
44
Modèle éditeur, suite
●
●
●
●
La situation a un peu évoluée depuis car l'offre
commerciale s'est étoffée :
–
Wind River
–
MontaVista
–
...
Chacun se partage environ 30 % du marché, le
dernier tiers concerne les distributions « libres »
L'activité d'un éditeur Linux est également liée à
du service
Les éditeurs sont de gros contributeurs aux
projets libres (exemple : Wind River et KGDB,
CDT, ...)
Systèmes embarqués et logiciel
libre
45
Exemples de produits sous
Linux
Systèmes embarqués et logiciel
libre
46
Linksys WRT54GL
Systèmes embarqués et logiciel
libre
47
SIP Box (PABX)
Systèmes embarqués et logiciel
libre
48
Livebox
Systèmes embarqués et logiciel
libre
49
Freebox
Systèmes embarqués et logiciel
libre
50
Freebox v6 (Atom / ARM)
Systèmes embarqués et logiciel
libre
51
Questions ?
Systèmes embarqués et logiciel
libre
52