Kernel Mode Setting en Linux

YouTube Preview Image

Dada la buena respuesta que han tenido los últimos artículos conceptuales queremos continuar cubriendo algunos temas que son bastante conocidos a nivel de desarrolladores, pero poco manejados por el público general.

En esta ocasión hablaremos de un cambio realizado en Linux que a primera vista se ve poco relevante, pero que al examinar más a fondo abre nuevas oportunidades.  Se trata de Kernel Mode Setting o Configuración de Modo de Video en el Kernel.

Configurar un modo de video es una tarea que puede ser más compleja de lo que parece, sobre todo ahora que existen distintos tipos de salidas de video y hay que preocuparse de muchos más aspectos que de sólo un monitor.

En Linux el código que se encarga de configurar el modo de video se encuentra en varias partes, e incluso se puede apoyar en la BIOS para hacer este trabajo.  Pero esto provoca algunos inconvenientes:

  • Algunas BIOS vienen con modos predefinidos que no se ajustan al hardware.  Sucede o sucedía con los primeros laptops que usaron modos widescreen pero cuyas BIOS sólo conocían los modos tradicionales.
  • Qué tan correcto sea el manejo del modo de video y las salidas de video dependen exclusivamente de la implementación particular de la aplicación que necesita usar el video, por ejemplo X.org o el terminal en modo de texto.
  • Cuando una aplicación configura el modo de video para trabajar en él, debe almacenar su estado y de alguna forma cederlo cuando otra aplicación necesita reconfigurar el modo de video.  Por ejemplo si estamos en una sesión gráfica en X.org y queremos pasar a una sesión de texto (Ctrl-Alt-F1), entonces X.org debe guardar el estado del video antes de que el terminal cambie a modo de texto.  Por otra parte el terminal de texto debe configurar el modo de video que necesita desde cero.  Cuando se vuelve a modo gráfico, se realiza el mismo proceso a la inversa: El terminal de texto guarda el estado, X.org reinicializa el video desde cero y luego restaura el estado que guardó previamente.

Todos al kernel

Con Kernel Mode Setting, la lógica de cambiar de modos de video se elimina de X.org y otras aplicaciones para implementarse únicamente en el kernel.  De esta forma hay sólo una implementación para esta funcionalidad común y todas las aplicaciones que necesiten cambiar de modo de video pueden pedir el servicio al kernel.  Por lo tanto desde el punto de vista de la calidad, ahora todas las aplicaciones compartirán la mejor implementación.

Antes, las aplicaciones no tenían cómo saber a qué modo de video se iba a cambiar, por lo tanto siempre el modo de video se reinicializaba.  Pero como ahora es el kernel quien se encarga de esta tarea, puede detectar que el modo de video que se está pidiendo es el mismo que ya se está usando, por lo que sólo bastará con limpiar la pantalla, sin necesidad de cambiar el modo de video.  Esto reduce al mínimo todos los pestañeos que un usuario de Linux está acostumbrado ver cuando se inicia el sistema.  Al mismo tiempo se asegura el correcto uso de las salidas de video adicionales como es el caso de un proyector o un monitor externo.

Otro cambio importante es que ahora el kernel puede configurar el mejor modo de video lo antes posible.  Por ejemplo, apenas se inicia el kernel, algo que toma un par de segundos, se puede iniciar el modo de video definitivo y desde ese momento en adelante nunca más cambiar, ni tampoco reinicializar.  Por lo tanto el splash de inicio, el gestor de login y el entorno de escritorio usarían todos la misma configuración de video y a ojos del usuario se verían sólo como imágenes de fondo que cambian.

El proceso de suspender el sistema y luego despertarlo se simplifica, ya que es el mismo kernel que está coordinando la suspensión y restauración quien tiene toda la información respecto al estado del video, lo que hace que el proceso entero sea más confiable y rápido como se muestra en el video que acompaña este artículo.

Nuevos horizontes

Ahora se podrán escribir nuevas aplicaciones que usen el video directamente, por ejemplo aplicaciones que funcionen en modo fullscreen y que necesiten su propia configuración.  A ojos del usuario, la aplicación se mantiene en el mismo ambiente, sin embargo se encuentra con una disponibilidad del 100% del hardware de video, sin ni siquiera un sistema de ventanas o un gestor de composición.  Estas nuevas aplicaciones podrían ser un salvapantallas, un juego, reproductor de videos, entornos gráficos livianos como Wayland, escritorios remotos, etc.

Aventurando un poco más la imaginación, se podrían tener transiciones al cambiar de una aplicación a otra, imaginen un cubo que gira como el de Compiz pero que actúa cuando se cambia a modo de texto, cuando se lanza una aplicación en modo fullscreen o cuando se cambia la sesión de usuario.

