Embedded weblog

Aller au contenu | Aller au menu | Aller à la recherche

Tag - paravirtualisation

Fil des billets - Fil des commentaires

mercredi, avril 8 2009

salons RTS et Solutions Linux 09

Les salons Real Time System et Solutions Linux se tenaient en même temps, cette année, porte de Versailles tout deux. J'avais déjà évoqué les bons et très mauvais points de cette connivence de dates et de lieux il y a six mois environ, et comme je le craignais, les seuls avantages que pouvait amener cette situation ont été annihilés par la distance assez élevée entre les bâtiments 8 et 2.2 : combien de fois n'ai-je entendu les uns et les autres avoir hésité entre les deux salons (WindRiver), ou promettre de passer sur l'autre (SFR) sans qu'on les y voie faute de temps, et en tout cas se plaindre de cette situation ? D'une manière générale, peu de société de Linux embarqué ont choisi Solutions Linux plutôt que RTS ; on pourra citer Concurrent Computer, tandis que Sphinx, habituellement présent sur les deux, a préféré RTS. Linagora était évidemment sur Solutions Linux, mais pas sur RTS. Avantage cependant de ces dates simultanées pour Linagora : pouvoir dépêcher sur RTS un commercial/avant-vente dès lors que j'avais repéré une affaire potentielle ; en l'occurrence, Sébastien Bahloul aura fait quelques allers-retours (compter un peu plus de dix minutes de déplacement pour l'opération...). Mais voilà : parfois, le simple temps d'alerter d'un bon, et le temps d'arriver (parfois le lendemain, quand on a repéré quelque chose d'intéressant la veille au soir), les intervenants sur les stands ont changé, et plus que répéter le travail d'approche, il est arrivé plusieurs fois où le bon interlocuteur, le seul qui pouvait faire interface, avait disparu. C'est ainsi qu'une fois une société me dit avoir grandement besoin de services Linux, et le temps de revenir, tout autre son de cloche, très peu de Linux en vue : en fait, les deux personnes adressaient des marchés totalement disjoints.

Cela fait cinq ans que je reviens sur le salon RTS, et six pour Solutions Linux. D'expérience, le premier est bien plus intéressant que le second, en ce qui concerne Linux embarqué, mais il n'est pas impertinent de choisir le second plutôt que le premier dès lors que l'on propose du software, surtout s'il s'agit de temps-réel pouvant avoir vocation à des applications de type serveurs. C'était cependant SL qui ouvrait le bal avec une conférence dès le premier jour (31 mars) au matin sur le sujet : Sébastien Dinot comme modérateur, et des gens connus ou reconnus comme intervenant ; citons donc le traditionnel Christian Charreyre de de CIO informatique (nos concurrents marseillais), et les plus nouveaux David Chabal (toulousain dont j'ai relu l'excellente documentation sur Xenomai, que je n'arrive toujours pas à trouver en diffusion publique, mais je suis dans les remerciements), Lucas Bonnet (monsieur OpenMoko France) et Etienne Juliot (Obeo). Pour un compte-rendu très complet, il suffit d'aller lire l'excellent rapport de Thomas Petazzoni. Il se trouve que j'ai décidé de sécher cette conférence : déjà, parce qu'elle était payante, et qu'il fallait donc magouiller un pass' conférencier sur notre stand (perte de temps, quand tu nous tiens), et ensuite parce que j'ai préféré arpenter RTS sur le peu de temps imparti, qui ne me semblait pas justifier de sacrifier une demi-journée. Je pense avoir eu raison : même si je n'avais pas assisté à la session RMLL 08, j'avais lu les slides, et il se trouve que le Chabal et le Bonnet ont fait de la redif' ; la conf' plus généraliste de CIO m'aurait certainement un peu ennuyé ; et celle d'Obéo a été rediffusée sur le salon RTS, où je n'ai d'ailleurs pas été plus avancé que Thomas (on y reviendra). Il ne m'étonne en tout cas que moyennement que seuls une dizaine de personnes y étaient présentes.

C'est ce que l'on appelle "un beau gâchis". J'avais moi-même pré-postulé il y a bien longtemps pour donner une conférence sur le portage Linux embarqué sur architecture ARM non supportée, mais le temps de confirmer (ie d'avoir réellement porté le bestiaux), les trois autres intervenants étaient retenus. Quatre, c'est bien peu, d'ailleurs. J'avais alors prévu de présenter le même sujet sous un angle différent pour la conf' RTS "les outils open source dans l'embarqué", qui a été annulée silencieusement (mais j'ai appris à la fin du salon que François Gauthier avait regardé les activité de Linagora suite à mon mail, et que c'est ainsi qu'il contacta Benjamin Jean, notre juriste, pour la session "la jungle des licences logicielles"). Je donnerais a priori cette conférence (dont l'université Paris 8 a pu avoir un court extrait) au RMLL 09, à Nantes, finalement. Il se trouve, en tout cas, que j'ai par le plus pur des hasards prédestiné, rencontré Francis Mantes, au sortir du salon RTS avec Sébastien, après être allé rencontré des gens intéressants : allumant sa pipe, j'aperçois son badge, et vais donc immédiatement à sa rencontre. Nous avons discuté un bon moment (il se souvenait par ailleurs du court échange que nous avions eu par mail), et avons déploré la distance des deux salons mis ainsi en concurrence (si Groupe Solutions organisait les deux auparavant, il semble que SL soit passé sous l'égide de Tarsus) : il a été décidé de prévoir une semi-journée Linux l'année prochaine, avec force ateliers et conférences à but technique plus que commercial ; non seulement j'abonde, mais je salue la pré-initiative (en outre, puisque l'on m'a invité à rappeler par mail cet échange, je ne manquerai pas de lier ce compte-rendu, et j'en profite donc pour saluer le travail organisationnel de notre hôte).

