Noticias que mencionan x86

Ingeniería inversa de Starflight: un desafío en Forth

Este artículo explora la ingeniería inversa del videojuego clásico de 1986, *Starflight*, un título pionero en el género de sandbox. El autor, S-Macke, describe su experiencia al intentar comprender el código del juego, una tarea que resulta inusual debido a la elección de lenguaje de programación:

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

AVX2 frena emulación de Windows en ARM

Un ingeniero de RemObjects descubrió que compilar aplicaciones para AVX2 resulta en un rendimiento más lento que compilar para SSE2-4.x en Windows ARM cuando se ejecuta bajo la emulación Prism. Esta conclusión, contraintuitiva, surge de pruebas de rendimiento de benchmarks matemáticos en Windows ARM

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

IA y Ghidra detectan puertas traseras ocultas en software

Investigadores de Quesma han experimentado con el uso de agentes de inteligencia artificial (IA) y herramientas como Ghidra para detectar puertas traseras ocultas en ejecutables binarios, sin acceso al código fuente. El objetivo era crear un punto de referencia para evaluar la capacidad de la IA en

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

El 80386: cómo nació la protección de memoria

Este artículo del blog de Nand, un desarrollador que construye un núcleo compatible con el 80386 en SystemVerilog, explora el sistema de protección del 80386, un componente crucial para el funcionamiento de sistemas operativos modernos como Windows 3.0, OS/2 y Linux. Originalmente, el modo protegido

Código cerrado: ¿actualizar o no actualizar?

Este artículo de codon.org.uk explora la compleja decisión de actualizar o no los 'blobs' de código no libre que a menudo se encuentran en hardware moderno. Estos 'blobs' son esencialmente código (a menudo escrito en C y dirigido a arquitecturas como Arm o RISC-V) que controla el funcionamiento de d

Microsoft acelera IA: nuevo framework para modelos de lenguaje

Microsoft ha lanzado BitNet, un framework de código abierto diseñado para ejecutar modelos de lenguaje de 1 bit (LLM) de manera eficiente en CPUs y GPUs. Esta tecnología permite ejecutar modelos de lenguaje grandes, como un modelo de 100 mil millones de parámetros, en una sola CPU, alcanzando veloci

MacBook Neo: Chip de iPhone impulsa portátil de 600$

El artículo de John Gruber analiza el nuevo MacBook Neo, un portátil de 600 dólares que ha sorprendido al mundo tecnológico. La clave de este éxito radica en el uso del chip A18 Pro, el mismo que se encuentra en los modelos iPhone 16 Pro de 2024. Esto demuestra cómo los chips diseñados originalmente

Contribución al kernel Linux: la experiencia de un desarrollador

