aboutsummaryrefslogtreecommitdiff
path: root/en_US.ISO8859-1/books/handbook/introduction/chapter.sgml
blob: c826d91bce8c8432837c3ac3f7a88743cecc5465 (plain) (blame)
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
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
1046
1047
1048
<?xml version="1.0" encoding="ISO8859-1" standalone="no"?>
<!--
     The FreeBSD Documentation Project

     $FreeBSD$
-->

<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 id="introduction-synopsis">
    <title>Synopsis</title>

    <para>Thank you for your interest in &os;!  The following chapter
      covers various aspects of the &os;&nbsp;Project, such as its history,
      goals, development model, and so on.</para>

    <para>After reading this chapter, you will know:</para>

    <itemizedlist>
      <listitem>
	<para>How &os; relates to other computer operating systems.</para>
      </listitem>

      <listitem>
	<para>The history of the &os;&nbsp;Project.</para>
      </listitem>

      <listitem>
	<para>The goals of the &os;&nbsp;Project.</para>
      </listitem>

      <listitem>
	<para>The basics of the &os; open-source development model.</para>
      </listitem>

      <listitem>
	<para>And of course: where the name <quote>&os;</quote> comes
	  from.</para>
      </listitem>
    </itemizedlist>
  </sect1>

  <sect1 id="nutshell">
    <title>Welcome to &os;!</title>
    <indexterm><primary>4.4BSD-Lite</primary></indexterm>

    <para>&os; is a 4.4BSD-Lite based operating system for
      Intel (x86 and &itanium;), AMD64, Sun
      &ultrasparc; computers.  Ports to other
      architectures are also underway.  You can also
      read about <link linkend="history">the history of &os;</link>,
      or the <link linkend="relnotes">current release</link>.  If you
      are interested in contributing something to the Project (code,
      hardware, funding), see the <ulink
	url="&url.articles.contributing;/index.html">Contributing to &os;</ulink> article.</para>

    <sect2 id="os-overview">
      <title>What Can &os; Do?</title>

      <para>&os; has many noteworthy features.  Some of these
	are:</para>

      <itemizedlist>
	<listitem>
	  <indexterm><primary>preemptive multitasking</primary></indexterm>

	  <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>

	<listitem>
	  <indexterm><primary>multi-user facilities</primary></indexterm>

	  <para><emphasis>Multi-user facilities</emphasis> which allow many
	    people to use a &os; 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>
	<listitem>
	  <indexterm><primary>TCP/IP networking</primary></indexterm>

	  <para>Strong <emphasis>TCP/IP networking</emphasis> with
	    support for industry standards such as SCTP, DHCP, NFS,
	    NIS, PPP, SLIP, IPsec, and IPv6.  This means that your &os;
	    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>

	<listitem>
	  <indexterm><primary>memory protection</primary></indexterm>

	  <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>&os; is a <emphasis>32-bit</emphasis> operating
	    system (<emphasis>64-bit</emphasis> on the &itanium;,
	    AMD64, and &ultrasparc;) and was designed as such from the ground
	    up.</para>
	</listitem>

	<listitem>
	  <indexterm>
	    <primary>X Window System</primary>
	  </indexterm>

	  <para>The industry standard <emphasis>X Window System</emphasis>
	    (X11R7) provides a graphical user interface (GUI) for the cost
	    of a common VGA card and monitor and comes with full
	    sources.</para>
	</listitem>

	<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>

	  <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 &os;
	    <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.  &os; is source code compatible with most
	    popular commercial &unix; systems and thus most applications
	    require few, if any, changes to compile.</para>
	</listitem>
	<listitem>
	  <indexterm><primary>virtual memory</primary></indexterm>

	  <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>

	<listitem>
	  <indexterm>
	    <primary>Symmetric Multi-Processing (SMP)</primary>
	  </indexterm>

	  <para><emphasis>SMP</emphasis> support for machines with
	    multiple CPUs.</para>
	</listitem>

	<listitem>
	  <indexterm>
	    <primary>compilers</primary>
	    <secondary>C</secondary>
	  </indexterm>
	  <indexterm>
	    <primary>compilers</primary>
	    <secondary>C++</secondary>
	  </indexterm>

	  <para>A full complement of <emphasis>C</emphasis>
	    and <emphasis>C++</emphasis>
	    development tools.
	    Many additional languages for advanced research
	    and development are also available in the ports and packages
	    collection.</para>
	</listitem>

	<listitem>
	  <indexterm><primary>source code</primary></indexterm>

	  <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 Research Group (CSRG)</primary>
      </indexterm>
      <indexterm><primary>U.C. Berkeley</primary></indexterm>
      <para>&os; 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 &os;&nbsp;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, &os; can offer them
	<emphasis>now</emphasis>!</para>

      <para>The applications to which &os; 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
	&os; too!  &os; also benefits significantly from
	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 &os; 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 &os;:</para>

      <itemizedlist>
	<listitem>
	  <para><emphasis>Internet Services:</emphasis> The robust TCP/IP
	    networking built into &os; makes it an ideal platform for a
	    variety of Internet services such as:</para>

	  <itemizedlist>
	    <listitem>
	      <indexterm><primary>FTP servers</primary></indexterm>

	      <para>FTP servers</para>
	    </listitem>

	    <listitem>
	      <indexterm><primary>web servers</primary></indexterm>

	      <para>World Wide Web servers (standard or secure
		[SSL])</para>
	    </listitem>

	    <listitem>
	      <para>IPv4 and IPv6 routing</para>
	    </listitem>

	    <listitem>
	      <indexterm><primary>firewall</primary></indexterm>

	      <indexterm><primary>NAT</primary></indexterm>

	      <para>Firewalls and NAT (<quote>IP masquerading</quote>)
		gateways</para>
	    </listitem>

	    <listitem>
	    <indexterm>
	      <primary>electronic mail</primary>
	      <see>email</see>
	    </indexterm>
	    <indexterm>
	      <primary>email</primary>
	    </indexterm>

	      <para>Electronic Mail servers</para>
	    </listitem>

	    <listitem>
	      <indexterm><primary>USENET</primary></indexterm>

	      <para>USENET News or Bulletin Board Systems</para>
	    </listitem>

	    <listitem>
	      <para>And more...</para>
	    </listitem>
	  </itemizedlist>

	  <para>With &os;, 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 &os; 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, &os; is an excellent platform for
	    research in operating systems as well as other branches of
	    computer science.  &os;'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>

	<listitem>
	  <indexterm><primary>router</primary></indexterm>

	  <indexterm><primary>DNS Server</primary></indexterm>

	  <para><emphasis>Networking:</emphasis>  Need a new router?  A
	    name server (DNS)? A firewall to keep people out of your
	    internal network?  &os; can easily turn that unused 386 or
	    486 PC sitting in the corner into an advanced router with
	    sophisticated packet-filtering capabilities.</para>
	</listitem>

	<listitem>
	<indexterm>
	  <primary>X Window System</primary>
	</indexterm>
	<indexterm>
	  <primary>X Window System</primary>
	  <secondary>Accelerated-X</secondary>
	</indexterm>

	  <para><emphasis>X Window workstation:</emphasis> &os; is a
	    fine choice for an inexpensive X terminal solution,
	    using the freely available X11 server.
	    Unlike an X terminal, &os; allows many applications to be run
	    locally if desired, thus relieving the burden on a central
	    server.  &os; can even boot <quote>diskless</quote>, making
	    individual workstations even cheaper and easier to
	    administer.</para>
	</listitem>

	<listitem>
	  <indexterm><primary>GNU Compiler Collection</primary></indexterm>

	  <para><emphasis>Software Development:</emphasis>  The basic
	    &os; system comes with a full complement of development
	    tools including the renowned GNU C/C++ compiler and
	    debugger.</para>
	</listitem>
      </itemizedlist>

      <para>&os; is available in both source and binary form on CD-ROM,
	DVD, and via anonymous FTP.  Please see <xref linkend="mirrors"/>
	for more information about obtaining &os;.</para>
    </sect2>

    <sect2 id="introduction-nutshell-users">
      <title>Who Uses &os;?</title>

      <indexterm>
	<primary>users</primary>
	<secondary>large sites running &os;</secondary>
      </indexterm>

      <para>&os; is used as a platform for devices and products from
        many of the world's largest IT companies, including:</para>

      <itemizedlist>
	<listitem>
	  <indexterm><primary>Apple</primary></indexterm>
	  <para><ulink url="http://www.apple.com/">Apple</ulink></para>
	</listitem>

	<listitem>
	  <indexterm><primary>Cisco</primary></indexterm>
	  <para><ulink url="http://www.cisco.com/">Cisco</ulink></para>
	</listitem>

	<listitem>
	  <para><ulink url="http://www.juniper.net/">Juniper</ulink></para>
	</listitem>

	<listitem>
	  <indexterm><primary>NetApp</primary></indexterm>
	  <para><ulink url="http://www.netapp.com/">NetApp</ulink></para>
	</listitem>
      </itemizedlist>

      <para>&os; is also used to power some of the biggest sites on the
	Internet, including:</para>

      <itemizedlist>
	<listitem>
	  <indexterm><primary>Yahoo!</primary></indexterm>
	  <para><ulink url="http://www.yahoo.com/">Yahoo!</ulink></para>
	</listitem>

	<listitem>
	  <indexterm><primary>Yandex</primary></indexterm>
	  <para><ulink url="http://www.yandex.ru/">Yandex</ulink></para>
	</listitem>

	<listitem>
	  <indexterm><primary>Apache</primary></indexterm>
	  <para><ulink url="http://www.apache.org/">Apache</ulink></para>
	</listitem>

	<listitem>
	  <indexterm><primary>Rambler</primary></indexterm>
	  <para><ulink url="http://www.rambler.ru/">Rambler</ulink></para>
	</listitem>

	<listitem>
	  <indexterm><primary>Sina</primary></indexterm>
	  <para><ulink url="http://www.sina.com/">Sina</ulink></para>
	</listitem>

	<listitem>
	  <indexterm><primary>Pair Networks</primary></indexterm>

	  <para><ulink url="http://www.pair.com/">Pair Networks</ulink></para>
	</listitem>

	<listitem>
	  <indexterm><primary>Sony Japan</primary></indexterm>

	  <para><ulink url="http://www.sony.co.jp/">Sony Japan</ulink></para>
	</listitem>

	<listitem>
	  <indexterm><primary>Netcraft</primary></indexterm>

	  <para><ulink url="http://www.netcraft.com/">Netcraft</ulink></para>
	</listitem>

	<listitem>
	  <indexterm><primary>NetEase</primary></indexterm>

	  <para><ulink url="http://www.163.com/">NetEase</ulink></para>
	</listitem>

	<listitem>
	  <indexterm><primary>Weathernews</primary></indexterm>

	  <para><ulink url="http://www.wni.com/">Weathernews</ulink></para>
	</listitem>

	<listitem>
	  <indexterm><primary>TELEHOUSE America</primary></indexterm>

	  <para><ulink url="http://www.telehouse.com/">TELEHOUSE
	    America</ulink></para>
	</listitem>

	<listitem>
	  <indexterm><primary>Experts Exchange</primary></indexterm>

	  <para><ulink url="http://www.experts-exchange.com/">Experts
	    Exchange</ulink></para>
	</listitem>
      </itemizedlist>

      <para>and many more.</para>
    </sect2>
  </sect1>

  <sect1 id="history">
    <title>About the &os;&nbsp;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 role="firstperson">
	<authorgroup>
	  <author>
	    <firstname>Jordan</firstname>
	    <surname>Hubbard</surname>
	    <contrib>Contributed by </contrib>
	  </author>
	</authorgroup>
      </sect2info>

      <title>A Brief History of &os;</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 &os;&nbsp;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 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>&os;</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 toward improving &os;'s distribution channels for
	those many unfortunates without easy access to the Internet.
	Walnut Creek CDROM not only supported the idea of distributing
	&os; 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
	&os; 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 CD-ROM (and general net-wide) distribution was
	&os;&nbsp;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 &os;
	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&amp;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 &os;, 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 &os;&nbsp;1.1.5.1.</para>

      <para>&os; 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 &os;&nbsp;2.0 to the net and on CD-ROM (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 &os;&nbsp;2.0.5 release in June of
	1995.</para>

      <para>We released &os;&nbsp;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
	&os;&nbsp;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>&os;&nbsp;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.  There have been several releases
	from it so far: 4.0-RELEASE was introduced in March 2000, and
	the last 4.11-RELEASE came out in January 2005.</para>

      <para>The long-awaited 5.0-RELEASE was announced on January 19,
	2003.  The culmination of nearly three years of work, this
	release started &os; on the path of advanced multiprocessor
	and application thread support and introduced support for the
	&ultrasparc; and <literal>ia64</literal> platforms.  This release
	was followed by 5.1 in June of 2003.  The last 5.X release from the
	-CURRENT branch was 5.2.1-RELEASE, introduced in February 2004.</para>

      <para>The RELENG_5 branch, created in August 2004, was followed by
	5.3-RELEASE, which marked the beginning of the 5-STABLE branch
	releases.  The most recent 5.5-RELEASE release came out in May 2006.
	There will be no additional releases from the RELENG_5 branch.</para>

      <para>The tree was branched again in July 2005, this time for RELENG_6.
	6.0-RELEASE, the first release of the 6.X branch, was released in
	November 2005.  The most recent 6.4-RELEASE came out in
	November 2008.  There will be no additional releases from the
	RELENG_6 branch.  This branch is the last branch to support the
	Alpha architecture.</para>

      <para>The RELENG_7 branch was created in October 2007.  The first
	release of this branch was 7.0-RELEASE, which came
	out in February 2008.  The most recent 7.4-RELEASE came out
	in February 2011.  There will be no additional releases from the
	RELENG_7 branch.</para>

      <para>The tree was branched again in August 2009, this time for
	RELENG_8.  8.0-RELEASE, the first release of the 8.X branch, was
	released in November 2009.  The most recent
	&rel2.current;-RELEASE came out in &rel2.current.date;.  There will
	be additional releases from the RELENG_8 branch.</para>

      <para>The RELENG_9 branch was created in September 2011.  The first
	release of this branch was &rel.current;-RELEASE, which came
	out in &rel.current.date;.  There will be additional releases
	from the RELENG_9 branch.</para>

      <para>For now, long-term development projects continue to take place
	in the 10.X-CURRENT (trunk) branch, and SNAPshot releases of 10.X on
	CD-ROM (and, of course, on the net) are continually made available
	from <ulink
	  url="ftp://ftp.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>&os;&nbsp;Project Goals</title>

      <indexterm>
	<primary>FreeBSD Project</primary>
	<secondary>goals</secondary>
      </indexterm>
      <para>The goals of the &os;&nbsp;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 &os; Development Model</title>

      <indexterm>
	<primary>FreeBSD Project</primary>
	<secondary>development model</secondary>
      </indexterm>
      <para>The development of &os; is a very open and flexible
	process, being literally built from the contributions
	of hundreds of people around the world, as can be seen from
	our <ulink
	  url="&url.articles.contributors;/article.html">list of
	  contributors</ulink>.  &os;'s development infrastructure allow
	these hundreds of developers to collaborate over the Internet.
	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 &os; users aware of major areas
	of work.</para>

      <para>Useful things to know about the &os;&nbsp;Project and its
	development process, whether working independently or in close
	cooperation:</para>

      <variablelist>
	<varlistentry>
	  <term>The SVN and CVS repositories<anchor
	    id="development-cvs-repository"/></term>
	  <listitem>
	    <indexterm>
	      <primary>CVS</primary>
	      <secondary>repository</secondary>
	    </indexterm>

	    <indexterm>
	      <primary>Concurrent Versions System</primary>
	      <see>CVS</see>
	    </indexterm>

	    <indexterm>
	      <primary>SVN</primary>
	      <secondary>repository</secondary>
	    </indexterm>

	    <indexterm>
	      <primary>Subversion</primary>
	      <see>SVN</see>
	    </indexterm>

	    <para>For several years, the central source tree for &os;
	      was maintained by
	      <ulink url="http://www.nongnu.org/cvs/">CVS</ulink>
	      (Concurrent Versions System), a freely available source code
	      control tool that comes bundled with &os;.  In June 2008, the
	      Project switched to using <ulink
		url="http://subversion.tigris.org">SVN</ulink> (Subversion).
	      The switch was deemed necessary, as the technical limitations
	      imposed by <application>CVS</application> were becoming obvious
	      due to the rapid expansion of the source tree and the amount
	      of history already stored.  The Documentation Project
	      and Ports Collection repositories also moved from
	      <application>CVS</application> to
	      <application>SVN</application> in May 2012 and July
	      2012, respectively.</para>

	    <para>While the <literal>src/</literal> and
	      <literal>ports/</literal> repositories now use
	      <application>SVN</application>, client side tools like
	      <application>csup</application> that depend on the older
	      <application>CVS</application> infrastructure, continue to
	      work normally &mdash; changes in the
	      <application>SVN</application> repository are backported to
	      <application>CVS</application> for this purpose.
	      Unlike <literal>src/</literal> and
	      <literal>ports/</literal>,
	      the documentation <application>SVN</application>
	      repository is not backported to
	      <application>CVS</application>.</para>

	    <para>The primary <application>CVS</application>
	      <ulink
		url="http://www.FreeBSD.org/cgi/cvsweb.cgi">repository</ulink>
	      resides on a machine in Santa Clara CA, USA
	      from where it is replicated to numerous mirror machines
	      throughout the world.  The <application>SVN</application> tree,
	      which contains the <link linkend="current">-CURRENT</link> and
	      <link linkend="stable">-STABLE</link> trees,
	      can all 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>

	  <listitem>
	    <indexterm><primary>committers</primary></indexterm>

	    <para>The <firstterm>committers</firstterm>
	      are the people who have <emphasis>write</emphasis> access to
	      the CVS tree, and are authorized to make modifications
	      to the &os; 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.  If something appears to be jammed in the
	      system, then you may also reach them by sending mail to
	      the &a.committers;.</para>
	  </listitem>
	</varlistentry>

	<varlistentry>
	  <term>The FreeBSD core team<anchor id="development-core"/></term>

	  <listitem>
	    <indexterm><primary>core team</primary></indexterm>

	    <para>The <firstterm>&os; core team</firstterm>
	      would be equivalent to the board of directors if the
	      &os;&nbsp;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 July 2012.  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 &os; developers
	      and their areas of responsibility, please see the <ulink
		url="&url.articles.contributors;/article.html">Contributors
		List</ulink></para>

	    <note>
	      <para>Most members of the core team are volunteers when it
		comes to &os; 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 very accurate, and it may be
		more suitable to say that these are the people who gave up
		their lives in favor of &os; against their better
		judgement!</para>
	    </note>
	  </listitem>
	</varlistentry>

	<varlistentry>
	  <term>Outside contributors</term>

	  <listitem>
	    <indexterm><primary>contributors</primary></indexterm>

	    <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 &os;'s more non-centralized
	      development is to subscribe to the &a.hackers; where such
	      things are discussed.  See <xref linkend="eresources"/> for
	      more information about the various &os; mailing lists.</para>

	    <para><citetitle><ulink
		url="&url.articles.contributors;/article.html">The
		&os; Contributors List</ulink></citetitle> is a long
	      and growing one, so why not join it by contributing
	      something back to &os; 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="&url.base;/index.html">&os;&nbsp;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 &os;, who are
	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 &mdash; this model works very well in
	accomplishing that.</para>

      <para>All we ask of those who would join us as &os; developers is
	some of the same dedication its current people have to its
	continued success!</para>
    </sect2>

    <sect2 id="relnotes">
      <title>The Current &os; 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 Research Group (CSRG)</primary>
      </indexterm>
      <para>&os; is a freely available, full source 4.4BSD-Lite based
	release for Intel &i386;, &i486;, &pentium;,
	&pentium;&nbsp;Pro,
	&celeron;,
	&pentium;&nbsp;II,
	&pentium;&nbsp;III,
	&pentium;&nbsp;4 (or compatible),
	&xeon;,
	and Sun &ultrasparc; 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 &os;&nbsp;2.0 in late 1994, the performance,
	feature set, and stability of &os; has improved dramatically.
	<!-- XXX is the rest of this paragraph still true ? -->
	The largest change is a revamped virtual memory system with a merged
	VM/file buffer cache that not only increases performance, but also
	reduces &os;'s memory footprint, making a 5&nbsp;MB 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 (1000&nbsp;Mbit)
	adapters, improved support for the latest Adaptec controllers, and
	many thousands of bug fixes.</para>

      <para>In addition to the base distributions, &os; 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 &ports.size; 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 CD-ROM 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.  More information on
	packages and ports can be found in <xref linkend="ports"/>.</para>

      <para>All recent &os; versions provide an option in the installer
	(either &man.sysinstall.8; or &man.bsdinstall.8;) to install
	additional documentation under <filename
	  class="directory">/usr/local/share/doc/freebsd</filename> during
	the initial system setup.  Documentation may also be installed at
	any later time using packages as described in <xref
	  linkend="doc-ports-install-package"/>.
	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 type="html"
		url="file://localhost/usr/local/share/doc/freebsd/handbook/index.html"><filename>/usr/local/share/doc/freebsd/handbook/index.html</filename></ulink></para>
	  </listitem>
	</varlistentry>

	<varlistentry>
	  <term>The FreeBSD FAQ</term>

	  <listitem>
	    <para><ulink type="html"
		url="file://localhost/usr/local/share/doc/freebsd/faq/index.html"><filename>/usr/local/share/doc/freebsd/faq/index.html</filename></ulink></para>
	  </listitem>
	</varlistentry>
      </variablelist>

      <para>You can also view the master (and most frequently updated)
	copies at <ulink url="http://www.FreeBSD.org/"></ulink>.</para>
    </sect2>
  </sect1>
</chapter>