<?xml version="1.0" encoding="utf-8" ?>
<rss version="2.0" xmlns:osnews="http://osnews.com/rss2#">
	<channel>
		<title>OSNews: </title>
		<link>http://www.osnews.com/story/8158/OS_Development_Opening_Streams</link>
		<description>Exploring the Future of Computing</description>
		<language>en-us</language>
		<copyright>Copyright 2001-2009, David Adams</copyright>
		<webMaster>adam+nospam@osnews.com</webMaster>
		<lastBuildDate>Tue, 07 Jul 2009 01:15:13 GMT</lastBuildDate>
		<image>
			<url>http://www.osnews.com/images/osnews.gif</url>
			<title>OSNews.com</title>
			<link>http://www.osnews.com</link>
		</image>
		<item>
			<title>Once more, now....</title>
			<link>http://osnews.com/thread?</link>
			<guid isPermaLink="true">http://osnews.com/thread?</guid>
			<description>... This can all be done with userland file servers. You really need to stop writing articles and actually see what the operating system world beyond Linux has to offer.</description>
			<pubDate>Wed, 01 Sep 2004 19:52:00 GMT</pubDate>
			<author>donotreply@osnews.com (Anonymous)</author>
			<category>Comments</category>
		</item>

		<item>
			<title>Right choice of composer</title>
			<link>http://osnews.com/thread?</link>
			<guid isPermaLink="true">http://osnews.com/thread?</guid>
			<description>Great article -- but best of all, Bach gets a mention! Huzzah for the ultimate master of counterpoint. Mmmm, baroque 'n roll...</description>
			<pubDate>Wed, 01 Sep 2004 19:53:00 GMT</pubDate>
			<author>donotreply@osnews.com (Anonymous)</author>
			<category>Comments</category>
		</item>

		<item>
			<title>Spelling?</title>
			<link>http://osnews.com/thread?</link>
			<guid isPermaLink="true">http://osnews.com/thread?</guid>
			<description>Isn't it called &quot;opening&quot;?<br />
<br />
- Simon</description>
			<pubDate>Wed, 01 Sep 2004 19:55:00 GMT</pubDate>
			<author>donotreply@osnews.com (Anonymous)</author>
			<category>Comments</category>
		</item>

		<item>
			<title>Re: Once more, now....</title>
			<link>http://osnews.com/thread?</link>
			<guid isPermaLink="true">http://osnews.com/thread?</guid>
			<description>&gt; This can all be done with userland file servers.<br />
<br />
What exactly do you mean by &quot;user land file servers&quot;? Im not familiar with the term. Also, why is it a better method?</description>
			<pubDate>Wed, 01 Sep 2004 19:59:00 GMT</pubDate>
			<author>donotreply@osnews.com (Anonymous)</author>
			<category>Comments</category>
		</item>

		<item>
			<title>Debunking the &amp;quot;everything is a file&amp;quot; myth</title>
			<link>http://osnews.com/thread?</link>
			<guid isPermaLink="true">http://osnews.com/thread?</guid>
			<description>The article starts with stating that there is a *nix design philosophy that states that &quot;everything is a file&quot;. This is a widely spread idea, but it is also an idea that is not very true. When you think about it, how much of a modern *nix is actually a file? It turns out that there are a lot of fundamental concepts that are not files:<br />
<br />
* Processes - A process cannot be manipulated like a file. There are filesystem extentions that allow you to inspect the state of a process like it was a collection of files, but it is not possible to e.g. create a process like you would create a file.<br />
<br />
* Network sockets - There is no way to create or manipulate network sockets like they were files. There is an old proposal called &quot;portals&quot; for BSD that actually makes network sockets appear in the file system, but this has not been adopted.<br />
<br />
* Network interfaces - It is not possible to configure a network interface by using the file system - we are forced to use ifconfig (or the underlying kernel communication magic).<br />
<br />
* Users - A user does not have any representation as a file. Sure, all users are stored in the passwd file, but that does not make a user a file.<br />
<br />
* Un-named pipes (the ones that appear if you type the | character between commands) - they may be implemented using files, but that does not make them files<br />
<br />
* Signals - You cannot send or receive signals using the file system.<br />
<br />
Maybe it is time to finally drop the idea that &quot;everything is a file&quot; and acknowledge the fact that most things in modern *nixes are *not* files.</description>
			<pubDate>Wed, 01 Sep 2004 20:19:00 GMT</pubDate>
			<author>donotreply@osnews.com (Anonymous)</author>
			<category>Comments</category>
		</item>

		<item>
			<title>For mor though about files, data and streams</title>
			<link>http://osnews.com/thread?</link>
			<guid isPermaLink="true">http://osnews.com/thread?</guid>
			<description>You should also read this enlightening works:<br />
