Contributed by Satoshi Asami <asami@FreeBSD.org>.
The development of FreeBSD is a very open and flexible process, FreeBSD being literally built from the contributions of hundreds of people around the world, as can be seen from our list of contributors. We are constantly on the lookout for new developers and ideas, and those interested in becoming more closely involved with the project need simply contact us at the FreeBSD technical discussions mailing list <freebsd-hackers@FreeBSD.org>. Those who prefer to work more independently are also accommodated, and they are free to use our FTP facilities at ftp.FreeBSD.org to distribute their own patches or work-in-progress sources. The FreeBSD announcements mailing list <freebsd-announce@FreeBSD.org> is also available to those wishing to make other FreeBSD users aware of major areas of work.
Useful things to know about the FreeBSD project and its development process, whether working independently or in close cooperation:
The central source tree for FreeBSD is maintained by CVS (Concurrent Version System), a freely available source code control tool which comes bundled with FreeBSD. The primary CVS repository resides on a machine in Concord CA, USA from where it is replicated to numerous mirror machines throughout the world. The CVS tree, as well as the -current and -stable trees which are checked out of it, can be easily replicated to your own machine as well. Please refer to the Synchronizing your source tree section for more information on doing this.
The committers are the people who have write access to the CVS tree, and are thus authorized to make modifications to the FreeBSD source (the term ``committer'' comes from the cvs(1) commit command, which is used to bring new changes into the CVS repository). The best way of making submissions for review by the committers list is to use the send-pr(1) command, though if something appears to be jammed in the system then you may also reach them by sending mail to <committers@FreeBSD.org>.
The FreeBSD core team would be equivalent to the board of directors if the FreeBSD Project were a company. The primary task of the core team is to make sure the project, as a whole, is in good shape and is heading in the right directions. Inviting dedicated and responsible developers to join our group of committers is one of the functions of the core team, as is the recruitment of new core team members as others move on. Most current members of the core team started as committers whose addiction to the project got the better of them.
Some core team members also have specific areas of responsibility, meaning that they are committed to ensuring that some large portion of the system works as advertised.
Note: Most members of the core team are volunteers when it comes to FreeBSD development and do not benefit from the project financially, so ``commitment'' should also not be misconstrued as meaning ``guaranteed support.'' The ``board of directors'' analogy above is not actually very accurate, and it may be more suitable to say that these are the people who gave up their lives in favor of FreeBSD against their better judgement! ;)
Last, but definitely not least, the largest group of developers are the users themselves who provide feedback and bug-fixes to us on an almost constant basis. The primary way of keeping in touch with FreeBSD's more non-centralized development is to subscribe to the FreeBSD technical discussions mailing list <freebsd-hackers@FreeBSD.org> (see mailing list info) where such things are discussed.
The list of those who have contributed something which made its way into our source tree is a long and growing one, so why not join it by contributing something back to FreeBSD today? :-)
Providing code is not the only way of contributing to the project; for a more complete list of things that need doing, please refer to the how to contribute section in this handbook.
In summary, our development model is organized as a loose set of concentric circles. The centralized model is designed for the convenience of the users of FreeBSD, who are thereby provided with an easy way of tracking one central code base, not to keep potential contributors out! Our desire is to present a stable operating system with a large set of coherent application programs that the users can easily install and use, and this model works very well in accomplishing that.
All we ask of those who would join us as FreeBSD developers is some of the same dedication its current people have to its continued success!