From owner-freebsd-fs Tue Nov 9 0:53:16 1999 Delivered-To: freebsd-fs@freebsd.org Received: from akat.civ.cvut.cz (akat.civ.cvut.cz [147.32.235.105]) by hub.freebsd.org (Postfix) with SMTP id 103F514FFF for ; Tue, 9 Nov 1999 00:53:11 -0800 (PST) (envelope-from pechy@hp735.cvut.cz) Received: from localhost (pechy@localhost) by akat.civ.cvut.cz (950413.SGI.8.6.12/950213.SGI.AUTOCF) via ESMTP id JAA05513 for ; Tue, 9 Nov 1999 09:53:07 +0100 Date: Tue, 9 Nov 1999 09:53:07 +0100 From: Jan Pechanec X-Sender: pechy@akat.civ.cvut.cz To: freebsd-fs@FreeBSD.ORG Subject: Re: stupidfs - easily extensible test file systems? In-Reply-To: <199911051914.OAA23367@shekel.mcl.cs.columbia.edu> Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII Sender: owner-freebsd-fs@FreeBSD.ORG Precedence: bulk X-Loop: FreeBSD.org On Fri, 5 Nov 1999, Erez Zadok wrote: >In message , Robert Watson writes: >[...] >> Because wrapfs doesn't work in 3.3-RELEASE yet, and because of the reasons >> you mention, I decided to keep working on a stupidfs :-). > >I'll be updating wrapfs for 3.3 once I return from LISA. With luck, it'll >work again before you return from Albuquerque. > >> That is, that I >> don't want to add functionality to an existing file system by stacking, >> but rather to have a new simple file system that I can modify the >> semantics of in ways not encouarged by the stacking of file systems. > >If I understand you right (maybe I didn't), there are two ways to do that: > Hello, how I understand is, eg.: let's write a simple kernel fs for new developers to learn. The fs can have just 2 directories, no tree structures, max. 10 files in the directory. It will be simple so that a programmer who has little experience in writing fs's can easily look at it and understand. There is no idea about stacking or about using existing fs's together with stupid-fs. But maybe I didn't understand right :-). Therefore I think that Erez and Robert don't ,,compete'', wrapfs and stupidfs will be written for different purpose. cheers, Jan. >(1) Create a simple *native* (disk based?) file system template from which > you can possibly create new file systems that put data on disks and > floppies, right? In theory, one should be able to create msdosfs and > ffs from such a template. In practice, there are numerous details to > work out, that getting something barely working for a "stuipid" template > will require substantial effort. Such a template would be very useful > if it will have these two characteristics: (a) be small and simple, and > (b) require little modification to create file systems such as msdosfs > and ffs. I believe that with current OS technology, it is impossible to > get both 'a' and 'b' done. > >(2) If what you want is a file system that can work with other file systems, > then you're essentially asking for stacking. Yes stacking f/s usually > have to maintain VFS semantics, so that a layer is kept independent from > other layers, either above or below it. It is possible, however, for a > stackable f/s to violate this priniciple; for example, you can muck with > direct disk blocks and inode blocks from a stackable f/s. It's not > something I'd recommend, but it is possible. > >> I am >> currently traveling (IETF next week, Active Network conference in >> Alberquerque the week after) so won't get back to my development machines >> for about two weeks. After that time, I hope to get a stupidfs >> implementation to the point where it might be useful for others to see, so >> I'll put it online. As I mentioned before, the goal is to have a really >> simple file system with no backing store, appropriate for use when >> experimenting with new VOPs, etc, etc. > >I'd be very interested in seeing this. I would also suggest that before you >dive into coding, you write out a detailed design, and post it to this list, >so we could all comment on it. > >Note that extensible VFSs have been the expressed desire of stackable file >systems from the very early days. In order for me to support file system >extensibilty without changing the OS or other file systems, I had to give up >the idea of creating new VOPs. That is, you cannot add new vops using >wrapfs; you could create new ioctls, however, which are the poor man's >extensible model. IOW, if you created an infrastructure that can extend the >VFS, you'll have something that wrapfs cannot do --- something that people >have been asking for some time. (So don't call it "stuipid" :-) > >If you haven't already, you should read up on all of the classic stacking >papers first, from Rosenthal, Skinner & Wong, Heidemann, Popek, etc. Then >you might look into papers on Spring, BSD's Unionfs, and the HURD. All of >these talk about mechanisms for VFS extensibility that would be useful for >you. > >> It won't be fully functioning (for >> example, I probably won't even bother to implement symlinks) but it will >> be *simple*, meaning it can be modifed easily. It will also be separable >> into an entirely separate module, unlike UFS which has fingers everywhere, >> so it can easily be loaded and unloaded on demand during development. >> >> I wouldn't encourage anyone to use it in production--it will make a fair >> amount of use of kernel memory, as it won't back to a process--but for >> development it should be useful. > >I think you have to be very careful about your implementation. You cannot >encourage people to use something in PRODUCTION that has not been thoroughly >tested, and esp. if it's missing functionality. If you want your f/s to be >useful, make sure it works with existing VFSs and existing file systems. At >the very least, make sure it won't damage people's installations. It would >be nice if "all" it did was _add_ new VOPs, while keeping existing ones >unchanged. > >I'm speaking from experience here. I've developed wrapfs on solaris, >freebsd, and linux. In the early days, I've dealt with bugs that easily >corrupted active memory and resulted in total corruption of system and boot >partitions, to a point where a reinstallation was required. After a few >frustrating reinstallations, I wound up setting up automatic OS installation >systems (network-based booting, installing off of an auxiliary disk, even >using identical disks and dd'ing a good copy onto a trashed one). > >> Robert N M Watson >> >> robert@fledge.watson.org http://www.watson.org/~robert/ >> PGP key fingerprint: AF B5 5F FF A6 4A 79 37 ED 5F 55 E9 58 04 6A B1 >> TIS Labs at Network Associates, Safeport Network Services > >Good luck. Let me know if I can help. > >Erez. > -- Jan PECHANEC (mailto:pechy@hp735.cvut.cz) Computing Center CTU (Zikova 4, Praha 6, 166 35, Czech Republic) www.civ.cvut.cz, pechy.civ.cvut.cz, tel: +420 2 24352969 (fax: 24310271) To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-fs" in the body of the message