<a href="http://www.ics.uci.edu/~fielding/pubs/dissertation/top.htm" rel="nofollow">http://www.ics.uci.edu/~fielding/pubs/dissertation/top.htm</a> <br />
<a href="http://www.namesys.com/whitepaper.html" rel="nofollow">http://www.namesys.com/whitepaper.html</a><br />
<br />
Instead of having a naspace identifying collection of bits in the computer memory the namespace should identify the conceptual data, the system should just handle representations of the concept.</description>
			<pubDate>Wed, 01 Sep 2004 20:30:00 GMT</pubDate>
			<author>donotreply@osnews.com (Anonymous)</author>
			<category>Comments</category>
		</item>

		<item>
			<title>BeOS find</title>
			<link>http://osnews.com/thread?</link>
			<guid isPermaLink="true">http://osnews.com/thread?</guid>
			<description>I'm pretty sure the BeOS find dialog is not find-as-you-type.</description>
			<pubDate>Wed, 01 Sep 2004 20:30:00 GMT</pubDate>
			<author>donotreply@osnews.com (Anonymous)</author>
			<category>Comments</category>
		</item>

		<item>
			<title>Re: Debunking the &amp;quot;everything is a file&amp;quot; myth</title>
			<link>http://osnews.com/thread?</link>
			<guid isPermaLink="true">http://osnews.com/thread?</guid>
			<description>See &quot;Plan 9&quot; for a more extreme implementation of &quot;everything is a file&quot;.<br />
<br />
* Un-named pipes<br />
<br />
Even if the pipes isn't represented as files, I do belive that you could find a stdin/stdout/stderr for each process in the pipeline at /proc/[0-9]+/fd/*. Am I wrong here?</description>
			<pubDate>Wed, 01 Sep 2004 20:36:00 GMT</pubDate>
			<author>donotreply@osnews.com (Anonymous)</author>
			<category>Comments</category>
		</item>

		<item>
			<title>streams in linux filesystems</title>
			<link>http://osnews.com/thread?</link>
			<guid isPermaLink="true">http://osnews.com/thread?</guid>
			<description>in case anyone has a morbid interest in these sorts of things in our beloved linux kernel, you might like to have a quick glance at this very heated debate that's been raging on the linux kernel mailing list for some time.<br />
<br />
google groups says the thread has reached over 480 posts in just a few days!<br />
<br />
<a href="http://groups.google.co.uk/groups?hl=en&amp;lr=&amp;ie=UTF-8&amp;threadm=fa.g6or9ip.9hqq2j%40ifi.uio.no&amp;rnum=1&amp;prev=/groups%3Fq%3Dsemantic%2Bgroup:fa.linux.kernel%26hl%3Den%26lr%3D%26ie%3DUTF-8%26group%3Dfa.linux.kernel%26selm%3Dfa.g6or9ip.9hqq2j%2540ifi.uio.no%26rnum%3D1" rel="nofollow">http://groups.google.co.uk/groups?hl=en&amp;lr=&amp;ie=UTF-8&amp;th...</a> <br />
<br />
a quick executive summary is that reiser4 allows some neat things with its idea of plugins (streams and meta-data are the focus of the discussion but the sky is the limit). unfortunately this is not compatible with POSIX, SVR4 or current linux VFS semantics. cue a major philosophical flame-fest.</description>
			<pubDate>Wed, 01 Sep 2004 21:27:00 GMT</pubDate>
			<author>donotreply@osnews.com (Anonymous)</author>
			<category>Comments</category>
		</item>

		<item>
			<title>Everything is not a file</title>
			<link>http://osnews.com/thread?</link>
			<guid isPermaLink="true">http://osnews.com/thread?</guid>
			<description>Maybe it is time to finally drop the idea that &quot;everything is a file&quot; and acknowledge the fact that most things in modern *nixes are *not* files.<br />
