D8VK, una implementación de Direct3D 8 para DXVK

D8VK

D8VK es una implementación de Direct3D 8 que permite ejecutar aplicaciones 3D en Linux usando Wine.

Hace pocos días se dio a conocer el lanzamiento de la primera versión estable del proyecto «D8VK 1.0», que ofrece una implementación de la API de gráficos Direct3D 8 que funciona a través de la traducción de llamadas a la API de Vulkan y permite usar Wine o Proton para ejecutar aplicaciones y juegos 3D desarrollados para Windows en Linux que están vinculados a la API de Direct3D 8.

Como muchos de ustedes sabrán en Linux contamos con VKD3D-Proton para la traducción de Direct3D 12 en Vulkan, ademas de que tambien contamos con Steam Play que usa DXVK para implementar las API de Direct3D 9/10/11 sobre Vulkan, pero para la antigua implementación de Direct3D 8, no había algo en concreto.

Es por ello que nace D8VK, que es la implementación de la antigua API de Microsoft Direct3D 8 sobre Vulkan para mejorar la experiencia de los juegos más antiguos.

D8VK 1.0 está marcado como el primer lanzamiento del proyecto, adecuado para uso y probado en cientos de juegos. En comparación con los proyectos WineD3D y d3d8to9, que utilizan la traducción de Direct3D 8 a OpenGL y Direct3D 9, el proyecto D8VK demuestra un mejor rendimiento, estabilidad y compatibilidad con los juegos.

Por ejemplo, cuando se probó en el paquete 3DMark 2001 SE, el proyecto D8VK obtuvo 144660 puntos, la combinación d3d8to9 y dxvk – 118033 y WineD3D – 97134.

El lanzamiento de D8VK 1.0 presenta d3d8.dll(d3d9 está vinculado estáticamente), asi como tambien un nuevo procesador por lotes personalizado para ciertos juegos con comportamiento indefinido.

Ademas de ello, tambien se destaca que admite la anulación de la declaración del sombreador de vértices para juegos con un comportamiento indefinido y que los búferes de vértices ahora se pueden almacenar en el grupo administrado automáticamente para mejorar el rendimiento y evitar problemas de orden de escritura.

Tambien se destaca que se implementa la compatibilidad con la compilación en MSVC asi como tambien que admite consultas de GetInfo y que los tipos de bloque de estado ahora son compatibles.

De los demás cambios que se destacan:

  • Tamaños de descripción de superficie correctos según el formato
  • Permitir preservar la instalación actual de Proton
  • Innumerables configuraciones específicas del juego y características y ajustes menores
  • Se corrigió un error por el que CreateTexture intentaba envolver una textura nula
  • Se corrigieron los backbuffers que no se almacenan en caché ni se hace referencia al dispositivo propietario
  • Texturas, flujos e índices fijos que no se borran al reiniciar
  • Ubicación fija de Direct3DCreate8 en d3d8.def
  • Se corrigió el conteo de referencias para los objetivos de representación, las plantillas de profundidad y las texturas.
  • Se corrigieron los sombreadores de píxeles nulos que no se recordaban
  • Se corrigieron los objetivos de representación y las plantillas de profundidad que no se almacenan en caché
  • Se corrigió el error si el cliente intenta habilitar SWVP en un dispositivo de hardware
  • Dispositivos fijos que no se liberan
  • Se corrigió la falla de segmento en el dispositivo de liberación con texturas enlazadas

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

Debes saber que el código del proyecto está escrito en lenguaje C++ y se distribuye bajo la licencia Zlib. El código base del proyecto DXVK con la implementación de Direct3D 9, 10 y 11 sobre Vulkan se utilizó como base para el desarrollo.

¿Como instalar D8VK en Linux?

Para aquellos que estén interesados en poder instalar D8VK, deben saber que su implementación es bastante sencilla y no requiere de mucho. Basta con abrir una terminal para poder obtener la nueva versión. En ella vamos a teclear el siguiente comando:

git clone https://github.com/AlpyneDreams/d8vk.git

O si prefieres realizar la descarga desde tu navegador (solo debes descomprimir el archivo y posicionarte en una terminal dentro de la carpeta) lo puedes hacer dando clic en este enlace.

Hecho esto, ahora vamos a ingresar al directorio con:

cd d8vk

Y procedemos a realizar la implementación de d8vk según sea el caso. Para implementarlo con Wine, debemos teclear lo siguiente:

./setup_d3d8.sh install --no-proton

O en el caso de querer implementarlo con Proton, el comando que deben teclear es el siguiente:

./setup_d3d8.sh install

Si quieres conocer más al respecto sobre su uso o instalación para casos particulares, puedes consultar el siguiente enlace.

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

AlmaLinux 9.2 ya fue liberada y esas son sus novedades

AlmaLinux 9.2

Turquoise Kodkod es el nombre clave de la nueva versión de AlmaLinux 9.2

Tras el lanzamiento oficial de Red Hat Enterprise Linux 9.2, se dio a conocer el lanzamiento de la nueva versión de la distribución de linux, «AlmaLinux 9.2«, con nombre clave «Turquoise Kodkod», llega sincronizada con la nueva versión de RHEL y que contiene todos los cambios propuestos para esta versión.

Para aquellos que desconocen de la distribucion, deben saber que AlmaLinux fue fundada por CloudLinux en respuesta al final prematuro del soporte para CentOS 8 por parte de Red Hat (las actualizaciones para CentOS 8 se suspendieron a fines de 2021, y no en 2029, como esperaban los usuarios).

El proyecto es supervisado por una organización independiente sin fines de lucro, la Fundación OS de AlmaLinux, que se creó para desarrollarse en un entorno neutral impulsado por la comunidad utilizando un modelo de gobierno similar al del Proyecto Fedora.

Principales novedades de AlmaLinux 9.2