Mais revenons-en à nos hardeux. Car le salon RTS c'est avant tout du silicium et de l'époxy, il faut bien l'avouer. Les "softeux" (ça sonne plus mal) sont peu nombreux, on compte les gros WindRiver, GreenHills Software ; il y a Sysgo, mais nul LynuxWorks cette année, et pas de Montavista non plus. Bref, on fournit du BSP (Board Support Package, pour les n00bs), mais pas de service informatique à proprement parler : un seul concurrent -- et de taille, quoique, il faut considérer que l'informatique embarquée représente aussi chez eux une partie seulement de leurs activités --, possédant un stand, côté M2M, à savoir Teamlog. À noter au passage qu'outre RTS, il est de tradition depuis plusieurs années de lier M2M (Machine to Machine, toujours pour les n00bs) et Display (affichages numériques) ; il y a cinq ans, le second connaissait un succès monstre avec force téléviseurs, imprimantes 3D ou autres, mais il doit être concurrencé par un autre événement non identifié, car il n'y a plus que quelques sociétés proposant des affichages digitaux (on reste néanmoins admiratif devant des écrans cristaux liquides d'une qualité impressionnante).

Ma mission a donc consisté à aller démarcher les vendeurs de hard et de BSP, pour nous faire connaître : oui, nous, Linagora, société de services en informatique libre (et éditeur, sur d'autres parties), partant d'un concept généralisé mais experts dans notre partie, à l'originalité indéniable notamment concernant notre interfaçage privilégié avec la communauté (aka "le monde du libre"), et disposant depuis un an et demi d'une équipe aguerrie d'ingénieurs informaticiens rompus aux techniques de l'embarqué, du temps réel, de l'industriel.

Il faut reconnaître un certain succès a priori (a posteriori, on verra si des affaires nous reviennent, il faut attendre un certain temps pour cela) : premier bon point, j'ai l'habitude de ce salon, certains intervenants me connaissent fort bien à force, je suis donc à l'aise ; second bon point, et de taille, la démarche est fort originale, et répond à un besoin déjà identifié par les acteurs. En effet, les vendeurs de matériel électronique (le "hard"), qui peuvent aller de la puce à la carte, du module au PC durci, n'ont que très peu de connaissances logicielles, et lorsque des clients viennent les voir avec une idée de développement logiciel derrière la tête, les fameux "applicatifs métiers", ce n'est pas forcément en ayant déjà à disposition l'expertise technique suffisante. Or, acheter un bien matériel que représente une carte de développement, une carte industrielle, ou un module de communication M2M est une autre paire de manches que dégoter l'ingénieur expert pouvant concevoir le système software qui va faire d'un hardware inanimé monts et merveilles. J'ai assez assuré de prestations chez des grands comptes qui cherchaient une personne qualifiée depuis six mois ou plus pour le savoir. Le positionnement de Linagora est alors simple : vous savez faire le hard, nous savons faire le soft, nous existons, faîtes-le savoir à vos clients !

Aussi, nous n'entrons pas en concurrence frontale avec les autres acteurs comme Sysgo, Montavista ou autres, qui ont déjà des accords pour fournir des BSP ou autres solutions de Linux embarqué/RT "clef en main" : nous construisons au dessus, nous intégrons, nous apportons la plus-value sur mesure, du "bespoke (free) software solution", en somme (la fashion victime qui sommeille en moi va copyrighter cette expression, tiens). À noter aussi que Linagora n'est pas un ayatollah du libre : notre société promeut le libre mais n'y oblige pas ses clients, et si le sujet est sensible dans l'industrie, j'en suis tout aussi conscient ; cependant, nous pouvons concevoir du logiciel propriétaire à la demande par dessus du logiciel libre (notre spécialité se situant ici, ce qui comprend les problématiques de licences), et ce de l'avant-vente jusqu'au support OSSA (Open Source Software Assurance : le service après-vente de luxe par Linagora), tout en vous proposant de reverser les parties de modifications de logiciels libres utiles à la communauté selon votre bon vouloir (mais croyez-moi : mieux vaut participer, gagner en plus l'estime du public averti, et éviter de redévelopper les mêmes patches à chaque fois que l'on veut effectuer une mise-à-jour interne du produit ; bien des coûts cachés sommeillent dans le logiciel libre, il est de notre devoir de proposer de les optimiser pour le bien de tous).

Voilà pour la communication externe, toutes mes excuses aux collaborateurs qui se seraient ennuyés...

La pêche fut très bonne : il est envisageable de rassembler la masse de cartes de visite (sachant qu'il faut parlementer un minimum pour en obtenir une : pas tout le monde n'avait un stock à disposition, loin de là) en un jeu des sept familles, mais il sera plutôt préférable de faire du business avec. Je ne dirais donc pas que le salon était vide, à l'instar de Thomas dans son compte-rendu sus-lié, les allées étant peuplées et les stands quasiment toujours occupés ; de plus, trois ou quatre conférences se tenaient constamment en même temps, avec plus ou moins succès -- mais au moins, elles y sont gratuites. J'ai fait le constat inverse concernant SL dès lors que l'on s'éloignait des stands Linagora-Novell-Canonical (ces derniers exposant, juste en face de nous, leur réussite sur les migrations Assemblée Nationale et Gendarmerie, et ce sans nous citer ! Incroyable mais vrai), comme quoi ça devait dépendre de l'heure. Car finalement, je n'ai passé que peu de temps sur le salon linuxien, en fin de journée ou à la pause déjeuner essentiellement, histoire de voir un peu de monde, de passer sur notre stand, ou de saluer des amis d'associations de libristes. Et puis aussi participer au cheese'n'wine du second jour, le soir -- du moins au début des festivités, un pré-Wagner m'attendait au théâtre du Châtelet.

Puisque je réserve un retour détaillé des différents intervenants très intéressants à recontacter en interne (non, je ne donnerai pas des pistes à la concurrence, il ne faut pas pousser non plus  :)  ), passons donc aux comptes-rendus des différentes conférences. J'ai commencé par une première session de 14h00 à 16h00 consacrée à la certification logicielle : le sujet m'intéresse beaucoup, j'ai justement contacté quelqu'ami chef de centre de Systerel (associé l'année dernière à Sysgo par un stand commun, mais pas cette fois) à ce sujet, car il n'existe aucune formation dans l'absolu. Différents intervenants au programme : Lionel Burgaud de Geensys a parlé d'organisation collaborative, parce que spécifier chacun dans son coin des bouts de code similaires est passablement contre-productif. GreenHills, qui a fait certifier sa solution Integrity EAL6+, après trois ans de torture (les développeurs sont aussi passés à la question) par la NSA, montre effectivement les limites de la procédure (longueurs et retards technologiques) ; Serge Plagnol (ou son collègue Rolland Dudemaine ?) m'avait, peu de temps avant cette présentation, fait un exposé sur son stand de l'attachement de GHS à la sécurité (il a montré une vidéo de turbine piratée à distance poussée à son extrême limite : de quoi attirer l'attention sur les failles de sécurité qui émaillent le code des développeurs de l'industriel) : c'est clairement le positionnement marketting de la société à présent. La vague sécuritaire touche d'ailleurs aussi la solution concurrente (mais à l'architecture différente : virtualisation vs paravirtualisation) de Sysgo, et c'est l'habituel mais toujours intéressant José Almeida (cinq ans que l'on se voit, alors à la pause, on devise ensemble, forcément) qui cette fois ne nous parle plus Linux ou PikeOS, mais DO178B (du niveau E au A, pour l'avionique), Common Criteria avec EAL/MILS (du niveau 1 à 7), IEC61508/ENSO128 (de SIL 0 à 4, par un positionnement parallèle à la DO-178B, mais pour le ferroviaire cette fois), ou encore ECSS (espace), FDA (médical) et que sais-je encore : un vrai fouillis ! Les prédispositions communes sont la fiabilité, la disponibilité et la réutilisation, à mettre en corrélation avec le Time to Market ; d'autres concept sont encore abordés : certification incrémentale, méthode formelle, mélange de niveaux indépendants, utilisation en redondance (pas facile de relire ses notes, d'autant qu'il faut effectuer une traduction à la volée...). On évoque aussi des différences dans les habitudes de codage avec l'apparition d'APIs POSIX/ARINC. Enfin, on parle d'ESA, dont le projet est la convergence de certifications (ECSS, DO178B et CC/EAL5+), en recoupant les similitudes pour gagner du temps.

C'est ensuite à Matteo Bordin, d'AdaCore (tiens, un intervenant que je ne connais pas, uniquement anglophone d'ailleurs), "toward a lean approch of certification", qui parle d'open-do.org. Ce projet recoupe ce qui avait été abordé justement par GHS (mais ils ne se connaissaient pas tous les deux, un comble pour des prôneurs du coopératif !), à savoir la collaboration et la mise en commun pour accélérer les certifications, selon un nouveau moyen hérité des méthodes Agile. On remarque en premier que la certification actuelle se fait d'un seul bloc : on écrit entièrement le code, puis on le fait certifier, on attend quelques années, et voilà. Mais rajouter du code ensuite fait automatiquement sauter la certif', et il faut alors recommencer le cycle depuis le début : dans le cadre d'un logiciel communautaire (au hasard un compilateur pour langage Ada), on comprend que ce soit passablement gênant. L'idée est alors de recouper le libre, l'agile, et la certification High Assurance ; on voit une potentialité dans le militaire, l'espace et le ferroviaire pour une communauté HA, on compare la méthode de certif' DO178 vs Lean/Agile, et on expose enfin le but d'OpenDO : communauté ouverte, partage, base de connaissance, apprentissage méthodologique (education, en anglais dans le texte) et de l'Agile dans les process. Why not ? Comme "bootstrapping" (on reste parmi des techos, on a le droit au détournement d'expression -- quoique) : FP7 en Europe et DARPA aux USA. Bref, ça démarre...

C'est au tour d'Olivier Charrier de WindRiver, sur le sujet de l'avionique modulaire intégré (IMA), partant du concept qu'en avionique comme en automobile, l'augmentation des fonctionnalités s'observe parallèlement à la baisse du nombre de CPUs embarqués, qui deviennent multicoeurs, déjà qu'ils avaient tendance (oh my god tout ça) à avoir de la MMU, du DMA, et on en passe des meilleures qui imposent (attention puristes, ça va vous faire mal) l'utilisation d'un OS. Résultat : des problèmes de synchronisation dans les développement hardware, software, l'intégration des deux, le tout avant certification. On attire l'attention sur le point d'achoppement principal que constituent le debuggage et le testing. Thomas Cenni de MathWorks (éditeur de Matlab, évidemment) parle de tout autre chose : génération de code certifié, instrumentation simulink et le tout sous couvert de Polyspace, racheté il y a plus d'un an à présent (différence entre Polyspace et Coverty : le premier indique quelles sont les zones totalement fiables et certifiables, le second indique les bugs potentiels : chacun prend le problème par un bout, cependant à 45K€ la solution -- sans compter la prise en main que cela implique --, mieux vaut ne pas se tromper d'approche ou être riche !). Enfin, Luc Coyette d'Esterel entretient des problèmes de spécification et de tests, impliquant la détection tardive de bugs, faisant exploser les coûts (jusqu'à devenir intolérablement haut dans certains cas) ; sa solution : SCADE, aliant langage formel, générateur de code certifié, simulateur et vérification de compilation. Il annonce que 8 millions de lignes de codes générés pour 40 modules sont embarqués dans l'A380, au niveau A de la DO-178B ! En séance de questions, quelqu'un demande pourquoi on n'applique pas les même normes draconniennes à l'automobile (extrait du magazine "Electronique" : " 'le standard DO-254 [ndlr: certif' de systèmes un peu plus complexes que pour la 178], quant à lui, est très jeune puisque le document date d'avril 2000', explique Lionel Burgaud (GeenSys)", ça donne une idée du niveau) : réponse, parce que ça coûterait trop cher pour quatre morts de temps à autre, sans que l'on sache trop (et à vrai dire, on ne cherche pas trop à savoir) si c'est le régulateur de vitesse ou la mauvaise conduite qui en est à l'origine ; un avion de 240 personnes qui se crache, c'est une catastrophe qui passe au JT, mais effectivement, il y a bien 50 fois moins de morts par accident d'avion en France que par voiture, c'est juste que le coût par vie est moins rentable tout considéré. On apprécie la franchise.

Seconde conférence : tests et sécurisation en milieu embarqué, le second jour au matin (10h à midi). Le propos était fort semblable, et si l'on y ajoute que le magazine "Electronique", distribué gratuitement (au lieu de 12,20€ les 65 pages pubs nombreuses comprises, sacré pouvoir d'achat chez les hardeux !), consacrant un dossier en couverture de cinq pages sur le sujet (et deux à l'amélioration du temps de boot de Linux, au passage), cela montre l'intérêt porté à la question, d'autant que l'audience comportait encore trente à quarante personnes. Bref, sous l'égide de François Gauthier, de ladite revue électronique (mensuel arrivé au numéro 200, quand même), le premier intervenant est encore de chez GreenHills, le fort connu Serge Plagnol : il nous parle d'hyperviseurs (tendances, techniques et applications), comparant para et full (ainsi que l'hybride) virtualisation (notamment par rapport au portage de drivers, inutile dans le premier), mais aussi de type 1 (à la ESX) vs type 2 (à la VMW workstation) ou hybride, comme  c'est le cas de, KVM mais aussi d'Integrity, qui peut ainsi aussi exécuter des applications. On considère ensuite les différentes architectures : monolythique (ESXi, VLX -- VirtualLogix était d'ailleurs absents, tout comme Trango et OKL4), Dom0 (Xen par exemple, mais le TCB est encore trop gros, on compte plusieurs mégas de code !) et enfin à base de microkernel, comme OKL4 (que l'on connaît assez bien par ici : mon ancien stagiaire a passé six mois sur le sujet) et Integrity, qui présentent un très petit TCB. On parle rapidement de ce que propose l'architecture x86 en terme d'aide à la virtualisation : VT-x (niveaux de privilèges) et VT-d (I/O virtualisés, dont la DMA, plus quelques autres joyeuseries) ; pour l'instant, l'Atom ne propose que du VT-x, mais une évolution prochaine est à attendre ; de son côté, ARM propose TrustZone, une double partition de fiabilité. Si l'on rappelle (page de pub) qu'Integrity est certifié à présent EAL6+, on insiste sur le fait que la virtualisation n'implique pas en soi la sécurité, bien au contraire ! Enfin, les applications de ce type de sécurisation par hyperviseurs seraient la téléphonie, les PC portables d'entreprise, les terminaux de paiement, le jeu avec transaction financière, et tout ce qui implique à la fois une communication (militaire notamment) et la présence simultanée d'une IHM.

Après cette longue présentation, c'est au tour de Jean Philippe Dehaene de présenter AUTOSAR, l'outil de simulation de VECTOR, les spécialistes en solutions logicielles (notamment sur bus de comm' CAN et LIN) pour l'automobile ; c'est intéressant pour qui est du milieu (très particulier, et qui ne va pas forcément bien en ce moment : passons). Didier Vidal d'ISIT expose les mérites de LDRA, l'analyseur statique de code ; c'est que la relecture manuelle de code trouve sa limite à 10 pages par jour, même si elle corrige 80% des bugs fonctionnels. La relecture automatisée, à l'inverse, ne peut pas trouver les erreurs fonctionnelles mais relève 80 des bugs techniques. À l'aide de règles de codage (MISRA-C 2004), de graphes d'appels, d'étude de code, de statistiques, de commentaires automatisés (ça j'aime !), de suivi de variables et d'exports des résultats dans des formats divers et variés dont le web (ça dépasse la simple relecture automatisée !), la société entend nous faire économiser bien de la sueur (contre un gros chèque, certainement). Fait très amusant, dans le contexte : alors que l'on passe rapidement les très nombreux slides, et que le transparent 60/60 concerne la détection de buffer overflow et d'overrun, on continue la présentation jusqu'à la slide 67/60 !

Ben Chelf, CTO de Coverty (et anglophone only, sorry) parle d'une nouvelle solution d'analyse de compilation : ça c'est fort ! Le problème du build est l'effet "boîte noire" (black barrier), peu importe si le compilateur est est libre ou non, à la rigueur, étant donné la complexité actuelle. L'analyse de build construit une carte du système de compilation complet en s'interfaçant entre les outils et l'OS ; un exemple est alors donné en utilisant... OpenOffice.org ! Ça ne s'invente pas, et évidemment, le graphe peut servir à faire peur aux petits enfants le soir. À noter que d'une manière générale, les outils libres sont implantés partout : on s'en sert directement (gcc et eclipse en star, encore plus que Linux) ou indirectement, comme base de proof of concept ; coverty s'est fait une spécialité de découvrir les bugs de logiciels libres pour à la fois se faire de la pub à peu de frais sur une base de code énorme, et tester leur outil en même temps (ce qui me fait penser que je leur ai parlé du bug de ifstated sur bagotage d'interface réseau : arriveront-ils à le trouver ?). Leur logiciel explore les différentes phases de la compilation : le make clean, les macros DEBUG ou RELEASE, les options de sécurité, etc ; fini les peurs bleues d'avoir un fichier objet non regénéré à la suite d'une modification de .h ! (ça peut faire très, très mal, sur du code militaire mal foutu, surtout quand ça fait plusieurs dizaines voire centaines de milliers de lignes -- souvenirs douloureux). Outre l'analyse, un "build management" est proposé.

L'après-midi, je m'étais inscrit à la conférence sur la virtualisation, mais j'avais mal compris : c'était la virtualisation de la machine de développement dans le but d'émuler des plate-formes exotiques pouvant aller jusqu'à l'ARM OMAP ; comme j'avais déjà discuté assez en profondeur à mon goût de ce sujet avec les principaux intervenants, ECSI (attention ! web 0.2), je me suis enfui ; cependant, le sujet est extrêmement intéressant, pour avoir eu l'occasion de développer sur OMAP, justement, et donc de goûter aux 25 minutes de flashage intégral à chaque fois que l'on veut tester la solution (quant au développement par NFS, autant oublier : il n'y a pas d'Ethernet, voyons !) ; je crois donc sans problème le consortium européen (avec notamment une université lettone dans le lot, oui ça étonne) lorsqu'ils affirment pouvoir réduire par deux le TTM (Time to Market, si vous débarquez de Mars). J'ai donc opté pour l'autre conférence simultanée pouvant être intéressante : Agile dans le milieu industriel, encore introduit par François Gauthier qui avoue à la fois intérêt grandissant (ce que semble confirmer le monde présent) et la nouveauté de l'approche dans le milieu. Mauvaise pioche : Philippe Soulard (remplaçant Yves Lebeaupin) de Sodius me fait mal à la tête avec son exposé "Multi-tool & multi-model integration using IBM rules composer" : trop de sigles et concepts abstraits, c'est à se demander si l'on parle bien de méthodes Agile, en tout cas je ne suis pas ; Etienne Juliot d'Obeo (voir au dessus) prend la relève et commence par un remerciement à son prédécesseur d'avoir introduit autant de concept (ouille), avant de nous parler de ses outils de modélisation, avec du temps-réel et de la génération embarqués sous Eclipse (c'est ce que disent mes notes) ; je reste malgré le micro qui rend l'âme (embêtant, ces micros, vraiment) parce que ça parle OpenSource (j'ai appris plus tard que Linagora a un peu travaillé avec Obéo pour le ministère des finances, association qui n'a pu aboutir faute d'avoir obtenu le marché : je confirme que nous n'étions pas mentionné parmi les partenaires), mais au bout d'un moment, je finis par craquer (au bout d'une heure, en fait).

Dernier jour et dernière conférence : "la jungle des licences logicielles". L'intitulé a pas mal évolué, l'apparition de cette conférence le dernier jour (moins peuplé et terminant à 17h30) n'a pas non plus aidé au remplissage de la salle : seulement une dizaine de personnes présentes, ce qui a déçu François Gauthier (décidément, je n'ai pas fait exprès, mais nous partageons les mêmes goûts apparemment). L'année dernière, la salle était comble, et les intervenants clairement techniques et peu juridiques : cette année, tout le contraire, de vrais juristes et avocats, mais des erreurs techniques dans le discours (netfilter, le module Linux de firewall, est ainsi de venu "netfiles", logiciel). Pour l'année prochaine, il serait de bon ton de mêler les deux milieux, et je me propose dores et déjà, tant le sujet me passionne (le juridique d'une manière générale, en fait, et je devise régulièrement avec avocats et professeurs de droit, de surcroît) ; d'ailleurs, j'ai pu parler à la fin de l'affaire Guillermito, fort importante mais inconnus de mes interlocuteurs (pour ma part, j'avais tout simplement pris deux après-midi pour assister au procès et au délibéré). Les deux premiers intervenants sont Cendrine Claviez et Vincent Pollard du cabinet TAJ, mais arrivant en retard (pour cause de prospection), j'ai raté le début de l'intervention de la première, pour arriver au moment de la considération des effets héréditaires/viraux, classant GPL, EUPL, CeCILL A d'un côté, MPL, LGPL, Eclipse et CeCILL C de l'autre, et enfin MIT, BSD, ASF et CeCILLB ensemble. La volonté d'organisation de cette "jungle" est manifeste. On continue sur les résiliations, automatique pour la GPLv2 et l'EUPL, il y a un délai pour la GPLv3 : en cas de constatation de violation, on peut ainsi avoir le droit de continuer d'utiliser le logiciel en attendant la rectification, alors que pour les autres, la sanction est immédiate, avec l'injonction de cesser immédiatement l'utilisation ; pour la peine, la GPLv3 est bien plus favorable à l'industriel distrait ! (évidemment, nous considèrerons la bonne foi a priori de celui-ci) On parle de l'EUPL, versions 1.0 et 1.1, la licence libre européenne pensée pour agir dans la juridiction du licenceur en Europe, et selon le droit belge sinon, et comportant une clause de compatibilité avec la GPLv2, la CeCILL ou encore Eclipse (attention cependant à la GPLv3 ou tout autre licence rédigée après l'EUPL, et de facto non mentionnée : il faut rajouter en annexe). On rappelle que le relicenciement autorisé par la BSD implique de pouvoir rendre le code GPL.

C'est ensuite au tour d'Hervé Guyomard de présenter son outil phare de Black Duck Software, et il nous injective : "Know your code" ! Prenons un exemple : Cisco rachète Linksys pour 500M$, Linksys embarque dans son WRT54G du code de Broadcom, que lui a fourni son sous-traitant Cybertran ; pas de bol, c'est bourré de GPL, et la FSF intente un procès à Cisco. L'histoire va plus loin encore : le WRT54G à 60$ voit son code libéré pour respecter la licence, code qui se voit grandement amélioré par la communauté, et réembarquable dans le même appareil, concurrençant dès lors des solutions professionnelles de Cisco valant... 600$ ! Cette histoire bien connue des milieux libristes de l'embarqué illustre le propos de notre intervenant : avec 1400 licences OpenSource recensées (évidemment, la plupart sont des adaptations de licences bien connues : il suffit de rajouter des annexes ou de modifier des paragraphes -- on recense par exemple une GPL interdisant les usages militaires : il faut noter que cette licence n'est alors plus considérée comme libre, quoique toujours OpenSource), il n'est pas inhabituel de se prendre les pieds dans le tapis, et d'embarquer sans le savoir du code soumis à des termes de licences non pris en compte, et pouvant avoir de fâcheuses conséquences. Protex est une moulinette sur-évoluée de code basée sur une base de données et de métadonnées complète, pouvant dès lors détecter à l'aide de génération de fingerprint (inutile de ne changer que le nom des variables et des procédures : ce sera détecté) les composants OpenSource lors d'un audit de code ; l'outil sait même reconnaître les conflits de licences. Dans l'industrie mobile, Intel, Samsung, Siemens, Motorola, Nec, RIM, LG, Qualcomm, Palm, Cisco, Xerox, Sega ou encore NTT ont fait appel à leur service : c'est dire si le problème est largement pris au sérieux ! Hervé Guyomard affirme par ailleurs que toutes ces entreprises intègrent d'une manière ou d'une autre des produits OpenSource dans leurs appareils.

Le dernier intervenant est bien connu à Linagora, puisqu'il s'agissait de Benjamin Jean, notre juriste. Pris dans le marasme des transports (RER D ?), il est arrivé bien en retard et a totalement raté les premières interventions : sans filet et sans slides, il essaie de faire original en pointant les sujets les plus importants : droits et obligations, extension de la licence (jusqu'où la licence couvre-t-elle ?), l'élément déclencheur aussi (souvent, il s'agit de l'utilisation, donc de l'exécution, mais il peut s'agir du simple téléchargement !). Il indique qu'un groupe de réflexion est actuellement monté au sein du SYNTEC informatique. Et qu'il a donné une conférence complète dont les slides peuvent être trouvées sur le net (sauf que je n'ai rapidement pas trouvé, il faut mettre son blog à jour, Ben ! ;)  ). Il en oublie de citer le groupe dédié aux problèmes de licences libres qu'il anime, Veni Vidi Libri, on sent la fatigue après trois conférences sur le sujet en trois jours ! On passe à la séance de question, qui tournent toujours autour des mêmes points, le plus crucial étant : où commence et où s'arrête ce qui est couvert par la licence ? (dans le public, un représentant de Vector présente son activité : c'est surprenant de voir ça sur le salon RTS ! On a totalement changé de monde) C'est que le problème est pernicieux, sur des systèmes embarqués dont la limite avec le userland est parfois assez floue (WindRiver vient d'ailleurs d'en implémenter un sur VxWorks : je parie que c'est pour répondre à ce genre de problématiques), et je discute après la conférence avec un ingénieur s'occupant de l'interfaçage juridique (on se demande d'ailleurs comment on pourrait nommer ce nouveau métier, que j'ai déjà rencontré chez Philips : je ne sais pas trop, mais ça m'intéresse comme évolution de carrière) de la possibilité de jouer avec les share memory, via une couche logicielle libre mais plus permissible, y pour interfacer des modules GPL avec du propriétaire (technique quelque peu utilisée par les hyperviseurs de paravirtualisation, après tout -- et j'ai déjà croisé un projet réel pour cela lorsque j'ai travaillé pour Trango). Mais il est vrai que la GPL parle d'un "tout logiciel" : nulle technique, au juge d'apprécier en cas de litige, donc au meilleur expert ès enfumage (et vulgarisation) de montrer ses prouesses, nous voilà fortement rassurés... Notons pour finir que les brevets n'ont pas été abordés (sujet connexe aux licences), et donc que l'affaire Tomtom n'a pas été évoquée, ce qui est dommage.

C'est ainsi que s'acheva la dernière conférence : j'en avais bien prévu une autre, sur les standards logiciels, mais manifestement elle a été annulée, certainement faute d'audiance, le dernier jour étant effectivement largement plus vide. J'ai pour ma part pu observer que le VME vivait toujours et plutôt bien, même s'il partage à présent l'affiche avec toutes sortes de PCI industriels. Côté processeurs, les nouveaux ARM Cortex ont évidemment la côte, occultant ARM9 et 11, d'autant que de nouveaux OMAP sur base Cortex apparaissent (les ARM7 étant remplacés par les M8, les autres étant A8, avec une évolution en faisant monter les chiffres à côté de chaque lettre -- la nommenclature ARM est toujours très sportive, seul Intel fait mieux) ; la puissance de ces processeurs fait apparaître des solutions à base de Java, où pour une simple application en stand alone, un OS est inutile (certains abandonnent de fait Linux), la VM faisant office de tout, y compris de scheduler entre les différents threads. Côté PPC, on trouve du PowerQUICC III, qui se porte toujours aussi bien dès qu'il s'agit de faire de la communication. Et puis la star, l'Atom, que l'on retrouve partout : il faut qu'Intel a enfin corrigé les énormes pertes d'énergie qui font que les netbooks meurent de fatigue au bout de deux heures seulement, et qu'à présent, on peut réellement concurrencer du ARM, avec moins d'automie mais plus de puissance, dit-on ; en tout cas, la solution étant viable depuis environ quatre mois à présent, le temps de concevoir des cartes et l'on a pu constater que l'engouement était très, très récent ; le PC104 et le Geode ont en tout cas totalement disparu ! Les nouvelles techniques de virtualisation en cours d'implémentation devraient aussi pousser dans ce sens, et Intel promet l'arrivée d'un adressage direct de la flash, sans passer par un contrôleur (ce qui est, rappelons-le, la lose totale) : on pourra ainsi, comme sur ARM, considérer flash et RAM de manière contigüe, et avec la promesse de pouvoir outrepasser le BIOS (ils travaillent avec Microsoft, me dit-on, car actuellement nul OS ne supporte cela : il faut dire que le BIOS -- pour l'instant incontournable sur l'archi x86 -- ne fait pas grand chose, il initialise principalement des périphériques PCI avant de lancer le bootloader, mais il est bien connu que Linux outrepasse depuis longtemps le paramétrage du BIOS, et que le projet FreeBIOS s'appelait avant LinuxBIOS car il s'est basé sur du code d'amorçage de Linux). Bref, Intel va inventer ce qui existe depuis 20 ans, on s'en félicite. En fait, je ne sais jamais trop si c'est une bonne nouvelle de voir débarquer en force une architecture aussi mal foutue que le x86 dans le monde de l'embarqué, déjà que près de la moitié des projets l'utilisent (pourquoi ? Parce que c'est connu, effet "j'ai le même dans mon PC", psychologie commerciale basique...). Cependant, Linagora se fera une joie de développer vos applications sur ce type de processeur, nous avons d'ailleurs achevé un projet majeur sur plate-forme à base de Pentium M (qui, s'il n'avait tenu qu'à moi, tournerait sur PowerQUICC III).

Je n'ai malheureusement rencontré que fort peu de monde connu dans les allées de RTS, j'ai eu la joie de tomber par le plus pur hasard (je revenais de SL alors qu'il s'en allait) sur mon ancien chef de projet chez Sagem, à qui j'ai donc enfin pu demander des nouvelles de notre bébé, le MO300e (module Neptune avec Nucleus+Linux) : eh bien c'est une totale déception commerciale, les clients potentiels préfèrent une implémentation à deux CPUs, un OMAP très simple et rigide allié à un ARM9 très souple comportant son propre Linux customisable. Moralité : peu importe la dose de technique que l'on met dans un projet (en l'occurrence, le MO300e c'est de la virtualisation maison, une interface web pour administrer le Linux et notamment gérer ses propres applications additionnelles, une sécurité parfaite, un SDK facile à mettre en oeuvre où j'ai même incorporé un système facilité d'émulation, etc) tant qu'on n'adresse pas le bon marché, et que l'on ne répond pas aux attentes des clients. De peur de ne pas pouvoir faire face aux demandes de support Linux, le périmètre a été fortement réduit, avec notamment l'impossibilité de charger des modules personnels dans le noyau, figé au 2.6.18 : la solution étant fortement industrialisée, il n'y avait pas vraiment le choix, et la mise à jour de firmware est une plaie, puisque nous sommes sur des LU, les Logical Units, entièrement chiffrées puisqu'ayant accès au réseau GSM (je pense cependant qu'une solution pouvait être envisagée pour mettre à jour à chaud, mais la demande en mémoire flash aurait été trop coûteuse) : comme quoi mettre un seul chip est plus économique mais trop spécifique dans ce cas pour adresser un large marché aux besoins très divers. Bien dimmensionner veut aussi dire d'étudier le marché, et de ne pas ignoré -- comme cela avait été le cas à l'époque -- les demandes pressantes des clients sur certains points techniques ; une récente discussion par mail à ce propos avec une société de M2M autrichienne a confirmé cette tendance (après avoir testé durant quelques semaines le produit -- ils m'ont demandé quelqu'aide par mail, car la réactivité de Sagem n'était pas terrible --, les dernières nouvelles étaient que leur avis sur la viabilité du produit était de plus incertaine, et que Wavecom semblait être, à regret, de nouveau la "meilleure" solution).

J'aurais en tout cas bien voulu échanger quelques mots avec mes collègues de l'APRIL Sébastien Dinot et Thomas Petazzoni, recontrer enfin David Chabal, croiser Patrice Kadionik et Pierre Ficheux qui j'en suis sûr connaissent plus mon visage que mon nom (ou l'inverse, allez trop savoir, mais il y a un manque certain de corrélation :)  ), deviser avec Denis Bodor de Linux Mag' (mais il était tout le temps occupé, je lui enverrai un mail), ou me faire présenter au pôle édition d'Eyrolles (parce que finalement, à part un peu "Embedded Linux Primer", dont l'auteur a d'ailleurs écrit dans le "Electronique" du mois de mars distribué gratuitement, il n'y a jamais de technique pure et concrète de "comment embarque-t-on du Linux", ce qui est un peu un comble pour des bouquins de Linux embarqué au nombre de quatre ou cinq, qui restent pourtant très bons ! Bref, je caresse une certaine idée...). Il y avait du monde sur SL, mais il était difficile de le rencontrer. Patrick Sinz était en tout cas sur le stand de Emtec (ex-BASF), pour présenter le Gdium (il bosse maintenant pour Gdium SA, basé au... Luxembourg, hum), et d'autres STB/disques durs multimédias de la marque.

Pour conclure (comment ça, "enfin" ?), mon avis sur les deux salons est positif mais avec une petite réserve sur un sentiment diffus d'essoufflement ; comme je fais la même remarque chaque année, ça ne doit pas être si grave (et puis, c'est la crise). Mon principal regret est la disjonction des deux salons. Un workshop géant pour Linux embarqué me semble être la meilleure idée, à la condition que les deux salons soient très proches (il aurait été possible d'avoir une continuité physique, les locaux sont prévus pour à la porte de Versailles !), ou alors qu'ils ne tombent pas aux mêmes dates, comme avant. Dans ce workshop (sur le salon RTS, s'entend, il faut que cela reste gratuit), il serait idéal d'adresser toute sorte d'intervenants, de milieux divers (industriels, CE, M2M, comm', etc), des enseignants et formateurs (quelques uns se baladaient sur le salon, ai-je appris sur le stand de Neomore), des libristes (pourquoi pas aussi des gens du monde BSD, eux aussi ont des choses à apporter à l'embarqué ! Soekris était d'ailleurs présent cette année encore sur SL), des entreprises de type intégrateur ou de service (c'est ici que peut entrer Linagora, outre l'aspect formation et juridique), en plus des habituels éditeurs, et enfin, élargir le scope avec du juridique (licences et brevets) ; je rêve d'un village associé à un cycle de conférence techniques ; et de retours d'expériences qui forgent des liens entre visiteurs (et pas seulement entre exposants et visiteurs), d'autant que Linux s'embarque sur des appareils tellement divers et spécifiques qu'il est toujours très intéressant d'en embrasser une vue la plus globale possible.

Concernant la diffusion de Linux et bien plus encore celle du logiciel libre dans l'embarqué (on pense aux méga-stars que sont gcc et Eclipse : on les trouve partout, soit bien plus encore que notre kernel favori), on peut dire que l'évolution atteint une sorte de vitesse de croisière : ceux qui attendaient pour migrer l'ont presque tous fait, et les nouveaux projets peuvent choisir parmi une gamme de solutions complète, où Linux prend une place importante, mais en dehors de tout effet de mode et de tout engouement irréfléchi. De nombreux partenariats ont été formés avec les principaux éditeurs de BSP, Montavista, WindRiver et Sysgo, de telle sorte que les fournisseurs de hardware peuvent répondre aux attentes de leurs clients, manifestement mieux informés qu'auparavant (cinq ou six ans que l'on évangélise, aussi). Cependant, le logiciel s'est trouvé de fait dans un certain recul -- je compte de tête cinq stands dédiés au soft "génériques", c'est-à-dire outre le spécifique de contrôle-commande ou d'analyseurs --, assez important même par rapport aux années précédentes, de telle sorte que j'ai bien peur que les acquis des années précédentes ne se perdent, d'autant que l'évolution du libre et du monde du CE est rapide. Sur les stands, on a souvent avoué un manque d'expertise dans les domaines que nous adressons, et il faut ajouter à cela les demandes en formation comme en renseignements juridiques solides. Il faut cependant bien se rendre compte de l'inertie toujours flagrante du milieu, fonctionnant selon une certaine logique de "cercles de confiance", et même si les accueils reçus étaient toujours chaleureux et intéressés (y compris à des endroits que je ne soupçonnais pas, comme le concepteur de fonds de panier PolyRack), nous verrons combien d'affaires peuvent nous être adressées...

J'espère cependant qu'elles seront assez nombreuses pour me permettre de justifier de nouveau deux jours et demi de visite sur les salons, mais aussi faire exploser le chiffre d'affaire du pôle embarqué, dont une commission me sera évidemment reversée (pas vrai patron ? ;)  ). Plus sérieusement, les retours seront certainement à mesurer d'ici les six prochains mois (j'ai déjà reçu un coup de fil, mais pas d'affaire sur le court terme), espérons simplement de leur positivité, en attendant de se faire encore mieux connaître. À noter cependant une évolution des mentalités avec une attention particulière portée au TTM, pour lequel Linux peut battre des records pour peu que l'on soit bien entouré ; cela rejoint clairement le sentiment dégagé lors du salon ARM. J'ai oublié de prendre des photos, cette fois-ci, d'ailleurs. On attend à présent les slides des conférences, pour information ARM m'a envoyé celles de leur salon sur CD-Rom, disponible à mon bureau.

Il n'y a plus qu'à remercier encore une fois les différents organisateurs des deux salons pour cette édition 2009, et donner rendez-vous à tous pour l'année prochaine !

mardi, novembre 25 2008

ARM European Technical Conference

J'ai pu assister toute la journée de jeudi 20 novembre à la conférence européenne de ARM, qui se tenait à Paris, tout prêt de la tour Eiffel. Le programme était lourd et a priori fort intéressant et les partenaires nombreux et de qualité. Je ne connaissais absolument pas ce rendez-vous de l'informatique embarqué, dont je me demande même s'il a lieu toutes les années en France (j'aurais dû demander, certains étaient manifestement des habitués de l'événement) ; en fait, c'est par le biais d'OK-Labs que j'ai appris l'existence de cette manifestation. La rencontre s'est déroulée depuis le matin, vers 9h00 (je suis arrivé à peine plus tard) et a duré jusqu'à 18h45 environ ; j'ai pu assister à cinq conférences techniques.

A mon arrivée, je me vois offrir, outre un porte-badge plein de poches pratiques, un sac en tissu simple contenant déjà quelques tracts et un programme de la matinée (les sessions sont nombreuses, quatre à chaque fois, et on rappelle sur le badge quelles sont celles pour lesquelles on s'est inscrit), mais surtout, un sac pour PC portable à deux grandes poches, très pratique et de fort bonne qualité : on ne se moque pas du monde, chez ARM ! L'organisation sera parfaite de bout en bout, enfin si j'avais pu savoir où rendre ma feuille de sondage d'opinion à temps j'aurais pu participer au tirage au sort, dommage (de manière fort amusante, je remarque que près de deux goodies sur trois à gagner tourne sur du Linux embarqué !). Parlons donc rapidement, puisqu'on y est, du repas : asiatique ou crustacés (même... des huitres !), j'aurais été subjugué par la fontaine à chocolat : il faut absolument penser à donner une prime à la dame qui a impulsé l'idée !  :)

Je fais un premier tour rapide sur les stands avant d'arriver enfin aux premières conférences communes (outre les cinq techniques, donc) : je n'avais pas imaginé que le nombre de participants serait si grand ! D'ailleurs, comme il y a finalement assez peu de temps libre pour y passer -- trois fois quarante minutes, grosso modo -- je n'ai malheureusement pas pu aller sur tous les stands, dommage. Je commence donc véritablement avec une première intervention de NXP (Geoff Lees, lis-je sur mon programme, je n'ai malheureusement pas eu de slides des interventions -- en fait je me demande même s'il y avait un moyen de les récupérer, peut-être ai-je rêvé --, mais j'ai envoyé un mail au contact ARM pour savoir s'il était possible de les obtenir : on devrait me les envoyer par CD ! :)  ), "The ARM Microcontroller (R)evolution" ; NXP vise à obtenir une rétrocompatibilité binaire parfaite entre ses MCU sur base ARM, je ne sais pas si c'est une si bonne idée (les casseroles du x86 ?), mais en tout cas ça révèle quelque chose que l'on reverra souvent : moins on fait appel au développeur software (même pour une recompilation simple !), et mieux on se porte.

Il me semble d'ailleurs que c'est Semir Hadda, le manager du marketting de STMicroelectronics, qui a traumatisé l'assistance en affirmant qu'il fallait commencer le développement logiciel le plus tôt possible, car c'était là où tout se jouait, à l'heure du hardware peu cher et plus facile qu'avant à obtenir ; penser d'ailleurs à la phase d'optimisation software avant d'augmenter la puissance hardware. Le message est dans la même ligne que celui de Reinhard Keil, le directeur des outils MCU chez ARM, avec sa conférence "ARM Microcontroller: Strategic view". Il ressort de tout cela que les acteurs en ingénierie embarqué sont par exemple intéressé à 70% par des outils de débuggage performants, et ce avant même la considération des performances et de la robustesse des produits : on sent le time to market et la solidité des développements softwares devenus de plus en plus complexes au coeur des attentes -- et des craintes ? -- des différents acteurs.

D'économie de marché, il en a été fortement question avec l'intervention de Malcolm Penn, le CEO de Future Horizons, qui avec "Vision 20:20... Designing Tomorrow's Systems Today", nous a expliqué qu'il a déjà vu des crises, que c'est cyclique, et que l'on est effectivement en train de plonger -- ça coupe avec l'optimisme affiché des précédents intervenants, avec leurs graphiques tous exponentiels !  Il n'y a pourtant pas de quoi s'inquiéter, apparemment : si des gros ont déjà disparu par le passé, cela peut toujours arriver maintenant (j'apprendrai plus tard que Atmel a eu chaud, récemment : pourtant leurs produits sont réputés excellents !), mais le marché survit et se restructure (on dirait presque du Friedman avec une touche de pragmatisme, mais on n'en sort pas bien rassuré tout de même). Il nous entretient ensuite de l'importance capitale, à ce niveau, de la R&D : celui qui ne suit pas meurt, c'est aussi simple que cela, et il faut à l'heure actuelle deux à trois ans pour sortir quelque chose de viable. C'est-à-dire que si une société s'avise de couper dans le budget de l'innovation sur ses MCU, à la nouvelle génération, soit deux à trois ans plus tard (durée qui tend à s'allonger, ce qui représente un problème pour l'arrivée de nouveaux concurrents), cette société disparaîtra brutalement, alors que jusque là tout pouvait aller fort bien. Voilà un avertissement qui a le mérite d'être clair. Cependant il parle très vite (ça part dans tous les sens, d'ailleurs) et ses slides sont plein à ras bord, il saute beaucoup de choses, bref j'espère que l'on pourra retrouver quelque part son analyse et se pencher dessus.

Ainsi s'achève la première session de mini-conférences communes, vers 11h20 ou 11h30. Je peux donc commencer la visite des stands, et en fait le temps passe fort vite en compagnie des intervenants de Virtual Logix ; il faut dire que la paravirtualisation est toujours mon sujet favori, ce qui donne donc lieu à des échanges intéressants (nous parlons notamment d'une fonctionnalité avancée de redistribution à chaud de mémoire vive entre les différentes VM). Qui plus est, le positionnement de Linagora sur le marché peut tout à fait intéresser de manière complémentaire des sociétés proposant du logiciel très embarqué (l'hyperviseur est sous le noyau, avec des impacts au niveau drivers, on est loin du userland !), dont la spécialisation ne peut proposer aux clients souhaitant un système complet (j'ai déjà travaillé sur des projets avec des pages web CGI, par exemple : on peut aller jusqu'à un niveau assez élevé, en embarqué !), ce à quoi Linagora peut tout à fait répondre avec notre équipe d'experts en Linux embarqué. Il est 11h50 : l'heure de rejoindre le rez-de-chaussé (le principal du forum se passe au niveau -1 de CAP15) pour assister à la première conférence technique, menée par Nick Sampay : "Using trace to optimize system performance".

On aurait pu croire à une présentation du debug software en utilisant sondes J-TAG ou autres moyens, mais en fait c'est du hardware dont il va être question, plus exactement de l'organisation des bus et buffers pour dumper registres et pipeline, jusqu'à une éventuelle sortie sur port J-TAG. On est très enfoui, et même si c'est intéressant, un certains nombre de personnes quittent prématurément l'assemblée en se rendant compte que ce n'est pas pour eux ; ce n'est pas vraiment pour moi non plus, mais l'aspect de culture générale n'est pas inutile. Dommage cependant que ce n'étais absolument software, peut-être aurais-je dû aller à "Optimizing Software using ARM tools - profile driven compilation", mais je pense que ça aurait été essentiellement de la publicité pour RVDS, et j'en aurai de toute façon eu pendant encore les deux sessions suivantes...

Durant la pause déjeuner, je rencontre un ingénieur de Trango Virtual Processors, et malédiction, comme un certain nombre d'intervenants, il n'avait pas ou plus de carte de visite, je ne me souviens donc déjà plus de son nom -- nous avons commencé à travailler en même temps pour la société, mais on avait dû se croiser que très rapidement, d'ailleurs j'ai appris que j'avais été le premier "extérieur" à travailler sur Trango, et le premier à expérimenter le développement à distance. C'est l'occasion d'évoquer le rachat récent par VMware : il m'est confirmé que l'entreprise est à présent entièrement la possession du leader américain de la virtualisation (propriétaire), et n'entretient donc plus aucun rapport (déjà très symboliques) avec le groupe Elsys. La société voit cela comme une reconnaissance d'un très grand acteur du marché (c'est plus de 1600 personnes, VMware !) de sa solution, qui rappelons-le est codée à partir de zéro, contrairement aux autres compétiteurs du secteur (VLX et OKLabs se sont basés respectivement sur les microkernels ChorusOS et L4, quant à Sysgo ils ont récupéré leur kernel pour aéronautique PikeOS), lui assurant la plus petite empreinte mémoire (15~20Ko). C'est l'analyse que j'ai aussi faite ici-même.

Je rencontre aussi durant cette pause, et pour la première fois, l'équipe d'OK-Labs. Du moins la fort charmante Brenna Walters, venue tout droit du bureau de Chicago (mais elle est originaire de LA, pas tout le monde n'est australien chez OK-Labs, manifestement !), qui s'occupe justement de la communauté Open Source. Et distribue les T-shirts "I run in privileged mode", phrase d'un humour hautement geekesque... inspirée par elle-même ! Evidemment, nous parlons boutique, puisque mon ancien stagiaire a travaillé durant six mois sur leur produit OKL4, un hyperviseur de paravirtualisation que l'on aura pu tester, comprendre, et pour lequel Linagora aura montré son intérêt et son investissement actif dans la communauté (ML, wiki d'aide, etc). Et puis Abi Nourai, qui prend la direction technique en Europe, à Vélizy (avenue de l'Europe, justement, côté Auchan pour situer), mais qui avait quelques rendez-vous toute la journée : je n'ai donc pu le croiser que fort rapidement à ce moment-là, et ce n'est que plus tard que nous aurons eu la possibilité de faire plus ample connaissance.

En attendant, l'après-midi débutant, c'est à la conférence "Moving to 32 bit MCUs and High Level Programming" que je me suis rendu, la présentation étant toujours assurée par Nick Sampays de ARM.Nous parlons en réalité uniquement de ce que propose Keil pour ce faire. En fait, cette compagnie rachetée en 2005 concentre à présent les outils de développement pour ARM, et on passe donc en revue MDK (Microcontroller Development Kit), avec son compilateur RealView (que je connais fort bien : j'ai eu l'occasion de travailler dessus, pour Trango justement -- et NXP indirectement --, et j'ai entièrement lu les centaines de pages de documentation autant de armcc que de armlink et leurs autres logiciels de la suite), son IDE µVision (qui de base n'a rien de bien original, mais présente des aspects très intéressants : chargement de code sur cible via J-TAG ou simulation du device en deux clics -- avec débuggage facilité --, options de compilations en clickodrome, couverture de code avec statistiques d'exécution, ou encore un analyseur logique qui présente des graphes dans l'idée d'un oscilloscope), sa bibliothèque C avec son pendant très allégé Microlib (on est dans l'idée de la µClibc, mais on annonce 92% de réduction d'utilisation mémoire !), et enfin le câble J-TAG ULINK2. Une grosse page de publicité qui dure 40 minutes, comme toutes les conférences techniques (et non commerciales :)  ).

Problème : il semblerait que au moins µVision (et peut-être les autres logiciels ? Pour RVDS, je sais qu'une version Linux existe, puisque je l'avais) ne soit disponible que sous Windows, en fait on ne parle même pas de l'OS d'accueil, et très généralement tout le monde présente des outils sous Windows dans les stands et les communications (à noter que OKLabs n'utilise que MacOS X, et que Trango est sous Ubuntu). Aussi, Reinhard Keil (mince, de la société Keil, je comprends mieux pourquoi c'est le directeur !) lorsqu'il nous présente la conférence suivante est aussi Windows-centré (on aura même droit à un soft pour éclairer/éteindre des LED d'une carte de dev, compilé en Visual C++... Berk). "ARM Real-Time Library: Facing Embedded Technology Challenges" était alléchant pour la même raison qu'un peu tous les acteurs en R&D embarquée recherchent des outils déjà existants pour réduire le fameux TTM (c'est après les outils de debug l'une des plus importantes attentes). En fait, on va nous parler de RTX, le mini-noyau temps réel de ARM/Keil. Libre de toute royalty, et pesant entre 1,5 et 5ko tout dépend de ce que l'on y met dedans, c'est l'occasion de renouer avec un monde industriel où le hardware est toujours roi : explication de ce que sont UDP et TCP (avec différences), d'Ethernet (avec connexion par PPP, SLIP et dial-up), on évoque aussi les serveurs http avec CGI (quand je disais que c'est à la mode...), le telnet ou le TFTP, le SMTP ou DNS, bref des choses bizarres pour l'électronicien (raté, c'est bien connu), mais tellement standard pour l'ingénieur informatique je pouffe intérieurement de rire lorsque l'on présente cette révolution : "TCP network provides easy solution to connect to the world". Ca remet les idées en place. RTX fournit un file system pour flash (RL-Flash), un support des différentes piles USB par RL-USB (HID/MSD/Audio, l'occasion de présenter rapidement cette grande avanceé qu'est l'USB...), et même un support du bus CAN (RL-CAN, on l'aura deviné). Possibilité d'obtenir les sources dans la version deluxe que l'on imagine plus chère, à l'exception de la pile TCP/IP (toujours la partie sensible...). Je rêve d'une comparaison de tout cela avec RTEMS.

45 minutes de pause, je passe par NXP qui présente sa série LPC (IDE sous Windows) avec un anglais néerlandais qui n'invite pas trop à s'attarder, puis je vois Texas Instrument, et c'est la révélation. Car TI (France, à Villeneuve-Loubet, près de Nice, mais ma première interlocutrice Marie-Claire Desjardins, dénuée de carte de visite, m'a bien dit venir de la banlieue parisienne) n'est pas seulement très intéressé par Linux embarqué -- et sur leur stand, une télé diffuse justement les applications graphiques lancées sur une carte : ce qui les attire, c'est le communautaire ! Aussi peut-on lire en cinq pages un document "TI Linux and Open Source Initiative Backgrounder", et pour bien montrer leur engagement, une carte de développement à base de ARM Cortex-A8 est présentée : cette carte n'est pas banale puisque ses spécifications sont entièrement ouvertes, dans un projet communautaire, pour un mini-prix de 149$. En revanche, pas de port Ethernet et un seul USB OTG (on-the-go, c'est-à-dire qu'il peut tout faire, host, target ou audio), mais en échange une sortie HDMI/DVI et une autre S-Video : c'est que l'on peut faire de la 3D avec ce genre de MCU. En effet, les OMAP font partie des choses fabuleuses que l'on peut rencontrer dans l'embarqué (j'ai travaillé moi-même sur le Sagem MO300e, toute la partie système Linux "distribution maison" vient de moi, sur un OMAP730, d'après la photo de famille) : à présent la série des OMAP35x est considérée comme quatre fois plus puissante que la génération précédente des ARM9 (cadencés jusqu'à 450Mhz, mais chez OMAP, on est passé directement aux ARM11 à 330Mhz), et quand on pense qu'avec les 200Mhz de mon processeur je faisais booter en dix secondes un Linux 2.6.19 virtualisé avec un nucleus, noyau Linux qui démarrait dans sa séquence d'initialisation un serveur http (lighttpd) et un autre ssh (dropbear), on imagine alors les possibilités de ce Cortex ! (il va certainement conquérir le monde) Je repars avec beaucoup de documentation (disponible à mon bureau).

L'échange avec TI fut des plus enrichissants, et partageant des visions communes, j'espère très fortement que nous pourrons travailler ensemble. D'ailleurs, ce type de partenariat entre fournisseur hardware et développeurs software pouvait se rencontrer à peine plus loin, sur le stand d'Antycip, qui ne faisait pas que montrer ses belles cartes de développement professionnelles (prévoir de la place pour en stocker une !), mais faisait aussi la publicité de Montavista, dont on ne distribuait pas seulement des yoyos lumineux (avec un système de dynamo : ça c'est goody !) : la plus célèbre des sociétés en Linux temps-réel est en effet recommandé et présentée sur les stands d'Anticyp comme leur intégrateur de Linux embarqué/RT de préférence, et vice-versa. Leur solution de développement et d'intégration sous Eclipse (qui reste un "must-see" : en quelques clics, on se construit un file system complet !) bénéficie par ailleurs d'une diffusion sur écran plasma géant. Cela me donne l'occasion de parler de stratégies (d'alliances, de partenariats), de perspectives (on me confie qu'en réalité le gros du chiffre d'affaire est effectué par la vente massive à des clients très nombreux de microcontrolleurs de faibles performances, et qu'en fait le nombre d'acteurs sur des secteurs tels celui concernant l'ARM Cortex-A8 est très petit, mais cela est compensé par la diffusion massive en millions d'exemplaires des solutions obtenues, eu égard au type d'applications visées), d'état du marché (certains ont eu très chaud cette année, comme je disais plus haut). Malheureusement, encore un qui n'avait plus de cartes de visite, mais il aura eu la mienne (très... artisanale, c'est vraiment la crise pour tout le monde :)  ). Je me précipite alors, avec un peu de retard, à la conférence sur "Software driven low power optimization for ARM mobile architectures/Multimedia processors power management".

