Upload
christian-charreyre
View
1.976
Download
2
Embed Size (px)
DESCRIPTION
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
Ce do
cume
nt es
t le pr
oprié
té de
CIO
Infor
matiq
ue In
dustr
ielle
et ne
peut
être d
iffusé
sans
son a
utoris
ation
écrite
Conférence le libre en milieu industriel - Solutions Linux 2007 - 30 Janvier 2007
Le libre en milieuLe libre en milieuindustrielindustriel
Retour d'expériencesRetour d'expériences
Ce do
cume
nt es
t le pr
oprié
té de
CIO
Infor
matiq
ue In
dustr
ielle
et ne
peut
être d
iffusé
sans
son a
utoris
ation
écrite
Conférence le libre en milieu industriel - Solutions Linux 2007 - 30 Janvier 2007
CIO Informatique Industrielle
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
Ce do
cume
nt es
t le pr
oprié
té de
CIO
Infor
matiq
ue In
dustr
ielle
et ne
peut
être d
iffusé
sans
son a
utoris
ation
écrite
Conférence le libre en milieu industriel - Solutions Linux 2007 - 30 Janvier 2007
Linux en milieu industriel
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
Linux disponible sur les 5 architectures les plus utilisées
Processeur utilisé dans les applications embarquées(Embedded Linux Market Survey 2005 LinuxDevices.com)
Ce do
cume
nt es
t le pr
oprié
té de
CIO
Infor
matiq
ue In
dustr
ielle
et ne
peut
être d
iffusé
sans
son a
utoris
ation
écrite
Conférence le libre en milieu industriel - Solutions Linux 2007 - 30 Janvier 2007
Linux chez CIO
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.
Ce do
cume
nt es
t le pr
oprié
té de
CIO
Infor
matiq
ue In
dustr
ielle
et ne
peut
être d
iffusé
sans
son a
utoris
ation
écrite
Conférence le libre en milieu industriel - Solutions Linux 2007 - 30 Janvier 2007
Linux chez CIO
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
2000 2002 2004 20060
10
20
30
40
50
60
70
80
90
100
Projets basés sur Linux
% C.A.
Ce do
cume
nt es
t le pr
oprié
té de
CIO
Infor
matiq
ue In
dustr
ielle
et ne
peut
être d
iffusé
sans
son a
utoris
ation
écrite
Conférence le libre en milieu industriel - Solutions Linux 2007 - 30 Janvier 2007
Linux chez CIO
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
Ce do
cume
nt es
t le pr
oprié
té de
CIO
Infor
matiq
ue In
dustr
ielle
et ne
peut
être d
iffusé
sans
son a
utoris
ation
écrite
Conférence le libre en milieu industriel - Solutions Linux 2007 - 30 Janvier 2007
Le projet : Contrôle/Commande sur Linux/RTAI
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
Ce do
cume
nt es
t le pr
oprié
té de
CIO
Infor
matiq
ue In
dustr
ielle
et ne
peut
être d
iffusé
sans
son a
utoris
ation
écrite
Conférence le libre en milieu industriel - Solutions Linux 2007 - 30 Janvier 2007
Les contraintes du projet
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 solutionPas de processus d'installation complexe
Résistance aux coupures brutales
Stabilité des solutions retenues
Ce do
cume
nt es
t le pr
oprié
té de
CIO
Infor
matiq
ue In
dustr
ielle
et ne
peut
être d
iffusé
sans
son a
utoris
ation
écrite
Conférence le libre en milieu industriel - Solutions Linux 2007 - 30 Janvier 2007
Les choix de design
DéterminismeEvaluation 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
RobustesseEviter 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
InstallationInstallation de l'OS et de l'applicatif en 1 seule passe (3 disquettes d'installation)
Ce do
cume
nt es
t le pr
oprié
té de
CIO
Infor
matiq
ue In
dustr
ielle
et ne
peut
être d
iffusé
sans
son a
utoris
ation
écrite
Conférence le libre en milieu industriel - Solutions Linux 2007 - 30 Janvier 2007
Les difficultés rencontrées
Complexité due à RTAI Développement en mode kernel
Pas de protection mémoire (similaire à certains OS temps réel)
Debug plus difficilePossibilité 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 RTAIEchanges entre parties RTAI (modules kernel) et process Linux par des mécanismes d'IPC
Absence de drivers RTAIMigration des drivers Linux vers RTAI
Ce do
cume
nt es
t le pr
oprié
té de
CIO
Infor
matiq
ue In
dustr
ielle
et ne
peut
être d
iffusé
sans
son a
utoris
ation
écrite
Conférence le libre en milieu industriel - Solutions Linux 2007 - 30 Janvier 2007
Les difficultés rencontrées
Allocateur mémoire RTAINécessité d'allouer dynamiquement de la mémoire partagée entre Linux et RTAI
RTAI propose 2 allocateurs
Allocateur dynamique pour mémoire interne à RTAIAllocateur 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
Ce do
cume
nt es
t le pr
oprié
té de
CIO
Infor
matiq
ue In
dustr
ielle
et ne
peut
être d
iffusé
sans
son a
utoris
ation
écrite
Conférence le libre en milieu industriel - Solutions Linux 2007 - 30 Janvier 2007
Les aspects positifs
Solution réellement temps réel : temps de cycle de 1ms strictement respecté
Solution facilement embarquableEmpreinte disque inférieure à 3 Mo
Empreinte mémoire de l'ordre de quelques Mo
Accessibilité des sources de la plateforme systèmePossibilité de correction de bugs bloquants
Possibilité de customisation pour besoins propres (nouvel allocateur)
Ce do
cume
nt es
t le pr
oprié
té de
CIO
Infor
matiq
ue In
dustr
ielle
et ne
peut
être d
iffusé
sans
son a
utoris
ation
écrite
Conférence le libre en milieu industriel - Solutions Linux 2007 - 30 Janvier 2007
Le projet : Portage OS9 vers Linux
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
Ce do
cume
nt es
t le pr
oprié
té de
CIO
Infor
matiq
ue In
dustr
ielle
et ne
peut
être d
iffusé
sans
son a
utoris
ation
écrite
Conférence le libre en milieu industriel - Solutions Linux 2007 - 30 Janvier 2007
La démarche
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 LinuxFacilité de développement et de debug
Pas besoin de hardware spécifique au niveau applicatif
2ème phase de passage sur le hardware définitifProcesseur PowerQuick (architecture PowerPC)
Ce do
cume
nt es
t le pr
oprié
té de
CIO
Infor
matiq
ue In
dustr
ielle
et ne
peut
être d
iffusé
sans
son a
utoris
ation
écrite
Conférence le libre en milieu industriel - Solutions Linux 2007 - 30 Janvier 2007
Les difficultés rencontrées
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...)
Ce do
cume
nt es
t le pr
oprié
té de
CIO
Infor
matiq
ue In
dustr
ielle
et ne
peut
être d
iffusé
sans
son a
utoris
ation
écrite
Conférence le libre en milieu industriel - Solutions Linux 2007 - 30 Janvier 2007
Les difficultés rencontrées
Modèle de mémoireApplication 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)
Ce do
cume
nt es
t le pr
oprié
té de
CIO
Infor
matiq
ue In
dustr
ielle
et ne
peut
être d
iffusé
sans
son a
utoris
ation
écrite
Conférence le libre en milieu industriel - Solutions Linux 2007 - 30 Janvier 2007
Les difficultés rencontrées
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
Ce do
cume
nt es
t le pr
oprié
té de
CIO
Infor
matiq
ue In
dustr
ielle
et ne
peut
être d
iffusé
sans
son a
utoris
ation
écrite
Conférence le libre en milieu industriel - Solutions Linux 2007 - 30 Janvier 2007
Les aspects positifs
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 applicatifReprises 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
Ce do
cume
nt es
t le pr
oprié
té de
CIO
Infor
matiq
ue In
dustr
ielle
et ne
peut
être d
iffusé
sans
son a
utoris
ation
écrite
Conférence le libre en milieu industriel - Solutions Linux 2007 - 30 Janvier 2007
Le projet : Redondance Ethernet
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
Ce do
cume
nt es
t le pr
oprié
té de
CIO
Infor
matiq
ue In
dustr
ielle
et ne
peut
être d
iffusé
sans
son a
utoris
ation
écrite
Conférence le libre en milieu industriel - Solutions Linux 2007 - 30 Janvier 2007
Le concept
Trafic normalTrafic redondé
Duplication du trafic
Filtrage des paquets dupliqués
Ce do
cume
nt es
t le pr
oprié
té de
CIO
Infor
matiq
ue In
dustr
ielle
et ne
peut
être d
iffusé
sans
son a
utoris
ation
écrite
Conférence le libre en milieu industriel - Solutions Linux 2007 - 30 Janvier 2007
Pourquoi Linux ?
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'ouvertureChoix 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
Ce do
cume
nt es
t le pr
oprié
té de
CIO
Infor
matiq
ue In
dustr
ielle
et ne
peut
être d
iffusé
sans
son a
utoris
ation
écrite
Conférence le libre en milieu industriel - Solutions Linux 2007 - 30 Janvier 2007
La mise en oeuvre
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
Ce do
cume
nt es
t le pr
oprié
té de
CIO
Infor
matiq
ue In
dustr
ielle
et ne
peut
être d
iffusé
sans
son a
utoris
ation
écrite
Conférence le libre en milieu industriel - Solutions Linux 2007 - 30 Janvier 2007
La mise en oeuvre
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
Ce do
cume
nt es
t le pr
oprié
té de
CIO
Infor
matiq
ue In
dustr
ielle
et ne
peut
être d
iffusé
sans
son a
utoris
ation
écrite
Conférence le libre en milieu industriel - Solutions Linux 2007 - 30 Janvier 2007
Les aspects positifs
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)
Ce do
cume
nt es
t le pr
oprié
té de
CIO
Infor
matiq
ue In
dustr
ielle
et ne
peut
être d
iffusé
sans
son a
utoris
ation
écrite
Conférence le libre en milieu industriel - Solutions Linux 2007 - 30 Janvier 2007
Quelques autres projets concrets
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 militaireCartes VME PowerPC sous Linux 2.6, drivers + applicatif
Nouvelle carte basée sur processeur XScaleDéveloppements système : Bootloader, Boot Linux, drivers
Création du File System de base incluant services réseau, paramétrage Web, supervision SNMP
Ce do
cume
nt es
t le pr
oprié
té de
CIO
Infor
matiq
ue In
dustr
ielle
et ne
peut
être d
iffusé
sans
son a
utoris
ation
écrite
Conférence le libre en milieu industriel - Solutions Linux 2007 - 30 Janvier 2007
La gestion des évolutions
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
Ce do
cume
nt es
t le pr
oprié
té de
CIO
Infor
matiq
ue In
dustr
ielle
et ne
peut
être d
iffusé
sans
son a
utoris
ation
écrite
Conférence le libre en milieu industriel - Solutions Linux 2007 - 30 Janvier 2007
Synthèse
Intérêt de l'Open Source pour la possibilité d'accès aux sourcesCompré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 LinuxDoxygen 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
Ce do
cume
nt es
t le pr
oprié
té de
CIO
Infor
matiq
ue In
dustr
ielle
et ne
peut
être d
iffusé
sans
son a
utoris
ation
écrite
Conférence le libre en milieu industriel - Solutions Linux 2007 - 30 Janvier 2007
Synthèse
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
Ce do
cume
nt es
t le pr
oprié
té de
CIO
Infor
matiq
ue In
dustr
ielle
et ne
peut
être d
iffusé
sans
son a
utoris
ation
écrite
Conférence le libre en milieu industriel - Solutions Linux 2007 - 30 Janvier 2007
Pour aller plus loin
Pour toute information complémentaire :Visitez notre site Web http://www.cioinfoindus.fr
Contactez nous :
Tél : 04 95 05 19 41Mail : mailto:[email protected]
Possibilité d'envoi des slides de la présentation sur demande
Ce do
cume
nt es
t le pr
oprié
té de
CIO
Infor
matiq
ue In
dustr
ielle
et ne
peut
être d
iffusé
sans
son a
utoris
ation
écrite
Conférence le libre en milieu industriel - Solutions Linux 2007 - 30 Janvier 2007
Questions ?