A raíz de mi interés por el live coding he ido conociendo un mundo nuevo donde términos desconocidos para mi hasta hace poco se han convertido en algo con lo que, casi, vivo día a día. Hace unos meses conocí el foro Linux musicians que reúne mucha información sobre aplicaciones, lenguajes o programas opensource, para la producción de música en entornos GNU/ Linux. Allí descubrí la existencia del Kernel de baja latencia, pero no me atreví a instalarlo. Hasta que hace unos días, en el blog desdelinux leí un artículo, muy bien escrito, que explicaba qué era, su diferencia con el Kernel “normal” y cómo instalarlo. Y lo instalé. Pero, vamos por partes.

¿Qué es el Kernel? El Kernel es el software que une el hardware y el software de nuestro ordenador, básicamente se encarga de la comunicación entre los programas informáticos que solicitan recursos y el hardware (memoria, procesador, periféricos, almacenamiento, etc.)

Pensamos que los Kernel modernos son multitarea, es decir que hacen varias tareas simultáneamente, pero en realidad lo que hacen es poner los programas en cola. Realizan el primer programa situado en la cola, lo interrumpen en un determinado momento y comienzan con la segunda tarea, así hasta que terminan con todas.

El Kernel de baja latencia, en cambio, busca la máxima reacción. Es decir, en cuanto recibe una tarea la ejecuta, aunque tenga otra en ejecución. Es perfecto, por tanto, para tareas industriales, aplicaciones interactivas o para producción musical, en las que necesitas una rápida respuesta ante un nuevo impulso.

Bien, ¿pero que mejora? ¿Merece la pena? Pues a grandes rasgos, y sabiendo que soy bastante nuevo en la materia, mejora la latencia, es decir, el intervalo de tiempo (retraso o lag) entre el estímulo y la respuesta. Si pensamos en un piano, sería el tiempo entre que tocamos una tecla y suena la nota correspondiente. En mi ordenador con kernel normal la latencia suele estar en 20 y 60 milisegundos (con el que estoy escribiendo este artículo, la latencia es de 46 mil/seg), mientras que con kernel de baja latencia la latencia es de 2 mil/seg. Es una diferencia significativa, aunque tampoco hay que volverse locos, he estado usando un kernel normal para livecoding y no he tenido problemas de retrasos significativos.

Bueno, vamos a la instalación. Es bastante sencilla, abrimos la terminal y ejecutamos:

sudo apt-get install linux-headers-lowlatency

luego

sudo apt-get install linux-lowlatency

y reiniciamos el GRUB

sudo update-grub

Reiniciamos el ordenador y comprobamos que el nuevo Kernel está activo. En la terminal ejecutamos:

uname -a

Saldrá algo así:

Linux livecoding 4.2.0-34-lowlatency #39-Ubuntu

Si sale el término lowlatency lo hemos hecho bien.

Si queremos cambiar entre un Kernel y otro o no se ha “activado” el Kernel de baja latencia tendremos que modificar el archivo de configuración del GRUB. Vamos a ello.

Como es una tarea peligrosa, lo idóneo es realizar una copia del archivo, en terminal:

cp /etc/default/grub /etc/default/grub.old

Abrimos el archivo con

gksu gedit /etc/default/grub &

(Sustituye gedit por tu editor de texto favorito.)

El archivo contiene muchas opciones para configurar el GRUB pero de momento sólo interesan dos:

GRUB_DEFAULT=0: El Kernel del menú que utiliza. GRUB_DEFAULT=0 significa que utiliza el primer Kernel, con GRUB_DEFAULT=1 el segundo y así sucesivamente. Puedes indicar, si prefieres, un Kernel determinado indicando su nombre, por ejemplo GRUB_DEFAULT=”Ubuntu, Linux 2.6.31-9-generic”.

GRUB_HIDDEN_TIMEOUT=0: No muestra el Menú del GRUB. Si quieres que salga, comenta la línea poniendo # delante.

En principio el sistema de GNU/ Linux posiciona los Kernels por orden de instalación, así que el nuevo Kernel (en este caso, el de baja latencia) estaría en la posición 0, en la 1 el recovery mode de éste y así sucesivamente. Pero como no hay que fiarse de nada, se me ocurre mostrar el menú del GRUB en el inicio, reiniciar el pc, ver que posiciones tienen los Kernels y luego indicarlo en el archivo de configuración del GRUB. Y no olvidar que siempre que se modifica este archivo hay que reiniciar el GRUB con:

sudo update-grub

Más información sobre el GRUB en la ayuda de Ubuntu (en inglés) o en guia-ubuntu (en castellano).

Referencias: desdelinux

Anuncios