Fork
Noun · Verb · Open Source
Definitions
Fork in software development is a copy of a repository or codebase that diverges from the original to pursue independent development. On platforms like GitHub, forking is the standard way to contribute to open-source projects: a developer forks a repository to their own account, makes changes, and submits a pull request to propose merging those changes back into the original. At a larger scale, a project fork occurs when a community splits over the direction of a project, creating two independently maintained versions from the same codebase. Notable forks include LibreOffice (from OpenOffice), MariaDB (from MySQL after Oracle's acquisition), and the many Bitcoin-derived cryptocurrencies. Forks can be contentious when communities disagree about leadership, licensing, or technical direction, but they are also a fundamental freedom of open-source software. The ability to fork ensures that no single entity can fully control an open-source project, as the community can always take the code in a different direction.
In plain English: Making your own copy of someone's open-source project so you can change it independently — sometimes to contribute back, sometimes to take it in a different direction.
In Unix/Linux, fork() is a system call that creates a new process by duplicating the calling process. The child process gets a copy of the parent's memory. This is the fundamental mechanism for creating new processes on Unix systems — predating the GitHub meaning by decades.
Example: 'The web server calls fork() for each incoming connection, creating a child process to handle the request. That's why Apache used so much memory under load.'
Source: Unix system call
Etymology
- 1980
- Unix BSD forks from AT&T Unix, establishing the concept of code divergence in software development
- 2000s
- The open-source movement makes forking a right and a social norm — anyone can fork a project if they disagree with its direction
- 2008
- GitHub makes forking a one-click operation, transforming it from an aggressive act to an everyday collaboration pattern