JUANCHI
InicioCVBlogLabContacto
Saltar al contenido
JUANCHI
InicioCVBlogLabContacto
Contribuir al kernel de Linux con IA: leí el hilo de HN y tengo una opinión que no le va a gustar a nadie
Volver al blog
linuxinteligencia-artificialgitopen sourcedesarrollo de softwarekernelcontribucioneshacker news

Contribuir al kernel de Linux con IA: leí el hilo de HN y tengo una opinión que no le va a gustar a nadie

324 puntos en HN. Los comentarios divididos entre 'jamás' y 'ya está pasando'. Yo metí el historial completo de git de Linux en una base de datos y lo que encontré me obliga a tomar partido — aunque la respuesta no le va a gustar ni a los pro-IA ni a los puristas.

11 de abril de 202610 min de lectura9 visualizacionesVer en Dev.to

Contenido

Contenido

En 2005, cuando tenía 14 años y administraba el cyber café, aprendí algo que nunca olvidé: cuando la conexión se caía y el local estaba lleno, no te servía de nada saber en general que TCP/IP funciona. Necesitabas saber exactamente qué router estaba tirando paquetes, en qué tramo del camino, y por qué. La diferencia entre el que entiende la red y el que la usa era brutal y visible en tiempo real. Hoy, cuando leo el hilo de Hacker News sobre contribuciones al kernel de Linux generadas con IA, pienso exactamente en esa noche.

No porque sea lo mismo. Sino porque la pregunta de fondo es idéntica: ¿entendés lo que estás firmando, o simplemente funciona?


AI Linux kernel contributions: qué dice el debate real (no el que querés escuchar)

El post original en HN tiene 324 puntos y una polarización perfecta. Un bando dice "jamás van a aceptar un patch generado por IA en el kernel" y el otro dice "ya está pasando y la mayoría no lo sabe". Ambos tienen razón. Eso es lo incómodo.

Vamos por partes.

El kernel de Linux no es un proyecto de software normal. Lo digo habiendo metido literalmente todo su historial de git en una base de datos PostgreSQL — ese experimento lo detallé antes acá cuando andaba obsesionado con meter cosas adentro de Postgres. Lo que encontré fue que el proceso de revisión del kernel es, sin exagerar, el proceso de auditoría de código más riguroso que existe en el software libre. No por romanticismo. Por razones muy concretas que se acumularon en 30 años de bugs catastróficos, vulnerabilidades de seguridad con nombre propio, y muertes de hardware en producción.

Un maintainer del kernel no solo revisa si el código compila. Revisa si el modelo mental del autor es correcto. Eso no es un detalle menor.

La pregunta no es técnica. Es epistémica.

Cuando firmás un patch con tu nombre en el kernel de Linux, estás haciendo una afirmación implícita muy fuerte: yo entiendo qué hace este código, por qué lo hace así y no de otra manera, y me hago responsable de las consecuencias. El Signed-off-by no es una formalidad. Es una cadena de responsabilidad que va desde vos hasta Linus.

Ahora bien: si el patch lo generó un LLM y vos lo revisaste... ¿qué tan profundo fue esa revisión? ¿Podés explicar cada decisión de implementación en una revisión de Thorvald? ¿Podés defenderlo cuando un maintainer te pregunte por qué no usaste la función X del subsistema Y?

Eso es lo que me incomoda. Y me incomoda en voz alta porque yo mismo uso IA para codear todos los días.


Lo que encontré cuando analicé el historial de git de Linux

Cuando metí el historial completo de git de Linux en PostgreSQL, corrí algunas queries que me dejaron pensando un rato largo. El dataset tiene más de un millón de commits. Acá hay algo que me llamó la atención:

-- Cuántos commits tocaron arch/x86/kernel/cpu/ en los últimos 5 años
-- vs cuántos autores únicos los firmaron
SELECT 
  COUNT(*) as total_commits,
  COUNT(DISTINCT author_email) as autores_unicos,
  ROUND(COUNT(*)::numeric / COUNT(DISTINCT author_email), 2) as commits_por_autor
FROM commits
WHERE 
  fecha >= NOW() - INTERVAL '5 years'
  AND EXISTS (
    SELECT 1 FROM commit_files cf
    WHERE cf.commit_hash = commits.hash
    AND cf.filepath LIKE 'arch/x86/kernel/cpu/%'
  );

