Nouveautés dans Ubuntu 9.10 – Partie 2 – Système

2e partie sur les nouveautés d’Ubuntu 9.10. Nous allons nous intéresser plus particulièrement aux évolutions de certains éléments techniques.

Ext4 par défaut

Les nouvelles installations d’Ubuntu sont désormais faites avec un nouveau format de partition : le ext4. Ce format était déjà disponible dans la version précédente, mais seulement comme une option. Ce nouveau système vient remplacer le vieillissant ext3 (qui pour rappel n’est que le format ext2 encore plus vieillissant + une journalisation). Ext4 intègre plusieurs améliorations déjà présentes dans des systèmes de fichiers récents, comme l’allocation retardée (pas d’écriture immédiate sur le disque), système d’extend (espace réservé pour écriture de fichiers volumineux), une vérification (fsck) plus rapide etc … Il faut considérer ce système comme une très grosse évolution de ext3, pas une révolution. La révolution sera pour plus tard, avec l’arrivée de btrfs, le système de fichiers de nouvelle génération, encore en test dans le noyau.

Kernel Modesetting pour ATI/Intel

Le kernel modesetting (appellé KMS) est une évolution de la gestion des drivers graphiques. Ce mode permet au noyau de prendre en charge l’affichage, dévolu auparavant au serveur Xorg. Il permet une amélioration globale des drivers graphiques (gestion simplifiée, pas de rupture dans la séquence de démarrage, meilleure gestion de l’hibernation, possibilité de lancer Xorg sans les droits root, garder une interface graphique lors du crash de Xorg (oui c’est le blue screen of death) …). Ce mode nécessite des drivers adaptés, mais aussi une adaptation au niveau du noyau. Ubuntu 9.10 intègre par défaut ce support pour les cartes Intel. Pour ATI, le support est disponible en test sur un PPA (Attention ! ce sont des paquets non officiels, et potentiellement, très instables !)

Pour les possesseurs de cartes Nvidia, un gros travail est actuellement en cours niveau noyau et drivers. A en juger par cette matrice, c’est en bonne voie.

HAL meurt

HAL est une interface entre les périphériques et les applications, qui sera bientôt abandonnée. Son remplacement (par les DeviceKit-* et udev) est en cours dans Ubuntu 9.10, avec notamment la gestion de l’alimentation, les raccourcis claviers des portables, et la gestion des disques (en passant par gvfs). Il n’y a pas pour l’instant de gain pour l’utilisateur final, mais si vous avez un problème sur 1 de ces éléments ci-dessus, vous savez sur quoi il faut taper 🙂

Empathy & RB versus Pidgin & Banshee

Ubuntu 9.10 aurait pu être une version avec beaucoup de changements pour les applications par défaut. Cela a été presque le cas.

Pour la musique Rhythmbox est toujours là, malgré les nombreuses critiques à son sujet (vieux, pas assez de fonctionnalités, peu développé …). Beaucoup de personnes lui préfèrent Banshee qui fut un temps programmé pour être le lecteur de musique par défaut. Si on peut reconnaître que Banshee possède des avantages (support vidéo, support lastfm supérieur), certains lui reprochent sa consommation mémoire supérieure (surtout quand la bibliothèque est grande), une maturité moins grande, et certaines fonctionnalités encore manquantes par rapport à son concurrent (le crossfading par exemple).

RBvsB

Pour la messagerie instantanée, Empathy a été mis à la place de Pidgin. Si le couple Empathy/Telepathy prends de plus en plus d’importance sous GNOME (partage de jeu, de bureaux etc …), il faut admettre que certaines fonctionnalités manquent encore à Empathy par rapport à Pidgin. Je pense notamment au support IRC, très limité sur Empathy, ou simplement le transfert de fichiers avec les clients MSN (en cours de développement, mais trop juste pour la 9.10). Certes, Empathy possède d’autres avantages (support vidéo plus mature, thèmes Adium …) et dans l’ensemble, Empathy a fait beaucoup de progrès. Mais je le trouve encore un peu limite pour remplacer Pidgin complètement, pour l’utilisation que j’en fais. Mais si vous utilisez Xchat pour IRC et que vous ne transférez pas de fichier par MSN, Empathy devrait parfaitement convenir.

GNOME 3 et Gnome Shell, pas convaincant

