[comp.unix.wizards] questions about File System Switch

buck@siswat.UUCP (A. Lester Buck) (12/13/88)

I have seen a number of postings which have mentioned the
File System Switch (FSS), and Bach has some general sections
on file system abstractions.  Is FSS fully documented in
some AT&T manual?  What release of System V introduced FSS?
Is it always there, or is it a vendor option that can be
left out?  (I only have S5R2 experience.)

Is adding a new filesystem on the same level as adding a
device driver to the kernel? For example, can a binary site
use some type of link kit to add filesystem routines without
source code?

Or is this a "Don't try this at home, kids!" operation?

I was wondering about adding a CD-ROM filesystem, which has an
ISO or High Sierra standard format and a 2K physical blocksize.


Thanks for any information,

-- 
A. Lester Buck		...!uhnix1!moray!siswat!buck

guy@auspex.UUCP (Guy Harris) (12/14/88)

>Is FSS fully documented in some AT&T manual?

Not as far as I know; it's getting replaced with something close to
SunOS 4.0 vnodes (with some cleanups) in S5R4.0.

>What release of System V introduced FSS?

S5R3.

>Is it always there, or is it a vendor option that can be
>left out?  (I only have S5R2 experience.)

If a vendor works really hard at it, I suppose they can leave it out,
but I doubt they would.

>Is adding a new filesystem on the same level as adding a
>device driver to the kernel? For example, can a binary site
>use some type of link kit to add filesystem routines without
>source code?

I think that was the intent.  Assuming your file system can plug into
the interface provided without change to the interface, it should be
possible.

roger@ingr.UUCP (Roger Warner) (12/14/88)

In article <352@siswat.UUCP> buck@siswat.UUCP (A. Lester Buck) writes:
>I have seen a number of postings which have mentioned the
>File System Switch (FSS), and Bach has some general sections
>on file system abstractions.  Is FSS fully documented in
>some AT&T manual?  What release of System V introduced FSS?
>Is it always there, or is it a vendor option that can be
>left out?  (I only have S5R2 experience.)

FSS is not documented in any external AT&T manual.  
It first appeared commercially in 5.3.0.
And it is integral to the execution of 5.3.0.

>
>Is adding a new filesystem on the same level as adding a
>device driver to the kernel? For example, can a binary site
>use some type of link kit to add filesystem routines without
>source code?

We don' 3blink-boot so thats really a system specific issue.  Would you want 
to do it at home?  I've worked on a port of NFS and FFS into the 5.3.0 kernel
and would not suggest it.  The problems are not so much related to to the FFS
as the buffer cache.  The buffer cache really, really wants you to use 1K
buffers, which is not always ideal for non S51K file systems.

BSD uses the VFS which is more more well suited for adding new FS types.  The 
buffer cache routines are part of the BSD VFS.  Unfortunately then you have
to deal w/the rest of the BSD kernel... ;-).

---
roger warner
uunet!ingr!roger
roger@ingr.com


-- 
roger warner                                | Intergraph?... Only the "Number
...uunet!ingr!b11!photog!roger   (UUCP)     | one computer graphics company in
b11!photog!roger@ingr.com        (Internet) | the world", thank you.

gwyn@smoke.BRL.MIL (Doug Gwyn ) (12/14/88)

In article <352@siswat.UUCP> buck@siswat.UUCP (A. Lester Buck) writes:
>Is FSS fully documented in some AT&T manual?

I think you have to look in the source code if you want to
develop your own filesystem type.  (I'll be happy if I'm
wrong about that.)

>What release of System V introduced FSS?

Release 3.0

>Is it always there, or is it a vendor option that can be
>left out?  (I only have S5R2 experience.)

I don't think vendors HAVE to include it under SVR3 licensing
provisions, but it would be pretty foolish to deliberately
remove it.

>Is adding a new filesystem on the same level as adding a
>device driver to the kernel?

Pretty much.

>For example, can a binary site use some type of link kit to
>add filesystem routines without source code?

I think it would be possible to support this, but I don't
know whether vendors will.

>I was wondering about adding a CD-ROM filesystem, which has an
>ISO or High Sierra standard format and a 2K physical blocksize.

That's actually a good idea.  Note that Apple did this in their
GS/OS, which has the moral equivalent of FSS.

chris@mimsy.UUCP (Chris Torek) (12/15/88)

In article <3241@ingr.UUCP> roger@ingr.UUCP (Roger Warner) writes:
>BSD uses the VFS ....

No: SunOS uses vfs/vnodes, and Mt. Xinu distributes a 4.3BSD variant
using vfs/vnodes, as does the University of Wisconsin; and many other
4BSD-based vendors do so as well.  But the systems in Berkeley CSRG do
not have virtual file systems at all---yet.  4.4BSD will use `GVFS',
the Generic Virtual File System (aka the Buzzword File System).

GVFS seems to be shaping up as `a lot like VFS, only different'.
-- 
In-Real-Life: Chris Torek, Univ of MD Comp Sci Dept (+1 301 454 7163)
Domain:	chris@mimsy.umd.edu	Path:	uunet!mimsy!chris

guy@auspex.UUCP (Guy Harris) (12/16/88)

>BSD uses the VFS which is more more well suited for adding new FS
>types.

Err, umm, no, it doesn't.  BSD has only one file system type, and no
switch.

SunOS was the first UNIX OS to include the VFS mechanism; other systems
have adopted it as well as part of picking up NFS (although S5R3-based
systems may have shoehorned it into the FSS).

One UNIX release that will be adopting VFS will be System V Release 4.0.

>The buffer cache routines are part of the BSD VFS.

The advantage of the BSD buffer cache routines (which are, obviously,
not part of the BSD VFS since BSD doesn't have a VFS) is that they're
not tied to a particular block size; this is because the 4.2BSD file
system supports multiple block sizes, and has to deal both with blocks
and frags.

hutch@lzaz.ATT.COM (R.HUTCHISON) (12/20/88)

From article <352@siswat.UUCP>, by buck@siswat.UUCP (A. Lester Buck):
] I have seen a number of postings which have mentioned the
] File System Switch (FSS), and Bach has some general sections
] on file system abstractions.  Is FSS fully documented in
] some AT&T manual?  What release of System V introduced FSS?

I don't know of any manual but I do know it is described in some
detail in AT&T's UNIX System Internals courses.  The more detailed of
the two courses should give you about as much detail as you need to
write a new file system type.  FSS was introduced in SVR3.0.

] Is it always there, or is it a vendor option that can be
] left out?  (I only have S5R2 experience.)

It better always be there, since it is only the framework with which
to develop file system types.  The standard System V file system is
one of these file system types. 

] 
] Is adding a new filesystem on the same level as adding a
] device driver to the kernel? For example, can a binary site
] use some type of link kit to add filesystem routines without
] source code?

It is possible.  Actually the kernel work is not all that difficult
compared to all the work you have to do after the kernel work is
finished (your own mkfs, fsck, fsdb, etc...).

] Or is this a "Don't try this at home, kids!" operation?

I think its more like... try this only if you have a lot of spare time
and won't mind doing it again when SVR4 comes along.  Remember, FSS
was not officially documented in the SVID (or elsewhere); the courses
told you about it because they had the duty of describing the internal
workings of the OS - not to give delevlopment advice......

[ stuff deleted ]

] A. Lester Buck		...!uhnix1!moray!siswat!buck

Bob Hutchison
att!lzaz!hutch