Fork

In software development, a fork is a new application developed from an existing one. When an application is "forked," it creates a new, separate program, rather than a new development branch. Open-source project forks are more common than proprietary software forks, but both are possible.

Open-Source Software

Because open-source software may be freely distributed and edited, anyone can legally fork an open-source application. The codebase of any open-source program or operating system may be used as the basis of a new project. Most Linux distributions, for example, are forks from earlier Linux-based operating systems. Because of Linux's popularity and open-source code base, hundreds of Linux forks exist.

Examples of applications created from forks of open-source code libraries include:

  1. LibreOffice, from OpenOffice.org
  2. Collabora Online, from LibreOffice
  3. Calligra, from KOffice
  4. Basilisk, from Firefox

Proprietary Software

Since the source code of proprietary software is protected by copyright, outside developers cannot fork a commercial application. However, a developer may wish to fork an application to create a slightly different version for another purpose. For example, a developer may fork an image editor to create a read-only image viewer that prevents users from modifying files.

NOTE: Unlike a mod, which alters or adds features to an existing application, a fork is a new, distinct program with a different name.

Updated September 24, 2021 by Per C.

quizTest Your Knowledge

What word is synonymous with "mining" in data mining?

A
Writing
0%
B
Recovering
0%
C
Protecting
0%
D
Analyzing
0%
Correct! Incorrect!     View the Data Mining definition.
More Quizzes →

The Tech Terms Computer Dictionary

The definition of Fork on this page is an original definition written by the TechTerms.com team. If you would like to reference this page or cite this definition, please use the green citation links above.

The goal of TechTerms.com is to explain computer terminology in a way that is easy to understand. We strive for simplicity and accuracy with every definition we publish. If you have feedback about this definition or would like to suggest a new technical term, please contact us.

Sign up for the free TechTerms Newsletter

How often would you like to receive an email?

You can unsubscribe or change your frequency setting at any time using the links available in each email.

Questions? Please contact us.