Rust for Linux se fusiona oficialmente en Linux 6.1

Controladores Rust en Linux

El código de «Rust for Linux» se fusionó con el árbol principal de Linux 6.1 Git el pasado lunes y este nuevo código inicial de 12 500 líneas solo proporciona infraestructura e integración muy básica, mientras que las futuras solicitudes de extracción agregarán más abstracciones de subsistemas, varios controladores escritos en Rust y más.

La compilación del kernel de Linux con soporte de Rust sigue siendo opcional, ya que el proyecto «Rust para Linux» está dando otro gran paso, pero algunos desarrolladores todavía parecen escépticos acerca de llevar el lenguaje Rust al kernel de Linux.

En un mensaje a la comunidad del kernel Torvalds dijo:

«el árbol tiene una base reciente, pero está fundamentalmente en linux-nextdurante un año y medio. Se actualizó en función de los comentarios de la Cumbre de mantenimiento del kernel.

Miguel es el mantenedor principal y yo ayudo cuando es necesario. Nuestro plan es que el árbol haga la transición a la práctica estándar de no cambiar de base una vez que se complete esta ronda inicial de infraestructura. El contenido es el mínimo absoluto para permitir que el código Rust se integre en el núcleo, con muchas más interfaces (y controladores: NVMe, 9p, GPU M1) en camino”.

Como recordatorio, el proyecto «Rust for Linux» tiene como objetivo introducir un nuevo lenguaje de programación en el núcleo. Rust tiene una propiedad clave que hace que sea muy interesante considerarlo como el segundo lenguaje del núcleo: garantiza que no se produzca ningún comportamiento indefinido. Esto incluye errores de no uso after-free, double frees, data races, etc.

Con ello, casi después de 31 años, se aceptará un segundo idioma para el desarrollo del núcleo. Los debates relacionados giran en torno a la posibilidad de desechar C a favor del lenguaje Rust.

El soporte de Rust ha estado en linux-next durante un año y medio, y el corto log no hace justicia a la cantidad de personas que han contribuido tanto al lado del kernel de Linux como al lado ascendente de Rust para respaldar las necesidades del kernel.

Gracias a estas 173 personas, y a muchas más, que se han involucrado en todo tipo de formas

Torvalds anunció dentro de las listas de correo del Kernel, que el soporte inicial para Rust para Linux se encuentra en aproximadamente 4 áreas y las cuales incluyen:

  • elementos internos del núcleo (expansión kallsyms para símbolos Rust, formato %pA);
  • Infraestructura de Kbuild (reglas de compilación de Rust y scripts de soporte)
  • Rust core documentación y muestras.

Torvalds investigó recientemente un posible problema de seguridad con las primitivas de ejecución especulativa de la lista enlazada del kernel escritas en ANSI C. Fue mientras solucionaba este problema que se dio cuenta de que ‘en C99, el iterador pasado a la lista de macros transversales debe declararse en un ámbito fuera del ciclo sí mismo.

Es a partir de esta observación que surgió su reciente decisión de actualizar el kernel de Linux a C11, cuya estandarización se completó en 2011. Este es el tipo de razones técnicas que podrían justificar el abandono del lenguaje C a favor de Rust por mucho tiempo, ademas del término de desarrollo básico.

El soporte de Rust para el desarrollo del kernel de Linux continúa y se considera «un paso importante para poder escribir controladores en un lenguaje más seguro». El lenguaje Rust, desarrollado por Mozilla Research, es el tipo de lenguaje de programación que utilizan quienes escriben código para sistemas básicos de entrada/salida (BIOS), gestores de arranque, sistemas operativos, etc. tener un interés.

Según algunos observadores expertos, es el futuro de la programación de sistemas en lugar del lenguaje C. De hecho, los expertos opinan que ofrece mejores garantías de seguridad del software que el par C/C++. Por ejemplo, en el líder mundial en computación en la nube AWS, se especifica que elegir Rust para sus proyectos de desarrollo significa agregar la eficiencia energética y el rendimiento de ejecución de C a la ventaja de la seguridad.

