During the late 1970s and early 1980s, it was fairly common for computer firms such as Apple and IBM to make the source code to their machines' BIOSes widely available, as low-level programming was more popular, and the user base of home PCs was more technical than it is today. This meant that it was easy to use the code and build a clone computer. However, then - as now - Apple took a dim view of anyone interfering with its hardware. In a 1983 court case, Apple vs Franklin Computer Corp, the judge handed Apple a victory in which it ruled that it was illegal to build a clone machine that had a BIOS that contained copied code.
In order to get around this, Compaq, Phoenix and other companies decided to reverse-engineer the BIOS of IBM's PC using the 'Chinese wall' technique (otherwise known as 'clean room'). Using this method, you need two sets of engineers. The first set study the target - in this case, the BIOS of the IBM PC - and describe everything that it does, such as waking the system, controlling disk access and so forth, in minute detail. The second team, without having seen the target, or having had any contact with the first team, is given the first team's report. This divide between the two teams is the 'Chinese wall' that gives the technique its name. The second team's task is to create a product that performs all the tasks set forth in team one's report. This means that you have a product that's 100 per cent compatible, but also 100 per cent original. While the end result performs exactly the same tasks as the target, it's all new code, and therefore completely legal.
While this method doesn't break any laws, it's hugely time-consuming and expensive. In the early 1980s, the BIOS of a PC was only a few KB in length, yet it cost Compaq $1 million to use the Chinese wall technique to break it. With current BIOSes weighing in with over a million lines of code, the Chinese wall technique simply isn't practical.
Fastest, cheapest 3G mobile broadband dongles from 3, Vodafone, T-Mobile and Orange
from just £10/month