Home :: International :: Manuals :: Howto :: FAQ :: Man Pages :: Email Login

 
 

 

1.3 About the FreeBSD Project

The following section provides some background information on the project, including abrief history, project goals, and the development model of the project.

1.3.1 A Brief History ofFreeBSD

Contributed by Jordan Hubbard.

The FreeBSD project had its genesis in the early part of 1993, partially as anoutgrowth of the ``Unofficial 386BSD Patchkit'' by the patchkit's last 3 coordinators:Nate Williams, Rod Grimes and myself.

Our original goal was to produce an intermediate snapshot of 386BSD in order to fix anumber of problems with it that the patchkit mechanism just was not capable of solving.Some of you may remember the early working title for the project being ``386BSD 0.5'' or``386BSD Interim'' in reference to that fact.

386BSD was Bill Jolitz's operating system, which had been up to that point sufferingrather severely from almost a year's worth of neglect. As the patchkit swelled ever moreuncomfortably with each passing day, we were in unanimous agreement that something had tobe done and decided to assist Bill by providing this interim ``cleanup'' snapshot. Thoseplans came to a rude halt when Bill Jolitz suddenly decided to withdraw his sanction fromthe project without any clear indication of what would be done instead.

It did not take us long to decide that the goal remained worthwhile, even withoutBill's support, and so we adopted the name ``FreeBSD'', coined by David Greenman. Ourinitial objectives were set after consulting with the system's current users and, once itbecame clear that the project was on the road to perhaps even becoming a reality, Icontacted Walnut Creek CDROM with an eye toward improving FreeBSD's distribution channelsfor those many unfortunates without easy access to the Internet. Walnut Creek CDROM notonly supported the idea of distributing FreeBSD on CD but also went so far as to providethe project with a machine to work on and a fast Internet connection. Without WalnutCreek CDROM's almost unprecedented degree of faith in what was, at the time, a completelyunknown project, it is quite unlikely that FreeBSD would have gotten as far, as fast, asit has today.

The first CDROM (and general net-wide) distribution was FreeBSD 1.0, released inDecember of 1993. This was based on the 4.3BSD-Lite (``Net/2'') tape from U.C. Berkeley,with many components also provided by 386BSD and the Free Software Foundation. It was afairly reasonable success for a first offering, and we followed it with the highlysuccessful FreeBSD 1.1 release in May of 1994.

Around this time, some rather unexpected storm clouds formed on the horizon as Novelland U.C. Berkeley settled their long-running lawsuit over the legal status of theBerkeley Net/2 tape. A condition of that settlement was U.C. Berkeley's concession thatlarge parts of Net/2 were ``encumbered'' code and the property of Novell, who had in turnacquired it from AT&T some time previously. What Berkeley got in return was Novell's``blessing'' that the 4.4BSD-Lite release, when it was finally released, would bedeclared unencumbered and all existing Net/2 users would be strongly encouraged toswitch. This included FreeBSD, and the project was given until the end of July 1994 tostop shipping its own Net/2 based product. Under the terms of that agreement, the projectwas allowed one last release before the deadline, that release beingFreeBSD 1.1.5.1.

FreeBSD then set about the arduous task of literally re-inventing itself from acompletely new and rather incomplete set of 4.4BSD-Lite bits. The ``Lite'' releases werelight in part because Berkeley's CSRG had removed large chunks of code required foractually constructing a bootable running system (due to various legal requirements) andthe fact that the Intel port of 4.4 was highly incomplete. It took the project untilNovember of 1994 to make this transition, at which point it released FreeBSD 2.0 tothe net and on CDROM (in late December). Despite being still more than a little rougharound the edges, the release was a significant success and was followed by the morerobust and easier to install FreeBSD 2.0.5 release in June of 1995.

We released FreeBSD 2.1.5 in August of 1996, and it appeared to be popular enoughamong the ISP and commercial communities that another release along the 2.1-STABLE branchwas merited. This was FreeBSD 2.1.7.1, released in February 1997 and capping the endof mainstream development on 2.1-STABLE. Now in maintenance mode, only securityenhancements and other critical bug fixes will be done on this branch (RELENG_2_1_0).

FreeBSD 2.2 was branched from the development mainline (``-CURRENT'') in November1996 as the RELENG_2_2 branch, and the first full release (2.2.1) was released in April1997. Further releases along the 2.2 branch were done in the summer and fall of '97, thelast of which (2.2.8) appeared in November 1998. The first official 3.0 release appearedin October 1998 and spelled the beginning of the end for the 2.2 branch.

