The Unix Heritage Society mailing list
 help / color / mirror / Atom feed
* [TUHS] VFS: confusion (and an end)
@ 2017-01-13 10:36 Berny Goodheart
  0 siblings, 0 replies; 3+ messages in thread
From: Berny Goodheart @ 2017-01-13 10:36 UTC (permalink / raw)


[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #1: Type: text/plain, Size: 695 bytes --]

Thanks Warren for saving me to sort out the confusion. I am sorry I started it in the first place.

On Tue, Jan 10, 2017 at 11:20 AM, Joerg Schilling <schily at schily.net <mailto:schily at schily.net>> wrote:
> …. Note that
> this list is very similar to that in the early part of his book on System V
> internals.

Having having just removed the dust off my old copy of TMGE, it is interesting that the list I wrote here is very similar to what I wrote back in 1993. Just goes to show, Alzheimer’s hasn’t got me yet ;)

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://minnie.tuhs.org/pipermail/tuhs/attachments/20170113/ab72361d/attachment.html>


^ permalink raw reply	[flat|nested] 3+ messages in thread

* [TUHS] VFS: confusion (and an end)
  2017-01-12 11:39 Warren Toomey
@ 2017-01-12 11:53 ` Warren Toomey
  0 siblings, 0 replies; 3+ messages in thread
From: Warren Toomey @ 2017-01-12 11:53 UTC (permalink / raw)


On Thu, Jan 12, 2017 at 09:39:41PM +1000, Warren Toomey wrote:
> VFS was in SunOS 4.1.4:
>     sys/sys/vfs.h:
>     struct vfssw {
>         char            *vsw_name;      /* type name string */
>         struct vfsops   *vsw_ops;       /* filesystem operations vector */
>     };

Oh, and 4.3BSD from Uni of Wisconsin also has VFS:
http://minnie.tuhs.org/cgi-bin/utree.pl?file=4.3BSD-UWisc/src/sys/h/vfs.h
(dated 1987).

And SunOS 2 has got VFS:
   include/sys/vfs.h
   /*      @(#)vfs.h 1.1 84/12/20 SMI      */

   /*
    * Structure per mounted file system.
    * Each mounted file system has an array of
    * operations and an instance record.
    * The file systems are put on a singly linked list.
    */
   struct vfs {
        struct vfs      *vfs_next;              /* next vfs in vfs list */
        struct vfsops   *vfs_op;                /* operations on vfs */
        struct vnode    *vfs_vnodecovered;      /* vnode we mounted on */
        int             vfs_flag;               /* flags */
        int             vfs_bsize;              /* native block size */
        caddr_t         vfs_data;               /* private data */
   };

That's as far back as I can go.
Cheers, Warren


^ permalink raw reply	[flat|nested] 3+ messages in thread

* [TUHS] VFS: confusion (and an end)
@ 2017-01-12 11:39 Warren Toomey
  2017-01-12 11:53 ` Warren Toomey
  0 siblings, 1 reply; 3+ messages in thread
From: Warren Toomey @ 2017-01-12 11:39 UTC (permalink / raw)


Ok, the story so far. Berny wrote:

    Here's the breakdown of SVR4 kernel lineage as I recall it. ...
    From SunOS:
    vnodes
    VFS

Dan Cross wrote:
    > VFSSW                         <=== NO, this is from SunOS-4

   Surely Berny meant the file system switch here, which could have come
   from early system V, but originated in research Unix (8th edition?).

Joerg Schilling wrote:

    It is rather a part of the VFS interface that has first been completed
    with SunOS-3.0 in late 1985.

And this is where the confusion starts. Does "It" refer to FSS or VFS?

I've just looked through some sources. The file system switch was in SysVR3:

    uts/3b2/sys/mount.h:
    /* Flag bits passed to the mount system call */
    #define MS_RDONLY       0x1     /* read only bit */
    #define MS_FSS          0x2     /* FSS (4-argument) mount */

VFS was in SunOS 4.1.4:
    sys/sys/vfs.h:
    struct vfssw {
        char            *vsw_name;      /* type name string */
        struct vfsops   *vsw_ops;       /* filesystem operations vector */
    };

And VFS is in SysVR4:
    uts/i386/sys/vfs.h:
    typedef struct vfssw {
        char            *vsw_name;      /* type name string */
        int             (*vsw_init)();  /* init routine */
        struct vfsops   *vsw_vfsops;    /* filesystem operations vector */
        long            vsw_flag;       /* flags */
    } vfssw_t;

Interestingly, the "filesystem operations vector" comment also occurs
in FreeBSD 5.3, NetBSD-5.0.2 and OpenBSD-4.6. Look for vector here:
http://minnie.tuhs.org/cgi-bin/utree.pl?file=FreeBSD-5.3/sys/sys/mount.h
http://minnie.tuhs.org/cgi-bin/utree.pl?file=NetBSD-5.0.2/sys/compat/sys/mount.h
http://minnie.tuhs.org/cgi-bin/utree.pl?file=OpenBSD-4.6/sys/sys/mount.h


Larry wrote:
    System Vr3 had something called the file system switch which is what
    Berny is talking about. SunOS had virtual file system layer (VFS) and
    that would be one of things ported to SVr4.

which is consistent with everybody else.

So now that we have consistency, let's move on.

Cheers, Warren


^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2017-01-13 10:36 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2017-01-13 10:36 [TUHS] VFS: confusion (and an end) Berny Goodheart
  -- strict thread matches above, loose matches on Subject: below --
2017-01-12 11:39 Warren Toomey
2017-01-12 11:53 ` Warren Toomey

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).