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.

claudio

DesaprobarAprobar8claudio dijo el 9-9-2009 a las 22:41:

31

Franco curao y volao debe postear mejor que @BoxByte&ZooTV&@Snidel esos deberian estar en lo mas profundo de la banca de FY

Mguel

DesaprobarAprobar2Mguel dijo el 10-9-2009 a las 00:05:

32

muy buen artículo, gracias!

Slack

DesaprobarAprobar2Slack dijo el 10-9-2009 a las 00:32:

33

uff en Arch de hace rato que tengo KMS activado, una delicia :P

una de las ventajas de usar una distro “rolling release”

salu2

Francisco A Redard

DesaprobarAprobar2Francisco A Redard dijo el 10-9-2009 a las 08:02:

34

Todavía no me aventuro en el KMS, pero por como lo describes en el artículo, parece merecer unas horas de lectura para instalarlo.

Tengo una ATI, pero si es algo del kernel, por qué se necesitan Drivers que lo soporten? Todavía no entiendo la diferencia que hay entre el KMS y tener los drivers built in en el kernel.

Buen artículo, Franco.

Saludos!

panxos

DesaprobarAprobar0panxos dijo el 10-9-2009 a las 09:10:

35

yo lo tengo como hace un mes o algo en mi notebbok HP y nada , es exlente nada que decir una delicia, 100% comodo y el escritorio parece que tuviese procesamiento y memdoria ilimitada, ni se inmuta… con nada…

Muchas Gracias Franco
LO AGREGO AL FACEBOOK CON TU PERMISO…

a se me olvidada
asi se relaliza en mi amada debian.

- http://wiki.debian.org/KernelModesetting
hay que tener el ultimo Xorg y el el ultimo Kernel

La maquina queda un lujo…

Francisco A Redard

DesaprobarAprobar1Francisco A Redard dijo el 10-9-2009 a las 09:32:

36

Acabo de leer que la 4850 (RV770) no tiene KMS todavía en el 2.6.31, tendré que esperar por el 2.6.32 :P

Aquellos con ATI basado en el RV500 (la serie X1000) tiene soporte en el recién salido 2.6.31.

Saludos!

Franco Catrin

Franco Catrin dijo el 10-9-2009 a las 10:24:

37

@claudio

Te sorprendería saber cómo escribí el artículo de IBM y Sun ;-)

Franco Catrin

Franco Catrin dijo el 10-9-2009 a las 10:25:

38

@Francisco A Redard

El driver de X.org tiene que soportarlo porque debe usar los servicios que ahora provee el kernel. Antes el mismo driver de X.org implementaba esos servicios.

F3lip3

DesaprobarAprobar0F3lip3 dijo el 10-9-2009 a las 12:04:

39

Lo acabo de activar en Arch… esta genial hasta ahora.

PaYaZo

DesaprobarAprobar0PaYaZo dijo el 10-9-2009 a las 13:11:

40

como vuela esa maquina he!!! :D
genial el articulo franco :D
saludos y esperamos mas articulo así :D

mauro

DesaprobarAprobar-4mauro dijo el 10-9-2009 a las 20:18:

41

Que foooome la noticia Catrin…

mauro

DesaprobarAprobar-2mauro dijo el 10-9-2009 a las 20:21:

42

Linux siempre ha sido un desastre con las tarjetas de video…

Jorge Palma

DesaprobarAprobar0Jorge Palma dijo el 11-9-2009 a las 12:11:

43

MRivera:

Me podrías decir en que opción del CompizConfig Setting Manager esta esa opción?

Mira que me molesta el mismo detalle..

Atte.

JPE

Jorge Palma

DesaprobarAprobar0Jorge Palma dijo el 11-9-2009 a las 12:14:

44

MRivera:

Ya lo encontre:

General Options => Unredirect FullScreen Windows

Gracias por el dato Franco!!

Mejoras en el kernel Linux « MicroTeknologias

DesaprobarAprobar0Mejoras en el kernel Linux « MicroTeknologias dijo el 11-9-2009 a las 23:27:

45

[...] los artículos completos en Linux 2.6.31 mejorará el rendimiento del desktop con poca memoria y Kernel Mode Setting en Linux. Se agradece a Franco que explique de forma tan amena y entendible temas complejos al público en [...]

haldrik

DesaprobarAprobar0haldrik dijo el 12-9-2009 a las 19:35:

46

Me encanta que pongan estas noticias en FayerWayer.

Linux kernel 2.6.31

DesaprobarAprobar0Linux kernel 2.6.31 dijo el 16-9-2009 a las 00:13:

47

[...] la bienvenida a CUSE (drivers en userspace es mayor estabilidad), KMS mejorando y llevando el apartado gráfico al núcleo mismo, – y Wayland y otras alternativas que se [...]

Deja tu Comentario

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

Previsualizar comentario?