The tree branched again on Jan 20, 1999, leading to the 4.0-CURRENT and 3.X-STABLEbranches. From 3.X-STABLE, 3.1 was released on February 15, 1999, 3.2 on May 15, 1999,3.3 on September 16, 1999, 3.4 on December 20, 1999, and 3.5 on June 24, 2000, which wasfollowed a few days later by a minor point release update to 3.5.1, to incorporate somelast-minute security fixes to Kerberos. This will be the final release in the 3.Xbranch.

There was another branch on March 13, 2000, which saw the emergence of the 4.X-STABLEbranch, now considered to be the ``current -stable branch''. There have been severalreleases from it so far: 4.0-RELEASE was introduced in March 2000, and the most recent4.10-RELEASE came out in May 2004. There will be additional releases along the 4.X-stable(RELENG_4) branch well into 2003.

The long-awaited 5.0-RELEASE was announced on January 19, 2003. The culmination ofnearly three years of work, this release started FreeBSD on the path of advancedmultiprocessor and application thread support and introduced support for the UltraSPARC® and ia64 platforms.This release was followed by 5.1 in June of 2003. Besides a number of new features, the5.X releases also contain a number of major developments in the underlying systemarchitecture. Along with these advances, however, comes a system that incorporates atremendous amount of new and not-widely-tested code. For this reason, the 5.X releasesare considered ``New Technology'' releases, while the 4.X series function as``Production'' releases. In time, 5.X will be declared stable and work will commence onthe next development branch, 6.0-CURRENT.

For now, long-term development projects continue to take place in the 5.X-CURRENT(trunk) branch, and SNAPshot releases of 5.X on CDROM (and, of course, on the net) arecontinually made available from the snapshotserver as work progresses.

1.3.2 FreeBSD Project Goals

Contributed by Jordan Hubbard.

The goals of the FreeBSD Project are to provide software that may be used for anypurpose and without strings attached. Many of us have a significant investment in thecode (and project) and would certainly not mind a little financial compensation now andthen, but we are definitely not prepared to insist on it. We believe that our first andforemost ``mission'' is to provide code to any and all comers, and for whatever purpose,so that the code gets the widest possible use and provides the widest possible benefit.This is, I believe, one of the most fundamental goals of Free Software and one that weenthusiastically support.

That code in our source tree which falls under the GNU General Public License (GPL) orLibrary General Public License (LGPL) comes with slightly more strings attached, thoughat least on the side of enforced access rather than the usual opposite. Due to theadditional complexities that can evolve in the commercial use of GPL software we do,however, prefer software submitted under the more relaxed BSD copyright when it is areasonable option to do so.

1.3.3 The FreeBSD DevelopmentModel

Contributed by Satoshi Asami.

The development of FreeBSD is a very open and flexible process, being literally builtfrom the contributions of hundreds of people around the world, as can be seen from our list of contributors.FreeBSD's development infrastructure allow these hundreds of developers to collaborateover the Internet. We are constantly on the lookout for new developers and ideas, andthose interested in becoming more closely involved with the project need simply contactus at the FreeBSD technical discussions mailing list. The FreeBSDannouncements mailing list is also available to those wishing to make other FreeBSDusers aware of major areas of work.

Useful things to know about the FreeBSD project and its development process, whetherworking independently or in close cooperation:

The CVS repository

The central source tree for FreeBSD is maintained by CVS (Concurrent Versions System), a freely available source codecontrol tool that comes bundled with FreeBSD. The primary CVS repository resides ona machine in Santa Clara CA, USA from where it is replicated to numerous mirror machinesthroughout the world. The CVS tree, which contains the -CURRENT and -STABLE trees, can all be easily replicated to yourown machine as well. Please refer to the Synchronizing yoursource tree section for more information on doing this.

The committers list

The committers are the people who have write access to the CVS tree, and areauthorized to make modifications to the FreeBSD source (the term ``committer'' comes fromthe cvs(1) commit command, which is used to bring new changes into the CVSrepository). The best way of making submissions for review by the committers list is touse the send-pr(1) command. Ifsomething appears to be jammed in the system, then you may also reach them by sendingmail to the FreeBSD committer's mailing list.

The FreeBSD core team

The FreeBSD core team would be equivalent to the board ofdirectors if the FreeBSD Project were a company. The primary task of the core team is tomake sure the project, as a whole, is in good shape and is heading in the rightdirections. Inviting dedicated and responsible developers to join our group of committersis one of the functions of the core team, as is the recruitment of new core team membersas others move on. The current core team was elected from a pool of committer candidatesin June 2002. Elections are held every 2 years.

