1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
|
<!--
The FreeBSD Documentation Project
$FreeBSD: doc/en_US.ISO8859-1/books/handbook/introduction/chapter.sgml,v 1.59 2001/08/16 18:35:03 chern Exp $
-->
<chapter id="introduction">
<chapterinfo>
<authorgroup>
<author>
<firstname>Jim</firstname>
<surname>Mock</surname>
<contrib>Restructured, reorganized, and parts
rewritten by </contrib>
</author>
</authorgroup>
</chapterinfo>
<title>Introduction</title>
<sect1>
<title>Synopsis</title>
<para>Thank you for your interest in FreeBSD! The following chapter
covers various items about the FreeBSD Project, such as its history,
goals, development model, and so on.</para>
<indexterm><primary>4.4BSD-Lite</primary></indexterm>
<para>FreeBSD is a 4.4BSD-Lite based operating system for the Intel
architecture (x86) and DEC Alpha based systems. Ports to other
architectures are also underway. For a brief overview of FreeBSD,
see the <link linkend="nutshell">next section</link>. You can also
read about <link linkend="history">the history of FreeBSD</link>,
or the <link linkend="relnotes">current release</link>. If you
are interested in contributing something to the Project (code,
hardware, unmarked bills), see the <ulink url="
http://www.FreeBSD.org/doc/en_US.ISO8859-1/articles/contributing/article.html">Contributing to FreeBSD</ulink> article.</para>
</sect1>
<sect1 id="nutshell">
<title>Welcome to FreeBSD!</title>
<para>Since you are still here reading this, you most likely have some
idea as to what FreeBSD is and what it can do for you. If you are
new to FreeBSD, read on for more information.</para>
<sect2>
<title>What is FreeBSD?</title>
<indexterm><primary>Intel architecture (x86)</primary></indexterm>
<indexterm><primary>DEC Alpha architecture</primary></indexterm>
<para>In general, FreeBSD is a state-of-the-art operating system
based on 4.4BSD-Lite. It runs on computer systems based on the
Intel architecture (x86), and also the DEC Alpha
architecture.</para>
<para>FreeBSD is used to power some of the biggest sites on the
Internet, including:</para>
<itemizedlist>
<indexterm><primary>Yahoo!</primary></indexterm>
<listitem>
<para><ulink url="http://www.yahoo.com/">Yahoo!</ulink></para>
</listitem>
<indexterm><primary>Apache</primary></indexterm>
<listitem>
<para><ulink url="http://www.apache.org/">Apache</ulink></para>
</listitem>
<indexterm><primary>Be, Inc.</primary></indexterm>
<listitem>
<para><ulink url="http://www.be.com/">Be, Inc.</ulink></para>
</listitem>
<indexterm><primary>Blue Mountain Arts</primary></indexterm>
<listitem>
<para><ulink url="http://www.bluemountain.com/">Blue Mountain
Arts</ulink></para>
</listitem>
<indexterm><primary>Pair Networks</primary></indexterm>
<listitem>
<para><ulink url="http://www.pair.com/">Pair
Networks</ulink></para>
</listitem>
<indexterm><primary>Whistle Communications</primary></indexterm>
<listitem>
<para><ulink url="http://www.whistle.com/">Whistle
Communications</ulink></para>
</listitem>
<indexterm><primary>Microsoft</primary></indexterm>
<listitem>
<para><ulink url="http://www.microsoft.com/">Microsoft</ulink></para>
</listitem>
<indexterm><primary>Hotmail</primary></indexterm>
<listitem>
<para><ulink url="http://www.hotmail.com/">Hotmail</ulink></para>
</listitem>
<indexterm><primary>Sony Japan</primary></indexterm>
<listitem>
<para><ulink url="http://www.sony.co.jp/">Sony
Japan</ulink></para>
</listitem>
</itemizedlist>
<para>and many more.</para>
</sect2>
<sect2>
<title>What Can FreeBSD Do?</title>
<para>FreeBSD has many noteworthy features. Some of these
are:</para>
<itemizedlist>
<indexterm><primary>preemptive multitasking</primary></indexterm>
<listitem>
<para><emphasis>Preemptive multitasking</emphasis> with
dynamic priority adjustment to ensure smooth and fair
sharing of the computer between applications and users, even
under the heaviest of loads.</para>
</listitem>
<indexterm><primary>multi-user facilities</primary></indexterm>
<listitem>
<para><emphasis>Multi-user facilities</emphasis> which allow many
people to use a FreeBSD system simultaneously for a variety
of things. This means, for example, that system peripherals
such as printers and tape drives are properly shared between
all users on the system or the network and that individual
resource limits can be placed on users or groups of users,
protecting critical system resources from over-use.</para>
</listitem>
<indexterm><primary>TCP/IP networking</primary></indexterm>
<listitem>
<para>Strong <emphasis>TCP/IP networking</emphasis> with
support for industry standards such as SLIP, PPP, NFS, DHCP,
and NIS. This means that your FreeBSD machine can
interoperate easily with other systems as well as act as an
enterprise server, providing vital functions such as NFS
(remote file access) and email services or putting your
organization on the Internet with WWW, FTP, routing and
firewall (security) services.</para>
</listitem>
<indexterm><primary>memory protection</primary></indexterm>
<listitem>
<para><emphasis>Memory protection</emphasis> ensures that
applications (or users) cannot interfere with each other. One
application crashing will not affect others in any way.</para>
</listitem>
<listitem>
<para>FreeBSD is a <emphasis>32-bit</emphasis> operating
system (<emphasis>64-bit</emphasis> on the Alpha) and was
designed as such from the ground up.</para>
</listitem>
<indexterm>
<primary>X Window System</primary>
<seealso>XFree86</seealso>
</indexterm>
<listitem>
<para>The industry standard <emphasis>X Window System</emphasis>
(X11R6) provides a graphical user interface (GUI) for the cost
of a common VGA card and monitor and comes with full
sources.</para>
</listitem>
<indexterm>
<primary>binary compatibility</primary>
<secondary>Linux</secondary>
</indexterm>
<indexterm>
<primary>binary compatibility</primary>
<secondary>SCO</secondary>
</indexterm>
<indexterm>
<primary>binary compatibility</primary>
<secondary>SVR4</secondary>
</indexterm>
<indexterm>
<primary>binary compatibility</primary>
<secondary>BSD/OS</secondary>
</indexterm>
<indexterm>
<primary>binary compatibility</primary>
<secondary>NetBSD</secondary>
</indexterm>
<listitem>
<para><emphasis>Binary compatibility</emphasis> with many
programs built for Linux, SCO, SVR4, BSDI and NetBSD.</para>
</listitem>
<listitem>
<para>Thousands of <emphasis>ready-to-run</emphasis>
applications are available from the FreeBSD
<emphasis>ports</emphasis> and <emphasis>packages</emphasis>
collection. Why search the net when you can find it all right
here?</para>
</listitem>
<listitem>
<para>Thousands of additional and
<emphasis>easy-to-port</emphasis> applications are available
on the Internet. FreeBSD is source code compatible with most
popular commercial Unix systems and thus most applications
require few, if any, changes to compile.</para>
</listitem>
<indexterm><primary>virtual memory</primary></indexterm>
<listitem>
<para>Demand paged <emphasis>virtual memory</emphasis> and
<quote>merged VM/buffer cache</quote> design efficiently
satisfies applications with large appetites for memory while
still maintaining interactive response to other users.</para>
</listitem>
<indexterm>
<primary>Symetric Multi-Processing (SMP)</primary>
</indexterm>
<listitem>
<para><emphasis>SMP</emphasis> support for machines with
multiple CPUs.</para>
</listitem>
<indexterm>
<primary>compilers</primary>
<secondary>C</secondary>
</indexterm>
<indexterm>
<primary>compilers</primary>
<secondary>C++</secondary>
</indexterm>
<indexterm>
<primary>compilers</primary>
<secondary>Fortran</secondary>
</indexterm>
<listitem>
<para>A full complement of <emphasis>C</emphasis>,
<emphasis>C++</emphasis>, <emphasis>Fortran</emphasis>, and
<emphasis>Perl</emphasis> development tools.
Many additional languages for advanced research
and development are also available in the ports and packages
collection.</para>
</listitem>
<indexterm><primary>source code</primary></indexterm>
<listitem>
<para><emphasis>Source code</emphasis> for the entire system
means you have the greatest degree of control over your
environment. Why be locked into a proprietary solution
at the mercy of your vendor when you can have a truly open
system?</para>
</listitem>
<listitem>
<para>Extensive <emphasis>online
documentation</emphasis>.</para>
</listitem>
<listitem>
<para><emphasis>And many more!</emphasis></para>
</listitem>
</itemizedlist>
<indexterm><primary>4.4BSD-Lite</primary></indexterm>
<indexterm>
<primary>Computer Systems Resarch Group (CSRG)</primary>
</indexterm>
<indexterm><primary>U.C. Berkeley</primary></indexterm>
<para>FreeBSD is based on the 4.4BSD-Lite release from Computer
Systems Research Group (CSRG) at the University of California at
Berkeley, and carries on the distinguished tradition of BSD
systems development. In addition to the fine work provided by
CSRG, the FreeBSD Project has put in many thousands of hours in
fine tuning the system for maximum performance and reliability in
real-life load situations. As many of the commercial giants
struggle to field PC operating systems with such features,
performance and reliability, FreeBSD can offer them
<emphasis>now</emphasis>!</para>
<para>The applications to which FreeBSD can be put are truly
limited only by your own imagination. From software development
to factory automation, inventory control to azimuth correction of
remote satellite antennae; if it can be done with a commercial
Unix product then it is more than likely that you can do it with
FreeBSD too! FreeBSD also benefits significantly from the
literally thousands of high quality applications developed by
research centers and universities around the world, often
available at little to no cost. Commercial applications are also
available and appearing in greater numbers every day.</para>
<para>Because the source code for FreeBSD itself is generally
available, the system can also be customized to an almost unheard
of degree for special applications or projects, and in ways not
generally possible with operating systems from most major
commercial vendors. Here is just a sampling of some of the
applications in which people are currently using FreeBSD:</para>
<itemizedlist>
<listitem>
<para><emphasis>Internet Services:</emphasis> The robust TCP/IP
networking built into FreeBSD makes it an ideal platform for a
variety of Internet services such as:</para>
<itemizedlist>
<indexterm><primary>FTP servers</primary></indexterm>
<listitem>
<para>FTP servers</para>
</listitem>
<indexterm><primary>web servers</primary></indexterm>
<listitem>
<para>World Wide Web servers (standard or secure
[SSL])</para>
</listitem>
<indexterm><primary>firewall</primary></indexterm>
<indexterm><primary>IP masquerading</primary></indexterm>
<listitem>
<para>Firewalls and NAT (<quote>IP masquerading</quote>)
gateways</para>
</listitem>
<indexterm><primary>electronic mail</primary></indexterm>
<listitem>
<para>Electronic Mail servers</para>
</listitem>
<indexterm><primary>USENET</primary></indexterm>
<listitem>
<para>USENET News or Bulletin Board Systems</para>
</listitem>
<listitem>
<para>And more...</para>
</listitem>
</itemizedlist>
<para>With FreeBSD, you can easily start out small with an
inexpensive 386 class PC and upgrade all the way up to a
quad-processor Xeon with RAID storage as your enterprise
grows.</para>
</listitem>
<listitem>
<para><emphasis>Education:</emphasis> Are you a student of
computer science or a related engineering field? There is no
better way of learning about operating systems, computer
architecture and networking than the hands on, under the hood
experience that FreeBSD can provide. A number of freely
available CAD, mathematical and graphic design packages also
make it highly useful to those whose primary interest in a
computer is to get <emphasis>other</emphasis> work
done!</para>
</listitem>
<listitem>
<para><emphasis>Research:</emphasis> With source code for the
entire system available, FreeBSD is an excellent platform for
research in operating systems as well as other branches of
computer science. FreeBSD's freely available nature also makes
it possible for remote groups to collaborate on ideas or
shared development without having to worry about special
licensing agreements or limitations on what may be discussed
in open forums.</para>
</listitem>
<indexterm><primary>router</primary></indexterm>
<indexterm><primary>DNS Server</primary></indexterm>
<listitem>
<para><emphasis>Networking:</emphasis> Need a new router? A
name server (DNS)? A firewall to keep people out of your
internal network? FreeBSD can easily turn that unused 386 or
486 PC sitting in the corner into an advanced router with
sophisticated packet-filtering capabilities.</para>
</listitem>
<indexterm>
<primary>X Window System</primary>
<secondary>XFree86</secondary>
</indexterm>
<indexterm>
<primary>X Window System</primary>
<secondary>Accellerated-X</secondary>
</indexterm>
<listitem>
<para><emphasis>X Window workstation:</emphasis> FreeBSD is a
fine choice for an inexpensive X terminal solution, either
using the freely available XFree86 server or one of the
excellent commercial servers provided by X Inside. Unlike an
X terminal, FreeBSD allows many applications to be run
locally, if desired, thus relieving the burden on a central
server. FreeBSD can even boot <quote>diskless</quote>, making
individual workstations even cheaper and easier to
administer.</para>
</listitem>
<indexterm><primary>GNU Compiler Collection</primary></indexterm>
<listitem>
<para><emphasis>Software Development:</emphasis> The basic
FreeBSD system comes with a full complement of development
tools including the renowned GNU C/C++ compiler and
debugger.</para>
</listitem>
</itemizedlist>
<para>FreeBSD is available in both source and binary form on CDROM
and via anonymous FTP. Please see <xref linkend="mirrors">
for more information about obtaining FreeBSD.</para>
</sect2>
</sect1>
<sect1 id="history">
<title>About the FreeBSD Project</title>
<para>The following section provides some background information on
the project, including a brief history, project goals, and the
development model of the project.</para>
<sect2 id="intro-history">
<sect2info>
<authorgroup>
<author>
<firstname>Jordan</firstname>
<surname>Hubbard</surname>
<contrib>Contributed by </contrib>
</author>
</authorgroup>
</sect2info>
<title>A Brief History of FreeBSD</title>
<indexterm><primary>386BSD Patchkit</primary></indexterm>
<indexterm><primary>Hubbard, Jordan</primary></indexterm>
<indexterm><primary>Williams, Nate</primary></indexterm>
<indexterm><primary>Grimes, Rod</primary></indexterm>
<indexterm>
<primary>FreeBSD Project</primary>
<secondary>History</secondary>
</indexterm>
<para>The FreeBSD project had its genesis in the early part of 1993,
partially as an outgrowth of the <quote>Unofficial 386BSD
Patchkit</quote> by the patchkit's last 3 coordinators: Nate
Williams, Rod Grimes and myself.</para>
<indexterm><primary>386BSD</primary></indexterm>
<para>Our original goal was to produce an intermediate snapshot of
386BSD in order to fix a number 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
<quote>386BSD 0.5</quote> or <quote>386BSD Interim</quote> in
reference to that fact.</para>
<indexterm><primary>Jolitz, Bill</primary></indexterm>
<para>386BSD was Bill Jolitz's operating system, which had been up
to that point suffering rather severely from almost a year's worth
of neglect. As the patchkit swelled ever more uncomfortably with
each passing day, we were in unanimous agreement that something
had to be done and decided to try and assist Bill by providing
this interim <quote>cleanup</quote> snapshot. Those plans came to
a rude halt when Bill Jolitz suddenly decided to withdraw his
sanction from the project without any clear indication of what
would be done instead.</para>
<indexterm><primary>Greenman, David</primary></indexterm>
<indexterm><primary>Walnut Creek CDROM</primary></indexterm>
<para>It did not take us long to decide that the goal remained
worthwhile, even without Bill's support, and so we adopted the
name <quote>FreeBSD</quote>, coined by David Greenman. Our initial
objectives were set after consulting with the system's current
users and, once it became clear that the project was on the road
to perhaps even becoming a reality, I contacted Walnut Creek CDROM
with an eye towards improving FreeBSD's distribution channels for
those many unfortunates without easy access to the Internet.
Walnut Creek CDROM not only supported the idea of distributing
FreeBSD on CD but also went so far as to provide the project with a
machine to work on and a fast Internet connection. Without Walnut
Creek CDROM's almost unprecedented degree of faith in what was, at
the time, a completely unknown project, it is quite unlikely that
FreeBSD would have gotten as far, as fast, as it has today.</para>
<indexterm><primary>4.3BSD-Lite</primary></indexterm>
<indexterm><primary>Net/2</primary></indexterm>
<indexterm><primary>U.C. Berkeley</primary></indexterm>
<indexterm><primary>386BSD</primary></indexterm>
<indexterm><primary>Free Software Foundation</primary></indexterm>
<para>The first CDROM (and general net-wide) distribution was
FreeBSD 1.0, released in December of 1993. This was based on the
4.3BSD-Lite (<quote>Net/2</quote>) tape from U.C. Berkeley, with
many components also provided by 386BSD and the Free Software
Foundation. It was a fairly reasonable success for a first
offering, and we followed it with the highly successful FreeBSD
1.1 release in May of 1994.</para>
<indexterm><primary>Novell</primary></indexterm>
<indexterm><primary>U.C. Berkeley</primary></indexterm>
<indexterm><primary>Net/2</primary></indexterm>
<indexterm><primary>AT&amp;T</primary></indexterm>
<para>Around this time, some rather unexpected storm clouds formed
on the horizon as Novell and U.C. Berkeley settled their
long-running lawsuit over the legal status of the Berkeley Net/2
tape. A condition of that settlement was U.C. Berkeley's
concession that large parts of Net/2 were <quote>encumbered</quote>
code and the property of Novell, who had in turn acquired it from
AT&T some time previously. What Berkeley got in return was
Novell's <quote>blessing</quote> that the 4.4BSD-Lite release, when
it was finally released, would be declared unencumbered and all
existing Net/2 users would be strongly encouraged to switch. This
included FreeBSD, and the project was given until the end of July
1994 to stop shipping its own Net/2 based product. Under the
terms of that agreement, the project was allowed one last release
before the deadline, that release being FreeBSD 1.1.5.1.</para>
<para>FreeBSD then set about the arduous task of literally
re-inventing itself from a completely new and rather incomplete
set of 4.4BSD-Lite bits. The <quote>Lite</quote> releases were
light in part because Berkeley's CSRG had removed large chunks of
code required for actually constructing a bootable running system
(due to various legal requirements) and the fact that the Intel
port of 4.4 was highly incomplete. It took the project until
November of 1994 to make this transition, at which point it
released FreeBSD 2.0 to the net and on CDROM (in late December).
Despite being still more than a little rough around the edges,
the release was a significant success and was followed by the
more robust and easier to install FreeBSD 2.0.5 release in June of
1995.</para>
<para>We released FreeBSD 2.1.5 in August of 1996, and it appeared
to be popular enough among the ISP and commercial communities that
another release along the 2.1-STABLE branch was merited. This was
FreeBSD 2.1.7.1, released in February 1997 and capping the end of
mainstream development on 2.1-STABLE. Now in maintenance mode,
only security enhancements and other critical bug fixes will be
done on this branch (RELENG_2_1_0).</para>
<para>FreeBSD 2.2 was branched from the development mainline
(<quote>-CURRENT</quote>) in November 1996 as the RELENG_2_2
branch, and the first full release (2.2.1) was released in April
1997. Further releases along the 2.2 branch were done in the
summer and fall of '97, the last of which (2.2.8) appeared in
November 1998. The first official 3.0 release appeared in
October 1998 and spelled the beginning of the end for the 2.2
branch.</para>
<para>The tree branched again on Jan 20, 1999, leading to the
4.0-CURRENT and 3.X-STABLE branches. 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 was followed a few days later by a minor
point release update to 3.5.1, to incorporate some last-minute
security fixes to Kerberos. This will be the final release in the
3.X branch.</para>
<para>There was another branch on March 13, 2000, which saw the
emergence of the 4.X-STABLE branch, now considered to be the
"current -stable branch". There have been several releases
from it so far: 4.0-RELEASE came out in March 2000, 4.1 was
released in July 2000, 4.2 in November 2000, and 4.3 in April
2001. There will be more releases along the 4.X-stable
(RELENG_4) branch throughout 2001.</para>
<para>Long-term development projects continue to take place in the
5.0-CURRENT (trunk) branch, and SNAPshot releases of 5.0 on
CDROM (and, of course, on the net) are continually made available
from <ulink url="ftp://current.freebsd.org/pub/FreeBSD/snapshots">
the snapshot server</ulink> as work progresses.</para>
</sect2>
<sect2 id="goals">
<sect2info>
<authorgroup>
<author>
<firstname>Jordan</firstname>
<surname>Hubbard</surname>
<contrib>Contributed by </contrib>
</author>
</authorgroup>
</sect2info>
<title>FreeBSD Project Goals</title>
<indexterm>
<primary>FreeBSD Project</primary>
<secondary>Goals</secondary>
</indexterm>
<para>The goals of the FreeBSD Project are to provide software that
may be used for any purpose and without strings attached. Many of
us have a significant investment in the code (and project) and
would certainly not mind a little financial compensation now and
then, but we are definitely not prepared to insist on it. We
believe that our first and foremost <quote>mission</quote> 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 we enthusiastically
support.</para>
<indexterm>
<primary>GNU General Public License (GPL)</primary>
</indexterm>
<indexterm>
<primary>GNU Lesser General Public License (LGPL)</primary>
</indexterm>
<indexterm><primary>BSD Copyright</primary></indexterm>
<para>That code in our source tree which falls under the GNU
General Public License (GPL) or Library General Public License
(LGPL) comes with slightly more strings attached, though at
least on the side of enforced access rather than the usual
opposite. Due to the additional 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 a reasonable option to do so.</para>
</sect2>
<sect2 id="development">
<sect2info>
<authorgroup>
<author>
<firstname>Satoshi</firstname>
<surname>Asami</surname>
<contrib>Contributed by </contrib>
</author>
</authorgroup>
</sect2info>
<title>The FreeBSD Development Model</title>
<indexterm>
<primary>FreeBSD Project</primary>
<secondary>Development Model</secondary>
</indexterm>
<para>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 our <ulink
url="../../articles/contributors/article.html">list of
contributors</ulink>. 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 &a.hackers;. The &a.announce; is also available to
those wishing to make other FreeBSD users aware of major areas
of work.</para>
<para>Useful things to know about the FreeBSD project and its
development process, whether working independently or in close
cooperation:</para>
<variablelist>
<varlistentry>
<term>The CVS repository<anchor
id="development-cvs-repository"></term>
<indexterm>
<primary>CVS</primary>
<secondary>repository</secondary>
</indexterm>
<indexterm>
<primary>Concurrent Versions System</primary>
<see>CVS</see>
</indexterm>
<listitem>
<para>The central source tree for FreeBSD is maintained by
<ulink url="http://www.cyclic.com/CVS/index_html">CVS</ulink>
(Concurrent Versions System), a freely available source code
control tool that comes bundled with FreeBSD. The primary
<ulink url="http://www.FreeBSD.org/cgi/cvsweb.cgi">CVS
repository</ulink> resides on a machine in Santa Clara CA, USA
from where it is replicated to numerous mirror machines
throughout the world. The CVS tree, as well as the <link
linkend="current">-CURRENT</link> and <link
linkend="stable">-STABLE</link> trees which are checked out
of it, can be easily replicated to your own machine as well.
Please refer to the <link linkend="synching">Synchronizing
your source tree</link> section for more information on
doing this.</para>
</listitem>
</varlistentry>
<varlistentry>
<term>The committers list<anchor
id="development-committers"></term>
<indexterm><primary>committers</primary></indexterm>
<listitem>
<para>The <firstterm>committers</firstterm>
are the people who have <emphasis>write</emphasis> access to
the CVS tree, and are thus authorized to make modifications
to the FreeBSD source (the term <quote>committer</quote>
comes from the &man.cvs.1; <command>commit</command>
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 &man.send-pr.1;
command, though if something appears to be jammed in the
system then you may also reach them by sending mail to
<email>cvs-committers@FreeBSD.org</email>.</para>
</listitem>
</varlistentry>
<varlistentry>
<term>The FreeBSD core team<anchor id="development-core"></term>
<indexterm><primary>core team</primary></indexterm>
<listitem>
<para>The <firstterm>FreeBSD core team</firstterm>
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.
The current core team was elected from a pool of committer
candidates in October 2000. Elections are held every 2 years.
</para>
<para>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. For a complete list of FreeBSD developers
and their areas of responsibility, please see the <ulink
url="../../articles/contributors/article.html">Contributors
List</ulink></para>
<note>
<para>Most members of the core team are volunteers when it
comes to FreeBSD development and do not benefit from the
project financially, so <quote>commitment</quote> should
also not be misconstrued as meaning <quote>guaranteed
support.</quote> The <quote>board of directors</quote>
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
judgment!</para>
</note>
</listitem>
</varlistentry>
<varlistentry>
<term>Outside contributors</term>
<indexterm><primary>contributors</primary></indexterm>
<listitem>
<para>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 &a.hackers; (see <link
linkend="eresources-mail">mailing list info</link>) where
such things are discussed.</para>
<para><citetitle><ulink
url="../../article/contributors/article.html">The
FreeBSD Contributors List</ulink></citetitle> is a long
and growing one, so why not join it by contributing
something back to FreeBSD today?</para>
<para>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 <ulink
url="http://www.FreeBSD.org">FreeBSD Project web
site</ulink>.</para>
</listitem>
</varlistentry>
</variablelist>
<para>In summary, our development model is organized as a loose set
of concentric circles. The centralized model is designed for the
convenience of the <emphasis>users</emphasis> 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
<link linkend="ports">application programs</link> that the users
can easily install and use, and this model works very well in
accomplishing that.</para>
<para>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!</para>
</sect2>
<sect2 id="relnotes">
<title>The Current FreeBSD Release</title>
<indexterm><primary>NetBSD</primary></indexterm>
<indexterm><primary>OpenBSD</primary></indexterm>
<indexterm><primary>386BSD</primary></indexterm>
<indexterm><primary>Free Software Foundation</primary></indexterm>
<indexterm><primary>U.C. Berkeley</primary></indexterm>
<indexterm>
<primary>Computer Systems Resarch Group (CSRG)</primary>
</indexterm>
<para>FreeBSD is a freely available, full source 4.4BSD-Lite based
release for Intel i386, i486, Pentium, Pentium Pro, Celeron,
Pentium II, Pentium III (or compatible) and DEC Alpha based computer
systems. It is based primarily on software from U.C. Berkeley's
CSRG group, with some enhancements from NetBSD, OpenBSD, 386BSD, and
the Free Software Foundation.</para>
<para>Since our release of FreeBSD 2.0 in late 94, the performance,
feature set, and stability of FreeBSD has improved dramatically.
The largest change is a revamped virtual memory system with a merged
VM/file buffer cache that not only increases performance, but also
reduces FreeBSD's memory footprint, making a 5MB configuration a
more acceptable minimum. Other enhancements include full NIS client
and server support, transaction TCP support, dial-on-demand PPP,
integrated DHCP support, an improved SCSI subsystem, ISDN support,
support for ATM, FDDI, Fast and Gigabit Ethernet (1000Mbit)
adapters, improved support for the latest Adaptec controllers, and
many hundreds of bug fixes.</para>
<para>We have also taken the comments and suggestions of many of our
users to heart and have attempted to provide what we hope is a more
sane and easily understood installation process. Your feedback on
this (constantly evolving) process is especially welcome!</para>
<para>In addition to the base distributions, FreeBSD offers a
ported software collection with thousands of commonly
sought-after programs. At the time of this printing, there
were over &os.numports; ports! The list of ports ranges from
http (WWW) servers, to games, languages, editors, and almost
everything in between. The entire ports collection requires
approximately 100MB of storage, all ports being expressed as
<quote>deltas</quote> to their original sources. This makes
it much easier for us to update ports, and greatly reduces 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 <command>make
install</command>, and let the system do the rest. The full
original distribution for each port you build is retrieved
dynamically off the CDROM or a local FTP site, so you need
only enough disk space to build the ports you want. Almost
every port is also provided as a pre-compiled
<quote>package</quote>, which can be installed with a simple
command (<command>pkg_add</command>) by those who do not wish
to compile their own ports from source.</para>
<para>A number of additional documents which you may find very helpful
in the process of installing and using FreeBSD may now also be found
in the <filename>/usr/share/doc</filename> directory on any machine
running FreeBSD 2.1 or later. You may view the locally installed
manuals with any HTML capable browser using the following
URLs:</para>
<variablelist>
<varlistentry>
<term>The FreeBSD Handbook</term>
<listitem>
<para><ulink
url="file://localhost/usr/share/doc/handbook/index.html">/usr/share/doc/handbook/index.html</ulink></para>
</listitem>
</varlistentry>
<varlistentry>
<term>The FreeBSD FAQ</term>
<listitem>
<para><ulink
url="file://localhost/usr/share/doc/faq/index.html">/usr/share/doc/faq/index.html</ulink></para>
</listitem>
</varlistentry>
</variablelist>
<para>You can also view the master (and most frequently updated)
copies at <ulink
url="http://www.FreeBSD.org/">http://www.FreeBSD.org/</ulink>.</para>
</sect2>
</sect1>
</chapter>
<!--
Local Variables:
mode: sgml
sgml-declaration: "../chapter.decl"
sgml-indent-data: t
sgml-omittag: nil
sgml-always-quote-attributes: t
sgml-parent-document: ("../book.sgml" "part" "chapter")
End:
-->
|