o10ée et son système d'exploitation Lepton amènent Posix au monde de l’Internet des objetsFondée tout récemment, mais forte d'une riche expérience industrielle, la société o10ée offre, avec son système d'exploitation temps réel open source Lepton, une voie originale pour gérer des systèmes embarqués à contraintes mémoire élévées, mais suffisamment puissants pour gérer des fonctionnalités de communication et d'affichage évoluées. Son approche est basée sur la technologie Unix et le support des interfaces Posix pour favoriser la réutilisation de briques logicielles de base. ... Philippe Le Boulanger, cofondateur d’o10ée
C'est donc là que se situe l’origine d’o10ée. Avec le système d’exploitation Lepton, le fondement technologique de la société, on est donc loin d’une construction intellectuelle ex nihilo, mais face à un système éprouvé et doté de bases solides. La particularité de Lepton, et son originalité, est d’être basée sur une approche Unix, d’utiliser des interfaces à la norme Posix (IEEE1003.1) et de supporter le système de fichiers ad hoc. Tous les périphériques, par exemple, sont vus et accessibles sous forme de fichiers comme dans un système Unix. Le standard Posix qui standardise les appels système et les appels aux fonctions de l'OS permet au système d’exploitation de réutiliser non seulement des briques logicielles développées en interne par un utilisateur, mais également du code source provenant d’autres systèmes d’exploitation conformes à Posix. « C’est un aspect fondamental pour nous », précise Philippe Le Boulanger.
Basé sur un noyau temps réel
Concrètement, pour fonctionner, le système Lepton, qui se charge de la gestion des entrées/sorties, des processus, de la mémoire et des systèmes de fichiers, s’appuie sur un noyau temps réel, sans en modifier une seule ligne. Cet exécutif temps réel apporte ses services d’ordonnancement, de synchronisation (avec les mécanismes de mutex et de sémaphores) et de gestion des événements et des interruptions. Entre le système Lepton et le noyau temps réel mis en œuvre s’intercale une couche d’abstraction développée par o10ée, baptisée KAL (Kernel Abstraction Layer). A ses débuts, Lepton s’appuyait concrètement sur le noyau temps réel embOS de la société allemande Segger, puis il a été adapté pour travailler avec le système en open source eCos, et enfin il est en train d’être testé sur l’OS temps réel FreeRTOS dans sa version 8, lui aussi disponible en open source. Cette approche permet une portabilité du code importante et assure une réelle indépendance vis-à-vis du matériel utilisé. Quant à l’empreinte mémoire nécessaire, le système a été conçu pour qu’elle soit la plus faible possible. Porté sur un cœur ARM Cortex-M3, Lepton par exemple, nécessite seulement de 20 à 30 Ko de mémoire Ram et de 256 à 512 Ko de mémoire flash, correspondant au support de quelque 150 fonctions et appels système Posix .
Structure du système d'exploitation Lepton
« Lepton a été pensé dès le début pour fonctionner sur des microcontrôleurs aux ressources mémoire contraintes, précise Philipe Le Boulanger. Mais il offre néanmoins aux utilisateurs des fonctionnalités avancées que l’on retrouve sur des systèmes d’exploitation plus imposants, comme les piles de protocole IPv4 ou IPv6, un serveur Web, un serveur FTP, etc. » En fait, avec ses 250 000 lignes de code, contre plus de 10 millions pour un Linux complet, le système Lepton se positionne comme un intermédiaire entre les exécutifs temps réel comme CMX, eCos, embOS, FreeRTOS et les “gros” systèmes d’exploitation comme Linux ou QNX. « Notre but n’est pas de remplacer Linux, mais de proposer Lepton à des PME ou à des grands groupes qui développent des systèmes embarqués avec des besoins élevés au niveau des fonctionnalités, mais avec des contraintes fortes en matière de consommation et d’espace mémoire disponible », résume Philippe Le Boulanger. Les cibles matérielles visées sont essentiellement des microcontrôleurs avec des cœurs Cortex-M3/M4, ARM7 et ARM9 pour des applications qui exigent la mise en place de briques logicielles pour la communication (Ethernet, USB, Wi-Fi, Bluetooth, Zigbee, bus CAN…), le support de protocoles informatiques ou industriels (TCP/UDP/IPv4 et v6, FTP, HTTP, EtherCAT, Profinet…) et la gestion d’interfaces graphiques.
Vers un environnement de développement sous Eclipse
Pour l’avenir, o10ée, qui est membre du pôle de compétitivité Minalogic, compte porter ses efforts sur la mise au point d’un environnement de développement sous Eclipse, le développement de son propre exécutif temps réel, et une meilleure prise en charge des aspects sécurité, avec notamment le support des mécanismes de protection mémoire qui se généralisent sur les architectures de microcontrôleurs, comme le Cortex-M4. Et, bien évidemment, la société souhaite favoriser les contributions au projet open source Lepton disponible sous licence MPL 1.0 (Mozilla Public Licence), que ce soit au niveau du noyau, du système de fichiers, des BSP (pilotes de périphériques) ou du support de nouveaux microcontrôleurs.
Quant au modèle économique suivi par o10ée pour se développer, il est celui classiquement adopté par les sociétés impliquées dans l’open source : offre de services pour des travaux d’intégration, commercialisation de briques logicielles et développement de briques spécifiques à la demande.
Positionnement de Lepton face à la "concurrence"
|