Finalmente si estás interesado en poder conocer más al respecto, puedes consultar las listas de correo en el siguiente enlace.

from Linux Adictos https://ift.tt/chKT2b0
via IFTTT

NVK, un controlador Vulkan open source para NVIDIA

NVK-Logo_RGB

NVK es un nuevo controlador Vulkan de código abierto para hardware de gráficos NVIDIA

 

Collabora ha lanzado NVK, un nuevo controlador de código abierto para Mesa que implementa la API de gráficos Vulkan para tarjetas gráficas NVIDIA. El controlador está escrito desde cero utilizando archivos de encabezado oficiales y módulos de kernel abiertos publicados por NVIDIA.

Al desarrollar un nuevo controlador, los componentes básicos del controlador Nouveau OpenGL se usan en algunos lugares, pero debido a las diferencias en los nombres de los archivos de encabezado de NVIDIA y los nombres de ingeniería inversa en Nouveau, el poder reutilizar código es difícil y en su mayor parte fue necesario repensar muchas cosas e implementarlas con cero.

El desarrollo también está en marcha con miras a la creación de un nuevo controlador Vulkan de referencia para Mesa, cuyo código se puede tomar prestado al crear otros controladores.

La compatibilidad con el hardware de NVIDIA en los controladores de código abierto siempre ha faltado un poco. Los controladores nouveau existen, pero a menudo les faltan funciones, tienen errores o simplemente no son compatibles con ciertas tarjetas. Esto se debe a una combinación de factores. A diferencia de los controladores Intel y AMD, la pila de controladores nouveau se ha desarrollado con poca o ninguna documentación oficial o ayuda de NVIDIA. Ocasionalmente brindan pequeños apoyos aquí. Históricamente, se ha centrado principalmente en habilitar nouveau lo suficiente como para que pueda instalar su distribución de Linux, acceder a un navegador web y descargar su pila de controladores patentada.

Para hacer esto, se menciona que durante el trabajo del controlador NVK, se intentó tener en cuenta toda la experiencia disponible en el desarrollo de controladores Vulkan, mantener la base de código en una forma óptima y minimizar la transferencia de código de otros controladores Vulkan, haciendo lo que debería hacerse para un trabajo óptimo y de alta calidad.

El controlador NVK solo ha estado en desarrollo durante unos meses, por lo que su funcionalidad es limitada. El controlador pasa con éxito el 98 % de las pruebas cuando ejecuta el 10 % de las pruebas de Vulkan CTS (Compatibility Test Suite).

En general, la preparación del conductor se estima en un 20-25 % de la funcionalidad de los controladores ANV y RADV. En términos de soporte de hardware, el controlador está actualmente limitado a tarjetas basadas en microarquitecturas Turing y Ampere. Se está trabajando en parches para admitir GPU Kepler, Maxwell y Pascal, pero aún no están listos.

Probablemente, la mayor área de lucha técnica ha sido la conducción adecuada del hardware desde el espacio del kernel. El hardware NVIDIA depende del firmware firmado para todo, desde la visualización hasta la ejecución del trabajo y la administración de energía. Los blobs de firmware que NVIDIA proporcionó en el pasado fueron versiones recortadas que crearon solo para controladores de código abierto.

A largo plazo, se espera que el controlador NVK para tarjetas gráficas NVIDIA alcance un nivel de calidad y funcionalidad similar al controlador RADV para tarjetas AMD. Una vez que el controlador NVK está listo, las bibliotecas compartidas creadas durante su desarrollo se pueden usar para mejorar el controlador Nouveau OpenGL para tarjetas de video NVIDIA.

También se está considerando la posibilidad de usar el proyecto Zink para implementar un controlador OpenGL completo para tarjetas de video NVIDIA que funcione a través de la traducción de llamadas a la API de Vulkan.

A largo plazo, la esperanza es que NVK sea para el hardware de NVIDIA lo que RADV es para el hardware de AMD