Le premier intervenant est de la société Synopsys (intéressant comme nom !), mais je n'ai pas pu noter son nom (en revanche son prénom est Markus) ; il nous préconise de démarrer le développement logiciel as soon as possible (on continuera tout le temps à parler anglais, même lorsque les intervenants sont francophones : il y a toujours quelques personnes dans la salle qui ne le sont pas, tandis que tout le monde parle anglais ; on y repensera très fort la prochaine fois que l'on médira sur notre système scolaire), ce qui ne va pas sans traumatiser les décideurs hardware, mais c'est ainsi : il nous montre avec une courbe que si l'on démarre tôt, on aura le temps, après avoir ajouter des fonctionnalités demandées qui vont charger la mule (soit le CPU), d'optimiser cette partie software, et ainsi de ne pas avoir ni à augmenter la puissance du hard, ni à perdre en puissance disponible (tant en terme de calcul que de durée de batterie). Je ne peux qu'approuver, et il ajoute même que "Software rules power consumption", voilà qui a le mérite d'être clair. Il vante en outre les mérites de la simulation, et donc du profiling. Marie-Claire Desjardins, de Texas Instrument (Engineer, pas commerciale), nous parle ensuite de "the flexible dynamics of power management in multimedia processors", et nous démontre encore en deux coups de cuiller à pot que TI est très impressionnant dans son domaine. On nous présente le système TI SmartReflex, qui permet de diminuer à la volée le voltage pour diminuer les pertes (dynamic voltage and frequency scaling -- DVFS -- et l'adaptive voltage scaling -- AVS), et dispose de deux systèmes complémentaires : le Dynamic Power Switching (DPS, on arrête ou réduit des parties lorsqu'elles sont inutilisées, avec une détermination à chaud) et le Static Leakage Management (SLM, on met le processeur dans un état de veille prolongée en un clin d'oeil, afin de prolonger pendant plusieurs jours la durée de vie de la batterie : c'est ce que l'on trouve par exemple, à mon avis, sur le N770 dès lors que l'on referme le clapet). Ces technologies avancées sont disponibles sur l'OMAP35x, ce qui prouve que je ne disais pas des bêtises en le qualifiant de merveille de l'embarqué. On trouvera sur le sujet (avec des graphes identiques) des papiers sur powermanagementdesignline ou son équivalent pdf sur ti.com.

Il est alors l'heure de passer à la dernière conférence, sur la paravirtualisation. La première partie est assurée par le fraichement nommé European Technical Director d'OK-Labs Abi Nourai : "design a better feature phone with paravirtualization". Son propos est simple, et c'est celui que je soutiens depuis de années pour ma part : l'augmentation des fonctionalités attendues par les appareils est en constante augmentation, à tel point que l'on en arrive à des OS de type "desktop-like", tels MacOS (iPhone), Windows (Mobile/CE) ou Linux. Et aussi à une attente d'ouverture (possibilité de configurer/rajouter des fonctionalités propres à l'utilisateur), qui ne va pas sans impact au niveau de la conception software (il serait facheux, par exemple, puis-je préciser, qu'un utilisateur lambda de téléphone puisse transformer son appareil en brouilleur). Aussi, nous sommes partis de systèmes d'exploitation simples, et à présent ils sont très sofistiqués. Cependant, les piles de communications représentent de gros investissements, et le re-engineering augmenterait de facto le Time to Market, ce que l'on ne peut jamais se permettre. La solution est alors de faire appel à la paravirtualisation (ou comment ménager la chèvre et le chou dans deux espaces mémoires séparés). OKL4 est alors rapidement présenté -- on évoque rapidement sur les slides le trop peu connu FASS (Fast Adress-Space Switching : je ne trouve pas de lien probant sur le net, c'est toujours une galère sans nom de trouver des informations dessus !), mais on n'ira pas aussi bas dans le discours. Ce qui est certain, c'est que OpenKernel Labs attaque fort niveau stratégie : plus de 200 millions d'appareils (devices) contenant leur solution actuellement distribués, ils tablent sur 250 millions à la fin de l'année, notamment grâce au HTC Dream (G1) qui fait tourner un Linux Android ! Ils ont de plus une "agressive roadmap" (je me mets à parler franglais, c'est pour ma future carrière de commercial) pour la preuve formelle de sûreté de fonctionnement ("correctness", c'est moins fort que la sûreté peut-être, mais comme rien de précis n'a été indiqué... On peut penser à EAL 5 ou 6). OKLabs se définit actuellement comme le leader du marché.

C'est alors au tour de Jean-François Roy de Trango (déjà rencontré sur le salon RTS 08, il est entré après moi chez Trango, je n'ai donc jamais travaillé avec lui, contrairement à Pierre Coulombeau ou Bruno Zoppis, qui s'occupaient avant des salons français, et sont manifestement devenus globe trotters hors France à présent : Trango a d'ailleurs une entité d'une vingtaine de personnes aux USA, soit une bonne partie des salariés de la société !) : si avant la dernière conférence de la journée chacun disait expédier sa présentation en largement moins de 20 minutes, finalement ils mirent chacun une bonne demi-heure. Pourtant, "achieving drivers portability through platform virtualization" (hhmm, driverS ?) ne parla pas technique, du moins on a juste évoqué les possibles répercussions à la fois sur le code -- le plus petit du marché, 20 à 30 Ko -- de Trango ou sur celui du noyau qui doit utiliser la mémoire partagée par ledit driver pour récupérer des piles ou autres, sans énumérer lesquelles. En fait, on a plutôt parlé du pourquoi d'une idée aussi saugrenue (GPL, ABI d'un pilote fermé qui n'est plus en adéquation avec celui d'un nouveau kernel), et de ses mérites logiciels, comme l'indépendance à l'OS ou l'invulnérabilité de celui-ci à un crash éventuel du driver, porté hors noyau (on évitera ainsi un panic/Oops sous Linux). On insiste en tout cas surtout par le rachat récent par VMware, datant du 14 octobre (et rendu public le 10 novembre), d'ailleurs toutes les slides ont migré sur le modèle bleu ciel VMware !

C'est ainsi que s'achève cette journée du ARM European Tecnhnical Conference. Enfin, je fais tout de même un dernier tour des stands, et comme je discute avec un ingénieur d'Adeneo, qui serait notre concurrent direct en terme de développement et intégration spécifique de Linux embarqué (mais dans une optique SSII forfait/prestation à 70%/30%, proche de l'industrie lourde, essentiellement basé à Lyon et un peu à Massy, pour ce que j'ai compris), je rate le tirage au sort. Je termine ma soirée en compagnie d'Abi et Brenna d'OKLabs, qui aurait bien bu une bière avec moi (ou plutôt un lait-fraise pour ma part), mais j'avais malheureusement quelqu'obligation : ce n'est que partie remise ! En tout cas, nous avons fait deux photos que j'espère pouvoir récupérer et publier ici-même. Très, très bon contact avec nos amis d'OKLabs, ce qui confirme la fort bonne impression des précédents entretiens téléphoniques et par mail que nous avions pu avoir ; j'espère que nous pourrons un jour proche travailler sur des projets communs.

En conclusion on peut remercier amplement (ce que j'ai déjà fait là-bas et pas mail) l'équipe organisatrice de ARM, et j'ai pour ma part gardé le ARM bag (mieux qu'un handbag ! :)  ). J'ai été surpris par le très bon format de l'événement, finalement on aurait fort bien pu y emmener notre PDG, mais je ne pouvais pas le savoir avant ; peut-être pourrions-nous y exposer l'année prochaine, les stands concentrés sur le logiciel pur étaient peu nombreux mais tout de même présent, c'est à voir, donc (dans tous les cas, je ne pense pas qu'une exposition à RTS soit souhaitable, par exemple : l'événement aura lieu strictement en même temps que solution Linux, à quelques mètres de là ; en revanche je vais relancer le responsable des conférences). Il est seulement regrettable de n'avoir pas eu assez de temps, avec les conférences, pour faire le tour de tous les stands (comme le montre la dernière photo prise juste à la sortie d'une conférence, les rangées étaient plutôt vides durant celles-ci, alors qu'il était difficile de se déplacer pendant les pauses avec l'assistance très nombreuse). La documentation rapportée a déjà pu être redistribuée à ceux qui ont montré un vif intérêt (celle de TI pour l'instant remporte le plus de succès ; je pourrai en outre mettre à disposition le CD avec les slides dès sa réception), et certains contacts pris (ou repris) mèneront je l'espère à des relations privilégiées. Si l'on ajoute que les conférences et la prise de température générale du secteur ont pu enrichir mon point de vue sur la situation actuelle, je pense que cette journée de visite fut une expérience des plus réussies.

mercredi, novembre 19 2008

VMware rachète Trango-vp

Le choc : j'apprends ce matin via OKLabs que VMware a racheté Trango Virtual Processors ! Depuis le temps que je répète que la paravirtualisation est l'avenir des systèmes embarqués, voilà que cette nouvelle tendrait à me donner clairement raison. J'essaierai de me renseigner sur les raisons et les modalités de cette acquisition dès que possible, mais pour la petite histoire Trango Virtual Processors faisait jusqu'alors partie du groupe Elsys Design (qui ne serait pas à jour ?) ; qui sont mes anciens employeurs, et j'ai fait mes premières armes il y a un peu plus de deux ans sur... Trango. En effet, la société basée à Grenoble est tout à fait française, enfin, un peu moins à présent manifestement. Il sera intéressant de voir l'intéraction d'un géant de la virtualisation desktop et server dans le monde particulier du logiciel embarqué/temps-réel, car le code de Trango n'a certainement pas beaucoup de rapport avec celui de VMware !

mercredi, novembre 12 2008

embedded virus

On voit cela comme une grande nouvelle : une boîte déclare qu'il n'y a pas besoin d'antivirus pour Android. Il faut dire qu'une autre entreprise jouait déjà du FUD pour proposer sa propre solution de sécurité. Décidément, on vit dans un monde infecté par le Desktop et l'ignorance qui va avec (surtout pour les utilisateurs windowsiens, formés à l'assainissement régulier d'OS). Tout d'abord, tordons le cou à une assertion débile du second acteur sécuritaire : l'OpenSource impliquerait l'apparition de virus, théorie fort chère à Microsoft (la sécurité est impliquée uniquement par l'obscurantisme du code, il n'y a qu'à considérer leurs produits pour s'en convaincre), dont on peut évidemment vérifier la vérité tous les jours à l'aide de son Linux ou de son BSD. Très sérieusement : c'est n'importe quoi. Et du côté des obscurs, on ira voir RIM (qui ne cache pas certaines failles alarmantes du passé), ou on se penchera sur la réponse d'Apple et de son système de signature d'applications autorisées qui a rapidement été outrepassé.

Analysons objectivement la sécurité des systèmes embarqués : c'est effectivement un soucis qu'il faut prendre au sérieux, j'en parle d'ailleurs dans les cours que je dispense. En informatique, rien n'est magique, il faut donc déjà passer outre les images d'Epinal de "bestioles" rampantes qui s'incrustent dans les appareils et les rendent fou, ou en tirent des informations secrètes (on admet que par "virus" on désigne un peu tout ce qui concerne les failles de sécurité, notamment -- et surtout -- les vers). Déjà, pour les appareils communicants (ce ne sont que ceux-là qui sont concernés, sinon comment s'introduire ?), il faut déjà filtrer les entrées et les sorties : firewall, chiffrage, voire analyse de détection sur des données manifestement mal formattées (les réseaux GSM de SFR limitent par exemple de façon tout à fait arbitraire la taille des URL). Ensuite, il ne faut pas écarter l'apparition de code malveillant, et ici il faut se pencher sur la seule et unique question : comment fait-il pour s'exécuter, et quelle réponse y apporter ?

