1. Technical overview
FreeBSD is a freely available, full source 4.4 BSD Lite based release
for Intel i386/i486/Pentium (or compatible) based PC's. It is based
primarily on software from U.C. Berkeley's CSRG group, with some
enhancements from NetBSD, 386BSD, and the Free Software Foundation.
Since our first release of FreeBSD 1.0 some 18 months ago, FreeBSD
has changed almost entirely. A new port from the Berkeley 4.4 code
base was done, which brought the legal status of the system out of the
shadows with the blessing of Novell (new owners of USL and UNIX). The
port to 4.4 has also brought in a host of new features, filesystems
and enhanced driver support. With our new unencumbered code base, we
have every reason to hope that we'll be able to release quality
operating systems without further legal encumbrance for some time to
FreeBSD 2.0 represents the culmination of almost 2 years of work and
many thousands of man hours put in by an international development team.
We hope you enjoy it!
Many packages have also been upgraded or added, such as XFree86 3.1,
xview 3.2, elm, nntp, mh, InterViews and dozens of other miscellaneous
utilities have been ported and are now available as add-ons. See the
ports collection (or the package collection) for a complete summary.
For a list of contributors, please see the file "CONTRIB.FreeBSD",
which should be bundled with your bindist distribution.
Also see the new "REGISTER.FreeBSD" file for information on registering
with the "Free BSD user counter". We've also provided a list of who's
responsible for what (so that you may query them directly) in the
"ROSTER.FreeBSD" file; use of this file is encouraged to ensure faster
resolution of any problems you may have!
The core of FreeBSD does not contain DES code which would inhibit its
being exported outside the United States. There is an add-on package
to the core distribution, for use only in the United States, that
contains the programs that normally use DES. The auxiliary packages
provided separately can be used by anyone. A freely (from outside the
U.S.) exportable European distribution of DES for our non U.S. users also
exists and is described in the FreeBSD FAQ.
If password security for FreeBSD is all you need, and you have no
requirement for copying encrypted passwords from different hosts (Suns,
DEC machines, etc) into FreeBSD password entries, then FreeBSD's MD5
based security may be all you require! We feel that our default security
model is more than a match for DES, and without any messy export issues
to deal with. If you're outside (or even inside) the U.S., give it a try!
1.1 What's new in 2.0?
As previously stated, this release is based entirely on CSRG's
latest (and last) BSD release - 4.4 Lite. This features a number
of improvements over 4.2BSD (Net/2), not least of which are:
o Legal approval of Novell & U.C. Berkeley. After the settlement
of the longstanding lawsuit between USL/UCB/Novell/BSDI, all
parties were (strongly) encouraged to move to 4.4 Lite in order
to avoid future legal entanglements. The fact that we've now done
so should make this release much more attractive to potential
o Many new filesystem types, such as stackable filesystems, union
filesystems, "portals", kernfs, a simple log-structured filesystem, a
new version of NFS (NQNFS), etc. While some of these new filesystems
are also rather unpolished and will require significant additional
work to be truly robust, they're a good start.
o 64bit offsets, allowing filesystems of up to 2^63 bytes in size.
o Further work towards full POSIX compliance.
IP multicast support
The IP multicast support has been upgraded from the woefully ancient
1.x code in 4.4-Lite to the most current and up-to-date 3.3 release
from Steve D. and Ajit. The non-forwarding code is known to work (for
some limited test cases). The multicast forwarder and user-mode
multicast routing process are known to compile, but have not been
significantly tested (hopefully this will happen before 2.0 release).
Sources involved: sys/netinet, usr.sbin/mrouted
Loadable Kernel Modules
David Greenman incorporated NetBSD's port of Terry Lambert's loadable
kernel module support. Garrett Wollman wrote the support for loadable
filesystems, and Søren Schmidt did the same for loadable execution
Sources involved: sys/kern, sbin/modload, sbin/modunload,
Most filesystems are now dynamically loadable on demand, with the
exception of the UFS family (FFS, LFS, and MFS). With the exception
of NFS, all such filesystems can be unloaded when all references are
unmounted. To support this functionality, the
family of functions has been added to the C library and the
command provides the same information at the shell level. Be aware of
the following current restrictions:
- /usr/bin may not reside on a dynamically loaded filesystem.
- There must be a writable /tmp directory available
before filesystems are loaded (moving / to the top of your
/etc/fstab file will accomplish this).
- Some of the more esoteric filesystems simply don't work when loaded
dynamically (though they often don't work "static", either.)
Sources involved: sys/*fs, lkm/*fs, usr.bin/lsvfs, lib/libc/gen
Since version 1.1.5, FreeBSD has supported the S/Key one time password
scheme. The version used is derived from the logdaemon package of Wietse
Some of the features new in 2.0 are:
- New access control table format to impose the use of S/Keys
based on: hostname, ip address, port, username, group id.
- S/Key support can be disabled by not having the access control
The second item explains the absence of skey.access in the installed /etc.
To enable S/Key support, create a file skey.access in /etc and fill it
according to your needs. See also skey.
and the example in
Owner: pst, guido
Sources involved: lib/libskey, usr.bin/key* (plus patches to others)
TCP/IP over parallel (printer) port
You can now run TCP/IP over a standard LapLink(tm) cable, if both ends
have an interrupt-driven printerport. The interface is named "lp0"
where '0' is the same as the lpt# unit number. This is not compatible
with PLIP. If you run NFS, try setting MTU to 9180, otherwise leave
it at 1500 unless you have a good reason to change it. Speed varies
with the CPU-type, with up to 70 kbyte/sec having been seen and 50
kbyte/sec being the norm.
Sources involved: isa/lpt.c
ProAudioSpectrum SCSI driver
If you have a PAS board with a CD-ROM, and the MS-DOS driver is called
TSLCDR.SYS, then the "pas" driver should work on your card. You can
attach disks, CDROMs and tapes, but due to the nature of the hardware
involved, the transfer rate is limited to < 690 kbyte/sec. For CD-ROM
use, this is generally more than enough.
Sources involved: isa/pas.c
Adaptec 2742/2842 SCSI driver
Despite the non-cooperation of Adaptec in providing technical
information, we now have a driver for the AHA-274x and AHA-284x
series SCSI controller family. This driver uses the GPL'd
Linux sequencer code, so until we find an alternative, this
will be part of the kernel that requires source code to be
distributed with it at all times. This shouldn't be a problem
for any of FreeBSD's current users.
Sources involved: isa/aic7770.c sys/gnu/misc/*
We have an experimental implementation for direct execution of gzip'ed
binaries in this release. When enabled, it allows you to simply gzip
your binaries, remove the '.gz' extension and make the file
executable. There is a big speed and memory consumption penalty for
doing this, but for laptop users it may be worthwhile. The maximum
savings are generally around 10 Mb of disk space.
Sources involved: kern/imgact_gzip.c kern/inflate.c
Diskless booting in 2.0 is much improved since 1.1.5. The
boot-program is in src/sys/i386/boot/netboot, and can be run from an
MSDOS system or burned into an EPROM. Local swapping is also
possible. WD, SMC, 3COM and Novell ethernet cards are currently
Owner: Martin Renters & phk
Sources involved: i386/boot/netboot, sys/nfs/nfs_vfsops.h
Device configuration database
The kernel now keeps better track of which device drivers are active and
where the devices are attached; this information is made available to
user programs via the new
management interface. Current
which lists the currently configured
devices. In the future, we expect to use this code to automatically
generate a configuration file for you at installation time.
Sources involved: sys/i386, sys/scsi, sys/kern/kern_devconf.c,
Kernel management interface
With 4.4-Lite, we now have a better management interface for the endless
series of kernel variables and parameters which were previously manipulated
by reading and writing /dev/kmem. Many programs have been rewritten to
use this interface, although many old-style programs still remain. Some
variables which were never accessible before are now available through
program. In addition to the standard 4.4BSD MIB variables,
we have added support for YP/NIS domains (kern.domainname), controlling
the update daemon (kern.update), retrieving the OS release date
(kern.osreldate), determining the name of the booted kernel (kern.bootfile),
and checking for hardware floating-point support (hw.floatingpoint).
We have also added support to make management queries of devices and
Sources involved: sys, usr.bin/sysctl
FreeBSD now supports running iBCS2 compatible binaries (currently
SCO UNIX 3.2.2 & 3.2.4 and ISC 2.2 COFF format are supported).
The iBCS2 emulator is in its early stages, but it is functional, we
haven't been able to do exhaustive testing (lack of commercial apps),
but almost all of SCO's 3.2.2 binaries are working, so is an old
INFORMIX-2.10 for SCO. Further testing is necessary to complete this
project. There is also work under way for ELF & XOUT loaders, and
most of the svr4 syscall wrappers have been written.
Owner: Soren Schmidt (sos) & Sean Eric Fagan (sef)
Sources involved: sys/i386/ibcs2/* + misc kernel changes.
2. Supported Configurations
FreeBSD currently runs on a wide variety of ISA, VLB, EISA and PCI bus
based PC's, ranging from 386sx to Pentium class machines (though the
386sx is not recommended). Support for generic IDE or ESDI drive
configurations, various SCSI controller, network and serial cards is
Following is a list of all currently known disk controllers and
ethernet cards known to work with FreeBSD. Other configurations may
very well work, and we have simply not received any indication of
2.1. Disk Controllers
WD1003 (any generic MFM/RLL)
WD1007 (any generic IDE/ESDI)
[Note: the new Extended IDE controllers in newer PC's work, although no
extended features are used.]
Adaptec 152x series ISA SCSI controllers
Adaptec 154x series ISA SCSI controllers
Adaptec 174x series EISA SCSI controller in standard and enhanced mode.
Adaptec 2742/2842 series ISA/EISA SCSI controllers
Adaptec AIC-6260 and AIC-6360 based boards, which includes
the AHA-152x and SoundBlaster SCSI cards.
** Note: You cannot boot from the Soundblaster cards
as they have no on-board BIOS, which is necessary for mapping
the boot device into the system BIOS I/O vectors.
They're perfectly usable for external tapes, CDROMs, etc,
however. The same goes for any other AIC-6x60 based card
without a boot ROM. Some systems DO have a boot ROM, which
is generally indicated by some sort of message when the system
is first powered up or reset. Check your system/board documentation
for more details.
[Note that Buslogic was formerly known as "Bustec"]
Buslogic 545S & 545c
Buslogic 445S/445c VLB SCSI controller
Buslogic 742A, 747S, 747c EISA SCSI controller.
Buslogic 946c PCI SCSI controller
NCR 53C810 and 53C825 PCI SCSI controller.
DTC 3290 EISA SCSI controller in 1542 emulation mode.
UltraStor 14F, 24F and 34F SCSI controllers.
Seagate ST01/02 SCSI controllers.
Future Domain 8xx/950 series SCSI controllers.
With all supported SCSI controllers, full support is provided for
SCSI-I & SCSI-II peripherals, including Disks, tape drives (including
DAT) and CD ROM drives. Note: This and the mcd driver (Mitsumi CDROM
interface card) are the only way a CD ROM drive may be currently
attached to a FreeBSD system; we do not support SoundBlaster
(non-SCSI) CDROM interface, or other "non-SCSI" adapters. The
ProAudio Spectrum SCSI and SoundBlaster SCSI controllers are
Some controllers have limitations with the way they deal with >16MB of
memory, due to the fact that the ISA bus only has a DMA address space of
24 bits. If you do your arithmetic, you'll see that this makes it
impossible to do direct DMA to any address >16MB. This limitation is
even true of some EISA controllers (which are normally 32 bit) when
they're configured to emulate an ISA card, which they then do in *all*
respects. This problem is avoided entirely by IDE controllers (which do
not use DMA), true EISA controllers (like the UltraStor or Adaptec
1742A) and most VLB (local bus) controllers. In the cases where it's
necessary, the system will use "bounce buffers" to talk to the
controller so that you can still use more than 16Mb of memory without
2.2. Ethernet cards
SMC Elite 16 WD8013 ethernet interface, and most other WD8003E,
WD8003EBT, WD8003W, WD8013W, WD8003S, WD8003SBT and WD8013EBT
based clones. SMC Elite Ultra is also supported.
DEC EtherWORKS III NICs (DE203, DE204, and DE205)
DEC EtherWORKS II NICs (DE200, DE201, DE202, and DE422)
Isolan AT 4141-0 (16 bit)
Isolink 4110 (8 bit)
Novell NE1000, NE2000, and NE2100 ethernet interface.
3Com 3C501 cards
3Com 3C503 Etherlink II
3Com 3C507 Etherlink 16/TP
3Com 3C509 and 3C579 Etherlink III
Toshiba ethernet cards
PCMCIA ethernet cards from IBM and National Semiconductor are also
AST 4 port serial card using shared IRQ.
ARNET 8 port serial card using shared IRQ.
BOCA ATIO66 6 port serial card using shared IRQ.
STB 4 port card using shared IRQ.
Mitsumi (all models) CDROM interface and drive.
Soundblaster SCSI and ProAudio Spectrum SCSI CDROM interface and drive.
Adlib, Soundblaster, Soundblaster Pro, ProAudioSpectrum, Gravis UltraSound
and Roland MPU-401 sound cards.
FreeBSD currently does NOT support IBM's microchannel (MCA) bus, but
support is apparently close to materializing. Details will be posted
as the situation develops.
3. Obtaining FreeBSD.
You may obtain FreeBSD in a variety of ways:
You can ftp FreeBSD and any or all of its optional packages from
`freebsd.cdrom.com' - the official FreeBSD release site.
For other locations that mirror the FreeBSD software see the file
MIRROR.SITES. Please ftp the distribution from the nearest site
to you netwise.
If you do not have access to the internet and electronic mail is your
only recourse, then you may still fetch the files by sending mail to
`email@example.com' - putting the keyword "help" in your message
to get more information on how to fetch files from freebsd.cdrom.com.
Note: This approach will end up sending many *tens of megabytes*
through the mail, and should only be employed as an absolute LAST
FreeBSD 2.0 may be ordered on CDROM from:
Walnut Creek CDROM
4041 Pike Lane, Suite D
Concord CA 94520
1-800-786-9907, +1-510-674-0783, +1-510-674-0821 (fax)
Or via the internet from firstname.lastname@example.org. Their current catalog can
be obtained via ftp as ftp.cdrom.com:/cdrom/catalog.
Cost is $39.95. Shipping (per order not per disc) is $5 in the US, Canada,
or Mexico and $10.00 overseas. They accept Visa, Mastercard, American
Express, and ship COD to the United States. California residents please
add 8.25% sales tax.
Should you be dissatisfied for any reason, the CD comes with an
unconditional return policy.
Note that Walnut Creek CDROM does NOT provide technical support for FreeBSD,
you need to contact the FreeBSD team for that. Please see section 5 for
4. Preparing for the installation.
1. Floppy Installation
If you must install from floppy disks, either due to space constraints
on your hard disk or just because you enjoy doing things the hard
way, you must first prepare some floppies for the install.
You will need either 10 1.44MB floppies or 12 1.2MB floppies to
store just the bindist (binary distribution). These *must* be
formatted using MS-DOS, using either the FORMAT command in MS-DOS
or the File Manager in Microsoft Windows to prepare the floppies
(though factory preformatted floppies will also work well, provided
that they haven't been previously used for something else).
After you've formatted the floppy disks, you'll need to copy the
files onto them. There are 56 total files for the bindist itself,
plus three small files (CKSUMS, do_cksum.sh, and extract.sh) for
the install program to use. ALL of these files must be copies onto
the floppies. Each of the bindist files are named "bindist.??",
where the "??" is replaced by the letter sequence aa through cd.
Copy these files onto the floppies, placing the three small install
files onto the final floppy. The order in which you copy the files
to floppy is not important, but it makes labelling the disks easier
if you go in some sort of alphabetical order.
After you've done this, the floppy disks are ready for the install
program to use.
Later on, after you get the binary distribution installed and everything
is going great, the same instructions will apply for the other
distributions, such as the manpages distribution or the XFree86 distribution.
The number of floppies required will, of course, change for bigger or
2. Hard Disk Installation
To prepare for installation from an MS-DOS partition, you should simply
copy the files from the distribution into a directory with the same
name as the distribution. For example, if you are preparing to
install the bindist set, then make a directory on your C: drive named
C:\BINDIST and copy the files there. This will allow the installation
program to find the files automatically.
3. QIC/SCSI Tape Installation.
Installing from tape is probably the easiest method, short of an
on-line install using ftp or installing from a CDROM. The installation
program expects the files to be simply tar'red onto the tape, so after
getting all of the files for distribution you're interested in, simply
tar them onto the tape with something like:
cd <where the *.?? files are>
tar cvf /dev/rwt0 (or /dev/rst0) .
from a directory with just the distribution files in it. Make sure
that you remember to put CKSUMS, do_cksum.sh, and extract.sh files
in this directory as well!
If you wish to install multiple *dist releases from one tape, do the
1. cd to the parent directory of the distributions and put them on tape
tar cvf /dev/rwt0 (or /dev/rst0) bindist srcdist ...
2. Install the first distribution on the tape using the tape installation
method as normal. Afterwards, *do not* erase the contents of the temporary
directory. Get a shell with ESC-ESC and cd to the temporary directory
yourself. For each additional *dist you want to load, cd to its
subdirectory and type `sh ./extract.sh'.
5. Reporting problems, making suggestions, submitting code.
Your suggestions, bug reports and contributions of code are always
valued - please do not hesitate to report any problems you may find
(preferably with a fix attached if you can!).
The preferred method to submit bug reports from a machine with internet
mail connectivity is to use the send-pr command. Bug reports will be
dutifully filed by our faithful bugfiler program and you can be sure
that we'll do our best to respond to all reported bugs as soon as
If, for some reason, you are unable to use the send-pr command to
submit a bug report, you can try to send it to:
Otherwise, for any questions or suggestions, please send mail to:
Additionally, being a volunteer effort, we are always happy to have
extra hands willing to help - there are already far more enhancements
to be done than we can ever manage to do by ourselves! To contact us
on technical matters, or with offers of help, you may send mail to:
Since these mailing lists can experience significant amounts of
traffic, if you've got slow or expensive mail access and you're
only interested in keeping up with significant FreeBSD events, you may
find it preferable to subscribe to:
All but the FreeBSD-bugs groups can be freely joined by anyone wishing
to do so. Send mail to MajorDomo@FreeBSD.org and include the keyword
`help' on a line by itself somewhere in the body of the message. This
will give you more information on joining the various lists, accessing
archives, etc. There are a number of mailing lists targeted at
special interest groups not mentioned here, so send mail to majordomo
and ask about them!
FreeBSD represents the cumulative work of many dozens, if not
hundreds, of individuals from around the world who have worked very
hard to bring you this release. It would be very difficult, if not
impossible, to enumerate everyone who's contributed to FreeBSD, but
nonetheless we shall try (in alphabetical order, of course). If your
name is not mentioned, please be assured that its omission is entirely
The Computer Systems Research Group (CSRG), U.C. Berkeley.
Bill Jolitz, for his extensive work with 386BSD.
The FreeBSD "core" team:
Andrew A. Chernov
Rodney W. Grimes
Jordan K. Hubbard
Garrett A. Wollman
Special mention to:
Robert Bruce and Jack Velte of Walnut Creek CDROM, without
whose help (and continuing support) this release would never
have been possible.
Dermot McDonnell for his donation of a Toshiba XM3401B CDROM
The NetBSD group for their frequent assistance and commentary.
Additional FreeBSD helpers and beta testers:
J.T. Conklin Julian Elischer
Sean Eric Fagan Jeffrey Hsu
Terry Lambert L Jonas Olsson
Chris Provenzano Dave Rivers
Guido van Rooij Steven Wallace
Atsushi Murai Scott Mace
Andrew Moore Nate Williams
And everyone at Montana State University for their initial support.
Thanks to everyone, especially those not mentioned, and we sincerely
hope you enjoy this release of FreeBSD!
The FreeBSD Core Team
Id: RELNOTES.FreeBSD,v 1.21 1994/12/02 20:27:11 jkh Exp