Tal y como se menciono anteriormente, AlmaLinux totalmente compatible binariamente con Red Hat Enterprise Linux y se puede usar como reemplazo de RHEL 9.2 y CentOS 9 Stream. Los cambios se reducen al cambio de marca, la eliminación de paquetes específicos de RHEL.

De los cambios que se destacan de este nuevo lanzamiento de AlmaLinux 9.2 se destaca la inclusión del Kernel de Linux 5.14 con el cual se proporciona rendimiento, estabilidad y soporte mejorados para hardware moderno, ademas de que se introduce mejoras y funciones a la base de la nube híbrida y ayuda a entregar cargas de trabajo, aplicaciones y servicios para múltiples entornos de forma más rápida y con menos esfuerzo.

Ademas de ello, se destaca que AlmaLinux 9.2 incluye actualizaciones de seguridad, como la función del sistema realmd, un perfil SCAP y contenido de Ansible para verificaciones mejoradas del sistema para simplificar la gestión de la seguridad y el cumplimiento.

Tambien se destaca que los desarrolladores continúan trabajando en mejorar el rendimiento, la seguridad y la facilidad de uso, ya que en este lanzamiento se añadió el soporte para tamaños de página de 64k para la arquitectura ARM, que permite la implementación del sistema operativo en más hardware y maximiza el rendimiento de grandes cargas de trabajo de conjuntos de datos, capacidades ampliadas de roles del sistema para permitirle automatizar aún más tareas de administración.

Por otra parte, se destacan las mejoras en los flujos de aplicaciones proporcionan compiladores, lenguajes de tiempo de ejecución, bases de datos y actualizaciones del servidor web.

En la consola web tambien se han realizado mejoras, ya que se implementan los nuevos roles del sistema facilitan la automatización y estandarización de los sistemas. En cuanto a los contenedores, las nuevas capacidades permiten el desarrollo y la gestión de implementaciones en contenedores con mayor facilidad.

De las demás actualizaciones y cambios que se destacan de este nuevo lanzamiento:

  • Python 3.11
  • nginx 1.22
  • PostgreSQL 15
    Componentes actualizados:
  • Git 2.39.1
  • Git LFS 3.2.0
  • GCC 11.3.1
  • glibc 2.34
  • binutils 2.35.2
    Actualizaciones de herramientas de rendimiento y depuradores:
  • GDB 10.2
  • Valgrind 3.19
  • SystemTap 4.8
  • Dyninst 12.1.0
  • elfutils 0.188
    Herramientas de monitoreo de rendimiento actualizadas:
  • PCP 6.0.1
  • Grafana 9.0.9
    Actualizaciones del compilador:
  • GCC Toolset 12
  • LLVM Toolset 15.0.7
  • Rust Toolset 1.66
  • Go Toolset 1.19.6
    Actualizaciones de seguridad:
  • La biblioteca de comunicaciones seguras de OpenSSL se actualizó a la versión 3.0.7.
  • Los paquetes de espacio de usuario de SELinux se actualizaron a la versión 3.5.
  • Keylime fue actualizado a la versión 6.5.2
  • OpenSCAP se modificó a la versión 1.3.7.
  • La Guía de seguridad de SCAP se modificó a la versión 0.1.66.
  • Se agregó una nueva regla para la terminación de sesiones inactivas a SCAP.
  • Clevis ahora acepta tokens externos.
  • El registro cifrado con TLS de Rsyslog ahora admite varios archivos de CA.
  • Los privilegios de Rsyslog están limitados para minimizar la exposición a la seguridad.
  • El marco fapolicyd ahora proporciona filtrado de la base de datos RPM.
  • El sistema ahora usa el certificado AlmaLinux EV Code Sign Secure Boot actualizado.

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

Descargar y obtener AlmaLinux 9

Las imágenes de instalación están preparadas para las arquitecturas x86_64, ARM64, ppc64le y s390x en forma de arranque (804 MB), mínimo (1,7 GB) e imagen completa (8,8 GB). Más adelante se formarán compilaciones en vivo con GNOME, KDE, MATE y Xfce, así como imágenes para placas Raspberry Pi, contenedores y plataformas en la nube.

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

Fueron detectadas dos vulnerabilidades en el Kernel de Linux que permitían aún usuario elevar sus privilegios 

vulnerabilidad

Si se explotan, estas fallas pueden permitir a los atacantes obtener acceso no autorizado a información confidencial o, en general, causar problemas

Hace pocos días se dio a conocer la noticia de que fueron detectadas dos vulnerabilidades en los subsistemas del kernel de Linux, Netfilter e io_uring, las cuales permiten a un usuario local elevar sus privilegios en el sistema.

La primera de ellas es la vulnerabilidad (CVE-2023-32233) que fue detectada en el subsistema Netfilter y provocada por acceso a memoria use-after-free en el módulo nf_tables, que asegura el funcionamiento del filtro de paquetes nftables.

Este fallo se debe a que netfilter nf_tables permite actualizar su configuración por solicitudes lotes que agrupan múltiples operaciones básicas en transacciones atómicas.

El problema se ha reproducido en varias versiones del kernel de Linux, incluyendo Linux 6.3.1 (estable actual) y la vulnerabilidad se puede aprovechar enviando solicitudes especialmente diseñadas para actualizar la configuración de nftables. Se menciona que el ataque requiere acceso a nftables, que se pueden obtener en un espacio de nombres de red separado si tiene los derechos CLONE_NEWUSER, CLONE_NEWNS o CLONE_NEWNET (por ejemplo, si puede ejecutar un contenedor aislado).

Sobre este fallo, el investigador que identificó el problema prometió posponer por una semana la publicación de información detallada y un ejemplo de un exploit funcional que proporciona un shell root.

