Kernel-based mode-setting
Kernel-based mode-setting, ou KMS, est un procédé permettant la gestion des modes d'affichage par le noyau Linux et celui des systèmes BSD.
Le KMS s'oppose à l'UMS (user mode setting).
Sans KMS c'est le pilote graphique qui se charge de la gestion des modes d'affichage graphique, ce qui est loin d'être optimal. En effet, ce travail est déjà fait une première fois par le noyau pour l'affichage des messages durant la phase de démarrage, avant que le pilote graphique ne réinitialise à nouveau le mode d'affichage lorsqu'il est lui-même chargé.
Sur la base de KMS, une gestion plus élaborée a ensuite été développée : Atomic mode-setting.
Historique
modifierKMS fut intégré au noyau Linux depuis la version du kernel 2.6.29[1]. Compatible dans un premier temps uniquement avec les architectures Intel, son usage a été étendu aux autres architectures (Radeon via les pilotes radeon à compter du noyau Linux 2.6.31[2], puis GeForce via nouveau).
Il est peu à peu porté sur les systèmes BSD :
- FreeBSD : La version 9.1 fait usage de KMS s'agissant du pilote libre Intel ; la version 10.0 utilise quant à elle KMS pour le pilote radeon.
- OpenBSD : La version 5.4 fait usage de KMS pour les pilotes libres Intel et radeon.
- DragonFly : La version 3.6 fait usage de KMS pour les pilotes libres Intel et radeon.
Apports
modifierKMS permet :
- de démarrer de façon plus fluide graphiquement : l'image ne « saute » plus pendant la phase de démarrage de l'ordinateur, de même en cas de changement d'utilisateur ;
- une meilleure mise en veille du matériel – car indépendante du BIOS (dont les spécifications sont la plupart du temps tenues secrètes, ce qui complique la tâche des développeurs du noyau Linux et du serveur graphique X.Org) ;
- de conserver une interface graphique même en cas de plantage du serveur graphique X.Org ;
- de faire tourner le serveur X sans les privilèges root (procédé NRX pour "No-Root X") pour une sécurité accrue[3].
Atomic mode-setting, KMS Planes
modifierLa gestion atomique des modes d'affichage (en anglais atomic mode-setting) introduit la validation du mode vidéo demandé avant son activation, répondant ainsi au problème de détection tardive des échecs de configuration, ainsi que la synchronisation des Planes avec un VBLANK, ce qui n'était pas le cas avant[4].
Notes et références
modifier- Patrick Guignot, « Sortie de Linux 2.6.29 », linuxfr.org,
- (en) "Linux 2.6.31-rc1 Kernel Released" par Michael Larabel, Phoronix,
- (en) "Moblin 2.0 To Not Run X Server As Root" par Michael Larabel, Phoronix,
- (en) « Atomic Mode-Setting »,
Voir aussi
modifierArticle connexe
modifierLiens externes
modifier- (en) Keith Packard, « kernel-mode-drivers »,
- (fr) Entretien avec Jean-Sébastien Pédron à pied d'œuvre pour porter KMS pour Radeon dans FreeBSD, linuxfr.org, le
- (en) Pekka Paalanen, « From pre-history to beyond the global thermonuclear war », RejectedRejected
- (en) Daniel Vetter, « Atomic Modesetting Design Overview »,