*BSD News Article 13444


Return to BSD News archive

Newsgroups: comp.os.386bsd.development
Path: sserve!newshost.anu.edu.au!munnari.oz.au!news.Hawaii.Edu!ames!haven.umd.edu!uunet!zaphod.mps.ohio-state.edu!howland.reston.ans.net!agate!dog.ee.lbl.gov!hellgate.utah.edu!fcom.cc.utah.edu!cs.weber.edu!terry
From: terry@cs.weber.edu (A Wizard of Earth C)
Subject: Re: A challenge to all true hackers: objects and types
Message-ID: <1993Mar27.080741.2438@fcom.cc.utah.edu>
Sender: news@fcom.cc.utah.edu
Organization: Weber State University  (Ogden, UT)
References: <JKH.93Mar20153113@whisker.lotus.ie> <ARNEJ.93Mar24113744@chanur.imf.unit.no> <JKH.93Mar25020256@whisker.lotus.ie>
Date: Sat, 27 Mar 93 08:07:41 GMT
Lines: 48

In article <JKH.93Mar25020256@whisker.lotus.ie> jkh@whisker.lotus.ie (Jordan K. Hubbard) writes:
>>I'm using apollo Domain/OS SR10.4 (newest version) every day. And I
>>don't agree AT ALL. Apollo's filesystems break too many programs,
>>including the bundled C compiler. (You can't compile any file that is
>
>This is not a generic object-store implementation problem, this is
>an apollo implementation problem.
>
>>I also think that variant links using environment variables is a BAD
>>idea. Do you realize this means that EVERY BLOODY program that sets
>>environment variables must be very cautious about how it is done, and
>
>I don't see this at all.  There are already a number of environment
>variables that one shouldn't set, like PATH, TERM, LANG, etc.  Why is
>this any different?  That is a very silly argument against a feature
>that potentially buys you so much more.

Also, at least in a naieve implementation, the environment read to look
at the variable is inherited from the parent (being set into initial
shell environments by init (for rc.local, et al) or login (for user shells).
Only user subprocesses can access modified environment variables.  For
instance, the idea of setting an environment variable within a process and
then having it effect the proceess itself is dependent upon extending the
size of the environment.  An implementation based on the initial location
of the environment store wouldn't take changes into account within a
single process.  Anything beyond that would require fixup of the location
of the table relative to it's initial location (the only place it can be
distinctly identified without a lot of work), or a seperate environment
pointer maintained in the u or proc struct (thus requiring system calls
for getenv/setenv).

Boiled down, this means that the link really can't be changed for the
program doing the changing; only for it's children... so you *DON'T*
need to take care in setting environment variables if the fear is that
it will impact the program setting them.


					Terry Lambert
					terry@icarus.weber.edu
					terry_lambert@novell.com
---
Any opinions in this posting are my own and not those of my present
or previous employers.
-- 
-------------------------------------------------------------------------------
                                        "I have an 8 user poetic license" - me
 Get the 386bsd FAQ from agate.berkeley.edu:/pub/386BSD/386bsd-0.1/unofficial
-------------------------------------------------------------------------------