En un escenario específico, una solicitud de lote no válida puede contener una operación que elimina implícitamente un conjunto anónimo nft existente seguido de otra operación que intenta actuar sobre el mismo conjunto nft anónimo después de que se elimine. En el escenario anterior, un ejemplo de la operación anterior es eliminar una regla nft existente que utiliza un conjunto anónimo nft. Y un ejemplo de esta última operación es un intento para eliminar un elemento de ese conjunto anónimo de nft después de que el conjunto sea eliminado alternativamente, la última operación podría incluso intentar eliminar explícitamente ese conjunto anónimo de nft nuevamente. 

Como ya se menciono al inicio, esto fue hace ya varios días y el exploit y la información ya fue divulgada. El exploit asi como los detalles de este lo pueden consultar en el siguiente enlace.

El segundo fallo detectado, fue la vulnerabilidad (CVE-2023-2598) en la implementación de la interfaz de E/S asíncrona io_uring incluida en el kernel de Linux desde la versión 5.1.

El problema se debe a un error en la función io_sqe_buffer_register, que permite el acceso a la memoria física fuera de los límites de un búfer asignado estáticamente. El problema aparece solo en la rama 6.3 y se solucionará en la próxima actualización 6.3.2.

Se menciona que la idea detrás de la confirmación original es que, en lugar de dividir grandes páginas que están registradas como un búfer en entradas bvec individuales, se puede tener una sola entrada bvec para todas las partes de la página que están en el búfer. En concreto, si todas páginas en el mapa de búfer utilizan la primera estructura de página y la longitud del búfer en una sola entrada bvec en lugar de mapeando cada página individualmente.

Entonces, bvec se extenderá mucho más allá de la página única que en realidad es permitido tocar. Más tarde, IORING_OP_READ_FIXED y IORING_OP_WRITE_FIXED nos permite leer y escribir en el búfer (es decir, la memoria apuntada a por el bvec) a voluntad. Esto permite el acceso de lectura/escritura a la física memoria detrás de la única página que realmente tenemos.

En la publicación de la vulnerabilidad se menciona los pasos de reproducción de error:

1. Crear un memfd
2. Colocar en error una sola página en ese descriptor de archivo
3. Usar MAP_FIXED para mapear esta página repetidamente, en ubicaciones consecutivas
4. Registrar toda la región que acaba de llenar con esa página como
un búfer fijo con IORING_REGISTER_BUFFERS
5. Usar IORING_OP_WRITE_FIXED para escribir el búfer en algún otro archivo
(lectura OOB) o IORING_OP_READ_FIXED para leer datos en el búfer (
escritura OOB).

Finalmente cabe mencionar que ya se encuentra disponible  un prototipo de exploit funcional (CVE-2023-2598) para realizar pruebas, lo que le permite ejecutar código con privilegios de kernel.

La vulnerabilidad (CVE-2023-32233) se solucionó en la actualización 6.4-rc y se puede seguir la corrección de la vulnerabilidad en las distribuciones en las páginas: Debian, Ubuntu, Gentoo, RHEL, Fedora, SUSE/openSUSE y Arch.

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

OpenAI se cansa de imitadores: lanza app de ChatGPT para iOS y pronto llegará también a Android

ChatGPT para iOS

Desde que ChatGPT empezó a coger fama, el chatbot de OpenAI está en todas partes. Lo encontramos en buscadores, como Bing o You.com, en bots, en Linux lo tenemos en Bavarder (enlace a Flathub) e incluso hay algunos para Telegram, en extensiones para Visual Studio Code y también en servicios como Perplexity. También hay un montón de opciones en las diferentes tiendas de aplicaciones para móviles, y sus desarrolladores están ganando miles de euros.

La lógica nos decía que ChatGPT debía existir como aplicación móvil oficial, pero no fue hasta ayer 18 de mayo que OpenAI anunció su llegada al App Store de iOS. De momento sólo se puede descargar en EEUU, por lo que no he podido comprobar si se puede descargar también para el iPad aunque sea la versión del iPhone ampliada. La mayoría de apps para iPhone se pueden instalar y usar de esta manera en el iPad, pero también hay otras, como WhatsApp, que no.

ChatGPT para móviles

Sobre su funcionamiento y leyendo la nota oficial, lo que ofrece ChatGPT para móviles es lo mismo que la versión web, pero se abrirá en una aplicación propia que funciona mejor que una webapp que depende del navegador web. Como la versión oficial, es gratuita, está en inglés, aunque el chatbot puede responder en español, sincroniza el historial si está activado, y no muestra publicidad. Los de la versión Plus ya pueden acceder a GPT-4.

Como hemos mencionado, en un principio sólo está para iOS si el App Store está configurado para usar la tienda de Estados Unidos, debería poder usarse en el iPad haciendo uso de la versión ampliada y pronto llegará a la Google Play para dispositivos Android.

OpenAI dice que llegará a más países en las próximas semanas, pero no da ningún plazo de cuándo saldrá de EEUU. Mientras tanto, siempre se puede probar LuzIA, un chatbot creado por una empresa española que permite chatear con ChatGPT desde WhatsApp.

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

DXVK 2.2 ya fue liberado y estas son sus novedades

DXVK

DXVK se puede usar para ejecutar aplicaciones y juegos 3D en Linux usando Wine

La nueva versión de la capa DXVK 2.2 ya está disponible y llega con algunos cambios bastante interesantes, de los cuales podemos destacar el soporte de compatibilidad con D3D11On12, asi como tambien la presentación parcial D3D9, correcciones de errores y más.

Para quienes aún desconocen de DXVK, deben saber que es una de las herramientas incluidas en la función Steam Play de Steam. Es una herramienta fantástica que puede convertir las llamadas gráficas de Microsoft DirectX 11 y DirectX 10 a Vulkan, la API de gráficos de código abierto que es compatible con Linux. Para utilizar DXVK, además de Wine y Vulkan, obviamente se necesita una GPU compatible con Vulkan.

