Linus Torvalds lanzó la versión 5.3.6 de Linux en octubre del año pasado. Como cada nueva versión de la línea principal de desarrollo, la más nueva trae más de diez mil cambios. Algunas actualizan nuevas funciones, otras mejoran las existentes. Si eres un poco curioso, puedes encontrar una breve descripción de las mejoras más importantes a continuación.
- Hacer cosas mientras el núcleo escribe o lee los datos
Linux 5.6 aborda una vulnerabilidad de kernel conocida, porque la nueva versión finalmente trae una infraestructura moderna para leer o escribir datos de forma asincrónica. Con esta «E / S asincrónica» (AIO), los programas pueden iniciar una transferencia y luego hacer otras cosas mientras el núcleo realiza la operación de E / S. Los programas a menudo funcionan de esta manera en Windows porque pueden mejorar el rendimiento y la capacidad de respuesta.
La mayoría del software de Linux, por otro lado, no aprovecha AIO; esto se debe en parte a razones históricas, pero sobre todo a la infraestructura de AIO anterior del núcleo, que tiene todo tipo de dificultades; ha sido criticado durante mucho tiempo, como los comienzos de los artículos «Hacia una E / S asincrónica sin bloqueo» y » Reparación de E / S asincrónica» publicados por la respetada revista en línea de Linux LWN.net hace dos o tres años.
El «io_uring», escrito en gran parte por el empleado de Facebook Jens Axboe, finalmente debería traer a Linux las operaciones de E / S. Para reducir las latencias al mínimo y aprovechar al máximo el potencial de rendimiento del hardware moderno, las aplicaciones de espacio de usuario pueden solicitar encuestas.
Este sondeo constante permite a los programas acceder a los datos leídos más rápido, por ejemplo, que el núcleo normalmente solo recopilaría en paquetes más grandes, porque de lo contrario, generalmente son más eficientes. El desarrollador pudo medir un aumento del rendimiento del 25 al 33 por ciento en los servidores de Facebook.
- Integra módulos de memoria no volátiles más fácilmente
Linux 5.3.6 ahora puede integrar la capacidad de memoria de los módulos de memoria no volátiles (NVDIMM) para que los programas o el núcleo mismo puedan abordar estas áreas como la memoria de trabajo normal. Esta característica, impulsada por los desarrolladores de Intel, elimina la necesidad de escalar aplicaciones para usar la Memoria Persistente (PMEM), que conserva los datos incluso cuando se corta la energía; tales módulos de memoria raros y en su mayoría caros incluyen la memoria persistente Optane DC de Intel, que se lanzó en abril.
- Soporte para el formato de archivo anteriormente central en la lista de inicio
Linus Torvalds hizo los preparativos a mano para eliminar completamente la compatibilidad con el formato de archivo a.out (salida del ensamblador). En los primeros días de Linux, esto se usaba para archivos ejecutables y objetos; Sin embargo, hace más de 25 años, Linux aprendió el formato de vinculación y ejecución abreviada de ELF, que rápidamente se convirtió en el formato dominante y aún mantiene esta posición indiscutiblemente.
Por lo tanto, nadie notó que el código del núcleo para volcados de memoria (volcados de núcleo) de ejecutables a.out ya no funciona correctamente. Por lo tanto, Torvalds ha eliminado rápidamente este código; además, el soporte a.out para núcleos x86 se ha marcado como obsoleto y paralizado, por lo que ya no puede integrarse en las imágenes del núcleo x86.
- Un controlador de gráficos para el chip ARM, dos más en el enfoque
ARM, conocido por los diseños centrales del procesador, contribuyó con el controlador de gráficos Komeda, que admite el Mali D71 y sus sucesores, como explica la documentación. Estos son «procesadores de pantalla», similares a DP500, DP550 y DP650, que Linux ha apoyado durante mucho tiempo con el controlador Mali-DP, también suministrado por ARM. Los núcleos gráficos mencionados están diseñados principalmente para la salida de imágenes; por lo tanto, carecen de una unidad 3D que se haya utilizado en chips de gráficos de PC desde el cambio de milenio.
- Enviar el procesador a dormir adecuadamente
Un gobernador CPUIdle llamado «Timer Events Oriented» (TEO) promete un menor consumo de energía y un mejor rendimiento. Al igual que el «Menú» del regulador CPUIdle, que se ha utilizado en muchos sistemas hasta la fecha, decide cuando está inactivo y con qué profundidad el núcleo envía el procesador principal a dormir para reducir el consumo de energía. Ambos incluso trabajan con una estrategia similar.
Como explica el desarrollador de TEO en el comentario de confirmación, el gobernador del menú hace algunas cosas cuestionables. Sin embargo, esta no es la opinión de un recién nacido corriendo; al igual que TEO, la declaración proviene más bien del mantenedor desde hace mucho tiempo del código de administración de energía en el núcleo, que por lo tanto conoce bien el código del gobernador de menú.
- Nuevas formas de cambiar el kernel en funcionamiento
Con el parcheo en vivo del núcleo (KLP), con el cual se pueden realizar cambios menores en el núcleo (principalmente correcciones de seguridad) durante la operación, un parche colectivo ahora puede reemplazar todos los parches en vivo aplicados anteriormente. Esto es gracias a un enfoque llamado «Reemplazo atómico», que facilita considerablemente el desarrollo de tales «parches vivos acumulativos»; también trae mejoras adicionales, que explica la documentación asociada; el artículo de LWN.net «Parcheo en vivo para vulnerabilidades de la CPU» proporciona más información sobre la motivación de los desarrolladores responsables y la importancia de la formación en LPIC.
- Activa varios módulos de seguridad en paralelo
Se han realizado grandes progresos en los esfuerzos para utilizar los módulos de seguridad de Linux (LSM) como SELinux, AppArmor, Smack en paralelo mediante «apilamiento». Después de trabajar con LSM individuales más pequeños, se ha incorporado el trabajo preparatorio esencial en Linux 5.3.6, a través del cual esto pronto debería ser posible con todos los LSM.
Esto creó el nuevo parámetro de arranquelsm=, que ahora se puede usar para definir los LSM activos cuando se inicia el sistema; se puede especificar un valor predeterminado al construir el kernel utilizando la nueva opción CONFIG_LSM. Con 5.3.6, el apilamiento solo funciona con LSM más pequeños y poco conocidos, como SARA y Landlock; sin embargo, a largo plazo, es posible utilizar las técnicas de sandbox del formato de paquete Snap, que se basa en AppArmor, en un sistema que funciona con SELinux.
Deja una respuesta