AcidOS : un OS embarqué français avec virtualisation intégrée dans moins de 512 Ko

Depuis dix ans, William Pecnik, un développeur français travaille d’arrache-pied au développement d’un nouvel OS, baptisé AcidOS. Ce système d’exploitation extrêmement compact embarque tous les services de base d’un OS standard, y compris la virtualisation. 100% français, il vient de connaitre sa première application commerciale dans un routeur d’agrégation de liens. Son développeur entend s’appuyer sur cette base pour attirer l’attention sur le logiciel et accélérer son développement.

LeMagIT a rencontré hier le développeur français d’AcidOS, un système d’exploitation ultra-compact conçu pour le monde de l’embarqué, mais intégrant également des capacités qui pourraient en faire une base intéressante pour certaines applications de datacenter, notamment dans le cloud.

Un OS complet dans moins de 500 Ko

Le noyau AcidOS avec sa pile IP tient dans moins de 90 Ko et il faut moins de 512 Ko pour le noyau, les modules additionnels ainsi que les serveurs web, DNS, DHCP et Telnet.

Le noyau AcidOS avec sa pile IP tient dans moins de 90 Ko et il faut moins de 512 Ko pour le noyau, les modules additionnels ainsi que les serveurs web, DNS, DHCP et Telnet.

AcidOS est le fruit des travaux de William Pecnik, un développeur français qui a commencé à travailler sur ce projet il y a presque dix ans, alors que l’adoption de Linux entrait en phase critique. «À l’époque, Linux n’était pas adapté au temps réel et surtout le noyau Linux commençait déjà à gonfler de manière inquiétante », explique Pecnik. L’idée était alors de produire un OS extrêmement compact, consommant peu de mémoire et capable de répondre aux besoins de systèmes embarqués. AcidOS fonctionne aujourd’hui sur plates-formes x86 32 et 64 bit et est aussi disponible sur architectures ARM v9.

« L’OS supporte nativement le multi-coeurs. Il embarque un scheduler, un système de gestion de la pagination mémoire, un gestionnaire de devices et librairies dynamiques, un système de gestion de fichiers standard, un pilote graphique générique VESA et une pile USB conforme au standard OHCI », explique le développeur. Plus intéressant, Pecnik a développé ex-nihilo une pile Ipv4 et Ipv6 et inclut dans l’OS un serveur http, un client et un serveur DNS, un client et un serveur DHCP et un serveur Telnet. Cerise sur le gâteau, l’OS embarque, dans sa version x86, un hyperviseur de niveau 1 ( avec support des Nested Pages et d’EPP, support de virtIO, une émulation des cartes réseau Intel E1000 et Realteck8029 et un support USB). Le tout tient dans moins de 500 Ko.

Une pile TCP/IP à très faible latence développée ex-nihilo

Les avantages d’une telle compacité sont multiples indique William Pecnik : tout d’abord l’OS est très rapide et il lui faut moins de 2 secondes pour démarrer. C’est important car cela permet dans la pratique de redémarrer dans l’intervalle d’un time-out TCP. En clair, en cas de plantage et de redémarrage, les connexions internet en cours ne sont pas rompues (ce qui en fait par exemple un candidat de choix pour un OS de box internet ou d’appliance réseau).

Le fait de disposer d’un pile TCP/IP développée ex-nihilo est aussi un avantage selon Pecnik : en terme de « fingerprint » (ou empreinte), la stack IP d’AcidOS est inconnue ce qui est notamment très intéressant dans les applications liées à la sécurité et à la défense. La stack IP serait aussi extrêmement rapide. Selon le développeur, la latence de sa pile IP par rapport à une pile Debian sur le même matériel, est deux à trois fois plus faible. Là encore les implications en terme de sécurité sont importantes. Il est ainsi difficile avec une pile plus lente d’effectuer une attaque de type « man in the middle » sur la stack AcidOS sans se faire détecter.

Côté performance, Pecnik est aussi optimiste : « Un des leaders de l’embarqué auquel j’ai présenté l’OS l’a comparé aux performances du micronoyau L4. On est meilleurs en performances, tout en étant plus compact. L4Ka ::Pistachio n’a ainsi ni USB ni virtualisation ni serveur http ou DNS/DHCP ».

Côté développement, le scheduler spécifique d’AcidOS requiert des adaptations aux applications existantes pour tirer parti au mieux des capacités de l’OS. AcidOS propose toutefois un wrapper pour libC ainsi qu’une couche d’abstraction qui permet de porter rapidement des codes Open Source. L’environnement de compilation est GCC. Pour le développement, l’OS peut aussi fonctionner sur de multiples hyperviseurs clients dont VirtualBox, Bochs ou QEMU.

Une première application dans un routeur d’agrégation de liens

Comme l’explique Pecnik, AcidOS n’est plus un prototype mais un produit qui peut répondre à des besoins allant de l’embarqué aux grands serveurs (l’OS gère jusqu’à 256 cœurs). Il a trouvé sa première application commerciale dans un routeur d’agrégation de liens produits par la société Syswan, un spécialiste de l’agrégation de liens. Comme l’explique Suresh Rajon, le directeur général de Syswan, AcidOS est ainsi au cœur de la prochaine famille de routeurs WanRover WR42 conçue par la marque et qui permet d’agréger jusqu’à 4 liens d’accès Internet au sein d’un lien unique.

Le WanRover utilise une carte mère embarqué x86 à base de puce AMD et tire pleinement profit des caractéristiques d’AcidOS. Ainsi, sa puce BIOS a été modifiée pour accueillir l’OS embarqué, ce qui ne pose pas de souci au vu de la compacité du logiciel. Les paramètres de l’OS sont, quant à eux, conservés dans le CMOS, ce qui fait que le routeur ne dispose ni de stockage flash ni de stockage disque, ce qui a permis de réduire encore un peu plus son coût. Le principal travail a été le portage sur le nouvel OS du code d’agrégation de liens de la société. La prochaine étape, pour de futurs produits sera de porter l’OS sur une carte PIcoATX à base d’APU AMD Fusion.

Un OS à la recherche de financements et de partenaires

Pour commercialiser son bébé, William Pecnik a fondé la société Tecwec, dont l’objectif est de fournir des services d’intégration et de développement autour de l’OS, un modèle mis en pratique avec Syswan. Le développeur indique aussi être ouvert à la commercialisation en mode OEM de son OS. Il caresse aussi l’espoir d’une discussion avec un opérateur cloud. Selon lui, AcidOS et son hyperviseur extrêmement compact, pourraient permettre la construction d’architecture cloud performantes, à moindre coût et avec des caractéristiques uniques en matière de disponibilité du fait des temps de boot extrêmement court de l’OS.

En ces temps où le made in France est à la mode et où l’Etat investit à tour de bras dans des projets plus ou moins farfelus de cloud, le créateur de l’OS espère attirer l’attention sur un OS unique, développé en France et dont il répète à l’envie, qu’il a des caractéristiques supérieures à celle de ses concurrents. Il y a fort à parier qu’il y a 20 ans, un certain Linus Torvalds ne pensait rien d’autre de son nouveau bébé, un certain Linux…