Principales novedades de DXVK 2.2

En esta nueva version que se presenta de DXVK 2.2 podremos encontrar que se agregó el soporte para la capa D3D11On12, que permite que Direct3D 11 funcione sobre Direct3D 12. Para admitir D3D12 en juegos nuevos basados ​​en el motor Unity, como Lego Builder’s Journey, DXVK ha implementado la capacidad de crear dispositivos D3D11 a partir de dispositivos D3D12 usando la función D3D11On12CreateDevice y la API ID3D11On12Device.

Otro de los cambios que se destaca de esta nueva version es la implementación de Direct3D 9 introdujo soporte para visualización parcial que permite organizar la visualización de partes de una ventana al copiar el contenido del backbuffer en la memoria del sistema y luego dibujarlo en la ventana de la CPU. Esto mejora la compatibilidad con los lanzadores de juegos, particularmente aquellos basados ​​en el kit de herramientas WPF de Microsoft y algunas novelas visuales.

Esta función mejora la compatibilidad con los lanzadores de juegos creados con Microsoft WPF a costa de la degradación del rendimiento. Para Direct3D 9, también se mejoró el comportamiento general de los framebuffers virtuales (SwapChain) y se eliminó la compatibilidad con la opción d3d9.noExplicitFrontBuffer.

Ademas de ello, tambien se destaca que cuando se usa con Proton o Wine, de forma predeterminada, la creación de archivos de registro se detiene y la salida de mensajes de diagnóstico a la consola se organiza utilizando características específicas de Wine, lo que corresponde al comportamiento de vkd3d-proton. Para reanudar la creación de archivos de registro independientes, puede establecer la variable de entorno DXVK_LOG_PATH.

De los demás cambios que se destacan:

  • Se redujo significativamente el consumo de memoria al crear dispositivos D3D11 no utilizados en los juegos.
  • Se solucionó un problema por el cual los hilos no se destruían correctamente.
  • Se corrigieron los errores de validación de Vulkan causados ​​por un seguimiento de diseño incorrecto al habilitar los bucles de retroalimentación para una textura.
  • Uso de memoria significativamente reducido en situaciones en las que los juegos crean dispositivos D3D11 sin usar.

Finalmente si estás interesado en conocer más al respecto sobre este nuevo lanzamiento, puedes consular los detalles en el siguiente enlace.

¿Cómo añadir el soporte de DXVK a Linux?

DXVK se puede usar para ejecutar aplicaciones y juegos 3D en Linux usando Wine, actuando como una alternativa de mayor rendimiento a la implementación de Direct3D 11 integrada en Wine que se ejecuta sobre OpenGL.

DXVK requiere de la última versión estable de Wine para ejecutarse. Por lo que, si no cuentas con este instalado. Ahora solo tendremos que descargar el último paquete estable de DXVK, este lo encontramos en el siguiente enlace.

wget https://github.com/doitsujin/dxvk/releases/download/v2.2/dxvk-2.2.tar.gz

Después de haber realizado la descarga ahora vamos a descomprimir el paquete recién obtenido, esto lo pueden hacer con desde su entorno de escritorio o desde la misma terminal ejecutando en el siguiente comando:

tar -xzvf dxvk-2.2.tar.gz

Después accedemos a la carpeta con:

cd dxvk-2.2

Y ejecutamos el comando sh para ejecutar el script de instalación:

sudo sh setup-dxvk.sh install
setup-dxvk.sh install --without-dxgi

Cuando se instale DXVK en un prefijo de Wine. La ventaja es que se puede usar Wine vkd3d para juegos D3D12 y DXVK para juegos D3D11.

Además, la nueva secuencia de comandos permite instalar la dll como enlaces simbólicos, lo que facilita la actualización de DXVK para obtener más prefijos de Wine (puede hacerlo a través del comando –symlink).

Como verán la carpeta de DXVK contiene otras dos dll para 32 y 64 bits estas las vamos a colocar de acuerdo a las siguientes rutas.
En donde “usuario” lo remplazas por el nombre de usuario que utilizas en tu distribución de Linux.

Para 64 bits las colocamos en:

~/.wine/drive_c/windows/system32/

O

/home/”usuario”/.wine/drive_c/windows/system32/

Y para 32 bits en:

~/.wine/drive_c/windows/syswow64

O

/home/”usuario”/.wine/drive_c/windows/system32/

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

Ya fue liberada la beta 2 de Android 14, conoce sus novedades

Android 14

Android 14 se basa en temas principales de privacidad, seguridad, rendimiento, productividad

Hace poco fue presentada la segunda versión beta de Android 14 y en el anuncio de esta, Google ha dado a conocer un poco más de lo que nos espera para este futuro lanzamiento de la popular plataforma movil.

Uno de los principales cambios que se destaca de esta beta 2 de Android 14 es que la estructura principal de la plataforma incluye el «Almacenamiento de Health Connect», anteriormente disponible como un paquete separado a través de Google Play.

Health Connect proporciona almacenamiento centralizado de datos de pulseras de fitness y otros dispositivos relacionados con la salud del usuario, y organiza el acceso conjunto de diferentes aplicaciones a los datos de salud.

Se menciona que el acceso a la configuración de Health Connect ahora se proporcionará a través del configurador de plataforma regular, por ejemplo, a través de la configuración de privacidad, puede controlar a qué datos de salud pueden acceder ciertas aplicaciones. Además, Health Connect ha agregado soporte para guardar información sobre la ruta recorrida durante el proceso de entrenamiento (el usuario determina el período de tiempo durante el cual se guardará la lista de waypoints).

Health Connect

Health Connect es un repositorio en el dispositivo para datos de salud y estado físico del usuario.

