Hdr de Michaël Hauspie

Eléments de conception de systèmes embarqués fortement contraints

Au cours des dernières années, les systèmes embarqués sont de plus en plus présents dans notre vie de tous les jours. Ils sont dans notre portefeuille, dans notre voiture ou dans nos appareils ménagers. La tendance actuelle est à contrôler de plus en plus d'objets à l'aide de ces systèmes. Les grands acteurs de l'industrie ont déjà commencé à envisager le futur de l'internet, l'internet des objets. Dans les années à venir, de plus en plus de nos objets seront " intelligents ", connectés... et sujets à des fautes logicielles. Les micro contrôleurs, de minuscules ordinateurs possédant quelques centaines d'octets de mémoire, sont au coeur de cette révolution. Ils deviennent de moins en moins cher et de plus en plus puissant. Néanmoins, à la différence de nos ordinateurs de bureau ou des serveurs, le but de l'industrie des micro contrôleurs n'est pas la puissance. En effet, contrôler la température de notre maison et le taux d'humidité de notre cave à vin ne nécessite pas des processeurs cadencés à plusieurs gigahertz. Cela ne nécessite même pas plusieurs coeurs de calculs. Le véritable besoin de ces équipements est d'être bons marché, d'être produits en très grands volumes, d'êtres petits, facilement intégrables et d'utiliser une faible quantité d'énergie électrique. Le meilleur exemple de cette tendance est très certainement la carte à puce. Depuis le début des années 90, de plus en plus de cartes à puce sont produites, vendues et utilisées dans le monde. Cependant, elles n'en restent pas moins de tout petits équipements d'une puissance inférieure de plusieurs ordres de grandeur de nos ordinateurs de bureau. Quand il s'agit de développer du logiciel pour ces équipements, un développeur débutant n'est généralement pas suffisamment préparé et ne sera pas capable d'écrire du logiciel efficace pour ces cibles avant de longue années passées à gagner de l'expérience et de l'expertise. Si le logiciel que l'ont souhaite produire doit être efficace, sûr et correct au sens le plus strict du terme, l'industrie doit compter sur des développeurs très spécialisés, expérimentés et donc chers. Les acteurs industriels ont donc deux alternatives : produire du logiciel bon marché, mais assez inefficace et défectueux ou dépenser une somme importante pour le développement et fournir un logiciel de bonne qualité. On peu aisément supposer que la tendance actuelle est au logiciel bon marché, et que la probabilité que le logiciel qui équipera les millions d'équipements formant l'internet des objets sera de piètre qualité et offrira quantité de failles que des acteurs malveillants se feront une joie d'exploiter si rien n'est fait pour rendre bon marché le développement correct de logiciels embarqués. Mes recherches de ces dernières années vont dans le sens de la réduction du fossé séparant logiciels bon marché et logiciels sûrs et performants. Je suis convaincu qu'en offrant des outils " intelligents " et des chaînes de production logicielle efficaces, nous pouvons aider les développeurs débutants, ou non spécialisés, à produire du logiciel embarqué de bonne qualité pour un coût de développement raisonnable. J'ai également porté mon attention sur l'optimisation et la sécurisation des logiciels et des protocoles réseau afin que l'internet des objets puisse devenir une réalité tout en respectant la vie privée des utilisateurs et en offrant une alternative durable sur le plan énergétique. Je me suis principalement intéressé à trois champs de recherche. Tout d'abord, j'ai cherché à permettre l'utilisation de techniques de développement standard (objets, composants, programmation en Java…) à la faible capacité mémoire des équipements embarqués. A l'inverse, je me suis également intéressé à l'utilisation de langages dédiés à une application afin de permettre à des spécialistes du domaine de la sécurité réseau d'exprimer des algorithmes de détection d'intrusions. A l'aide d'une suite d'outils dédiée, ces algorithmes sont compilés et optimisés automatiquement pour être utilisés dans une architecture distribuée de sondes embarquées. Enfin, je me suis intéressé aux protocoles réseau économes en énergie pour interconnecter les équipements embarqués dans le cadre des villes intelligentes.

soutenue le 04/12/2014