LWN: Comments on "A tempest in a tty pot" https://lwn.net/Articles/343828/ This is a special feed containing comments posted to the individual LWN article titled "A tempest in a tty pot". en-us Wed, 24 Sep 2025 04:27:41 +0000 Wed, 24 Sep 2025 04:27:41 +0000 https://www.rssboard.org/rss-specification lwn@lwn.net Why not fix the tty interface? https://lwn.net/Articles/346741/ https://lwn.net/Articles/346741/ yuhong <div class="FormattedComment"> Well, the good news is that Plan 9 gets rid of this tty mess altogether.<br> </div> Wed, 12 Aug 2009 18:55:21 +0000 Please https://lwn.net/Articles/346593/ https://lwn.net/Articles/346593/ obi <div class="FormattedComment"> I wish I could highlight your post; it cheers me up knowing at least some people understand this point. ;-)<br> </div> Wed, 12 Aug 2009 04:25:09 +0000 Then there are no point and case is closed, right? https://lwn.net/Articles/346592/ https://lwn.net/Articles/346592/ obi <div class="FormattedComment"> My first reaction would have been to install Debian's 2.6.30 kernel backport - that way I get all the bugfixes and security updates too.<br> </div> Wed, 12 Aug 2009 04:12:17 +0000 A tempest in a tty pot https://lwn.net/Articles/346425/ https://lwn.net/Articles/346425/ jonshouse <div class="FormattedComment"> Almost all of the real world problems here could be solved if Clib/libc had more real world user functions. What about something like<br> <p> if (stdio_raw(1)==0)<br> {<br> // I am in raw mode<br> }<br> else<br> { <br> //something went wrong<br> }<br> <p> The c runtime can even track if raw is on or off, or simply reset to non raw on crashes.......<br> <p> Its piss poor API for userland applications not the kernel that makes *nix a bit of a suck to code.<br> <p> <p> </div> Tue, 11 Aug 2009 15:24:54 +0000 out of tree https://lwn.net/Articles/346209/ https://lwn.net/Articles/346209/ vadim Let me give you my opinion as an user: As far as I'm concerned, if your hardware doesn't have a driver in the mainline kernel, it doesn't have one. And that means I don't buy it. And that's not a huge hindrance, since Linux has modules for everything these days. A device that only has an out of tree module is a rare exception and easily avoided. <blockquote> Having the driver in-tree actually increases the burden to the manufacturers because now they can't control what their customers are getting. </blockquote> But I'm not that interested in you controlling what I'm getting. If I have a 3Com card, I need it to work. Who makes it work isn't particularly important. If it stops working, I don't go to 3com.com, I expect my distro to ship a fix. It's actually something I love about Linux - on Windows every driver comes with random crap attached. Webcams can't just be webcams, they have to ship some horrible interface as well, without which it's impossible to have full control of the device. I much prefer the Linux model: The webcam is an image capture device, nothing more. Every webcam works identically via a common API. If I remove one and plug in another, capabilities of the hardware aside, nothing changes. That's precisely how I like it. Mon, 10 Aug 2009 16:43:35 +0000 Then there are no point and case is closed, right? https://lwn.net/Articles/346086/ https://lwn.net/Articles/346086/ khim <blockquote>Well, I am talking about a source level API, so I don't see your point really.</blockquote> <p>What makes API so much different from ABI? In my experience breakage occurs not at format ABI/API level, but at level of semantic: old driver presume that something is done in some specific way and it does not work in exactly this way after small fix in kernel (I've personally seed cases where driver stopped working with NP4SP5=>NT4SP6 and XPSP1=>XPSP2 upgrades) - at that point the only solution is some person who can maintain driver... and if you have such person why do you need stable ABI or API?</p> <blockquote>Plus, I disagree with your example.</blockquote> <p>How can you disagree with truth?</p> <blockquote>The vast majority of drivers did work between Windows versions. </blockquote> <p>The wast majority of drivers work with Linux out-of-the-box. Speaking as a Linux user.</p> <blockquote>I was asked to troubleshoot a Debian Lenny image on a new batch of POS machines. Well, guess what, Lenny's kernel 2.6.26 does not support the network adapter (Intel 82567LM-3).</blockquote> <p>How is it different from my example above - where Windows XP SP2 broke drivers for Pinnacle DV500?</p> <blockquote>So, WTF am I supposed to do?</blockquote> <p>You know the answer - you just refuse to resign yourself to it.</p> <blockquote>Should I perhaps install a newer kernel version?</blockquote> <p>Yes. Either that or ask your vendor for older motherboard.</p> <blockquote>What about security updates?</blockquote> <p>What about them? Latest version of kernel always have the latest version of security updates applied - it's up to your distribution to package them.</p> <p>Remember that bug in driver can make your system volnerable (<a href="http://lwn.net/Articles/300202/">case to the point</a> - and conveniently it's about e1000 as well) so there are only two ways to live:<br /> 1. Use drivers from your distribution kernel (and forgo latest and greatest hardware), or<br /> 2. Use latest and greatest version of kernel (and live with possible bugs).</p> <p>Both approaches don't need any stable API or ABI...</p> <p>P.S. Infromation from Windows campus agrees with me: substantial percentage of problems with the (in)famous Windows (un)stability are caused by drivers.</p> Sun, 09 Aug 2009 11:46:20 +0000 out of tree https://lwn.net/Articles/345953/ https://lwn.net/Articles/345953/ Los__D <div class="FormattedComment"> This is not much different on Windows.<br> <p> Stupid devices which needs stupid programs to do what a perfectly capabable standard Windows configuration tool should be doing seems to be more the rule that the exception.<br> <p> - The worst part is that Windows seems to support that ridiculous way of doing it. i.e. the Wi-Fi configuration tool has an option to transfer control to a 3rd party program.<br> <p> (To be fair, this seems to be getting a bit less frequent lately).<br> </div> Fri, 07 Aug 2009 22:31:57 +0000 GNU + Linux = broken development model https://lwn.net/Articles/345922/ https://lwn.net/Articles/345922/ poison <div class="FormattedComment"> Just a few random unfiltered thoughts that popped up while reading through <br> this thread. Please forgive me^^<br> * What do you mean no stable API? I will spend WAY more time adapting to <br> API changes compared to implementing the features myself and weeding out <br> most bugs? WHY ON EARTH SHOULD I USE IT?<br> * Innovation through rewriting and completely breaking APIs? Ok, I've done <br> rewrites. They involved MAJOR changes to requirements. What was your <br> reason? The new API was neater? Was the performance improvement anywhere <br> near measurable and not achievable without breaking the API so badly? Was <br> the design so bad you couldn't implement the features on top? Oh wait, <br> Linux folks have some strange analogies with software design/biology and <br> religious nuts. I don't get the comparison but apparently it's a religious <br> stance that thinking about requirements and laying out an API that could <br> sustain a a year or two is a bad idea compared to writing some fugly code <br> that nobody would touch and then rewriting it every few months. Who cares, <br> it works (somehow).<br> * ... Abstraction? Whats that? Oooh, right ... forget about it.<br> * Out of tree is easier? Hows that? In case refactoring is REQUIRED, <br> wouldn't it be easier if everything is in place?<br> * OOOh ... out of treeeeee! The things that disappear into the mist once <br> you upgrade to a new kernel version. What? Recompiling won't help? The API <br> is gone? Not maintained? Oh well ... I'll just buy a new card.<br> * Windows? Like on a submarine? As soon as you open one the trouble <br> starts? The blue thingy thats so stable you have to reboot your server <br> every week? (Of course except you do nothing at all with it except letting <br> it sit there and brag about how stable it is.) At least it has a stable <br> ABI. Oh to hell with a stable ABI, I just want a stable API!<br> * Companies MAINTAINING ...? Sure that'll help sales. Maintaining drivers <br> for 10 year old hardware! Lots of profits!<br> * Standard Interfaces? The ones that get replaced all the time? (Wait ... <br> I was already there, wasn't I?)<br> * Beer.<br> <p> </div> Fri, 07 Aug 2009 18:57:12 +0000 Then there are no point and case is closed, right? https://lwn.net/Articles/345849/ https://lwn.net/Articles/345849/ deleteme <div class="FormattedComment"> But the e1000 driver is in the tree as well, right? Which has been stated before in this thread, it's nice to have the source directly from the vendor as well.<br> </div> Fri, 07 Aug 2009 14:34:31 +0000 Please https://lwn.net/Articles/345846/ https://lwn.net/Articles/345846/ efexis <div class="FormattedComment"> The wrongness of one doesn't increase the rightness of another, and the politeness of another isn't a prerequisite for the politeness of oneself. I must say I rather see a single inpolite message in a thread than many, and many others here agree, which is why we prefer for people not to sink to squabble. I think it's fair enough to point that out. There's always LKML and slashdot for flamefests :-)<br> </div> Fri, 07 Aug 2009 14:14:58 +0000 GNU + Linux = broken development model. https://lwn.net/Articles/345833/ https://lwn.net/Articles/345833/ efexis <i>"Why else should Windows needs exponentially more resources with each release?"</i><br> <br> Sloppy development, greater number of features we're greater for, and greater number of features that we're really really not.<br> <br> Windows uses subsystems for different API sets (whether it's dos, posix, win16, win32, .net etc) that are loaded on use, with backward compatibility confined within the subsystem, or even different versions of the library or live patching. MS are also always pushing their newest 'bestist' API sets, which means if you're not running old software, you tend to not be needing to load the old APIs (you can have windows run with win16/dos support completely removed for example) so there's no extra resource requirement there... and if you are running old software, then of course you need the old support.<br> <br> Win7 looks to have lower requirements than Vista (I can even run it on my laptop, something I couldn't dream of with Vista), but still, it's much slower for basic functionality than my 2003 install. Basic stuff like recursive file meta data scanning, more progress bars (which require two-pass operations, one to find out how much stuff there is to be done, and the second to do it) slows down the UI. Services to control CPU scheduling for media applications adds complexity there, as do the various annoyance^H^H^H^H^H^H^H^H^Hsecurity services. It's genuine complexity of the OS combined with less than optimal coding that makes it chug, backward compatibility cruft really isn't as big a player as you might think. Fri, 07 Aug 2009 11:24:38 +0000 GNU + Linux = broken development model https://lwn.net/Articles/345831/ https://lwn.net/Articles/345831/ efexis <i>"(This is a blatant, content-free, troll.)"</i><br> <br> You kiddin? That's the most helpful thing I've read this thread! :-) Fri, 07 Aug 2009 11:01:30 +0000 Why not fix the tty interface? https://lwn.net/Articles/345668/ https://lwn.net/Articles/345668/ forthy <p>Yes, I remember that when I started writing a Forth on Unix nearly 20 years ago. The tty interface is broken. Fundamentally. It's not even fixable. Give me a proper tty interface instead, and dump the old one. Write a CUSE driver for legacy applications.</p> <p>Points I have to complain:</p> <ul><li>Obtain cursor position - impossible when the user types in something at the same time, due to inherent race condition. The root cause of this problem is terminal emulation. Whoever wants terminal emulation should link to /lib/libvt100.so or whatever terminal he likes to have.</li> <li>raw/cooked mode and modes that persist over application changes: This is insane. Give everybody raw terminal access by default and whoever wants it cooked should link to /lib/libkitchen.so.</li></ul> <p>The Forth terminal model (that's what I wanted to adapt to Unix, and still haven't found a way to do that stable and bug-free) is quite simple: You can type text (which can be completely uninterpreted plain characters), you can send a carriage return, clear the screen, position the cursor, query the cursor position, (even more advanced: also the size of the terminal; setting colors and styles would also be advanced), check if there's a keyboard event available, obtain one and dispatch what type of event that is (character, function key - note that the terminal event model makes the terminal side of the pty a symmetric task to writing the client side). This separates terminal data (text) from terminal metadata (formatting, cursor positions, colors), and therefore is sane interface design. Each of the functions does exactly one thing, and does it right. Writing a Forth terminal driver for raw hardware (or just GUI emulation) is a piece of cake. Writing it for Unix is a PITA. If it is more complicated to do it through the OS than without, there's something seriously wrong with the OS.</p> <p>If you happen to have a real terminal (old greenish CRT attached to a RS232 cable), you have to translate the metadata into data, and adapt to the terminal emulation (vt100 or any other of 1000 terminal "standards"). This ought to be an intermediate layer, provided by the system, not by the application. In Unix, you can't position the cursor just by calling an ioctl(). You have to use termcaps to find out which arcane set of string will position the cursor for you, or use one or the other arcane library ([n]curses is arcane) to do it for you.</p> Thu, 06 Aug 2009 15:27:05 +0000 out of tree https://lwn.net/Articles/345597/ https://lwn.net/Articles/345597/ farnz <p>I'm generalising from experience of 15 to 20 vendors, of whom only a couple had their drivers upstreamed. The remainder simply did not understand why (to use some examples) I didn't want to use their vendor- specific DVB-T tuning interface instead of Linux's DVB API, or their vendor-specific video capture interface instead of V4L2. <p>However, I recognise that my experience may be atypical; I therefore mention that I base this on personal experience, so that if I've just had bad luck with vendors, other people can point out vendors who get it right. Thu, 06 Aug 2009 08:10:37 +0000 out of tree https://lwn.net/Articles/345583/ https://lwn.net/Articles/345583/ lysse <div class="FormattedComment"> <font class="QuotedText">&gt; this is from direct personal experience</font><br> <p> So why are you generalising from it?<br> </div> Thu, 06 Aug 2009 06:28:04 +0000 Then there are no point and case is closed, right? https://lwn.net/Articles/345517/ https://lwn.net/Articles/345517/ mikov <blockquote>Sure. And we have many OSes which promised and failed to deliver that: Windows, Solaris, etc. It just does not work. Drivers from NT don't work in Windows 2000, drivers from Windows 2000 crash the Windows XP, drivers from Solaris 8 are unusabel in Solaris 10, etc.</blockquote> <p>Well, I am talking about a source level API, so I don't see your point really. Plus, I disagree with your example. The vast majority of drivers did work between Windows versions. Speaking both as a user and as an ex-Windows kernel developer. <blockquote>What I do see is the wish to reduce number of problems for manufacturers by increasing number of problem for users and developers - and I can not agree that it's good idea.</blockquote> <p>I am sorry but you are dead wrong. Very ironically just today (about hald an hour ago) I encountered exactly the problem I am describing. <p>I was asked to troubleshoot a Debian Lenny image on a new batch of POS machines. Well, guess what, Lenny's kernel 2.6.26 does not support the network adapter (Intel 82567LM-3). <p>So, WTF am I supposed to do? All the "wisdom" against out-of-tree drivers and stable API expressed in the numerous responses does not help me a bit! Should I perhaps install a newer kernel version? Huh? What about security updates? Backport a driver from 2.6.28? I don't have time to do that, and I am not a network driver expert. <p>Fortunately for me, Intel maintains an out-of-tree driver at http://e1000.sf.net/ . An out of tree driver saved the day! As usual and as expected. <p>Unless somebody can offer me a better solution than this out-of-tree driver, I don't see how the arguments carry any weight. Wed, 05 Aug 2009 22:17:29 +0000 Then there are no point and case is closed, right? https://lwn.net/Articles/345479/ https://lwn.net/Articles/345479/ khim <blockquote>The point of a stable API is precisely that - to continue using the same source with the newer OS-es which are currently supported.</blockquote> <p>Sure. And we have many OSes which promised and failed to deliver that: Windows, Solaris, etc. <b>It just does not work</b>. Drivers from NT don't work in Windows 2000, drivers from Windows 2000 crash the Windows XP, drivers from Solaris 8 are unusabel in Solaris 10, etc.</p> <p>Right now Linux supports more hardware then Windows - sure, the "latest and greatest" gadgets are supported by "latest and greatest" release of Windows only, but sheer number is on Linux side.</p> <p>Stable OS (not stable API, but stable OS - I certainly remember cases where switch from NT4SP5 to NT4SP6 was impossible because drivers had no suppoort for this version) makes support for some hardware easier and for some hardware harder (recall NT4 and USB, for example, then do the same with Pixel Shaders 4), so I see no huge advantages either way.</p> <p>What I <b>do see</b> is the wish to reduce number of problems for manufacturers by increasing number of problem for users and developers - and I can not agree that it's good idea.</p> <p>If you want to make life easier then implement stable API where it naturally exist anyway: on the border between your hardware and my hardware!</p> Wed, 05 Aug 2009 19:40:15 +0000 out of tree https://lwn.net/Articles/345463/ https://lwn.net/Articles/345463/ farnz <p>Hauppauge cards tend to work out of the box with a recent enough kernel; when they don't, Hauppauge employees are happy to help you make the cards work. Other vendors cards require developer time to make work, and attempts to get the vendor to help tend to be fruitless (they have their own out of tree driver that doesn't work well, due to reinvention of interfaces, and don't understand why you won't simply rewrite your userspace to match their driver). <p>Developer time is hugely expensive, as we don't have much to spare; given the choice between a small amount of extra money per card (to the vendor), or developer time, we'd rather pay. If you're a vendor, looking to expand, this is a market, and it has money to spend on you. Wed, 05 Aug 2009 18:45:34 +0000 out of tree https://lwn.net/Articles/345446/ https://lwn.net/Articles/345446/ johnflux <div class="FormattedComment"> <font class="QuotedText">&gt; I don't quite follow. Can you please clarify a bit? Why do the other cards need huge amounts of money? Also, you are saying that Hauppauge is more expensive because it has to support Linux. So, how is that a good thing?</font><br> <p> I think his point was that his company was willing to pay extra just for linux support. So Hauppauge was able to charge more money, and still get his custom. Whereas the companies that didn't support Linux didn't get his business.<br> <p> From a business point of view, if the money that a company loses because of their lack of linux support is greater than the cost of opening the specs or writing the drivers, then the company should write Linux drivers. The poster was providing anecdotal evidence to indicate that they believe that this is the case for some (most?) companies.<br> <p> On a personal note, I think companies perceive the cost of opening their drivers to be far higher than it really is. <br> </div> Wed, 05 Aug 2009 18:15:04 +0000 out of tree https://lwn.net/Articles/345401/ https://lwn.net/Articles/345401/ mikov <blockquote>It is a problem in Windows, too; for example, very few graphics card drivers support Windows native screen rotation in XP - you need to use a vendor utility instead. </blockquote> <p>I don't want to defend Windows, but IIRC that is technically wrong. Unless I am mistaken, XP does not support native screen rotation. It was introduced in Vista. <p>I do agree with your general point that you can't rely on the vendors to "do the right" thing. Vendors do suck. I have seen really really horrible disgusting things working with closed source drivers. But this is an impossible battle. You can't require all developers for your OS to be perfect. People will do whatever they want to do. The best you can do is give them tools encouraging them in the right direction. Plus, hopefully GPL will shame them into better code. <p>Look at Google Android. They are basically doing whatever they want with the kernel and not bothering to submit anything back. <blockquote>They didn't keep the graphics driver API the same from NT 3.1 to Windows XP. Newer OSes cannot run graphics cards using older drivers, pure and simple. No different to Linux, in that respect.</blockquote> <p>I am sorry but that is not quite true either. In a previous life I used to do Windows kernel development, and graphics drivers specifically. I have ported drivers from NT4 to W2K and WXP. The API remained backwards compatible and even binary compatible. <p>In NT4 they did a fundamental architectural change by moving the drivers into the kernel, but the source level API remained compatible with NT 3.51. <blockquote>And note that vendors do need to bring the Linux community on board - my employer alone buys a significant number of TV capture cards a month, on condition that they are supported under Linux. We pay a slight premium to buy Hauppauge cards because of the Linux support; other vendors are £5/card cheaper, but cost huge amounts of money in expensive developer time keeping the card going. </blockquote> <p>I don't quite follow. Can you please clarify a bit? Why do the other cards need huge amounts of money? Also, you are saying that Hauppauge is more expensive because it has to support Linux. So, how is that a good thing? Wed, 05 Aug 2009 18:05:18 +0000 out of tree https://lwn.net/Articles/345332/ https://lwn.net/Articles/345332/ farnz <blockquote> > The thing is, and this is from direct personal experience, companies > maintaining out of tree drivers don't put their driver through the Linux > code review process; as a result, they ignore standard Linux interfaces > in favour of inventing their own. I have no opinion about this because I haven't personally experienced it, but I believe you. But why isn't this a problem in Windows? </blockquote> <p>It is a problem in Windows, too; for example, very few graphics card drivers support Windows native screen rotation in XP - you need to use a vendor utility instead. The difference is that Windows users are used to this, and don't complain as loudly about it. It's becoming less of an issue as things like USB standardize more and more device classes, and manufacturers use the standard classes, because that means that the device is Plug And Play under currently shipping Windows systems (Vista, future Windows 7 installs). <blockquote> > Add to that the fact that they lose interest in maintaining their driver > at all when they've moved onto the new shiny (in the case of one vendor > I've dealt with, the driver stops being maintained as soon as they have > a new chip out, even though they're still selling the old chip), and the > fact that I don't have the time to do more than bugfix drivers that have > already been ported to new APIs, and I find myself thinking that all the > advantages you claim for out of tree drivers are disadvantages from my > perspective. Agreed, but what is your point? You are describing exactly the problems caused by a lack of stable API. Vendors do not want to maintain drivers for hardware which they no longer sell, because it is a never ending cycle of completely pointless but expensive work (from their standpoint). That would not be the case if there was a stable API. </blockquote> <p>Oops - my bad. I forgot to mention that the case in question was migrating from NT4 to XP in an embedded product. We could still buy the chips in question, but the NT4 driver didn't work in XP, even after we recompiled it against the new DDK (don't know why - I thought there was a stable API?). We ended up having to buy new ASI capture chips, and scrapping the older hardware. <blockquote> > reminds me of a > subset of nVidia graphics card owners, who complain bitterly (regardless > of technical reasons) when X.org releases a new version of the X server > that isn't backwards compatible with the ancient version of the nVidia > drivers that supports their older hardware; I would like to see an open source Nvidia driver as much as the next guy, but I have to disagree with you. How did Microsoft manage to keep their graphics driver API the same from NT 3.1 to Windows XP? To think that it is a bad thing is to ignore reality. </blockquote> <p>They didn't keep the graphics driver API the same from NT 3.1 to Windows XP. Newer OSes cannot run graphics cards using older drivers, pure and simple. No different to Linux, in that respect. <p>And note that vendors <b>do</b> need to bring the Linux community on board - my employer alone buys a significant number of TV capture cards a month, on condition that they are supported under Linux. We pay a slight premium to buy Hauppauge cards because of the Linux support; other vendors are £5/card cheaper, but cost huge amounts of money in expensive developer time keeping the card going. Wed, 05 Aug 2009 10:32:42 +0000 A tempest in a tty pot https://lwn.net/Articles/345236/ https://lwn.net/Articles/345236/ nix <div class="FormattedComment"> The fact remains that POSIX does not require process exit signal / TTY <br> flush synchronization, and I know of no Unix that ensures that these <br> things are synchronized. Your musings about what constitutes 'the device' <br> are thus not terribly relevant. The system simply does not work the way <br> you would like it to (and the way some app authors assume).<br> <p> </div> Tue, 04 Aug 2009 21:06:39 +0000 out of tree https://lwn.net/Articles/345222/ https://lwn.net/Articles/345222/ mikov <div class="FormattedComment"> <font class="QuotedText">&gt; The thing is, and this is from direct personal experience, companies</font><br> <font class="QuotedText">&gt; maintaining out of tree drivers don't put their driver through the Linux</font><br> <font class="QuotedText">&gt; code review process; as a result, they ignore standard Linux interfaces</font><br> <font class="QuotedText">&gt; in favour of inventing their own.</font><br> <p> I have no opinion about this because I haven't personally experienced it, but I believe you. But why isn't this a problem in Windows?<br> <p> <font class="QuotedText">&gt; Add to that the fact that they lose interest in maintaining their driver</font><br> <font class="QuotedText">&gt; at all when they've moved onto the new shiny (in the case of one vendor</font><br> <font class="QuotedText">&gt; I've dealt with, the driver stops being maintained as soon as they have</font><br> <font class="QuotedText">&gt; a new chip out, even though they're still selling the old chip), and the</font><br> <font class="QuotedText">&gt; fact that I don't have the time to do more than bugfix drivers that have</font><br> <font class="QuotedText">&gt; already been ported to new APIs, and I find myself thinking that all the</font><br> <font class="QuotedText">&gt; advantages you claim for out of tree drivers are disadvantages from my</font><br> <font class="QuotedText">&gt; perspective.</font><br> <p> Agreed, but what is your point? You are describing exactly the problems caused by a lack of stable API. Vendors do not want to maintain drivers for hardware which they no longer sell, because it is a never ending cycle of completely pointless but expensive work (from their standpoint). That would not be the case if there was a stable API. <br> <p> First, it would be very cheap for them to continue the maintenance, so they would likely do it. Second, even if they didn't, the driver should just continue to work. And lastly, a volunteer can pick it up at any moment.<br> <p> <font class="QuotedText">&gt; I want one place to go to for drivers. Not twenty trees, but the one</font><br> <font class="QuotedText">&gt; tree on kernel.org. I have found it easier to backport drivers from</font><br> <font class="QuotedText">&gt; 2.6.30 to 2.6.23 than to integrate vendor drivers, so I would prefer in-</font><br> <font class="QuotedText">&gt; aiming to move into the tree (before GregKH's staging area), and that</font><br> <font class="QuotedText">&gt; was quite enough pain.</font><br> <p> Well, that is you but you are the exception. 99.9% of the Linux users and most of the developers can't backport a driver. While I personally also could do it, there is more than that - for example I don't really have time or support such backported driver in a business setting. <br> <p> There is definite value in a central repository for drivers. The problem with the current approach is that the release cycles of all drivers are tied together. Ideally I would like to see a central repository where vendors are free to upload their drivers whenever they want.<br> <p> <font class="QuotedText">&gt; I'm also afraid that your admission that you're stuck on an old kernel</font><br> <font class="QuotedText">&gt; due to an out-of-tree driver from your board vendor [...]</font><br> <p> I have never said that. I mentioned a problem where newer webcam drivers are only available for new kernels. This has nothing to do with in-tree vs out-of-tree drivers; it is precisely a matter of lack of stable API.<br> <p> It seems that many people who responded negatively to my comments here are confusing a couple of related by separate issues:<br> <p> * Stable API. It is equally beneficial to in-tree and out-of-tree drivers because in either case it decreases the maintenance burden. In fact contrary to the common wisdom, a stable API gives more freedom to core developers to make changes because they can keep them isolated behind the facade of the stable API.<br> <p> * In-tree vs out-of-tree drivers. It is true that a stable API decreases the incentive to submit drivers to the kernel because the "free maintenance" red herring is gone. But if people perceive value in having a central point for driver development, there is nothing stopping them. <br> <p> * Closed source drivers. This is completely unrelated to a stable source level API. They are prohibited by the kernel license and suffer from their well known problems. <br> <p> <font class="QuotedText">&gt; reminds me of a</font><br> <font class="QuotedText">&gt; subset of nVidia graphics card owners, who complain bitterly (regardless</font><br> <font class="QuotedText">&gt; of technical reasons) when X.org releases a new version of the X server</font><br> <font class="QuotedText">&gt; that isn't backwards compatible with the ancient version of the nVidia</font><br> <font class="QuotedText">&gt; drivers that supports their older hardware; </font><br> <p> I would like to see an open source Nvidia driver as much as the next guy, but I have to disagree with you. How did Microsoft manage to keep their graphics driver API the same from NT 3.1 to Windows XP? To think that it is a bad thing is to ignore reality. <br> <p> <font class="QuotedText">&gt; I do feel that you should be</font><br> <font class="QuotedText">&gt; exerting pressure on your vendor to make this happen, either by getting</font><br> <font class="QuotedText">&gt; their drivers into the kernel, or getting them to step up and do the</font><br> <font class="QuotedText">&gt; work of maintaining a stable in-kernel API. It's not going to come for</font><br> <font class="QuotedText">&gt; free, so why shouldn't the people who want such an API do the work of</font><br> <font class="QuotedText">&gt; maintaining it?</font><br> <p> Agreed in theory. But you are forgetting that these vendors don't need to support Linux at all. It is less than 1% of their market, but it takes more work to support that Windows. So, why the hell would they do it at all? <br> <p> So, they don't have to do anything. It is not their problem. If the Linux community wants to bring these vendors fully on board, it should make it easy for them. Easier than Windows. The major factor for "easiness" is stable APIs. <br> </div> Tue, 04 Aug 2009 20:51:56 +0000 GNU + Linux = broken development model https://lwn.net/Articles/345211/ https://lwn.net/Articles/345211/ mcmanus <i>I've not personally come across single application which works in XP but not Vista.</i> <p> Here's a good one: http://msdn.microsoft.com/en-us/library/aa376635%28VS.85%29.aspx <p> Packet Filtering Functions <p> [These functions are available for use in the operating systems listed in the Requirements section for each function. In Windows Server "Longhorn", these functions return ERROR_CALL_NOT_SUPPORTED. The MprConfigInterfaceTransportSetInfo function and the Windows Filtering Platform API Management Functions provide similar functionality.] <p> Tue, 04 Aug 2009 17:43:23 +0000 GNU + Linux = broken development model https://lwn.net/Articles/345188/ https://lwn.net/Articles/345188/ nye <div class="FormattedComment"> I've not personally come across single application which works in XP but not Vista. The primary problem with Vista is that it's noticeably slower.<br> <p> Comparing 95/98 with XP/Vista is fairly absurd. They're not different versions of the same OS; they're completely different OSes which both have very-nearly compatible implementations of some important APIs, most notably win32. In fact, come to think of it, I can't name a single win32 application that works in Windows 95 and not Vista. The only applications that have broken along the way either interact with the OS at a lower level, or are 16-bit, or actually DOS applications. That would be a bit like expecting Linux to provide perfect binary compatibility with Minix.<br> <p> The only substantiated bitching I've heard has been about drivers, but you were talking about userland apps; I contend that the number of broken userland apps is vanishingly small.<br> </div> Tue, 04 Aug 2009 16:02:35 +0000 A tempest in a tty pot https://lwn.net/Articles/345111/ https://lwn.net/Articles/345111/ alex_the_d <div class="FormattedComment"> <font class="QuotedText">&gt; The device and buffering for it are kernel entities.</font><br> <p> No, 'kernel entities' are 'device driver(s)'. THE device is that beige box on the table or a piece of <br> code emulating it (emacs).<br> </div> Tue, 04 Aug 2009 08:46:21 +0000 out of tree https://lwn.net/Articles/345114/ https://lwn.net/Articles/345114/ farnz <p>The thing is, and this is from direct personal experience, companies maintaining out of tree drivers don't put their driver through the Linux code review process; as a result, they ignore standard Linux interfaces in favour of inventing their own. <p>Add to that the fact that they lose interest in maintaining their driver at all when they've moved onto the new shiny (in the case of one vendor I've dealt with, the driver stops being maintained as soon as they have a new chip out, even though they're still selling the old chip), and the fact that I don't have the time to do more than bugfix drivers that have already been ported to new APIs, and I find myself thinking that all the advantages you claim for out of tree drivers are disadvantages from my perspective. <p>I want <b>one</b> place to go to for drivers. Not twenty trees, but the one tree on kernel.org. I have found it easier to backport drivers from 2.6.30 to 2.6.23 than to integrate vendor drivers, so I would prefer in- aiming to move into the tree (before GregKH's staging area), and that was quite enough pain. <p>I'm also afraid that your admission that you're stuck on an old kernel due to an out-of-tree driver from your board vendor reminds me of a subset of nVidia graphics card owners, who complain bitterly (regardless of technical reasons) when X.org releases a new version of the X server that isn't backwards compatible with the ancient version of the nVidia drivers that supports their older hardware; I do feel that you should be exerting pressure on your vendor to make this happen, either by getting their drivers into the kernel, or getting them to step up and do the work of maintaining a stable in-kernel API. It's not going to come for free, so why shouldn't the people who want such an API do the work of maintaining it? Tue, 04 Aug 2009 08:06:19 +0000 out of tree https://lwn.net/Articles/345095/ https://lwn.net/Articles/345095/ mikov <div class="FormattedComment"> Yeah right. Which parts of your Mac did you buy from a different hardware vendor?<br> </div> Tue, 04 Aug 2009 04:47:33 +0000 out of tree https://lwn.net/Articles/345085/ https://lwn.net/Articles/345085/ foom <div class="FormattedComment"> I'm pretty sure I don't use any 3rd party drivers on my Mac laptop, and I certainly haven't missed <br> them or thought MacOS was not ready-for-the-desktop because of it...<br> </div> Tue, 04 Aug 2009 00:38:46 +0000 out of tree https://lwn.net/Articles/345083/ https://lwn.net/Articles/345083/ mikov <blockquote>the people that you need to convince are not here, you need to go elsewhere to convince them.</blockquote> <p>Do you mean this in the sense "shut up and go away"? <p>I don't want to convince anybody. I think that a stable API is a lost cause, like Linux on the desktop, or Linux gaming. It is time to wake up and smell the flowers. The desktop PC is almost gone. <p>I am curious about intelligent objections against a stable API, but I am not crazy to go get flamed on LKML. (If you do a search, there have been others, brave or stupid enough to post about a stable API there. LOL. Poor suckers. They deserved what was coming to them.) <p>The people who would need convincing are the big companies who pay for Linux kernel development. It is more than a bit naive to think that volunteers in their free time can influence Linux at this point of its development. But I have a pretty good theory why RedHat, Novell, etc, aren't interested in a stable API. Mon, 03 Aug 2009 23:55:21 +0000 out of tree https://lwn.net/Articles/345082/ https://lwn.net/Articles/345082/ mikov <blockquote>Why can't it be upgraded? Because of an out-of-tree driver? :-D</blockquote> <p>Laugh all you want :-) But it is a real problem that should not exist... Ignoring it doesn't make it any less important for the developers and users of this product.</p> <blockquote>I find that unlikely :-) I've bought 4 webcams randomly, 2 built into laptops, and all just worked in linux. </blockquote> <p>Well, I am not making it up. BTW, I am running Kubuntu LTS and Debian Stable on my desktops. Perhaps you see my problem? ;-) <blockquote>Nah, I meant that if I re-install, for an unrelated reason, then I have trouble getting the drivers.</blockquote> <p>Well, that is the problem of closed source, no argument from me there. <p>BTW, you can still save the drivers. You have to copy the INF file and the files referenced from it and you can reinstall them on a new system without any tricks. Some things in Windows really are that easy :-) Mon, 03 Aug 2009 23:38:35 +0000 A tempest in a tty pot https://lwn.net/Articles/345078/ https://lwn.net/Articles/345078/ nix <div class="FormattedComment"> The process of sending the data through a pty or tty is desynchronized <br> from the state of the process doing the sending. If a process sends data, <br> then exits, it can be gone (and SIGCHLD fired) *long* before the buffers <br> are flushed to the receiving app. This has always been true (I first <br> remember noticing it on SunOS 4, but it was old even then) and is <br> essential for good performance over slower lines or under high load.<br> <p> (Emacs is not the device. The device and buffering for it are kernel <br> entities. Emacs is merely the entity on the *master side* of the device.)<br> <p> </div> Mon, 03 Aug 2009 22:30:14 +0000 out of tree https://lwn.net/Articles/345075/ https://lwn.net/Articles/345075/ johnflux <div class="FormattedComment"> Well, you are implying that it is somehow "bad" to have an existing working GPL driver, which just happens to be out of tree.<br> <p> _Compared_ to having it in tree. That's all I've ever said.<br> <p> <font class="QuotedText">&gt; That is the fallacy. In fact it cannot possibly negatively affect the desired outcome, which is to have a working driver.</font><br> <p> Compared to not having it at all, sure.<br> <p> <p> <font class="QuotedText">&gt; That is a funny example because I have exactly the opposite experience with an embedded project. It is not possible to buy a working camera for it because its kernel can't practically be upgraded.</font><br> <p> Why can't it be upgraded? Because of an out-of-tree driver? :-D<br> <p> <font class="QuotedText">&gt; And even with a modern kernel, I can't find a single webcam from Fry's to work on my Linux desktop.</font><br> <p> I find that unlikely :-) I've bought 4 webcams randomly, 2 built into laptops, and all just worked in linux.<br> <p> <font class="QuotedText">&gt; I don't get it. Why would you have to re-install Windows for a single driver? </font><br> <p> Nah, I meant that if I re-install, for an unrelated reason, then I have trouble getting the drivers.<br> </div> Mon, 03 Aug 2009 22:29:10 +0000 out of tree https://lwn.net/Articles/345074/ https://lwn.net/Articles/345074/ dlang <div class="FormattedComment"> what makes you think that the pool of developers to maintain the drivers in the kernel is finite while the pool of drivers is not?<br> <p> the number of people who contribute to the kernel continues to grow.<br> <p> you believe that the unstable API is a drawback, many others believe that is is a strength.<br> <p> the people that you need to convince are not here, you need to go elsewhere to convince them.<br> </div> Mon, 03 Aug 2009 22:19:49 +0000 out of tree https://lwn.net/Articles/345070/ https://lwn.net/Articles/345070/ mikov <blockquote>There's no logical fallacy there. I stated that an out-of-tree driver requires a lot of work to get into the kernel if it has to be done once the company has gone bankrupt, compared to if the driver was in the tree in the first place. But you're stating that an out-of-tree driver is easy than no driver at all which is true, but not really relevant to an in-tree or out-tree discussion. <p>I do get where you're coming from, but I do think that in the long run, Linux will have the bigger advantage of having all the drivers in tree.</blockquote> <p>Well, you are implying that it is somehow "bad" to have an existing working GPL driver, which just happens to be out of tree. That is the fallacy. In fact it cannot possibly negatively affect the desired outcome, which is to have a working driver. <p>I actually think that there should be no drivers in tree. That is an unmanageable situation - keeping all possible drivers in one monolithic source tree, and upgrading them at every kernel release. It should be obvious that this simply cannot scale. You cannot expect a finite number of developers to maintain a potentially infinite number of drivers for ever. <blockquote>The other day, for example, I need to get a webcam working on an ARM device. In linux it was easy because all the drivers were just there. I plugged in the webcam and it just worked. That sort of thing is simply not possible in Windows.</blockquote> <p>That is a funny example because I have exactly the opposite experience with an embedded project. It is not possible to buy a working camera for it because its kernel can't practically be upgraded. And even with a modern kernel, I can't find a single webcam from Fry's to work on my Linux desktop. <p>AFAIK, there is a very high turnover rate with webcam chips, so it simply does not make economic sense to maintain a driver for hardware whose life is 6 months. Now, if only there was a stable driver API ... :-) <blockquote>Likewise I dread re-installing Windows because the drivers for my wireless card are difficult to get. The company that made the drivers has since gone and their website is now down.</blockquote> <p>I don't get it. Why would you have to re-install Windows for a single driver? <p>Let's for a second forget about the labels Linux and Windows and look at it as impartial scientists performing an experiment. We have "OS A" which owns 99% of a market, and "OS B" which has 0.5% and doesn't seem to be growing even though it is <b>much cheaper</b> (!?!). What reasons could we have, as impartial scientists, to believe that "OS B" is somehow superior? <p>Personally I obviously think that Linux is superior in many respects, or I wouldn't be here. But I am sure that that it is <i>despite</i> the lack of stable API, not <i>because</i> of it. Mon, 03 Aug 2009 22:14:25 +0000 out of tree https://lwn.net/Articles/345052/ https://lwn.net/Articles/345052/ johnflux <div class="FormattedComment"> <font class="QuotedText">&gt; I am sorry but this is a logical fallacy. This volunteer is free to develop a driver of his own using his superior coding standards from day one. Plus, surely having an existing working driver is much better than starting from scratch. </font><br> <p> There's no logical fallacy there. I stated that an out-of-tree driver requires a lot of work to get into the kernel if it has to be done once the company has gone bankrupt, compared to if the driver was in the tree in the first place. But you're stating that an out-of-tree driver is easy than no driver at all which is true, but not really relevant to an in-tree or out-tree discussion.<br> <p> <p> I do get where you're coming from, but I do think that in the long run, Linux will have the bigger advantage of having all the drivers in tree.<br> <p> The other day, for example, I need to get a webcam working on an ARM device. In linux it was easy because all the drivers were just there. I plugged in the webcam and it just worked.<br> That sort of thing is simply not possible in Windows.<br> <p> Likewise I dread re-installing Windows because the drivers for my wireless card are difficult to get. The company that made the drivers has since gone and their website is now down.<br> <p> </div> Mon, 03 Aug 2009 20:08:30 +0000 out of tree https://lwn.net/Articles/345024/ https://lwn.net/Articles/345024/ mikov <blockquote>Out-of-tree drivers don't have to be GPL (well, that's a up to debate, but there are certainly proprietary drivers).</blockquote> <p>That is not really true. I am not aware of anything that allows a Linux kernel driver to be non-GPL. The only gray area is if the driver has been ported from another OS, and this is also questionable. I have seen more than one clear statement from Linus Torvalds on this subject. <p>There is no question that people violate the Linux GPL all the time. It is ethically disgusting (although I actually understand very well why they do it). <p>But in any case, a stable source API has not relevance to that problem. <blockquote>And even if it's GPLed, if it's out of tree then there's a good chance that it doesn't meet the coding standards for inclusion into the kernel - for example a company typically might have a single source for Windows and Linux, with hundreds of #ifdef's to switch between them. There is also often a custom build system, revision control system, etc.</blockquote> <p>And that is bad because? The current standards are needed because the kernel developers have to be able to "maintain" (more like coax into compiling) a mountain of drivers they don't care about. If the drivers are maintained by interested 3rd parties, it doesn't matter in the least, and those 3rd parties should choose whatever standards of their own they prefer. <blockquote>So this means that once the company goes bankrupt, some volunteer has to take code that he's probably never looked at before and undertake what could be a large task to clean up and adapt the driver for inclusion into the kernel.</blockquote> <p>I am sorry but this is a logical fallacy. This volunteer is free to develop a driver of his own using his superior coding standards from day one. Plus, surely having an existing working driver is much better than starting from scratch. <p>Look, I am well aware that the idea for a stable API is not popular and for sure I am not the best advocate for it. I actually don't think that a stable API will happen. But I also know what I am seeing in my professional life and it doesn't look good. <p>Also (sorry to repeat myself) it is clear to me that with the current situation Linux will <b>never</b> be really successful on the desktop. The stable API is just one of the several reasons for that, but it isn't a small one. Mon, 03 Aug 2009 17:48:46 +0000 A tempest in a tty pot https://lwn.net/Articles/345000/ https://lwn.net/Articles/345000/ clugstj <div class="FormattedComment"> Anything as "old/mature" as Emacs probably has other bad assumptions lurking in it. It should come as no surprise.<br> <p> Assuming an order between read() and signal reception is ALWAYS a bad idea.<br> </div> Mon, 03 Aug 2009 13:02:02 +0000 Greg KH steps up as the TTY maintainer https://lwn.net/Articles/344987/ https://lwn.net/Articles/344987/ csamuel <p>Just merged by Linus:</p> <pre> commit 57d7f282271a83fe4ca4bd15eee79be577210210 Author: Greg Kroah-Hartman &lt;gregkh@suse.de&gt; Date: Fri Jul 31 21:28:16 2009 -0700 TTY: Maintainer change Clearly, I am a glutton for punishment. I'll see if I can see Alan's changes through to the end, otherwise I'll be fending off a lot of bug reports for usb-serial devices. Cc: Alan Cox &lt;alan@lxorguk.ukuu.org.uk&gt; Signed-off-by: Greg Kroah-Hartman &lt;gregkh@suse.de&gt; Signed-off-by: Linus Torvalds &lt;torvalds@linux-foundation.org&gt; </pre> Mon, 03 Aug 2009 09:46:23 +0000 out of tree https://lwn.net/Articles/344984/ https://lwn.net/Articles/344984/ johnflux <div class="FormattedComment"> Out-of-tree drivers don't have to be GPL (well, that's a up to debate, but there are certainly proprietary drivers). And even if it's GPLed, if it's out of tree then there's a good chance that it doesn't meet the coding standards for inclusion into the kernel - for example a company typically might have a single source for Windows and Linux, with hundreds of #ifdef's to switch between them. There is also often a custom build system, revision control system, etc.<br> <p> So this means that once the company goes bankrupt, some volunteer has to take code that he's probably never looked at before and undertake what could be a large task to clean up and adapt the driver for inclusion into the kernel.<br> <p> <p> </div> Mon, 03 Aug 2009 06:38:29 +0000