Go to file
Kirk McKusick f2a2857bb3 Add snapshots to the fast filesystem. Most of the changes support
the gating of system calls that cause modifications to the underlying
filesystem. The gating can be enabled by any filesystem that needs
to consistently suspend operations by adding the vop_stdgetwritemount
to their set of vnops. Once gating is enabled, the function
vfs_write_suspend stops all new write operations to a filesystem,
allows any filesystem modifying system calls already in progress
to complete, then sync's the filesystem to disk and returns. The
function vfs_write_resume allows the suspended write operations to
begin again. Gating is not added by default for all filesystems as
for SMP systems it adds two extra locks to such critical kernel
paths as the write system call. Thus, gating should only be added
as needed.

Details on the use and current status of snapshots in FFS can be
found in /sys/ufs/ffs/README.snapshot so for brevity and timelyness
is not included here. Unless and until you create a snapshot file,
these changes should have no effect on your system (famous last words).
2000-07-11 22:07:57 +00:00
bin Use lstat(2) instead of stat(2) when deciding if we should fastcopy 2000-07-11 18:01:42 +00:00
contrib Fix 'telnet -X sra' coredump 2000-07-11 15:04:05 +00:00
crypto Fix 'telnet -X sra' coredump 2000-07-11 15:04:05 +00:00
etc Remove irq 13 from the list of valid IRQs. It is used by the math co and 2000-07-11 17:57:01 +00:00
games Don't call printf with no format string. 2000-07-10 05:24:02 +00:00
gnu Install the general binutils (such as `nm') info files. 2000-07-10 09:55:29 +00:00
include fix spelling errors. 2000-07-07 16:52:24 +00:00
kerberos5 Unbreak heimdal build: we can no longer #include <netinet6/in6.h> 2000-07-06 10:09:59 +00:00
kerberosIV Remove the last vestiges of libRSAglue now that it's an empty stub. 2000-03-11 22:34:10 +00:00
lib Document that basic authorization now kinda works. 2000-07-11 18:13:08 +00:00
libexec Explain that the -S option only logs file downloads, not all transfers. 2000-07-11 11:42:29 +00:00
release Add some info on SCSI for PC164. 2000-07-08 19:49:47 +00:00
sbin Array of long support. 2000-07-11 21:59:54 +00:00
secure Argh. Cut/paste transcription error. Fix syntax of previous commit. 2000-07-03 06:26:30 +00:00
share Install accept_filter.9 2000-07-11 13:50:04 +00:00
sys Add snapshots to the fast filesystem. Most of the changes support 2000-07-11 22:07:57 +00:00
tools Back out the previous change to the queue(3) interface. 2000-05-26 02:09:24 +00:00
usr.bin Fix finger -s output on an user who never logged in. 2000-07-11 08:37:56 +00:00
usr.sbin Fix -auto breakage introduced with the last commit. 2000-07-11 09:26:02 +00:00
COPYRIGHT Update to add the July 22, 1999 addendum. 1999-09-05 21:33:47 +00:00
Makefile We have a new world order in libraries. 2000-02-24 23:03:16 +00:00
Makefile.inc1 Perl's version number needs to change. 2000-07-02 16:15:03 +00:00
Makefile.upgrade $Id$ -> $FreeBSD$ 1999-08-28 01:35:59 +00:00
README $Id$ -> $FreeBSD$ 1999-08-28 01:35:59 +00:00
UPDATING Add warning about needing to set SYSDIR to build new kernels after 2000-07-07 05:17:49 +00:00

README

This is the top level of the FreeBSD source directory.  This file
was last revised on:
$FreeBSD$

For copyright information, please see the file COPYRIGHT in this
directory (additional copyright information also exists for some
sources in this tree - please see the specific source directories for
more information).

The Makefile in this directory supports a number of targets for
building components (or all) of the FreeBSD source tree, the most
commonly used one being ``world'', which rebuilds and installs
everything in the FreeBSD system from the source tree except the
kernel and the contents of /etc.  Please see the top of the Makefile
in this directory for more information on the standard build targets
and compile-time flags.

Building a kernel with config(8) is a somewhat more involved process,
documentation for which can be found at:
   http://www.freebsd.org/handbook/kernelconfig.html
And in the config(8) man page.

The sample kernel configuration files reside in the sys/i386/conf
sub-directory (assuming that you've installed the kernel sources), the
file named GENERIC being the one used to build your initial installation
kernel.  The file LINT contains entries for all possible devices, not
just those commonly used, and is meant more as a general reference
than an actual kernel configuration file (a kernel built from it
wouldn't even run).


Source Roadmap:
---------------
bin		System/User commands.

contrib		Packages contributed by 3rd parties.

crypto		Export controlled stuff (see crypto/README).

etc		Template files for /etc

games		Amusements.

gnu		Various commands and libraries under the GNU Public License.
		Please see gnu/COPYING* for more information.

include		System include files.

kerberosIV	Kerberos package.

lib		System libraries.

libexec		System daemons.

release		Release building Makefile & associated tools.

sbin		System commands.

secure		DES and DES-related utilities - NOT FOR EXPORT!

share		Shared resources.

sys		Kernel sources.

tools		Utilities for regression testing and miscellaneous tasks.

usr.bin		User commands.

usr.sbin	System administration commands.


For information on synchronizing your source tree with one or more of
the FreeBSD Project's development branches, please see:

  http://www.freebsd.org/handbook/synching.html