<br />
Yes. I don't like the way drivers are done on Unixes-- device files, with horrible hacks like ioctl to get around the fact that the file is not a suitable interface for most devices, and now all this UDev and DevFS palaver. Why not just expose a nice set of interface functions for the device class (with the option of hardware-specific functions). Ioctl is just a silly way of doing exactly this, but incurs more overhead and is harder to use.<br />
<br />
The file system does provide one useful feature for device drivers, that is a way of accessing and listing by name. But you can do this some other way.</description>
			<pubDate>Wed, 01 Sep 2004 22:08:00 GMT</pubDate>
			<author>donotreply@osnews.com (Anonymous)</author>
			<category>Comments</category>
		</item>

		<item>
			<title>Pipes and device drivers</title>
			<link>http://osnews.com/thread?</link>
			<guid isPermaLink="true">http://osnews.com/thread?</guid>
			<description>It would appear that the historical significance of &quot;everything is a file&quot; has been lost.  When this philosophy was coined everything had a different interface.  So when you wanted to write to a device you had to learn a brand new interface.  What's more you had to learn how to refer to that interface.  After looking at a lot of these interfaces it was found that most of them have a lot in common.  It was decided that there needed to be a standard way of talking to stuff and the &quot;file level&quot; was the lowest common demoninator.  When we say &quot;everything is a file&quot; we're saying &quot;you can use the file interface to talk to everything&quot;.  If you want to do something special with the device then you can extend the file interface (with ioctl).  Userland libraries can provide more &quot;pretty&quot; interfaces if you really need, but by making everything conform to this standard interface it makes it easier to join programs together.  The pipe is simply two such interfaces with a buffer in-between, and by using a lot of programs and devices which all share the same interface we can get a very powerful system from a small number of components.  Remember, as system's power is measured by the number of components raised to the power of the number of possible interconnections between those components.</description>
			<pubDate>Thu, 02 Sep 2004 02:12:00 GMT</pubDate>
			<author>donotreply@osnews.com (Anonymous)</author>
			<category>Comments</category>
		</item>

		<item>
			<title>RE: Everything is not a file</title>
			<link>http://osnews.com/thread?</link>
			<guid isPermaLink="true">http://osnews.com/thread?</guid>
			<description>You are right that everything is not a file, but IMHO an operating system which gives uniform interface to access device is always going to be easier and liked by developers. How exactly do you think people writing code at high level manage difference between those devices?<br />
<br />
Today i can use same WriteFile functions on a network device as well as a file system and it is much better than having 100s of different functions specific to each device and making it unusable when the device change.<br />
<br />
May be what you want to propose is a more powerful interface than file but not non-uniform interface based on devices.</description>
			<pubDate>Thu, 02 Sep 2004 06:06:00 GMT</pubDate>
			<author>donotreply@osnews.com (Anonymous)</author>
			<category>Comments</category>
		</item>

		<item>
			<title>The point of &amp;quot;everything can be manipulated as a file&amp;quot;..</title>
			<link>http://osnews.com/thread?</link>
			<guid isPermaLink="true">http://osnews.com/thread?</guid>
			<description>The purpose of having everything, from a user process standpoint, appear as a file descriptor, is that it gives you a simple and powerful way of cleaning up when the process exits.<br />
<br />
ioctl() is indeed not a very elegant way of supporting interfaces, even though you could publish interfaces in the C++/component sense by marshalling/demarshalling and using<br />
the file descriptor as a 'wire'.<br />
<br />
However, it simplifies the OS and the applications a lot that everything supports open() and close().<br />
<br />
See what happens when a process crashes in Syllable and it uses the &quot;non file compliant&quot; message ports and windows for example: they don't go away.</description>
			<pubDate>Thu, 02 Sep 2004 07:25:00 GMT</pubDate>
			<author>donotreply@osnews.com (Anonymous)</author>
			<category>Comments</category>
		</item>

		<item>
			<title>@ Emmanuel:</title>
			<link>http://osnews.com/thread?</link>
			<guid isPermaLink="true">http://osnews.com/thread?</guid>
			<description>&gt; However, it simplifies the OS and the applications<br />