Pour ceux qui ne sont pas au courant, GNOME 3.0 est prévu dans 6 mois. Cela ne devrait pas être un aussi grand changement que le passage de KDE 3 à 4. Mais on devrait avoir l’intégration de gnome-shell, un nouveau bureau. Une version « preview » est disponible dans les dépôts. Pour ma part, c’est loin d’être convaincant. Pour les adeptes de Compiz, cela ressemble à un mode Bureau Plat, avec un menu sur la gauche et la possibilité de rajouter des bureaux à la volée. Le panel est minimaliste, non personnalisable et n’affiche plus les fenêtres ouvertes. En plus, je trouve l’ensemble bien plus lent que Compiz. Ajoutez à cela qu’il faut activer la 3D pour le faire fonctionner (comme Compiz finalement), je ne vois pas bien l’intérêt pour l’instant. J’espère que la version finale apportera de vrai avancées en matière d’accès au bureau, d’expérience utilisateur. Parce que pour l’instant, la simple association Compiz + Gnome-Do (+ éventuellement Awn) est bien plus convaincante à mes yeux.

gnome-shell

Et pour finir, n’oublions pas les versions de quelques logiciels phares :

  • Firefox 3.5 (plus rapide, moins gourmand en mémoire, avec support des balises HTML5 <video> et <audio> …)
  • OpenOffice 3.1
  • GNOME 2.28 (entre autres Epiphany avec support Webkit, plein de nettoyage dans les bibliothèques  pour le futur GNOME 3.0 …)
  • noyau 2.6.31 (fr et en) (USB 3.0, KMS radeon et défragmentation à chaud pour ext4 (fonctionnalités expérimentales !), et d’autres améliorations assez techniques :-))

Lexique :

Droits root : droits de tout faire sur le système (tout modifier, tout supprimer). Ce sont les droits que vous avez quand vous utilisez la commande « sudo ». Actuellement le serveur graphique est lancé avec ces droits, ce qui n’est pas des plus sécurisés.

Crossfading : le fait de commencer un morceau de musique avant que le précédent ne soit fini. C’est l’effet de transition des DJ 🙂

DeviceKits-* : remplaçants de HAL, composés de DeviceKits-power pour la gestion de l’alimentation et de DeviceKits-disks pour la gestion des disques. Vous aurez surement devinez que c’est développé par des gens de Fedora 🙂

GVFS : Le remplaçant de gnome-vfs, c’est le système sous GNOME qui gère les volumes, les disques etc … C’est l’outil derrière Nautilus qui permet notamment de faire du FTP directement dans le gestionnaire de fichiers.

Journalisation : Les transactions du système de fichier sont tracées dans un journal, ce qui permet en cas de crash de corriger les problèmes plus rapidement, la vérification s’effectuant en remontant le journal, et non sur tout le système de fichier.

udev : le gestionnaire de périphériques de GNU/Linux.

Telepathy : Framework permettant aux applications d’implémenter facilement des fonctionnalités de communication. Par exemple, on peut partager facilement son bureau avec Vinagre grâce à Telepathy. Certains jeux (comme le Sudoku dans GNOME) ont une fonctionnalité multi-joueurs grâce à Telepathy.

Nouveautés dans Ubuntu 9.10 – Partie 1 – Démarrage

La rumeur va vite se répandre, mais oui Ubuntu 9.10 est sortie aujourd’hui 🙂 N’oubliez pas d’utiliser les .torrent !

Je vous propose de partir à la découverte de certaines nouveautés de cette version 9.10 (surnommée Karmic Koala) en 3 articles :

  • Le démarrage, regroupant tous les nouveaux programmes mis en œuvre dans le démarrage d’Ubuntu
  • Le système, pour les principales innovations générales du système
  • La « touche » Ubuntu, pour toutes les applications spécifiques Ubuntu

GRUB 2

grub2910

Le changement n’est pas flagrant au premier abord. Mais si vous avez effectué une réinstallation, c’est maintenant GRUB 2 qui vous fait démarrer. Compte tenu de la criticité de ce programme, ce changement de version n’est pas anodin. Surtout quand on sait que la dernière version de GRUB 1 est sortie en … 2005 ! Depuis, la plupart des développements sur GRUB ont été faits par les distributions elle-mêmes. On peut citer le passage au UUID pour les disques, ou le support d’ext4.

Place donc à GRUB2 qui nous promet plein de nouvelles choses (interface graphique, internationalisation etc …). Pour l’instant, le gros du travail a été de faire que la migration se passe dans de bonnes conditions.

Upstart

On avait laissé Upstart quasiment inchangé depuis Ubuntu 6.10 (Edgy). Et même à ce moment là, Upstart ne faisait que mimer init, sans vrai gain. Il aura fallu attendre la mode des netbooks et des démarrages en quelques secondes pour que le travail sur Upstart reparte.

