you're assuming 1- all of the OS is accessed often enough to justify being "cached" on the SSD 2- no other code/data (apps...) is used more often than that. 3- users know how to do that, or Linux allows to do that in an intuitive way
My guess is, you're wrong on all counts. Hence the OP's question. Nice opportunity for Linux to show how it can integrate innovations faster than Windows:-p
And *you're* assuming that 1 - the OS is big enough to worry about Just checked, my / partition has 4.7GB on it, that's everything that's not/home or/boot in my case. To be safe I allocate 10GB for/. Just to be clear, that is every app I use, and I have tons of apps on there that I could get rid of if it were worth my time, but it's not, because that's a trivial amount of storage. 2 - The proposed scheme leaves any apps out, and that it's not flexible enough for you to trivially put data on the SSD. Obviously you aren't familiar with linux, this layout puts ALL your apps on the SSD by default. The only exception is if you build from source on your/home partition and don't bother to install the resulting app to the usual location. If you find yourself needing data cached on the SSD as well, you can just set up a partition for your special data on the SSD as well, it's trivial. 3 - users don't know how to do it, and Linux doesn't allow it to be done in an intuitive way. Every recent graphical installer I've seen has a section where you set up the layout for your partitions, and also an automatic setup that could trivially be adjusted to run some quick speed tests on the drives and use that to determine where to put the various partitions. In other words this approach has been available to those in the know for longer than SSDs have been around, so you do a very poor job of making your point.
A few problems with this approach, one is that the overhead of unionfs is not negligible. While I don't believe it's huge, it's still somewhat counterproductive to add another layer when you're talking about trying to improve performance. The main problem though is that unionfs just doesn't support that use case. The "lower" device is generally required to be read-only, which means you can't write through to the rotating disk. It's just a bad match.
I agree with you in general, but just one nit. "readahead tricks" can still give a boost to loading large amounts of data from a SSD. While the "small read" performance of a good SSD is orders of magnitude faster than the same scenario for rotating media, "large read" performance is still significantly faster than either, so if you can queue up lots of contiguous writes your operation will complete faster no matter what kind of media you have.
Yea, my first major move after college I ditched all the inoperative stuff (which was most of it), but now I'm maintaining a more streamlined and "useful" collection, the star of which is the AS800 I got from a friend for helping him move. It's probably going to be the firewall and misc network stuff box once I get around to configuring it properly. Had to spend about a week of evenings learning to speak AlphaBIOS getting it bootstrapped, haven't had time since then to make it do anything useful.
The way I see it, it's the same as anything else, with potential for either good or bad use. In the particular program being mentioned, it looks like it's a pretty positive thing.
1. It only comes into the picture after a conviction. 2. The focus seems to be on determining how best to help the person, not how much to punish them.
If they were using it for *severity* of sentencing, or as an aid to conviction, or even for filtering suspect lists, I think it would be questionable at best.
Yea, except the founding fathers weren't going around robbing liquor stores, they for the most part were "fine, upstanding citizens", up to the point when they decided to start inciting rebellion.
You have to take the bad with the good though, this kind of thing also wouldn't have done anything to stop Bernie Madoff from ripping off countless trusting investors. (yea I know, not literally countless, I don't feel like looking up the actual number)
Nice, I'm amazed that in all the articles and comments I've read about this specific issue I've never run across this approach. I think the disconnect is that generally users aren't thought of as people, but as some kind of threat to be protected against.
So do you manually select a policy for each user, or is the rotation period directly determined from the estimated strength of the password/passphrase?
Don't fight guys! There are plenty of I/O stalls to go around!
But seriously, in addition to the theoretical limits, I think the kernel level handling of a NUMA that is *this* non-uniform would require significantly higher sophistication in the cache-handling code than is currently available. Then again, I do tend to go a bit cross-eyed when I try to follow lkml discussions of cache coherency handling, so maybe it is sophisticated enough to handle it ok already.
As someone who runs FlashBlock on all of my computers, I find this hilarious. I understand that some people want tiny video playing at them all the time, and that's fine, but I have NEVER wanted flash when browsing.
To be clear, I consider "watching video" to be separate from "browsing", YMMV. Same disclaimer applies for "playing flash games". All other uses of flash I have encountered have been forced on me by the page author not providing an alternative. I have never *wanted* the "enhanced flash experience", I just want the content damnit.
Also, I'm not defending the iPad, I pretty much hate Apple. I'm just responding to the comment about flash.
Wrong. You have deprived them of time (definitely physical) and energy used in doing the labor (also definitely physical). So you have taken something physical away from them that they now no longer have, hence theft.
This isn't the case, what you are describing is a failure to pay for contract work, which law may consider to be a tangible good, though I'm skeptical about that.
When you're talking about copyright infringement, the producer has undertaken work speculatively in the hope that they will be able to sell copies of their work. According to your argument, people who simply do not buy the product have also stolen the work of the producer, but that is obviously not the case. (see arguments about AdBlock)
The theoretical ill that stems from copyright infringement is that the producer has lower profits, and decides not to produce any more creative works, not that he was deprived of profits.
This isn't necessarily the case, you don't make the decision to drive drunk when you are standing outside a bar looking at your car, you make that decision when you drive to a bar. The decision is to take mass transit or walk to the bar when available or go in a group with a designated driver.
The other side of this equation though is people who stay drunk for significant periods of time and decide to drive because their thinking is impaired. No idea how much this group contributes to drunk driving incidents.
Regardless, deterrents should be able to influence the first group at least. My perception of the problem is that deterrence is not great enough, it IS seen as "not a big deal" to drive after drinking. that seems to be changing somewhat, but not fast enough.
So here is the outline of their claims, with responses. Data gathering errors
Only one TCP connection is used
Basically valid, it's a pretty rare net activity nowadays that actually maxes out the connection by itself, no idea if the promises the ISPs make contractually include any wording about per-connection performance.
Client-server delay is variable
Tough, this is a reality of how the network operates, if an ISP promises speed X, they need to invest in the infrastructure necessary to deliver speed X.
Participants’ computers may be resource constrained
Outside of listing minimum requirements for client computers, this is also a reality of how the customer will perceive network performance, and this is the important measure.
Test traffic may conflict with home traffic
semi valid-ish point, but I'm skeptical that it has a noticeable impact.
Decimal math is incorrect
This one seems like utter crap, they seem to be assuming that the testing company is saying MB and meaning MiB in one case, but that they say MB and really mean MB in another case. It's far more likely that they are saying MB and they mean MiB in both cases, in which case this point is moot.
Protocol overhead is unaccounted for
Another semi-valid point, but they claim the testers have the responsibility to make the ISPs numbers look better, why isn't it instead the ISPs responsibility to make their numbers more meaningful? IIRC, speeds are often advertised on the basis of file downloads, which means the protocol overhead should NOT be accounted for. Data interpretation errors
Purchased speed tiers are incorrectly identified
This is probably the most significant claim, if true. However it's also the most wishy-washy of all the claims, going so far as to specifically state that it's the opinion of the company that it is even happening, rather than a factual claim:
"NetForecast estimates that it is highly likely that comScore incorrectly places many panelists' PCs into higher tiers than the subscribers purchased."
Overall, the report looks like a tiny bit of valid criticism of the testing methodology wrapped in a whole lot of weaseling about what the ISP should be expected to provide, and always siding with the ISP. The end result for me is that the validity of the entire report is fatally undermined by the obvious grasping at straws being done, and the impression that I get that if there were any errors in the opposite direction, they will not be reported.
Came in the thread just to search for "pencil", thank you for slightly improving my opinion of mankind.
-Only slightly, mind you, you're still just a bunch of Neanderthals who occasionally bang out an intelligible phrase by accident, but at least it's sometimes an amusing phrase.
Theoretically that's a good idea, but then you need a whole industrial complex in space, we're talking smelting, refining, forming, assembling, QA, etc... I don't think there's enough debris up there to make all that worthwhile, and hopefully we will be generating less space debris in the future, not more, so it won't be getting any "better" for your space recycling idea.
Now if we ever really did move to large scale manufacturing in earth orbit, probably based around captured asteroids, then that sort of scheme might be worthwhile, particularly for refining extremely rare materials that may have been used in satellite construction, but that day is really far off.
My personal largest problem, though, has to do with literacy. Though I'm quite skilled with language, excessive comma usage notwithstanding, I find that when trying to read about advanced math or physics principles on Wikipedia for example, I'll see a theorem written using symbols and functions that I know were covered in the math classes I had in high school but I can't look at those same symbols and functions and turn them into words that accurately explain or describe the principle I'm reading. Perhaps I'm alone in that situation, but attempting to read advanced theorems and math does give me insight into what text must look like to illiterate people who still know their ABC's.
Not just you at all. My CS Coursework included a moderate amount of math, and I got through it fine, but I never did develop the ability to "read" a new equation fluently. I have to break it down into pieces and analyze each piece in order to understand it. It still gets in the way when I stumble across some bit of math I need for programming. The worst time I've had with it though was trying to grokk lambda calculus.
Let's face it - this is about the only way it could have worked out. It's not like Mesa where the contributors agreed to a relicensing because it was from GPL to another open-source license - it was an attempt to take a GPL work closed, and if I were one of those contributors, I would have been in that 20%.
It appears that Hale was intending to contribute some of the changes/improvements from the console version back to the community in the event of a successful relicensing. However since the relicense attempt didn't work out it looks like any improvements that result from the necessary rewrite of code that can't be carried forward will not be contributed back to the GPL version.
While the original contributors who were unwilling to relicense their GPL contributions were well within their rights, making a stink about violations merely as a result of being asked about relicensing does sort of come across as skulking about whilst croaking "My precioussss!!! Filthy, tricksy Hale-Bagginses tried to steal my precious."
So Hale *says* they are going to contribute back *some* of their changes to the community in an effort to get the developers to play ball and give away the rights to their code. Does this really sound like a good deal to you? That's the whole point of the GPL, you get to use the GPL'ed work in exchange for not locking your contributions to it down when you distribute them. Why would someone give up the legal protections on their work in exchange for a vague promise that an unspecified amount of changes would be contributed back to the community?
The company has NO incentive at that point to actually DO what they've promised, so it is very likely that as soon as it got inconvenient/expensive to keep contributing, they would just stop or strongly curtail their contributions. I'm not saying that they would be wrong to do this mind you, what I am saying is that companies are in general NOT altruistic, so it's generally going to be a bad idea to make any kind of deal with them that does not involve external coercion of some kind (in this case the threat of a GPL violation lawsuit).
One thing this made me think of, in a way advanced DVCSs (git, darcs, generally I'm thinking of patch-oriented version control systems) are two-edged, because they DO allow a much greater ability to pull code back out of the project if you were to have the rights to most, but not all of the codebase. Also they tend to track attribution of patches more accurately than say svn. Wonder how hard it would be to craft a, "remove every patch attributed to author x" command in git...
I say two-edged, because this kind of thing would also be useful in forking a project with mixed licensing in an attempt to make it "freer" (whatever that means from the perspective of the forkers) or to try to work around pantent-encumbered code.
You might want to take a look at hardware-level signaling technology.
Hint: There is no binary "yes" or "no" in electronics either, just thresholds. Quantum computing will do the same thing, when you program for it you will still be manipulating discrete logic levels for the most part, it's the people who make the quantum computers that have to do the work of translating "fuzzy entangled quantum soup" into those discrete logic levels.
Random tangent: back in the day there were "analog" computers with multiple logic levels per "bit", but that sort of dead-ended when binary hardware was able to scale frequency more rapidly. I wonder if multi-level electronic logic will make a comeback when we finally do hit a miniaturization wall when producing/designing chips...
But it also makes everyone else who likes binary compatibility, and Mac OS X historically getting faster with every release, extremely happy, by allowing the interface between the kernel and libc to be changed, without breaking their applications.
If you statically link, you can't do that. That's great, if your OS has pretty much no real commercial application base, and you are a technical enough person to "just recompile everything from source", but it's not so good when you are talking about an OS where commercial software is very important to customers. Customers who are either non-technical, or who are technical, but think recompiling something that was working just fine before the OS update is a complete waste of time.
This is a strawman, there are various approaches to this problem that do not involve locking down access to system calls to a single channel. You also make several incorrect (or at least incomplete) assumptions about the alternatives. 1. The USER must re-compile software if the OS changes.
This is not true, in the Linux and BSD worlds, the majority of the compilation happens at the distribution level, end users generally don't mess with it unless they WANT to. Additionally the provider of the software can compile the software, though admittedly this is difficult if your project targets many environments. 2. Commercial software requires binary compatibility across OS versions because it can't be rebuilt.
This is a false dilemma, see below points.
2a. Commercial software must be compiled by the authoring organization.
There are commercial software suites that provide source to customers, it is only the massive level of paranoia about preserving their "precious IP resources" software houses have that keeps this from being more common. It is something THEY want, not the customer, so why should the customer end up paying for it? (and this does not mean that the user MUST be the one to re-compile, an intermediary of some kind could just as well do it.)
2b. The authoring organization can not recompile and redistribute software if the OS breaks binary compatibility.
Linux and BSD distributions do it, and they aren't "real professionals" right? In my experience the only reason commercial software houses can't handle it is because their development methodology is deeply broken and can only be coaxed to work properly for a short time around a launch window. In other words, the inability to provide deliverables that will work on multiple platforms is another self-inflicted problem, once again, the end user should not have to pay for this.
You have some valid points, and I think locking down libc as being essentially part of the OS is one solution (hell, it's come up on lkml from time to time), but I think you vastly overstate your position.
True, but that's no excuse for a compiler/linker to bring in a library that's not needed.
I'm on the fence about this. For the VAST majority of uses of gcc, you are going to want to include stdlib and friends, and for the other uses, there's a flag to disable it. Now there does not seem to be a way to generate mind-bendingly small executables with gcc, but I'm unconvinced of the need for that either:P
On second thought, I think gcc-arm will probably generate super-tiny executables with the proper flags, it just won't run on x86 linux...
So anyway, the common use-case is x86 system with full-sized linux system, for which the common use case is programs that will want to use stdlib stuff.
Ah-nuld? I thought it was Sigourney Weaver with the "It's the only way to be safe" campaign?
you're assuming
1- all of the OS is accessed often enough to justify being "cached" on the SSD
2- no other code/data (apps...) is used more often than that.
3- users know how to do that, or Linux allows to do that in an intuitive way
My guess is, you're wrong on all counts. Hence the OP's question. Nice opportunity for Linux to show how it can integrate innovations faster than Windows :-p
And *you're* assuming that /home or /boot in my case. To be safe I allocate 10GB for /. Just to be clear, that is every app I use, and I have tons of apps on there that I could get rid of if it were worth my time, but it's not, because that's a trivial amount of storage. /home partition and don't bother to install the resulting app to the usual location.
1 - the OS is big enough to worry about
Just checked, my / partition has 4.7GB on it, that's everything that's not
2 - The proposed scheme leaves any apps out, and that it's not flexible enough for you to trivially put data on the SSD.
Obviously you aren't familiar with linux, this layout puts ALL your apps on the SSD by default. The only exception is if you build from source on your
If you find yourself needing data cached on the SSD as well, you can just set up a partition for your special data on the SSD as well, it's trivial.
3 - users don't know how to do it, and Linux doesn't allow it to be done in an intuitive way.
Every recent graphical installer I've seen has a section where you set up the layout for your partitions, and also an automatic setup that could trivially be adjusted to run some quick speed tests on the drives and use that to determine where to put the various partitions. In other words this approach has been available to those in the know for longer than SSDs have been around, so you do a very poor job of making your point.
A few problems with this approach, one is that the overhead of unionfs is not negligible. While I don't believe it's huge, it's still somewhat counterproductive to add another layer when you're talking about trying to improve performance. The main problem though is that unionfs just doesn't support that use case. The "lower" device is generally required to be read-only, which means you can't write through to the rotating disk. It's just a bad match.
I agree with you in general, but just one nit. "readahead tricks" can still give a boost to loading large amounts of data from a SSD. While the "small read" performance of a good SSD is orders of magnitude faster than the same scenario for rotating media, "large read" performance is still significantly faster than either, so if you can queue up lots of contiguous writes your operation will complete faster no matter what kind of media you have.
Yea, my first major move after college I ditched all the inoperative stuff (which was most of it), but now I'm maintaining a more streamlined and "useful" collection, the star of which is the AS800 I got from a friend for helping him move. It's probably going to be the firewall and misc network stuff box once I get around to configuring it properly. Had to spend about a week of evenings learning to speak AlphaBIOS getting it bootstrapped, haven't had time since then to make it do anything useful.
Wow, you've come up with a pretty workable plot device that will unfortunately never be used because only geeks will get it...
Even though you can do the same thing today by connecting to some 802.11 access points with an old wireless card... but still only geeks wil get it.
Fe2O3+2Al
Thermite?
Translation: Fe2 = Iron O3 = Oxygen, so Fe2O3 = Iron Oxide, 2Al = Aluminum.
So yes, Thermite.
The way I see it, it's the same as anything else, with potential for either good or bad use. In the particular program being mentioned, it looks like it's a pretty positive thing.
1. It only comes into the picture after a conviction.
2. The focus seems to be on determining how best to help the person, not how much to punish them.
If they were using it for *severity* of sentencing, or as an aid to conviction, or even for filtering suspect lists, I think it would be questionable at best.
Yea, except the founding fathers weren't going around robbing liquor stores, they for the most part were "fine, upstanding citizens", up to the point when they decided to start inciting rebellion.
You have to take the bad with the good though, this kind of thing also wouldn't have done anything to stop Bernie Madoff from ripping off countless trusting investors. (yea I know, not literally countless, I don't feel like looking up the actual number)
Nice, I'm amazed that in all the articles and comments I've read about this specific issue I've never run across this approach. I think the disconnect is that generally users aren't thought of as people, but as some kind of threat to be protected against.
So do you manually select a policy for each user, or is the rotation period directly determined from the estimated strength of the password/passphrase?
Now 48 CPUs can block on cache misses!
fixed. Memory is the new disk.
Don't fight guys! There are plenty of I/O stalls to go around!
But seriously, in addition to the theoretical limits, I think the kernel level handling of a NUMA that is *this* non-uniform would require significantly higher sophistication in the cache-handling code than is currently available. Then again, I do tend to go a bit cross-eyed when I try to follow lkml discussions of cache coherency handling, so maybe it is sophisticated enough to handle it ok already.
*WOOSH*
As someone who runs FlashBlock on all of my computers, I find this hilarious. I understand that some people want tiny video playing at them all the time, and that's fine, but I have NEVER wanted flash when browsing.
To be clear, I consider "watching video" to be separate from "browsing", YMMV. Same disclaimer applies for "playing flash games". All other uses of flash I have encountered have been forced on me by the page author not providing an alternative. I have never *wanted* the "enhanced flash experience", I just want the content damnit.
Also, I'm not defending the iPad, I pretty much hate Apple. I'm just responding to the comment about flash.
Wrong. You have deprived them of time (definitely physical) and energy used in doing the labor (also definitely physical). So you have taken something physical away from them that they now no longer have, hence theft.
This isn't the case, what you are describing is a failure to pay for contract work, which law may consider to be a tangible good, though I'm skeptical about that.
When you're talking about copyright infringement, the producer has undertaken work speculatively in the hope that they will be able to sell copies of their work. According to your argument, people who simply do not buy the product have also stolen the work of the producer, but that is obviously not the case. (see arguments about AdBlock)
The theoretical ill that stems from copyright infringement is that the producer has lower profits, and decides not to produce any more creative works, not that he was deprived of profits.
This isn't necessarily the case, you don't make the decision to drive drunk when you are standing outside a bar looking at your car, you make that decision when you drive to a bar. The decision is to take mass transit or walk to the bar when available or go in a group with a designated driver.
The other side of this equation though is people who stay drunk for significant periods of time and decide to drive because their thinking is impaired. No idea how much this group contributes to drunk driving incidents.
Regardless, deterrents should be able to influence the first group at least. My perception of the problem is that deterrence is not great enough, it IS seen as "not a big deal" to drive after drinking. that seems to be changing somewhat, but not fast enough.
So here is the outline of their claims, with responses.
Data gathering errors
Only one TCP connection is used
Basically valid, it's a pretty rare net activity nowadays that actually maxes out the connection by itself, no idea if the promises the ISPs make contractually include any wording about per-connection performance.
Client-server delay is variable
Tough, this is a reality of how the network operates, if an ISP promises speed X, they need to invest in the infrastructure necessary to deliver speed X.
Participants’ computers may be resource constrained
Outside of listing minimum requirements for client computers, this is also a reality of how the customer will perceive network performance, and this is the important measure.
Test traffic may conflict with home traffic
semi valid-ish point, but I'm skeptical that it has a noticeable impact.
Decimal math is incorrect
This one seems like utter crap, they seem to be assuming that the testing company is saying MB and meaning MiB in one case, but that they say MB and really mean MB in another case. It's far more likely that they are saying MB and they mean MiB in both cases, in which case this point is moot.
Protocol overhead is unaccounted for
Another semi-valid point, but they claim the testers have the responsibility to make the ISPs numbers look better, why isn't it instead the ISPs responsibility to make their numbers more meaningful? IIRC, speeds are often advertised on the basis of file downloads, which means the protocol overhead should NOT be accounted for.
Data interpretation errors
Purchased speed tiers are incorrectly identified
This is probably the most significant claim, if true. However it's also the most wishy-washy of all the claims, going so far as to specifically state that it's the opinion of the company that it is even happening, rather than a factual claim:
"NetForecast estimates that it is highly likely that comScore incorrectly places many panelists' PCs into higher tiers than the subscribers purchased."
Overall, the report looks like a tiny bit of valid criticism of the testing methodology wrapped in a whole lot of weaseling about what the ISP should be expected to provide, and always siding with the ISP. The end result for me is that the validity of the entire report is fatally undermined by the obvious grasping at straws being done, and the impression that I get that if there were any errors in the opposite direction, they will not be reported.
Came in the thread just to search for "pencil", thank you for slightly improving my opinion of mankind.
-Only slightly, mind you, you're still just a bunch of Neanderthals who occasionally bang out an intelligible phrase by accident, but at least it's sometimes an amusing phrase.
Theoretically that's a good idea, but then you need a whole industrial complex in space, we're talking smelting, refining, forming, assembling, QA, etc... I don't think there's enough debris up there to make all that worthwhile, and hopefully we will be generating less space debris in the future, not more, so it won't be getting any "better" for your space recycling idea.
Now if we ever really did move to large scale manufacturing in earth orbit, probably based around captured asteroids, then that sort of scheme might be worthwhile, particularly for refining extremely rare materials that may have been used in satellite construction, but that day is really far off.
Re: your comment, GP's user ID *IS* a palindrome. It helps if you know what a word means before you correct someone else's use of it.
http://en.wikipedia.org/wiki/Palindrome
http://dictionary.reference.com/browse/palindrome
http://www.merriam-webster.com/dictionary/palindrome
http://sarahpalin.typepad.com/
Oops, well 3 out of 4 anyway ;)
My personal largest problem, though, has to do with literacy. Though I'm quite skilled with language, excessive comma usage notwithstanding, I find that when trying to read about advanced math or physics principles on Wikipedia for example, I'll see a theorem written using symbols and functions that I know were covered in the math classes I had in high school but I can't look at those same symbols and functions and turn them into words that accurately explain or describe the principle I'm reading. Perhaps I'm alone in that situation, but attempting to read advanced theorems and math does give me insight into what text must look like to illiterate people who still know their ABC's.
Not just you at all. My CS Coursework included a moderate amount of math, and I got through it fine, but I never did develop the ability to "read" a new equation fluently. I have to break it down into pieces and analyze each piece in order to understand it. It still gets in the way when I stumble across some bit of math I need for programming. The worst time I've had with it though was trying to grokk lambda calculus.
Let's face it - this is about the only way it could have worked out. It's not like Mesa where the contributors agreed to a relicensing because it was from GPL to another open-source license - it was an attempt to take a GPL work closed, and if I were one of those contributors, I would have been in that 20%.
It appears that Hale was intending to contribute some of the changes/improvements from the console version back to the community in the event of a successful relicensing. However since the relicense attempt didn't work out it looks like any improvements that result from the necessary rewrite of code that can't be carried forward will not be contributed back to the GPL version.
While the original contributors who were unwilling to relicense their GPL contributions were well within their rights, making a stink about violations merely as a result of being asked about relicensing does sort of come across as skulking about whilst croaking "My precioussss!!! Filthy, tricksy Hale-Bagginses tried to steal my precious."
So Hale *says* they are going to contribute back *some* of their changes to the community in an effort to get the developers to play ball and give away the rights to their code. Does this really sound like a good deal to you? That's the whole point of the GPL, you get to use the GPL'ed work in exchange for not locking your contributions to it down when you distribute them. Why would someone give up the legal protections on their work in exchange for a vague promise that an unspecified amount of changes would be contributed back to the community?
The company has NO incentive at that point to actually DO what they've promised, so it is very likely that as soon as it got inconvenient/expensive to keep contributing, they would just stop or strongly curtail their contributions. I'm not saying that they would be wrong to do this mind you, what I am saying is that companies are in general NOT altruistic, so it's generally going to be a bad idea to make any kind of deal with them that does not involve external coercion of some kind (in this case the threat of a GPL violation lawsuit).
One thing this made me think of, in a way advanced DVCSs (git, darcs, generally I'm thinking of patch-oriented version control systems) are two-edged, because they DO allow a much greater ability to pull code back out of the project if you were to have the rights to most, but not all of the codebase. Also they tend to track attribution of patches more accurately than say svn. Wonder how hard it would be to craft a, "remove every patch attributed to author x" command in git...
I say two-edged, because this kind of thing would also be useful in forking a project with mixed licensing in an attempt to make it "freer" (whatever that means from the perspective of the forkers) or to try to work around pantent-encumbered code.
You might want to take a look at hardware-level signaling technology.
Hint: There is no binary "yes" or "no" in electronics either, just thresholds. Quantum computing will do the same thing, when you program for it you will still be manipulating discrete logic levels for the most part, it's the people who make the quantum computers that have to do the work of translating "fuzzy entangled quantum soup" into those discrete logic levels.
Random tangent: back in the day there were "analog" computers with multiple logic levels per "bit", but that sort of dead-ended when binary hardware was able to scale frequency more rapidly. I wonder if multi-level electronic logic will make a comeback when we finally do hit a miniaturization wall when producing/designing chips...
Hell, I had that happen in college without a XP system :P
But it also makes everyone else who likes binary compatibility, and Mac OS X historically getting faster with every release, extremely happy, by allowing the interface between the kernel and libc to be changed, without breaking their applications.
If you statically link, you can't do that. That's great, if your OS has pretty much no real commercial application base, and you are a technical enough person to "just recompile everything from source", but it's not so good when you are talking about an OS where commercial software is very important to customers. Customers who are either non-technical, or who are technical, but think recompiling something that was working just fine before the OS update is a complete waste of time.
This is a strawman, there are various approaches to this problem that do not involve locking down access to system calls to a single channel. You also make several incorrect (or at least incomplete) assumptions about the alternatives.
1. The USER must re-compile software if the OS changes.
This is not true, in the Linux and BSD worlds, the majority of the compilation happens at the distribution level, end users generally don't mess with it unless they WANT to. Additionally the provider of the software can compile the software, though admittedly this is difficult if your project targets many environments.
2. Commercial software requires binary compatibility across OS versions because it can't be rebuilt.
This is a false dilemma, see below points.
2a. Commercial software must be compiled by the authoring organization.
There are commercial software suites that provide source to customers, it is only the massive level of paranoia about preserving their "precious IP resources" software houses have that keeps this from being more common. It is something THEY want, not the customer, so why should the customer end up paying for it? (and this does not mean that the user MUST be the one to re-compile, an intermediary of some kind could just as well do it.)
2b. The authoring organization can not recompile and redistribute software if the OS breaks binary compatibility.
Linux and BSD distributions do it, and they aren't "real professionals" right? In my experience the only reason commercial software houses can't handle it is because their development methodology is deeply broken and can only be coaxed to work properly for a short time around a launch window. In other words, the inability to provide deliverables that will work on multiple platforms is another self-inflicted problem, once again, the end user should not have to pay for this.
You have some valid points, and I think locking down libc as being essentially part of the OS is one solution (hell, it's come up on lkml from time to time), but I think you vastly overstate your position.
True, but that's no excuse for a compiler/linker to bring in a library that's not needed.
I'm on the fence about this. For the VAST majority of uses of gcc, you are going to want to include stdlib and friends, and for the other uses, there's a flag to disable it. Now there does not seem to be a way to generate mind-bendingly small executables with gcc, but I'm unconvinced of the need for that either :P
On second thought, I think gcc-arm will probably generate super-tiny executables with the proper flags, it just won't run on x86 linux...
So anyway, the common use-case is x86 system with full-sized linux system, for which the common use case is programs that will want to use stdlib stuff.