Guía técnica del estado de SIMD en Rust para 2026

El artículo técnico de Sergey Davidoff analiza el estado actual de la computación vectorizada (SIMD) en el lenguaje Rust, destacando los avances realizados desde 2025 y la adopción de la librería Fearless SIMD como mantenedora. El texto explica que la SIMD permite procesar lotes de datos simultáneam

El desafío técnico de emular el modelo de memoria x86-TSO en ARM

La emulación de aplicaciones x86 en arquitecturas ARM presenta un problema fundamental: la incompatibilidad entre el modelo de coherencia de memoria Total Store Ordering (TSO) de x86 y el modelo de coherencia débil de ARM. Este artículo técnico analiza las implicaciones de esta discrepancia y las so

La razón detrás de la instrucción x86 undefined ud2

La instrucción x86 undefined ud2 es una instrucción de código no válido que garantiza una excepción de 'opcode inválido'. Su existencia se atribuye a una disputa técnica entre dos familias de desarrolladores de compiladores en la década de 1980. Originalmente, no existía ninguna instrucción de códig

ASM Editor: un editor en el navegador para aprender ensamblador con ayuda de IA

ASM Editor es un editor de código ensamblador que funciona directamente en el navegador y está pensado tanto para la enseñanza como para la práctica de lenguajes de bajo nivel. Incorpora documentación integrada de los conjuntos de instrucciones M68K, MIPS, RISC-V y Z80, con las direcciones válidas,

Cómo GCC implementa las funciones anidadas

Las funciones anidadas son una extensión histórica del lenguaje C en GCC que permite definir una función dentro del cuerpo de otra. Este artículo analiza en detalle el mecanismo interno que emplea el compilador para que una función an acceda a las variables de su función padre. La pieza clave es una

Una conversión de timestamp a hora, minuto y segundo ocho veces más rápida

La descomposición de un timestamp diario [0‥86399] en hora, minuto y segundo es una operación omnipresente en bibliotecas de fecha y hora, pero las implementaciones mayoritarias —desde el kernel de Linux y glibc hasta Go, CPython, OpenJDK, V8, Boost y musl— la resuelven mediante divisiones y módulos

NetBSD 9.5 llega como última actualización de la rama 9

NetBSD 9.5 llega como última actualización de la rama 9 El Proyecto NetBSD anunció el pasado 6 de septiembre de 2026 el lanzamiento de NetBSD 9.5, la quinta y última versión de la rama estable NetBSD 9, que recibe actualizaciones desde febrero de 2020. Según el anuncio oficial firmado por Martin Hu

Intel publica un anticipo de la futura documentación de su arquitectura

Intel ha puesto a disposición de la comunidad de desarrolladores un sitio web que sirve como anticipo de cómo piensa documentar en el futuro la arquitectura Intel (IA), incluido el conjunto de instrucciones Intel 64 e IA-32. El objetivo declarado de la iniciativa es ofrecer una especificación más pr

El mito del orden de memoria en las CPU: fuerte y débil rinden parecido

Durante años se ha repetido que las arquitecturas con modelo de memoria débil —como ARM y RISC-V— escalan mucho mejor en sistemas multinúcleo que las de modelo fuerte, como x86 o SPARC. La premisa implícita es que esas CPUs cumplen sus reglas de ordenación en cada acceso a memoria. No es así: casi t

Por qué el ensamblador inline de Odin es el mejor frente a GCC, Clang y Rust

El lenguaje Odin incorpora un ensamblador inline diseñado desde cero, no añadido como un parche sobre una cadena de texto. A diferencia de las soluciones de GCC, Clang o Rust —basadas en plantillas de texto y restricciones tipo DSL—, el sistema de Odin trata el ensamblador como plantillas asm invoca

sectorforth: un Forth de 16 bits para x86 que cabe en 512 bytes

sectorforth es una implementación minimalista de Forth para arquitecturas x86 de 16 bits que cabe íntegra en un sector de arranque de 512 bytes. El proyecto se inspira en un hilo de Usenet de 1996, en particular en la propuesta de Bernd Paysan, y se compone únicamente de ocho primitivas básicas —fet

Una forma más rápida de calcular el día de la semana

Calcular el día de la semana a partir de un día-continuo (rata-die) parece trivial, pero esconde una complejidad inesperada. Este artículo presenta una familia de funciones optimizadas en ensamblador que obtienen el día de la semana con muy baja latencia y alto rendimiento, superando a las solucione

Decodificando el campo inmediato de vcmpps y vcmppd en x86

Las instrucciones SIMD vcmpps y vcmppd comparan pares de números en coma flotante IEEE754 y producen un resultado de un bit por carril. En lugar de escribir flags, codifican en cinco bits (b4…b0) tanto la relación a evaluar como el comportamiento ante NaN. Una codificación ingenua dedicaría un bit a

SIMD en los años 90: programar el Intel Pentium MMX

En 1997 Intel presentó las extensiones MMX (MultiMedia eXtensions) junto al procesador Pentium MMX, un conjunto de 57 instrucciones adicionales pensadas para acelerar gráficos, procesamiento de audio, vídeo y software de módem. MMX no inventó el modelo SIMD (Single Instruction, Multiple Data), pero

