15 puntos por GN⁺ 2025-09-08 | Aún no hay comentarios. | Compartir por WhatsApp
  • El driver ftape es el único driver de kernel open source de Linux capaz de recuperar datos de cintas de respaldo (QIC-80) de los años 90
  • Sin embargo, este driver dejó de mantenerse después del año 2000, por lo que solo podía usarse en entornos Linux antiguos
  • Con Claude Code, se refactorizó el código fuente antiguo para adaptarlo al kernel de Linux moderno y se convirtió con éxito en un módulo de kernel independiente
  • Durante el proceso, Claude convirtió automáticamente funciones y estructuras obsoletas a la API moderna, mientras el usuario analizaba manualmente los resultados para corregir algunos errores de configuración
  • A partir de esta experiencia usando un agente de programación con IA, se obtuvieron ideas sobre cómo amplificar la capacidad del programador y hacer onboarding rápidamente en nuevas tecnologías y frameworks

Contexto: recuperación de cintas de respaldo antiguas y el driver ftape

  • Recuperar datos de cartuchos de cinta como QIC-80 es uno de los pasatiempos del autor
  • Estas cintas suelen requerir unidades de cinta especiales conectadas al controlador de disquete
    • Estas unidades se usaban principalmente en los años 90 por pequeños negocios o usuarios particulares para respaldos
    • Este enfoque, basado en el controlador de disquete, permitía una implementación barata sin un adaptador SCSI dedicado, pero tenía varias desventajas como la limitación de velocidad (500 Kbps) y un protocolo no estándar
  • Para comunicarse con este hardware de cinta, en Linux es indispensable el driver de kernel ftape
    • Como solo ftape puede leer los datos binarios crudos puros, es imprescindible para la recuperación
  • Pero el driver ftape dejó de mantenerse desde alrededor del año 2000, así que no podía usarse en kernels modernos de Linux
    • Por eso, cada vez que se quería recuperar datos, había que arrancar manualmente una distribución Linux antigua (como CentOS 3.5)

Comienza la modernización del driver de kernel con Claude Code

  • Se le pidió a Claude Code, junto con una explicación del repositorio, que modernizara el driver para que pudiera compilarse en kernels actuales
  • Claude identificó y reemplazó funciones y estructuras obsoletas para ajustarlas a la API y la arquitectura actuales del kernel
    • Tras varias rondas de feedback y correcciones manuales, se completó un driver que compilaba sin errores
  • Al principio, el código solo podía compilarse dentro del árbol completo del código fuente del kernel, pero con una solicitud adicional generó automáticamente un sistema de compilación para módulo externo e independiente
    • Gracias a eso, fue posible crear por separado un módulo de kernel en formato .ko y comenzar las pruebas con hardware real

Proceso de resolución de problemas

  • El módulo de kernel se cargó correctamente, pero aparecieron problemas de detección y comunicación con la unidad
    • Como eran tareas que requerían permisos de sudo, Claude no podía ejecutarlas repetidamente por sí mismo, así que se le compartieron manualmente los logs de dmesg para rastrear el problema
  • Comparando los logs con casos previos exitosos, Claude detectó un bug relacionado con la falta de configuración del puerto I/O predeterminado y con la inicialización de parámetros
    • El valor por defecto pasó de -1 a 0xffff, lo que impedía la detección; al restablecer la dirección correcta, el problema se resolvió
  • Finalmente, el módulo se cargó correctamente y se logró volcar los datos de una cinta de prueba

Qué deja esta experiencia de colaboración con un agente de programación con IA

  • La interacción con Claude Code se sintió como "colaborar con un desarrollador junior", parecida a trabajar con un ingeniero real
    • El usuario igual tuvo que liderar activamente las decisiones de arquitectura, la detección de problemas y la dirección del trabajo
  • Cuanto más específicos y orientados al dominio sean los keywords y pedidos, más efectivo resulta
  • La productividad de un agente de IA aumenta drásticamente cuando recibe el tipo de tarea adecuado, por lo que hace falta criterio para entender sus límites y fortalezas
  • La IA logró multiplicar la capacidad del autor. Un trabajo que a mano habría tomado semanas se completó en pocos días solo con conversaciones cotidianas y feedback
    • En el proceso también se aprendieron habilidades realmente útiles, como prácticas modernas de desarrollo de kernel, arquitectura x86 y nuevas herramientas de línea de comandos
  • Se enfatiza que también acelera mucho el onboarding y la adaptación inicial a nuevos frameworks (como Rust o Flutter)

Conclusión: ftape vuelve a la vida

  • Después de 25 años, ftape vuelve a poder compilarse y usarse en Linux moderno
  • El autor sigue haciendo mejoras adicionales y pruebas, y además de unidades basadas en disquete, confirmó soporte para dispositivos basados en puerto paralelo
  • El hardware físico sigue siendo casi el mismo que antes, pero el sistema operativo cambió de CentOS 3.5 a Xubuntu 24.04

Referencia

  • El código fuente del proyecto ftape está disponible en GitHub
  • En el blog personal del autor también puede verse la lista de equipos de su colección

Aún no hay comentarios.

Aún no hay comentarios.