Введение

копирование объекта в информатике

В информатике клон — это аппаратное или программное обеспечение, разработанное для функционирования точно так же, как и другая система. Определённым подмножеством клонов являются ремейки (или переиздания), представляющие собой возрождение старых, устаревших или снятых с производства продуктов.

Мотивация

Клоны и ремейки создаются по причинам, таким как конкуренция, стандартизация, кроссплатформенная доступность и в качестве дани уважения. Совместимость с оригинальной системой обычно является прямой целью при клонировании аппаратного обеспечения или программного обеспечения низкого уровня, например, операционных систем (например, AROS и MorphOS разработаны для совместимости с AmigaOS). Прикладное программное обеспечение клонируется путем предоставления той же функциональности. Коммерческие клоны часто создаются в период успешного старта конкурентного продукта, с намерением конкурировать с оригиналом и разделить его успех.

Аппаратные клоны

Когда IBM представила IBM PC в 1981 году, другие компании, такие как Compaq, решили предлагать клоны ПК как законную реализацию на основе документации или обратной разработки. Поскольку большинство компонентов, за исключением BIOS ПК, были общедоступны, Compaq оставалось только выполнить обратную разработку BIOS. В результате получилась машина с сопоставимой производительностью и более низкой ценой, чем клонируемые компьютеры. Использование термина «PC-клон» для описания компьютеров, совместимых с IBM PC, устарело в 1990-х годах; класс машин, который он описывал, теперь просто называют ПК, но раннее использование термина «клон» обычно подразумевало более высокий уровень совместимости с оригинальным IBM PC, чем «PC Compatible». Наиболее совместимыми были (часто тайваньские) клоны оригинальной схемы (и, возможно, ПЗУ), обеспечивающие запуск большего количества программ и успешное прохождение аппаратных тестов. В то время как «законные» новые разработки, такие как Sanyo MBC 550 и Data General/One, не нарушали авторские права и предлагали инновации, они часто не проходили тесты совместимости, сильно зависящие от детальной аппаратной совместимости (например, возможность запуска Microsoft Flight Simulator или любого программного обеспечения, обходящего стандартные программные прерывания и напрямую обращающегося к оборудованию по ожидаемым адресам, или – в случае MBC 550 – записи дискет, которые нельзя было напрямую использовать на стандартных IBM PC). Хотя термин практически исчез из коммерческого обихода, «клон» по-прежнему применяется к ПК, собранному по стандартам начального или выше уровня (на момент производства) и не имеющему коммерческой маркировки (например, Acer, Dell, HP, IBM). Это включает, помимо прочего, ПК, собранные домашними пользователями или корпоративными ИТ-отделами. (См. также «Белый корпус» (компьютерное оборудование).) Благодаря популярности и долговечности Nintendo Entertainment System было создано множество аппаратных клонов этой консоли.

Ремейки на аппаратные средства

Примеры аппаратных ремейков включают в себя недавние ремейки домашних компьютеров. Особый вид аппаратных ремейков – это эмуляторы, которые полностью реализуют аппаратную функциональность посредством программного обеспечения. Например, эмулятор WinUAE стремится вести себя идентично физической Amiga.

Программное обеспечение

Программное обеспечение может быть клонировано с помощью обратной разработки или легальной реимплементации на основе документации или других источников, либо путем анализа внешнего вида и поведения программы. Причины клонирования программного обеспечения могут включать обход нежелательных лицензионных платежей, получение знаний о функциональных возможностях системы или создание совместимой альтернативы для неподдерживаемой платформы. GNU, клон UNIX, был создан из-за потребности движения за свободное программное обеспечение в операционной системе, полностью состоящей из свободного программного обеспечения. В Соединенных Штатах дело Lotus v. Borland разрешает клонирование функциональности программы, при условии, что не нарушаются авторские права на код и интерфейс. Однако публичный интерфейс также может подлежать авторскому праву, если он содержит выразительные элементы (например, внешний вид значка). Например, в августе 2012 года Electronic Arts, через свое подразделение Maxis, подала в суд на Zynga, утверждая, что ее игра The Ville для Facebook является прямым клоном игры EA The Sims Social для Facebook. Иск оспаривает тот факт, что The Ville не только копирует игровую механику The Sims Social, но и использует художественные и визуальные элементы интерфейса, которые, по-видимому, вдохновлены The Sims Social. Обе компании урегулировали спор во внесудебном порядке на конфиденциальных условиях в феврале 2013 года. Примерами клонирования программного обеспечения являются проект ReactOS, который пытается клонировать Microsoft Windows, и GNU Octave, который считает несовместимость с MathWorks MATLAB ошибкой.