Rosenbridge: una puerta trasera de hardware en procesadores x86 de VIA

El proyecto rosenbridge, desarrollado por el investigador Christopher Domas, documenta una puerta trasera de hardware presente en algunos procesadores x86 de la familia VIA C3. El mecanismo consiste en un núcleo no x86 profundamente incrustado junto al núcleo principal del procesador. Un bit de cont

RPCS3 cierra la brecha de rendimiento entre ARM y x86 en la emulación de PS3

El emulador de código abierto RPCS3, dedicado a reproducir juegos de PlayStation 3 en hardware moderno, ha dado un salto significativo en eficiencia sobre procesadores ARM tras seis meses de trabajo de optimización. En un vídeo de algo más de una hora, el desarrollador conocido como Whatcookie repas

El whitepaper de NVIDIA sobre Vera contiene argumentos endebles

El whitepaper de 45 páginas con el que NVIDIA presentó su nuevo procesador para servidores Vera ha generado un intenso debate técnico en la industria. El chip, el primer servidor CPU de la compañía basado en su núcleo propietario Olympus, ofrece especificaciones llamativas: 88 núcleos monolíticos, p

Cómo compilar GCC 1.27 en Ubuntu de 64 bits

Este artículo explica paso a paso cómo compilar la versión 1.27 del compilador GCC, publicada en 1988 y primera en ofrecer soporte para la arquitectura x86, sobre un sistema Ubuntu de 64 bits moderno. El autor parte del trabajo previo de Mikhail Maltsev, que documentó la compilación de un compilador

Theo de Raadt carga contra la virtualización x86 en la lista de OpenBSD

En un mensaje enviado el 24 de octubre de 2007 a la lista de correo openbsd-misc, Theo de Raadt, fundador y líder del proyecto OpenBSD, descalificó las supuestas ventajas de seguridad de la virtualización en arquitecturas x86. Respondiendo a un usuario que defendía esos beneficios, de Raadt sostuvo

BareMetal-RAM-Dumper: utilidad x86 para volcar la RAM física al disco

BareMetal-RAM-Dumper es una utilidad bare-metal para arquitecturas x86 que arranca desde un disco o una memoria USB y vuelca el contenido completo de la RAM del sistema directamente en el propio medio de arranque, sin necesidad de sistema operativo. La herramienta se apoya en interrupciones del BIOS

El ejecutable Teensy revisado: cómo encoger un ELF conforme al estándar

Este artículo técnico retoma el reto de construir el ejecutable ELF para Linux x86 más pequeño posible, pero esta vez cumpliendo de forma estricta la especificación ELF. Partiendo de una versión previa de 91 bytes, el autor muestra cómo solapar el encabezado ELF y la tabla de cabeceras de programa,

Intel y AMD crean ACE, un estándar para acelerar IA directamente en la CPU

Intel y AMD han desarrollado conjuntamente ACE (Advance Compute Extensions), una nueva especificación para el conjunto de instrucciones x86 que incorpora hardware dedicado dentro de la CPU para ejecutar de forma eficiente operaciones con matrices, la base de los cálculos de inteligencia artificial.

La memoria segmentada del 8086: una buena idea que los programadores arruinaron

El procesador 8086 de Intel podía direccionar 1 MB de memoria, una cifra enorme frente a los 64 KB del 8080. Para lograrlo sin cambiar los registros de 16 bits, Intel añadió registros de segmento cuyo valor se desplazaba cuatro bits y se sumaba a un desplazamiento de 16 bits, generando así direccion

Decodificación zigzag con AVX-512: dos optimizaciones SIMD

Este artículo técnico explora dos optimizaciones SIMD para la decodificación de enteros codificados en formato zigzag, descubiertas durante el trabajo del autor en la decodificación de vértices con AVX-512 en la biblioteca meshoptimizer. El zigzag es una técnica que mapea enteros con signo a valores

La ISA no importa donde cuenta de verdad: el bloqueo x86 frente a la GPU

El bloqueo de la arquitectura x86 en servidores es real, pero su influencia se debilita conforme nos acercamos a la GPU. Este análisis examina cinco sockets o posiciones que orbitan el procesador gráfico en los sistemas de IA, y evalúa en cuáles la elección entre x86 y Arm resulta determinante y en

Tribblix 0m40: nuevo hito del sistema operativo open source

El 12 de junio de 2026, Peter Tribble anunció la disponibilidad del hito 40 de Tribblix, un sistema operativo de código abierto basado en illumos. La versión combina un estilo retro con componentes modernos y está disponible para las arquitecturas x86 y SPARC. El soporte para hardware de 32 bits ha

Capstone: el framework de desensamblado multiplataforma de referencia

Capstone es un framework de desensamblado de código máquina concebido como motor de referencia para el análisis binario y la ingeniería inversa en la comunidad de seguridad. Desarrollado en C puro y distribuido bajo licencia BSD de código abierto, expone una API neutra respecto a la arquitectura, li

