Clone (computing)

In computing, a clone is hardware or software that is designed to function in exactly the same way as another system. A specific subset of clones are remakes (or remades), which are revivals of old, obsolete, or discontinued products.

Motivation
Clones and remakes are created for reasons including competition, standardization, availability across platforms, and as homage. Compatibility with the original system is usually the explicit purpose of cloning hardware or low-level software such as operating systems (e.g. AROS and MorphOS are intended to be compatible with AmigaOS). Application software is cloned by providing the same functionality.

Commercially-motivated clones are made often during a competitor product's initial successful commercial run, intentionally competing with the original and trying to participate in their success.

Hardware clones
When IBM announced the IBM PC in 1981, other companies such as Compaq decided to offer clones of the PC as a legal reimplementation from the PC's documentation or reverse engineering. Because 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 with similar performance and lower price than the machines cloned. The use of the term "PC clone" to describe IBM PC compatible computers fell out of use in the 1990s; the class of machines it now describes are simply called PCs, but the early use of the term "clone" usually implied a higher level of compatibility with the original IBM PC than "PC-Compatible", with (often Taiwanese) clones of the original circuit (and possibly ROMs) the most compatible (in terms of software they would run and hardware tests they would pass), while "legitimate" new designs such as the Sanyo MBC-550 and Data General/One, while not infringing on copyrights and adding innovations, tended to fail some compatibility tests strongly dependent upon detailed hardware compatibility (such as ability to run Microsoft Flight Simulator, or any software that bypassed the standard software interrupts and directly accessed hardware at the expected pre-defined locations, or—in the case of the MBC-550 for example—wrote diskettes which could not be directly interchanged with standard IBM PCs).

While the term has mostly fallen into commercial disuse, the term clone for PCs still applies to a PC made to entry-level or above standard (at the time it was made) which bears no commercial branding (e.g., Acer, Dell, HP, IBM). This includes, but is not limited to, PCs assembled by home users or corporate IT departments. (See also White box (computer hardware).)

There were many Nintendo Entertainment System hardware clones due to the popularity and longevity of the Nintendo Entertainment System.

Hardware remakes
Examples for hardware remakes include recent home computer remakes.

A special kind of hardware remakes are emulators which implement the hardware functionality completely in software. For instance, the WinUAE emulator software tries to behave exactly like a physical Amiga.

Software
Software can be cloned by reverse engineering or legal reimplementation from documentation or other sources, or by observing a program's appearance and behavior. The reasons for software cloning may include circumventing undesirable licensing fees, acquiring knowledge about the features of the system or creating an interoperable alternative for an unsupported platform. GNU, a clone of UNIX, was motivated by a need of the free software movement for an operating system composed of entirely free software.

In the United States, the case of Lotus v. Borland allows the functionality of a program to be cloned so long as copyright in the code and interface is not infringed.

Yet, the public interface may also be subject to copyright to the extent that it contains expression (such as the appearance of an icon). For example, in August 2012, Electronic Arts, via its Maxis division, put forth a lawsuit against Zynga, claiming that its Facebook game, The Ville, was a direct clone of EA's own Facebook game, The Sims Social. The lawsuit challenges that The Ville not only copies the gameplay mechanics of The Sims Social, but also uses art and visual interface aspects that appear to be inspired by The Sims Social. The two companies settled out of court on undisclosed terms in February 2013.

Examples of software cloning include the ReactOS project which tries to clone Microsoft Windows, and GNU Octave, which treats incompatibility with MathWorks MATLAB as a bug.

Video games
Since the start of the video game industry, clones of successful concepts and games have been common. The first influential first-person shooter, Doom, led in the 1990s to the creation of a new genre dubbed as Doom clones. In the 2000s, the open world action-adventure Grand Theft Auto inspired the creation of many Grand Theft Auto clones.

Software remakes
Remakes of software are revivals of old, obsolete, or discontinued software.

A good share of software remakes are fangames of computer games and game engine recreation made by the fan community as part of retrogaming, to address e.g. compatibility issues or non-availability of the original, e.g. a shutdown server gets substituted with a server emulator.

Since the 2000s there has been an increasing number of commercial remakes of classical games by the original developer or publisher for current platforms as the digital distribution lowers the investment risk for niche releases. When enhanced in some way (audio, graphics, etc.) new releases might be called "high definition" release or "special edition"; an example is The Secret of Monkey Island: Special Edition.

Databases
A database clone is a complete and separate copy of a database system that includes the business data, the database management system software and any other application tiers that make up the environment. Cloning is a different kind of operation to replicate and backup, in that the cloned environment is both fully functional and separate in its own right. Additionally, the cloned environment may be modified at its inception due to configuration changes or data subsetting.

Desktop
Since 2010, clone computing, in the sense of replicating a session on a host computer in a virtual instance in the cloud, has been introduced. This allows the user to have access to a copy of their PC's desktop on any other computing device such as a tablet computer, a personal computer running any operating system, WebOS, smartphones, etc.

The clone computer replicates, runs, and is always available through a series of cloud servers. Unlike remote management software, clone computing has no dependency on the host computer.

Disk cloning software
Disk cloning is the process of copying the contents of one computer hard drive to another disk or to an "image" file. Typically, the contents of the first disk are written to an image file as an intermediate step, and the second disk is loaded with the contents of the image. A cloned drive can replace the original, rather than simply containing backup copies of files.

Cloning software replicates the operating system, drives, software and patches of one computer for a variety of purposes, including setting up multiple computers, hard drive upgrades, and system recovery in the event of disk failure or corruption.

Programming
In computer programming, particularly object-oriented programming, cloning refers to object copying by a method or copy factory function, often called  or , as opposed to by a copy constructor. Cloning is polymorphic, in that the type of the object being cloned need not be specified, in contrast to using a copy constructor, which requires specifying the type (in the constructor call).