Clone (computer science)
From Wikipedia, the free encyclopedia
The Jargon File has this definition for clone:
- An exact duplicate: "Our product is a clone of their product." Implies a legal reimplementation from documentation or by reverse-engineering. Also connotes lower price.
- A shoddy, spurious copy: "Their product is a clone of our product."
- A blatant ripoff, most likely violating copyright, patent, or trade secret protections: "Your product is a clone of my product." This use implies legal action is pending.
- [obs.] "PC clone:" a PC-BUS/ISA or EISA-compatible 80x86-based microcomputer (this use is sometimes spelled "klone" or "PClone"). These invariably have much more bang for the buck than the IBM archetypes they resemble. This term fell out of use in the 1990s; the class of machines it describes are now simply "PCs" or "Intel machines".
- [obs.] In the construction "Unix clone": An Operating system designed to deliver a Unix-lookalike environment without Unix license fees, or with additional "mission-critical" features such as support for real-time programming. Linux and the free BSDs killed off this product category and the term with it.
- v. To make an exact copy of something. "Let me clone that" might mean "I want to borrow that paper so I can make a photocopy" or "Let me get a copy of that file before you mung it".
[edit] Hardware
A clone is a computer system (both hardware and software) based on another company's system and designed to be compatible with it.
When IBM came out with the IBM PC in 1981, other companies such as Compaq decided to put out a clone of the PC as a legal reimplemenatation from the PC's documentation or reverse engineering. As most of the components except the PC's BIOS were publicly available, all Compaq had to do was reverse engineer the BIOS. The result was a machine that had more bang for the buck than the archetypes that the machine resembled. The term "PC clone" fell out of use in the 1990s; the class of machines it now describes are simply called PCs or Intel machines (or even Wintel machines).
[edit] Software
Software can be cloned by reverse engineering or legal reimplementation from documentation or other sources. Software such as MS-DOS's edlin line editor and the Unix operating system have been cloned. The reasons for cloning may include getting around draconian licensing fees or educating one's self about the features of the system. In the United States, the case of Lotus v. Borland allows programmers to clone the public functionality of a programs without infringing its copyright.
In software development the term clone can also refer to the process of duplicating an existing data set or object. There are two typical types of cloning. Shallow cloning is a simple copy of the original maintaining references to the original data set or object's references. Changes to a shallow clone will affect both the original and the clone. Deep cloning is a full and independent duplication of the original which will remain unchanged if the original is changed following the cloning process.
The term code clone, or source code clone, is sometimes used to describe duplicate code.