Penguin

Differences between version 11 and predecessor to the previous major change of Fork.

Other diffs: Previous 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.