Re: The STREAMS non-inclusion in Linux
Thanks, Geoff Mendelson and Shlomi Fish, for helping me understand why STREAMS didn't find its way into Linux. Intuitively, drivers stacked according to STREAMS interfaces and protocols would be slower than monolithic drivers accomplishing the same function. Therefore the monolithic solution would be preferred. This is especially true as Linux kernel supports loading and unloading of driver modules, so it does not cost much to replace the equivalent of one stack of drivers by the equivalent of another stack of drivers. I was amused to read that one of the POSIX standards was affected by Linux' insistence upon not implementing STREAMS in the standard kernel. --- Omer On Wed, 2011-04-20 at 13:03 +0300, Shlomi Fish wrote: > Hi Omer, > > On Wednesday 20 Apr 2011 08:09:35 Omer Zak wrote: > > One of the things in which Linux diverges from Unix is Linux' > > non-implementation of STREAMS. > > > > STREAMS can roughly be described as a way to organize drivers dealing > > with I/O. > > > > Wikipedia article: http://en.wikipedia.org/wiki/STREAMS > > Linux Journal article: http://www.linuxjournal.com/article/3086 > > > > None of them has details about the reasons, which led Linux Kernel > > developers to reject STREAMS. STREAMS was only vaguely described as > > poorly-designed and resource-consuming. > > > > Where can I find, if it exists at all, the definitive article which > > spells out the reasons for rejection of STREAMS? > > > > Well, I should note that Eric Raymond has written about STREAMS here: > > * http://www.faqs.org/docs/artu/ch07s03.html -- My Commodore 64 is suffering from slowness and insufficiency of memory; and its display device is grievously short of pixels. Can anyone help? My own blog is at http://www.zak.co.il/tddpirate/ My opinions, as expressed in this E-mail message, are mine alone. They do not represent the official policy of any organization with which I may be affiliated in any way. WARNING TO SPAMMERS: at http://www.zak.co.il/spamwarning.html ___ Linux-il mailing list Linux-il@cs.huji.ac.il http://mailman.cs.huji.ac.il/mailman/listinfo/linux-il
Re: The STREAMS non-inclusion in Linux
On Wed, Apr 20, 2011 at 01:23:33PM +0300, Shlomi Fish wrote: > On Wednesday 20 Apr 2011 08:32:29 geoffrey mendelson wrote: > > My guess is that streams is based on AT&T patents and was never > > reverse engineered. > > > > That's not true. STREAMS was part of the Unix98 standard (now mostly > superseded by the Linux Standard Base), and there was a STREAMS patch for it > for the Linux kernel. However, AFAIR Linus was unwilling to apply it because > he claimed it made everything else slower. "STREAMS was required for conformance with the Single UNIX Specification versions 1 (UNIX 95) and 2 (UNIX 98), but as a result of the refusal of the BSD and Linux flavors of UNIX to provide STREAMS, was marked as optional for POSIX compliance by the Austin Group in version 3 (UNIX 03)." http://en.wikipedia.org/wiki/STREAMS -- Tzafrir Cohen | tzaf...@jabber.org | VIM is http://tzafrir.org.il || a Mutt's tzaf...@cohens.org.il || best tzaf...@debian.org|| friend ___ Linux-il mailing list Linux-il@cs.huji.ac.il http://mailman.cs.huji.ac.il/mailman/listinfo/linux-il
Re: The STREAMS non-inclusion in Linux
On Wednesday 20 Apr 2011 08:32:29 geoffrey mendelson wrote: > On Apr 20, 2011, at 8:09 AM, Omer Zak wrote: > > None of them has details about the reasons, which led Linux Kernel > > developers to reject STREAMS. STREAMS was only vaguely described as > > poorly-designed and resource-consuming. > > There were two competing implemtations of TCP/IP. UCB created sockets, > which is sort of in the public domain. AT&T (I think they > subcontracted BBN to actually do it) created streams. > > My guess is that streams is based on AT&T patents and was never > reverse engineered. > That's not true. STREAMS was part of the Unix98 standard (now mostly superseded by the Linux Standard Base), and there was a STREAMS patch for it for the Linux kernel. However, AFAIR Linus was unwilling to apply it because he claimed it made everything else slower. > So UNIX systems based on SYS V had streams, while UNIX systems based > on BSD had sockets. SYS V Release 3.2 which was the first combined > release (AT&T Kernel, both SYS V and BSD user land) had both. > > I've never looked but AFAIK, MacOS which is the latest "real" UNIX has > sockets but not streams. > > Geoff. Regards, Shlomi Fish -- - Shlomi Fish http://www.shlomifish.org/ Best Introductory Programming Language - http://shlom.in/intro-lang Knuth is not God! Unless you confuse him with Dijkstra. Please reply to list if it's a mailing list post - http://shlom.in/reply . ___ Linux-il mailing list Linux-il@cs.huji.ac.il http://mailman.cs.huji.ac.il/mailman/listinfo/linux-il
Re: The STREAMS non-inclusion in Linux
Hi Omer, On Wednesday 20 Apr 2011 08:09:35 Omer Zak wrote: > One of the things in which Linux diverges from Unix is Linux' > non-implementation of STREAMS. > > STREAMS can roughly be described as a way to organize drivers dealing > with I/O. > > Wikipedia article: http://en.wikipedia.org/wiki/STREAMS > Linux Journal article: http://www.linuxjournal.com/article/3086 > > None of them has details about the reasons, which led Linux Kernel > developers to reject STREAMS. STREAMS was only vaguely described as > poorly-designed and resource-consuming. > > Where can I find, if it exists at all, the definitive article which > spells out the reasons for rejection of STREAMS? > Well, I should note that Eric Raymond has written about STREAMS here: * http://www.faqs.org/docs/artu/ch07s03.html Regards, Shlomi Fish -- - Shlomi Fish http://www.shlomifish.org/ Parody of "The Fountainhead" - http://shlom.in/towtf Satan condemned Hitler for a million years of writing XSLT. Please reply to list if it's a mailing list post - http://shlom.in/reply . ___ Linux-il mailing list Linux-il@cs.huji.ac.il http://mailman.cs.huji.ac.il/mailman/listinfo/linux-il
Re: The STREAMS non-inclusion in Linux
On Wed, Apr 20, 2011 at 09:56:26AM +0300, Oron Peled wrote: > IIRC, Linus once said STREAMS would enter the kernel over his dead body > but I cannot find a reference to that now. Regardless of this specific issue, I believe some one or two pieces of code did make it into the kernel over Linus's dead body. But I can't find any reference either. Ahem. -- Tzafrir Cohen | tzaf...@jabber.org | VIM is http://tzafrir.org.il || a Mutt's tzaf...@cohens.org.il || best tzaf...@debian.org|| friend ___ Linux-il mailing list Linux-il@cs.huji.ac.il http://mailman.cs.huji.ac.il/mailman/listinfo/linux-il
Re: The STREAMS non-inclusion in Linux
On Wednesday, 20 בApril 2011 08:09:35 Omer Zak wrote: > One of the things in which Linux diverges from Unix is Linux' > non-implementation of STREAMS. > > None of them has details about the reasons, which led Linux Kernel > developers to reject STREAMS. STREAMS was only vaguely described as > poorly-designed and resource-consuming. From Alan Cox: http://lkml.indiana.edu/hypermail/linux/kernel/9806.3/0997.html > Where can I find, if it exists at all, the definitive article which > spells out the reasons for rejection of STREAMS? IIRC, Linus once said STREAMS would enter the kernel over his dead body but I cannot find a reference to that now. -- Oron Peled Voice: +972-4-8228492 o...@actcom.co.il http://users.actcom.co.il/~oron Problems cannot be solved at the same level of awareness that created them. -- A. Einstein ___ Linux-il mailing list Linux-il@cs.huji.ac.il http://mailman.cs.huji.ac.il/mailman/listinfo/linux-il
Re: The STREAMS non-inclusion in Linux
On Wed, Apr 20, 2011 at 08:32:29AM +0300, geoffrey mendelson wrote: > > On Apr 20, 2011, at 8:09 AM, Omer Zak wrote: > >> None of them has details about the reasons, which led Linux Kernel >> developers to reject STREAMS. STREAMS was only vaguely described as >> poorly-designed and resource-consuming. > > There were two competing implemtations of TCP/IP. UCB created sockets, > which is sort of in the public domain. AT&T (I think they subcontracted > BBN to actually do it) created streams. > > My guess is that streams is based on AT&T patents and was never reverse > engineered. > > So UNIX systems based on SYS V had streams, while UNIX systems based on > BSD had sockets. SYS V Release 3.2 which was the first combined release > (AT&T Kernel, both SYS V and BSD user land) had both. > > I've never looked but AFAIK, MacOS which is the latest "real" UNIX has > sockets but not streams. Mac OS X has a part called XNU (which, unlike GNU and XINU, is not a recursive acronym) which is originally based on the BSD kernel. You would expect them to follow BSD and use sockets rather than streams. Interestingly enough, Mac OS (the original one, which had nothing to do with Unix) had an implementation of STREAMS. Which is why OSX was forced to keep it as part of the emulation layer (alone). Or at least Wikipedia says so: http://en.wikipedia.org/wiki/STREAMS -- Tzafrir Cohen | tzaf...@jabber.org | VIM is http://tzafrir.org.il || a Mutt's tzaf...@cohens.org.il || best tzaf...@debian.org|| friend ___ Linux-il mailing list Linux-il@cs.huji.ac.il http://mailman.cs.huji.ac.il/mailman/listinfo/linux-il
Re: The STREAMS non-inclusion in Linux
On Apr 20, 2011, at 8:09 AM, Omer Zak wrote: None of them has details about the reasons, which led Linux Kernel developers to reject STREAMS. STREAMS was only vaguely described as poorly-designed and resource-consuming. There were two competing implemtations of TCP/IP. UCB created sockets, which is sort of in the public domain. AT&T (I think they subcontracted BBN to actually do it) created streams. My guess is that streams is based on AT&T patents and was never reverse engineered. So UNIX systems based on SYS V had streams, while UNIX systems based on BSD had sockets. SYS V Release 3.2 which was the first combined release (AT&T Kernel, both SYS V and BSD user land) had both. I've never looked but AFAIK, MacOS which is the latest "real" UNIX has sockets but not streams. Geoff. -- Geoffrey S. Mendelson, N3OWJ/4X1GM Those who cannot remember the past are condemned to misquote it. ___ Linux-il mailing list Linux-il@cs.huji.ac.il http://mailman.cs.huji.ac.il/mailman/listinfo/linux-il
The STREAMS non-inclusion in Linux
One of the things in which Linux diverges from Unix is Linux' non-implementation of STREAMS. STREAMS can roughly be described as a way to organize drivers dealing with I/O. Wikipedia article: http://en.wikipedia.org/wiki/STREAMS Linux Journal article: http://www.linuxjournal.com/article/3086 None of them has details about the reasons, which led Linux Kernel developers to reject STREAMS. STREAMS was only vaguely described as poorly-designed and resource-consuming. Where can I find, if it exists at all, the definitive article which spells out the reasons for rejection of STREAMS? --- Omer -- Soylent Green is people! My own blog is at http://www.zak.co.il/tddpirate/ My opinions, as expressed in this E-mail message, are mine alone. They do not represent the official policy of any organization with which I may be affiliated in any way. WARNING TO SPAMMERS: at http://www.zak.co.il/spamwarning.html ___ Linux-il mailing list Linux-il@cs.huji.ac.il http://mailman.cs.huji.ac.il/mailman/listinfo/linux-il