Cette présentation décrit des utilisations de logiciel libre (Linux) pour des développements informatiques dans des projets industriels, embarqués et temps réel.
Le portage d'une application écrite pour des RTOS traditionnels vers Linux est également abordé.
Le document a été présenté lors de Solutions Linux 2007
Concevoir un système Linux embarqué avec Yocto Project
Logiciels libres en milieu industriel
1. Ce document est le propriété de CIO Informatique Industrielle et ne peut être diffusé sans son autorisation écrite
Le libre en milieu
industriel
Retour d'expériences
Conférence le libre en milieu industriel - Solutions Linux 2007 - 30 Janvier 2007
2. CIO Informatique Industrielle
Ce document est le propriété de CIO Informatique Industrielle et ne peut être diffusé sans son autorisation écrite
Société d'ingénierie en informatique industrielle et technique
Au service de nos clients depuis 1990
Une équipe de 15 spécialistes pour accompagner les projets
industriels ou militaires
La culture des systèmes ouverts et normalisés, l'expertise de
l'embarqué et du temps réel
Investissement sur Linux depuis 2000
Siège à St Etienne
Agence à Marseille
Membre de Libertis, association de SSLL en région PACA
http://www.libertis.org
Conférence le libre en milieu industriel - Solutions Linux 2007 - 30 Janvier 2007
3. Linux en milieu industriel
Ce document est le propriété de CIO Informatique Industrielle et ne peut être diffusé sans son autorisation écrite
Des caractéristiques séduisantes pour les besoins industriels :
Possibilité de développement croisé
Adaptation de l'OS pour devices réduits
Solutions pour prise en compte de contraintes temps réel
Très grand nombre d'architectures supportées
Processeur utilisé dans les applications embarquées
(Embedded Linux Market Survey 2005 LinuxDevices.com)
Linux disponible sur les 5 architectures les plus utilisées
Conférence le libre en milieu industriel - Solutions Linux 2007 - 30 Janvier 2007
4. Linux chez CIO
Ce document est le propriété de CIO Informatique Industrielle et ne peut être diffusé sans son autorisation écrite
Projets types :
Logiciels sur cahier des charges pour des clients du monde industriel ou
de la défense
Comportent généralement des aspects temps réel et/ou embarqué, et des
interactions avec le monde réel
OS utilisés jusqu'en 2000 :
Windows pour les IHM et quelques projets de contrôle/commande
RTOS traditionnels tels OS9, VxWorks, QNX etc....
Action volontariste en direction de Linux à partir de 2000
Démarche basée sur :
Connaissance préalable d'Unix
Intuition que la puissance d'Unix sur des bases matérielles accessibles
(PC) serait une association intéressante.
Conférence le libre en milieu industriel - Solutions Linux 2007 - 30 Janvier 2007
5. Linux chez CIO
Ce document est le propriété de CIO Informatique Industrielle et ne peut être diffusé sans son autorisation écrite
Une démarche en 3 temps :
Prise en compte de la technologie sur projet de R&D interne
Communication sur Linux auprès de la clientèle, beaucoup d'intérêt mais
peu de projets
Décollage important des projets industriels en Linux
Projets basés sur Linux
100
90
80
70
60
50 % C.A.
40
30
20
10
0
2000 2002 2004 2006
Conférence le libre en milieu industriel - Solutions Linux 2007 - 30 Janvier 2007
6. Linux chez CIO
Ce document est le propriété de CIO Informatique Industrielle et ne peut être diffusé sans son autorisation écrite
Montée en puissance en plusieurs phases :
Remplacement d'OS spécialisés et propriétaires sur architecture 68K,
PowerPC par Linux sur architecture X86 (banalisation des composants
issus du monde PC)
Essaimage sur d'autres architectures
Actuellement utilisé sur :
Projets embarqués sur X86, PowerPC, Arm, bientôt FPGA et micro
contrôleurs (2007)
Projets temps réel avec extensions RTAI et Xenomai
Présentation de quelques projets
Conférence le libre en milieu industriel - Solutions Linux 2007 - 30 Janvier 2007
7. Le projet : Contrôle/Commande
sur Linux/RTAI
Ce document est le propriété de CIO Informatique Industrielle et ne peut être diffusé sans son autorisation écrite
Buts du projet :
Contrôler une machine de production à partir d'un PC industriel sous
Linux (machine d'usinage)
Projet pilote pour valider la technologie Linux chez le client
Projet réalisé en 2001
Conférence le libre en milieu industriel - Solutions Linux 2007 - 30 Janvier 2007
8. Les contraintes du projet
Ce document est le propriété de CIO Informatique Industrielle et ne peut être diffusé sans son autorisation écrite
Nécessité d'un déterminisme temps réel
Évaluation des solutions compatibles avec un déterminisme à la
milliseconde
Masquage des aspects informatiques de la solution
Pas de processus d'installation complexe
Résistance aux coupures brutales
Stabilité des solutions retenues
Conférence le libre en milieu industriel - Solutions Linux 2007 - 30 Janvier 2007
9. Les choix de design
Ce document est le propriété de CIO Informatique Industrielle et ne peut être diffusé sans son autorisation écrite
Déterminisme
Evaluation des solutions possibles : patches du kernel, RTLinux, RTAI
Patches disponibles permettent seulement du soft temps réel, insuffisant
RTAI plus riche au niveau API que RTLinux, retenu
Robustesse
Eviter les corruptions de File System dûes aux arrêts brutaux (pas encore
de File System journalisé)
File System monté en Ram Disk
Une partie minimale du File System sur disque dur pour mise à jour des
données variables
Installation
Installation de l'OS et de l'applicatif en 1 seule passe (3 disquettes
d'installation)
Conférence le libre en milieu industriel - Solutions Linux 2007 - 30 Janvier 2007
10. Les difficultés rencontrées
Ce document est le propriété de CIO Informatique Industrielle et ne peut être diffusé sans son autorisation écrite
Complexité due à RTAI
Développement en mode kernel
Pas de protection mémoire (similaire à certains OS temps réel)
Debug plus difficile
Possibilité de plantage complet du système(amélioré depuis en « trappant » les
exceptions)
Design de l'application réparti entre Linux et RTAI
Communication avec l'extérieur sous Linux
Processus de contrôle commande sous RTAI
Echanges entre parties RTAI (modules kernel) et process Linux par des
mécanismes d'IPC
Absence de drivers RTAI
Migration des drivers Linux vers RTAI
Conférence le libre en milieu industriel - Solutions Linux 2007 - 30 Janvier 2007
11. Les difficultés rencontrées
Ce document est le propriété de CIO Informatique Industrielle et ne peut être diffusé sans son autorisation écrite
Allocateur mémoire RTAI
Nécessité d'allouer dynamiquement de la mémoire partagée entre Linux
et RTAI
RTAI propose 2 allocateurs
Allocateur dynamique pour mémoire interne à RTAI
Allocateur non dynamique pour mémoire partagée entre RTAI et Linux
CIO crée un nouvel allocateur, synthèse des 2 allocateurs existants
Illustration concrète des avantages de l'Open Source
Documentation pas toujours à jour
Conférence le libre en milieu industriel - Solutions Linux 2007 - 30 Janvier 2007
12. Les aspects positifs
Ce document est le propriété de CIO Informatique Industrielle et ne peut être diffusé sans son autorisation écrite
Solution réellement temps réel : temps de cycle de 1ms
strictement respecté
Solution facilement embarquable
Empreinte disque inférieure à 3 Mo
Empreinte mémoire de l'ordre de quelques Mo
Accessibilité des sources de la plateforme système
Possibilité de correction de bugs bloquants
Possibilité de customisation pour besoins propres (nouvel allocateur)
Conférence le libre en milieu industriel - Solutions Linux 2007 - 30 Janvier 2007
13. Le projet : Portage OS9 vers
Linux
Ce document est le propriété de CIO Informatique Industrielle et ne peut être diffusé sans son autorisation écrite
Buts du projet :
Remplacement d'une architecture ancienne 68K/OS9 par une
architecture PowerQuick/Linux
Assurer la faisabilité et estimer les coûts de portage sur une partie de
l'application du client (pile de gestion SNMP de l'équipement)
Projet réalisé fin 2004
Conférence le libre en milieu industriel - Solutions Linux 2007 - 30 Janvier 2007
14. La démarche
Ce document est le propriété de CIO Informatique Industrielle et ne peut être diffusé sans son autorisation écrite
Travailler au niveau système pour minimiser les coûts de portage
Basée sur une bonne connaissance des OS de départ et d'arrivée
Création de wrappers sous forme de fichiers headers ou de librairie de
transition
1ère phase de portage sur un PC Linux
Facilité de développement et de debug
Pas besoin de hardware spécifique au niveau applicatif
2ème phase de passage sur le hardware définitif
Processeur PowerQuick (architecture PowerPC)
Conférence le libre en milieu industriel - Solutions Linux 2007 - 30 Janvier 2007
15. Les difficultés rencontrées
Ce document est le propriété de CIO Informatique Industrielle et ne peut être diffusé sans son autorisation écrite
Qualité du code source initial :
Compilateur OS9 laxiste (car ancien)
Compilateur GCC actuel beaucoup moins tolérant
Des portions de code à reprendre pour passer la compilation
Problèmes d'alignement des structures de données :
Différences d 'alignement entre compilateurs OS9 et Linux
Problème pour les échanges sur le réseau
Pas de mise des données au format réseau :
Problème révélé par la phase 1 de travail sur PC Linux (Intel vs Motorola)
Passage de toutes les données réseau par les routines de mise au format
réseau (htonl, htons, ntohl, ntohs etc...)
Conférence le libre en milieu industriel - Solutions Linux 2007 - 30 Janvier 2007
16. Les difficultés rencontrées
Ce document est le propriété de CIO Informatique Industrielle et ne peut être diffusé sans son autorisation écrite
Modèle de mémoire
Application multi tâches avec de nombreuses structures de données
partagées
OS9 utilisé en mémoire à plat – Linux impose une mémoire segmentée
Les structures de données partagées véhiculent des pointeurs
Les zones de mémoire partagées sont situées à des adresses différentes
selon les process Linux incohérence des pointeurs
2 solutions :
Remplacer les pointeurs par des offsets
Mapper les mémoires partagées à la même adresse pour tous les process
2nde solution adoptée pour minimiser la réécriture, mais solution moins
sûre (mapping dépendant de l'évolution de chaque process)
Conférence le libre en milieu industriel - Solutions Linux 2007 - 30 Janvier 2007
17. Les difficultés rencontrées
Ce document est le propriété de CIO Informatique Industrielle et ne peut être diffusé sans son autorisation écrite
Utilisation massive de signaux et d'alarmes temporelles :
OS9 permet un très grand nombre de signaux users, et de multiples
alarmes armées en parallèle
Nécessité de multiplexer les signaux users sous Linux
Traitement des alarmes temporelles dans des threads d'alarme
Conférence le libre en milieu industriel - Solutions Linux 2007 - 30 Janvier 2007
18. Les aspects positifs
Ce document est le propriété de CIO Informatique Industrielle et ne peut être diffusé sans son autorisation écrite
Démarche en 2 phases (PC puis PowerQuick) réussie code
portable sur toute architecture Linux
Confort de la mise au point sur le PC de développement, en natif
Peu de reprise du code applicatif
Reprises liées au changement de compilateur (modulo la solution retenue
pour la mapping mémoire)
Traitement « en transparence » du changement d'OS au niveau du fichier
header et de la librairie de transition
Validation de la faisabilité de porter d'un RTOS assez spécifique
à Linux (modèle mémoire, signaux, alarmes etc...)
Portage réalisé dans les budgets initialement prévus
possibilité d'extrapoler le coût du portage global de l'application
Conférence le libre en milieu industriel - Solutions Linux 2007 - 30 Janvier 2007
19. Le projet : Redondance
Ethernet
Ce document est le propriété de CIO Informatique Industrielle et ne peut être diffusé sans son autorisation écrite
Buts du projet :
Développer un équipement assurant la redondance d'un réseau Ethernet
La redondance doit rester transparente aux applications (déjà existantes)
Le matériel doit être très facilement modifiable (architecture processeur,
facteur de forme etc...)
Équipement réalisé à partir d'une CPU et de 3 ports réseau
Ethernet
Conférence le libre en milieu industriel - Solutions Linux 2007 - 30 Janvier 2007
20. Le concept
Ce document est le propriété de CIO Informatique Industrielle et ne peut être diffusé sans son autorisation écrite
Duplication du trafic
Filtrage des paquets dupliqués
Trafic normal
Trafic redondé
Conférence le libre en milieu industriel - Solutions Linux 2007 - 30 Janvier 2007
21. Pourquoi Linux ?
Ce document est le propriété de CIO Informatique Industrielle et ne peut être diffusé sans son autorisation écrite
Le client souhaitait disposer du code source de l'ensemble du
logiciel :
Système
Applicatif
Possibilité de réaliser le produit avec le maximum d'ouverture
Choix de la CPU le plus large possible (Intel, PPC, Arm)
Couverture la plus large possible en terme de chipset Ethernet
Nécessité d'une application totalement enfouie :
Logiciel boite noire
Temps de démarrage réduit
Logiciel assimilable à un firmware
Qualité des stacks réseau de Linux
Conférence le libre en milieu industriel - Solutions Linux 2007 - 30 Janvier 2007
22. La mise en oeuvre
Ce document est le propriété de CIO Informatique Industrielle et ne peut être diffusé sans son autorisation écrite
Projet réalisé sur :
Architecture PowerQuick (PPC) : CPU disposant de 3 ports Ethernet
Architecture Intel : CPU + carte réseau Ethernet additionnelle dans rack
Compact PCI
Application travaillant au niveau 802.3 en mode promiscuous
Génération de trames au format TCP/IP pour supervision de
l'équipement
1ère version développée de manière classique, sous forme de
processus
2nde version développée sous forme de kernel module pour
optimiser la performance
Nécessité de modifier légèrement le code d'un driver Ethernet
pour exploiter le mode promiscuous
Conférence le libre en milieu industriel - Solutions Linux 2007 - 30 Janvier 2007
23. La mise en oeuvre
Ce document est le propriété de CIO Informatique Industrielle et ne peut être diffusé sans son autorisation écrite
Réalisation d'une empreinte de faible taille pour flashage
File system Linux minimal avec lancement de l'application de
gestion de la redondance, aucune interaction avec un utilisateur
Pas d'adresse IP au niveau de l'équipement pour permettre un
remplacement sans reconfiguration
Conférence le libre en milieu industriel - Solutions Linux 2007 - 30 Janvier 2007
24. Les aspects positifs
Ce document est le propriété de CIO Informatique Industrielle et ne peut être diffusé sans son autorisation écrite
Application effectivement portable :
Réalisée sur architecture PPC et Intel
Drivers Ethernet internes au PowerQuick (FEC) et Intel EtherExpress Pro
utilisés
Temps de mise en route très court :
Quinzaine de secondes pour Linux et applicatif
Temps du BIOS sur architecture Intel incompressible
Image compacte flashable dans quelques Mo, application
totalement enfouie
Très peu de perte de bande passante ou de retard induit dans la
version optimisée (module kernel)
Conférence le libre en milieu industriel - Solutions Linux 2007 - 30 Janvier 2007
25. Quelques autres projets
concrets
Ce document est le propriété de CIO Informatique Industrielle et ne peut être diffusé sans son autorisation écrite
Boîtier enregistreur pour l'industrie automobile :
CPU PC104 + carte DSP + carte CAN sous Linux 2.4 + RTAI, portage
des drivers + squelette applicatif
Appareil d'analyse médicale :
CPU ARM, Linux 2.6 + librairies graphiques légères, génération et
installation de l'environnement, automatisation de la création de l'image
Concentrateur de données embarqué sur engin militaire
Cartes VME PowerPC sous Linux 2.6, drivers + applicatif
Nouvelle carte basée sur processeur XScale
Développements système : Bootloader, Boot Linux, drivers
Création du File System de base incluant services réseau, paramétrage
Web, supervision SNMP
Conférence le libre en milieu industriel - Solutions Linux 2007 - 30 Janvier 2007
26. La gestion des évolutions
Ce document est le propriété de CIO Informatique Industrielle et ne peut être diffusé sans son autorisation écrite
Politique de versions :
Ne pas courir derrière la nouveauté
Attendre des versions de kernel mineure suffisamment stables (> 15)
Geler au maximum une version validée, et n'en changer qu'en cas de bug
bloquant
En cas de bug bloquant, plusieurs possibilités :
Correction par soi même à partir des sources
Application sélective de patch(s) pour corriger localement le bug
Changement global de version
Conférence le libre en milieu industriel - Solutions Linux 2007 - 30 Janvier 2007
27. Synthèse
Ce document est le propriété de CIO Informatique Industrielle et ne peut être diffusé sans son autorisation écrite
Intérêt de l'Open Source pour la possibilité d'accès aux sources
Compréhension / mise au point, corrections etc...
Ne pas tomber dans une analyse exhaustive du source (un industriel
n'est pas une université !!!)
Richesse des outils de génie logiciel liés au monde Linux
Doxygen pour la documentation
CVS pour gestion de version etc...
Une plateforme technique arrivée à maturité
Pour l'embarqué
Support de multiples architectures
Possibilité de viser quelques Mo de Flash et de RAM (ex: 8 Mo Flash/16 Mo
RAM)
Pour le temps réel, mais au prix de l'utilisation d'extensions si l'on vise du
temps réel dur
Conférence le libre en milieu industriel - Solutions Linux 2007 - 30 Janvier 2007
28. Synthèse
Ce document est le propriété de CIO Informatique Industrielle et ne peut être diffusé sans son autorisation écrite
Gratuité des outils de développement issus du monde libre
Pas de risque lié à l'évolution commerciale d'une société
Rachat
Changement de stratégie
Déplacement des coûts de l'acquisition d'outils à l'acquisition de
compétences
Fort potentiel technique des solutions, dynamisme du développement
Phase d'apprentissage à prévoir : ne pas réinventer la roue, support
différent du modèle traditionnel etc....
Absence d'interlocuteur central, mais possibilité d'appui par la
communauté ou des sociétés spécialisées telle CIO
Conférence le libre en milieu industriel - Solutions Linux 2007 - 30 Janvier 2007
29. Pour aller plus loin
Ce document est le propriété de CIO Informatique Industrielle et ne peut être diffusé sans son autorisation écrite
Pour toute information complémentaire :
Visitez notre site Web http://www.cioinfoindus.fr
Contactez nous :
Tél : 04 95 05 19 41
Mail : mailto:christian.charreyre@cioinfoindus.fr
Possibilité d'envoi des slides de la présentation sur demande
Conférence le libre en milieu industriel - Solutions Linux 2007 - 30 Janvier 2007
30. Conférence le libre en milieu industriel
-
Questions ?
Solutions Linux 2007
-
30 Janvier 2007
Ce document est le propriété de CIO Informatique Industrielle et ne peut être diffusé sans son autorisation écrite