*BSD News Article 13350


Return to BSD News archive

Newsgroups: comp.os.386bsd.development
Path: sserve!newshost.anu.edu.au!munnari.oz.au!constellation!osuunx.ucc.okstate.edu!moe.ksu.ksu.edu!zaphod.mps.ohio-state.edu!cs.utexas.edu!usc!elroy.jpl.nasa.gov!decwrl!uunet!mcsun!dxcern!vxcrna.cern.ch!roeber
From: roeber@vxcrna.cern.ch
Subject: Re: A challenge to all true hackers: objects and types
Message-ID: <1993Mar25.184157.1@vxcrna.cern.ch>
Sender: news@dxcern.cern.ch (USENET News System)
Reply-To: roeber@cern.ch
Organization: CERN -- European Organization for Nuclear Research
References: <JKH.93Mar20153113@whisker.lotus.ie> <ARNEJ.93Mar24113744@chanur.imf.unit.no> <C4FEo2.8no@sugar.neosoft.com> <1osl3b$8vl@umd5.umd.edu>
Date: Thu, 25 Mar 1993 17:41:57 GMT
Lines: 69

In article <1osl3b$8vl@umd5.umd.edu>, mark@roissy.umd.edu (Mark Sienkiewicz) writes:
> In article <C4FEo2.8no@sugar.neosoft.com> peter@NeoSoft.com (Peter da Silva) writes:
>>In article <ARNEJ.93Mar24113744@chanur.imf.unit.no> arnej@imf.unit.no (Arne Henrik Juul) writes:
>>> I also think that variant links using environment variables is a BAD
>>> idea.
>>
>>I think that's a reasonable conclusion. How about variant links using
>>some other set of per-process/per-uid symbolic name space?
> 
> Using environment variables is a BAD idea for this reason:
> 
> 	Environment variables do not exist.
> 
> They are a fiction that is maintained by the user level programs.  The
> kernel does not maintain them.  They are an array of strings that are
> stored _somewhere_ in the user process, but they are entirely under the
> control of the user process.  The kernel can't even be sure it can find
> them.

Who said the kernel would need them?  In the Apollo system, and in my
suggestion, the type managers are user-space shared libraries.  The process 
opens a variant link, the type manager converts the name, and the kernel 
sees the process opening the actual, real name.

This is how I was able to create a "search list" type for the Apollos.
I didn't touch the kernel.

> Hewlett Packard has an interesting feature that was mentioned at the
> beginning of this discussion.  It is "Context Dependent Files".  A CDF is
> essentially invisible.  When you access the directory, you don't get the
> directory, but you get a file _within_ the directory.  Which file is based
> on your "context".

Interesting, yes, but hardly to be duplicated.  This is just another case 
of where HP has had its hands on an elegant solution (since they took over 
Apollo), threw it out the window, tried to re-invent a limited subset of the 
functionality, and ended up with a horrible bletcherosity of a hack.
(Apollos solve the same problem with a "cmpexe" compound executable type.)

If people want CDFs, I say the best solution is to come up with a general 
trait/type/object system, and allow these things (CDFs, variant links, 
"links using some other name space", search lists) to be specific types.

I do agree that using environment variables in a variant link increases 
greatly the number of ways one can shoot oneself in the foot.  One of the
problems with Apollos is that people use features like variant links without
using the Apollos' security model -- they use just the unix security.

Since I suspect nobody's going to beef up unix security any time soon, I 
suggest we don't use exactly Apollo-style variant links of the type

	/bin -> /$(CPU)/bin

in important areas, but perhaps one with a more limited syntax, e.g.

	/bin -> /$(CPU:{m68k,pa,386})/bin

But this is all beside the point: the big question is, "Do we change the
'file' system to be a more flexible object-store and allow people to
easily write new types, or do we keep the present model and introduce
things one by one in incremental ad-hoc kernel hacks?"

-- 
Frederick G. M. Roeber | CERN -- European Center for Nuclear Research
e-mail: roeber@cern.ch or roeber@caltech.edu | work: +41 22 767 31 80
r-mail: CERN/PPE, 1211 Geneva 23, Switzerland | home: +33 50 20 82 99
--  
"Sorry, baby, I can't take you to the pizza joint tonight, I've got to go
back to the lab and split the atom." -- Ayn Rand, "What is Romanticism?"