Este artículo narra la experiencia de un desarrollador al contribuir con una corrección (patch) al kernel de Linux, enfocándose en un error sutil relacionado con la gestión de tareas en sistemas x86. El autor, al intentar construir un hipervisor de Tipo 2 (un software que permite ejecutar múltiples

Arm lanza CPU AGI: potencia para la nube de IA

Arm ha anunciado hoy el Arm AGI CPU, una nueva generación de procesadores diseñados para impulsar la infraestructura de inteligencia artificial, marcando la primera vez que Arm produce sus propios chips de silicio. Este lanzamiento extiende la plataforma Arm Neoverse más allá de la mera licencia de

Arm crea su chip: Meta será el primero en usarlo

Arm Holdings, la empresa británica conocida por diseñar la arquitectura de chips utilizada en la mayoría de los smartphones, ha lanzado su primer chip de procesamiento central (CPU) propio, denominado AGI CPU. Este movimiento marca un cambio significativo para Arm, que tradicionalmente ha licenciado

Crazierl alerta: riesgo de seguridad en su función 'cluster'

Crazierl, una plataforma que permite ejecutar un sistema operativo en un navegador web a través de emulación (v86), ha emitido advertencias de seguridad urgentes sobre su función de 'cluster distribuido' (dist cluster). La función, que permite a los usuarios conectar sus instancias de crazierl compa

TurboQuant en Rust: búsqueda vectorial más veloz

Un investigador ha implementado en Rust 'TurboQuant', un algoritmo de Google Research para la búsqueda vectorial, ofreciendo una alternativa más rápida y eficiente a métodos como FAISS. La implementación, disponible en GitHub, incluye bindings para Python a través de PyO3, facilitando su uso. TurboQ

Binario Linux de 105 bytes: ¿el mínimo ejecutable?

Un desarrollador ha logrado reducir el tamaño de un archivo ELF (Executable and Linkable Format) de Linux a tan solo 105 bytes, mientras mantiene la capacidad de imprimir el mensaje "Hello, world!". Esta hazaña, impulsada por el trabajo de Josh Triplett, se basa en técnicas de optimización que elimi

Typhon: base de datos ultrarrápida creada en C#

Un desarrollador ha creado un motor de base de datos de alto rendimiento llamado Typhon, escrito en C#, que apunta a lograr tiempos de confirmación de transacciones de tan solo 1-2 microsegundos. Typhon está diseñado para entornos de simulación en tiempo real y servidores de juegos, utilizando un en

Entendiendo los Microprocesadores: Más allá de la Velocidad

Este artículo ofrece una introducción rápida y accesible a la arquitectura de microprocesadores modernos, desmitificando conceptos clave que a menudo se pasan por alto en los cursos de informática. El objetivo principal es explicar por qué la velocidad de reloj (megahertz) no es el único indicador d

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

El secreto del 80386: cómo su memoria impulsó la velocidad

Este artículo profundiza en el innovador diseño de la memoria del procesador Intel 80386, un componente crucial para su capacidad de ejecutar DOS, aplicaciones como Norton Commander e incluso juegos como Doom. El 80386 introdujo el modo protegido de 32 bits, una característica definitoria, y este an

MCD Binario: Alternativa Eficiente al Algoritmo Clásico

El Algoritmo Binario del MCD (Máximo Común Divisor) es una alternativa al algoritmo de Euclides para calcular el MCD de dos números enteros. Aunque ambos tienen una complejidad logarítmica (el tiempo de ejecución crece lentamente a medida que aumentan los números), el algoritmo binario puede ser sig

Lightwhale: Linux minimalista para gestionar Docker

Lightwhale ha lanzado un sistema operativo minimalista para servidores Linux diseñado para simplificar la gestión de contenedores Docker. Este sistema operativo, disponible para descarga como un archivo ISO, se ejecuta directamente desde el ISO, eliminando la necesidad de instalación y configuración

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

Errores ocultos: la trampa de los números flotantes

Este artículo explora un problema sutil pero crítico en el cálculo geométrico: la falta de reproducibilidad de los resultados al usar números de punto flotante (floats). El autor, Gerardus Cremer, se enfrentó a una situación donde un test de superposición de polígonos funcionaba localmente pero fall

La IA transforma la selección de lenguajes de programación en 2026

La inteligencia artificial está transformando radicalmente la selección de lenguajes de programación en la industria tecnológica. Hace dos años, los modelos de IA apenas podían escribir código en lenguajes complejos como Rust sin errores; para abril de 2026, Claude Opus 4.7, GPT-5.5, Gemini 3.1 y De

El oscuro comando que puede bloquear cualquier procesador

Halt and Catch Fire (HCF) es una expresión del argot de la ingeniería informática que describe un tipo de instrucción de código máquina capable de bloquear completamente un procesador, obligando a reiniciar el sistema. Aunque suenen dramático, el término nació como un chiste entre ingenieros, inspir

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

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

El comportamiento indefinido: el error invisible que acecha en todo código C

El artículo aborda un tema fundamental en la programación con C y C++: el comportamiento indefinido (Undefined Behavior o UB). El autor, con más de 30 años de experiencia, argumenta que prácticamente todo código no trivial en C/C++ contiene UB, y que es imposible escribir código completamente correc

Malusev cuestiona la seguridad de JWT y su utilidad real en desarrollo web

El desarrollador Dusan Malusev ha publicado una crítica contundente sobre la seguridad y utilidad de los tokens JWT en aplicaciones modernas. En su análisis, Malusev argumenta que JWT es un "culto de carga" que promete autenticación sin estado pero no lo entrega realmente, resultando en aplicaciones

Estosus permite ejecutar programas de windows en el navegador web

El desarrollador evmar ha logrado que el emulador Theseus traduzca ejecutables de Windows (.exe) a WebAssembly, permitiendo que programas nativos corran directamente en navegadores web. Esta actualización técnica permite ejecutar aplicaciones de escritorio antiguas en el navegador, superando las lim

Zjit optimiza código con nuevo asignador de registros

El equipo de desarrollo de Ruby ha implementado un nuevo asignador de registros en ZJIT (Just-In-Time compiler) para optimizar el rendimiento de la ejecución de código. Esta mejora es relevante porque la gestión eficiente de los registros de la CPU es crucial, ya que estos son mucho más rápidos que

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

El PDP-11: el minicomputador que sentó las bases de la informática moderna

El PDP-11, presentado en 1970 por Digital Equipment Corporation, fue el minicomputador más influyente y exitoso de su época, y resulta clave para entender la evolución de la arquitectura informática. Este artículo explica en qué consistía, cómo funcionaba y por qué sigue siendo relevante. Lanzado 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

Fil-C presenta ensamblador inline con seguridad de memoria

Fil-C, una variante de C y C++ con seguridad de memoria desarrollada por pizlonator, incorpora compatibilidad con ensamblador inline manteniendo las garantías de seguridad. La función, aún en fase preliminar y no incluida en el lanzamiento 0.679, requiere compilar desde el código fuente. El proyect

La semana de los lectores: ciclismo, CuneiForth y un compilador JIT

Esta entrega recopila las respuestas de varios lectores a la pregunta semanal «¿Qué haces esta semana?», una sección abierta en la que comparten sus proyectos y aficiones en curso. Entre los aportes destaca el de un usuario que compagina su trabajo con la reparación de coches y una rutina creciente

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

Manual universitario gratuito enseña a construir un compilador desde cero

El profesor Douglas Thain, de la Universidad de Notre Dame, ha publicado un libro de texto en abierto titulado *Introduction to Compilers and Language Design*, pensado para un curso universitario de un semestre. La obra guía al lector en la construcción de un compilador completo para un lenguaje de

Cómo un «if» inútil cuatriplicó el rendimiento de un bucle en C

Este artículo técnico explica cómo un bucle aparentemente óptimo en C puede acelerarse hasta cuatro veces introduciendo una rama condicional que, sobre el papel, parece innecesaria. El autor trabajaba en un compresor específico de dominio cuyo algoritmo principal consiste en encontrar el camino más

La conversión de float a int en C++ puede ser comportamiento indefinido

En C++, convertir un valor en coma flotante a un entero mediante sintaxis tan habitual como `int i = f;` o `static_cast<int>(f)` constituye comportamiento indefinido cuando el valor truncado no cabe en el tipo destino. El estándar lo recoge en la página de conversiones implícitas de Cppreference, do

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

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

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

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

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

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

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

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

Guía técnica para crear ejecutables ELF extremadamente pequeños en Linux

Este documento técnico detalla los métodos avanzados para reducir el tamaño de los ejecutables en formato ELF (Executable and Linkable Format) en sistemas operativos Linux, específicamente bajo la arquitectura Intel x86. El objetivo principal es eliminar el exceso de bytes y la sobrecarga innecesari

Emojis ejecutables: cómo escribir un programa para el 8088 usando solo emojis

El programador y desarrollador del desensamblador web dasm.martypc.net descubrió de forma casual que el emoji de la cabra (🐐) se codifica en UTF-8 como F0 9F 90 90, una secuencia que resulta ser código máquina válido para el procesador Intel 8088: LAHF, NOP y NOP. A partir de esa observación, explor

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

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

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

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,

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