&gt; a lot that everything supports open() and close(). <br />
<br />
Last time I looked into /dev and /proc, I wasn't terribly impressed by the &quot;simplicity&quot; of it, and I can't say I remember ever open()ing or close()ing anything in there.<br />
<br />
I think while the &quot;everything is a file&quot; metaphor makes things easier for (a certain brand of) developers, it's more than a bit confusing for the rest, including end users.<br />
<br />
Unfortunately, *nix isn't exactly about end users, anyway.</description>
			<pubDate>Thu, 02 Sep 2004 11:19:00 GMT</pubDate>
			<author>donotreply@osnews.com (Anonymous)</author>
			<category>Comments</category>
		</item>

		<item>
			<title>Re: @ Emmanuel:</title>
			<link>http://osnews.com/thread?</link>
			<guid isPermaLink="true">http://osnews.com/thread?</guid>
			<description>Well, in Linux (and I guess that in all other unixes) when I want to see if my usb mouse has been recognised I do &quot;cat /dev/input/mice&quot;, and I bet that many, many other people do similar things.</description>
			<pubDate>Thu, 02 Sep 2004 11:46:00 GMT</pubDate>
			<author>donotreply@osnews.com (Anonymous)</author>
			<category>Comments</category>
		</item>

		<item>
			<title>@ Solar</title>
			<link>http://osnews.com/thread?</link>
			<guid isPermaLink="true">http://osnews.com/thread?</guid>
			<description>When you open a terminal, the terminal open(s) /dev/console, /dev/ttyS0, etc. and this is passed over to child processes.<br />
<br />
/dev is a way for user processes to open() stuff that isn't a physical file. In itself it's not a bad idea; what is a bad idea is that it's exposed to the end user (you and me); whether it's physical inodes or a filesystem like devfs doesn't really make any difference.<br />
<br />
The Windows NT kernel works the same way (I think the hierarchy is called \device.. NT gurus please correct me :-) but you don't see it exposed directly to apps.<br />
<br />
So, again, there is nothing wrong (and a lot of good) with wrapping the ugly semantics of the &quot;everything looks like a file&quot; using nice C++ or component-based interfaces.<br />
<br />
By simplifying life for applications, I mean that you don't have to explicitly free and close everything when your application exits, and the system (or yourself) can safely slay a process without leaving things hanging. If you ever programmed for AmigaOS, you know what I mean.<br />
<br />
That was my point :-)</description>
			<pubDate>Thu, 02 Sep 2004 12:23:00 GMT</pubDate>
			<author>donotreply@osnews.com (Anonymous)</author>
			<category>Comments</category>
		</item>

		<item>
			<title>Everything is a file dates back to...</title>
			<link>http://osnews.com/thread?</link>
			<guid isPermaLink="true">http://osnews.com/thread?</guid>
			<description>One interface to rule them all, one place to find them, one call to open them all and in the darkness bind them.</description>
			<pubDate>Thu, 02 Sep 2004 13:43:00 GMT</pubDate>
			<author>donotreply@osnews.com (Anonymous)</author>
			<category>Comments</category>
		</item>

		<item>
			<title>/dev</title>
			<link>http://osnews.com/thread?</link>
			<guid isPermaLink="true">http://osnews.com/thread?</guid>
			<description>If it scares you when you ls /dev then don't.<br />
<br />
Or find another distro that doesn't make a scarey /dev.<br />
<br />
I think everything should be a file.  But I can deal with the fact that some things, like users, won't become files in the near future.  Though I might treat them like files if all they do is complain.</description>
			<pubDate>Thu, 02 Sep 2004 19:29:00 GMT</pubDate>
			<author>donotreply@osnews.com (Anonymous)</author>
			<category>Comments</category>
		</item>
	</channel>
</rss>