Plusieurs cas. On peut faire du buffer overflow avec des données corrompues : il suffit de protéger la pile, des solutions comme PaX font cela très bien, en marquant les zones hors piles comme non exécutables. Il y a aussi l'option -fstack-protector-all de GCC, qui met en place des canaris : comme dans les mines où les volatiles jaunes révélaient la présence de gaz en mourant et donc en arrêtant de piailler, la technique consiste à mettre aux extrémités de la pile d'exécution des bouts de données qui, si elles sont écrasées (par un shellcode, au hasard), provoquent l'arrêt immédiat du programme. Et cela sans compter que Android est basé sur du Java, ce qui constitue déjà en soi une boîte à sable pouvant se révéler très efficace (pour avoir programmé en J2ME en 2004 sur téléphone portable, je peux même assurer que l'accès aux données physiques est fortement contrôlé, mais effectivement on peut de plus en plus accéder à des fonctionalités du téléphone, afin d'être plus user-friendly).

On peut ensuite avoir tout simplement un programme tiers téléchargé et exécuté à la main, par l'utilisateur. A ce niveau, il faut évidemment responsabiliser l'utilisateur (ne pas exécuter cette application manifestement malveillante). Notons que l'argument consistant à évoquer la multplicité des OS sur plate-formes mobiles n'est pas recevable, puisqu'accéder au répertoire téléphonique, SMS, ou autres données sensibles de la carte SIM, tout comme le fait de lancer des appels, se fait par commandes AT à un second kernel, très souvent du Nucleus ; et entre Symbian, RIM OS, WinCE/Mobile, Linux et Darwin, on voit mal ce que l'on appelle "grande multiplicité" (surtout que Symbian est toujours majoritaire). Dans tous les cas, éviter de lancer un programme en root, sandboxer (en Java, c'est quasiment natif), filtrer des commandes interdites (ce que fait nativement un BSD avec jail, en somme), et déjà je souhaite une grande chance aux pirates pour s'en sortir.

Il y a en outre la possibilité, pour les appareils communicants, de se mettre à jour. Il faut bien faire attention à la procédure (notamment il faut doubler les OS présents : l'un, très minimal, doit toujours être présent au cas où la mise à jour aurait échoué, afin de pouvoir la reprendre), mais tous les appareils modernes supporte ce genre de fonctionnalité. Cependant, mettre à jour le noyau lui-même peu s'avérer très périlleux, si ce n'est impossible. En effet, pour des raisons pratiques mais aussi de de sécurité, le noyau Linux est placé "en dur", en dehors de tout file system, dans le firmware : c'est une pratique extrêmement courante qui a énormément d'avantages. Le problème est que son remplacement n'est alors pas si aisé, voire inenvisageable. J'ai travaillé, il y a plus d'un an, sur une solution avec un noyau qui s'est avéré six mois plus tard être frappé de la faille sur la mémoire virtuelle qui permet de prendre les droits "kernel" (plus que root, on se retrouve en kernel land) ; pourtant, j'ai continé à bien dormir (sachant que c'est une solution dont le marché prévu recoupait des choses aussi diverses que la gestion de terminaux bancaires).

Car il existe une excellente solution de protection pour Linux : RSBAC. Je vous laisse découvrir la chose, la première fois que l'on se fait jeter d'un "su" alors que l'on est root est une expérience étrange. La faille est donc peut-être présente, mais le mode opératoire pour arriver à en profiter est totalement hors de portée. De même, les solutions de paravirtualisation embarquée sont là pour répondre à cette problématique : un OS se charge de ce qui est sensible, et l'autre de ce qui est pour "le fun" ; l'imperméabilité totale est assurée au niveau électronique, la communication se fait par des canaux très définis, limités et filtrés, et en cas de problème sur le second OS, le premier n'est pas atteint.

Bref, pour peu que l'on réfléchisse avant, des solutions libres pour une parfaite sécurité dans l'embarqué existent, et ne sont pas bien difficile à mettre en oeuvre (l'option de stack protector de GCC n'est pas activée par défaut dans OpenEmbedded, et certains programmes compilent mal avec, mais c'est juste une question de jours pour résoudre les divers problèmes, quant à RSBAC il faut bien le configurer, et une option de démarrage est là pour se mettre en "mode apprentissage automatique"). J'ose croire que les concepteurs de téléphonie mobile (et j'y ai quelque peu travaillé, je peux donc assurer qu'ils ont très paranoïaques) prennent le problème très au sérieux. Et même, que ce que l'on reproche à RIM et son Blackberry, à savoir le manque de transparence sur le trasit des données, ne pourrait être reproché à une solution libre. Les clients de Linagora, qui font le choix de Linux ou BSD pour des opérations très sensibles, pourront sans doute aucun confirmer.

lundi, octobre 27 2008

OKL4 et Android

OKL4 attaque le marché des téléphones portables, et pas qu'un peu : voilà annoncé sur CNBC (étrangement, la page officielle sur OK-labs a disparu) la partitipation à l'élaboration du premier téléphone portable basé sur Android de google, comprendre que le Linux est paravirtualisé par la solution australienne (au côté d'un Nucleus ?), celle-la même sur laquelle mon ancien stagiaire travaillait, et a participé en tant que membre très actif de la communauté (mailing list, wiki d'aide, etc). Sur un marché bien différent de celui de Linagora, mais dont on peut espérer un certain recoupement et même, qui sait, une collaboration dans des domaines de compétences complémentaires, voilà une société du libre (le code est sous double licence, sur un modèle de Qt de Trolltech) qui réussit !

mercredi, septembre 24 2008

"je ne vous le fais pas dire !"

BTW, actually writing code for OKL4 feels rather scary: there seems to
be a real C library in there. After working with platforms like Nucleus
and an unnamed mobile phone OS that I can't talk about, this makes a
nice change. It's amazing how much you miss printf() if you can't get it...

(extrait de la ML d'OKL4, thread "[okl4-developer] Platform recommendations", vendredi dernier : un débutant découvre la magie d'OKL4, j'avais effectivement été tout aussi surpris de cette disponibilité du debug au printf de kernel en environnement paravirtualisé...)

vendredi, juillet 4 2008

salon RTS 2008

Voici donc que l'ouverture des blogs linagoresques (?) me permet enfin de faire partager mon compte-rendu du salon RTS (comme Real Time System) que j'ai arpenté au tout début d'avril, sur un jour et demi, en compagnie tout d'abord de mon stagiaire Rémy le premier après-midi (pour une conférence sur son sujet de stage, la paravirtualisation avec OKL4), tandis que le lendemain était consacré à une visite des stands et à la conférence sur le libre dans l'embarqué, en compagnie de l'autre stagiaire du pôle embarqué, Johana Bodard.

Le salon du Temps Réel de cette année 2008 était donc de retour à la porte de Versailles après un passage prolongé plusieurs années de suite (deux ou trois) au CNIT ; mais cela ne pouvait pas masquer un très net ralentissement, toujours plus en progression : cette fois, les deux salons Display (affichage numérique) et M2M (Machine to Machine, communication entre matériels distants) étaient totalement fusionnés, alors qu'en 2005, on pouvait voir des imprimantes 3D dans un hall bien séparé. À cela, plusieurs explications comme le coût des stands de plus en plus inabordable, surtout en comparaison des retombées, mais aussi peut-être le fait que le secteur se stabilise, ou plutôt se cristallise. En ce sens, certains acteurs du temps réel comme Dolphin ou Concurrent Computer n'étaient présents qu'à Solutions Linux, et plus à RTS. Une seule enseigne majeure était de retour, Montavista, tandis que beaucoup d'autres ont disparu ou fusionné : Polyspace (vérification formelle de code) a été englobé par Matlab ; Systerel (sécurité et certification) se trouvait sur le stand de Sysgo. Trolltech (venant d'être racheté par Nokia pour sa technologie Qt parfaitement adaptée à l'embarqué), Jungo (et ses piles horribles), ou WindRiver (qui a apporté... un flipper) se trouvaient sur un second mini-stand du revendeur de cartes embarquées Neomore, qui avait oublié d'apporter son produit pas cher pour démo, la gamme Embest.

Les stands n'étaient pas bien folichons non plus : fini les animations chez Ecrin, qui n'a pas même apporté ses cartes VME (le concurrent Gaci était tout simplement absent, pourtant l'année dernière les offres groupées hardware et software fleurissaient), WindRiver ne distribue plus de chocolat (et les sacs distribués à l'entrée sont à l'effigie de SFR/3G+), même Arion a laissé tombé sa démo très visuelle de l'année dernière. Seul Greenhills tire son épingle du jeu : immense stand, présentations interactives de leurs différents produits avec mini-conférence toutes les deux heures, distribution de documentation papier et clé usb (256mo, avec cordon !), le luxe comme à la belle époque, image très dynamique renvoyée que l'on aurait aimé plus voir.

La visite du salon s'est faite en deux temps : lundi après-midi, et jeudi entièrement. Première étape en compagnie de mon stagiaire : conférence paravirtualisation et embarqué, avec présents et dans l'ordre Trango VP, Virtual Logix, puis Greenhills et son IntegrityPC, et enfin Sysgo avec PikeOS. Les premiers sont bien connus de ma personne : j'ai travaillé pour eux, et bien avant l'ingénieur qui a fait une présentation honnête, mais assez peu précise, quant aux mérites techniques de la solution (certains points sont très commerciaux et masquent une réalité plus simple, inversement) ; les seconds peuvent se vanter d'être les premiers à équiper une solution commercialisée "grand public" (comprendre : pour développeurs...), avec le Purple phone, sur base hardware de chez NXP (fork de Philips ; à noter une citation de RTK-e, apparemment le nom de leur noyau interne n'est plus tabou, on se rappelle que j'avais voulu le rajouter à la liste des OS sur wikipedia sans succès il y a deux ans) ; Sysgo fait son chemin, comme ses "camarades" précédents, la recherche de certification EAL de plus haut niveau possible (on parle plutôt de EAL5, voire 6) est dans les tuyaux ; Greenhills attaque fort, en revanche, certifications à gogo, expérience sur IntegrityOS (qui équipe les avions depuis de nombreuses années) oblige, mais si la solution marche par exemple déjà sur de la radio militaire portable, elle n'en reste pas moins réservée à du x86 (avec techno VT/Pacifica) ou PPC (voire PowerQUICC). Idée glanées par-ci par-là pour mon stagiaire (comme l'exécution sans recompilation d'application Linux virtualisée dans une sandbox émulée), qui travaille sur la seule solution majeure non ici présente, et Open Source (licence BSD) : OKL4 d'OK-Labs (base noyau L4).

La seconde conférence intéressante était le jeudi matin, Open Source et embarqué, assistance nombreuse, plus que pour la paravirtualisation, et un rapide coup d'oeil dans les salles d'à côté montre le succès très large de ces deux prestations contrairement à toutes les autres, prouvant de facto où se porte toujours l'intérêt du Consumer Electronic (CE) à l'heure actuelle, puisque l'année dernière c'était la conférence Linux qui remportait le plus de succès, et la partie paravirtualisation le plus d'intérêt porté. Mandriva ouvre le bal avec son PDG, au franc parler et à la fluidité sans pareille, mais au discours assez éloigné de ce que l'on entend trouver à un salon comme RTS ; puis Montavista avait des choses à dire, mais le sympathique orateur avait du mal à s'exprimer, dommage, informations intéressantes en tout cas, quoique non révolutionnaires ; CIO informatique, la sympathique petite boîte du Sud qui ne fait plus que du Linux embarqué (et croûle sous les demandes... à leur échelle), a recentré le débat sur ce qui en est effectivement au coeur, les attentes des industriels, les erreurs à ne pas commettre, l'importance du juridique. Sur ce point, Adacore (je demandais justement l'année dernière à l'un de mes amis comment il se faisait qu'ils n'étaient pas là) se permet de corriger, notamment sur le fait que même condamné après une violation de GPL, il n'y a pas obligation à redistribuer les sources internes ; le point est fin (mais l'exposition à la limite du troll), et la présentation aussi dynamique que commerciale cache les raisons jusqu'à la séance des questions : l'obligation est de faire cesser le litige, c'est-à-dire qu'il reste toujours le choix de retirer le produit et ne rien diffuser, et assumer le coût que cela implique. Il faut relever le grand mérite de cet éclaircissement : une licence libre n'est pas plus ni moins complexe qu'une licence propriétaire (enfin si, elle est souvent plus claire), du moins elle comporte comme toujours des possibilités et des obligations ; prendre ce qui intéresse (gratuité et disponibilité des sources, absence de royalties à la distribution du produit), et ignorer les contre-parties demandées (redistribuer les sources GPL avec les binaires par exemple) est équivalent à pirater n'importe quel logiciel propriétaire, ni plus ni moins ; et si l'on n'est pas content, il n'y a qu'à voir ailleurs, le monde est assez vaste. J'applaudis des deux mains cette position, que j'exposerai encore plus précisément et avec appui à mes élèves, qui prennent la question beaucoup trop à la légère (et pourtant avais-je déjà bien insisté), comme tous les ingénieurs déjà en poste, dont le hobby principal est de se tirer des balles dans le pieds.

Sur les stands, on peut voir une démonstration impressionnante d'un outil de débug par génération automatisée de test cases unitaires dans la suite Rational d'IBM (l'outil provient en réalité d'un rachat d'une société Française, tandis que le reste de la suite, de Lotus à Clearcase, est toujours aussi moche). Dspace montre quelque chose de similaire dans l'idée, mais pour Matlab. Ces derniers ont enfin une vraie version Linux potable, et Simulink marche aussi, enfin, il n'y a rien pour le prouver sur le stand. Anticyp et Neomore sont les seuls vendeurs de cartes à base ARM ou xscale. WindRiver (qui nous parle du dernier Intel consommant 4W, mais dont la carte de dev comporte un ventilo, paraît-il vraiment inutile) ne fait plus la publicité de Linux à grands coups de pingouins, mais Sysgo non plus, alors que cela reste leur principal produit d'appel ; d'ailleurs le système de navigation de BMW (contenu dans la radio, chip PPC) a migré sous Linux récemment, et est déjà commercialisé ; les autres produits chez les différents constructeurs, toujours sous VxWorks, devraient suivre (depuis, on l'a vu, c'est le chemin de la paravirtualisation qui a été choisi par WindRiver). Trolltech a fait venir deux Français de Norvège faire la promotion de Qt for Embedded, nouveau nom de la branche Qtopia sans le support téléphone (mais présenté sur... des téléphones Neo en place d'OpenMoko, Milo de Sony toujours sous Linux, et HTC sur WinCE), et distribuait les goodies aux gens sympas tels que nous (du chauffe-tasse usb à la house pour portable). Très intéressantes discussions, surtout que notre deuxième stagiaire du pôle embarqué (une fille, en plus ! ;)  ) travaille (ou veille technologiquement) sur OpenMoko, Android, et la téléphonie mobile sous Linux en général. Et en se promenant entre les stands, le logiciel libre d'émulation qemu a très clairement le vent en poupe, impressionnant lorsque l'on connaît ses conditions de développement !

Cela contredit tout de même quelqu'avis de professionel des coprocesseur et ancien professeur (trolleur dans l'âme, à vrai dire) nous affirmant sur son stand que Linux, bien du monde en était revenu ; non pas qu'il soit en faveur de WinCE (complètement disparu, cette fois, juste une ou deux mentions sur l'ensemble des stands, l'époque de l'espace de formation gratuite dédié est manifestement révolu), mais c'est que sa vision du Temps Réel (et a fortiori de l'embarqué, qu'il assimile facilement, tandis que sa distinction "temps contraint" va même englober des applications pourtant critiques du militaire...) se limite à ce qui est "pur et dur", et comporte au finalement l'automobile (côté calculateur de bord), l'avionique, le spatial, et les communications ou calculs particuliers en interne aux industries, soient effectivement des milieux où Linux était pressenti sans que l'on sache trop pourquoi, et dont le retour à la raison n'est pas si étonnant. Ignorés sont de sa personne toutes les problématiques du CE : modems, routeurs, téléphones, etc. "Que ça"...

En réalité, Linux est entré dans le paysage, on ne se pose plus trop de questions à son sujet, il s'agit d'une solution tout à fait envisageable, parmi d'autres. Plus de folie ambiante, il semble au moins que sur ce point, la raison soit de rigueur. Reste à savoir le pourquoi exact de ce sentiment mitigé. La proximité avec les salons de bien plus grande envergure comme Barcelone (GSM) ou le CES de Las Vegas ne doit pas y être pour rien, RTS n'a décidément pas encore bien pris le tournant CE, ce que l'on peut d'ailleurs remarquer au niveau de nos grandes entreprises françaises (Sagem, Thales, et... heu...), qui peinent à se recycler et sortir d'un milieu purement industriel qui ne rapporte plus rien (vive les salaires dans le spatial, à Toulouse : division par 5 à 10 du facteur temps nécessaire à l'évolution du traitement). Reste des problèmes d'engorgement et de tâtonnement, toujours, sur ce sujet ; c'est ici que pourrait se jouer la bataille, et notamment la prise de positions stratégiques dans le milieu de l'embarqué sous Linux. En espérant que Linagora s'engouffre dans la brêche :).

