Differences between version 11 and previous revision of Fork.
Other diffs: Previous Major Revision, Previous Author, or view the Annotated Edit History
Newer page: | version 11 | Last edited on Wednesday, September 26, 2007 2:23:36 am | by AristotlePagaltzis | Revert |
Older page: | version 10 | Last edited on Tuesday, September 25, 2007 2:39:22 pm | by LawrenceDoliveiro | Revert |
@@ -1,25 +1,28 @@
-!!!1.
A split or divergence in the source code.
+#
!! A split or divergence in a software project
-When SourceCode is forked, two
or more groups,
with different visions, develop
the code
to their own ends. The NetworkEffect is a powerful deterrent
to forking, since halving the number of developers working on the source
for a project more than halves the productivity of each group. In most (though not all) cases all but one of the forks eventually withers and dies, ironically leaving the remaining fork with a much more clearly defined vision
.
+ Projects fork when one
or more groups with different visions from
the original project team decide to take a copy of the SourceCode and develop it
to their own ends. The SourceCode must be sufficiently [Free]
to begin with
for this to happen
.
-Well-known examples include
-* [GCC] and egcs (egcs eventually became the new "official" gcc)
-* [Mandrake] and RedHat (I think Mandrake was originally RedHat with [KDE]?)
-* [Emacs] and XEmacs, both branches of which continue to thrive
to this day.
-* [XFree86]
and [XOrg], where an unpopular change to
the licensing terms
of the former caused
a wholesale defection
of developers, distributors and users
to the latter
.
-* More recently
, the forking
of [cdrkit] off from <tt>cdrtools</tt>
, because
of a licence change to the latter
. It remains to be seen how this
one will play out.
-* [RPM]
and RPM5
- see http://www
.linux
.com/articles/114339
+ Being able
to do
this is both a blessing
and a curse. Halving
the number
of developers working on
the source for
a project more than halves the productivity
of each group due
to the NetworkEffect – a powerful deterrent to forking
. However
, a fork can also serve to dissolve
the tension in the direction
of the previously united project
, letting each
of the forks focus on
a particular agenda
. In many (maybe most) cases, all but
one of the forks eventually withers
and dies, and the surviving fork pushes onward with a more well
-defined vision that has greater consensus
. Forking may therefore contribute to the health of a project in the long term
.
-Some interesting analyses of
the pros and cons of forking are:
+ In rare cases (such as
the Beryl/Compiz split or [GCC]/egcs), the projects eventually reunite.
-* Rick Moen's [Fear of Forking|http
://linuxmafia.com/faq/Licensing_and_Law/forking.html], subtitled "Why Linux Won't Fork, And why being able to fork is still A Good Thing."
-* ["Forking: it could even happen to you"|http://www.newsforge.com/article.pl?sid=00/10/24/0211204] by Tina Gasperson at NewsForge.
-* [Appendix A.6|http://www.dwheeler.com/oss_fs_why.html#forking] of David Wheeler's ["Why Open Source/Free Software?"|http://www.dwheeler.com/oss_fs_why.html] essay.
+ Well-known examples include
:
+ * [GCC] and egcs
+ * [Mandrake] and RedHat (I think Mandrake was originally RedHat with [KDE]?)
+ * [Emacs] and XEmacs, both branches of which continue to thrive to this day
+ * [XFree86] and [XOrg], where an unpopular change to the licensing terms of the former caused a wholesale defection of developers, distributors and users to the latter
+ * More recently, the forking of [cdrkit] off from <tt>cdrtools</tt>, because of a licence change to the latter. It remains to be seen how this one will play out
+ * [RPM] and RPM5 (see [http://www.linux.com/articles/114339])
-See also [OpenSource]
+ Some interesting analyses of the pros and cons of forking are:
-!!!2
. A system call for creating a new process
-see
[fork(2)
]
+ * Rick Moen's [Fear of Forking|http://linuxmafia
.com/faq/Licensing_and_Law/forking.html], subtitled "Why Linux Won't Fork, And why being able to fork is still
A Good Thing."
+ *
["Forking: it could even happen to you"|http://www.newsforge.com/article.pl?sid=00/10/24/0211204
] by Tina Gasperson at NewsForge.
+ * [Appendix A.6|http://www.dwheeler.com/oss_fs_why.html#forking] of David Wheeler's ["Why Open Source/Free Software?"|http://www.dwheeler.com/oss_fs_why.html] essay.
-the fork
system call is fun
, it returns twice
... once
in each different process
.
it returns 0 to the child
, and
the pid
of the child to the parent
. Very funky :)
+ See also OpenSource.
+
+# !! A
system call for creating a new process
+
+ The [Unix] way of creating new processes: when a process calls [fork(2)]
, the [Kernel] makes a copy of the process at that point
. The system call returns separately
in both of the processes
. In the child process
it returns , whereas in
the parent process it returns the process ID
of the child.