Cómo funciona

Una clean-room implementation es una disciplina para producir una implementación nueva controlando la procedencia de la información que llega a quienes escriben el código. En su forma clásica de dos equipos, un grupo estudia el sistema original mediante documentación permitida, ejecución, mediciones o ingeniería inversa orientada a interoperabilidad y redacta una especificación funcional. Otro grupo, aislado del código y de otros materiales expresivos del original, programa a partir de esa especificación. Registros de acceso, reglas de elegibilidad de contribuidores, revisiones de procedencia y conservación de pruebas hacen que la separación sea auditable; la mera afirmación de que el código se escribió “desde cero” no crea esa trazabilidad.

La expresión clean-room reverse engineering se usa a veces para todo ese conducto, pero conviene conservar sus dos operaciones. La ingeniería inversa extrae información funcional; la implementación limpia controla cómo esa información llega a una realización nueva. Puede existir la primera sin el segundo equipo y puede existir una implementación limpia basada sólo en una especificación pública, sin desensamblar nada.

El método intenta conservar el contrato observable —entradas, salidas, llamadas, formatos, secuencias y errores necesarios para la compatibilidad— y sustituir la expresión concreta: instrucciones, organización interna, comentarios, nombres privados y decisiones de diseño que no sean necesarias para cumplir ese contrato. El Computer History Museum describe cómo Columbia Data Products recreó en 1982 un BIOS equivalente al del IBM PC en un entorno clean room sin mirar el código de IBM. En el mismo ecosistema, el Compaq Portable convirtió una BIOS reimplementada y hardware compatible en una alternativa capaz de ejecutar el software destinado al PC. En 1984 Phoenix volvió el procedimiento un insumo reutilizable: su fundador describió un equipo que estudiaba funciones y las transmitía a un implementador no expuesto a la BIOS, y la empresa licenció la ROM BIOS resultante a otros fabricantes. Los episodios importan porque muestran que el objeto conservado no era “el programa” en bloque: eran los puntos de acoplamiento que el software existente esperaba encontrar.

La separación admite variantes más estrictas o más flexibles. GNU Classpath, por ejemplo, pidió que no contribuyeran a un paquete quienes hubieran estudiado una implementación propietaria de ese paquete y dirigió a los desarrolladores hacia especificaciones públicas. ReactOS formalizó en 2006 una política según la cual una persona documentaría cierto comportamiento obtenido por ingeniería inversa y otra implementaría desde esa documentación; además auditó código ante dudas sobre contaminación. Son políticas internas de gestión del riesgo y de la confianza en la procedencia, no descripciones universales de lo que exige cada jurisdicción.

Qué no es

Clean room no es sinónimo de Black-box analysis: se puede observar una caja negra sin separar equipos, y un equipo limpio puede trabajar principalmente desde una especificación publicada. Tampoco es el producto final: ese producto puede ser una reimplementación de API, una reimplementación de protocolo o un sistema compatible. La limpieza describe el flujo de conocimiento y la independencia de la expresión; la compatibilidad describe lo que el resultado puede sustituir.

Tampoco existe una regla general según la cual el proceso vuelva “legal” cualquier clon. En Estados Unidos, el copyright distingue expresión de ideas, procesos y métodos de operación, pero pueden seguir importando patentes, secretos empresariales, contratos, medidas tecnológicas, marcas y la copia de elementos expresivos. En la Unión Europea, la Directiva 2009/24/CE establece condiciones concretas para observar, estudiar, probar o descompilar con fines de interoperabilidad. Una barrera organizativa puede aportar evidencia de desarrollo independiente; no decide por adelantado qué estaba protegido ni resuelve todas las otras fuentes de responsabilidad. Esta ficha describe una práctica de ingeniería e historia, no ofrece asesoría jurídica.

Operación de inventiva

La operación consiste en separar contrato y realización, y después reconstruir la realización sin transportar la expresión del ejemplar de partida. Obliga a formular cuáles conductas son invariantes para terceros y cuáles decisiones internas eran contingentes. La restricción sobre la procedencia del conocimiento se convierte así en una herramienta de diseño: una especificación tiene que ser suficientemente precisa para que otra persona produzca compatibilidad sin recibir la solución original.

Fuentes