Finalmente, para los interesados en el proyecto, se menciona que está siendo desarrollado por un equipo que incluye a Karol Herbst (desarrollador de Nouveau en Red Hat), David Airlie (mantenedor de DRM en Red Hat) y Jason Ekstrand (desarrollador activo de Mesa en Collabora).

En cuanto al código del controlador, deben saber que es de código abierto bajo la licencia MIT. El controlador solo admite GPU basadas en microarquitecturas Turing y Ampere lanzadas desde septiembre de 2018. Si quieres conocer más al respecto, puedes consultar los detalles en el siguiente enlace.

from Linux Adictos https://ift.tt/1eOc2IR
via IFTTT

elementary 7.0 sigue progresando en su desarrollo, y ahora el estancado es 6.1

elementaryOS 7.0

El pasado verano, hubo un momento en el que Danielle Foré aseguraba que el desarrollo de elementary OS 7.0 estaba estancado, pero seguían llegando novedades a 6.1. Ahora, unos tres meses después, las tornas se han cambiado, y prácticamente todas las novedades que ha mencionado este mes guardan relación con la próxima versión del sistema operativo. De hecho, la única novedad que se menciona para 6.1 es que la aplicación Icon Browser ha llegado a AppCenter.

Danielle dice que antes había una aplicación a la que llamaba LookBook que tenía un precio de 10$. Icon Browser viene a sustituir a aquella aplicación, y lo hace sin coste alguno. «Esta herramienta para desarrolladores te muestra todos los iconos del sistema disponibles para usar en tus aplicaciones e incluso puedes buscarlos por descripción. La nueva aplicación ha sido actualizada para usar Gtk 4 y tiene un mejor soporte del estilo oscuro del sistema, además de hacer un mejor trabajo mostrando los tamaños de los iconos relevantes y más«, dice Foré.

Ya se puede probar parte de elementary OS 7.0

El desarrollo a ritmo lento tuvo mucho que ver con un problema con Gala, el gestor de ventanas del proyecto. Muchas de las regresiones han sido resueltas, y sólo queda una que arreglar. Según la CEO de elementary, esto hace que el lanzamiento de elementary OS 7.0 esté mucho más cerca, pero hay que seguir trabajando en ello.

AppCenter sigue recibiendo funciones y parches, preparándose para un lanzamiento muy importante en este centro de software. La próxima versión permitirá ver las notas de un lanzamiento, hasta 5 versiones en total. Además, se soporta la etiqueta <issues> para que los desarrolladores puedan proporcionar enlaces de vuelta con problemas solucionados que previamente han reportado los usuarios. También se ha añadido icono en la barra de estado que muestra una descripción de las tareas que hay actualmente en progreso, aunque más que «descripción» yo diría sencillamente número o cuenta. Por otra parte, el banner con las actualizaciones disponibles está fija en la parte superior.

Danielle dice que los que están usando las versiones preliminares (Early Access Preview) ya pueden instalar y probar la última versión de los ajustes generales con GTK4, para lo que hay que abrir un terminal y escribir sudo apt install io.elementary.settings*. En cuanto a una fecha concreta de llegada de elementary OS 7.0, lo único que han dicho es que estamos más cerca.

from Linux Adictos https://ift.tt/XdfU7F0
via IFTTT

SUSE ha publicado el primer prototipo de ALP

The Adaptable Linux Platform (ALP), la próxima generación de SUSE

ALP pretende requerir la menor cantidad de intervención posible

Los desarrolladores del proyecto SUSE dieron a conocer mediante una publicación, el primer prototipo de ALP (Adaptable Linux Platform), posicionado como una continuación del desarrollo de la distribución SUSE Linux Enterprise.

La diferencia clave del nuevo sistema es la división del marco central de la distribución en dos partes: un «sistema operativo host» simplificado para ejecutarse sobre el hardware y una capa de soporte de aplicaciones enfocada en ejecutarse en contenedores y máquinas virtuales.