Toute la documentation glanée est disponible à mon bureau (ou plutôt en dessous), dans le grand sac rouge. On peut se prendre à rêver aussi d'une participation un jour de Linagora en tant qu'éditeur (ou simple intégrateur) de solutions Linux embarqué innovantes, et pourquoi pas, montrer notre savoir faire et notre envie de se positionner sur ce marché, en compagnie des acteurs OpenSource déjà implantés (Trolltech, Sysgo, CIO informatique, AdaCore, Montavista étaient tout de même bien présents), qui finalement se complètent tous plus qu'ils ne se concurrencent réellement, alors que la demande ne cesse d'augmenter, mais plus discrètement qu'avant, et surtout, de manière toujours aussi désorganisée, à l'image de ceux pouvant y répondre, lorsqu'on y pense. A présent que l'on a le bazar, il serait de bon ton de construire une cathédrale  :).

jeudi, juillet 3 2008

WindRiver paravirtualise

Certains le savent peut-être déjà, mais le sujet de la paravirtualisation me tient tellement à coeur, que j'ai même un gentil-stagiaire qui ne s'occupe que de ça, sur le projet libre OKL4. WindRiver, on ne les présente plus. Enfin, peut-être que si, si l'on ne connaît pas du tout le monde merveilleux de l'informatique industrielle : en une quinzaine d'années à peine, ces gens ont tout révolutionner grâce à leur OS (c'est vite dit... kernel, plutôt) temps réel dur (et même très dur) VxWorks, aux temps de latence exceptionnels, à tel point que le marché est dominé par eux depuis. Sentant le vent tourner depuis quelques temps, ils se sont mis à Linux il y a environ quatre ans, et leur solution commerciale RTCore propose depuis environ un an à présent une technologie Linux vanilla ou Linux temps réel hérité de RTLinux de FSMLabs, qui a été racheté (et sui sont des vilains, parce qu'ils ont breveté leur système qui consiste à faire fonctionner le kernel par dessus l'ordonnanceur).

