linux embarquÉ les distributions...gnu vs android 22 ans pour le noyau, 30 ans pour le système gnu...
TRANSCRIPT
![Page 1: LINUX EMBARQUÉ LES DISTRIBUTIONS...GNU vs Android 22 ans pour le noyau, 30 ans pour le système GNU (gcc, binutils, glibC, emacs, etc.) des millions de lignes de code à destination](https://reader033.vdocument.in/reader033/viewer/2022060316/5f0c2f657e708231d43428f3/html5/thumbnails/1.jpg)
L’expertise au service de l’embarqué
LINUX EMBARQUÉ—
LES DISTRIBUTIONSENOVA — 10 octobre 2013
![Page 2: LINUX EMBARQUÉ LES DISTRIBUTIONS...GNU vs Android 22 ans pour le noyau, 30 ans pour le système GNU (gcc, binutils, glibC, emacs, etc.) des millions de lignes de code à destination](https://reader033.vdocument.in/reader033/viewer/2022060316/5f0c2f657e708231d43428f3/html5/thumbnails/2.jpg)
L’expertise au service de l’embarqué
Creative CommonsAttribution-NonCommercial-NoDerivs 3.0 Unported (CC BY-NC-ND 3.0)
Attribution — You must attribute the work in the manner specified by the author or licensor (but not in any way that suggests that they endorse you or your use of the work).
Noncommercial — You may not use this work for commercial purposes.
No Derivative Works — You may not alter, transform, or build upon this work.
Le texte intégral de la licence applicable à ce document se trouve à l’adresse :http://creativecommons.org/licenses/by-nc-nd/3.0/legalcode
La licence couvre le texte de la présentation et les opinions émises, en aucun cas les images, sur lesquelles ne sont réclamés aucun droit. En cas de contestation sur leur utilisation, prière d’envoyer un mail à <[email protected]>.
![Page 3: LINUX EMBARQUÉ LES DISTRIBUTIONS...GNU vs Android 22 ans pour le noyau, 30 ans pour le système GNU (gcc, binutils, glibC, emacs, etc.) des millions de lignes de code à destination](https://reader033.vdocument.in/reader033/viewer/2022060316/5f0c2f657e708231d43428f3/html5/thumbnails/3.jpg)
L’expertise au service de l’embarqué
QUI SOMMES-NOUS ?EXPEMB
■ un groupe au service du matériel et du logiciel embarqué
■ Tokhatec : l’expertise COM au service de l’embarqué
■ Sysmic : l’expertise Linux au service de l’embarqué (BE)
■ Axupteam : la société de services de l’embarqué (ESN)
■ combien de divisions ?
■ 4 années d’existence
■ ~3 millions de CA (prévisionnel)
■ 17 personnes
![Page 4: LINUX EMBARQUÉ LES DISTRIBUTIONS...GNU vs Android 22 ans pour le noyau, 30 ans pour le système GNU (gcc, binutils, glibC, emacs, etc.) des millions de lignes de code à destination](https://reader033.vdocument.in/reader033/viewer/2022060316/5f0c2f657e708231d43428f3/html5/thumbnails/4.jpg)
L’expertise au service de l’embarqué
PROLOGUETOUTE RESSEMBLANCE AVEC DES FAITS RÉELS NE SERAIT QUE
PURE COÏNCIDENCE
![Page 5: LINUX EMBARQUÉ LES DISTRIBUTIONS...GNU vs Android 22 ans pour le noyau, 30 ans pour le système GNU (gcc, binutils, glibC, emacs, etc.) des millions de lignes de code à destination](https://reader033.vdocument.in/reader033/viewer/2022060316/5f0c2f657e708231d43428f3/html5/thumbnails/5.jpg)
L’expertise au service de l’embarqué
« Les gars, j’ai trouvé un truc super : Linux ! »
![Page 6: LINUX EMBARQUÉ LES DISTRIBUTIONS...GNU vs Android 22 ans pour le noyau, 30 ans pour le système GNU (gcc, binutils, glibC, emacs, etc.) des millions de lignes de code à destination](https://reader033.vdocument.in/reader033/viewer/2022060316/5f0c2f657e708231d43428f3/html5/thumbnails/6.jpg)
L’expertise au service de l’embarqué
« Ça a l’air super simple et c’est gratuit,allons-y par nous-même »
![Page 7: LINUX EMBARQUÉ LES DISTRIBUTIONS...GNU vs Android 22 ans pour le noyau, 30 ans pour le système GNU (gcc, binutils, glibC, emacs, etc.) des millions de lignes de code à destination](https://reader033.vdocument.in/reader033/viewer/2022060316/5f0c2f657e708231d43428f3/html5/thumbnails/7.jpg)
L’expertise au service de l’embarqué
« Ça a l’air un peu compliqué,mais on va trouver.... »
![Page 8: LINUX EMBARQUÉ LES DISTRIBUTIONS...GNU vs Android 22 ans pour le noyau, 30 ans pour le système GNU (gcc, binutils, glibC, emacs, etc.) des millions de lignes de code à destination](https://reader033.vdocument.in/reader033/viewer/2022060316/5f0c2f657e708231d43428f3/html5/thumbnails/8.jpg)
L’expertise au service de l’embarqué
« Oh mon dieu, mais c’est quoi ce truc tentaculaire ?!? »
![Page 9: LINUX EMBARQUÉ LES DISTRIBUTIONS...GNU vs Android 22 ans pour le noyau, 30 ans pour le système GNU (gcc, binutils, glibC, emacs, etc.) des millions de lignes de code à destination](https://reader033.vdocument.in/reader033/viewer/2022060316/5f0c2f657e708231d43428f3/html5/thumbnails/9.jpg)
L’expertise au service de l’embarqué
« On est où, là au juste ?... »
![Page 10: LINUX EMBARQUÉ LES DISTRIBUTIONS...GNU vs Android 22 ans pour le noyau, 30 ans pour le système GNU (gcc, binutils, glibC, emacs, etc.) des millions de lignes de code à destination](https://reader033.vdocument.in/reader033/viewer/2022060316/5f0c2f657e708231d43428f3/html5/thumbnails/10.jpg)
L’expertise au service de l’embarqué
« OK, surtout, ne bougeons pas,jusqu’ici tout ne va pas si mal »
![Page 11: LINUX EMBARQUÉ LES DISTRIBUTIONS...GNU vs Android 22 ans pour le noyau, 30 ans pour le système GNU (gcc, binutils, glibC, emacs, etc.) des millions de lignes de code à destination](https://reader033.vdocument.in/reader033/viewer/2022060316/5f0c2f657e708231d43428f3/html5/thumbnails/11.jpg)
L’expertise au service de l’embarqué
![Page 12: LINUX EMBARQUÉ LES DISTRIBUTIONS...GNU vs Android 22 ans pour le noyau, 30 ans pour le système GNU (gcc, binutils, glibC, emacs, etc.) des millions de lignes de code à destination](https://reader033.vdocument.in/reader033/viewer/2022060316/5f0c2f657e708231d43428f3/html5/thumbnails/12.jpg)
L’expertise au service de l’embarqué
LINUX EMBARQUÉ :QUOI ET POURQUOI?
![Page 13: LINUX EMBARQUÉ LES DISTRIBUTIONS...GNU vs Android 22 ans pour le noyau, 30 ans pour le système GNU (gcc, binutils, glibC, emacs, etc.) des millions de lignes de code à destination](https://reader033.vdocument.in/reader033/viewer/2022060316/5f0c2f657e708231d43428f3/html5/thumbnails/13.jpg)
L’expertise au service de l’embarqué
QU’EST-CE QUE LINUX ?
■ un noyau
■ un système d’exploitation :GNU vs Android
■ 22 ans pour le noyau, 30 ans pour le système GNU (gcc, binutils, glibC, emacs, etc.)
■ des millions de lignes de code
■ à destination du PC, puis d’autres architectures (~75)
■ un projet communautaire
■ un système libre
■ un héritage *NIX
■ tout est fichier
■ arborescence : /, /dev, /etc, ...
■ noyau séparé du système
■ « Linux is evolution, not intelligent design »,Linus Torvalds
![Page 14: LINUX EMBARQUÉ LES DISTRIBUTIONS...GNU vs Android 22 ans pour le noyau, 30 ans pour le système GNU (gcc, binutils, glibC, emacs, etc.) des millions de lignes de code à destination](https://reader033.vdocument.in/reader033/viewer/2022060316/5f0c2f657e708231d43428f3/html5/thumbnails/14.jpg)
L’expertise au service de l’embarqué
LE LOGICIEL LIBRE■ 4 libertés :
0. la liberté d'exécuter le programme, pour tous les usages,
1. la liberté d'étudier le fonctionnement du programme et de l'adapter à ses besoins,
2. la liberté de redistribuer des copies du programme (ce qui implique la possibilité aussi bien de donner que de vendre des copies),
3. la liberté d'améliorer le programme et de distribuer ces améliorations au public, pour en faire profiter toute la communauté.
■ des droits.... et des devoirs !
■ BSD/MIT : aucun devoir particulier, possibilité de fermer le code
■ GPLv2 : redistribution du code source à l’utilisateur/client
■ GPLv3 : redistribution du code à l’utilisateur + posibilité de le recharger !!
![Page 15: LINUX EMBARQUÉ LES DISTRIBUTIONS...GNU vs Android 22 ans pour le noyau, 30 ans pour le système GNU (gcc, binutils, glibC, emacs, etc.) des millions de lignes de code à destination](https://reader033.vdocument.in/reader033/viewer/2022060316/5f0c2f657e708231d43428f3/html5/thumbnails/15.jpg)
L’expertise au service de l’embarqué
UN ÉCOSYSTÈMECOMPLET... ET COMPLEXE
![Page 16: LINUX EMBARQUÉ LES DISTRIBUTIONS...GNU vs Android 22 ans pour le noyau, 30 ans pour le système GNU (gcc, binutils, glibC, emacs, etc.) des millions de lignes de code à destination](https://reader033.vdocument.in/reader033/viewer/2022060316/5f0c2f657e708231d43428f3/html5/thumbnails/16.jpg)
L’expertise au service de l’embarqué
ÉCOSYSTÈME LIBRE EMBARQUÉ■ écosystème encore
complexe
■ mêle du libre et du propriétaire
■ ceux qui participent le plus ne sont pas ceux qui utilisent le plus
■ nouvelles communautés d’industriels : Linaro, Genivi, OpenECTS, Polarsys...
![Page 17: LINUX EMBARQUÉ LES DISTRIBUTIONS...GNU vs Android 22 ans pour le noyau, 30 ans pour le système GNU (gcc, binutils, glibC, emacs, etc.) des millions de lignes de code à destination](https://reader033.vdocument.in/reader033/viewer/2022060316/5f0c2f657e708231d43428f3/html5/thumbnails/17.jpg)
L’expertise au service de l’embarqué
HISTORIQUELINUX EMBARQUÉ
■ depuis ~2000
■ éclosion réelle avec les version 2.4 (2004)
■ explosion avec la version 2.6 (2004/2005)
■ tournant en 2007
■ acteur incontournable à présent (1 projet sur 2 !)
![Page 18: LINUX EMBARQUÉ LES DISTRIBUTIONS...GNU vs Android 22 ans pour le noyau, 30 ans pour le système GNU (gcc, binutils, glibC, emacs, etc.) des millions de lignes de code à destination](https://reader033.vdocument.in/reader033/viewer/2022060316/5f0c2f657e708231d43428f3/html5/thumbnails/18.jpg)
L’expertise au service de l’embarqué
LINUX TEMPS RÉEL
■ Définition du TR : déterminisme temporel
■ Des mondes qui se recoupent
■ TR « mou » vs « dur » : Linux TR mou par défaut
■ Solutions TR dur :
■ Linux, par modification du code : RTLinux (racheté), MontaVista (racheté), RTAI (plus ou moins mort), Concurrent Computer
■ Par paravirtualisation : Xenomai/ADEOS, Wind River Hypervisor, PikeOS (Sysgo), Integrity (GreenHills), ...
■ finalement peu utilisé en production : à quelle problématique cela répond-il vraiment ?
![Page 19: LINUX EMBARQUÉ LES DISTRIBUTIONS...GNU vs Android 22 ans pour le noyau, 30 ans pour le système GNU (gcc, binutils, glibC, emacs, etc.) des millions de lignes de code à destination](https://reader033.vdocument.in/reader033/viewer/2022060316/5f0c2f657e708231d43428f3/html5/thumbnails/19.jpg)
L’expertise au service de l’embarqué
LIBRE EMBARQUÉ
■ bootloader : u-boot, grub, ...
■ compilateur : GCC, LLVM
■ outils divers de développement/intégration : Eclipse, GPS, SVN, Git...
■ logiciels
■ polices de caractères
■ environnements complets : GPE, Android, MeeGo, Tizen, ...
■ OS embarqués : eCos, RTMS, FreeRTOS, Pok, ...
■ au-delà de Linux :un mouvement
■ au-delà du libre :les formats ouverts■ communication : XMPP, UPnP
■ image : png/mng, svg
■ vidéo/son : ogg, WebM
■ compression : gzip, bzip2, LZMA, 7z
■ matériel libre ! (OpenHardware)
■ Certification !(OpenDO, Opees, Babylone)
![Page 20: LINUX EMBARQUÉ LES DISTRIBUTIONS...GNU vs Android 22 ans pour le noyau, 30 ans pour le système GNU (gcc, binutils, glibC, emacs, etc.) des millions de lignes de code à destination](https://reader033.vdocument.in/reader033/viewer/2022060316/5f0c2f657e708231d43428f3/html5/thumbnails/20.jpg)
L’expertise au service de l’embarqué
coûts « matière première »
■ pas de royalties (problème majeur dans l’embarqué)
■ sources gratuites
POURQUOI LE LIBRE DANS L’EMBARQUÉ ?
■Nombreux avantages pour l'industriel :
évolutivité
■ amélioration continue
■ GPL/LGPL : amélioration « forcée »
■ qualité du code
■ interactions/documentation
■ projets simples ou complexes
■ développeurs formés sur Linux
mérites du système
■ faible empreinte mémoire par rapport aux capacités (notamment pour les drivers)
■ efficace, optimisé, fortes performances
■ très stable : uptime
■ espace utilisateur (userland) efficace
architecture interne du noyau
■ modulaire, paramétrable très finement
■ énorme support matériel
■ portabilité : ~75 architectures, 32 bits, MMU ou non
■ TCP/IP (serveurs !), bluetooth, multimédia, ... : de base
■ ordonnanceur de complexité O(1) puis O(log n), préemptible (à partir de 2.6), temps-réel « mou »
■ peut être rendu temps-réel dur
réalisation
■ beaucoup d'outils disponibles, de bibliothèques (briques élémentaires très fonctionnelles)
■ support de nombreuses technologies, natives ou sous VM, notamment Java (et HTML)
■ développement userfriendly (hôte ~ cible)
![Page 21: LINUX EMBARQUÉ LES DISTRIBUTIONS...GNU vs Android 22 ans pour le noyau, 30 ans pour le système GNU (gcc, binutils, glibC, emacs, etc.) des millions de lignes de code à destination](https://reader033.vdocument.in/reader033/viewer/2022060316/5f0c2f657e708231d43428f3/html5/thumbnails/21.jpg)
L’expertise au service de l’embarqué
INCONVÉNIENTS DU LIBRE DANS L’EMBARQUÉ
■ manque d’interlocuteurs identifiés : problème technique (assistance) et contractuel (responsabilité)
■ manque de contrôle : dépendance à la communauté
■ contraintes juridiques (propriété intellectuelle) : comprendre les licences libres
■ problème de compétences : expertise et expérience rares
■ difficulté d’estimations en temps et en couts (& brouillage par la gratuité)
■ beaucoup d’aléas à estimer
■ de nouveaux paradigmes à maîtriser pour une industrie à forte inertie
![Page 22: LINUX EMBARQUÉ LES DISTRIBUTIONS...GNU vs Android 22 ans pour le noyau, 30 ans pour le système GNU (gcc, binutils, glibC, emacs, etc.) des millions de lignes de code à destination](https://reader033.vdocument.in/reader033/viewer/2022060316/5f0c2f657e708231d43428f3/html5/thumbnails/22.jpg)
L’expertise au service de l’embarqué
THE COST OF ZERO COST
![Page 23: LINUX EMBARQUÉ LES DISTRIBUTIONS...GNU vs Android 22 ans pour le noyau, 30 ans pour le système GNU (gcc, binutils, glibC, emacs, etc.) des millions de lignes de code à destination](https://reader033.vdocument.in/reader033/viewer/2022060316/5f0c2f657e708231d43428f3/html5/thumbnails/23.jpg)
L’expertise au service de l’embarqué
LIBRE N'EST PAS GRATUIT !
■ ➜ couts cachés
■ réalisation
■ formation
■ migration
■ accompagnement/expertise
■ etc.
■ au final coûte assez souvent plus cher qu’une solution propriétaire, à la conception !
■ rentabilité à moyen terme, excellente à long terme (surtout si évolutivité du produit)
■ possibilité offertes supérieures
■ le brouillage par la gratuité des sources est à l’origine de bien des déconvenues !
![Page 24: LINUX EMBARQUÉ LES DISTRIBUTIONS...GNU vs Android 22 ans pour le noyau, 30 ans pour le système GNU (gcc, binutils, glibC, emacs, etc.) des millions de lignes de code à destination](https://reader033.vdocument.in/reader033/viewer/2022060316/5f0c2f657e708231d43428f3/html5/thumbnails/24.jpg)
L’expertise au service de l’embarqué
L’EFFET IKEA
■ recherche économie cognitive
■ il y a plus de satisfaction ressentie à monter son meuble de qualité médiocre qu’à acheter un meuble d’ébéniste !
■ préférence sentimentale et irrationnelle pour le « meuble IKEA »
■ brouille le discernement : vaut-il mieux un beau meuble qu’un meuble monté soi-même ?
■ pour Linux embarqué :
■ mon système maison est-il objectivement le meilleur système ?
■ ne devrais-je pas plutôt appeler un expert et monter en compétence, internaliser ?
![Page 25: LINUX EMBARQUÉ LES DISTRIBUTIONS...GNU vs Android 22 ans pour le noyau, 30 ans pour le système GNU (gcc, binutils, glibC, emacs, etc.) des millions de lignes de code à destination](https://reader033.vdocument.in/reader033/viewer/2022060316/5f0c2f657e708231d43428f3/html5/thumbnails/25.jpg)
L’expertise au service de l’embarqué
TECHNIQUEMENT,QU’EST-CE QUE LINUX EMBARQUÉ ?
![Page 26: LINUX EMBARQUÉ LES DISTRIBUTIONS...GNU vs Android 22 ans pour le noyau, 30 ans pour le système GNU (gcc, binutils, glibC, emacs, etc.) des millions de lignes de code à destination](https://reader033.vdocument.in/reader033/viewer/2022060316/5f0c2f657e708231d43428f3/html5/thumbnails/26.jpg)
L’expertise au service de l’embarqué
ORGANISATION PHYSIQUE DU SYSTÈME SUR FLASH
boot
load
er
noyau
envir
onne
men
t bo
otlo
ader
0x0
système racine
système /(read only ?)
système étendu(read write ?)
![Page 27: LINUX EMBARQUÉ LES DISTRIBUTIONS...GNU vs Android 22 ans pour le noyau, 30 ans pour le système GNU (gcc, binutils, glibC, emacs, etc.) des millions de lignes de code à destination](https://reader033.vdocument.in/reader033/viewer/2022060316/5f0c2f657e708231d43428f3/html5/thumbnails/27.jpg)
L’expertise au service de l’embarqué
KERNEL & USER SPACE
matériel
noya
u Lin
uxes
pace
utilis
ateu
r
Application Application Application ...
BibliothèquesAppels système
pilotes caractère pilotes bloc pilotes USB pilotes réseauinterruptions IRQ IRQ
modèle de périphériques,
modulesgestion réseau gestion mémoire gestion tâches
(ordonnanceur)
systèmes de fichiers protocoles mémoire virtuelle processus
![Page 28: LINUX EMBARQUÉ LES DISTRIBUTIONS...GNU vs Android 22 ans pour le noyau, 30 ans pour le système GNU (gcc, binutils, glibC, emacs, etc.) des millions de lignes de code à destination](https://reader033.vdocument.in/reader033/viewer/2022060316/5f0c2f657e708231d43428f3/html5/thumbnails/28.jpg)
L’expertise au service de l’embarqué
ORGANISATION LOGIQUE DU SYSTÈME GNU/LINUX
Vue d’un système Linux embarqué industriel par Pengutronix(http://www.pengutronix.de/ development/web/index_en.html).
Chapitre 7 Modélisation et mise en place du projet 149
APPLICATIONS
Home Contacts Phone Browser
ActivityManager
WindowManager
ContentProviders
ViewSystem
TelephonyManager
PackageManager
ResourceManager
LocationManager
NotificationManager
CoreLibraries
Dalvik VirtualMachine
SQLite
WebKit
libc
MediaFramework
FreeType
SSL
SurfaceManager
Open GL / ES
Flash Memory Driver
Audio Drivers
Binder (IPC) Driver
Power Management
Camera Driver
WiFi Driver
Display Driver
Keypad Driver
SGL
...
APPLICATION FRAMEWORK
ANDROID RUNTIMELIBRARIES
LINUX KERNEL
���������������������� �� ��� ��������� ����������� ������������������� ������� ���� ����������
Glibc - POSIX
Linux Kernel
Settings Databasegconf
System Librariesglib, libudev...
Message BusD-Bus
NetworkServicesConnection
Management
IP Autoconfig
ControlServices
CAN
libpv
InternetServices
Webkit
VisualServices
QT
JSON-D-BusBridge
MediaServicesgstreamer
Camera
Codecs
Audio
MiddlewareLayer
SystemLayer
OSLayer
Driver Driver Driver Driver Driver Driver
������������ ���������������������������� ���������������������������������������������������������������������������������
LE.indb 149 08/11/11 16:48
38 L’embarqué et le Libre : des éléments de choix stratégiques Partie 1
!�� %�((���� ��� "$�*!�(� �#)'�� ��*,� +�'(�$#(� /!$��#/�(� %�*)� 1)'�� )$*)� (�"%!�"�#)��"%$((��!��
NOTE
Un module ou driver est fortement lié à une version donnée du noyau Linux : s’il est fourni sous forme de sources isolées, il faudra retrouver les sources complètes du noyau associé pour le compiler ; s’il est fourni sous forme binaire, impossible de l’uti-liser avec une autre version du noyau que celle avec lequel il a été compilé.
��� !�� "/(�+�#)*'�� �()� )'0(� �$'"�)'���� 5� +$�'� "�� �$#�/'�#��� (*'� !�(� %'$�!0"�(�'�#�$#)'/(�!$'(��*�%$')�����6*#�"1"��%�!$)��'/(��*�(*'���*,�+�'(�$#(�����/'�#)�(��*� #$-�*� ��������������������� � ��� ������� ������� ����������� 5�� �!!�� �()���%�#��#)�%$)�#)��!!�"�#)���)�()'$%��&*���#�)�'"�(������()�$#����%'$ �)��%$*+�#)�"1"���"%!�&*�'���#(����'�'�(���(�*#��($!*)�$#�����$#)$*'#�"�#)�%�'�%�'�+�')*��!�(�)�$#��%!*)2)�&*6*#�)'0(��$3)�*,�%$')������!��()��$#����($!*"�#)�#/��((��'�����(��'�#(���#�'�(*'�!��(*%%$')�$���')�%�'�!���$#()'*�)�*'��)�!��'�+�#��*'�"�)/'��!��+�#)�!6����)����!��%!�)��$'"�����!��
Les distributions Linux
�!��()�#/��((��'���#�)$*)�%'�"��'�!��*��6�+$�'�*#���$##��+*���6�#(�"�!���6*#�(-()0"��������#*,��+$�'� ��*'������
����������������������������������������
�2)/�*)�!�(�)�*'�� !�(��%%!���)�$#(��((*'�#)� !�(� �#)�'��)�$#(��$#�)�$##�!!�(�� �!�(6���)���� %'$�'�""�(�� �$"%�!/(� .� %�')�'� ��� ($*'��(�� ��� %*�((�#��� �*� "$�0!�� �����'�%$(��(*'�!6*)�!�(�)�$#�������!�$)�0&*�(�%�')��/�(��7����'(��#��,)�#(�$#��������#�����!�$)�0&*���()�*#���$!!��)�$#���� �$#�)�$##�!�)/(��%%�!��!�(�%�'�*#�%'$�'�""����$#�'0)�"�#)��.�!���$"%�!�)�$#��!6������������������������������� ������!��
fichiers de configuration
scripts shells
shell
libZ libTLS libPNG ...
bibliothèque C (lib C)
modules Linux
noyau Linux
Applications
LE.indb 38 08/11/11 16:48Android
Système Linuxembarqué « standard »
![Page 29: LINUX EMBARQUÉ LES DISTRIBUTIONS...GNU vs Android 22 ans pour le noyau, 30 ans pour le système GNU (gcc, binutils, glibC, emacs, etc.) des millions de lignes de code à destination](https://reader033.vdocument.in/reader033/viewer/2022060316/5f0c2f657e708231d43428f3/html5/thumbnails/29.jpg)
L’expertise au service de l’embarqué
![Page 30: LINUX EMBARQUÉ LES DISTRIBUTIONS...GNU vs Android 22 ans pour le noyau, 30 ans pour le système GNU (gcc, binutils, glibC, emacs, etc.) des millions de lignes de code à destination](https://reader033.vdocument.in/reader033/viewer/2022060316/5f0c2f657e708231d43428f3/html5/thumbnails/30.jpg)
L’expertise au service de l’embarqué
![Page 31: LINUX EMBARQUÉ LES DISTRIBUTIONS...GNU vs Android 22 ans pour le noyau, 30 ans pour le système GNU (gcc, binutils, glibC, emacs, etc.) des millions de lignes de code à destination](https://reader033.vdocument.in/reader033/viewer/2022060316/5f0c2f657e708231d43428f3/html5/thumbnails/31.jpg)
L’expertise au service de l’embarqué
![Page 32: LINUX EMBARQUÉ LES DISTRIBUTIONS...GNU vs Android 22 ans pour le noyau, 30 ans pour le système GNU (gcc, binutils, glibC, emacs, etc.) des millions de lignes de code à destination](https://reader033.vdocument.in/reader033/viewer/2022060316/5f0c2f657e708231d43428f3/html5/thumbnails/32.jpg)
L’expertise au service de l’embarqué
![Page 33: LINUX EMBARQUÉ LES DISTRIBUTIONS...GNU vs Android 22 ans pour le noyau, 30 ans pour le système GNU (gcc, binutils, glibC, emacs, etc.) des millions de lignes de code à destination](https://reader033.vdocument.in/reader033/viewer/2022060316/5f0c2f657e708231d43428f3/html5/thumbnails/33.jpg)
L’expertise au service de l’embarqué
Map of package dependencies in the Ubuntu Software Center
![Page 34: LINUX EMBARQUÉ LES DISTRIBUTIONS...GNU vs Android 22 ans pour le noyau, 30 ans pour le système GNU (gcc, binutils, glibC, emacs, etc.) des millions de lignes de code à destination](https://reader033.vdocument.in/reader033/viewer/2022060316/5f0c2f657e708231d43428f3/html5/thumbnails/34.jpg)
L’expertise au service de l’embarqué
LES DÉPENDANCES
■ les briques dépendent les unes des autres
■ grande force de Linux
■ moins d’espace utilisé
■ organisation claire et optimisée
■ source de cauchemars
■ problèmes de compatibilités, d’homogénéité
■ ne rien casser
■ compiler de nouvelles applications
■ explique le système de paquetage et les distributions !
![Page 35: LINUX EMBARQUÉ LES DISTRIBUTIONS...GNU vs Android 22 ans pour le noyau, 30 ans pour le système GNU (gcc, binutils, glibC, emacs, etc.) des millions de lignes de code à destination](https://reader033.vdocument.in/reader033/viewer/2022060316/5f0c2f657e708231d43428f3/html5/thumbnails/35.jpg)
L’expertise au service de l’embarqué
LES DISTRIBUTIONS
![Page 36: LINUX EMBARQUÉ LES DISTRIBUTIONS...GNU vs Android 22 ans pour le noyau, 30 ans pour le système GNU (gcc, binutils, glibC, emacs, etc.) des millions de lignes de code à destination](https://reader033.vdocument.in/reader033/viewer/2022060316/5f0c2f657e708231d43428f3/html5/thumbnails/36.jpg)
L’expertise au service de l’embarqué
■ Qu’est-ce ?
■ « Collection » de logiciels et de configuration selon une certaine organisation
■ constitue le système (« racine », « rootfs »)
■ base de la création du firmware
■ Pourquoi ?
■ dépendances applications/bibliothèques, bibliothèques/bibliothèques, parfois applications/applications
■ notion de « paquets » : application et/ou bibliothèques et (potentiellement) fichiers de configuration
■ mise à jour = évolution du système
■ mises à jour de sécurité !
■ Construction du système (système de compilation / construction de paquets)
■ Patches... Rapidement ingérable « à la main »
![Page 37: LINUX EMBARQUÉ LES DISTRIBUTIONS...GNU vs Android 22 ans pour le noyau, 30 ans pour le système GNU (gcc, binutils, glibC, emacs, etc.) des millions de lignes de code à destination](https://reader033.vdocument.in/reader033/viewer/2022060316/5f0c2f657e708231d43428f3/html5/thumbnails/37.jpg)
L’expertise au service de l’embarqué
DEUX MODÈLES■ communautaire
■ projets libres, animés par une communauté (amateurs éclairés et professionnels, parfois fondations ad-hoc)
■ OpenEmbedded, Ångström, Buildroot, OpenWRT, etc.
■ Linaro : à travers une fondation chapeautée par ARM
■ Android (cas particulier : Google) ; Tizen (Linux Foundation), FirefoxOS (Mozilla Foundation)
■ autres distrib’ Linux « classiques » réadaptées : emdebian, Ubuntu Core, etc. Attention : Distributions binaires
■ commercial
■ sur étagère (COTS), adaptable (service vendu)
■ WindRiver, Sysgo, MontaVista, etc.
■ articulations
■ commercial s’appuie quasiment toujours sur du libre communautaire
■ relations commercial/communautaire (participation, intégration, etc.)
■ groupements d’industriels : OHA, Genivi, Babylone
![Page 38: LINUX EMBARQUÉ LES DISTRIBUTIONS...GNU vs Android 22 ans pour le noyau, 30 ans pour le système GNU (gcc, binutils, glibC, emacs, etc.) des millions de lignes de code à destination](https://reader033.vdocument.in/reader033/viewer/2022060316/5f0c2f657e708231d43428f3/html5/thumbnails/38.jpg)
L’expertise au service de l’embarqué
ENVIRONNEMENTS PRÉINTÉGRÉS/GRAPHIQUES
■ But : base déjà existante, rajouter seulement sa valeur ajoutée
■ Ångström : distribution complète, modulable par génération en ligne (Narcissus), très utilisée pour les POC
■ Android : le grand gagnant pour le marché du CE, mais environnement complet tout Java (sur noyau Linux) incompatible avec une distribution Linux « standard », liant pour l’avenir (apparition cependant de systèmes hybrides)
■ MeeGo : base Linux standard, écosystème cohérent, porté par de grands industriels avant d’être abandonné brutalement au profit de Tizen, rebooté dans un nouveau projet (Mer)
■ Tizen : utilise HTML5 et EFL, porté par Samsung, pourrait tuer Android... si ça sort en version stable un jour !
■ Gnome Mobile (Maemo, OpenMoko, Sugar) : solutions plus ou moins mourantes
■ GPE/OPIE (handelds) : anciennes solutions abandonnées mais toujours utilisées sur de petits projets
■ Sato/Matchbox (Poky/Yocto) : géré par la Linux Foundation
■ EFL : Enlightenment, en frame buffer, très léger, animations
■ Qt for embedded & QML : bibliothèque graphique, très dynamique, mais pas vraiment un environnement
![Page 39: LINUX EMBARQUÉ LES DISTRIBUTIONS...GNU vs Android 22 ans pour le noyau, 30 ans pour le système GNU (gcc, binutils, glibC, emacs, etc.) des millions de lignes de code à destination](https://reader033.vdocument.in/reader033/viewer/2022060316/5f0c2f657e708231d43428f3/html5/thumbnails/39.jpg)
L’expertise au service de l’embarqué
DISTRIBUTIONSSOURCES VS BINAIRES
■ Binaires
■ rapide, tout est déjà compilé (croisé)
■ idéal pour les POC
■ mais manque de maîtrise
■ top-down
■ ajout de paquets seulement « à chaud » (lorsque le système fonctionne sur la cible)
■ concerne : les distributions « classiques » réadaptées (Ubuntu, etc.) + BSP
■ > 80 Mo, souvent ~450 Mo, 2Go
■ Sources
■ lent à mettre en place, tout doit être compilé, après une phase de configuration
■ pour la mise en production : maitrise totale de la génération
■ bottom-up
■ ajout des paquets « à froid » sur l’image du firmware à intégrer (toujours possibilité de le faire « à chaud »)
■ Buildroot, Yocto, OpenWRT, T2, OpenBricks
■ à partir de 2 Mo(Yocto jusqu’à ~1Go)
■ Hybrides
■ très bon compromis : distributions sources pré-compilées
■ permet la rapidité du binaire et la flexibilité des sources
■ point de départ du développement de sa propre configuration de distribution sources
■ par exemple : Angström, OpenWRT
■ de 2,5 Mo à 250 Mo
![Page 40: LINUX EMBARQUÉ LES DISTRIBUTIONS...GNU vs Android 22 ans pour le noyau, 30 ans pour le système GNU (gcc, binutils, glibC, emacs, etc.) des millions de lignes de code à destination](https://reader033.vdocument.in/reader033/viewer/2022060316/5f0c2f657e708231d43428f3/html5/thumbnails/40.jpg)
L’expertise au service de l’embarqué
![Page 41: LINUX EMBARQUÉ LES DISTRIBUTIONS...GNU vs Android 22 ans pour le noyau, 30 ans pour le système GNU (gcc, binutils, glibC, emacs, etc.) des millions de lignes de code à destination](https://reader033.vdocument.in/reader033/viewer/2022060316/5f0c2f657e708231d43428f3/html5/thumbnails/41.jpg)
L’expertise au service de l’embarqué
ENVIRONNEMENTSPRÊTS À L’EMPLOI
■ Buildroot
■ fichiers Makefile en arborescence
■ rapide et efficace mais limité par la simplification
■ peu évolutif, pour les firmwares
‣ idée : simplifier la création d’un système Linux embarqué
‣ télécharge les sources à jour, les compile (croisé)
‣ gère les problématiques de compatibilité, de licences, de création de firmware (limité), etc.
‣ le projet Linaro pour ARM : compilateur, débugger, compatibilité noyau (gestion de puissance), etc.
■ Yocto
■ arborescence plus complexe
■ assez long à mettre en place mais très puissant
■ pérenne, évolution sur le long terme
■ OpenWRT
■ spécialisé pour les routeurs et appareils réseau
■ utilise Buildroot-NG
■ très grande quantité de paquets
![Page 42: LINUX EMBARQUÉ LES DISTRIBUTIONS...GNU vs Android 22 ans pour le noyau, 30 ans pour le système GNU (gcc, binutils, glibC, emacs, etc.) des millions de lignes de code à destination](https://reader033.vdocument.in/reader033/viewer/2022060316/5f0c2f657e708231d43428f3/html5/thumbnails/42.jpg)
L’expertise au service de l’embarqué
LEAN SOFTWARE FACTORY
![Page 43: LINUX EMBARQUÉ LES DISTRIBUTIONS...GNU vs Android 22 ans pour le noyau, 30 ans pour le système GNU (gcc, binutils, glibC, emacs, etc.) des millions de lignes de code à destination](https://reader033.vdocument.in/reader033/viewer/2022060316/5f0c2f657e708231d43428f3/html5/thumbnails/43.jpg)
L’expertise au service de l’embarqué
« J’ai quelqu’un qui maîtrise tout, normalement. »
![Page 44: LINUX EMBARQUÉ LES DISTRIBUTIONS...GNU vs Android 22 ans pour le noyau, 30 ans pour le système GNU (gcc, binutils, glibC, emacs, etc.) des millions de lignes de code à destination](https://reader033.vdocument.in/reader033/viewer/2022060316/5f0c2f657e708231d43428f3/html5/thumbnails/44.jpg)
L’expertise au service de l’embarqué
« Mon système est un poil complexe, mais ça devrait aller. »
![Page 45: LINUX EMBARQUÉ LES DISTRIBUTIONS...GNU vs Android 22 ans pour le noyau, 30 ans pour le système GNU (gcc, binutils, glibC, emacs, etc.) des millions de lignes de code à destination](https://reader033.vdocument.in/reader033/viewer/2022060316/5f0c2f657e708231d43428f3/html5/thumbnails/45.jpg)
L’expertise au service de l’embarqué
« On est arrivés ? »
![Page 46: LINUX EMBARQUÉ LES DISTRIBUTIONS...GNU vs Android 22 ans pour le noyau, 30 ans pour le système GNU (gcc, binutils, glibC, emacs, etc.) des millions de lignes de code à destination](https://reader033.vdocument.in/reader033/viewer/2022060316/5f0c2f657e708231d43428f3/html5/thumbnails/46.jpg)
L’expertise au service de l’embarqué
PROBLÈME DE LA REPRODUCTIBILITÉ
■ un système non-reproductible n’est pas industrialisé
■ nécessite de maîtriser les sources ! Pas de boîte noire !
■ compilation à partir de zéro, automatisée
■ intégration de son propre code source spécifique/propriétaire
![Page 47: LINUX EMBARQUÉ LES DISTRIBUTIONS...GNU vs Android 22 ans pour le noyau, 30 ans pour le système GNU (gcc, binutils, glibC, emacs, etc.) des millions de lignes de code à destination](https://reader033.vdocument.in/reader033/viewer/2022060316/5f0c2f657e708231d43428f3/html5/thumbnails/47.jpg)
L’expertise au service de l’embarqué
INDUSTRIALISER SA DISTRIBUTION LINUX EMBARQUÉ■ passer de la phase d’expérimentation/POC (souvent avec un BSP) à la phase industrielle
■ buts :
■ rendre reproductible
■ rendre solide, fiable
■ optimiser le code, éviter le rework
■ assurer la pérennité dans le temps
■ maîtriser sa chaîne de processus de création et d’intégration
■ facile à comprendre pour le hardware, plus difficile pour le software
■ mettre en place une « usine logicielle » : collection de bonnes pratiques et de bons outils !
![Page 48: LINUX EMBARQUÉ LES DISTRIBUTIONS...GNU vs Android 22 ans pour le noyau, 30 ans pour le système GNU (gcc, binutils, glibC, emacs, etc.) des millions de lignes de code à destination](https://reader033.vdocument.in/reader033/viewer/2022060316/5f0c2f657e708231d43428f3/html5/thumbnails/48.jpg)
L’expertise au service de l’embarqué
SOLUTIONS
![Page 49: LINUX EMBARQUÉ LES DISTRIBUTIONS...GNU vs Android 22 ans pour le noyau, 30 ans pour le système GNU (gcc, binutils, glibC, emacs, etc.) des millions de lignes de code à destination](https://reader033.vdocument.in/reader033/viewer/2022060316/5f0c2f657e708231d43428f3/html5/thumbnails/49.jpg)
L’expertise au service de l’embarqué
YOCTO
![Page 50: LINUX EMBARQUÉ LES DISTRIBUTIONS...GNU vs Android 22 ans pour le noyau, 30 ans pour le système GNU (gcc, binutils, glibC, emacs, etc.) des millions de lignes de code à destination](https://reader033.vdocument.in/reader033/viewer/2022060316/5f0c2f657e708231d43428f3/html5/thumbnails/50.jpg)
L’expertise au service de l’embarqué
ARMONIEUN PRODUIT EXPEMB
■ Yocto overkill pour les problématiques de firmwares simples, nécessite de « mettre les mains dans le cambouis », courbe d’apprentissage lente de par la complexité
■ Armonie : prise en main automatisée fondée sur un système buildroot, intégré dans Eclipse
■ créer sa distribution en cochant les briques à intégrer
■ se concentrer sur son code
■ orienté pour le développement de code métier
■ installation & configuration de la carte et de l’environnement de dev automatique
![Page 51: LINUX EMBARQUÉ LES DISTRIBUTIONS...GNU vs Android 22 ans pour le noyau, 30 ans pour le système GNU (gcc, binutils, glibC, emacs, etc.) des millions de lignes de code à destination](https://reader033.vdocument.in/reader033/viewer/2022060316/5f0c2f657e708231d43428f3/html5/thumbnails/51.jpg)
L’expertise au service de l’embarqué
Call the experts!
![Page 52: LINUX EMBARQUÉ LES DISTRIBUTIONS...GNU vs Android 22 ans pour le noyau, 30 ans pour le système GNU (gcc, binutils, glibC, emacs, etc.) des millions de lignes de code à destination](https://reader033.vdocument.in/reader033/viewer/2022060316/5f0c2f657e708231d43428f3/html5/thumbnails/52.jpg)
L’expertise au service de l’embarqué
Get trained!
![Page 53: LINUX EMBARQUÉ LES DISTRIBUTIONS...GNU vs Android 22 ans pour le noyau, 30 ans pour le système GNU (gcc, binutils, glibC, emacs, etc.) des millions de lignes de code à destination](https://reader033.vdocument.in/reader033/viewer/2022060316/5f0c2f657e708231d43428f3/html5/thumbnails/53.jpg)
L’expertise au service de l’embarqué
![Page 54: LINUX EMBARQUÉ LES DISTRIBUTIONS...GNU vs Android 22 ans pour le noyau, 30 ans pour le système GNU (gcc, binutils, glibC, emacs, etc.) des millions de lignes de code à destination](https://reader033.vdocument.in/reader033/viewer/2022060316/5f0c2f657e708231d43428f3/html5/thumbnails/54.jpg)
L’expertise au service de l’embarqué
LE LIVRE
■Linux embarquécomprendre, développer, réussir(éd. Pearson, déc 2011, 460 pp.)
■management, économie, juridique, stratégie, etc.
■ technique
■ plaidoyer pour des projets bien menés