Reinraum-Implementierung
# Reinraum-Implementierung

Eine mit Hilfe von Reinraum-Design bzw. Cleanroom-Design (manchmal auch Chinesische-Mauer-Technik genannt) erstellte Software kopiert den Funktionsumfang einer schon existierenden Software, ohne den Code der existierenden Software (direkt) zu verwenden. Das Design wird aus den Spezifikationen von Schnittstellen, Dateiformaten und Protokollen abgeleitet und durch Reverse Engineering verifiziert.

## Beschreibung

Die mit Hilfe von Reinraum-Design erstellte Software leistet somit Vergleichbares wie die Vorlage, ist aber vollkommen unabhängig von dieser. Dies ist wichtig, weil in den meisten Ländern das Urheberrecht für Software nur die konkrete Implementierung unter Schutz stellt, nicht aber die Funktionsweise einer Software. Erstellt man somit eine Software nach dem Reinraum-Design, so ist die neue Software frei von Urheberrechten des Rechteinhabers der Vorlage.

Ein wichtiger Grund für die Erzeugung einer Reinraumimplementierung ist daneben historisch gewachsene Software. Dadurch, dass bei solcher Software zum Beginn der Entwicklung nicht unbedingt klar war, wie das Endergebnis aussehen würde, also nicht linear darauf hin entwickelt wurde, enthält sie häufig entwicklungsbedingte Schwächen, die sich im Nachhinein kaum beheben lassen. Solche Schwächen können das Laufzeitverhalten in den Punkten Sicherheit und Geschwindigkeit betreffen. Bei einer Reinraumimplementierung wird im Unterschied dazu versucht, direkt und stringent auf das bereits vollständig formulierte Endziel hin zu entwickeln.

Eine Reinraumimplementierung schützt nur vor Forderungen aus dem Urheberrecht. Andere gewerbliche Schutzrechte, wie das Patent- und Markenrecht können durch eine Reinraumimplementierung nicht umgangen werden. Aus diesem Grund legen sich gerade große Softwarekonzerne zunehmend ein großes Repertoire an Patenten zu.

Auch die Programmierung von Software aus einer durch Reverse Engineering gewonnenen Dokumentation bzw. Spezifikation bezeichnet man als Reinraumimplementierung. Diese Spezifikationsextraktion und die Nachprogrammierung müssen laut US-amerikanischer Rechtsinterpretation von verschiedenen Personen durchgeführt werden, einem Dirty room team (Reverse engineering) und einem Clean room team (Programmierer). Die extrahierte Dokumentation kann gegebenenfalls vor der Verwendung zusätzlich von einem Rechtsanwalt auf Urheberrechtsverletzung überprüft werden.

## Beispiele

Ein berühmtes historisches Beispiel ist der erste IBM-PC-kompatible Klon von Columbia Data Products (MPC 1600 „Multi Personal Computer“), welcher eine Reinraum-Nachimplementierung des IBM-BIOS enthielt.

Ein weiteres Beispiel ist der VTech-Klon des Apple-II-ROM für den Laser 128, den einzige Klon von vielen, der die rechtliche Auseinandersetzung mit Apple überstand.

Prominente Beispiele für Reinraum-Entwicklungen finden sich besonders im Open-Source-Umfeld, da in diesem Umfeld selten geeignete Lizenzvereinbarungen getroffen werden können. Beispiele sind das unixoide Betriebssystem Linux, die Windows-kompatible Laufzeitumgebung Wine oder das GPL lizenzierte Betriebssystem ReactOS.

