Con 6.2, Linux ya soporta oficialmente el Apple Silicon

Linux 6.2 ya soporta el Apple Silicon

El pasado domingo, Linus Torvalds lanzó Linux 6.2, la última versión estable del kernel que desarrolla. Incluyó muchas novedades, y en una larga lista es fácil perderse algunos detalles que pueden ser más importantes de lo que en un principio se esperaba. Hay un punto que dice «Soporte para más Qualcomm Snapdragon SoCs, así como el Apple M1 Pro/Ultra/Max ha sido ahora llevado a mainline. Con el impulso de habilitación de Apple Silicon también se ha fusionado el nuevo controlador CPUFreq«, y esto es lo que hay que examinar con más detenimiento.

Apple presentó su propio chip Apple Silicon hace ahora unos tres años. Linus Torvalds se alegró de que se diera un paso que es una evolución natural similar a la de pasar de 32bit a 64bit o, también en la manzana, de Power PC a Intel. El soporte inicial llegó en Linux 5.13, pero 6.2 es la primera versión que llega con soporte «mainline» para dispositivos M1, como el M1 Pro, M1 Max y M1 Ultra.

Instalar Linux en Apple Silicon, posible sin trucos gracias a Linux 6.2

En teoría, esto hará que sea posible instalar Linux en dispositivos Apple Silicon sin trucos ni tener que tirar de distribuciones específicamente preparadas para ello, como Asahi Linux. Aún así, el soporte, aunque oficial, es aún un trabajo que tiene que seguir dando pasos adelante; es decir, si fuera una página web, sería una de esas que podríamos usar, pero en algunos apartados veríamos un cartel de que está «En Construcción». Lo importante aquí es que la llegada de todo esto tiene la etiqueta de «mainline», que es, digamos, la rama principal.

Está claro que muchos usuarios de un Mac quieren tener macOS en su sistema operativo, y también serán pocos los que querrán hacer inicio dual porque los cambios realizados en la partición Linux no son fáciles de revertir para usuarios no avanzados. Pero la posibilidad ya está ahí, y también facilitará las cosas para instalar Linux en una máquina virtual.

Si algún lector generoso decide regalarme un Mac con Mx, prometo hacer todas las pruebas necesarias y publicarlas aquí en LXA 😊.

Linux 6.2 ya está disponible en kernel.org, y en algunas distribuciones Rolling Release.

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

NetBeans 17 añade soporte para Java 19 y compatibilidad con JDK 20

apache-netbeans

NetBeans es un entorno de desarrollo integrado libre, hecho principalmente para el lenguaje de programación Java

La Apache Software Foundation dio a conocer recientemente el lanzamiento de la nueva versión de Apache NetBeans 17, en la cual se han realizado una gran cantidad de cambios y mejoras.

Para quienes desconocen de NetBeans, deben saber que este es un IDE bastante popular que proporciona soporte para lenguajes de programación Java SE, Java EE, PHP, C/C ++, JavaScript y Groovy.

Principales novedades de NetBeans 17

En esta nueva versión que se presenta de NetBeans 17, se destaca que se agregó el soporte para la plataforma Jakarta EE 10 y se mejoró el soporte para algunas funciones nuevas de Java 19, como la coincidencia de patrones en expresiones de «switch».

Otro de los cambios que se destaca es que se ha preparado para compatibilidad con JDK 20, asi como tambien que se agregaron sugerencias adicionales para el código Java y que el compilador Java integrado de NetBeans nb-javac (javac modificado) se ha actualizado a la versión 19.0.1.

Ademas de ello, en esta nueva versión de NetBeans 17, se ha mejorado el soporte para el sistema de compilación Gradle, ya que se proporcionó acceso a la plataforma Java para proyectos que no son de Java Gradle.

Tambien se ha mejorado el soporte para el sistema de compilación Maven, tambien se ha habilitado el procesamiento de seguimientos de pila, la presentación de Java AST al depurar se ha mejorado junto con la indexación de textos fuente con errores.

Por otra parte, el entorno de proyecto web ha mejorado la compatibilidad con CSS, pues ahora proporciona búsquedas de propiedades de CSS que no distinguen entre mayúsculas y minúsculas y coincidencias optimizadas al rellenar consultas de CSS.