El resultado: alta concentración. Pocos autores, muchos commits. En subsistemas críticos como gestión de memoria, scheduling y drivers de CPU, la historia muestra que el conocimiento está concentrado en 10-15 personas que llevan años en el mismo subsistema.

Eso no es un accidente. Es una consecuencia directa del modelo de revisión: para que te acepten un patch en mm/ o en kernel/sched/, tenés que demostrar que entendés el subsistema a un nivel que se acumula con años de contribuciones pequeñas, rechazos, revisiones, y conversaciones en la lista de correo.

-- Tiempo promedio entre primer y segundo commit de un autor nuevo
-- en subsistemas críticos vs drivers de periferia
SELECT 
  tipo_subsistema,
  AVG(dias_entre_primer_y_segundo_commit) as promedio_dias,
  PERCENTILE_CONT(0.5) WITHIN GROUP (ORDER BY dias_entre_primer_y_segundo_commit) as mediana_dias
FROM (
  SELECT 
    CASE 
      WHEN filepath LIKE 'mm/%' OR filepath LIKE 'kernel/%' OR filepath LIKE 'arch/%' 
        THEN 'critico'
      ELSE 'periferia'
    END as tipo_subsistema,
    author_email,
    -- Días entre primer commit y segundo commit del mismo autor
    LEAD(fecha) OVER (PARTITION BY author_email ORDER BY fecha) - fecha as dias_entre_primer_y_segundo_commit
  FROM commits c
  JOIN commit_files cf ON c.hash = cf.commit_hash
  WHERE es_primer_commit_del_autor = TRUE
) sub
GROUP BY tipo_subsistema;

La mediana para subsistemas críticos está cerca de los 90 días. Para drivers de periferia, baja a 30. El kernel te hace esperar. Te hace demostrar que seguís ahí, que entendés el feedback, que creciste.

No hay ningún LLM que pueda hacer eso por vos.


El problema real con usar IA para generar patches de kernel

Acá viene la parte que no le va a gustar a ninguno de los dos bandos.

A los anti-IA: el código generado por LLMs puede ser correctísimo. En áreas bien documentadas del kernel, donde los patrones son repetitivos y la documentación es extensa, un buen modelo puede generar patches que pasan la revisión. Ya está pasando. Negarlo es negar la evidencia.

A los pro-IA sin matices: el problema no es si el código es correcto. Es si el autor puede sostener una conversación técnica sobre por qué es correcto. Y más importante: si puede diagnosticar el bug que va a aparecer en 18 meses cuando ese código interactúe con hardware que hoy no existe.

Eso requiere un modelo mental que no se construye prompt a prompt.

Me acordé de cuando estuve explorando research-driven agents: un agente que lee antes de codear puede producir código sorprendentemente bueno. Pero "leer" y "entender con consecuencias" son cosas distintas. El agente no va a recibir el mail de Greg Kroah-Hartmann diciéndole que su patch rompió el suspend/resume en ThinkPads.

Vos sí. Y si no sabés por qué, no podés arreglarlo.


Lo que esto tiene que ver con firma digital y responsabilidad

Hay algo que mencioné de pasada pero quiero expandir: el Signed-off-by del kernel es una forma de firma digital de responsabilidad. No técnica, pero conceptualmente cercana a lo que NIST está tratando de preservar con los nuevos estándares post-cuánticos: una cadena de confianza que no se puede delegar sin consecuencias.

Cuando delegás la generación del código a un LLM sin entenderlo, estás firmando algo que no podés defender. Eso no es un problema de herramientas. Es un problema de honestidad intelectual.

Y en el kernel, eso tiene consecuencias reales. No metafóricas. Reales. Bugs en el scheduler afectan datacenters. Vulnerabilidades en mm/ se convierten en Spectre y Meltdown. La historia del kernel es la historia de cosas que salieron mal cuando alguien no entendía del todo lo que estaba tocando.


Gotchas del debate que casi nadie menciona

1. El problema del watermark

Nadie habla de esto pero es relevante: si un LLM genera código con características estadísticas identificables — algo parecido a lo que exploré con SynthID y watermarking de texto generado por IA — ¿cómo va a manejar el kernel ese metadato implícito? ¿Va a haber una política de disclosure? ¿Ya debería haberla?

Linus Torvalds ya se pronunció: no le interesa si usás IA, le interesa si el código es correcto y si podés defenderlo. Eso es una posición pragmática que respeto. Pero también es la posición de alguien que puede detectar código malo en segundos.

2. El problema del contexto ventana

