Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 1 Nov 1999 20:33:29 +0000 (GMT)
From:      Terry Lambert <tlambert@primenet.com>
To:        phk@critter.freebsd.dk (Poul-Henning Kamp)
Cc:        pechy@hp735.cvut.cz, grog@lemis.com, ticso@cicely.de, don@calis.blacksun.org, bright@wintelcom.net, freebsd-fs@FreeBSD.ORG
Subject:   Re: Journaling
Message-ID:  <199911012033.NAA01820@usr02.primenet.com>
In-Reply-To: <20347.941452616@critter.freebsd.dk> from "Poul-Henning Kamp" at Nov 1, 99 11:36:56 am

next in thread | previous in thread | raw e-mail | index | archive | help
> Jan Pechanec writes:
> >
> >	Vahalia [UNIX Internals, Prentice-Hall] says that FFS is an
> >original BSD filesystem and UFS is rewritten FFS for vnode layer.
> 
> Well, who do you trust, Kirk & the source, or Vahalia ?

The statement in Vahalia is ambiguous; I tried to get it amended
during technical editing.  The only really bad call in the book,
IMO, is that Vahalia likes the Solaris Slab allocator, but I
believe that it is seriously sub-optimal for SMP systems, and
I personally prefer the Dynix Zone allocator, which he doesn't
like as much.


The UFS in System V was originally the Net/2 FFS code, with minor
entry point rewrites for insertion into the VFS switch list in
the System V kernel.

The most significant differences in the current SVR4.2 code for
the UFS compared to the current Berkeley FFS are:

o	No support for vnode stacking, even though the original
	Heidemann code was done on an SVR4 (Solaris) platform.

o	The vnodes are owned by the file systems.  The ability
	to do this in BSD UNIX is missing at this time, which
	makes things like XFS and VXFS, etc., much harder to
	port.  There is some non-general kludge code to support
	TRW's TFS code's ownership of vnodes; it would be nice
	to generalize this to enable easier porting of FS code
	to FreeBSD.

o	No support for soft updates, even though the original
	Ganger/Patt code was developed under SVR4.0.2 ES/MP.

o	Support for Delayed Ordered Writes (DOW).  This is a
	mthod of staging writes; it is similar in result to
	soft updates, with hard-coded pool drains at any
	synchronization points (where soft updates would
	invoke a contention resolver, DOW forces a flush of
	all pending writes, to ensure ordering guarantees).
	DOW is covered by a USL patent.

o	Buffer cache synchronization is still handled manually,
	even within Solaris, which has a unified VM and buffer
	cache.  In particular, like FreeBSD, there are some
	code errors which make msync() necessary for some uses.
	The SVR4.2 buffer cache is not unified with the VM
	system in standard System V, although the VM system is
	significantly reworked for SMP (Steve Baumel of USL did
	much of the rewrite).

Having spent time in the bowels of that code, and in the bowels
of VXFS, and in a derivative of the code of my own design, I
can guarantee you that UFS and VXFS are derived from Net/2 code;
more correctly, UFS is derived from Net/2, and VXFS is derived
from UFS, in particular, its directory handling code has USL
copyrights all over it.


					Terry Lambert
					terry@lambert.org
---
Any opinions in this posting are my own and not those of my present
or previous employers.


To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-fs" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199911012033.NAA01820>