El editor de código ofrece la posibilidad de cerrar todos los documentos de la lista a la vez. ANTLRv4 Runtime se ha actualizado a la versión 4.11.1 y se ha dado soporte inicial para ANTLR4 Lexer, al que se ha traducido el código para trabajar con formatos ANTLR y TOML.

De los demás cambios que se destacan de la nueva versión:

  • Se reelaboraron algunas configuraciones del historial de versiones.
  • Se agregó soporte para la etiqueta javadoc @summary.
  • Implementación de detección y autoconfiguración de proxy.
  • La API de herramientas de Gradle se actualizó a la versión 8.0-rc-1.
  • Las opciones se han limpiado en la interfaz.
  • Implementación de detección y autoconfiguración de proxy.
  • Se agregó una sugerencia para actualizar las dependencias.
  • Versiones actualizadas de maven 3.8.7 y exec-maven-plugin 3.1.0.
  • Indexación local permitida al cargar índices externos.
  • El entorno de PHP es compatible con las nuevas funciones de PHP 8.2, como clases de solo lectura, tipos null, false y true, y definición de constantes en rasgos.
  • Soporte mejorado para métodos en tipos de enumeración.
  • Se agregó soporte para perfiles OCI (Oracle Cloud Infrastructure).
  • Se ha implementado soporte para Jakarta EE y Java EE para Tomcat y TomEE.
  • Cuando se ejecuta en Linux, el modo de representación de texto de subpíxeles de KDE se detecta automáticamente.

Finalmente si quieres conocer más al respecto de esta nueva versión, puedes consultar los detalles en el siguiente enlace.

¿Cómo instalar Apache NetBeans 17 en Linux?

Para aquellos que quieran obtener esta nueva versión deben descargar el código fuente de la aplicación, la cual podrán obtener desde el siguiente enlace.

Una vez que tengas todo instalado entonces, descompriman el archivo recién descargado en un directorio de su agrado.

Y desde la terminal vamos a ingresar a este directorio y luego ejecuten:

ant

Para construir el IDE de Apache NetBeans. Una vez construido puedes ejecutar el IDE escribiendo

./nbbuild/netbeans/bin/netbeans

También existen otros métodos de instalación con los cuales se pueden apoyar, uno de ellos es con ayuda de los paquetes Snap.

Solo deben contar con el soporte para poder instalar este tipo de paquetes en su sistema. Para realizar la instalación por este método deben teclear el siguiente comando:

sudo snap install netbeans --classic

Otro de los métodos es con ayuda de los paquetes de Flatpak, por lo que deben contar con el soporte para instalar estos paquetes en su sistema.

El comando para realizar la instalación es el siguiente:

flatpak install flathub org.apache.netbeans

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

Gluon, una biblioteca IMAP open source de la mano de Proton Mail

gluon-imap-library

Gluon busca cerrar esa brecha y superar las limitaciones en las bibliotecas IMAP de código abierto existentes

La empresa suiza Proton AG, que desarrolla los servicios Proton Mail y Proton VPN, presento recientemente la librería Gluon IMAP, diseñada para crear servidores IMAP propios.  La biblioteca es destacable, ya que admite el protocolo IMAP4rev1 (RFC-3501) y está incluida en la nueva versión del servicio Proton Bridge.

Durante el desarrollo, la atención se centra en la corrección de la implementación, la estabilidad, la fiabilidad, la facilidad de uso para los desarrolladores y el alto rendimiento.

Sobre Gluon IMAP

Se menciona que la razón para crear una nueva implementación del protocolo IMAP es el deseo de obtener una solución confiable y de alto rendimiento que pueda funcionar con buzones grandes. Según los desarrolladores de Proton Mail, las bibliotecas IMAP de código abierto existentes experimentaron problemas de mantenimiento o no escalaron.

Nuestro primer paso para escribir Gluon fue generar un analizador IMAP a partir de la sintaxis dada en RFC3501(nueva ventana). Usamos ANTLR4(nueva ventana), un popular generador de analizadores, para crear un analizador que pudiera analizar comandos y respuestas IMAP de acuerdo con la especificación. Esto nos permitió centrarnos en implementar la lógica del protocolo IMAP en lugar de analizar y validar la entrada.

Gluon también funciona correctamente con múltiples clientes al mismo tiempo, por ejemplo, cuando un usuario está viendo el correo a través de la interfaz web y usa un cliente de correo separado al mismo tiempo.