Dans Karmic, on a droit a une version refaite, avec quelques scripts init réécrits au format Upstart. A terme, le but est de gagner en rapidité, et de rendre complètement dynamique le démarrage des processus par Upstart. Une bonne nouvelle pour ce projet partagé maintenant avec Fedora et bientôt Debian.

Rapidité

En ce qui concerne la rapidité, si vous avez testé Karmic, vous avez peut être remarqué que le démarrage semblait plus rapide. C’est vrai, mais pas entièrement. En effet, l’ordre de démarrage des programmes a été revu, avec comme but de démarrer Xorg et GDM le plus rapidement possible, en chargeant le reste plus tard. C’est utile si vous utilisez GDM pour rentrer un login et un mot de passe, car pendant que vous les tapez, la machine continue à travailler.

Il est cependant difficile de dire si le gain de temps a été uniforme, certains testeurs disent même que le temps global à plutôt augmenté pour eux. Mais l’optimisation du démarrage est vraiment prévu pour Lucid, quand on sera sûr que cette conversion n’a pas fait trop de dégâts.

Xsplash

xsplash910

Autre élément qui a changé dans la séquence de démarrage de Karmic, c’est l’introduction de xsplash. Il s’agit de l’écran de chargement que vous pouvez voir avant et après vous être connecté par GDM. Il a pour but de faire patienter l’utilisateur entre le démarrage de Xorg et l’affichage de GDM, puis entre la connexion par GDM et l’affichage du bureau. Cette approche a été préférée à Plymouth, l’alternative de Fedora qui se repose sur le KMS. La raison invoquée est que, comme Xorg est lancé très tôt, pas besoin de programme supplémentaire qui ne sera affiché que très peu de temps. Certes, mais on regrettera ce développement spécifique Ubuntu alors qu’une alternative existe déjà.

GDM

gdm910

Vous avez surement remarqué que le look de GDM a changé. Mais vous ne savez peut être pas que le programme derrière a lui aussi complètement changé. Comme GRUB2, GDM 2.28 est un changement radical par rapport à son prédécesseur. Cette réécriture n’est pas nouvelle, la première version de GDM « new look » fut la 2.21, mais Ubuntu ne l’a jamais intégrée, restant à la version 2.20 (toujours présent dans les dépôts d’ailleurs). Le but principal de cette réécriture a été de le faire évoluer avec les technologies actuelles (ConsoleKit, PolicyKit, D-Bus etc …). Malheureusement, la réécriture a laissé des « cadavres » sur la voie, dont le plus visible est la configuration graphique et la configuration du thème. Ne cherchez pas d’outil de configuration un peu complexe (notamment pour les thèmes), ça n’existe pas. Ne cherchez pas à appliquer vos anciens thèmes GDM, ça ne marche pas. Bref, ce n’est pas pour rien que Debian n’a pas encore migrée vers gdm >= 2.21.

Pour finir, vous avez dû également voir que usplash (l’ancienne bar de progression orange avec le logo Ubuntu), a changé de look, remplacé par un logo blanc sur fond noir, sans progression. Si on peut approuver le design (je le trouve plutôt joli), on regrettera que le thème principal est resté orange. Mais on verra le thème plus tard.

usplash910

Lexique :

GDM : Écran de connexion d’Ubuntu et GNOME

GRUB : Programme qui sert a faire démarrer le système. C’est le premier élément à démarrer après le BIOS, là où on choisi le système à démarrer (Ubuntu, Windows etc …).

Init : Programme qui est responsable du lancement des autres programmes. Sur Ubuntu, il a été remplacé par Upstart qui jusqu’à Jaunty se contentait de mimer le comportement de Init.

Plymouth : Alternative à Usplash, l’image qui s’affiche juste après GRUB. Plymouth utilise KMS (ou Kernel-Modesetting, voir 2e article pour plus de détail) et génère un démarrage sans changement de résolution (sans saut d’image).

Upstart : Programme qui est responsable du lancement des autres programmes, comme Init. Il est actuellement utilisé par défaut sur Ubuntu, Fedora, et bientôt sur Debian.

Xorg : Appellé aussi serveur X, serveur graphique, qui gère l’affichage, les drivers graphiques, et les périphériques d’entrée/sortie (écran, souris, clavier etc …)

La suite :

Lubuntu 9.10 and plan for Lucid

For people who want a Lubuntu 9.10 ISO, don’t search too much, there is no official release of Lubuntu 9.10.

Instead, you can try it by installing the lubuntu-desktop package (you need the multiverse repository activated). Additionally, if you want to test a minimal installation of Lubuntu  :

Lubuntu 9.10 is more a prototype than a real release, more will come for Lubuntu Lucid : new shiny packages, new artwork, and maybe new default applications. If you want to help, all informations are available on the wiki page, and on the mailing list.