Distribuciones como Fedora ya incluyen Kernel Mode Setting pero su uso depende de la implementación de los drivers de video que se estén utilizando.  Otras distribuciones como Ubuntu lo integrarán en la siguiente versión.

Link : Artículos de Phoronix respecto a Kernel Mode Setting

Compartir Compartir
Publicado por Franco Catrin el 9 de September 2009 en la categoría Destacados, Software con los tags , , , . Tiene 47 comentarios.

47 Comentarios

Kernel Mode Setting en Linux

Deja tu Comentario ↓

Ver Comentario... Kernel Mode Setting en Linux : Blogografia dijo el 9-9-2009 a las 15:39 ...

L

DesaprobarAprobar35L dijo el 9-9-2009 a las 15:43:

2

un excelente avance, como siempre GNU/linux la llea XD

Marcel

DesaprobarAprobar9Marcel dijo el 9-9-2009 a las 15:54:

3

Me imagino entonces que ahora es necesario que NVIDIA y ATI hagan lo suyo y soporten está nueva funcionalidad, se ve muy interesante y con muchas posibilidades a futuro.

Lo único que veo malo, es que creo que se necesitaría reiniciar el equipo cuando se actualice el driver de video.

Ver Comentario... Pablo dijo el 9-9-2009 a las 15:58 ...

antonio

DesaprobarAprobar13antonio dijo el 9-9-2009 a las 15:58:

5

BRAVO!! Viva Linux!!!

Gracias por la noticia y por explicarla en condiciones

Franco Catrin

Franco Catrin dijo el 9-9-2009 a las 15:59:

6

@Marcel

Los drivers de ATI ya lo tienen, lo mismo en los de Intel. Desconozco la situación de NVIDIA.

Por qué se tendría que reiniciar el equipo al actualizar el driver de video?

Franco Catrin

Franco Catrin dijo el 9-9-2009 a las 16:00:

7

@Pablo

Es así de rápido, lo he visto en vivo en equipos de amigos (no en el mio equipo que tiene kernel+drivers viejos)

Rodrigo

DesaprobarAprobar4Rodrigo dijo el 9-9-2009 a las 16:02:

8

Una muy buena mejora y excelente explicación de Franco. Este es un adelanto que permite que Linux posea una experiencia de usuario mas suave o mejorada, bien por Linux!

MRivera

DesaprobarAprobar2MRivera dijo el 9-9-2009 a las 16:10:

9

En Ubuntu 9.04, cuando visualizo alguna aplicación en modo pantalla completa (por ejemplo Virtualbox o alguna película) y aparece una notificación mediante el sistema de notificación que Ubuntu trae incorporado, es posible apreciar un pestañeo en la pantalla al aparecer y desaparecer dicha notificación. ¿Son estos los pestañeos a los que se hace mención en el artículo?

Si es así, espero con ansias la implementación de Kernel Mode Setting en Ubuntu Karmic Koala, porque a pesar de ser un detalle, es molesto pues en cierto grado resta fluidez al uso del SO.

Franco Catrin

Franco Catrin dijo el 9-9-2009 a las 16:15:

10

@MRivera

No, ese pestañeo es porque _probablemente_ estás usando una opcion para eliminar el uso de un composite manager en las aplicaciones full screen (no redirect fullscreen windows), entonces cuando otra aplicación refresca un área de la pantalla, sobreescribe temporalmente lo que estas viendo en full screen.

Ver Comentario... ClaudioV dijo el 9-9-2009 a las 16:25 ...

MRivera

DesaprobarAprobar9MRivera dijo el 9-9-2009 a las 16:32:

12

@Franco Toda la razón, busqué la opción que mencionas en la configuración de compiz y se solucionó el problema. Gracias =D.

De todas formas la inclusión de Kernel Mode Setting dará mayor fluidez a la experiencia de usuario en Linux, así que bienvenida sea.

jminiesta

DesaprobarAprobar-2jminiesta dijo el 9-9-2009 a las 16:33:

13

“que puede parecer más compleja de lo que parece” WTF

Interesante artículo.

Fakeroot

DesaprobarAprobar9Fakeroot dijo el 9-9-2009 a las 16:46:

14

@Mrivera:

Si usas una tarjeta lo soporte (nvidia y creo que intel con el nuevo driver) debes tener instalado el paquete compizconfig-settings-manager (buscar en synaptic)

se instala en SISTEMA –> Preferencias -> Admininstrador de Opciones de compiz

en el ir a OPCIONES GENERALES y desmarcar el FORZAR PINTADO DE SALIDA INDEPENDIENTE y eso soluciona el problema que se muestre el fondo de pantalla cuando uno esta viendo un video a pantalla completa

Tambien como extra tambien el la pestaña del lado, DISPLAY SETTINGS pueden habilitar el sincronizado con el barrido vertical del monitor, establecerlo manualmente en el Vsync especifico de su monitor y tambien el el xorg habilitar el triple buffer en la seccion device para que las animaciones muy demandantes de GPU no hagan dar saltos en los FPS y asi sean mas fluidas cuando esta activado el Vsync

