Dmitry Brant de la organización Wikimedia presentó el puerto del controlador ftape para núcleos modernos de Linux. El controlador dejó de actualizarse en el año 2000 y fue eliminado del núcleo 2.6.20 en 2006 debido a problemas de funcionamiento en sistemas multiprocesador. Para reanudar la posibilidad de compilar y operar el controlador en distribuciones con núcleos modernos de Linux, fue necesaria su revisión considerando los cambios en las API internas y subsistemas del núcleo que se han producido en los últimos 20 años.
El port es notable porque fue realizado casi en su totalidad por el asistente de IA Claude Code. Como resultado, se obtuvo un controlador completamente funcional, capaz de compilarse y operar en sistemas con núcleos 6.8 y posteriores. El port se realizó en tres etapas. En la primera etapa, se le asignó al asistente de IA la tarea de modificar el código del controlador, que solo podía compilarse con núcleos 2.4, para que funcionara con nuevas versiones del núcleo. La IA reemplazó con éxito las llamadas a funciones obsoletas del núcleo en el controlador por llamadas actuales, ajustó el uso de estructuras de datos y eliminó todos los errores que surgían durante la compilación.
En la segunda etapa, se asignó la tarea de convertir el controlador de una forma compilada en el núcleo a una versión capaz de funcionar como un módulo de núcleo cargable. El asistente de IA preparó el módulo cargable. En la tercera etapa, mediante la entrega al asistente de IA de la salida de dmesg con información sobre errores y problemas que surgían durante el funcionamiento, así como mensajes de dmesg de depuración de referencia del controlador antiguo en funcionamiento, el port se llevó a un estado operativo capaz de detectar la existencia de una unidad de cinta y extraer el contenido de los cartuchos.
El trabajo, que al principio parecía difícil y requería varias semanas de estudio de documentación, se logró en dos noches. Para crear el módulo operativo se necesitó tres consultas, varias discusiones y un par de correcciones manuales al código. Al mismo tiempo, Dmitry señala que no se debe sobreestimar a los asistentes de IA, que son solo herramientas que requieren una interacción consciente. Dmitry conoce el lenguaje C y tiene una noción de los módulos del núcleo, pero según su opinión, sería imposible hacer que la asistencia de IA actuara en la dirección correcta sin conocer el funcionamiento interno de los módulos del núcleo.
Al formular la tarea es necesario conocer la especificidad y utilizar terminología profesional, articulando claramente el marco de la función a implementar y definiendo los vacíos en este marco que debe llenar la IA. También es necesario estudiar las fortalezas y debilidades de los asistentes de IA para no darles tareas con las que no puedan lidiar bien. Para lograr resultados, Dmitry aconseja considerar al asistente de IA como un potenciador de las propias habilidades, y la comunicación con él como una colaboración con un ingeniero subordinado, que hará todo lo que se le diga, con deseos de agradar, seguro de sí mismo, pero que reconoce los errores. La toma de decisiones, el establecimiento de reglas y la responsabilidad por el resultado quedan a cargo del ser humano.
El controlador ftape está diseñado para trabajar con unidades de cinta que utilizan cartuchos QIC, los cuales emplean un formato propio y propietario de codificación y compresión de información. Estos dispositivos se usaron comúnmente en los años 90 para copias de seguridad. Las unidades de cinta soportadas por el controlador no requerían un costoso controlador SCSI y se conectaban a un controlador estándar de disquetes (por ejemplo, dispositivos Colorado Jumbo 250 y Ditto Max) o a un puerto paralelo (Trakker, Iomega Ditto).
Ftape fue el único controlador capaz de extraer volcados de cartuchos en modo raw, lo que permitía primero cargar un volcado completo y luego lidiar con la decodificación del formato y la extracción de archivos. Conectar el dispositivo a través del controlador de discos flexibles era similar a un hack, ya que el controlador tenía que "engañar" al controlador diseñado solo para trabajar con discos flexibles, para enviar comandos y organizar la interacción con el dispositivo de cinta.
Anteriormente, para extraer información de los cartuchos de cinta, Dmitry tenía que usar un ordenador separado con CentOS 3.5 y un núcleo 2.4.21. Después de portar el controlador, ahora es posible extraer archivos en PC con distribuciones modernas de Linux, como Ubuntu 24.04. Se soportan compilaciones de 32 y 64 bits, pero para trabajar con dispositivos conectados al controlador de discos flexibles, se requiere una placa base con dicho controlador.
Entre las áreas de aplicación del controlador se mencionan la recuperación de información de antiguos cartuchos de cinta y su uso en proyectos de recreación de computadoras retro. Más adelante, se tiene la intención de preparar herramientas para la extracción de datos de bajo nivel de dispositivos de cinta defectuosos, utilizando volcados raw para recuperar información, independientemente del estado de las tablas de particiones o la existencia de fallos en la corrección de errores.
Fuente: opennet.ru
