Click here to load reader

Logiciels libres en milieu industriel

  • View
    1.970

  • 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

Text of Logiciels libres en milieu industriel

  • 1. Ce document est le proprit de CIO Informatique Industrielle et ne peut tre diffus sans son autorisation crite Le libre en milieu industriel Retour d'expriences Confrence le libre en milieu industriel - Solutions Linux 2007 - 30 Janvier 2007
  • 2. CIO Informatique Industrielle Ce document est le proprit de CIO Informatique Industrielle et ne peut tre diffus sans son autorisation crite Socit d'ingnierie en informatique industrielle et technique Au service de nos clients depuis 1990 Une quipe de 15 spcialistes pour accompagner les projets industriels ou militaires La culture des systmes ouverts et normaliss, l'expertise de l'embarqu et du temps rel Investissement sur Linux depuis 2000 Sige St Etienne Agence Marseille Membre de Libertis, association de SSLL en rgion PACA http://www.libertis.org Confrence le libre en milieu industriel - Solutions Linux 2007 - 30 Janvier 2007
  • 3. Linux en milieu industriel Ce document est le proprit de CIO Informatique Industrielle et ne peut tre diffus sans son autorisation crite Des caractristiques sduisantes pour les besoins industriels : Possibilit de dveloppement crois Adaptation de l'OS pour devices rduits Solutions pour prise en compte de contraintes temps rel Trs grand nombre d'architectures supportes Processeur utilis dans les applications embarques (Embedded Linux Market Survey 2005 LinuxDevices.com) Linux disponible sur les 5 architectures les plus utilises Confrence le libre en milieu industriel - Solutions Linux 2007 - 30 Janvier 2007
  • 4. Linux chez CIO Ce document est le proprit 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 dfense Comportent gnralement des aspects temps rel et/ou embarqu, et des interactions avec le monde rel OS utiliss jusqu'en 2000 : Windows pour les IHM et quelques projets de contrle/commande RTOS traditionnels tels OS9, VxWorks, QNX etc.... Action volontariste en direction de Linux partir de 2000 Dmarche base sur : Connaissance pralable d'Unix Intuition que la puissance d'Unix sur des bases matrielles accessibles (PC) serait une association intressante. Confrence le libre en milieu industriel - Solutions Linux 2007 - 30 Janvier 2007
  • 5. Linux chez CIO Ce document est le proprit de CIO Informatique Industrielle et ne peut tre diffus sans son autorisation crite Une dmarche en 3 temps : Prise en compte de la technologie sur projet de R&D interne Communication sur Linux auprs de la clientle, beaucoup d'intrt mais peu de projets Dcollage important des projets industriels en Linux Projets bass sur Linux 100 90 80 70 60 50 % C.A. 40 30 20 10 0 2000 2002 2004 2006 Confrence le libre en milieu industriel - Solutions Linux 2007 - 30 Janvier 2007
  • 6. Linux chez CIO Ce document est le proprit de CIO Informatique Industrielle et ne peut tre diffus sans son autorisation crite Monte en puissance en plusieurs phases : Remplacement d'OS spcialiss et propritaires 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 embarqus sur X86, PowerPC, Arm, bientt FPGA et micro contrleurs (2007) Projets temps rel avec extensions RTAI et Xenomai Prsentation de quelques projets Confrence le libre en milieu industriel - Solutions Linux 2007 - 30 Janvier 2007
  • 7. Le projet : Contrle/Commande sur Linux/RTAI Ce document est le proprit de CIO Informatique Industrielle et ne peut tre diffus sans son autorisation crite Buts du projet : Contrler 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 ralis en 2001 Confrence le libre en milieu industriel - Solutions Linux 2007 - 30 Janvier 2007
  • 8. Les contraintes du projet Ce document est le proprit de CIO Informatique Industrielle et ne peut tre diffus sans son autorisation crite Ncessit d'un dterminisme temps rel valuation des solutions compatibles avec un dterminisme la milliseconde Masquage des aspects informatiques de la solution Pas de processus d'installation complexe Rsistance aux coupures brutales Stabilit des solutions retenues Confrence le libre en milieu industriel - Solutions Linux 2007 - 30 Janvier 2007
  • 9. Les choix de design Ce document est le proprit de CIO Informatique Industrielle et ne peut tre diffus sans son autorisation crite Dterminisme Evaluation des solutions possibles : patches du kernel, RTLinux, RTAI Patches disponibles permettent seulement du soft temps rel, insuffisant RTAI plus riche au niveau API que RTLinux, retenu Robustesse Eviter les corruptions de File System des aux arrts 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 donnes variables Installation Installation de l'OS et de l'applicatif en 1 seule passe (3 disquettes d'installation) Confrence le libre en milieu industriel - Solutions Linux 2007 - 30 Janvier 2007
  • 10. Les difficults rencontres Ce document est le proprit de CIO Informatique Industrielle et ne peut tre diffus sans son autorisation crite Complexit due RTAI Dveloppement en mode kernel Pas de protection mmoire (similaire certains OS temps rel) Debug plus difficile Possibilit de plantage complet du systme(amlior depuis en trappant les exceptions) Design de l'application rparti entre Linux et RTAI Communication avec l'extrieur sous Linux Processus de contrle commande sous RTAI Echanges entre parties RTAI (modules kernel) et process Linux par des mcanismes d'IPC Absence de drivers RTAI Migration des drivers Linux vers RTAI Confrence le libre en milieu industriel - Solutions Linux 2007 - 30 Janvier 2007
  • 11. Les difficults rencontres Ce document est le proprit de CIO Informatique Industrielle et ne peut tre diffus sans son autorisation crite Allocateur mmoire RTAI Ncessit d'allouer dynamiquement de la mmoire partage entre Linux et RTAI RTAI propose 2 allocateurs Allocateur dynamique pour mmoire interne RTAI Allocateur non dynamique pour mmoire partage entre RTAI et Linux CIO cre un nouvel allocateur, synthse des 2 allocateurs existants Illustration concrte des avantages de l'Open Source Documentation pas toujours jour Confrence le libre en milieu industriel - Solutions Linux 2007 - 30 Janvier 2007
  • 12. Les aspects positifs Ce document est le proprit de CIO Informatique Industrielle et ne peut tre diffus sans son autorisation crite Solution rellement temps rel : temps de cycle de 1ms strictement respect Solution facilement embarquable Empreinte disque infrieure 3 Mo Empreinte mmoire de l'ordre de quelques Mo Accessibilit des sources de la plateforme systme Possibilit de correction de bugs bloquants Possibilit de customisation pour besoins propres (nouvel allocateur) Confrence le libre en milieu industriel - Solutions Linux 2007 - 30 Janvier 2007
  • 13. Le projet : Portage OS9 vers Linux Ce document est le proprit 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 cots de portage sur une partie de l'application du client (pile de gestion SNMP de l'quipement) Projet ralis fin 2004 Confrence le libre en milieu industriel - Solutions Linux 2007 - 30 Janvier 2007
  • 14. La dmarche Ce document est le proprit de CIO Informatique Industrielle et ne peut tre diffus sans son autorisation crite Travailler au niveau systme pour minimiser les cots de portage Base sur une bonne connaissance des OS de dpart et d'arrive Cration de wrappers sous forme de fichiers headers ou de librairie de transition 1re phase de portage sur un PC Linux Facilit de dveloppement et de debug Pas besoin de hardware spcifique au niveau applicatif 2me phase de passage sur le hardware dfinitif Processeur PowerQuick (architecture PowerPC) Confrence le libre en milieu industriel - Solutions Linux 2007 - 30 Janvier 2007
  • 15. Les difficults rencontres Ce document est le proprit 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 tolrant Des portions de code reprendre pour passer la compilation Problmes d'alignement des structures de donnes : Diffrences d'alignement entre compilateurs OS9 et Linux Problme pour les changes sur le rseau Pas de mise des donnes au format rseau : Problme rvl par la phase 1 de travail sur PC Linux (Intel vs Motorola) Passage de toutes les donnes rseau par les routines de mise au format rseau (htonl, htons, ntohl, ntohs etc...) Confrence le libre en milieu industriel - Solutions Linux 2007 - 30 Janvier 2007
  • 16. Les difficults rencontres Ce document est le proprit de CIO Informatique Industrielle et ne peut tre diffus sans son autorisation crite Modle de mmoire Application multi tches avec de nombreuses structures de donnes partages OS9 utilis en mmoire plat Linux impose une mmoire segmente Les structures de donnes partages vhiculent des pointeurs Les zones de mmoire partages sont situes des adresses diffrentes selon les process Linux incohrence des pointeurs 2 solutions : Remplacer les pointeurs par des offsets Mapper les mmoires partages la mme adresse pour tous les process 2nde solution adopte pour minimiser la rcriture, mais solution moins sre (mapping dpendant de l'volution de chaque process) Confrence le libre en milieu industriel - Solutions Linux 2007 - 30 Janvier 2007
  • 17. Les difficults rencontres Ce document est le proprit de CIO Informatique Industrielle et ne peut tre diffus sans son autorisation crite Utilisation massive de signaux et d'alarmes temporelles : OS9 permet un trs grand nombre de signaux users, et de multiples alarmes armes en parallle Ncessit de multiplexer les signaux users sous Linux Traitement des alarmes temporelles dans des threads d'alarme Confrence le libre en milieu industriel - Solutions Linux 2007 - 30 Janvier 2007
  • 18. Les aspects positifs Ce document est le proprit de CIO Informatique Industrielle et ne peut tre diffus sans son autorisation crite Dmarche en 2 phases (PC puis PowerQuick) russie code portable sur toute architecture Linux Confort de la mise au point sur le PC de dveloppement, en natif Peu de reprise du code applicatif Reprises lies au changement de compilateur (modulo la solution retenue pour la mapping mmoire) 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 spcifique Linux (modle mmoire, signaux, alarmes etc...) Portage ralis dans les budgets initialement prvus possibilit d'extrapoler le cot du portage global de l'application Confrence le libre en milieu industriel - Solutions Linux 2007 - 30 Janvier 2007
  • 19. Le projet : Redondance Ethernet Ce document est le proprit de CIO Informatique Industrielle et ne peut tre diffus sans son autorisation crite Buts du projet : Dvelopper un quipement assurant la redondance d'un rseau Ethernet La redondance doit rester transparente aux applications (dj existantes) Le matriel doit tre trs facilement modifiable (architecture processeur, facteur de forme etc...) quipement ralis partir d'une CPU et de 3 ports rseau Ethernet Confrence le libre en milieu industriel - Solutions Linux 2007 - 30 Janvier 2007
  • 20. Le concept Ce document est le proprit de CIO Informatique Industrielle et ne peut tre diffus sans son autorisation crite Duplication du trafic Filtrage des paquets dupliqus Trafic normal Trafic redond Confrence le libre en milieu industriel - Solutions Linux 2007 - 30 Janvier 2007
  • 21. Pourquoi Linux ? Ce document est le proprit 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 : Systme Applicatif Possibilit de raliser 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 Ncessit d'une application totalement enfouie : Logiciel boite noire Temps de dmarrage rduit Logiciel assimilable un firmware Qualit des stacks rseau de Linux Confrence le libre en milieu industriel - Solutions Linux 2007 - 30 Janvier 2007
  • 22. La mise en oeuvre Ce document est le proprit de CIO Informatique Industrielle et ne peut tre diffus sans son autorisation crite Projet ralis sur : Architecture PowerQuick (PPC) : CPU disposant de 3 ports Ethernet Architecture Intel : CPU + carte rseau Ethernet additionnelle dans rack Compact PCI Application travaillant au niveau 802.3 en mode promiscuous Gnration de trames au format TCP/IP pour supervision de l'quipement 1re version dveloppe de manire classique, sous forme de processus 2nde version dveloppe sous forme de kernel module pour optimiser la performance Ncessit de modifier lgrement le code d'un driver Ethernet pour exploiter le mode promiscuous Confrence le libre en milieu industriel - Solutions Linux 2007 - 30 Janvier 2007
  • 23. La mise en oeuvre Ce document est le proprit de CIO Informatique Industrielle et ne peut tre diffus sans son autorisation crite Ralisation 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 Confrence le libre en milieu industriel - Solutions Linux 2007 - 30 Janvier 2007
  • 24. Les aspects positifs Ce document est le proprit de CIO Informatique Industrielle et ne peut tre diffus sans son autorisation crite Application effectivement portable : Ralise sur architecture PPC et Intel Drivers Ethernet internes au PowerQuick (FEC) et Intel EtherExpress Pro utiliss Temps de mise en route trs court : Quinzaine de secondes pour Linux et applicatif Temps du BIOS sur architecture Intel incompressible Image compacte flashable dans quelques Mo, application totalement enfouie Trs peu de perte de bande passante ou de retard induit dans la version optimise (module kernel) Confrence le libre en milieu industriel - Solutions Linux 2007 - 30 Janvier 2007
  • 25. Quelques autres projets concrets Ce document est le proprit de CIO Informatique Industrielle et ne peut tre diffus sans son autorisation crite Botier enregistreur pour l'industrie automobile : CPU PC104 + carte DSP + carte CAN sous Linux 2.4 + RTAI, portage des drivers + squelette applicatif Appareil d'analyse mdicale : CPU ARM, Linux 2.6 + librairies graphiques lgres, gnration et installation de l'environnement, automatisation de la cration de l'image Concentrateur de donnes embarqu sur engin militaire Cartes VME PowerPC sous Linux 2.6, drivers + applicatif Nouvelle carte base sur processeur XScale Dveloppements systme : Bootloader, Boot Linux, drivers Cration du File System de base incluant services rseau, paramtrage Web, supervision SNMP Confrence le libre en milieu industriel - Solutions Linux 2007 - 30 Janvier 2007
  • 26. La gestion des volutions Ce document est le proprit de CIO Informatique Industrielle et ne peut tre diffus sans son autorisation crite Politique de versions : Ne pas courir derrire la nouveaut Attendre des versions de kernel mineure suffisamment stables (> 15) Geler au maximum une version valide, et n'en changer qu'en cas de bug bloquant En cas de bug bloquant, plusieurs possibilits : Correction par soi mme partir des sources Application slective de patch(s) pour corriger localement le bug Changement global de version Confrence le libre en milieu industriel - Solutions Linux 2007 - 30 Janvier 2007
  • 27. Synthse Ce document est le proprit de CIO Informatique Industrielle et ne peut tre diffus sans son autorisation crite Intrt de l'Open Source pour la possibilit d'accs aux sources Comprhension / 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 gnie logiciel lis au monde Linux Doxygen pour la documentation CVS pour gestion de version etc... Une plateforme technique arrive 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 rel, mais au prix de l'utilisation d'extensions si l'on vise du temps rel dur Confrence le libre en milieu industriel - Solutions Linux 2007 - 30 Janvier 2007
  • 28. Synthse Ce document est le proprit de CIO Informatique Industrielle et ne peut tre diffus sans son autorisation crite Gratuit des outils de dveloppement issus du monde libre Pas de risque li l'volution commerciale d'une socit Rachat Changement de stratgie Dplacement des cots de l'acquisition d'outils l'acquisition de comptences Fort potentiel technique des solutions, dynamisme du dveloppement Phase d'apprentissage prvoir : ne pas rinventer la roue, support diffrent du modle traditionnel etc.... Absence d'interlocuteur central, mais possibilit d'appui par la communaut ou des socits spcialises telle CIO Confrence le libre en milieu industriel - Solutions Linux 2007 - 30 Janvier 2007
  • 29. Pour aller plus loin Ce document est le proprit de CIO Informatique Industrielle et ne peut tre diffus sans son autorisation crite Pour toute information complmentaire : Visitez notre site Web http://www.cioinfoindus.fr Contactez nous : Tl : 04 95 05 19 41 Mail : mailto:[email protected] Possibilit d'envoi des slides de la prsentation sur demande Confrence le libre en milieu industriel - Solutions Linux 2007 - 30 Janvier 2007
  • 30. Confrence le libre en milieu industriel - Questions ? Solutions Linux 2007 - 30 Janvier 2007 Ce document est le proprit de CIO Informatique Industrielle et ne peut tre diffus sans son autorisation crite