Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 22 Jan 1998 07:46:09 +0000 (GMT)
From:      Terry Lambert <tlambert@primenet.com>
To:        luigi@labinfo.iet.unipi.it (Luigi Rizzo)
Cc:        tlambert@primenet.com, j_mini@efn.org, blkirk@float.eli.net, bartol@salk.edu, benedict@echonyc.com, hasty@rah.star-gate.com, abial@nask.pl, freebsd-hackers@FreeBSD.ORG
Subject:   Re: ANNOUNCE: One-floppy FreBSD + rich networking
Message-ID:  <199801220746.AAA09848@usr09.primenet.com>
In-Reply-To: <199801220534.GAA01107@labinfo.iet.unipi.it> from "Luigi Rizzo" at Jan 22, 98 06:34:38 am

next in thread | previous in thread | raw e-mail | index | archive | help
> > The MSDOSFS arguments are fixable; specifically, you can have an FS
> > stacking layer on an MSDOS FS that implements storage for UNIX
> > semantics using a file which it does not export to consumers.  A
> > UMSDOSFS, but without the kludges.
> 
> that's vnconfig, right ?

Huh?!?

No, vnconfig is a program for making a vnode appear as a device.  It's
major value is for:

1)	Building boot floppies from images of compressed MFS's

2)	Building images to put onto read-only media, and test the
	images out, like CDROM's, ROM's, etc..

3)	Being a good enough kludge workaround that it discourages
	people from actually ever completing a working "swapon"
	that can let you set up NeXTStep-like dynamic swapfiles.

The MSDOSFS stacking layer would create a "poop file" in the directory,
and store the things that it normally stores in UNIX inodes that it
can't store in DOS "inodes" because on DOS, "inodes" and "directory
entries" are synonymous.

Technically, this is how Quota's should work, and also how ACL's
should be implemented.

Things like device nodes (devfs will make that need go away), UNIX
domain sockets, file modes, mtime and atime (DOS has create time,
which is not ctime, and file modification time, which is not metadata
modification time), links, symlinks, and names that aren't allowed
in a DOS FS  (I know, VFAT/VFAT32 has long names; but FreeBSD namei()
doesn't know about Unicode; you'd have to kludge it and not use the
upper byte, and if you did that, you'd lose interoperability with
existing files that *did*).

And if you want to get *real* technical, UFS should stack on another
layer that gives a flat "disk block namespace" and FFS should stack
on top of a UFS that exports a flat "inode namespace", and *then*
FFS should export a hierarchical namespace.  Only the pathname buffer
structure is too stupid, and VOP_ABORTOP in every FS and every FS's
VOP's for dealing with path buffers think they know its format, and
that they have to deallocate the bloody thing.  You might even wedge
a "variable granularity block store" between the UFS and the VFS
layer that exports the raw blocks so you could implement record-based
files and extent and LFS semantics in an FFS environment...


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



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