WindRiver se met donc à la paravirtualisation. Temps-Réel, évidemment, on ne parle pas de bousin du genre Xen ou VMware, ici le code fait dans les 10 à 20000 lignes (on annonce 5 à 10 pour notre cas, ce qui indique qu'il ne doit pas y avoir beaucoup de features...), et il est vérifié et re-vérifié pour répondre à des critères élevés de stabilité et sécurité (même s'il est possible parfois de patcher, dans l'embarqué : on se souvient du robot envoyé sur Mars et victime d'une inversion de priorité... sous VxWorks justement).

Le marché est toujours très porteur (dans l'avenir ?), et pour preuve encore l'exemple typique qui nous est annoncé dans la dépêche de linuxdevices (la Bible) : on parle de PPC et de CAN. Que l'on ne s'y trompe pas : la cible (on l'élude gentiment dans l'article, mais ne soyons pas dupe) est l'automobile, et plus exactement tout ce qui va être géré par le microcontrolleur en charge des actions "multimédias". Tout se passe dans... l'autoradio ! Nous avons un PowerPC, qui à la base ne devait servir qu'à diffuser ses chaînes préférées (mais un 68k suffit pour faire ça !), et qui a pris en charge naturellement l'affichage de bord "utilisateur" (la température, l'horloge, etc -- pas le niveau d'essence, évidemment), puis le GPS, et qui va vers du multi-fonctions de plus en plus (on peut penser à de la diffusion de contenu vidéo sur les sièges passagers). Outre le processeur PPC, qui peut paraître un choix saugrenu si je n'avais pas déjà rencontré sur un salon ce type d'application, sur le stand de WindRiver, l'interfaçage avec le protocole de communication réseau CAN (qui est bidon, donc utilisé partout), typique de l'automobile, nous trahit complètement le but de l'opération.

Le but en effet est de faire tourner simultanément VxWorks et Linux. Car il faut faire un choix, sinon : mettre l'historique VxWoks et toutes ses applis durement codées dessus, mais qui ne peut pas bien évoluer vers des applicatifs complexes, ou mettre du Linux tout neuf qui sait faire plein de choses, mais manque d'applicatifs métiers (outre l'aspect temps réel à réétudier). Jusqu'ici, c'était dur : pour gagner de l'argent, on préférait payer l'horrible licence avec royalties de VxWorks plutôt que de payer un dev complet sous Linux, quitte à sacrifier des fonctionnalités ; mais sous la dernière BMW de la mort qui tue, c'était du Linux (parce que de toute façon, vu le prix de la bagnole, on n'est plus à ça près...). A présent, plus la peine de se poser des questions métaphysiques : on peut mettre les deux, et utiliser la puissance de l'existant et de la nouveauté évolutive simultanément. Au passage, WindRiver vend deux produits au lieu d'un, sont pas fous. Et tout le monde est content.

Petite anecdote pour finir : la (para)virtualisation VxWoks/Linux existait déjà du temps de la... livebox ! Et oui, mais bon, c'était pas très beau à voir, je n'en dirai pas plus  :)  (apparemment, les linablogs sont publics) (indice quand même : mmuberk).