La complejidad de organizar dicho trabajo se debe al hecho de que los clientes IMAP generalmente usan los números de secuencia de los mensajes en el buzón para identificar los mensajes de correo, pero cuando un cliente elimina un mensaje, los números de secuencia cambian y el otro cliente debe tomar en cuenta este cambio.

En tal situación, el servidor envía una notificación de cambio a los clientes, pero antes de acusar recibo de la notificación, el servidor debe asegurarse de que los números de mensajes en los comandos transmitidos se interpreten correctamente.

El correo electrónico debe ser confiable, pero también debe ser de alto rendimiento, especialmente porque el tamaño de la bandeja de entrada típica ha crecido significativamente durante la última década. Muchas implementaciones de IMAP de código abierto tienden a optimizar para una y no para la otra, lo que genera errores o compensaciones bastante importantes.

Para resolver este problema, así como para organizar el procesamiento de varias conexiones paralelas desde un cliente, Gluon implementa el mecanismo de instantáneas. La esencia de este mecanismo es que Gluon asigna su propia instantánea de buzón de correo a cada cliente.

Cada instantánea refleja una vista única del buzón asociado con el cliente que conserva su estado y garantiza que los números de secuencia sigan siendo los mismos, independientemente de las acciones realizadas por otros clientes.

Gluon realiza un seguimiento de dos estados de buzón: persistente y de sesión. El estado persistente refleja la posición real de los mensajes en el buzón seleccionado, mientras que el estado de sesión refleja la vista de cada cliente del contenido del buzón.

Para sincronizar el estado por sesión entre varios clientes conectados, Gluon utiliza un sistema de «respondedores». Estos son tipos que encapsulan un cambio de estado y, cuando se ejecutan, se convierten en respuestas IMAP. 

Cuando un cliente realiza una acción (como marcar un mensaje como leído) que cambiaría el estado de otro cliente, el backend crea un respondedor para la acción y lo empuja al estado afectado. El estado afectado permanece sin cambios hasta que se ejecuta el respondedor, momento en el que se actualiza y se envía una respuesta IMAP correspondiente al cliente. 

Este enfoque le permite a Gluon administrar de manera eficiente el estado por sesión al tiempo que garantiza la coherencia entre múltiples clientes.

Finalmente, se menciona que el estado IMAP se almacena en un DBMS que admite SQL. Las pruebas beta del servicio Proton Mail Bridge, traducido a Gluon, mostraron un aumento significativo (1000 %) en la velocidad de trabajo con IMAP. El código de la biblioteca está escrito en Go y se distribuye bajo la licencia MIT.

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/pk8LOjv
via IFTTT

Llega la nueva versión de los controladores Mesa 23.0.0

Mesa Drivers

Mesa es una biblioteca gráfica de código abierto, desarrollada que proporciona una implementación genérica de OpenGL

 

Se dio a conocer el lanzamiento de la nueva versión de la implementación gratuita de la API OpenGL y Vulkan, «Mesa 23.0.0», siendo esta la primera versión de la rama Mesa 23.0.0 tiene un estado experimental: después de la estabilización final del código, se lanzará una versión estable 23.0.1.

En Mesa 23.0, la compatibilidad con la API de gráficos Vulkan 1.3 está disponible en anv para GPU Intel, radv para GPU AMD, para GPU Qualcomm y en modo emulador (vn). La compatibilidad con Vulkan 1.1 se implementa en el rasterizador de software lavapipe (lvp) y Vulkan 1.0 en el controlador v3dv (GPU Broadcom VideoCore VI de Raspberry Pi 4).

Principales novedades de Mesa 23.0.0

En esta nueva versión que se presenta de Mesa 23.0.0, RADV Vulkan mejora la compatibilidad con GPU basadas en RDNA3 (Radeon RX 7900) y agrega cambios relacionados con el trazado de rayos y el uso de bibliotecas de canalización (pipeline). Para las tarjetas AMD basadas en la arquitectura RDNA2, la compatibilidad con sombreadores de malla (VK_EXT_mesh_shader) está habilitada de manera predeterminada.

Otro de los cambios que se destaca es en el controlador Nouveau que agrega el soporte inicial para la GPU NVIDIA GA102 (RTX 30) basada en la arquitectura Ampere, ademas de que los controladores RADV y Turnip implementan características adicionales relacionadas con la extensión VK_EXT_dynamic_state3.