Otro de los cambios que se destaca de la nueva versión, son los medios mejorados para confirmar el acceso a la información de ubicación, ya que se ha agregado una nueva sección al cuadro de diálogo que solicita confirmación de acceso a la ubicación con información sobre cuándo la aplicación está transmitiendo datos sobre la ubicación y detalles donde puede obtener más información sobre el acceso a los datos transferidos.

Ademas de ello, se destaca que en la segunda beta de Android 14 el soporte para la grabación (HDR), se ha ampliado con la capacidad de recibir información adicional de la cámara, lo que permite guardar imágenes en el formato «Ultra HDR», que utiliza 10 bits por canal para la codificación de crominancia. La plataforma proporciona automáticamente la salida HDR cuando la compatibilidad con HDR está habilitada en el manifiesto de la aplicación o cuando se llama a Window.setColorMode . Para la representación separada de Ultra HDR usando OpenGL o Vulkan, se puede usar la clasemapa de ganancia

Por otra parte, tambien se destaca que el conjunto de extensiones de cámara se actualizó para brindar la capacidad de usar algoritmos que consumen más tiempo y que requieren cálculos intensivos para el procesamiento de imágenes, por ejemplo, para mejorar la calidad de las imágenes tomadas con poca luz.

Para auriculares con cable conectados a través de USB, se ha agregado la capacidad de aplicar formatos de sonido sin pérdida de calidad (lossless). La clase AudioMixerAttributes se ha agregado a la API, lo que le permite enviar audio directamente al dispositivo, sin mezclar, ajustar el volumen y procesar los efectos.

Se restringieron los tipos de aplicaciones que pueden mostrar notificaciones de pantalla completa cuando la pantalla está bloqueada. Estas notificaciones están diseñadas para llamar la atención sobre información que requiere una respuesta inmediata, como una llamada entrante o una alarma, por lo que los permisos para mostrar dichas notificaciones ahora estarán limitados a las aplicaciones para realizar llamadas y mostrar alertas.

Tambien se ha mejorado el manejo de la animación que señala la transición entre diferentes pantallas en la aplicación con un gesto deslizante que cambia el contenido.

En Android Studio ya se tiene incorporado un asistente inteligente Studio Bot, que puede generar construcciones típicas al escribir código en función de una descripción de texto de la tarea, lo que ayuda a corregir errores y dar recomendaciones sobre técnicas de desarrollo de Android. Además del bot, la nueva versión ofrece el modo Live Edit, que le permite reflejar de inmediato los cambios realizados en el código y la interfaz en la aplicación que se está probando y que se ejecuta en el dispositivo.

De los demás cambios que se destacan:

  • Se han agregado nuevos componentes para animar el cambio de las pantallas inferior y lateral, así como para llamar a la búsqueda. Se agregó una API para crear sus propios efectos de transición en la aplicación.
  • Se han agregado funciones para predecir retrasos en el procesamiento de imágenes, obtener información sobre el progreso del procesamiento y obtener rápidamente una imagen preliminar antes de que se complete la imagen final.
  • Se implementó un modo de vista previa de SurfaceView más optimizado y energéticamente eficiente.
  • Se proporciona soporte para usar las capacidades de escalado y recorte integradas de la cámara para imágenes RAW transmitidas.
  • Se implementó una visualización periódica (una vez al mes) de notificaciones que advierten sobre cambios por parte de aplicaciones que tienen acceso a la ubicación, métodos de transferencia de datos a terceros (por ejemplo, se muestra cuando la aplicación comienza a usar datos de ubicación al mostrar anuncios).
  • Se agregó la capacidad de procesamiento acelerado por hardware al búfer, implementado a través de la clase HardwareBufferRenderer.

Finalmente cabe mencionar que se espera que Android 14 se lance en el tercer trimestre de 2023. Si estas interesado en poder conocer más al respecto, puedes consultar los detalles en el siguiente enlace.

Para evaluar las nuevas funcionalidades de la plataforma, se ha propuesto un programa preliminar de pruebas. Las compilaciones de firmware están preparadas para los dispositivos Pixel 7/7 Pro, Pixel 6/6a/6 Pro, Pixel 5/5a 5G y Pixel 4a (5G).

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

Facebook apuesta al código abierto para competir en Inteligencia Artificial

Facebook difunde su tecnología de inteligencia artificial en forma abierta.

Repitiendo la jugada que tan bien le resultó a Google con Android y Chrome, Facebook apuesta al código abierto para competir en Inteligencia Artificial. En ese sentido está siguiendo el camino inverso al de los otros grandes jugadores: OpenAI (Microsoft), Google y Baidu que consideran la decisión como peligrosa.

Cómo dije más arriba, la decisión de abrir el código no es novedosa, aunque no siempre logra los resultados esperados. Netscape abrió el código de su navegador para competir con Internet Explorer y Sun el de su suite ofimática. Aunque FIrefox supo tener un relativo éxito en el mercado de los navegadores, pierde cada vez más terreno ante Chrome y, ni OpenOfiice y su fork LibreOffice  consiguieron una porción significativa del mercado.

Facebook apuesta al código abierto

En febrero del 2023, Meta, la empresa controlante de Facebook, Instagram y WhatsApp, puso a disposición de académicos, investigadores del gobierno y otras personas aprobadas por la empresa su tecnología de chatbot basada en IA conocida como LlaMA. El nombre es la sigla en inglés para Modelo de Lenguaje Grande de Meta.

Un modelo de lenguaje grande son sistemas que generan sus respuestas a través de la información obtenidas a partir de grandes cantidades de texto. El ejemplo más conocido es ChatGPT. Lo hacen identificando patrones en el texto para construir las respuestas que los usuarios hacen en lenguaje natural.