Some core team members also have specific areas of responsibility, meaning that theyare committed to ensuring that some large portion of the system works as advertised. Fora complete list of FreeBSD developers and their areas of responsibility, please see theContributors List

Note: Most members of the core team are volunteers when it comes to FreeBSDdevelopment and do not benefit from the project financially, so ``commitment'' shouldalso not be misconstrued as meaning ``guaranteed support.'' The ``board of directors''analogy above is not very accurate, and it may be more suitable to say that these are thepeople who gave up their lives in favor of FreeBSD against their better judgment!

Outside contributors

Last, but definitely not least, the largest group of developers are the usersthemselves who provide feedback and bug fixes to us on an almost constant basis. Theprimary way of keeping in touch with FreeBSD's more non-centralized development is tosubscribe to the FreeBSD technical discussions mailing list where such things arediscussed. See Appendix C for more information about thevarious FreeBSD mailing lists.

The FreeBSD Contributors List is a long and growing one, so why notjoin it by contributing something back to FreeBSD today?

Providing code is not the only way of contributing to the project; for a more completelist of things that need doing, please refer to the FreeBSD Project web site.

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 provided with an easy way oftracking one central code base, not to keep potential contributors out! Our desire is topresent a stable operating system with a large set of coherent application programs that the users can easily install and use --this model works very well in accomplishing that.

All we ask of those who would join us as FreeBSD developers is some of the samededication its current people have to its continued success!

1.3.4 The Current FreeBSDRelease

FreeBSD is a freely available, full source 4.4BSD-Lite based release for Intel i386™, i486™, Pentium®, Pentium Pro,Celeron®, Pentium II, Pentium III, Pentium 4(or compatible), Xeon™, DEC Alpha™ and Sun UltraSPARCbased computer systems. It is based primarily on software from U.C. Berkeley's CSRGgroup, with some enhancements from NetBSD, OpenBSD, 386BSD, and the Free SoftwareFoundation.

Since our release of FreeBSD 2.0 in late 94, the performance, feature set, andstability of FreeBSD has improved dramatically. The largest change is a revamped virtualmemory system with a merged VM/file buffer cache that not only increases performance, butalso reduces FreeBSD's memory footprint, making a 5 MB configuration a moreacceptable minimum. Other enhancements include full NIS client and server support,transaction TCP support, dial-on-demand PPP, integrated DHCP support, an improved SCSIsubsystem, ISDN support, support for ATM, FDDI, Fast and Gigabit Ethernet(1000 Mbit) adapters, improved support for the latest Adaptec controllers, and manythousands of bug fixes.

In addition to the base distributions, FreeBSD offers a ported software collectionwith thousands of commonly sought-after programs. At the time of this printing, therewere over 10,500 ports! The list of ports ranges from http (WWW) servers, to games,languages, editors, and almost everything in between. The entire ports collectionrequires approximately 300 MB of storage, all ports being expressed as ``deltas'' totheir original sources. This makes it much easier for us to update ports, and greatlyreduces the disk space demands made by the older 1.0 ports collection. To compile a port,you simply change to the directory of the program you wish to install, type make install, and let the system do the rest. The full originaldistribution for each port you build is retrieved dynamically off the CDROM or a localFTP site, so you need only enough disk space to build the ports you want. Almost everyport is also provided as a pre-compiled ``package'', which can be installed with a simplecommand (pkg_add) by those who do not wish to compile their ownports from source. More information on packages and ports can be found in Chapter 4.

A number of additional documents which you may find very helpful in the process ofinstalling and using FreeBSD may now also be found in the /usr/share/doc directory on any recent FreeBSD machine. You mayview the locally installed manuals with any HTML capable browser using the followingURLs:

The FreeBSD Handbook

/usr/share/doc/handbook/index.html

The FreeBSD FAQ

/usr/share/doc/faq/index.html

You can also view the master (and most frequently updated) copies at http://www.FreeBSD.org/.

This, and other documents, can be downloaded from ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/.

For questions about FreeBSD, read the documentation before contacting <questions@FreeBSD.org>.
For questions about this documentation, e-mail <doc@FreeBSD.org>.

 
 
 
 
 
Google
  Web Linuxinfor   
 

Home :: Copyright :: Privacy :: Credits :: Get a free Linuxinfor Email Account

Document on this page is part of "FreeBSD Handbook". See Index Page for more info about Authorship and Copyright.

1999-2008 Linuxinfor.com. No rights reserved.