home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Usenet 1994 January
/
usenetsourcesnewsgroupsinfomagicjanuary1994.iso
/
sources
/
std_unix
/
v21
/
129
< prev
next >
Wrap
Internet Message Format
|
1990-12-05
|
2KB
From std-unix-request@uunet.uu.net Tue Sep 25 10:20:43 1990
Received: from cs.utexas.edu by uunet.uu.net (5.61/1.14) with SMTP
id AA24327; Tue, 25 Sep 90 10:20:43 -0400
Posted-Date: 24 Sep 90 21:40:07 GMT
Received: by cs.utexas.edu (5.64/1.76)
From: brnstnd@kramden.acf.nyu.edu (Dan Bernstein)
Newsgroups: comp.std.unix
Subject: Re: Standards Update, IEEE 1003.4: Real-time Extensions
Message-Id: <541@usenix.ORG>
References: <495@usenix.ORG> <523@usenix.ORG> <539@usenix.ORG>
Sender: jsq@usenix.ORG
Organization: IR
X-Submissions: std-unix@uunet.uu.net
Date: 24 Sep 90 21:40:07 GMT
Reply-To: std-unix@uunet.uu.net
To: std-unix@uunet.uu.net
Submitted-by: brnstnd@kramden.acf.nyu.edu (Dan Bernstein)
In article <539@usenix.ORG> peter@ficc.ferranti.com (Peter da Silva) writes:
> But where things have moved closer
> to the underlying principles (everything is a file, for example) it's become
> the better for it.
The underlying principle is that everything is a file *descriptor*.
> > Sometimes there are objects which would be
> > reasonable to treat with filesystem semantics for which there is no
> > reasonable mechanism for introducing them into the filesystem name
> > space.
> This seems reasonable, but the rest is a pure argument from authority.
> Could you repeat these arguments for the benefit of hose of us who don't
> have the good fortune to know these networking experts you speak of?
The filesystem fails to deal with many (most?) types of I/O that aren't
reliable, static, and local. Here's an example: In reality, you initiate
a network stream connection in two stages. First you send off a request,
which wends its way through the network. *Some time later*, the response
arrives. Even if you aren't doing a three-way handshake, you must wait a
long time (in practice, up to several seconds on the Internet) before
you know whether the open succeeds.
In the filesystem abstraction, you open a filename in one stage. You
can't do anything between initiating the open and finding out whether or
not it succeeds. This just doesn't match reality, and it places a huge
restriction on programs that want to do something else while they
communicate.
You can easily construct other examples, but one should be enough to
convince you that open() just isn't sufficiently general for everything
that you might read() or write().
---Dan
Volume-Number: Volume 21, Number 129