( And Hi Planet Ubuntu for my first post :))

En route pour compiz 0.9

Un des développeurs de compiz publie une suite d’articles en préparation de la prochaine version de compiz.

Pour rappel, cette version 0.9 sera une réécriture complète de compiz, passant du C au C++. L’initiateur de cette réécriture (un autre développeur) a posté une feuille de route pour cette réécriture qui a commencée en fin d’année 2008. On peut citer:

  • la séparation des « moteurs », OpenGL et composition (XRender) dans des plugins séparés, permettant en théorie à compiz de tourner sans avoir besoin ni d’OpenGL ni de la composition (comme un gestionnaire de fenêtres normal)
  • Réorganisation du système de plugins (voir ci-dessous).
  • Utilisation de CMake
  • Réécriture en C++
  • Effet de simplification, le support du multi-affichage (plusieurs serveurs X) et du multi-cartes serait abandonné, mais le multi-écran type xinerama ou RANDR 1.2 (multi-head) serait maintenu.

Je vous propose un petit résumé des ces articles, avec quelques commentaires.

Le premier revient sur la nouvelle architecture de compiz, plus modulaire car plus orientée objet que l’originale. C’est l’une des raisons du passage au C++, car l’écriture orientée objet étant, selon les développeurs, plus simple qu’en C. Le futur compiz va reposer sur des plugins qui pourront être facilement dérivés pour élargir leurs fonctionnalités. Par exemple, le plugin cubeaddon sera une extension du plugin cube, en ajoutant des fonctionnalités. Il y aura même des plugins « bibliothèques », ne faisant que fournir des fonctionnalités aux autres plugins (exemple, le plugin texte). Cela permet de mieux organiser le code, d’éviter d’en réécrire, et permet d’étendre plus facilement les fonctionnalités des plugins.

Le deuxième apporte des réponses à 2 questions récurrentes : la prévisualisation des fenêtres minimisées, et l’input redirection.

Comme vous avez du le remarquer, quand une fenêtre est minimisée, il n’y a aucune prévisualisation possible (dans scale, la barre de tâches, le switcher etc …). Cela vient du fait que le serveur X ne surveille plus les fenêtres qui sont minimisées. L’auteur cite plusieurs solutions, en allant du bidouillage vers la solution la plus « propre » selon lui :

1. Prendre une photo de la fenêtre avant d’être minimisée, et l’afficher quand on la demande. C’est la solution actuelle et ne fournit donc pas de prévisualisation.

2. Temporairement dé-minimiser les fenêtres. L’auteur n’est pas un fan, car cela engendrerait beaucoup de bidouilles pour rendre cette méthode utilisable.

3. Dire aux fenêtres qu’elles sont minimisées, les animer comme cela, mais en réalité, ne pas les minimiser et ne pas les afficher. Cela permet de disposer des informations de la fenêtre pour avoir une prévisualisation, mais ça mets un peu le bazar dans la gestion des fenêtres (elles pensent être minimisées, mais en fait non :)).

4. Ne pas dire aux fenêtres qu’elles sont minimisées, mais les animer comme si elles l’étaient, et ne pas les afficher. Cela permet aux fenêtres de se comporter comme si elles étaient affichées (les vidéos continuent), mais elles seraient quand même en attente d’interaction avec l’utilisateur (exemple des jeux).

Même si les solutions 3 et 4 sont définitivement les meilleurs (KWin et Mutter semblent avoir une option comme cela), cela engendrerai du boulot non négligeable, soit au niveau du serveur X, soit au niveau de la standardisation des gestionnaires de fenêtres (EMWH).

Au final, aucune solution n’a encore été décidée, donc ne vous attendez pas à avoir cette fonctionnalité tout de suite dans compiz.

La deuxième question concerne l’input redirection, qui tarde toujours à arriver. Il semble que tous les développements côté X soient faits, mais pas encore été intégrés officiellement. Donc en bonne voie, mais comme depuis plusieurs mois 😦

On attends maintenant la suite sur les nouvelles fonctionnalités de cette version de compiz. En espérant qu’une année de réécriture va porter ces fruits.

Awn 0.4 en beta test

Après des mois de développement, la réécriture complète du dock Awn est enfin disponible pour les testeurs, dans une version « beta ». Pour les utilisateurs d’Ubuntu, des paquets sont disponibles sur le dépôt PPA Awn-Testing (paquets avant-window-navigator-trunk). Attention, ce n’est pas une version définitive, mais elle a été jugée par les développeurs suffisamment stable pour être testée à grande échelle.

