Fork

From JaWiki (Jabber/XMPP wiki)
Revision as of 19:43, 3 October 2010 by Leksey (Talk | contribs) (iwiki, заодно дополнил)

Jump to: navigation, search

Форком (от англ. fork) называют проект-ответвление от основного проекта. Данное действие применимо для проектов с открытым исходным кодом, если такое действие разрешает их лицензия. Форки образуются по разным причинам. Среди них: прекращение развития проекта (и если нет связи с его владельцем, приходится делать форк), разногласия в команде разработков, когда члены команды не могут сойтись в планах на дальнейшей развитие проекта, а также форк образуется при желании отойти от идеологии проекта и сделать что-то иное на его основе. В среде разработчиков с низкой культурой выполнить форк это способ получить "собственный" проект, в котором он будет руководителем.

Со временем из «форкнутой» версии может пропасть большая часть кода исходного проекта и может ещё много чего поменяться. Вплоть до того, что отпочковавшийся проект станет популярнее исходного, или исходный прекратит своё существование, а наследник же, наоборот, продолжит успешно развиваться.

Противоположностью "форку" является создание проекта «from scratch» (с нуля), когда всё разрабатывается заново без использования фрагментов готового кода.

Примеры

В среде XMPP-решений форки достаточно распространены. Например, достаточно много клиентов базируется на исходном коде Psi. На основе Jappix есть несколько проектов-форков.

В мире операционных систем наиболее известным «ответвлением» является дистрибутив Linux под названием Ubuntu, в основу которого положен другой дистрибутив Linux — Debian.

Среди «народных» CMS на PHP многие существующие проекты (например, Mambo Open Source) являются форками от PHP-Nuke.

Другие значения

Также этим термином обозначается организация дочернего процессов в *nix-системе.

Apache 1.x использует идеологию дочерних процессов для обслуживания клиентских запросов. При старте демона автоматически запускается 15 процессов (значение по умолчанию в httpd.conf) с тем, чтобы сэкономить время на их запуске.