From: Rob Landley <rob@landley.net>
To: qemu-devel@nongnu.org
Cc: Anthony Liguori <aliguori@us.ibm.com>,
Paul Brook <paul@codesourcery.com>
Subject: Re: [Qemu-devel] [PATCH] Allow default network type to be determined from an environmental variable
Date: Mon, 11 Feb 2008 18:17:30 -0600 [thread overview]
Message-ID: <200802111817.31058.rob@landley.net> (raw)
In-Reply-To: <200801192110.11295.paul@codesourcery.com>
On Saturday 19 January 2008 15:10:09 Paul Brook wrote:
> > In the absence of a global configuration file, a reasonably sane way to
> > support this configuration system wide is to use an environmental
> > variable. QEMU already uses a number of global variables for
> > configuring audio options.
>
> I'd really prefer we didn't do this, and preferably obsoleted/removed the
> existing environment variables. IMHO using environment variables is a
> really bad idea and should be avoided wherever possible.
>
> Environment variables are about the worst user interface I can think of.
> For a start they're a global resource, which is limited on some systems.
On Windows, you mean?
They're a per-process resource on Linux. Inherited from the parent process,
sure, but you inherit _copies_ of them, and changes you make to those copies
don't propagate to parent processes. (A given process's environment
variables aren't even necessarily passed on to its child processes. You
supply the envionment variables to the syscall and wrappers like execle() let
you specify. The "env" command exists to do this for you.)
Essentially the environment variables passed into a process are a second set
of command line arguments (literally: argument 3 to main() is your list of
environment variables, an array of pointers to "name=value" strings, with a
null pointer terminating the array. Generally your setup code copies this
pointer to _environ but you can grab it manually if you like.) There's no
limit on the size here any more than there is on command line arguments.
(Your _shell_ may limit command line arguments, but you can pipe stuff to
xargs to get around that.)
> It's also extremely hard to determine what environment a user is running.
Type "set" with no arguments. (I admit bash 3.x throws insane amounts of crap
into this by default, but any program that's exposed to the FSF for an
extended period of time bloats beyond recognition.)
The sane way to do this is prefix all the environment variables QEMU uses with
QEMU_ so you can go
set | grep QEMU
And see just what you're interested in.
Would that make this approach more palatable?
Rob
--
"One of my most productive days was throwing away 1000 lines of code."
- Ken Thompson.
next prev parent reply other threads:[~2008-02-12 1:31 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-01-13 21:20 [Qemu-devel] [PATCH] Allow default network type to be determined from an environmental variable Anthony Liguori
2008-01-19 21:10 ` Paul Brook
2008-01-19 22:40 ` Anthony Liguori
2008-01-19 22:47 ` M. Warner Losh
2008-02-12 0:17 ` Rob Landley [this message]
2008-02-12 1:42 ` Paul Brook
2008-02-12 2:19 ` andrzej zaborowski
2008-02-12 2:46 ` Paul Brook
2008-02-12 3:47 ` Anthony Liguori
2008-02-12 12:27 ` Paul Brook
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=200802111817.31058.rob@landley.net \
--to=rob@landley.net \
--cc=aliguori@us.ibm.com \
--cc=paul@codesourcery.com \
--cc=qemu-devel@nongnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).