logo linux

Linux 4.0 disponible

Acaba de salir una nueva versión del kenel de Linux que, como peculiaridad no técnica viene con una numeración de versiones renovado.

Hace un par de meses, Linus Torvalds preguntó a la comunidad si consideraba que Linux 3.20 era un número demasiado alto que empezaba a no significar nada, así que propuso reiniciar el contador con Linux 4.0. Finalmente se decidió por el reinicio en el anuncio de Linus Torvalds de la primera release candidate de Linux 4.0:

…veamos cuantas cosas dejan de funcionar debido al número de la versión. Probablemente menos que durante la 3.0 pero ya me puedo imaginar a alguien comprobando el significado de las versiones.

El pueblo ha hablado y […] los número no mienten. La gente ha preferido 4.0 y 4.0 será. A no ser que alguien venga con un buen argumento en contra.

Los argumentos en contra parecen haber sido que «un número mayor debería ir acompañado características mayores o de incompatibilidades (con versiones anteriores)», lo cual demuestra lo poco que sabe la gente. Nosotros no rompemos la compatibilidad y no hemos sacado versiones basadas en las características desde nunca.

Por otra parte, el argumento más sólido de algunos de los que abogan por 4.0 parece ser que quieren ver la versión 4.1.15 porque «esa fue la versión de Linux que skynet usó para los terminators T-800».

[…]

linux terminator

Dejando a un lado los debates vacíos y absurdos sobre algo tan insignificante como la numeración de las versiones, pasamos a enumerar los cambios que vienen con Linux 4.0:

Intel

Como ya venimos viendo, Intel viene con algunos cambios en Linux 4.0, principalmenete relacionados con sus controladores gráficos:

· PPGTT (Per-Process Graphics Translation Tables) se introdujo en Linux 3.19 pero se acabó deshabilitando debido a algunos problemas detectados. Ahora se incluye PPGTT y ‘execlist’ a la microarquitectura Broadwell. PPGTT es una función que permite el aislamiento de los procesos de la GPU que está disponible en las arquitecturas Ivy Bridge, Haswell y Broadwell. [1]

· Optimización considerable en el rendimiento gracias a que se ha reducido una operación llamada ‘read-after-write’ (RAW) que produce paradas en el buffer HiZ. Ciertas cosas funcionarán muy lentas cuando el buffer HiZ está habilitado pero lo hará mucho más rápido cuando esté desactivado usando la opción de configuración de DRI ‘hiz=false’. El incremento de rendimiento se sitúan en hasta un x2.7 en los Braswell. [2]

· Las placas con SoCs Quark ya tienen soporte en Linux 4.0. En concreto se habla del modelo Quark X1000. [3]

AMD

Desde Linux 3.19, AMD ha hecho algunos movimientos como contratar a nuevos desarrolladores para sus controladores para Linux. En Linux 4.0 la cantidad de cambios para el hardware de AMD es la habitual aunque cabe esperar que la cantidad y calidad aumenten en el futuro. Los cambios son estos:

· Se añade soporte para la función ‘Indirect draw’ de OpenGL en los chips Evergreen y Nothern Islands que son las series Radeon HD5000 y 6000. [4]

· Se incluye soporte SMC para el control de los ventiladores de las microarquecturas Southern Islands y Sea Islands correspondientes a las series Radeon HD 7000 y RX200. [4]

· Ahora se puede controlar el régimen del ventilador manualmente también en las Southern Islands y las Sea Islands. [4]

· Se incluye soporte para audio en DisplayPort. [4]

· Se ha realizado una limpieza generalizada del código. [4]

· La arquitectura Hawaii correspondiente a la Radeon R9 290 recibe la corrección de fallo relacionado con la configuración de las tensiones. [5]

Nvidia

Nouveau son los controladores libres para tarjetas gráficas de Nvidia que en Linux 4.0 viene con estás novedades:

· Se incluye soporte de PWR para los chips GK20A que corresponde al Tegra K1 Kepler, un SoC ARM. Esta función se ha añadido a través de DVFS (Dynamic Voltage and Frequency Scaling), que es una de las funciones PMU del firmware. La forma de funcionar es tomando como referencia la señal ‘idle’ que proporciona el hardware e intenta ajustar el nivel de rendimiento en función del objetivo calculado. La política de cambio de frecuencia se podrá afinar cuando existan pruebas reales. [6]

· Se han solucionado algunos problemas con la suspensión y reanudación. [7]

· Los Tegra K1 cambian a ‘mode-setting atomic’. Esta forma de mode-setting consiste en configurar los modos de salida de un solo dispositivo gráfico realizando varias operaciones en una sola operación, lo que evita el parpadeo durante los cambios de configuración tanto si esta se aplica con éxito como si falla. [8]

