Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 13 Oct 1995 22:19:29 -0700
From:      "Jordan K. Hubbard" <jkh@time.cdrom.com>
To:        Terry Lambert <terry@lambert.org>
Cc:        julian@ref.tfs.com, jhay@mikom.csir.co.za, hackers@FreeBSD.ORG
Subject:   Re: IPX now available 
Message-ID:  <2308.813647969@time.cdrom.com>
In-Reply-To: Your message of "Fri, 13 Oct 1995 18:40:56 PDT." <199510140140.SAA18883@phaeton.artisoft.com> 

next in thread | previous in thread | raw e-mail | index | archive | help
> I would be loathe to give up file system stacking, especially when we
> are on the verge of being able to finally use some of the technology

Never implied that we would.  Sorry if you took such an interpretation.

> I agree for the most part with the idea that we have inherited some bad
> code, but I'll be damned if I'll condemn the ideas that caused that code
> ("the UNIX legacy") without a fair hearing.  8-).

The ideas?  No, I'm not condeming the ideas.  The ideas are, in many
respects, just fine.  In fact, most of the major shortcomings we're
currently facing are because the fundamental concepts behind UNIX were
never taken FAR ENOUGH.  Things, as things will, lost momentum at some
point before that.  An example?  Oh, lesse..  OK, why can't I do
something like THIS:

% make world
<spew spew - oh foo, I don't want to look at this now>
^Z
[1]+  Suspended               make world
% bg >& make.out
[1]+ make world &
%

Hurrah, the output is now redirected to make.out!

Or even this:

% ./mylogprogram
<spew spew - drat, I forgot - I only want to see the foo records>
^Z
[2]+ Suspended		      ./mylogprogram
% fg | grep foo
<further output is piped through the grep>

We can't do all those things easily though because there's no
mechanism for CHANGING an open file handle, nor is the process group
mechanism powerful enough that we'd even be able to add another
process to a pipeline in such a way that it would behave properly on
subsequent suspend/resumes.

I won't even get into harping on about my favorite peeve, which is
the inability to do THIS either:

% make world
<spew spew>
Message from root@bigsys.bigcorp.com on ttyp4 at 22:06 ...
Hey, I need to reboot the system - can you log off?
EOF

<Aw foo!  OK..>
^Z
[1]+  Suspended               make world
% procsave %1 > make.world.image
Saving process tree for pgrp 1002... Done.
% exit

<log back in an hour later>
% procrestore make.world.image
<pick up right from where you left off, modulo process IDs now being
different>

On a system where process information isn't so scattered around and
FILE objects are handled somewhat more flexibly than through fixed
tables, this kind of thing is easy.  We had this feature in ITS 20
years ago!  But in UNIX, that's not so easy to add because things
weren't designed anywhere nearly "decoupled" enough and just restoring
a saved processes' file table to something sane would take serious
work.

Nice idea, all these pipes and standardized I/O, just a pity nobody's
taken it all the logical conclusion!  Yes, plan9 is significantly more
abstract in some of these respects but I thought we were talking about
UNIX and its shortcomings! :-)

					Jordan






Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?2308.813647969>