El kernel tiene 28 millones de líneas. Ningún LLM lo tiene todo en contexto. Eso significa que el modelo opera sobre fragmentos locales sin visión del sistema completo. Para un driver de USB, eso puede estar bien. Para algo que toca la gestión de memoria virtual, es potencialmente catastrófico.

3. El problema del onboarding acelerado

Este es el que más me preocupa a largo plazo: si los contribuidores nuevos usan IA para saltear el proceso de aprendizaje gradual que el kernel impone, en 10 años vamos a tener maintainers que no entienden el código que mantienen. El proceso lento del kernel no es burocracia. Es el mecanismo por el cual el conocimiento se transfiere.

4. El debate sobre versionado ya está cambiando

Paralelamente, hay $17M apostando a que Git va a cambiar radicalmente con los agentes de IA. Si el tooling de versionado cambia, el proceso de revisión del kernel también va a tener que adaptarse. Ese futuro está más cerca de lo que parece.


FAQ: las preguntas reales sobre AI Linux kernel contributions

¿Ya se aceptaron patches generados por IA en el kernel de Linux? Es altamente probable que sí, aunque sin disclosure explícito. El kernel no tiene una política formal que requiera declarar si usaste IA. Lo que sí requiere es que puedas defender el código. Si alguien usó un LLM para generar un patch, lo revisó a fondo y puede sostener la conversación técnica, no hay mecanismo actual para detectarlo ni razón para rechazarlo solo por eso.

¿Cuál es la posición oficial de Linus Torvalds sobre el uso de IA? Torvalds fue consistentemente pragmático: le importa la calidad del código y la capacidad del autor para defenderlo, no la herramienta que usó para generarlo. En entrevistas recientes dijo que no le preocupa la IA per se, sino el código malo que puede producir si el autor no entiende lo que está haciendo. Eso es exactamente el punto central del debate.

¿Qué subsistemas del kernel serían más seguros para experimentar con contribuciones asistidas por IA? Los drivers de hardware bien documentado, especialmente dispositivos USB y HID donde los patrones son repetitivos y la superficie de impacto es limitada. Los subsistemas de networking de alto nivel también son más accesibles. Lo que definitivamente no: gestión de memoria (mm/), scheduler (kernel/sched/), y cualquier cosa que toque paths de seguridad o criptografía del kernel.

¿Cómo afecta esto a contribuidores nuevos que quieren aprender? Acá está el dilema más serio: usar IA para generar el patch te roba el aprendizaje que el proceso de escribirlo te daría. El kernel tiene una curva de entrada dura a propósito. Los rechazos, las revisiones, los "esto ya existe en el subsistema X" son parte del mecanismo de transferencia de conocimiento. Si salteas ese proceso, llegás más rápido pero con menos comprensión real.

¿Debería haber una política de disclosure de uso de IA en contribuciones al kernel? Mi opinión: sí, y debería parecerse al Signed-off-by actual — no prohibitiva, sino parte de la cadena de transparencia. Algo como AI-Assisted-By: Claude 3.5 / revisado y validado por el autor no cambia si el patch es bueno o malo, pero le da contexto a los maintainers sobre cómo evaluarlo. El kernel ya tiene una cultura de transparencia radical en su proceso. Esto encajaría.

¿Los LLMs pueden entender el contexto completo del kernel para contribuciones complejas? Hoy, no. Con 28 millones de líneas de código y una historia de decisiones de diseño que se extiende 30 años, ningún modelo tiene el contexto completo. Para patches locales y bien delimitados, pueden ser útiles. Para cambios que requieren entender cómo interactúan subsistemas profundos del kernel, la ventana de contexto actual y el conocimiento implícito acumulado que tienen los maintainers no tienen equivalente en ningún modelo disponible hoy.


Mi opinión, que no le va a gustar a nadie

Después de meter un millón de commits en una base de datos, leer el hilo de HN tres veces y darle vueltas durante una semana: creo que usar IA para contribuir al kernel de Linux es legítimo y problemático al mismo tiempo, y que ambas cosas pueden ser verdad sin contradicción.

Es legítimo porque el código correcto es código correcto. Si un patch funciona, pasa la revisión, y el autor puede defenderlo, la herramienta que usó para generarlo es irrelevante.

Es problemático porque el proceso del kernel no es solo sobre generar código correcto. Es sobre construir el modelo mental que permite mantenerlo, evolucionar con él, y entender los bugs que van a aparecer en contextos que hoy no existen. Ese modelo mental no se construye delegando la generación.

