Et si les UEFI étaient développés de manière plus communautaire, avec la réutilisation de briques renforcées, via des outils open source, pour des mises à jour plus régulières ? C'est ce qu'essaie de favoriser Microsoft avec Project Mu.
Depuis quelques années, Microsoft multiplie les initiatives en faveur de l'open source. Le géant de Redmond ne va pas encore jusqu'à ouvrir le code d'Office ou Windows, ses deux produits phares. Mais il n'a pas hésité à racheter GitHub, développer Visual Studio Code, ouvrir .Net, intégrer un sous-système Linux dans Windows 10, curl, ssh ou tar.
Des mouvements bien sûr intéressés, puisque l'open source est largement utilisé dans le monde professionnel, notamment la gestion des datacenters. Microsoft préfère rassembler le meilleur des deux mondes que de voir une frange croissante d'utilisateurs passer sur des systèmes Unix, parce qu'il est plus simple d'y cloner un dépôt Git.
Mais l'ouverture logicielle ne concerne pas que les OS et les applications. Elle peut également s'appliquer à des éléments bien plus critiques d'un système. C'est à cela que tente de répondre aujourd'hui l'annonce de Project Mu.
UEFI mis à jour régulièrement, plus ouverts
Pour faire simple, il s'agit d'aller vers un développement plus ouvert de l'Unified Extensible Firmware Interface (UEFI). Cet élément logiciel est utilisé à l'initialisation du PC et remplace le BIOS depuis quelques années maintenant. Souvent vu comme l'occasion d'une interface plus graphique et gérable à la souris, il propose bien plus de possibilités que son prédécesseur, notamment en matière de sécurité.
Avec ses Surface, Microsoft mise sur une approche Firmware-as-a-Service (FaaS) où ce composant est mis à jour régulièrement, en ligne. Cela nécessite une optimisation du développement et de la manière dont il est géré, tant avant qu'après une publication. L'équipe s'est tournée vers la solution open source TianoCore/EDKII dans un premier temps, déjà utilisée par Online. Mais elle n'y a pas trouvé son bonheur pour la gestion de multiples gammes d'appareils.
Elle a donc décidé de l'adapter à ses besoins, donnant naissance à Mu. Ce n'est pas exactement un fork de TianoCore selon Microsoft, mais ce dernier lui servira toujours de base de travail (upstream) et des patchs pourront être proposés.
Faciliter le travail entre partenaires
Dans la page de présentation du projet, l'éditeur explique sa volonté de revoir le modèle de conception des UEFI, tout en s'éloignant d'une approche copier/coller des différentes briques, assemblées selons les besoins. Certaines seront propriétaires, d'autres non.
L'idée est donc de proposer un socle ouvert pour les outils de conception/test et l'UEFI utilisée par Microsoft, afin de pouvoir les faire évoluer avec d'autres. Outre la brique de base (basecore), des élements complémentaires sont fournis (plus et tiano_plus) ainsi qu'un exemple d'implémentation. Au total, une dizaine de dépôts sont en ligne.
Microsoft dit avoir contacté ses partenaires pour travailler avec eux sur Project Mu, et espère bien les voir s'en emparer pour leurs propres produits. Reste à voir si ces derniers répondront à l'appel.