From owner-freebsd-current Mon Mar 9 11:59:32 1998 Return-Path: Received: (from majordom@localhost) by hub.freebsd.org (8.8.8/8.8.8) id LAA20977 for freebsd-current-outgoing; Mon, 9 Mar 1998 11:59:32 -0800 (PST) (envelope-from owner-freebsd-current@FreeBSD.ORG) Received: from smtp01.primenet.com (smtp01.primenet.com [206.165.6.131]) by hub.freebsd.org (8.8.8/8.8.8) with ESMTP id LAA20933 for ; Mon, 9 Mar 1998 11:59:24 -0800 (PST) (envelope-from tlambert@usr05.primenet.com) Received: (from daemon@localhost) by smtp01.primenet.com (8.8.8/8.8.8) id MAA20501; Mon, 9 Mar 1998 12:59:09 -0700 (MST) Received: from usr05.primenet.com(206.165.6.205) via SMTP by smtp01.primenet.com, id smtpd020427; Mon Mar 9 12:59:01 1998 Received: (from tlambert@localhost) by usr05.primenet.com (8.8.5/8.8.5) id MAA23552; Mon, 9 Mar 1998 12:58:57 -0700 (MST) From: Terry Lambert Message-Id: <199803091958.MAA23552@usr05.primenet.com> Subject: Re: vnode_pager: *** WARNING *** stale FS code in system To: dima@tejblum.dnttm.rssi.ru (Dmitrij Tejblum) Date: Mon, 9 Mar 1998 19:58:56 +0000 (GMT) Cc: nate@mt.sri.com, tlambert@primenet.com, current@FreeBSD.ORG In-Reply-To: <199803091047.NAA03211@tejblum.dnttm.rssi.ru> from "Dmitrij Tejblum" at Mar 9, 98 01:47:12 pm X-Mailer: ELM [version 2.4 PL25] MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Sender: owner-freebsd-current@FreeBSD.ORG Precedence: bulk X-Loop: FreeBSD.ORG > Stacking layers *is not* an analogy of inheritance. Stacking layers is > analogy of event-passing in GUI, or "filters" in Unix pipes, or some > such. Every widget, of course, must handle every possible event. Or know how to pass it to a lower layer, VOP's being the event type and argument decriptors being the events. > But some > widget are designed especially to dispatch events to other widgets. > This dispatching is a way of handling. Both widgets are finished stuff, > unlike a derived class without a base class. Or, as example of a layer, > consider a program that read a text file, handle lines started with '#', > and print other lines in slightly modified form to output. It is a finished > program too. You cannot say that it inherit from the program which > read and handle its output. > > But there is real inheritance in filesystems. For example, FIFOs in > FFS, FIFOs in NFS, FIFOs in CD9660, etc. is all derived from a generic > FIFO. This is true. fifofs and specfs are special cases because they are named in the common namespace. This is brain damage we will have to live with for a while (Julian has fixed the specfs damage using devfs; you don't need the namespace incursion to get devices any more; the fifo incursions are harder to deal with). The FFS/UFS inheritance is both more and less problematic. More, because it is so fundamental to the system. Less, because it's *almost* sufficiently abstract. Kirk's stated intent in the seperation was to provide a flat inode namespace. Some of this has been recently broken (via default vops and other changes), and some of it never worked (specifically, the mechanism whereby UFS gets it's naming relies on an FS specific directory node acquisition). The real reason for UFS/FFS explicit inheritance is so that you don't have to use "mount" to assemble an FFS from pieces. > Terry wants that all filesystems handle GETPAGES/PUTPAGES. This is > fine. I simple don't like that he put his 'default' junk in zillion > filesystems, instead of put it in an appropriate base class. It's not "an apropriate base class". A base class consisting of anything other than EOPNOTSUPP is pretty much broken. Read the BSD4.4 Stacking Architecture design document, I keep posting its URL. 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-current" in the body of the message