Aunque existen otros modelos de código abierto, Meta fue más allá liberando LlaMA ya «entrenado». Aunque la ejecución de un modelo tiene recursos de hardware relativamente accesible para cualquiera, el entrenamiento requiere del costoso tiempo de uso de una enorme cantidad de hardware muy especializado.

Críticas

La decisión de Meta generó críticas de la prensa y competidores. Siguiendo el paradigma actual de ignorar el método científico y elegir la conclusión preferida y descartar todo lo que pueda desmentirla, investigadores de la Universidad de Stanford lo usaron para generar «Textos problemáticos» como las instrucciones para deshacerse de un cadáver o una defensa de las opiniones de Adolfo Hitler.

Uno de ellos le dijo a sus colegas que poner a disposición del público en general esta tecnología era como:

…una granada disponible para todos en una tienda de comestibles.

Claro, no sea cosa de que a un cabo austríaco se le ocurra usarla para escribir un libro llamado «Mein Kamp» y termine provocando la segunda guerra o que un grupo de inmigrantes italianos aprendan a deshacerse de sus rivales poniéndoles zapatos de cemento.

Con algo más de sentido común que un académico oponiéndose a la libre difusión del conocimiento, desde Meta argumentan que:

No se puede evitar que la gente cree información sin sentido o peligrosa o lo que sea. Pero puedes evitar que se difunda.

No es que esté de acuerdo. No hay que evitar que se difunda. Hay que dejar que se difunda y rebatirla. O, enseñar por qué es peligrosa.

Soy un adulto y ya tuve un papá, no necesito ni que el Estado, ni la prensa, ni una universidad ni las grandes tecnológicas ocupen su lugar.

La postura de Google es que:

Queremos pensar más detenidamente en revelar detalles o el código fuente de los proyectos de Inteligencia Artificial. ¿Puede conducir eso a un uso indebido?

¿Se imaginan a nuestros ancestros haciendo lo mismo con la rueda, el fuego o la máquina de vapor?

Por supuesto, que hay que leer entre líneas. La decisión de Meta está basada en la creciente desconfianza entre los políticos y analistas sobre las posibles violaciones a la privacidad de los usuarios de esta tecnología. Recordemos que ChatGPT fue baneado en Italia y Bard de Google no puede usarse en la Unión Europea.

Y, en el caso de Google tengo mis serias sospechas de que la negativa a revelar su código tiene mucho más que ver con que está muy por detrás de sus competidores no solo en generar una alternativa usable sino en rentabilizarla.
Pero, solo el tiempo dirá como sigue esto.

Fe de erratas

Donde díce Facebook debe decir Meta.

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

Lutris 0.5.13 llega con soporte para ejecutar juegos con Proton, mejoras y mas

Lutris logo

Lutris es un gestor de juegos FOSS para los sistemas operativos basados en Linux

Hace poco fue dada a conocer la nueva versión de Lutris 0.5.13 y en esta nueva versión la principal novedad es el soporte para ejecutar juegos con Proton, tambien se han realizado diversos cambios y mejoras, entre otras cosas mas.

Para quienes desconocen de Lutris, déjenme decirles que este es un administrador de juegos de código abierto para Linux, este administrador cuenta con soporte directo para Steam y además para más de 20 emuladores de juegos entre los cuales podemos estacar DOSbox, ScummVM, Atari 800, Snes9x, Dolphin, PCSX2 y PPSSPP.

Este estupendo software nos permite poder reunir en una sola aplicación miles de juegos de diferentes plataformas, con lo cual podríamos decir que es el Kodi de los juegos. Por lo cual es una excelente opción para todo gamer. Estos instaladores son aportados por su gran comunidad facilitando la instalación de algunos juegos que son necesarios ejecutar bajo Wine.

Principales novedades de Lutris 0.5.13

En esta nueva versión que se presenta de Lutris 0.5.13 una de las principales novedades que se destaca es la adición del soporte para ejecutar juegos de Windows usando el paquete Proton desarrollado por Valve, asi como tambien él cambió el estilo de las ventanas con la configuración, el instalador y la interfaz para agregar juegos.

Otro de los cambios que se destaca de esta nueva versión, es que se ha mejorado bastante el rendimiento de Lutris, ya que se ha trabajado para mejorar la capacidad de respuesta de la interfaz de las configuraciones con bibliotecas de juegos muy grandes.

Ademas de ello, tambien podremos encontrar en este nuevo lanzamiento que se agregó la capacidad de agregar enlaces de referencia a ModDB para los instaladores. Aunque esto depende mucho de la distribución donde se esté ejecutando Lutris, por lo que se menciona que si su distribución no proporciona el paquete moddb de Python, deberán instalarlo con: pip install moddb.

Tambien podremos encontrar que se proporciona la integración con los servicios de Battle.net y Itch.io (juegos independientes), asi como tambien que se agregó el soporte para mover archivos a la ventana principal usando la interfaz de arrastrar y soltar y que los ajustes se agrupan en secciones.

De los demás cambios que se destacan de este nuevo lanzamiento:

  • Opción agregada para mostrar primero los juegos instalados.
  • Se agregó la capacidad de usar la configuración de inicio en los accesos directos y la línea de comandos.
  • Las etiquetas de la plataforma se muestran en pancartas y portadas.
  • GOG ha mejorado la detección de juegos compatibles con DOSBox.
  • Soporte mejorado para pantallas de alta densidad de píxeles (High-DPI).
  • Se agregó la opción Vulkan ICD «Sin especificar»
  • Se eliminó ResidualVM (ahora fusionado con ScummVM)
  • Ahora se detectan los controladores Vulkan obsoletos y se utiliza DXVK 1.x de forma predeterminada para ellos
  • Solución alternativa a los problemas de autenticación de Humble Bundle al permitir la importación
    de cookies desde Firefox
  • Soporte mejorado de alto DPI para medios personalizados

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

¿Cómo instalar Lutris en Linux?