Qualcomm

· El controlador libre Freedreno para el chip gráfico Adreno de Qualcomm recibe algunas mejoras como soporte de YUY para mdp4 y mdp5, soporte para eDP, suporte de cursor por hardware en mdp5 y soporte adicional de HDMI para apq8084 correspondiente al modelo snapdragon 805. [9]

Audio

En esta ocasión nos encontramos con que Linux 4.0 viene con una gran cantidad de cambios relacionados con el sonido [10]. Los más relevantes son los siguientes:

· ALSA recibe mejoras y corrección de fallos.

· Los portátiles HP reciben soporte para la tecla de funciones y el LED con los chips de audio de Realtek.

· Se añade soporte para las dock station de los portátiles HP.

· Se han solucionado problemas con portátil Toshiba Satellite S50D.

· Se incluye soporte para el control de producción musical Akai MPC Element.

· Los ASoCs también recibien nuevas características como el soporte para los dispositivos TI PCM514x y TLV320AIC3104.

· Las placas Tegra con el chip Realtek RT5677 ahora también tienen soporte de audio.

· Se incluyen mejoras para el controlador SST de Intel.

Gestión de energía

En Linux 4.0 se incorporan nuevas características relacionadas con la gestión de energía y la especificación ACPI incluyendo un nuevo controlador cpufreq basado en SFI, un nuevo controlador devfreq para el Tegra Activity Monitor y más funciones [11]:

· Se ha estado trabajando en ACPI para solucionar algunos problemas.

· Incorporado soporte para conexión en caliente IOAPIC basada en APIC.

· El controlador ACPI EC también viene con corrección de fallos.

· Se ha incorporado un nuevo controlador ACPI para los SoCs de AMD que hace el mismo trabajo que el controlador LPSS (Low-Power Subsystem) de Intel.

· Nuevo controlador cpufreq basado en SFI para las plataformas de Intel que usan SFI.

· Soporte para la microarquitectura SkyLake de Intel y otras actualizaciones en el controlador intel_pstate.

Sistemas de archivos

· XFS recibe pequeños cambios que corrigen fallos y añade algunas características. Se ha añadido soporte para la función ‘rename_exchange’. Se ha solucionado un problema relacionado con el log de recuperación. [12]

· Se ha añadido soporte para múltiples capas de sólo lectura para el sistema de archivos OverlayFS que fue introducido en Linux 3.18 y del que ya hablamos en su lanzamiento. [13]

· F2FS recibe nuevas funciones (‘f2fs_io_tracer’ y ‘F2FS_IOC_GETVERSION’) y arreglos de fallos. [14]

·BtrFS recibe algunas mejoras relacionadas con RAID5/6. [15]

Dispositivos multimedia

Se ha incorporado soporte para nuevos hardware y se han solucionado algunos problemas con controladores previos [16]:

· Se ha solucionado un problema con cx88 y ahora se maneja desde el controlador bt8xx.

· Se ha añadido nuevos controladores para la plataforma am437x, la webcam de toptek.

· El controlador img-ir incluye nuevos protocolos para mandos a distancia.

· Se han eliminado algunos controladores antiguos que funcionaban sobre viejos kABIs y que estaban destinados a hardware difícil de encontrar. Estos controladores que ya no están disponibles son para webcams para puerto paralelo bw-qcam, c-cam, pms y w9966.

· También se ha eliminado el controlador para la capturadora USB Telegent tlg2300. La compañía desarrolló este controlador hace tiempo que dejo de existir y el hardware es difícil de encontrar.

· El controlador rtl2832 recibe algunas mejoras.

· El hardware basado en cx28521 y au0828 ahora usa VB2.

Hardware de entrada

Linux 4.0 nos trae mejoras de funcionamiento en mandos de juego, tabletas digitalizadoras y teclados [17]:

· La implementación del protocolo HID++ de Logitech recibe mejoras.

· Se incluye soporte para dispositivos RMI.

· Nuevo controlador para el mando BETOP.

· Se han solucionado algunos conflictos entre los esquemas de teclados PC-101/103/104 y PC-102/105.

· Soporte para nuevo hardware y arreglo de fallos en el controlador de Wacom.

· También se han solucionado pequeños fallos.

Otros

· El gestor de procesos ha recibido algunas microoptimizaciones. Estos cambios podría producir pequeñas mejoras de rendimiento y duración de la batería. [18]

· Se introduce en parcheado en vivo “live patching”. Se proporciona una infraestructura básica para esta función. Se hace uso de la función ftrace y de momento está implementada solo para la arquitectura x86 aunque se está trabajando en traer soporte a PowerPC, S390 y ARM. [19]

