Ce document est la présentation effectuée par CIO Informatique Industrielle lors de la conférence "Yocto et Linux, un couple d'avenir" du salon RTS 2013
Créer sa distribution Linux embarqué avec Yocto ou AngströmChristian Charreyre
Création d'une distribution Linux embarqué riche à l'aide des outils de build de distribution Yocto et Angström : slides présentés lors du 5e meetup de Paris Embedded meetup
Les slides de la présentation faite par CIO Informatique Industrielle lors du salon Synergie NTIC, sur les utilisations de Linux en contexte embarqué et industriel
Concevoir un système Linux embarqué avec Yocto Project - Version réviséeChristian Charreyre
These slides (in French language) explain how to build an embedded Linux distribution with reach features, without compromise on quality, using the tools offered by the Yocto Project. This is the up to date version presented on December 4th, 2014.
Créer sa distribution Linux embarqué avec Yocto ou AngströmChristian Charreyre
Création d'une distribution Linux embarqué riche à l'aide des outils de build de distribution Yocto et Angström : slides présentés lors du 5e meetup de Paris Embedded meetup
Les slides de la présentation faite par CIO Informatique Industrielle lors du salon Synergie NTIC, sur les utilisations de Linux en contexte embarqué et industriel
Concevoir un système Linux embarqué avec Yocto Project - Version réviséeChristian Charreyre
These slides (in French language) explain how to build an embedded Linux distribution with reach features, without compromise on quality, using the tools offered by the Yocto Project. This is the up to date version presented on December 4th, 2014.
Présentation au logiciel Eclipse et les outils de collaborations dont SVN. La deuxième partie est consacrée à la barre de développeur pour le
navigateur Firefox, on y retrouve les outils les plus utiles.
These slides (in French language) explain how to build an embedded Linux distribution with reach features, without compromise on quality, using the tools offered by the Yocto Project.
They were presented in a seminar organized by Captronic in Aix en Provence, on May 15th, 2014
Slides présentés lors du Meetup Aix Marseille Embedded Linux du 16 Juin.
Présentation sur les GNU/Autotools accompagné d'un exemple Hello World basé sur les autotools.
Open Wide Ingénierie a présenté les différents types de licences existantes ainsi que leurs éventuelles répercussions. Par méconnaissance, ce sujet peut être un frein à l'adoption du libre dans certaines sociétés, il est donc incontournable.
Pour découvrir les autres présentations, rendez-vous sur notre site : http://ingenierie.openwide.fr/References/Conferences-techniques
Code d'Armor : Open Source, mode d'emploibbailleux
[en] The basics of Open Source, in French
[fr] Open Source, libre, FLOSS, ouvert. Tous ces termes sont familiers, et pourtant, il plane comme un léger brouillard sur le paysage. Tous les développeurs, entre autres, sont dorénavant confrontés à un moment ou un autre à du code ou une licence Open Source, mais tous ne sont pas égaux devant la conduite à tenir. Se détourner comme face à un piège ? L'exploiter au maximum ? Se plonger dans un modèle collaboratif ? En tirer un maximum de fun ?
Pour essayer d'y voir plus clair, on explique en quoi consiste effectivement l'Open Source, et on présente ce qui en fait la force, mais aussi les quelques faiblesses potentielles. De même, on met en lumière les opportunités offertes, sans masquer les quelques risques associés.
Enfin, et à travers quelques exemples et retours d'expériences, on expose quelques bonnes pratiques, certaines implications juridiques ou de propriété industrielles. On parle également de la « pratique » de l'Open Source en entreprise, et on essaye de répondre à un maximum de questions de l'assistance, forcément concernée.
Présenté par Jacques Davy et Benoit Bailleux
Après avoir conquis le marché des smartphones et tablettes, Android devient incontournable dans le domaine industriel. Son utilisation pour la conception de solutions embarquées industrielles soulève toutefois des problématiques techniques spécifiques : customisation de l'OS, développement de pilotes de périphériques, capacité à répondre à des contraintes temps réel.
S'appuyant sur son expertise des technologies Linux embarqué, Open Wide Ingénierie a accompagné avec succès la réalisation de nombreux systèmes sur mesure. Les experts du pôle Mobilité et Multimédia partage leur expérience à travers cette présentation en abordant les sujets techniques indispensables avant de migrer vers Android.
Gestion des dépendances dans un projet PHP - Forum PHP 2012Jean-Marc Fontaine
Que ce soit un framework, des modules ou des libraires spécialisées, la plupart des application web modernes utilisent du code tiers. Ce code a son propre cycle de développement. Il faut donc pouvoir intégrer régulièrement les nouvelles versions sans pour autant perdre la maîtrise de son propre cycle. La tâche n'est pas aisée si elle n'a pas été été prévue dès la conception de l'application. Nous verrons différentes approches pour gérer les dépendances dont les gestionnaires de paquet du système d'exploitation, les liens externes dans les dépôts de code, les fichiers PHAR, l'installateur PEAR et le tout récent Composer.
Présentation donnée lors de la présentation mensuelle de l'association LINUQ. J'y parle de mon expérience avec le media center MythTV (linux), XBMC (Linux), de Boxee Box et Smart LG.
Vous trouverez quelques références d'applications tierces à installer sur votre media center pour télécharger des Torrent, fichiers megaupload, etc..
HOWTO Gestion porte-feuilles crypto-monnaies en environnement virtualiséAnthony Le Goff
Virtualisation sous Virtualbox. Exemple : sécuriser un environnement de gestion de porte-feuilles de crypto-monnaie (Bitcoin, Peercoin, Litecoin etc...)
Pour ce tutoriel d'environnement de gestion de porte-feuilles de crypto-monnaies les points vont être abordé :
•I. Installation de Xubuntu comme système invité sous VirtualBox en partition chiffrée
•II. Paramétrage pour sécuriser le par-feu de la connexion internet sur l'OS Invité
•III. Installation de TrueCrypt et de Wuala (gestion container confidentiel et stockage Cloud Chiffré serveur en Suisse, Allemagne et France)
•IV. Sauvegarde la VM sur un disque de stockage externe
This slideshow gives feedback about using Linux in industrial projects. It is part of a conference held by our company CIO Informatique Industrielle at ERTS 2008, the European Embedded Real Time software Congress in Toulouse
Plus qu'une mode, le mobile est une véritable évolution des usages.
Le trafic web mobile et le nombre d'applications augmentent de jour en jour.
Comment bien aborder le passage au mobile ? Voici quelques clefs pour voir plus clair.
Faîtes le point et ne manquez pas de vous adresser à ce public !
Présentation au logiciel Eclipse et les outils de collaborations dont SVN. La deuxième partie est consacrée à la barre de développeur pour le
navigateur Firefox, on y retrouve les outils les plus utiles.
These slides (in French language) explain how to build an embedded Linux distribution with reach features, without compromise on quality, using the tools offered by the Yocto Project.
They were presented in a seminar organized by Captronic in Aix en Provence, on May 15th, 2014
Slides présentés lors du Meetup Aix Marseille Embedded Linux du 16 Juin.
Présentation sur les GNU/Autotools accompagné d'un exemple Hello World basé sur les autotools.
Open Wide Ingénierie a présenté les différents types de licences existantes ainsi que leurs éventuelles répercussions. Par méconnaissance, ce sujet peut être un frein à l'adoption du libre dans certaines sociétés, il est donc incontournable.
Pour découvrir les autres présentations, rendez-vous sur notre site : http://ingenierie.openwide.fr/References/Conferences-techniques
Code d'Armor : Open Source, mode d'emploibbailleux
[en] The basics of Open Source, in French
[fr] Open Source, libre, FLOSS, ouvert. Tous ces termes sont familiers, et pourtant, il plane comme un léger brouillard sur le paysage. Tous les développeurs, entre autres, sont dorénavant confrontés à un moment ou un autre à du code ou une licence Open Source, mais tous ne sont pas égaux devant la conduite à tenir. Se détourner comme face à un piège ? L'exploiter au maximum ? Se plonger dans un modèle collaboratif ? En tirer un maximum de fun ?
Pour essayer d'y voir plus clair, on explique en quoi consiste effectivement l'Open Source, et on présente ce qui en fait la force, mais aussi les quelques faiblesses potentielles. De même, on met en lumière les opportunités offertes, sans masquer les quelques risques associés.
Enfin, et à travers quelques exemples et retours d'expériences, on expose quelques bonnes pratiques, certaines implications juridiques ou de propriété industrielles. On parle également de la « pratique » de l'Open Source en entreprise, et on essaye de répondre à un maximum de questions de l'assistance, forcément concernée.
Présenté par Jacques Davy et Benoit Bailleux
Après avoir conquis le marché des smartphones et tablettes, Android devient incontournable dans le domaine industriel. Son utilisation pour la conception de solutions embarquées industrielles soulève toutefois des problématiques techniques spécifiques : customisation de l'OS, développement de pilotes de périphériques, capacité à répondre à des contraintes temps réel.
S'appuyant sur son expertise des technologies Linux embarqué, Open Wide Ingénierie a accompagné avec succès la réalisation de nombreux systèmes sur mesure. Les experts du pôle Mobilité et Multimédia partage leur expérience à travers cette présentation en abordant les sujets techniques indispensables avant de migrer vers Android.
Gestion des dépendances dans un projet PHP - Forum PHP 2012Jean-Marc Fontaine
Que ce soit un framework, des modules ou des libraires spécialisées, la plupart des application web modernes utilisent du code tiers. Ce code a son propre cycle de développement. Il faut donc pouvoir intégrer régulièrement les nouvelles versions sans pour autant perdre la maîtrise de son propre cycle. La tâche n'est pas aisée si elle n'a pas été été prévue dès la conception de l'application. Nous verrons différentes approches pour gérer les dépendances dont les gestionnaires de paquet du système d'exploitation, les liens externes dans les dépôts de code, les fichiers PHAR, l'installateur PEAR et le tout récent Composer.
Présentation donnée lors de la présentation mensuelle de l'association LINUQ. J'y parle de mon expérience avec le media center MythTV (linux), XBMC (Linux), de Boxee Box et Smart LG.
Vous trouverez quelques références d'applications tierces à installer sur votre media center pour télécharger des Torrent, fichiers megaupload, etc..
HOWTO Gestion porte-feuilles crypto-monnaies en environnement virtualiséAnthony Le Goff
Virtualisation sous Virtualbox. Exemple : sécuriser un environnement de gestion de porte-feuilles de crypto-monnaie (Bitcoin, Peercoin, Litecoin etc...)
Pour ce tutoriel d'environnement de gestion de porte-feuilles de crypto-monnaies les points vont être abordé :
•I. Installation de Xubuntu comme système invité sous VirtualBox en partition chiffrée
•II. Paramétrage pour sécuriser le par-feu de la connexion internet sur l'OS Invité
•III. Installation de TrueCrypt et de Wuala (gestion container confidentiel et stockage Cloud Chiffré serveur en Suisse, Allemagne et France)
•IV. Sauvegarde la VM sur un disque de stockage externe
This slideshow gives feedback about using Linux in industrial projects. It is part of a conference held by our company CIO Informatique Industrielle at ERTS 2008, the European Embedded Real Time software Congress in Toulouse
Plus qu'une mode, le mobile est une véritable évolution des usages.
Le trafic web mobile et le nombre d'applications augmentent de jour en jour.
Comment bien aborder le passage au mobile ? Voici quelques clefs pour voir plus clair.
Faîtes le point et ne manquez pas de vous adresser à ce public !
Baromètre des usages numériques professionnels - OpinionWay pour EBP Informat...Digital-MIF
Étude quantitative réalisée auprès d’un échantillon de 606 dirigeants d’entreprises de moins de 20 salariés ayant plus de 2 ans d’existence.
3ème vague du baromètre, réalisée selon une méthodologie identique
L’échantillon a été interrogé par téléphone sur système CATI du9 au 20 septembre 2013
BibBase Linked Data Triplification Challenge 2010 PresentationReynold Xin
The document summarizes BibBase Triplified, a system that publishes bibliographic data from BibTeX files as structured data on the semantic web. It takes BibTeX files maintained by scientists, detects and resolves duplicates, and publishes the data as HTML pages and RDF triples. It also links entries to external datasets like DBLP and DBpedia. As of September 2010, the system had over 4,500 publications and 100 active users. Future work includes improving duplicate detection, linking to more external sources, and broadening the user base.
Ce slideshow est issu de la contribution de CIO Informatique Industrielle à la conférence / débat Comment travailler avec les logiciels Open Source, qui s'est tenue en Avril 2008 sur le salon RTS Embedded Systems
This paper describes return of experiences about using Linux technologies for industrial software developments. It gives feedback about embedded and real time usages of Linux.
Distributed systems produce different types of data like logs, events, and metrics. Collecting and processing these different types of data traditionally requires various tools that are difficult for developers and operations teams to maintain. Heka is a tool that can be used to intake, process, and output all these types of data using a single pipeline. It provides a standard way to handle logs, metrics and events, replacing multiple complex tools. Heka offers benefits like low resource usage, real-time analytics, and a consistent interface for developers to integrate monitoring data.
Python Foundation – A programmer's introduction to Python concepts & styleKevlin Henney
This document provides an overview of a Python Foundation course that introduces Python concepts and programming style. The course covers Python history and culture, multi-paradigm programming in Python including procedural, modular, scripting, object-oriented and functional styles. It also covers Python syntax, logic and flow control, built-in data types, classes and objects. The course includes coding experiments, programming labs and homework assignments.
Presented at NDC London (5th December 2014)
How much should you rely on your IDE to govern your coding style? How many asserts should a test case have or not have? How much work should a constructor (not) do? How do you name your classes and other identifiers? How closed or open should your classes be? How do you lay out your code? These questions and others have standard answers based on received and repeated mantras, practices that are communicated in good faith to be passed on as habits. But how much reason supports these assertions? It turns out that the advice often fails, even for the novices they are intended to guide, or simply doesn't make sense.
This talk has little respect for ritual and tradition and takes no prisoners: What actually makes sense and what doesn't when it comes to matters of practice? What guidelines offer the greatest effect and the greatest learning?
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
Presented at NDC London (5th December 2014)
Ralph Johnson defined architecture as "the decisions that you wish you could get right early in a project, but that you are not necessarily more likely to get them right than any other". Given our inability to tell the future how can we design effectively for it? Much project management thinking is based on the elimination of uncertainty, and advice on software architecture and guidance for future-proofing code often revolves around adding complexity to embrace uncertainty. In most cases, this is exactly the opposite path to the one that should be taken.
The talk looks at how uncertainty, lack of knowledge and options can be used to partition and structure the code in a system.
#Gophercon Talk by Smita Vijayakumar - Go's Context LibraryExotel
This document discusses Go's context library, which allows request-scoped values and cancellation signals to propagate across API boundaries. The context library defines a Context interface that carries deadlines, cancellation signals, and arbitrary key-value pairs. This enables use cases like distributed tracing, cancellable requests, and propagating request context in distributed systems. The document provides examples of creating context nodes with different properties and using context values and cancellation signals when processing asynchronous requests across multiple packages. It notes that while the context library eases handling concurrent requests and flow traceability, its use can increase code complexity, especially across process boundaries, and care must be taken to avoid memory leaks from storing context in structures.
Exotel is one of India's leading B2B startups. We have been around since 2011 and in the last 5 years, we have helped thousands of businesses grow. We are changing the way large companies and growing startups look at voice communication with customers.
One of the biggest factors for the success of a business depends on the operational efficiency of their last mile logistics.
We, at Exotel, are directing our efforts into making last mile logistics hassle-free and more efficient.
Why should an e-commerce or 3rd party logistics company care about this?
1. you get to save money on manpower and operations
2. customers get to have the best experience
(Berkeley CS186 guest lecture) Big Data Analytics Systems: What Goes Around C...Reynold Xin
(Berkeley CS186 guest lecture)
Big Data Analytics Systems: What Goes Around Comes Around
Introduction to MapReduce, GFS, HDFS, Spark, and differences between "Big Data" and database systems.
Cloud Communication for E-commerce & Last Mile LogisticsExotel
With increasing costs for deliveries and logistics, cloud communication can help companies save cost and at the same time build brand loyalty. Here are some simple things you're overlooking now
La valorisation des logiciels libres en entrepriseRobert Viseur
Présentation réalisée à l'inauguration des Jeudis du Libre de Mons (jeudisdulibre.be) sur le thème de la valorisation des logiciels libres en entreprise.
Forum PHP 2010 - Les frameworks, essentiels dans-l-ecosysteme-php-xavier-laco...Xavier Lacot
Cette présentation a été effectuée dans le cadre du Forum PHP 2010.
Apparus il ya quelques années, les frameworks PHP évoluent rapidement,gagnent en maturité et, avec l'arrivée de PHP 5.3, ils entament une nouvelle mutation.
Après avoir rappelé l'intérêt de l'emploi de frameworks, cette session mettra l'accent sur les critères de choix permettant de départager les différents frameworks du marché, présentera les différences entre les grands frameworks du moment, mettra en évidence les tendances architecturales, et finalement s'attachera à montrer l'enracinement des frameworks dans le paysage professionnel PHP.
git est un outil essentiel pour la gestion des versions des codes sources des projets informatiques pour les développeurs travaillant en équipe comme ceux qui travaillent depuis plusieurs ordinateurs à la fois.
Utilisé conjointement à des systèmes d'intégration continue, il permet de générer des tests automatiques, des binaires, des versions de production comme de test de logiciels avec un minimum d'action de la part des développeurs.
Cependant il faut quand même maîtriser ses bases pour en tirer le meilleur : savoir comment gérer des branches, les commit et les fichiers qui doivent se trouver dans un "projet git".
Il est également bien de savoir créer et participer à des projets open source pour partager ses connaissances et compétences avec la communauté de développeurs. git est très utile pour accéder à GitHub et d'autres outils de stockage de sources et de gestion de projets logiciels.
Lors de cette présentation proposée le 22 décembre 2020, Patrick Prémartin explique le fonctionnement de base de git et comment s'en servir conjointement à l'IDE de RAD Studio utilisé pour du développement Delphi comme C++Builder.
Rediffusion de cette présentation et liens complémentaires sur https://serialstreameur.fr/webinaire-20201222.php
Webinar SMILE : "L'Open Source, un accélérateur d'innovation pour les objets ...Smile I.T is open
Notre expert Olivier Viné, Directeur Offre Ingénierie, Open Wide / Smile, vous emmène faire un petit tour d'horizon des solutions disponibles pour accélérer votre Time to Market avec l'Open Source !
Utiliser des logiciels Open Source pour créer des objets connectés, c'est faire le choix de maîtriser sa technologie et de bénéficier de la mutualisation des efforts de R&D d'un nombre croissant d'industriels et d'experts.
Principaux points abordés :
- Panorama des technologies libres pour les objets connectés
- Les pièges à éviter
- Exemples concrets de mise en œuvre.
Pour aller plus loin, n'hésitez pas à contacter notre expert !
Similaire à Yocto une solution robuste pour construire des applications à fort contenu applicatif (20)
L'IA connaît une croissance rapide et son intégration dans le domaine éducatif soulève de nombreuses questions. Aujourd'hui, nous explorerons comment les étudiants utilisent l'IA, les perceptions des enseignants à ce sujet, et les mesures possibles pour encadrer ces usages.
Constat Actuel
L'IA est de plus en plus présente dans notre quotidien, y compris dans l'éducation. Certaines universités, comme Science Po en janvier 2023, ont interdit l'utilisation de l'IA, tandis que d'autres, comme l'Université de Prague, la considèrent comme du plagiat. Cette diversité de positions souligne la nécessité urgente d'une réponse institutionnelle pour encadrer ces usages et prévenir les risques de triche et de plagiat.
Enquête Nationale
Pour mieux comprendre ces dynamiques, une enquête nationale intitulée "L'IA dans l'enseignement" a été réalisée. Les auteurs de cette enquête sont Le Sphynx (sondage) et Compilatio (fraude académique). Elle a été diffusée dans les universités de Lyon et d'Aix-Marseille entre le 21 juin et le 15 août 2023, touchant 1242 enseignants et 4443 étudiants. Les questionnaires, conçus pour étudier les usages de l'IA et les représentations de ces usages, abordaient des thèmes comme les craintes, les opportunités et l'acceptabilité.
Résultats de l'Enquête
Les résultats montrent que 55 % des étudiants utilisent l'IA de manière occasionnelle ou fréquente, contre 34 % des enseignants. Cependant, 88 % des enseignants pensent que leurs étudiants utilisent l'IA, ce qui pourrait indiquer une surestimation des usages. Les usages identifiés incluent la recherche d'informations et la rédaction de textes, bien que ces réponses ne puissent pas être cumulées dans les choix proposés.
Analyse Critique
Une analyse plus approfondie révèle que les enseignants peinent à percevoir les bénéfices de l'IA pour l'apprentissage, contrairement aux étudiants. La question de savoir si l'IA améliore les notes sans développer les compétences reste débattue. Est-ce un dopage académique ou une opportunité pour un apprentissage plus efficace ?
Acceptabilité et Éthique
L'enquête révèle que beaucoup d'étudiants jugent acceptable d'utiliser l'IA pour rédiger leurs devoirs, et même un quart des enseignants partagent cet avis. Cela pose des questions éthiques cruciales : copier-coller est-il tricher ? Utiliser l'IA sous supervision ou pour des traductions est-il acceptable ? La réponse n'est pas simple et nécessite un débat ouvert.
Propositions et Solutions
Pour encadrer ces usages, plusieurs solutions sont proposées. Plutôt que d'interdire l'IA, il est suggéré de fixer des règles pour une utilisation responsable. Des innovations pédagogiques peuvent également être explorées, comme la création de situations de concurrence professionnelle ou l'utilisation de détecteurs d'IA.
Conclusion
En conclusion, bien que l'étude présente des limites, elle souligne un besoin urgent de régulation. Une charte institutionnelle pourrait fournir un cadre pour une utilisation éthique.
Le Comptoir OCTO - Qu’apporte l’analyse de cycle de vie lors d’un audit d’éco...OCTO Technology
Par Nicolas Bordier (Consultant numérique responsable @OCTO Technology) et Alaric Rougnon-Glasson (Sustainable Tech Consultant @OCTO Technology)
Sur un exemple très concret d’audit d’éco-conception de l’outil de bilan carbone C’Bilan développé par ICDC (Caisse des dépôts et consignations) nous allons expliquer en quoi l’ACV (analyse de cycle de vie) a été déterminante pour identifier les pistes d’actions pour réduire jusqu'à 82% de l’empreinte environnementale du service.
Vidéo Youtube : https://www.youtube.com/watch?v=7R8oL2P_DkU
Compte-rendu :
MongoDB in a scale-up: how to get away from a monolithic hell — MongoDB Paris...Horgix
This is the slide deck of a talk by Alexis "Horgix" Chotard and Laurentiu Capatina presented at the MongoDB Paris User Group in June 2024 about the feedback on how PayFit move away from a monolithic hell of a self-hosted MongoDB cluster to managed alternatives. Pitch below.
March 15, 2023, 6:59 AM: a MongoDB cluster collapses. Tough luck, this cluster contains 95% of user data and is absolutely vital for even minimal operation of our application. To worsen matters, this cluster is 7 years behind on versions, is not scalable, and barely observable. Furthermore, even the data model would quickly raise eyebrows: applications communicating with each other by reading/writing in the same MongoDB documents, documents reaching the maximum limit of 16MiB with hundreds of levels of nesting, and so forth. The incident will last several days and result in the loss of many users. We've seen better scenarios.
Let's explore how PayFit found itself in this hellish situation and, more importantly, how we managed to overcome it!
On the agenda: technical stabilization, untangling data models, breaking apart a Single Point of Failure (SPOF) into several elements with a more restricted blast radius, transitioning to managed services, improving internal accesses, regaining control over risky operations, and ultimately, approaching a technical migration when it impacts all development teams.
Ouvrez la porte ou prenez un mur (Agile Tour Genève 2024)Laurent Speyser
(Conférence dessinée)
Vous êtes certainement à l’origine, ou impliqué, dans un changement au sein de votre organisation. Et peut être que cela ne se passe pas aussi bien qu’attendu…
Depuis plusieurs années, je fais régulièrement le constat de l’échec de l’adoption de l’Agilité, et plus globalement de grands changements, dans les organisations. Je vais tenter de vous expliquer pourquoi ils suscitent peu d'adhésion, peu d’engagement, et ils ne tiennent pas dans le temps.
Heureusement, il existe un autre chemin. Pour l'emprunter il s'agira de cultiver l'invitation, l'intelligence collective , la mécanique des jeux, les rites de passages, .... afin que l'agilité prenne racine.
Vous repartirez de cette conférence en ayant pris du recul sur le changement tel qu‘il est généralement opéré aujourd’hui, et en ayant découvert (ou redécouvert) le seul guide valable à suivre, à mon sens, pour un changement authentique, durable, et respectueux des individus! Et en bonus, 2 ou 3 trucs pratiques!
Yocto une solution robuste pour construire des applications à fort contenu applicatif
1. Yocto une solution robuste pour construire des applications à fort contenu applicatif. - 10 Avril 2013 1
www.cioinfoindus.fr
Yocto une solution robusteYocto une solution robuste
pour construire despour construire des
applications à fort contenuapplications à fort contenu
applicatif.applicatif.
C. CharreyreC. Charreyre
christian.charreyre@cioinfoindus.frchristian.charreyre@cioinfoindus.fr
2. Yocto une solution robuste pour construire des applications à fort contenu applicatif. - 10 Avril 2013 2
www.cioinfoindus.fr
Licence
Attribution-Noncommercial-Share Alike 2.0 France
You are free:
to Share - to copy, distribute, display, and perform the work
to Remix - to make derivative works
Under the following conditions:
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).
Non commercial. You may not use this work for commercial purposes.
Share Alike. If you alter, transform, or build upon this work, you may distribute the
resulting work only under the same or similar license to this one.
For any reuse or distribution, you must make clear to others the license terms of this work. The
best way to do this is with a link to
http://creativecommons.org/licenses/by-nc-sa/2.0/fr/deed.en_US.
Any of the above conditions can be waived if you get permission from the copyright holder.
Nothing in this license impairs or restricts the author's moral rights.
3. Yocto une solution robuste pour construire des applications à fort contenu applicatif. - 10 Avril 2013 3
www.cioinfoindus.fr
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
Investissement sur Linux depuis 2000. Centre de Compétences
créé fin 2001
Agréé Crédit d'Impôt Recherche
Marchés industriels, embarqué et militaire
Membre de Libertis - Commission Logiciel Libre de Medinsoft
4. Yocto une solution robuste pour construire des applications à fort contenu applicatif. - 10 Avril 2013 4
www.cioinfoindus.fr
Évolutions de Linux
embarqué
Il y a quelques années, Linux = moteur
d'applications enfouies :
Besoin d'un kernel et d'une glibc
Utilisation de busybox pour bâtir le Root FileSystem
Application embarquée home made sur ces bases
Peu de soucis de cohérence ou de complexité
Besoins actuels : applications embarquées
riches :
Moins de limitations de mémoire vive ou de masse
Processeurs beaucoup plus puissants
IHM riches : tactile, vidéo, image, culture Iphone et
Androïd
Nécessité d'assembler de manière cohérente de
multiples briques logicielles de base
5. Yocto une solution robuste pour construire des applications à fort contenu applicatif. - 10 Avril 2013 5
www.cioinfoindus.fr
Exemples dans
l'électronique grand public
De nombreux appareils basés sur Linux, à fort
contenu applicatif :
6. Yocto une solution robuste pour construire des applications à fort contenu applicatif. - 10 Avril 2013 6
www.cioinfoindus.fr
Les besoins actuels
Techniques :
Richesse : Graphisme, vidéo, connectivité
Complexité ⇒ Industrialisation de la production
logicielle : fiabilité, automatisation si possible,
reproductibilité
Économiques :
Time To Market de plus en plus court
Coûts optimisés
Recentrage sur la valeur ajoutée
7. Yocto une solution robuste pour construire des applications à fort contenu applicatif. - 10 Avril 2013 7
www.cioinfoindus.fr
Les besoins actuels
Conséquences :
Favoriser des composants sur étagère
L'application métier n'est qu'une partie, assemblés
avec des éléments puisés dans l'écosystème
Exemple :
initiative Genivi dans l'automobile (In Vehicule
Infotainment) – basée sur Yocto
8. Yocto une solution robuste pour construire des applications à fort contenu applicatif. - 10 Avril 2013 8
www.cioinfoindus.fr
Travailler avec Linux
Un monde fragmenté aux multiples sources
Bootloaders (UBoot, RedBoot, LILO, Grub, ...)
Kernel (kernel.org, fournisseur hardware, ...)
Librairies de base (glibc ou alternatives réduites)
Bases applicatives (busybox, kits embarqués libres
ou propriétaires, ....)
IHM (Qt, MicroWindows/NanoX, ...)
Multimédia (Mplayer, Gstreamer, Xine, ....)
Extensions temps réel (RTAI, Xenomai, …)
Qu'il faut assembler en un ensemble cohérent :
votre device
Mais chaque projet contributeur vit sa vie à son
propre rythme
9. Yocto une solution robuste pour construire des applications à fort contenu applicatif. - 10 Avril 2013 9
www.cioinfoindus.fr
Faire attention au respect de licences multiples
(GPL, LGPL, BSD, etc...)
Les connaître et les respecter
Adapter ce que l'on utilise à sa stratégie de
publications de codes source
Pour des applications riches, des Software Development
Kits structurés sont conseillés :
Buildroot
Scratchbox
Open Embedded / Angstrom / Yocto ....
Travailler avec Linux
10. Yocto une solution robuste pour construire des applications à fort contenu applicatif. - 10 Avril 2013 10
www.cioinfoindus.fr
Pourquoi
Yocto ?
Pour éviter cela
11. Yocto une solution robuste pour construire des applications à fort contenu applicatif. - 10 Avril 2013 11
www.cioinfoindus.fr
Pourquoi
Yocto ?
Pour gérer cela
12. Yocto une solution robuste pour construire des applications à fort contenu applicatif. - 10 Avril 2013 12
www.cioinfoindus.fr
Pourquoi
Yocto ?
Dépendances de nautilus : 62 librairies
13. Yocto une solution robuste pour construire des applications à fort contenu applicatif. - 10 Avril 2013 13
www.cioinfoindus.fr
Pourquoi
Yocto ?
Les « sorties » de l'outil :
La chaîne de compilation pour la cible (générée par
Yocto)
Le Software Development Kit qui se construit petit à
petit : fichiers headers et librairies partagées
compilées pour la cible, outils natifs nécessaires à la
compilation :
Utilisable tel quel (console)
Utilisable à travers Eclipse (plugin ADT)
Des paquets logiciels binaires au format debian ou
RPM + un gestionnaire de paquets sur la cible
(cohérences, dépendances)
14. Yocto une solution robuste pour construire des applications à fort contenu applicatif. - 10 Avril 2013 14
www.cioinfoindus.fr
Pourquoi
Yocto ?
Les « sorties » de l'outil :
Une image finale prête à déployer (archive tgz, ubi,
ext3, etc...)
Une classification des logiciels par type de licence
15. Yocto une solution robuste pour construire des applications à fort contenu applicatif. - 10 Avril 2013 15
www.cioinfoindus.fr
Les bénéfices de Yocto
Gestion intégrée des versions et de leurs
dépendances
Grande richesse logicielle
Prise en compte de la cross compilation et des
architectures ≠ Intel (patches, configurations
spécifiques)
Architecture modulaire, en couches : meta-xxxx
Couches de base :
meta, meta-yocto, meta-yocto-bsp
Nombreuses couches additionnelles :
Support hardware, support software, distributions
Votre propre couche (développements propres)
16. Yocto une solution robuste pour construire des applications à fort contenu applicatif. - 10 Avril 2013 16
www.cioinfoindus.fr
Les bénéfices de Yocto
Architecture en couches
Priorité entre couches qui partageraient une
recette
Liste des couches : http://layers.openembedded.org/layerindex/layers/
17. Yocto une solution robuste pour construire des applications à fort contenu applicatif. - 10 Avril 2013 17
www.cioinfoindus.fr
Les bénéfices de Yocto
Indépendance vis à vis du poste de
développement hôte :
Outils nécessaires à la compilation générés par Yocto
puis utilisés (ex: python, dmake, pkg-config …)
Pas d'utilisation des headers et librairies de la
distribution locale, même en architecture Intel
Pas de problème lié à la mise à jour de la distribution
hôte
Reproductibilité de la génération de l'image
embarquée :
Remontée de tous les paramétrages à la génération
Aucune intervention manuelle lors du déploiement sur
la cible
Communauté active
18. Yocto une solution robuste pour construire des applications à fort contenu applicatif. - 10 Avril 2013 18
www.cioinfoindus.fr
Comment fonctionne
Yocto ?
Un moteur écrit en Python : bitbake
Un jeu de recettes pour fabriquer les paquets
logiciels
Une notion de classes pour mise en commun
entre recettes
Une notion de groupe de paquets = package
group permettant de structurer les recettes
Des dépendances entre paquets, décrites dans
les recettes, ou déterminées automatiquement
(librairies partagées)
Pour chaque recette des tâches élémentaires
Calcul de l'arbre des dépendances pour
fabriquer les paquets dans le bon ordre
19. Yocto une solution robuste pour construire des applications à fort contenu applicatif. - 10 Avril 2013 19
www.cioinfoindus.fr
Comment fonctionne
Yocto ?
Possibilité de modifier une recette en
différentiel : facilite les adaptations au contexte
propre
Une notion de distribution :
Définit des versions préférentielles pour les paquets
logiciels (cohérence de l'ensemble)
Définit des réglages spécifiques (fichiers de
configuration)
Prise en compte des spécificités de la
plateforme :
Au niveau kernel : architecture, bootloader, modules
kernel adaptés etc...
Au niveau userland : paramétrages GCC,
optimisations, floating point etc...
20. Yocto une solution robuste pour construire des applications à fort contenu applicatif. - 10 Avril 2013 20
www.cioinfoindus.fr
Anatomie d'une recette
Une recette pour un ou plusieurs paquets
(fractionnement pour optimisation de l'espace)
Des variables d'environnement
Des tâches élémentaires implicites ou explicites
(pour modifier l'implicite)
21. Yocto une solution robuste pour construire des applications à fort contenu applicatif. - 10 Avril 2013 21
www.cioinfoindus.fr
Anatomie d'une recette
(ed)
DESCRIPTION = "a line-oriented text editor"
HOMEPAGE = "http://www.gnu.org/software/ed/"
BUGTRACKER = ""
LICENSE = "GPLv3+"
LIC_FILES_CHKSUM =
"file://COPYING;md5=f27defe1e96c2e1ecd4e0c9be8967949
file://ed.h;endline=20;md5=c708cda1b2e8d723d458690b7db03878
file://main.c;endline=24;md5=1bd039d59e04ee5f82adcc970144a2c3"
SECTION = "base"
PR = "r0"
# LSB states that ed should be in /bin/
bindir = "${base_bindir}"
SRC_URI = "${GNU_MIRROR}/ed/ed-${PV}.tar.gz
file://ed-1.2-build.patch"
SRC_URI[md5sum] = "9a78593decccaa889523aa4bb555ed4b"
SRC_URI[sha256sum] =
"211c67b0c4aae277d34b1c5f842db1952e468e5905142868e4718ac838f08a65"
do_configure() {
${S}/configure
}
do_install() {
oe_runmake 'DESTDIR=${D}' install
}
22. Yocto une solution robuste pour construire des applications à fort contenu applicatif. - 10 Avril 2013 22
www.cioinfoindus.fr
Anatomie d'une recette
(gthumb)
DESCRIPTION = "gThumb is an image viewer and browser for the GNOME
Desktop"
SECTION = "x11/gnome"
LICENSE = "GPLv2"
LIC_FILES_CHKSUM =
"file://COPYING;md5=59530bdf33659b29e73d4adb9f9f6552"
DEPENDS = "glib-2.0 gtk+ libxml2 gnome-doc-utils libunique gconf
libpng gstreamer jpeg tiff gst-plugins-base"
PR = "r4"
EXTRA_OECONF = "--disable-gnome-keyring --disable-libsoup
--disable-exiv2 --disable-clutter"
inherit gnome pkgconfig
SRC_URI[archive.md5sum] = "97fc13221b0c5d80c27a2e25a3a3ac6f"
SRC_URI[archive.sha256sum] =
"cf809695230ab8892a078be454a42ade865754c72ec1da7c3d74d4310de54f1d"
SRC_URI += "file://parallel.patch"
do_install_append () {
rm ${D}${libdir}/${BPN}/extensions/*.a
}
FILES_${PN} += "${datadir}/icons"
FILES_${PN} += "${libdir}/${BPN}/extensions/*.so
${libdir}/${BPN}/extensions/*.extension"
FILES_${PN}-dev += "${libdir}/${BPN}/extensions/*.la"
FILES_${PN}-dbg += "${libdir}/${BPN}/extensions/.debug/"
23. Yocto une solution robuste pour construire des applications à fort contenu applicatif. - 10 Avril 2013 23
www.cioinfoindus.fr
Modification d'une recette
en delta
FILESEXTRAPATHS_prepend := "${THISDIR}/${P}:"
dirs755 += " ${localstatedir}/volatile/mqueue"
volatiles += "mqueue"
SRC_URI += "file://root-profile"
CONFFILES_${PN} += "/home/root/.profile"
do_install_append() {
install -m 0755 ${WORKDIR}/root-profile $
{D}/home/root/.profile
}
24. Yocto une solution robuste pour construire des applications à fort contenu applicatif. - 10 Avril 2013 24
www.cioinfoindus.fr
Les principales tâches
d'une recette
Fetch : téléchargement des sources (http, ftp,
svn, git ...)
Unpack : extraction des sources
Patch : application de patches additionnels
fournis par la recette
Configure : configuration
Compile : compilation
Stage : installation dans le SDK
Install : installation dans un tampon local
Package : création du (des) paquet(s) binaire
25. Yocto une solution robuste pour construire des applications à fort contenu applicatif. - 10 Avril 2013 25
www.cioinfoindus.fr
Anatomie d'une classe
(qt4e)
QT4EDEPENDS ?= "qt4-embedded "
DEPENDS_prepend = "${QT4EDEPENDS}"
inherit qmake2
QT_BASE_NAME = "qt4-embedded"
QT_DIR_NAME = "qtopia"
QT_LIBINFIX = "E"
# override variables set by qmake-base to compile Qt/Embedded apps
#
export QMAKESPEC = "${STAGING_DATADIR}/${QT_DIR_NAME}/mkspecs/$
{TARGET_OS}-oe-g++"
export OE_QMAKE_INCDIR_QT = "${STAGING_INCDIR}/${QT_DIR_NAME}"
export OE_QMAKE_LIBDIR_QT = "${STAGING_LIBDIR}"
export OE_QMAKE_LIBS_QT = "qt"
export OE_QMAKE_LIBS_X11 = ""
export OE_QMAKE_EXTRA_MODULES = "network"
EXTRA_QMAKEVARS_PRE += " QT_LIBINFIX=${QT_LIBINFIX} "
# Qt4 uses atomic instructions not supported in thumb mode
ARM_INSTRUCTION_SET = "arm"
26. Yocto une solution robuste pour construire des applications à fort contenu applicatif. - 10 Avril 2013 26
www.cioinfoindus.fr
Anatomie d'un package-group
(packagegroup-core-tools-debug)
#
# Copyright (C) 2008 OpenedHand Ltd.
#
SUMMARY = "Debugging tools"
LICENSE = "MIT"
inherit packagegroup
PR = "r2"
PACKAGE_ARCH = "${MACHINE_ARCH}"
# For backwards compatibility after rename
RPROVIDES_${PN} = "task-core-tools-debug"
RREPLACES_${PN} = "task-core-tools-debug"
RCONFLICTS_${PN} = "task-core-tools-debug"
MTRACE = ""
MTRACE_libc-glibc = "libc-mtrace"
RDEPENDS_${PN} = "
gdb
gdbserver
tcf-agent
openssh-sftp-server
rsync
strace
${MTRACE}
"
27. Yocto une solution robuste pour construire des applications à fort contenu applicatif. - 10 Avril 2013 27
www.cioinfoindus.fr
Gestion du versionning
hôte
2 niveaux de versionning :
Version du logiciel (gérée par l'équipe projet qui
développe ce logiciel upstream)
Version de la recette (gérée par la communauté
yocto)
Plusieurs recettes possibles pour un même
logiciel (différentes versions du logiciel +
svn/git)
Par défaut version la + élevée retenue – peut
être contré par paramétrage au niveau
distribution
28. Yocto une solution robuste pour construire des applications à fort contenu applicatif. - 10 Avril 2013 28
www.cioinfoindus.fr
Gestion du versionning
cible
Gestionnaire de paquets sur la cible :
Installation
Suppression
Upgrade
Gère les dépendances à l'installation -
suppression
Gère les versions du logiciel + version de la
recette :
Refus des downgrade sauf forçage
29. Yocto une solution robuste pour construire des applications à fort contenu applicatif. - 10 Avril 2013 29
www.cioinfoindus.fr
Bon à savoir
Outil historiquement en mode console :
Mais apparition de version graphique : Hob
Plugin Eclipse : ADT
Prévoir beaucoup de disque et de temps CPU :
Génération de la toolchain + libc par yocto (temps
CPU)
Conservation des étapes intermédiaires – optionnel
mais utile – très gourmand en disque
Connaissance de Python : non obligatoire mais
un + pour comprendre / développer des recettes
Connaissance des standards tels que autotools,
pkgconfig etc... conseillée :
Plus du fait des logiciels gérés que de yocto lui même
30. Yocto une solution robuste pour construire des applications à fort contenu applicatif. - 10 Avril 2013 30
www.cioinfoindus.fr
Bon à savoir
Ne pas négliger qu'il n'y a pas d'outil miracle :
Temps de prise en main initial
Courbe d'apprentissage pour passer par les stades :
J'utilise
Je comprends
Je modifie / je crée
La documentation s'est professionnalisée (sur le site
Web yocto et distribuée avec le code).
Se faire accompagner par un spécialiste : réduction
du Time To Market
31. Yocto une solution robuste pour construire des applications à fort contenu applicatif. - 10 Avril 2013 31
www.cioinfoindus.fr
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 41
Mail : mailto:christian.charreyre@cioinfoindus.fr
Possibilité d'envoi des slides de la présentation
sur demande