Contributed by &a.jkh;.
-The FreeBSD project was started somewhere in the early part of 1992 as
-an outgrowth of the "Unofficial 386BSD Patchkit" by the patchkit's
-last 3 coordinators: Nate Williams, Jordan Hubbard and Rod Grimes.
+The FreeBSD project had its genesis in the early part of 1992,
+partially as an outgrowth of the "Unofficial 386BSD Patchkit" by the
+patchkit's last 3 coordinators: Nate Williams, Rod Grimes and myself.
David Greenman and Julian Elischer were also lurking in the background
around this time, though they didn't come fully into the project until
-a month or two after it was more or less officially launched. The
-original working title of the project was also "386BSD 0.5" or "386BSD
-Interim", a reference to the fact that the original goal was to
-produce an intermediate snapshot of 386BSD.
-
-386BSD was Bill Jolitz's operating system, which had been up to
-that point suffering rather severely from neglect, a consequence
-of which was to cause the patchkit to swell ever more
-uncomfortably with each passing day. The 3 ex-patchkit
-coordinators were all in agreement that the patchkit had to die.
-It was rapidly outliving its usefulness, and it would be a far
-easier thing to simply do another 386BSD release with all patches
-applied and a number of its aging utilities updated.
-
-These plans came to a rude halt when Bill Jolitz suddenly decided
-to withdraw his sanction from the project. It didn't take the
-team members long to decide that the goal remained worthwhile
-even without Bill's support, and so they adopted the name
-"FreeBSD", which was coined by David Greenman.
-
-Once it also became clear that the project was on the road to
-perhaps even becoming a reality, Jordan Hubbard contacted Walnut
-Creek CDROM with an eye towards improving FreeBSD's distribution
-channels to those many unfortunates without easy access to the
-Internet. Walnut Creek CDROM not only supported the idea of
-distributing FreeBSD on CD, but 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 unprecidented degree of faith
-in what was, at the time, a completely unknown project, it is
-very unlikely that FreeBSD would have gotten as far, as fast, as
-it has today.
+a month or two after it was more or less officially launched. 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 wasn't 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 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 "cleanup"
+snapshot. Those plans came to a rude halt when Bill Jolitz suddenly
+decided to withdraw his sanction from the project and without any
+clear indication of what would be done instead (and it was, in fact,
+to be another full year before he was even heard from in public
+again!).
+
+It didn't take us long to decide that the goal remained worthwhile
+even without Bill's support, and so we adopted the name "FreeBSD",
+which was 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 to those many unfortunates without
+easy access to the Internet. Walnut Creek CDROM not only supported
+the idea of distributing FreeBSD on CD but 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 unprecidented degree of faith in
+what was, at the time, a completely unknown project, it is in fact
+very unlikely that FreeBSD would have gotten as far, as fast, as it
+has today.
+
+The first CDROM (and general net-wide) distribution was FreeBSD 1.0,
+released in December of '93. This was based on the 4.3 BSD Lite
+("Net/2") tape from U.C. Berkeley with many components provided by
+386BSD and the Free Software Foundation. It was a fairly reasonable
+success for a first offering, and we followed this release with the
+highly successful FreeBSD 1.1 version in May of 1994.
+
+Around this time, some rather unexpected storm clouds formed on our
+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
+was "encumbered" code and property of Novell, who had in turn aquired
+it from AT&T some time previously. What Berkeley got in return was
+Novell's "blessing" that the 4.4 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 us, and we were
+given until the end of July 1994 to stop shipping our own Net/2 based
+product. Under the terms of that agreement, were were allowed one
+last release before the deadline and that became FreeBSD 1.1.5.1, the
+culmination of our year's work with Net/2 and generally considered by
+many to be a significant project milestone for stability and general
+performance..
+
+We then set about the arduous task of literally re-inventing ourselves
+with a completely new and rather incomplete set of 4.4 Lite bits. The
+"Lite" releases were light in part because Berkeley's CSRG removed
+large chunks of code required for actually making a bootable running
+system out of it due to various legal requirements and the fact that
+the Intel port of 4.4 was highly incomplete. It took us until
+December of 1994 to make this transition, and in January of 1995 we
+released FreeBSD 2.0 to the net and on CDROM. Despite being still
+more than a little rough around the edges, the release was a
+significant success and has since been followed by the more robust and
+easier to install FreeBSD 2.0.5 release in June of 1995.
+
+Where to from here? Well, we intend to release FreeBSD 2.1 sometime
+in September of 1995 and have reasonable expectations that it will
+meet or exceed all of the standards for quality we set with FreeBSD
+1.1.5.1 back in July of 1994. From there, we'll probably go to a
+two-track scheme with a "stable" branch of FreeBSD and an
+"experimental" branch, where development can continue at its usually
+rapid pace without penalizing those who just want a stable, working
+system without too much excitement. We also intend to focus on any
+remaining areas of weakness, like documentation or missing drivers,
+and steadily increase the overall quality and feature set of the
+system well into 1996 and beyond.
+
+ Jordan
+
diff --git a/handbook/nutshell.sgml b/handbook/nutshell.sgml
index 3c7fc43cf3..a7ef47ac3c 100644
--- a/handbook/nutshell.sgml
+++ b/handbook/nutshell.sgml
@@ -1,148 +1,147 @@
-
+
FreeBSD is a state of the art operating system for
personal computers based on the Intel CPU architecture, which
includes the 386, 486 and Pentium processors (both SX and DX versions).
Intel compatible CPUs from AMD and Cyrix are supported as well.
FreeBSD provides you with many advanced features previously available
only on much more expensive computers. These features include:
Contributed by &a.gpalmer; and &a.jkh;.
Unfortunately, there are more variations of UN*X than most people
know of, and hence not all software for UN*X available on the Internet
will work on all versions of UN*X (in fact, I can guarantee it!).
Hence, some software needs modifications to work under some UN*Xs. The
process of making those modifications is known as ``porting'' and the
result known as a ``port'' (not to be confused with the sockets on the
back of your computer!).
People who (allegedly) know what they are doing have automated the
-process of ``porting'' software to FreeBSD, and the result is the
-Ports Collection. The general idea is that a combination of various
-programming tools available in the base FreeBSD installation will
-allow you to fetch the port from a FreeBSD mirror site, type ``make''
-and get the fully working program.
+ When 2.0 was released, the FreeBSD Project decided to attempt to
+automate the process of ``porting'' such software to FreeBSD, and the
+result is the Ports Collection. The general idea was that a
+combination of various programming tools already available in the base
+FreeBSD installation would allow you to simply type `make' for a given
+port and have the underlying ports mechanism automatically fetch the
+port from a FreeBSD mirror site, apply any special configuration
+knowledge to it and then build it to result in a fully working version
+of the program.
The ports collection itself normally doesn't have any of the
original source code necessary for the compilation in the tree, just
those shell scripts, Makefiles and source code ``diffs'' that are
-necessary to compile the program under FreeBSD. This is meant to keep
-the entire system down to a manageable size, and the current system
-has over 100 ports in the master source tree, and yet a compressed tar
-file of that tree is about 2 megabytes (all the source code needed is
-over 100Mb's!).
+necessary to configure and compile the program under FreeBSD. This
+keeps the entire system down to a manageable size, with the current
+system having over 300 ports in the master source tree and yet taking
+up no more than a few tens of megabytes.
A ports' Makefile automatically looks in a central location on
-your system (usually /usr/ports/distfiles, though this value can be
+ The Makefile for a port automatically looks in a central location
+on your system (usually /usr/ports/distfiles, though this value can be
customized) for the associated set of original distribution files that
-have been ``ported''. These are generally provided at various places
-on the Internet, though if you have a CDROM distribution of FreeBSD
-then you've already got them available on your CD for ease of use.
-See section 3.1 if you have such a CD distribution, otherwise skip to
-section 3.2.
-
-
-
- The ports collection is easy to use from CDROM, and all you need do
+is create a "link tree" to it using the ``lndir'' command that comes
+with the XFree86 distribution. Find a location with some
+free space and create a directory there, then invoking the lndir
+command with the full pathname of the ``ports'' directory on the CDROM
+as an argument (this might be, for example, something like: ``lndir
+/cdrom/ports''). Then you can build ports directly off the CDROM by
+building them in the link tree you've created.
+
+ The ports collection can also use an auto-fetch system to keep
your ports collection source tree up to date, updating the central
``distfiles'' version for you the next time you compile the port.
- Of course, this always assumes you have a permanent network link,
-or don't mind heavy usage of your telephone. If you don't want heavy
-network usage when you compile your ports tree, you can pre-fetch the
+ Of course, this assumes you have a permanent network link or don't
+mind heavy usage of your telephone. If you don't want heavy network
+usage when you compile your ports tree, you can pre-fetch the
necessary tarballs beforehand and put them into /usr/ports/distfiles
(or wherever DISTDIR points) by hand. A good way to see what files a
port is going to need is to cd to that port's directory and do a
``make -n fetch'' to see what it does.
You can also chose to get the source files either from the master
FTP site as defined in the relevant Makefile (in the MASTER_SITES
line), or some FreeBSD mirror site also carrying a set of distfiles,
as does the master FTP site on ftp.FreeBSD.org (aka ftp.cdrom.com) in
the directory /pub/FreeBSD/ports/distfiles. Note that the files in
that directory are not guarenteed to be kept up to date - this is a
volunteer project! We can't make any guarantees about the mirror
sites either - they are obviously under independant control and don't
even have to mirror the distfiles directory.
If you have a non-permanant link, you can fetch all the distfiles by
going to the top of the tree and typing ``make fetch''.
Oh. You can do one of four (4) things :
See the file GUIDELINES, in:
ftp://ftp.FreeBSD.org/pub/FreeBSD/ports/GUIDELINES
This contains details of the procedure and structure involved.
Upload the fixed version to freefall.cdrom.com /pub/incoming or
ftp.FreeBSD.org /pub/FreeBSD/incoming and send e-mail to
ports@FreeBSD.org with the filename and details. Someone on the
all-volunteer `ports committee' will (hopefully) look it over and
commit it to the ports collection if they like the looks of it.
- We know. Please don't blame us. There is a program called `ncftp'
-which is used instead of the normal ftp as it can do so-called
-``background'' or ``batch'' transfers, ideal for this situation.
-Unfortunately it can do strange things, and has crashed at least one
-machine (during circumstances stranger than most, I'll admit, but it
-was still responsible). Hopefully a future release of ncftp will fix
-these problems (it is not maintained by the main FreeBSD team, but a
-third party, who is I believe aware of its shortcomings)
-
-
There is a way around this. Before starting the compilation, type:
First read the bsd.port.mk file (which may be found in
/usr/share/mk/) and the associated bsd.port.subdir.mk file. A lot of
the weirdness can be explained properly in there (most of the current
weirdness is due to the lack of assumptions about anything, which is
necessary due to the generic nature of these files). Also check that
you have an up-to-date copy, as the file can change from minute to
minute. A reasonably up-to-date copy can be found in:
Send changes to ports@FreeBSD.org. Changes are most welcome!
This FAQ is also very green and should be considered no more than
a `good start' for now. Authors? You can come out of hiding any
time now! :-)
One good method is to cd to the top of the ports tree (say /usr/ports)
-and type something like:
+and type:
For various reasons, when using FTP over the Internet to obtain the
source code, you may not always end up with the same copy of the code
that the origional porter worked from, and this can lead to problems.
So a simple checksumming system has been employed to try and highlight
problems in this area.
To check the entire system, go to the top of the ports tree
(defaults to /usr/ports) and type
Contributed by &a.jkh;.
This guide is intended for those who are moderately familar with FreeBSD
and are now to the point where they have some locally developed
customizations or fixes to the system which they'd like to incorporate
back into the mainstream sources, thus saving the work of having to
re-integrate the changes for each subsequent FreeBSD release. Submitting
something to the FreeBSD project is also an excellent way of getting your
-code seriously tested! Many people have developed an original concept
-far beyond what they might have envisioned at the start just due to the
+code seriously tested! Many people have seen an original concept
+develop far beyond what they might have envisioned at the start just due to the
flood of feedback and ideas generated by the many thousands of users of
FreeBSD. Contributions are also what FreeBSD lives and grows from,
and so your contributions are very important to the continued survival
of this communal effort of ours---we're very glad to see you reading this
-documentation!
+document!
Submissions to FreeBSD can generally be classified into four catagories:
An idea, suggestion or fix can be communicated in one of the following ways:
An addition or change to the existing source code is a somewhat trickier
affair and depends a lot on how far out of date you are with the current
state of the core FreeBSD development. There is a special on-going release
of FreeBSD known as ``FreeBSD-current'' and made available in a variety of
ways for the convenience of developers who wish to actively work on the
system. See for more information about getting and using FreeBSD-current.
Working from older sources unfortunately means that your changes may
sometimes be too obsolete to use, or too divergent to allow for easy
re-integration. This can be minimized somewhat by subscribing to the
<announce@freebsd.org> mailing list, among
others, where periodic
announcements concerning the current state of the system are made.
If you see a change being proposed for which you have a better solution,
by all means come forward with your contribution and we
will do our very best to evaluate it fairly and perhaps integrate it if
it is indeed a better solution.
Assuming that you can manage to secure fairly up-to-date sources to base
your changes on, the next step is to produce a set of diffs to send to the
FreeBSD maintainers for evaluation and possible adoption. This is done
with the diff(1) command, with the FreeBSD
maintainers preferring to receive
diffs in `context diff' form. For example:
In the case of a significant contribution of a large body
work, or the addition of an important new feature to FreeBSD,
it becomes almost always necessary to either send changes as
uuencoded tar files or upload them to our ftp site The porting of freely available software, while perhaps not as
gratifying as developing your own package from scratch, is still
a vital part of FreeBSD's growth and of great usefulness to those
who wouldn't otherwise know where to turn for it. All ported
software is organized into a hierarchy know as ``the ports
collection''. This collection enables a new user to get a
complete overview of what's available in a short time, and with a
logical framework. The ports collection also saves
considerable space by not actually containing the the majority of
the sources being ported. See for more information on using the ports collection
and for
guidelines on creating new ports. You may also send mail to
<ports@freebsd.org>.
Whichever way you decide to contribute, we hope you'll find it an
enjoyable process and also realize how valuable your
contributions are to the project! FreeBSD is one of those great
projects where the more we all put in, the more we all get back
out of it again, and with enough steady contributions it begins
to aquire a momentum of its own. It is through such momentum
that mountains are moved!
diff --git a/handbook/sup.sgml b/handbook/sup.sgml
index 0025a73961..a2c02f4d80 100644
--- a/handbook/sup.sgml
+++ b/handbook/sup.sgml
@@ -1,91 +1,91 @@
-
+
Contributed by &a.jkh; and &a.gclarkii;.
SUP is a network based software update tool developed at CMU. The
purpose of this document is get the beginner up and running with sup.
First off you will need to pick up the sup binaries. The easiest
way of doing this is to grab the sup.tgz package from:
For the main FreeBSD distribution:
The following tips and tricks may help you turn a
failing (or failed) installation attempt into a success.
Please read them carefully.
Cause: Last-minute problems with this driver caused it
- to be disabled by default.
-
- Solution: Boot with -c (described above) and set the
- flags value of fdc0 to 1. This will re-enable the floppy
- tape driver. Sorry, but it was causing problems for
- other people!
-
Cause: You still have the old FreeBSD 1.x boot blocks on
your boot partition.
Solution: You should re-enter the installation process,
invoke the (F)disk editor and chose the (W)rite option.
This won't hurt an existing installation and will make
sure that the new boot blocks get written to the drive.
If you're installing for the first time, don't forget to
(W)rite out your new boot blocks! :-)
- Cause: FreeBSD will actually install just fine on a
- drive other than 0 (the first drive), and the boot
- manager will even allow you to select it, but the boot
- blocks rather pathologically assume 0. This should be
- fixed in 2.1.
-
- Solution: Easy - follow these steps:
-
- 1. Select the first (0) drive from the (F)disk editor
- and write out the boot manager with the (B) option.
- This will enable the boot manager that allows you to
- actually boot off the other drive.
-
- 2. Exit the fdisk editor for the first drive and and
- re-enter it again for the drive you wish to install
- on. Set up a partition on this drive, or select
- (A)ll for the entire drive.
-
- 3. Enter the disklabel editor and allocate space on
- your second drive as normal. Proceed with the
- installation.
-
- 4. Once you've installed on the disk and are going to
- reboot from the hard disk, enter the following at
- the boot prompt:
-
- hd(1,a)/kernel
-
- This will ensure that you really boot from the second
- drive. If you've actually installed on a drive other
- than 1 (the 3rd or 4th drive?), substitute that number
- in for the above. You will need to enter this EVERY
- time you reboot from the hard disk. If you're feeling
- brave and have a srcdist + the requisite experience,
- you can hack the boot blocks in:
-
- /usr/src/sys/i386/boot/biosboot
-
- So that this drive you're booting from is hard-coded.
- Recompile the boot blocks and reinstall them on your
- drive with `disklabel -B ...' You can then have the
- default Do The Right Thing.
-
- Cause: You have your SCSI controller configured to
- translate geometries for disks >1GB in size.
-
- Solution: Turn such translation OFF in your controller's
- BIOS setup! FreeBSD has no problems with disks >1GB just
- so long as the root partition starts and ends BELOW
- cylinder 1024. This is a PC hardware limitation.
-
- Cause: Root partition does not start and end below
- cylinder 1024.
-
- Solution: See solution for newfs crashes, or move your
- root partition. This limitation holds true for ANY
- operating system you wish to boot from your hard drive.
-
-
- Cause: No boot code is installed in sector 1.
-
- Solution: Chose the Write MBR (B)oot code in the FDISK
- editor.
-
- Cause: BIOS disk geometry different from that used when
- installing FreeBSD.
-
- Solution: With IDE drives, pay careful attention to the
- geometry information that FreeBSD prints out when it's
- first booting off the floppy. Use this geometry in your
- BIOS setup or use the BIOS geometry when you install
- FreeBSD. Either way, they have to match.
-
- With SCSI drives, the values they report is most often
- bogus and cannot be used. In this situation, the SCSI
- controller is performing geometry translation and it's
- probably wise to assume a default of 64 heads, 32 sectors
- and 1MB/cylinder. Use these values when you install
- FreeBSD. See above comments concerning newfs failures
- for more info.