Para los que estén interesados en poder instalar Lutris, deben saber que de manera oficial se ofrece un paquete deb para su instalación en distribuciones compatibles con este tipo de paquetes, ademas de que tambien se ofrece el código fuente para su compilación. El paquete deb que se ofrece, asi como el código fuente se pueden obtener desde el siguiente enlace.

O si lo prefieren pueden hacerlo desde una terminal con el siguiente comando:

wget https://github.com/lutris/lutris/releases/download/v0.5.13/lutris_0.5.13_all.deb

Por otra parte, tambien, es posible poder realizar la instalación de Lutris, desde los repositorios de la mayoría de las distribuciones de Linux.

Para poder tener este estupendo software en nuestro sistema, debemos hacer lo siguiente, vamos a abrir una terminal ctrl + alt + T y dependiendo del sistema que tengamos haremos lo siguiente:

Para Debian

echo "deb http://download.opensuse.org/repositories/home:/strycore/Debian_10/ ./" | sudo tee /etc/apt/sources.list.d/lutris.list
wget -q https://download.opensuse.org/repositories/home:/strycore/Debian_10/Release.key -O- | sudo apt-key add -
sudo apt update
sudo apt install lutris

Para Ubuntu y derivados:

sudo add-apt-repository ppa:lutris-team/lutris
sudo apt update
sudo apt install lutris

Para Fedora

sudo dnf install lutris

openSUSE

sudo zypper in lutris

 Solus 

sudo eopkg it lutris

ArchLinux y derivados:

Si tienes ArchLinux o algún derivado de este, vamos a poder instalar Lutris desde los repositorios AUR con la ayuda de Yaourt

yaourt -s lutris

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

PMFault, una vulnerabilidad que permite dañar físicamente servidores

vulnerabilidad

Si se explotan, estas fallas pueden permitir a los atacantes obtener acceso no autorizado a información confidencial o, en general, causar problemas

Durante el Black Hat Asia 2023 se dio a conocer la noticia de que Investigadores de la Universidad de Birmingham identificaron una vulnerabilidad (CVE-2022-43309) en algunas placas base de servidor que puede desactivar físicamente la CPU sin posibilidad de recuperación posterior.

Para quienes desconocen de «Black Hat«, deben saber que esta es una serie de eventos de seguridad cibernética reconocida internacionalmente que proporciona la investigación de seguridad de la información más técnica y relevante. Pasando de ser una sola conferencia anual a la serie de eventos de seguridad de la información más respetada a nivel internacional, estos eventos de varios días brindan a la comunidad de seguridad las últimas investigaciones, desarrollos y tendencias de vanguardia.

Sobre PMFault

Los investigadores de la Universidad de Birmingham (tambien conocida por revelar una vulnerabilidad en la función Software Guard Extensions y desarrollar los ataques Plundervolt y VoltPillager), presentaron el concepto de la vulnerabilidad, cuyo nombre en código es PMFault.

La importancia de PMFault es que esta puede usarse para dañar servidores a los que un atacante no tiene acceso físico, pero tiene acceso privilegiado al sistema operativo, obtenido, por ejemplo, como resultado de explotar una vulnerabilidad sin parchear o interceptar credenciales de administrador.

La esencia del método propuesto es utilizar la interfaz PMBus, que utiliza el protocolo I2C, para aumentar el voltaje suministrado al procesador a valores que causen daños al chip. La interfaz PMBus generalmente se implementa en el VRM (Módulo regulador de voltaje), al que se puede acceder mediante la manipulación del controlador BMC.

Para atacar placas que soportan PMBus, además de los derechos de administrador en el sistema operativo, es necesario tener acceso programático al BMC (Baseboard Management Controller), por ejemplo, a través de la interfaz IPMI KCS (Keyboard Controller Style), vía Ethernet, o mediante el flasheo del BMC del sistema actual.

En primer lugar, mostramos que la subvoltaje a través de PMBus permite romper las garantías de integridad de los enclaves SGX, pasando por alto las contramedidas de Intel contra ataques de subvoltaje anteriores como Plundervolt/V0ltPwn. En segundo lugar, demostramos experimentalmente que el sobrevoltaje fuera del rango especificado tiene el potencial de dañar permanentemente las CPU Intel Xeon, lo que hace que el servidor quede inoperable. Evaluamos el impacto de nuestros hallazgos en otras placas base para servidores fabricadas por Supermicro y ASRock.

Nuestros ataques, denominados PMFault, pueden ser realizados por un adversario de software privilegiado y no requieren acceso físico a la placa base del servidor ni conocimiento de las credenciales de inicio de sesión de BMC.

Se menciona que se ha confirmado un problema que permite un ataque sin conocimiento de los parámetros de autenticación en el BMC en placas base Supermicro con soporte IPMI y ASRock, pero también se ven afectadas otras placas de servidor en las que se puede acceder a PMBus.

El método de cambio de voltaje a través de PMBus también se puede utilizar para realizar un ataque Plundervolt, que permite, al bajar el voltaje a valores mínimos, dañar el contenido de las celdas de datos en la CPU utilizada en los cálculos en enclaves Intel SGX aislados y generar errores en algoritmos inicialmente correctos.

Por ejemplo, si cambia el valor utilizado en la multiplicación durante el proceso de cifrado, el resultado será un texto cifrado no válido. Al poder llamar a un controlador en el SGX para encriptar sus datos, un atacante puede, al causar fallas, acumular estadísticas sobre el cambio en el texto cifrado de salida y recuperar el valor de la clave almacenada en el enclave SGX.

En el transcurso de los experimentos, cuando el voltaje aumentó a 2,84 voltios, se dañaron dos procesadores Intel Xeon en estas placas.

