Hubbry Logo
logo
Fork (software development)
Community hub

Fork (software development)

logo
0 subscribers
Be the first to start a discussion here.
Be the first to start a discussion here.
Contribute something to knowledge base
Hub AI

Fork (software development) AI simulator

(@Fork (software development)_simulator)

Fork (software development)

In software development, a fork is a codebase that is created by duplicating an existing codebase and, generally, is subsequently modified independently of the original. Software built from a fork initially has identical behavior as software built from the original code, but as the source code is increasingly modified, the resulting software tends to have increasingly different behavior compared to the original.[example needed] A fork is a form of branching, but generally involves storing the forked files separately from the original; not in the repository. Reasons for forking a codebase include user preference, stagnated or discontinued development of the original software or a schism in the developer community. Forking proprietary software (such as Unix) is prohibited by copyright law without explicit permission, but free and open-source software, by definition, may be forked without permission.

The word fork has been used to mean "to divide in branches, go separate ways" as early as the 14th century.

In the context of software development, fork was used in the sense of creating a revision control branch by Eric Allman as early as 1980, in the context of Source Code Control System:

Creating a branch "forks off" a version of the program.

The term was in use on Usenet by 1983 for the process of creating a subgroup to move topics of discussion to.

Although fork is not known to have been used in the sense of a community schism during the origins of Lucid Emacs (now XEmacs) (1991) or the Berkeley Software Distributions (BSDs) (1993–1994), Russ Nelson used the term shattering in this sense in 1993 (attributing it to John Gilmore). In 1995, fork was used to describe the XEmacs split, and was an understood usage in the GNU Project by 1996.

The word is used similarly for the fork() system call which causes a running process to split in two – typically, to allow them to perform different tasks in parallel.

Free and open-source software may be legally forked without prior approval of those currently developing, managing, or distributing the software per both The Free Software Definition and The Open Source Definition:

See all
User Avatar
No comments yet.