· Soporte para el microprocesador de IBM z13. Se ha incorporado la opción en el kernel para el compilado con el z13. También se da soporte a SMT y al adaptador de cifrado CES5S entre otros añadidos. [20]

· Fbdev viene con soporte para el SoC DRA7xxx y para cálculo DMT (Display Monitor Timing). Fbdev (el framebuffer de Linux) es una capa de abstracción independiente del hardware gráfico que sirve para mostrar gráficos en la consola. [21]

· La arquitectura PowerPC recibe algunos cambios entre los que destacan actualizaciones para la PlayStation 3. [22]

· Se incorpora soporte para TPM 2.0 (Trusted Platform Module). TPM es una norma internacional dedicada a los procesadores criptográficos. Estos son una pieza de hardware dedicada al cifrado de datos. TMP 2.0 viene con nuevas características como más algoritmos de cifrado. [23]

· KVM (Kernel-based Virtual Machine) viene con algunas optimizaciones que pueden mejorar la latencia un 50%. También trae soporte para GICv3 en ARM, arreglos de fallos para la arquitectura MIPS, optimizaciones para s390 y numerosas mejoras para x86. [24]

· El controlador I2O se ha movido al subsistema ‘staging drivers’ que agrupa a los controladores que no alcanzan un nivel de madurez suficiente. La razón es que no está recibiendo soporte y corresponde a una especificación que publicó Intel a mediados de los 90s y que está en desuso por lo que Linux 4.0 ya no tiene soporte para este controlador. [25]

· Se ha implementado VirtIO 1.0. VirtIO es una plataforma para virtualizar las operaciones de entrada y salida en KVM. La idea es tener un framework común para que los hipervisores puedan gestionar la virtualización de las entradas y salidas. [26]

· Los portátiles de Toshiba se verán beneficiados por una gran cantidad de mejoras en el controlador platform-drivers-x86. Entre otras cosas, se ha añadido soporte para la tecnología ‘USB Sleep and Charge‘ que básicamente consiste en que es posible alimentar dispositivos mediante el bus USB mientras el ordenador está suspendido. También reciben soporte para las teclas de funciones, para habilitar y deshabilitar USB 3 y para la función ‘Panel Power ON‘ que permite encender el ordenador con tan solo abrir la pantalla. [27]

 

Referencias

[1] http://cgit.freedesktop.org/~airlied/linux/commit/?id=adc31849b27fefeca6c225d3895143a2ec6970fa
[2] http://lists.freedesktop.org/archives/intel-gfx/2015-January/058398.html
[3] https://lkml.org/lkml/2015/2/20/200
[4] http://lists.freedesktop.org/archives/dri-devel/2015-January/076003.html
[5] http://lists.freedesktop.org/archives/dri-devel/2015-February/077527.html
[6] http://cgit.freedesktop.org/nouveau/linux-2.6/commit/?h=linux-3.20&id=9f7fd620af29d4501ed063333824562656d46da5
[7] http://cgit.freedesktop.org/nouveau/linux-2.6/commit/?h=linux-3.20&id=4dc63933ea518501fe9cfe6a8f8797d21095e76f
[8] http://cgit.freedesktop.org/~airlied/linux/commit/?id=2f5b4ef15c60bc5292a3f006c018acb3da53737b
[9] http://lists.freedesktop.org/archives/dri-devel/2015-February/076673.html
[10] https://lkml.org/lkml/2015/2/11/271
[11] https://lkml.org/lkml/2015/2/10/511
[12] https://lkml.org/lkml/2015/2/9/648
[13] https://lkml.org/lkml/2014/12/9/165
[14] https://lkml.org/lkml/2015/2/12/632
[15] https://lkml.org/lkml/2015/2/19/423
[16] https://lkml.org/lkml/2015/2/9/411
[17] https://lkml.org/lkml/2015/2/9/533
[18] https://lkml.org/lkml/2015/2/9/124
[19] https://lkml.org/lkml/2015/2/9/534
[20] https://lkml.org/lkml/2015/2/11/70
[21] https://lkml.org/lkml/2015/2/11/113
[22] https://lkml.org/lkml/2015/2/11/631
[23] https://lkml.org/lkml/2015/2/11/624
[24] https://lkml.org/lkml/2015/2/12/492
[25] https://lkml.org/lkml/2015/2/15/120
[26] https://lkml.org/lkml/2015/2/18/2
[27] https://lkml.org/lkml/2015/2/19/8
Anuncio de Linux 4.0: https://lkml.org/lkml/2015/4/12/178

Versiones anteriores

Si te perdiste los cambios de versiones anteriores, puedes consultarlos en sus respectivas entradas:
· Linux 3.14
· Linux 3.15
· Linux 3.16
· Linux 3.17
· Linux 3.18
· Linux 3.19