Finalmente para los interesados en poder conocer más al respecto, deben saber que en GitHub se publica un conjunto de herramientas para atacar las placas Supermicro y ASRock, así como una utilidad para verificar el acceso a PMBus. Pueden consultar más al respecto sobre la investigación en el siguiente enlace.

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

Mojo, el nuevo lenguaje de programación creado por Chris Lattner el creador de LLVM

Mojo lang

Mojo es un nuevo lenguaje de programación que promete un mejor rendimiento para el desarrollo de aprendizaje automático

Hace pocos días se dio a conocer la noticia de que Chris Lattner, fundador y arquitecto jefe de LLVM y Tim Davis, exjefe de proyectos de IA de Google lanzaron «Mojo», un nuevo lenguaje de programación, basado en Python, que soluciona los problemas de implementación y rendimiento de Python.

Se menciona que Mojo que combina la facilidad de uso para I+D y la creación rápida de prototipos con idoneidad para productos finales de alto rendimiento. El primero se logra mediante el uso de la sintaxis familiar del lenguaje Python, y el segundo se debe a la capacidad de compilar en código de máquina, mecanismos para la gestión segura de la memoria y el uso de herramientas para la aceleración de cálculos por hardware.

Sobre Mojo

Este nuevo lenguaje de programación se centra en el uso para el desarrollo de aprendizaje automático, pero se presenta como un lenguaje de propósito general que amplía las capacidades del lenguaje Python con la programación de sistemas y es adecuado para una amplia gama de tareas.

Por ejemplo, el lenguaje es aplicable a áreas como la informática de alto rendimiento, el procesamiento y la transformación de datos. Una característica interesante de Mojo es la capacidad de especificar el símbolo emoji «🔥» como extensión para archivos de código.

El proyecto está diseñado para involucrar los recursos de hardware de los sistemas disponibles en el sistema en los cálculos. Por ejemplo, se pueden usar GPU, aceleradores de aprendizaje automático especializados e instrucciones de procesamiento de vectores (SIMD) para ejecutar aplicaciones Mojo y paralelizar cálculos.

La razón para desarrollar un subconjunto separado del lenguaje Python, en lugar de unirse al trabajo de optimización del CPython existente, se cita como:

Un enfoque de compilación, integración de las capacidades de programación del sistema y el uso de una arquitectura interna fundamentalmente diferente que permite que el código sea ejecutado en GPU y varios aceleradores de hardware. Al mismo tiempo, los desarrolladores de Mojo tienen la intención de adherirse a la compatibilidad con CPython tanto como sea posible.

Mojo se puede usar tanto en el modo de interpretación JIT como para la compilación en archivos ejecutables (AOT, antes de tiempo). El compilador tiene tecnologías modernas incorporadas para la optimización automática , el almacenamiento en caché y la compilación distribuida.

El código fuente en el lenguaje Mojo se convierten en código intermedio de bajo nivel MLIR (Multi-Level Intermediate Representation), desarrollado por el proyecto LLVM y que proporciona funciones adicionales para optimizar el procesamiento de gráficos de flujo de datos.

El uso de mecanismos de hardware adicionales para acelerar los cálculos permite alcanzar un rendimiento que, con cálculos intensivos, supera a las aplicaciones C/C++.

Chris lattner es responsable de crear muchos de los proyectos en los que todos confiamos hoy, ¡aunque es posible que ni siquiera hayamos oído hablar de todo lo que construyó! Como parte de su tesis doctoral, comenzó el desarrollo de LLVM, que cambió fundamentalmente la forma en que se crean los compiladores y, en la actualidad, constituye la base de muchos de los ecosistemas lingüísticos más utilizados en el mundo.

Luego pasó a lanzar Clang, un compilador de C y C++ que se encuentra en la parte superior de LLVM y es utilizado por la mayoría de los desarrolladores de software más importantes del mundo (incluido el suministro de la columna vertebral para el código crítico de rendimiento de Google). 

Al evaluar el desempeño en el campo de la resolución de problemas de aprendizaje automático, la pila Modular Inference Engine AI escrita en el lenguaje Mojo, en comparación con una solución basada en la biblioteca TensorFlow, resultó ser 3 veces más rápida en un sistema con un procesador Intel

Sin embargo, Chris vio que C y C++ no aprovechaban completamente el poder de LLVM, por lo que mientras trabajaba en Apple diseñó un nuevo lenguaje, llamado «Swift», que describe como «azúcar de sintaxis para LLVM». 

Cabe mencionar que el lenguaje es compatible con la escritura estática y las funciones seguras de memoria de bajo nivel que recuerdan a las funciones de Rust, como el seguimiento de la vida útil de referencia y el préstamo de variables (verificador de préstamos).

Además de los medios para una operación segura con punteros, el lenguaje también proporciona características para el trabajo de bajo nivel, por ejemplo, es posible acceder directamente a la memoria en modo no seguro utilizando el tipo de puntero, llamar a instrucciones SIMD individuales o acceder a extensiones de hardware como TensorCores y AMX.

Actualmente, el lenguaje está bajo un desarrollo intensivo y solo se ofrece la interfaz en línea para probar. A futuro se promete publicar compilaciones separadas para ejecutar en sistemas locales más adelante, después de recibir comentarios sobre el trabajo del entorno web interactivo.

Está previsto abrir el código fuente del compilador, JIT y otros desarrollos relacionados con el proyecto después de que se completa el diseño de la arquitectura interna (el modelo de desarrollo de un prototipo de trabajo a puerta cerrada se asemeja a la etapa inicial de desarrollo de LLVM, Clang y Swift).

Dado que la sintaxis de Mojo se basa en Python y el sistema de tipos está cerca de C/C++, hay planes en el futuro para desarrollar un conjunto de herramientas para facilitar la traducción de proyectos existentes escritos en C/C++ y Python a Mojo, así como para desarrollar proyectos híbridos que combinan código Python y Mojo.

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