Section “Device”
Identifier “Configured Video Device”
Driver “nvidia”
Option “NoLogo” “True”
Option “TripleBuffer” “true”
EndSection

Ojala que Nvidia incorpore luego cambios para el KMS, asi poder disfrutar de esto

PD: menos mal que actualice el PC, mi antigua radeon 7000 ya me tenia chato

Pedro

DesaprobarAprobar3Pedro dijo el 9-9-2009 a las 16:49:

15

Excelente articulo Franco, me parece una buena funcionalidad aplicada en el Kernel, lo digo por que conozco esos parpadeos cuando cambias de KDE/GNOME a una Terminal (ctrl+alt+fx) y viceversa. creo que es una mejora que rebolucionará el modo de usar el video en GNU/Linux.

Hablando del video de arriba, Menos mal que Linux no es un SO para juegos (irónicamente hablando Jajaja), te imaginas si tuviera el soporte necesario???, sería otra cosa no.

Saludos

Kernel Mode Setting en Linux | UR-VE.COM

DesaprobarAprobar-4Kernel Mode Setting en Linux | UR-VE.COM dijo el 9-9-2009 a las 16:53:

16

[...] Click here to view the embedded video. [...]

Marcel

DesaprobarAprobar0Marcel dijo el 9-9-2009 a las 17:04:

17

@Franco, no tengo idea. Se me ocurre que al estar más ligado al kernel abría que reiniciar, pero no se.

michael

DesaprobarAprobar2michael dijo el 9-9-2009 a las 17:09:

18

esta wea era tan necesaria!!!!

que bueno que el nuevo hardware hace avanzar el desarrollo.

Franco Catrin

Franco Catrin dijo el 9-9-2009 a las 17:14:

19

@Marcel

Ya veo. No porque esa funcionalidad ahora sería del kernel y no tendría nada que ver con los drivers que se incluyen en X.org por ejemplo.

Entonces sólo tendrías que reiniciar si actualizas el kernel, como siempre ha sido.

Luisbigben07

DesaprobarAprobar-3Luisbigben07 dijo el 9-9-2009 a las 17:18:

20

Buen video e informacion, pero lo mejor la pinta del loko, todo un MJ

ruffox

DesaprobarAprobar17ruffox dijo el 9-9-2009 a las 17:18:

21

A Don Franco le deberian abrir un Blog en Betazeta… pa el solo :D

level_666

DesaprobarAprobar7level_666 dijo el 9-9-2009 a las 17:26:

22

@ruffox totalmente de acuerdo, los articulos de franco son simplemente geniales

Carlos Le+Mare

DesaprobarAprobar2Carlos Le+Mare dijo el 9-9-2009 a las 17:35:

23

Disculpen que repita el comentario, pero:

Los hijos de Bill Gates usan Linux!

http://ubunlinux.wordpress.com/2009/09/09/los-hijos-de-bill-gates-usan-linux/#comment-2

Ver Comentario... felipe dijo el 9-9-2009 a las 17:55 ...

javiernico

DesaprobarAprobar2javiernico dijo el 9-9-2009 a las 18:01:

25

Gracias por el articulo Franco, es increible ver como un pequeño cambio (pero seguramente, bastante trabajo) puede acarrear tantos cambios.

X_X

DesaprobarAprobar3X_X dijo el 9-9-2009 a las 19:10:

26

Vale por la actualizacion de como van los avances en Linux. No siempre se encontra informacion o mejor dicho, una guia para informarse de los avances de este sistema y por eso agradezco las notas al respecto. Ojala saliera despues el GNUWayer.

aryix

DesaprobarAprobar1aryix dijo el 9-9-2009 a las 20:07:

27

Esas son las novedades vistosas del kernel nuevo, vienen cosas mejores como nilfs
http://en.wikipedia.org/wiki/NILFS, TTM Memory manager, btrfs, etc

Ver Comentario... Trabajos esteban dijo el 9-9-2009 a las 20:52 ...

seta

DesaprobarAprobar2seta dijo el 9-9-2009 a las 20:53:

29

Como siempre señor un excelente artículo, mis felicitaciones.

Aún recuerdo hace unas semanas configurando a mano mi Linux con intel para que funcione mejor el video y acelerador gráfico, de esta forma bajar esos molestos pantallasos, pero al final valió la pena el esfuerzo, ya que quedó filete.

Nicolas

DesaprobarAprobar5Nicolas dijo el 9-9-2009 a las 21:52:

30

Gracias franco!
espero con ancias un nuevo articulo. Muy claro y conciso.

Deja tu Comentario

XHTML: Puedes usar: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <code> <em> <i> <strike> <strong>

Previsualizar comentario?