![]() |
![]() |
Definition of ‘Fork’In software development, to fork a project is to create a new parallel development effort. This can happen with free software because the open source licenses allow anyone to take the source code for a project, modify it as they please, and redistribute it. The term is also used to describe the cloning of a
process,
which is the way in which Unix systems start up new processes running in
parallel to existing ones. This sense is meant in the name of the
Unix Forking a project is generally recognised to be bad. It can lead to a duplication of effort, with two teams working on the same code, and likely doing the same work. But the right to fork is also cited as an important freedom, giving an assurance that if the maintainers of a project take it in the wrong direction, someone else can always do it their own way. It is considered to be a last resort, only to be used if there is no way for developers to resolve their different views on how a project should proceed. Some of the most notable free software forks are the sundering of BSD and the GNU Emacs and XEmacs schism. Others, which perhaps turned out better, are the creation of the Apache web server from the old NCSA HTTPd, which resulted in the web's most popular HTTP server and the formation of the Apache Foundation who now develop a large amount of other software, and the fork of EGCS from the GNU compiler project, which forced development ahead when GCC was floundering, and later replaced it. Related Links |
© Copyright Geoff Richards, 2004 |