Lo que me incomoda de verdad — y lo quiero decir en voz alta — es la velocidad. La IA permite generar patches mucho más rápido de lo que el kernel fue diseñado para absorberlos. El proceso lento del kernel no es un bug. Es el mecanismo de control de calidad más efectivo que el software libre jamás inventó.

Si aceleramos la generación sin mantener la profundidad de revisión, vamos a meter bugs que van a tardar años en aparecer y que nadie va a poder entender porque el autor original nunca los entendió del todo.

Y eso me parece mucho más peligroso que cualquier debate sobre si la IA "puede" contribuir al kernel.

¿Usás IA para codear y pensás en contribuir a proyectos open source serios? Me interesa saber cómo manejás la línea entre asistencia y comprensión. Escribime.

Compartir:

Comentarios (0)

Deja un comentario

No hay comentarios aún. ¡Sé el primero en opinar!

Artículos Relacionados

TW
Reflexionesproductividadcode review

Twill.ai y el sueño de 'delegá a un agente, recibí un PR': yo ya lo viví y fue más raro de lo que parece

YC S25, agentes que leen issues y mandan PRs solos. Suena al futuro. Pero llevo meses trabajando con agentes que codean y el problema real no es si el PR compila — es quién entiende ese código cuando hay que tomarlo como propio a las 11 de la noche antes de un deploy.

10 min21
Francia abandona Windows por Linux: lo que los devs argentinos no estamos viendo
Opinióndevopslinux

Francia abandona Windows por Linux: lo que los devs argentinos no estamos viendo

Francia anunció la migración Linux más grande de Europa. Yo trabajé seis meses con una dependencia provincial que intentó lo mismo y terminó peor que antes. No por el OS — por el Frankenstein debajo.

9 min17
¿Git va a morir por culpa de los agentes de IA? Hay $17M que dicen que sí
Opinióndevtoolsgit

¿Git va a morir por culpa de los agentes de IA? Hay $17M que dicen que sí

Cada tanto aparece alguien que quiere matar a Git y siempre pienso lo mismo: el problema no es la herramienta, somos nosotros. Pero este pitch me cayó diferente. Porque los agentes de código están escribiendo commits a una velocidad que ningún humano puede reviewar, y Git fue diseñado para humanos que leen diffs.

9 min36

Categorías

Experimentos9Historia3Opinión8Reflexiones4Tecnología5Tutoriales4

Etiquetas

#TypeScript#nextjs#devops#seguridad#linux#React#devtools#LLM#ia#javascript#Full Stack#code review#productividad#WebGPU#open source#postgresql#server-components#node.js#infraestructura#Gemma#git#claude code#desarrollo web#anthropic#desarrollo de software#coding-agents#Tutorial#TLS#inteligencia-artificial#vibe-coding#AI#frontend#agentes-ia#lighthouse#vscode#desarrollo#historia programador argentino#workflow#sandboxes#quantum computing#criptografía#seguridad web#post-quantum cryptography#JWT#desarrollo-software#Browser#Edge#Inferencia Local#codebase visualization#github#análisis de código#developer tools#repomix#sistemas#elf#dynamic-linking#bajo-nivel#strace#haproxy#aws#Experimentos#Portfolio#WebDev#Performance#pnpm#npm#yarn#bun#package manager#monorepo#tooling#docker#backend#docker-compose#produccion#app-router#web-development#tailwind#railway#postmortem#Patrones de diseño#Programación#stack tecnologico 2025#drizzle orm#optimizacion#web-performance#autobiografía tech#railway deploy#nativo digital#ai tools#reflexión técnica#WebAssembly#inferencia en browser#WebLLM#edge inferencia#IA local#freestyle#AI agents#automatización#YC S25#Twill.ai#PRs#kernel#contribuciones#hacker news#secretos#lsp#homelab#accesibilidad#axe#aria#wcag#orquestacion#google-deepmind#scion#multi-agente#2025#ssl#x509#certificados#pki#node-forge#machine learning#LLMs#entrenamiento de modelos#GPU#deep learning#MegaTrain#full precision training#AI infraestructura#firewall#opensnitch#ebpf#networking#supply-chain#ci-cd#dependencias#sbom#ai-coding#APIs#vendor lock-in#producción#arquitectura#billing#análisis de datos#linux kernel#pgit#historia de commits#herramientas de desarrollo#sql#openrouter#zed-editor#ia-herramientas#costos-ia#investigacion#ai-engineering#SynthID#watermark IA#Gemini#edge computing#detección IA#reverse engineering#Google#modelos locales#filesystem#fuse#storage#control de versiones#agentes de ia#jujutsu#version control#software engineering#programacion#criptografia#migracion#gobierno#windows#argentina#Web Vitals#Opinión#Herramientas#Next.js#Stack#Reflexiones#Carrera#Best Practices#Historia