Sobre ALP

La idea es desarrollar en el «sistema operativo host» el entorno mínimo necesario para admitir y administrar el hardware, y ejecutar todas las aplicaciones y los componentes del espacio del usuario no en un entorno mixto, sino en contenedores separados o máquinas virtuales que se ejecutan sobre el «sistema operativo host» y aislados unos de otros. Esta organización permitirá a los usuarios centrarse en las aplicaciones y los flujos de trabajo abstractos del hardware y el entorno del sistema de bajo nivel.

La idea detrás de ALP es permitir que los usuarios se concentren en sus cargas de trabajo mientras se abstraen del hardware y la capa de aplicación. Con el uso de máquinas virtuales y tecnologías de contenedores, Adaptable Linux Platform permite que las cargas de trabajo sean independientes del flujo de código.

El primer prototipo del ALP se llama “Les Droites”.

El producto SLE Micro, basado en los desarrollos del proyecto MicroOS, se utiliza como base para el «sistema operativo host«. Para la gestión centralizada, se ofrecen los sistemas de gestión de configuración Salt (preinstalado) y Ansible (opcional), mientras que Podman y K3s (Kubernetes) están disponibles para ejecutar contenedores aislados. Los componentes del sistema en contenedores incluyen yast2, podman, k3s, cockpit, GDM (GNOME Display Manager) y KVM.

De las características del entorno del sistema, se menciona el uso predeterminado de cifrado de disco (FDE, Full Disk Encryption) con la capacidad de almacenar claves en el TPM, además de que la partición root se monta en modo de solo lectura y no cambia durante la operación.

El entorno utiliza el mecanismo de instalación atómica de actualizaciones, a diferencia de las actualizaciones atómicas basadas en ostree y snap utilizadas en Fedora y Ubuntu, ALP utiliza un administrador de paquetes normal y el mecanismo de instantáneas en el sistema de archivos Btrfs en lugar de crear imágenes atómicas separadas e implementar una infraestructura de entrega adicional.

En cuanto a la parte de los conceptos básicos de ALP, se mencionan los siguientes:

  • Minimización de la intervención del usuario (zero-touch): implica la automatización de los principales procesos de mantenimiento, despliegue y configuración.
  • Mantenimiento automático de la seguridad y búsqueda del sistema al día (autoactualización): proporciona un modo configurable para la instalación automática de actualizaciones (por ejemplo, puede habilitar la instalación automática de solo correcciones para vulnerabilidades críticas o volver a la confirmación manual de la instalación de actualizaciones). Se admiten parches en vivo para actualizar el kernel de Linux sin reiniciar o suspender el trabajo.
  • Aplicación automática de optimizaciones (autoajuste) y mantenimiento de la capacidad de supervivencia del sistema (autorreparación): el sistema captura el último estado estable y después de aplicar actualizaciones o cambiar la configuración en caso de detección de anomalías, problemas o violaciones de comportamiento, se transfiere automáticamente al estado anterior mediante instantáneas Btrfs.
  • Pila de software multiversión: aislá componentes en contenedores le permite usar diferentes versiones de herramientas y aplicaciones al mismo tiempo. Por ejemplo, puede ejecutar aplicaciones que dependen de diferentes versiones de Python, Java y Node.js separando las dependencias incompatibles. Las dependencias base vienen en forma de conjuntos BCI (Imágenes de contenedor base). El usuario puede crear, actualizar y eliminar pilas de software sin afectar otros entornos.

A diferencia de SUSE Linux Enterprise, el desarrollo de ALP se lleva a cabo inicialmente mediante un proceso de desarrollo abierto, en el que las compilaciones intermedias y los resultados de las pruebas están disponibles públicamente para todos, lo que permite a las partes interesadas realizar un seguimiento del trabajo en curso y participar en el desarrollo.

Finalmente si estás interesado en poder conocer más al respecto, puedes consultar los detalles en el siguiente enlace,

from Linux Adictos https://ift.tt/x1dsAt9
via IFTTT