Clean room implementation

from Wikipedia, the free encyclopedia

A software created with the help of clean room design or clean room design (sometimes also called Great Wall of China technology ) copies the functionality of an existing software without using the code of the existing software (directly). The design is derived from the specifications of interfaces , file formats and protocols and verified by reverse engineering .

description

The software created with the help of clean room design thus performs similarly to the template, but is completely independent of it. This is important because in most countries the copyright for software only protects the actual implementation, not the functionality of the software. If you create software based on the clean room design, the new software is free from the copyrights of the copyright holder of the template.

An important reason for creating a clean room implementation is also software that has grown over time. Because such software was not necessarily clear at the beginning of development what the end result would look like, i.e. it was not developed linearly towards it, it often contains development-related weaknesses that can hardly be remedied afterwards. Such weaknesses can affect the runtime behavior in terms of security and speed. In the case of a clean room implementation, in contrast, attempts are made to develop directly and stringently towards the end goal that has already been fully formulated.

A clean room implementation only protects against claims from copyright law. Other industrial property rights, such as patent and trademark law, cannot be circumvented through a clean room implementation. For this reason, large software companies in particular are increasingly acquiring a large repertoire of patents.

The programming of software from a documentation or specification obtained through reverse engineering is also referred to as clean room implementation. According to the US legal interpretation, this specification extraction and the post-programming must be carried out by different people, a dirty room team (reverse engineering) and a clean room team (programmer). The extracted documentation can also be checked for copyright infringement by a lawyer prior to use.

Examples

A famous historical example is the first IBM-PC-compatible clone from Columbia Data Products ( MPC 1600 "Multi Personal Computer" ), which contained a clean room post-implementation of the IBM BIOS .

Another example is the VTech clone of Apple II - ROM for the laser 128 , the only clone of many of the legal recourse of Apple Computer survived.

Prominent examples of clean room developments can be found particularly in the open source environment, as suitable license agreements can rarely be made in this environment. Examples are the Unix-like operating system Linux , the Windows- compatible runtime environment Wine or the GPL- licensed ReactOS operating system .

See also

Web links

  • Article in Computerworld magazine (2001)

Individual evidence

  1. ^ A b c Mathew Schwartz: Reverse engineering . computerworld.com. November 12, 2001. Retrieved June 23, 2013: " To protect against charges of having simply (and illegally) copied IBM's BIOS, Phoenix reverse-engineered it using what's called a" clean room, "or" Chinese wall, "approach. First, a team of engineers studied the IBM BIOS — about 8KB of code — and described everything it did as completely as possible without using or referencing any actual code. Then Phoenix brought in a second team of programmers who had no prior knowledge of the IBM BIOS and had never seen its code. Working only from the first team's functional specifications, the second team wrote a new BIOS that operated as specified. "
  2. ^ Sean Hogle: Clean Room Defeats Software Infringement Claim in US Federal Court . October 23, 2008. Retrieved on May 23, 2013: " [...] dirty room reverse engineering should be done in conjunction with clean room development by using two physically and electronically isolated teams where one team does dirty room reverse engineering and the other does clean room development. If a dirty room team exists, the clean room engineers can write a description of the portion of the specification that needs elaboration or clarification. The dirty room engineers then use that request to create additional functional specifications or tests. "