Видеоигры

С самого начала индустрии видеоигр клоны успешных концепций и игр были обычным явлением. Первый влиятельный шутер от первого лица, Doom, в 1990-х годах привел к появлению нового жанра, который стали называть «клонами Doom». В 2000-х годах игра Grand Theft Auto с открытым миром и элементами приключения вдохновила на создание множества игр, подражающих Grand Theft Auto.

Ремейки программного обеспечения

Ремейки программного обеспечения – это возрождение старого, устаревшего или снятого с производства программного обеспечения. Значительная часть ремейков программного обеспечения представляет собой фан-игры и воссоздание игровых движков, создаваемые фанатским сообществом в рамках ретрогейминга для решения, например, проблем совместимости или недоступности оригинала, например, когда отключенный сервер заменяется эмулятором сервера. С 2000-х годов наблюдается рост числа коммерческих ремейков классических игр оригинальным разработчиком или издателем для современных платформ, поскольку цифровая дистрибуция снижает инвестиционные риски для нишевых релизов. Если новые версии улучшены в каком-либо аспекте (звук, графика и т.д.), они могут называться "выпусками высокой четкости" или "специальными изданиями", как, например, "The Secret of Monkey Island: Special Edition".

Базы данных

Клон базы данных – это полная и независимая копия системы баз данных, включающая в себя бизнес-данные, программное обеспечение системы управления базами данных и любые другие прикладные уровни, составляющие окружение. Клонирование отличается от репликации и резервного копирования тем, что клонированное окружение является полностью функциональным и самостоятельным. Кроме того, клонированное окружение может быть изменено на этапе создания в результате изменений конфигурации или выбора подмножества данных.

Настольный стол

С 2010 года появилось клонирование вычислений, подразумевающее репликацию сеанса на хост-компьютере в виртуальном экземпляре в облаке. Это позволяет пользователю получить доступ к копии рабочего стола своего ПК с любого другого вычислительного устройства, например, планшета, персонального компьютера с любой операционной системой, WebOS, смартфона и т.д. Клонированный компьютер реплицирует, запускает и всегда доступен через сеть облачных серверов. В отличие от программ для удаленного управления, клонирование вычислений не требует постоянного подключения к хост-компьютеру.

Программное обеспечение для клонирования дисков

Клонирование диска — это процесс копирования содержимого одного жесткого диска компьютера на другой диск или в файл образа. Обычно содержимое первого диска записывается в файл образа как промежуточный шаг, а затем содержимое образа загружается на второй диск. Клонированный диск может заменить исходный, а не просто содержать резервные копии файлов. Программное обеспечение для клонирования реплицирует операционную систему, диски, программное обеспечение и обновления одного компьютера для различных целей, включая настройку нескольких компьютеров, модернизацию жесткого диска и восстановление системы в случае сбоя или повреждения диска.

Программирование

В компьютерном программировании, особенно в объектно-ориентированном программировании, клонирование — это копирование объекта с помощью метода или функции-фабрики копирования, обычно называемых "клон" или "копия", в отличие от конструктора копирования. Клонирование является полиморфным, поскольку тип клонируемого объекта не требуется указывать, в отличие от использования конструктора копирования, для которого необходимо указывать тип (при вызове конструктора).