Ademas de ello, se destaca que las capacidades del controlador asahi OpenGL para la GPU Apple AGX utilizada en los chips Apple M1 y M2 se han ampliado considerablemente.

Tambien se destaca el soporte mejorado para tarjetas gráficas discretas Intel DG2-G12 (Arc Alchemist) y GPU Meteor Lake en el controlador ANV Vulkan (Intel) y el controlador Iris OpenGL.

Por otra parte, el controlador virgl (GPU virtual Virgil3D para QEMU/KVM) ha mejorado la compatibilidad con la codificación de video acelerada por hardware, ademas de que se han resuelto los problemas que ocurrían en Rise of the Tomb Raider’s Ambient Occlusion, Minecraft, Battlefield , Hi-Fi Rush y se solucionó un problema que causaba que la salida se interrumpiera en las videollamadas de Zoom en sistemas con el controlador Iris.

En cuanto al soporte añadido para extensiones OpenGL se mencionan las siguientes:

  • GL_ARB_clip_control para panfrost
  • GL_ARB_texture_filter_anisotropic para panfrost, asahi
  • GL_ARB_occulsion_query2 para asahi
  • GL_ARB_shader_stencil_export para asahi
  • GL_ARB_draw_instanciado para asahi
  • GL_ARB_instanced_ararys para asahi
  • GL_ARB_seamless_cube_mapa para asahi
  • GL_NV_conditional_render para asahi
  • GL_ARB_texture_mirror_clamp_to_edge para asahi
  • Se agregó soporte para las extensiones de Vulkan:
  • VK_EXT_descriptor_buffer para RADV, nabo
  • VK_AMD_shader_early_and_late_fragment_tests para RADV
  • VK_AMD_shader_explicit_vertex_parameter para RADV/RDNA3
  • VK_EXT_swapchain_colorspace para RADV, ANV, Nabo
  • VK_KHR_shader_integer_dot_product para V3DV
  • VK_KHR_present_wait para ANV, RADV, Nabo
  • VK_KHR_push_descriptor para Venus
  • VK_KHR_pci_bus_info para Venus

Cabe mencionar que esta nueva versión de Mesa también proporciona compatibilidad completa con OpenGL 4.6 para los controladores 965, iris (Intel), radeonsi (AMD), zink y llvmpipe.

La compatibilidad con OpenGL 4.5 está disponible para las GPU AMD (r600), NVIDIA (nvc0) y Qualcomm Adreno (freedreno), OpenGL 4.3 para virgl ( GPU virtual Virgil3D para QEMU/KVM) y OpenGL 4.2 para el controlador d3d12 (capa para ejecutar OpenGL sobre DirectX 12).

Finalmente si estás interesado en conocer más al respecto sobre esta nueva versión de los controladores Mesa, puedes consultar los detalles en el siguiente enlace.

¿Cómo instalar los drivers de video Mesa en Linux?

Los paquetes de Mesa se encuentran en todas las distribuciones de Linux, por lo que su instalación puede realizarse ya sea descargando y compilando el código fuente (toda la información al respecto aquí) o de una forma relativamente sencilla, la cual depende de la disponibilidad dentro de los canales oficiales de tu distribución o de terceros.

Para los que son usuarios de Ubuntu, Linux Mint y derivados pueden añadir el siguiente repositorio en donde los controladores son actualizados de manera rápida.

sudo add-apt-repository ppa:kisak/kisak-mesa -y

Ahora vamos a actualizar nuestro listado de paquetes y repositorios con:

sudo apt update

Y finalmente podemos instalar los drivers con:

sudo apt upgrade

Para el caso de los que son usuarios de Arch Linux y derivados estos los instalamos con el siguiente comando:

sudo pacman -S mesa mesa-demos mesa-libgl lib32-mesa lib32-mesa-libgl

Para quienes sean usuarios de Fedora 32 pueden utilizar este repositorio, por lo que deben de habilitar corp con:

sudo dnf copr enable grigorig/mesa-stable

sudo dnf update

Finalmente, para los que son usuarios de openSUSE, pueden instalar o actualizar tecleando:

sudo zypper in mesa

from Linux Adictos https://ift.tt/5RacuU8
via IFTTT