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

Crea tu propia shell: guía paso a paso

Este artículo del blog de Healey Codes detalla la construcción de una shell de comandos simplificada, llamada 'andsh', como un ejercicio de aprendizaje. El objetivo es comprender el funcionamiento interno de una shell, más allá de su uso para ejecutar comandos y scripts. La shell es un programa inte

Linux: Un libro experto ahora en aulas universitarias

El libro "The Linux Programming Interface" (TLPI) ha encontrado una inesperada pero valiosa aplicación: como material didáctico en cursos universitarios de programación para Linux y sistemas UNIX. Aunque su autor no lo diseñó específicamente para este mercado, su exhaustiva cobertura de los aspectos

SBCL: Hilos Ligeros Mejoran la Concurrencia

Este documento describe una implementación de hilos cooperativos ligeros (fibers) para SBCL, una implementación de Common Lisp. El objetivo principal es proporcionar una alternativa eficiente a los hilos del sistema operativo (OS) para manejar aplicaciones concurrentes, especialmente aquellas con ca

Cómo funciona el planificador de Go

El sistema de planificación (scheduler) de Go es un componente crucial del runtime que gestiona la ejecución concurrente de goroutines, que son funciones ligeras que pueden ejecutarse simultáneamente. Dado que el número de goroutines puede superar con creces el número de núcleos de CPU disponibles,

Programador descubre la dificultad del ensamblador

Este artículo del blog narra la experiencia de un programador de aplicaciones que, durante un período de desempleo, decidió seguir un tutorial para construir un sistema operativo en 1000 líneas de código, utilizando ensamblador. La principal conclusión es que sus habilidades de depuración, muy desar

Linux y PostgreSQL: ¿Mejoras en el rendimiento?

Este artículo del blog de Erthalion explora recientes cambios en el kernel de Linux que podrían ser relevantes para la base de datos PostgreSQL. El objetivo principal es identificar mejoras potenciales en el rendimiento y nuevas funcionalidades que el kernel ofrece y que podrían beneficiar a Postgre

C++: ¿por qué la memoria inicial es de 72 KB?

El artículo investiga por qué la primera asignación de memoria en C++ (usando `malloc`) suele ser de 72 KB. El autor, un desarrollador que experimenta con sus propios allocators de memoria, descubrió este patrón recurrente al registrar el tamaño de las asignaciones. Para rastrear el origen de esta a

Depuradores: Ejecución y Pausas, Guía Práctica

Este artículo de dgtlgrove.com, parte de una serie sobre depuradores, explica cómo implementar funcionalidades básicas como el 'stepping' a nivel de instrucción (ejecutar una instrucción a la vez) y los puntos de interrupción (breakpoints) en un depurador. Para entenderlo, es crucial recordar que un

Kernel Oops: Guía para depurar errores en Linux

En el mundo del desarrollo de software, especialmente en sistemas operativos como Linux, los errores son inevitables. Un 'Kernel Oops' es un tipo de error que, a diferencia de un 'Kernel Panic' (que provoca un fallo del sistema), permite que el kernel se recupere. Este artículo explica cómo depurar

R3Forth: Lenguaje eficiente para sistemas limitados

R3Forth es un lenguaje de programación y un entorno de ejecución diseñado para la eficiencia y la portabilidad, especialmente útil en entornos con recursos limitados o donde la predictibilidad del rendimiento es crucial. Su origen está ligado a la necesidad de crear un sistema de control robusto y a

Símbolos ELF: La Guía Esencial para Programadores

Este artículo es una guía introductoria a los símbolos ELF (Executable and Linkable Format), un concepto fundamental en la programación y el análisis de sistemas. Los símbolos son esencialmente nombres que representan funciones, variables u otros elementos del código, utilizados por el enlazador par

YouTube Moderniza su Base con Rust

## Rust - Actualización Naval: Una Mirada Profunda a la Modernización de la Infraestructura de YouTube El reciente anuncio de "Rust - Naval Update" por parte de YouTube representa un cambio significativo en la infraestructura subyacente que impulsa la plataforma. En esencia, se trata de una migraci