Ubuntu 9.10 et Xsplash
Nous avons déjà abordé à plusieurs reprises l’aspect graphique de la séquence de démarrage, mais nous allons nous maintenant nous intéresser plus particulièrement à un nouvel élément de cette chaîne de chargement : Xplash ; qui est le résultat du travail des développeurs de Caconical. En effet les grosses nouveautés d’Ubuntu 9,10 se concentrent principalement sur la séquence de démarrage. On va donc avoir droit à un chargement totalement refondu. Avec l’Alpha 5 toute la structure est déjà en place, avec dans l’ordre de démarrage :
- Grub 2
- Upstart 0.6
- Xsplash
- Gdm 2.26
Les alpha testeurs ont déjà découvert le nouveau grub et le nouveau GDM. Toutefois Xsplash, le remplaçant d’Usplash reste discret, tout autant que l’optimisation d’Upstart censée apporter un meilleur temps de chargement. Sur son blog, Scott James laisse filtrer quelques informations, l’occasion pour nous de faire une petite synthèse.
Les gestionnaires d’écrans de chargement actuels
RHGB – pour RedHat Graphical Boot – est le gestionnaire développé et utilisé par Red Hat – et par Fedora il n’y a encore pas si longtemps. Son fonctionnement consiste à charger un serveur X (serveur graphique) temporaire permettant d’afficher assez tôt l’écran de chargement, avant de repasser la main au serveur X principal une fois le chargement terminé. L’avantage de cette méthode est d’avoir rapidement un écran de chargement actif, mais charger et recharger l’écran a l’importunité de provoquer des sauts d’affichage désagréables …
Pour remplacer RHGB est donc apparu Plymouth, qui a pour objectif d’offrir un chargement plus fluide. Pour cela, les développeurs de Red Hat ont réutilisé comme base de départ Usplash – le gestionnaire de chargement développé par l’équipe d’Ubuntu – et y ont apporté de nombreuses améliorations . Mais si Plymouth est une solution séduisante, son inconvénient est de dépendre de KMS … Or, c’est un mode que peu de pilotes supportent à l’heure actuelle. De plus, le chargement de KMS peu provoquer – dans certains cas – un temps de chargement un peu plus long, ce qui entre en conflit avec l’objectif de réduction du temps de chargement que s’est fixé Canonical.
Usplash, dont nous avons parlé plus haut, offre une réelle simplicité et la possibilité d’afficher un écran de chargement en SVGA. Mais reste cependant limité en terme de possibilités de thèmes applicables et ne gère pas convenablement le chargement du serveur graphique, provoquant des effets de clignotement au démarrage.
La solution : Xsplash
Pour les développeurs d’Ubuntu, aucune de ces solutions ne répondait donc aux objectifs fixés pour Ubuntu 10.04, c’est à dire disposer d’une séquence de chargement rapide et fluide.
Les développeurs ont alors fait évoluer Usplash pour fournir un nouveau gestionnaire de démarrage : Xsplash. Dans le même temps, ils ont réalisés un gros travail sur le temps de chargement des modules prioritaires, tels que le serveur graphique et le montage des disques.
Il est donc tout d’abord prévu de charger le classique Usplash, jusqu’au chargement complet du serveur X. Une fois ce dernier chargé, Xsplash prend la main de la façon la plus transparente possible. Le plus gros du travail consiste donc à initialiser rapidement le serveur X. Pour cela, les développeurs d’Ubuntu disposent d’un gros avantage : Upstart ; un autre programme utilisé pendant le boot qui a pour rôle de charger les différents services du système. Au final le seul inconvénient de cette solution est un petit saut de l’écran entre le passage d’Usplash à Xsplash.
Ce choix technique permet de répondre aux objectifs futurs d’Ubuntu :
- Optimiser au maximum le temps de chargement, sans limitations liées aux modules graphiques.
- Offrir un écran d’identification graphique, pour les utilisateurs qui utiliseront le futur cryptage des partitions
- Faciliter la création d’écrans de chargement plus agréables, avec des thèmes modernes et animés (à partir du moment ou le serveur X sera chargé)
- S’affranchir de la compatibilité des pilotes avec KMS
Le travail est aujourd’hui bien avancé. De bons résultats ont été obtenus sur le temps de chargement du serveur graphique et les dernières versions d’UpStart et d’Xsplash devraient offrir un résultat intéressant pour Ubuntu 9.10, résultat qui sera visible lors du passage à la version bêta d’Ubuntu 9.10.
Il semble donc maintenant clair que Karmic Koala sera un jalon important vers un chargement complet du système en 10 seconde.