Fork

Noun · Verb · Open Source

Definitions

  1. 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.

  2. 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

Related Terms