SBCL implementa máquinas virtuales ultrarrápidas con stack de solo 8 ranuras

Este artículo de Paul Khuong explora una técnica innovadora para implementar máquinas virtuales basadas en stack, utilizando SBCL (Steel Bank Common Lisp) como plataforma de experimentación. La idea central es aprovechar un stack muy pequeño (solo 8 ranuras) para evitar el movimiento de datos durant

Demoscene: generan fractal sonoro infinito en solo 16 bytes de ensamblador

¡despierta! 16b es una pieza de demoscene que logra una proeza técnica notable: generar un fractal de Sierpinski infinito y convertirlo en audio, todo en apenas 16 bytes de código ensamblador x86 real-mode DOS. Presentada en la Outline Demoparty de mayo 2026 en Ommen, Países Bajos, esta obra explora

Linux: Optimización para medición de tiempo precisa

Este artículo explora una optimización crucial para sistemas de baja latencia: la medición precisa del tiempo en Linux. El autor, trabajando en un pipeline de baja latencia (1-10 microsegundos por etapa) con OpenTelemetry, se enfrentó al desafío de minimizar el impacto de la instrumentación de rastr

Detectan DOSBox desde su interior: un truco revelado

Este artículo explora una técnica poco convencional para detectar si un programa se está ejecutando dentro del emulador DOSBox. DOSBox es un emulador de MS-DOS que permite ejecutar software antiguo de DOS en sistemas modernos. Aunque intenta emular MS-DOS de manera precisa, presenta peculiaridades q

Intel Xpress: El PC Profesional Olvidado de los 90

Este artículo de x86.fr, escrito por Doc TB, explora el Intel Xpress, una línea de computadoras poco conocida producida por Intel entre 1992 y 1995. Estas máquinas, situadas entre los PCs personales y las estaciones de trabajo, estaban diseñadas para uso profesional, redes y eran notablemente robust

Agente IA optimiza código, mejora rendimiento en IA

Un agente de codificación ha logrado optimizar el código de Flash Attention en llama.cpp en un 15% para x86 y un 5% para ARM, gracias a la incorporación de una fase de investigación previa a la codificación. El equipo de SkyPilot, utilizando la herramienta autoresearch (y su versión generalizada, pi

Luka, 13, crea su propio sistema operativo en dos semanas

Un joven de 13 años, identificado como Luka, ha desarrollado un sistema operativo llamado AurionOS en tan solo dos semanas como proyecto de aprendizaje. El sistema, construido desde cero en C y lenguaje ensamblador x86, está diseñado para usuarios que desean comprender a fondo el funcionamiento inte

Rust: Propuesta optimiza la llamada de funciones

Este artículo explora una propuesta para mejorar la convención de llamada en Rust, especialmente en arquitecturas x86, y cómo esto impacta la eficiencia del código generado. La convención de llamada define cómo se pasan los argumentos a las funciones y cómo se devuelven los valores, y la actual conv

Fallo en OpenBSD: Vulnerabilidad afecta sistemas antiguos

Este artículo explora una vulnerabilidad de seguridad recientemente descubierta en OpenBSD 6.3 para sistemas i386 (32 bits), que permitía a procesos de usuario causar fallos en todo el sistema operativo. La raíz del problema se remonta a una peculiaridad en el diseño de la arquitectura x86, específi

CSS emula CPU x86: asombro en la web

Un desarrollador ha creado un emulador de CPU x86 funcional, pero inusual: está construido completamente con CSS, sin utilizar JavaScript. El proyecto, denominado x86CSS, ejecuta código máquina de 8086 directamente en el navegador, demostrando una capacidad sorprendente de la hoja de estilos en casc

SIMD x86: Evolución tecnológica y estrategias corporativas

Este artículo de bgslabs.org narra la fascinante historia de la evolución de las extensiones SIMD (Single Instruction, Multiple Data) en los procesadores x86, desde MMX hasta AVX-512, revelando que su desarrollo no es solo una cuestión de tecnología, sino también de marketing, política corporativa y

Zig Kernel: Un sistema operativo minimalista en Zig

Un desarrollador ha creado un kernel minimalista llamado Zig Kernel, escrito completamente en el lenguaje de programación Zig y sin utilizar ningún archivo de ensamblador. El kernel, diseñado para funcionar en máquinas x86 (i386), se ejecuta a través del protocolo Multiboot 1 y muestra un mensaje de

El Ingenioso 'Barrel Shifter' del Intel 80386 Revelado

Este artículo detalla el análisis de un desarrollador sobre el funcionamiento interno del 'Desplazador de Barril' (Barrel Shifter) del procesador Intel 80386. El Desplazador de Barril es un circuito que permite realizar desplazamientos y rotaciones de bits en un solo ciclo de reloj. El desarrollador

Compilador C en 512 Bytes: ¡Un Nuevo Récord!

Un equipo de ingenieros ha creado un compilador de C llamado SectorC que asombrosamente cabe en 512 bytes, el tamaño de un sector de arranque de una máquina x86. Este logro, anunciado recientemente, desafía los límites convencionales de la compilación de código y es considerado el compilador de C má