Fork est un mot anglais signifiant " fourche ", " fourchette ". Il vient du mot latin furca (qui est également à l'origine de plusieurs mots en français comme bifurcation), via le normo-picard forque. C'est souvent dans ce sens (SENS (Strategies for Engineered Negligible Senescence) est un projet scientifique qui a pour but...) figuré " d'embranchement ", de " différentiation " qu'est employé cet anglicisme en informatique (L´informatique - contraction d´information et automatique - est le domaine...). Il désigne donc un objet (De manière générale, le mot objet (du latin objectum, 1361) désigne une entité définie dans...) (au sens large, cela peut être un projet) ayant une racine commune avec un second. Ces deux objets jumeaux au départ après s'être séparés suivent une évolution propre, différente (En mathématiques, la différente est définie en théorie algébrique des...).
Ce mot peut également être employé comme synonyme d'objet dérivé.
La fonction fork fait partie des appels système standards d'UNIX.
Cette fonction permet à un processus (un programme en cours d'exécution) de se dupliquer, par exemple en vue (La vue est le sens qui permet d'observer et d'analyser l'environnement par la réception et...) de réaliser un second traitement, parallèlement au premier.
Il existe une filiation dans les processus : le créateur d'un nouveau processus est appelé le père et le nouveau processus, le fils. Tous les attributs systèmes du père (par exemple les droits sur le système de fichier) sont transmis au fils, de la même manière que l' héritage.
Il est souvent avantageux de remplacer les forks, coûteux en ressources système (car un fork implique la création d'un nouveau processus), par des processus légers.
La fonction fork est beaucoup utilisée dans les applications client-serveur (L'architecture client/serveur désigne un mode de communication entre plusieurs ordinateurs d'un...) avec plusieurs clients simultanés.
Parfois nommé fork. L'utilisation, parfois critiquée à bon escient, de l'anglicisme fork dans le contexte (Le contexte d'un évènement inclut les circonstances et conditions qui l'entourent; le...) de projet informatique est une utilisation imagée du mot fork utilisé en programmation : on crée un nouveau projet à partir d'un autre à l'identique, sans détruire celui-ci. Cela implique que les droits accordés par les auteurs le permettent : ils doivent autoriser la modification, l'utilisation et la redistribution du code source (Le code source (ou les sources voire le source) est un ensemble d'instructions écrites dans un...). C (Le C++ est un langage de programmation permettant la programmation sous de multiples paradigmes...)'est pour cette raison que les embranchements se produisent facilement dans le domaine des logiciels libres. Les forks sont perçus par certains comme une épée de Damoclès au dessus des auteurs des projets les moins bons, et aussi comme une méthode pour empêcher l'appropriation d'un projet par un groupe. La " peur de l'embranchement " est un des mécanismes essentiels de régulation (Le terme de régulation renvoie dans son sens concret à une discipline technique, qui se...) et sélection des projets du logiciel libre (Un logiciel libre est un logiciel dont l'utilisation, l'étude, la modification, la duplication...). Les effets ne sont pas anodins car les ressources disponibles en termes de développeurs prêts à contribuer notamment sont réduites.
Une illustration de la régulation des projets libres par ce moyen est l'apparition d'au moins trois forks pour le projet SourceForge à l'issue de la " dérive de sourceforge " :