Au programme, beaucoup d’améliorations avec toujours le même but : un dock simple, facile à utiliser, et le plus ergonomique possible. Voici une liste des améliorations les plus visibles :

Positionnement du dock : enfin, vous pouvez positionner le dock en haut, en bas, à droite ou à gauche de l’écran ! On peut également régler la distance par rapport au coin (exemple, en bas complètement à gauche). A noter également qu’il gère très bien le multi-écran (positionné à gauche, les fenêtres restent maximisées à droite).

Nouveaux styles : de nouveaux styles de dock sont disponibles

Incurvé (curved) :

curved

Volant (floaty) :

floaty

En coin (edgy) (à noter que l’élément à gauche peut être n’importe quel applet) :

edgy

Mode étendu : le dock peut être étendu sur toute la largeur de l’écran. (Screencast)

Auto-hide automatique (auto-hide) a été complètement revu. Il existe plusieurs modes : auto-hide, mise en transparence (le dock devient transparent plutôt que de disparaitre), ou mise automatiquement en dessous (chaque fenêtre couvre le dock).

Un nouvel effet simple (juste mise en surbrillance).

Mode lanceurs seulement : Permet d’avoir uniquement un dock avec les raccourcis pour lancer les applications, sans la liste des fenêtres ouvertes. (Screencast)

Intellihide (ou auto-hide intelligent) : Détermine automatiquement si le dock doit être caché ou non. Par exemple, si une fenêtre est maximisée, le dock se cache automatiquement. Si cette même fenêtre redevient normale, le dock réapparait. C’est une fonctionnalité présente à l’origine dans Gnome-Do (Screencast).

Groupage de fenêtres : Lorsque plusieurs fenêtres d’une même application sont présentes, elles se regroupent automatiquement sous une même icône. Il y a toujours la possibilité d’interagir avec toutes les fenêtres. (Screencast), mais rien ne vous empêche de revenir à la configuration précédente (Screencast).

group

Améliorations des icônes : Vous remarquerez surement que les icônes sont plus belles (ou moins laides, c’est selon). Ce n’est pas qu’une impression, Awn utilise maintenant la même icône que vous avez au niveau du menu GNOME, plutôt que celle de la fenêtre. C’est notamment flagrant pour les icônes OpenOffice, qui était avant horrible.

Glisser & Déplacer des fenêtres : vous pouvez désormais déplacer les icônes des fenêtres en faisant un simple glisser & déposer (vérifier que l’option Drag & Drop est activée dans l’onglet avancé de Awn-settings, voir juste après).

Animation du chargement / crash d’applet : Quand un applet est en train de charger, il y a maintenant une petite animation en cercle pour montrer que l’applet est en train de se lancer. De même, une « tête » apparait maintenant quand l’applet plante. Un double clic sur cette « tête » permet de relancer l’applet.

anim

Mode Docklet : Les applets ont maintenant la possibilité de prendre toute la barre pour afficher des informations (cf ici l’applet Log out). Inspiré aussi d’une fonctionnalité Gnome-Do.docklet

Awn-settings : le nouveau gestionnaire de paramètres s’appelle Awn-settings (Awn-manager n’existe plus). L’ergonomie a été un peu revu (et risque d’être encore revu avant la sortie officielle). On peut noter quand même le glisser & déposer pour les applets, les catégories pour les applets, et un onglet « Avancé », pour modifier les options cachées. A noter que ces options ne sont pas encore toutes dans Awn-settings, le mieux étant d’utiliser gconf-editor. Il existe notamment la possibilité de modifier ou non les icônes du dock.

Utilisation de libdesktop-agnostic : créé par Mark Lee, un développeur de Awn, cette bibliothèque permet de développer la gestion des paramètres une fois et qu’ils puissent fonctionner avec tous les systèmes supportés (pour l’instant gconf ou un simple fichier .ini). Il en va de même pour la gestion des volumes comme GIO, gnome-vfs et thunar-vfs. Encore expérimentale, elle permettra de ne dépendre que des éléments déjà installés sur le système (évitant d’installer des dépendances GNOME si vous installer Awn sous XFCE).

Support non-composite : permet de faire tourner Awn sans avoir besoin du composite, donc sans compiz, ou avec metacity avec son paramétrage par défaut.

Quand aux applets, ils ont été principalement portés vers cette nouvelle version, et améliorés. Par exemple, la zone de notification est maintenant transparente, l’applet Corbeille a été réécrit pour fonctionner sur tous les environnements …

Voilà pour les principales améliorations visibles, le gros du travail ayant été de réécrire toute l’application « sous le capot », permettant d’implémenter des fonctionnalités plus facilement, et quelques fois étonnantes.