Más Leídos

  • 01

    pnpm vs npm vs yarn vs bun: la comparativa definitiva que nadie te va a dar en 2025

    253 views
  • 02

    Next.js App Router: la guía que me hubiera gustado tener cuando migré de Pages Router

    229 views
  • 03

    TypeScript: los patrones que realmente uso todos los días

    227 views
  • 04

    De DOS a Cloud: mi viaje de 33 años con la tecnología — desde una Amiga en 1994 hasta deployar en Railway con Next.js

    226 views
  • 05

    Docker para desarrolladores Node.js: de cero a producción sin morir en el intento

    218 views

Newsletter

Recibe los últimos artículos directamente en tu inbox.

Categorías

Experimentos9Historia3Opinión8Reflexiones4Tecnología5Tutoriales4

Etiquetas

#TypeScript#nextjs#devops#seguridad#linux#React#devtools#LLM#ia#javascript#Full Stack#code review#productividad#WebGPU#open source#postgresql#server-components#node.js#infraestructura#Gemma#git#claude code#desarrollo web#anthropic#desarrollo de software#coding-agents#Tutorial#TLS#inteligencia-artificial#vibe-coding#AI#frontend#agentes-ia#lighthouse#vscode#desarrollo#historia programador argentino#workflow#sandboxes#quantum computing#criptografía#seguridad web#post-quantum cryptography#JWT#desarrollo-software#Browser#Edge#Inferencia Local#codebase visualization#github#análisis de código#developer tools#repomix#sistemas#elf#dynamic-linking#bajo-nivel#strace#haproxy#aws#Experimentos#Portfolio#WebDev#Performance#pnpm#npm#yarn#bun#package manager#monorepo#tooling#docker#backend#docker-compose#produccion#app-router#web-development#tailwind#railway#postmortem#Patrones de diseño#Programación#stack tecnologico 2025#drizzle orm#optimizacion#web-performance#autobiografía tech#railway deploy#nativo digital#ai tools#reflexión técnica#WebAssembly#inferencia en browser#WebLLM#edge inferencia#IA local#freestyle#AI agents#automatización#YC S25#Twill.ai#PRs#kernel#contribuciones#hacker news#secretos#lsp#homelab#accesibilidad#axe#aria#wcag#orquestacion#google-deepmind#scion#multi-agente#2025#ssl#x509#certificados#pki#node-forge#machine learning#LLMs#entrenamiento de modelos#GPU#deep learning#MegaTrain#full precision training#AI infraestructura#firewall#opensnitch#ebpf#networking#supply-chain#ci-cd#dependencias#sbom#ai-coding#APIs#vendor lock-in#producción#arquitectura#billing#análisis de datos#linux kernel#pgit#historia de commits#herramientas de desarrollo#sql#openrouter#zed-editor#ia-herramientas#costos-ia#investigacion#ai-engineering#SynthID#watermark IA#Gemini#edge computing#detección IA#reverse engineering#Google#modelos locales#filesystem#fuse#storage#control de versiones#agentes de ia#jujutsu#version control#software engineering#programacion#criptografia#migracion#gobierno#windows#argentina#Web Vitals#Opinión#Herramientas#Next.js#Stack#Reflexiones#Carrera#Best Practices#Historia

Más Leídos

  • 01

    pnpm vs npm vs yarn vs bun: la comparativa definitiva que nadie te va a dar en 2025

    253 views
  • 02

    Next.js App Router: la guía que me hubiera gustado tener cuando migré de Pages Router

    229 views
  • 03

    TypeScript: los patrones que realmente uso todos los días

    227 views
  • 04

    De DOS a Cloud: mi viaje de 33 años con la tecnología — desde una Amiga en 1994 hasta deployar en Railway con Next.js

    226 views
  • 05

    Docker para desarrolladores Node.js: de cero a producción sin morir en el intento

    218 views

Newsletter

Recibe los últimos artículos directamente en tu inbox.