The real shame is that Nvidia is still doing binary blob drivers 15 years after I started caring about Linux. Are they really that afraid of someone taking their Lucky Charms?
My new theory is the Nvidia driver can't be GPL and in the Linux kernel, because then they couldn't ban datacenter usage of their GeForce cards by not licensing the driver for datacenter use. The upcharge on the Tesla series of cards is huge compared to GeForce for mostly the same chips. (For those not aware, see if you can find and GTX 2080 or 3080 from a cloud provider. It's not a thing. This is actually a huge deal for the machine learning industry, massively increasing costs. I doubt Google would have made the TPU if not for this.)
Also, their driver is very complex, and they are constantly improving their hardware. They don't want to be dependent on getting new features and performance improvements upstreamed.
Don't forget the fact that most of their silicon is basically the same and you can easily change it with some hardware/software mods[1] --- I think they have tried to lock that down a bit more, but ultimately it's a cat-and-mouse game and the only ones who win are those willing to ignore the insanity of Imaginary Property laws and take matters into their own hands.
AMD does the same thing and so does Intel, this is for CPU's too. The yield on silicon has a probability that some transistors wont work, so they disable those cores and create lower end models. Sometimes, to meet demand they do just simply disable cores, as it's also cheaper to have one process. Tesla does the same thing as well with their cars, funny enough.
I've spent a lot of time trying to come up with a better term for these laws, and I think your "Imaginary Property" phrase here is better than anything I've come up with. Thanks!
Why are these kind of licenses even allowed. If I buy a product, surely I can do with it as I please?
Also, why doesn't TSMC slap a license on every IC that leaves their fab, taking (say) a 30% profit from every application in which their ICs are being used?
Sure you can do anything with the hardware which you actually ha e bought!
The problem is in the software (the driver) which you never can buy, only license under a long list of conditions which prohibit specific uses.
If e.g. Noveau could implement interfaces needed for CUDA, you could probably try to use a 3050 in a datacenter. I bet NVidia has provisions against this turn of events, too.
> Ok, so who gave software a special status over hardware?
Software is rarely sold (outside of bespoke development). All the off the shelf software is essentially rented.
Software itself has no legal value - the copyright is what is considered to be property. That property can be leased or sold. This is why copyright infringement is called infringement and not theft.
When you “buy” software, you are actually entering into a lease contract to use the software (sometimes perpetual, but increasingly only temporary) which can have various terms and conditions (that you really should read, but never do). But that lease doesn’t grant you the copyright.
I think your idea is agreeable but if we did treat hardware this way it changes almost everything. Apple/Nintendo/Sony/etc would all be required to give users root access to the software and remove their ToS.
And then it get even more complex when you get in to online services. Game consoles are going online only next gen. If you buy the ps5 digital edition and you mod your OS and sony bans you from their servers, your console is now a brick. But in many cases its fair to be banned such as banning cheaters.
What's the point of that? We do the same thing in software all the time. You get basic functionality for one price, and pay for a key to unlock extra features. Why should hardware be any different? So the law would somehow require any feature on a hardware product to have some physical difference and not be purely a software limitation? What is the advantage of that? Just increases cost to the manufacturer (which will get passed down), then also precludes any possibility of upgrades by purchasing a software patch.
> I think that's misleading then, because when I buy a GPU, they make me believe I own it, when, apparently, in reality I don't.
If you buy a GPU you own it and the copy of the software it came with. You are free to use that combination as you choose, forever.
It’s not renting because you don’t have to pay rent to continue to use it. There may be software license restrictions, typically against modifying or reverse-engineering the software, However, it is an error to say that those license restrictions convert your ownership into anything like a rental agreement.
Some digital activists say that we don’t really own the devices that we buy because of license restrictions or restricted device firmware. It’s hyperbole. We do own our devices and the copies of the software they came with, even if they came with artificial limitations.
Lets test this idea of ownership: My phone auto-updates, and the manufacturer prevents me from reverting updates. One update has removed my ability to record my calls.
Does that sound like ownership? Can BMW employee pop over to your garage one day remove some bits of the car he thinks you shouldn't have any more?
The problem of features being changed or removed by a software update is real and the owner can be harmed, as you were. As the owner, however, if you are harmed in that way then you may have a claim against the manufacturer. For example, in a recent class action case by PlayStation 3 owners against Sony over the removal of the Linux OS feature, the court seemed to agree that owners were entitled to damages because Sony ended up paying millions of dollars to class members in a settlement. If you or the PlayStation 3 owners were not owners, then you wouldn’t have a good claim.
By the sounds of it playstation 'owners' were paid compensation, but could not get the Linux feature back, in other words they were not made whole. They don't control what is happening to their properly, and without Sony's agreement they cannot repair damage done by sony to it.
That does not sound like ownership to me - again, think back to car ownership. Firstly tampering with your car would have been criminal damage.
Secondly, BMW does not get a say in how you use your car. They can't stop you going over the speed limit. You could get your car fixed without having to involve BMW or going to court to force their hand.
In my view this Sony case looks like compensation for breach of a lease-like contract.
> By the sounds of it playstation 'owners' were paid compensation, but could not get the Linux feature back, in other words they were not made whole.
Members of the class could opt out of the settlement and sue Sony individually. A court could theoretically enjoin Sony to restore the feature for those individual plaintiffs, but the plaintiffs would have to show that monetary damages would be insufficient. Generally courts don’t like to force defendants to do things when paying money would be an acceptable outcome.
> In my view this Sony case looks like compensation for breach of a lease-like contract.
I haven’t read the complaint in that case but the plaintiffs probably alleged a breach of the implied covenant of good faith and fair dealing. So, yes, possibly a breach of contract claim but not a lease. (Note: A lease is a specific form of contract in which a lessor transfers possession of property to a lessee, but retains a future interest in the property after the contract term ends.)
Your idea of ownership is way too primitive and doesn't reflect reality.
You do NOT own the software that comes with your GPU!
Ownership implies the ability to transfer, modify, and resell, none of which are within the rights granted by the license of said software.
It's not "rental" either - it's licensing. You don't have to become a lawyer, but knowing and understanding the difference between proprietorship (ownership) and possession is a good start. Same goes for renting vs. licensing vs. ownership.
TL;DR you do not have ownership of any software that came with any device you bought and it's not hyperbole at all.
> You do NOT own the software that comes with your GPU!
When you purchase a consumer GPU that comes with software, you acquire the GPU, the copy of the software it came with, and a license to use the software subject to particular terms and conditions. That is what you own, no more, no less.
> When you “buy” software, you are actually entering into a lease contract to use the software
This is inaccurate, at least as to purchases software. A license is not a contract because the licensee is not required to do anything. A license can have conditions (restriction), but not covenants (promises to do something). A license basically functions as a defense against a claim of infringement.
Note: For purchased software there is a contract for the sale of the software subject to the license, but that shouldn’t be confused with the license itself.
> For purchased software there is a contract for the sale of the software subject to the license, but that shouldn’t be confused with the license itself.
That's simply not true. You are indeed making a contract for the sale of the license itself. Otherwise subscription models wouldn't work and would even be legally allowed to share and resell the software, which you aren't (i.e. just because it's possible to resell an acquired license while keeping a working copy, doesn't make it legal to do so).
I agree with you. My earlier point was that a license is not a contract, and shouldn’t be confused with one. My note at the end was that there is also a contract when you acquire a license through a purchase. The contract is typically of the form “you pay us money, we give you license”. That contract too shouldn't be confused with the license acquired.
As you correctly point out, one who sells his only license to a piece of software no longer has a license. If he kept a copy of the software and continues to use it, he is committing an act of infringement. That is the same whether the license is for a term (subscription) or perpetual.
Keep in mind it's the same special status that allows the GPL to have the condition that you must release your source code if you distribute something that includes GPL code. So, "reversing" it would also reverse the GPL.
Not exactly. The GPL's special status generally comes from the fundamentals of copyright law: it attaches conditions to the duplication, modification, and distribution of a work. If not for the GPL, you'd have no right to distribute something containing the copyrighted code.
The datacenter-versus-personal conditions of NVidia drivers attach instead to the use of the copyrighted work. These restrictions are based on the idea of an end user license agreement as an enforceable contract, either agreed-upon when the driver is downloaded or through a theory that copyright attaches to the temporary (in-memory) copy of the driver necessary to run it.
Amusingly, Oracle is known as the slowest major DB despite their heavy handed tactics. So, actual benchmarks might actually help their sales rather than people simply assuming it’s unacceptably slow.
Did this change recently? I remember my database professor in college was adamant that when they talk about databases, I am to assume some things as a given (going by memory, am probably not completely accurate):
that the data set is large enough that cannot fit in memory
that storage is orders of magnitude slower than memory and memory is orders of magnitude slower than processor cache
Oracle has the “best implementation” given these constraints.
It's worth noting that in current conditions the assumptions may be unwarranted.
First, while storage used to be orders of magnitude slower than memory, not SSD storage is just a single order of magnitude slower;
Second, in many domains now it's often practical to ensure that your data set can fit in memory. For example, if your system is for storing financial transactions (which is a prime market for Oracle), then your enterprise has to be quite large to get a terabyte of transactions and you can put a terabyte (or much more) of RAM in a database system if you choose to.
Well, you cannot legally publish a benchmark, but you can set up your own for your private uses. It is not like Oracle DB detects it is being benchmarked and shuts off itself.
It's not a special status, anyone has the right to deny you a hardware product as well. I don't have to sell cars to anyone if I don't want to. If I do want to sell someone a car, I can specify a contract or license that they must follow if they buy my car. Ferrari famously only sells exclusive models to customers who have been pre-approved, i.e. they have a certain amount of income and own 5+ Ferraris already. I also cannot walk into a Lockheed Martin dealership and tell them to sell me a F-22, even if I can afford it, even if my country has permissive laws regarding the ownership of fighter aircraft.
As for software, well, EA has the right to ban me from their servers if I hack their games, even if I did pay for the product, and this makes sense because it ruins everyone else's experience. I don't pay for HN but if I did they still would have a right to ban my account if I start posting slurs or other abusive content.
Is it desirable? Of course it's desirable; imagine having no control over your own creations and having to deal with the consequences of other people abusing it.
None of those examples are equivalent. The hardware examples are where companies refuse to sell a product (so you never own the product to begin with) where as the EA example is where you’ve been kicked off online services (you still have the capability to play the game offline, you just can’t access their servers, but you don’t buy their servers when you buy the game) and the HN example is a termination of subscription. Neither of those examples demonstrate legal limitations to software usage with a product you own (though the EA one at least comes close from a superficial perspective).
> you still have the capability to play the game offline
EA famously uses online-only DRM in many of their modern titles; if you get banned from, say, SimCity, you can't run the game at all. There is no "offline mode".
It's not a single player game I'm pretty sure - there are leaderboards and achievements that allow you to compete with your friends. Obviously these features are moot if the top 10,000 players have a score of MAX_INT. It would have been nice to "disconnect" your city from the leaderboards if you wanted to go crazy, but unfortunately this mode was not added.
For the record I am against always on DRM so I did not buy this game nor any other game that uses it. I don't believe we need to codify laws banning the practice or any such thing that requires software developers to build things they don't want to build (with the exception of critical fields such as healthcare and aviation).
It's desirable in that a one time purchase does not entitle a customer to a lifetime of server resources; they paid for the game and they can certainly keep the game, but they don't have a right to the services required by the game (those are recurring costs). This makes sense since the alternative is forcing EA to pay to host servers for people that violated their terms of service.
You are correct that it got an offline mode eventually, I overlooked this. But this demonstrates that the market corrected this problem: Enough consumers complained to force a change. Therefore, is there need for external intervention? The simple solution to always-on DRM seems to be to just avoid buying any products that use it.
>If I do want to sell someone a car, I can specify a contract or license that they must follow if they buy my car.
Only in a limited form e.g. exhaustion doctrine prevents you from restricting resale. If someone wants to resell their exclusive Ferrari, there's nothing Ferrari can legally do (though this'll probably get you blacklisted from ever receiving an exclusive vehicle).
In general, terms can't go against existing laws and have to be 'conscionable' to be enforceable (i.e. they can't be obviously 'unfair').
The examples of software you list aren't close to equivalent. They are all services and you can get banned from a service if you misbehave. But a piece of software such as a driver is not a service.
Software updates aren't a service? Doesn't Nvidia provide updates to its drivers over time? They can choose to cut anyone off from those, including the very first initial driver download. Sure, you can own and do whatever you want with the hardware - but good luck getting it to do anything useful if you can't access Nvidia's driver download service.
Yes software updates can be a service. Nvidia however doesn't provide a working version of their driver with a card. Just like buying a game is not a service but recievig updates can be.
> Ferrari famously only sells exclusive models to customers who have been pre-approved, i.e. they have a certain amount of income and own 5+ Ferraris already.
Sounds like discrimination to me, and not desirable.
Only a few very specific types of discrimination (religion, sex, ethnicity/race, etc) are prohibited, every other discrimination is fair game and often desired. For example, it's quite desirable to discriminate potential developer hires according to their programming ability, to discriminate potential borrowers according to their ability to repay the loan, etc.
Discrimination is discrimination everywhere, as it applies to all activities where people make distinction and treat some things, people or activities differently.
But I'm arguing that when you hear "X is discrimination" then it's wrong to automatically imply that X is bad or X should be changed - there's just a narrow subset of discrimination that's immoral and should be avoided; and there's a narrow subset of discrimination that's illegal discrimination (there's some overlap between these two subsets but they are not exactly the same of course), but most discrimination - and certainly the default situation - is just reasonable human activity of us applying common sense and acting according to the specific situation instead of blindly acting the same no matter what like robots would, it's completely normal to adapt to the specific person and act differently to be most suitable with them, make adjustments and custom approaches for different individuals which definitely is discrimination but there's nothing a priori wrong with that. For example, custom pricing is one form of discrimination - offering a discount for students or senior peole is certainly discrimination, but we generally consider that it's entirely appropriate.
And in certain cases a lack of discrimination would be completely immoral - for example, the concept of "reasonable accomodations" is a requirement for discrimination; for example, a policy that forbids electronic devices in an exam does not discriminate in any way and applies equally to anyone (in colloquial language one might call it a "discriminatory policy" but that's wrong; perhaps I'm nitpicking on that but it a misuse of words to mean their exact opposite), but as it forbids hearing aids for people who need them, then that non-discrimination is bad; and also simply equally allowing all devices would be bad for other reasons, so ADA and equivalent laws require to discriminate and apply different rules to people with different abilities.
So if you see a practice that seems definitely bad and harmful, then "is it discrimination?" is the wrong question to ask, since it's very likely that it may be harmful but not discrimination, or it may be discrimination but nothing wrong with it; these aren't edge cases, the overlap is just partial. The proper question to ask is whether the criteria of the discrimination is fair (the up-thread issue of discriminating upon wealth certainly is debatable whether that should or should not be acceptable) and whether the results of that discrimination are appropriate.
Sure, everything that's not explicitly prohibited is permitted, and wealth is not one of those very few things prohibited for discrimination. You're free to have a club that only admits billionaires or offer a discount that applies only to people below a certain amount of income.
The example on ability to repay is closely related to discrimination by pure wealth, but there are businesses with even more straightforward criteria, e.g. financial services that are offered only to individuals with net worth above a certain (quite large) amount, and having less money than that automatically disqualifies you from that service even if you were able and willing to pay the involved fees.
> Sure, everything that's not explicitly prohibited is permitted
That was not the issue. The question was whether it is desirable.
Personally it leaves a bad taste. It reminds me of a fashion brand that doesn't sell to obese people (can't remember the name but it was in a documentary).
The difference between hardware and software is that copying is free for software. You can own the hardware and do whatever you want with it because for you to reproduce it would require you to effective be Nvidia. For software you can't give a user ownership of exactly 1 copy of software. If the purchaser has all of the rights of ownership they would have the right to distribute copies for free, which obviously make selling the same software impossible. Software is copied and hardware is moved, they're fundamentally different so the have to be treated differently
> Some american politician extended copyright protection towards software. The rest of the world eventually did the same.
>> Is this desirable?
> No.
So I'm sure you'd be happy if I just took the software for whatever great startup idea you'd been slaving away on for the last two years, slapped better marketing on it, and undercut you by 50% since I didn't have to employ all those pesky overpaid engineers.
Nvidia is free to not give out any graphics driver, however, that would make their graphics cards unfunctional and hard to sell.
However, if nvidia has sold me a functional graphics card including the driver as an unalienable part of the package that I purchased (since the driver being functional is part of the card being 'fit for purpose' of the sale), I should be free to use the driver without any unreasonable restrictions. I have legally bought [a copy] of it, it's not copyright infringement for me to run it on a computer - even if it resides in a datacenter.
My whole point is that there needs to be more efforts to hack and modify these things, and that this would be "more desireable".
And that orgs should be using their power to cause this to happen more. For example, if open source orgs can weaponize licensing agreements against nvidia, in order to force them to do this, then they should and this would be desireable.
> You have options? Nobody is forcing you to buy Nvidia hardware.
Laptops are generally an all or nothing proposition. I wanted a laptop with a high performance CPU and the nvidia GPU just came along with it. Couldn't even disable the thing in firmware since hardware video decoding with the Intel GPU caused kernel panics.
If you claim it matters, but not enough to impact the purchasing decision, did it actually matter?
Like you showed your disapproval of Nvidia by giving them your money anyway. So... They're right - people care enough to complain, but not buy something else, so it doesn't really matter.
How can you take software that was never published in the first place? There's a reason everything is a service these days. So what's the point of these protections?
There's nothing stopping nvidia from theoretically offering a gpu that is only rented out rather than sold. It's just not really considered acceptable for hardware (at the moment).
That's only because the hardware is a useless dongle without the software.
Sure in theory you could run an open source driver, and in practice sometimes the river won't crash, but there's no point because you could get an equally good open source driver video card for the same price, since you can't get the fancy card's peak performance from the open source driver
If the hardware is effectively useless without the software driver, it could be argued the whole thing is a bit of a fraud / misrepresentation. But I guess nobody wants to sue somebody with pockets as deep as nVidia to change the status quo.
“Locking down” is not the problem - the problem is that you are told you’re buying goods when you are actually buying goods which require access to rented software in order to function at all.
It’s like buying a blender and then finding out that you’re not allowed to blend anything unless someone in the manufacturers’ operation approves of it.
"The problem is in the software (the driver) which you never can buy, only license under a long list of conditions which prohibit specific uses."
Well, buying and licensing are not so different in Europe (first sale doctrine). The company can not forbid you to resell a license (Exhaustion of intellectual property rights) in Europe.
lol. When was the last time anyone actually bought a copy of software? You own nothing. You are a party to a contract written by nvidia and signed by you when you installed their driver. You can do only what they allow and they can yank thier permission whenever they see fit.
Have enough details about TSMC contracts ever been released/leaked to know they don't do this?
I don't follow the semiconductor industry closely enough to know anything about TSMC's business practices, but these kind of contracts are far from unheard of in other sectors.
Maybe you could just use it for the datacenter anyway.
NVIDIA doesn't have a right to know how you are using it.
What are they going to do, call you and ask how you are using the GPUs? Don't answer. Message you on Facebook? Don't answer. Visit you? Don't publish your address.
Alternatively, just don't call it a datacenter. Just call it a private internet gaming cafe or something of that sort. NVIDIA doesn't have a right to know what's actually inside.
Build your dreams in a country whose government won't give a damn about enforcing it then. I can think of several where you can safely do so, and the government will just laugh it off as a waste of time if someone tried to file a suit about something like this.
The US will fall behind in tech if it insists on enforceability of things like this.
Most companies would rather just buy the enterprise card than go through all of this hassle. Its not even a rip off when you consider that the enterprise cards pay for the research and development on cuda which puts enterprise grade tools in the hands of students and hobbiests.
AMDs version is simply not supporting their version of cuda (rocm) on consumer cards (the navi ones anyway)
> Its not even a rip off when you consider that the enterprise cards pay for the research and development on cuda which puts enterprise grade tools in the hands of students and hobbiests.
Monopolists can do anything with your money including sitting on their hands. Also, supporting students and hobbyists may be noble, but education is something we all pay tax for.
Also, hobbyists would be better served if they could develop their own version of cuda.
Using the internet and a payment processor, of course. The true hardware would be hidden from the client in one way or another to protect from judgements, and any inspection would be respectfully denied.
> If I buy a product, surely I can do with it as I please?
We no longer buy products these days. We license them. Another form of rent that allows the true owner to maintain control. Somehow this became the norm.
The EULA / driver license may prevent you from reverse engineering the driver to enable these features, but that is only legal protection. nVidia sells these cards saying they don't provide feature X; nVidia also sells some cards, which do provide feature X (at a different price point). There is imho nothing per se wrong with this practice. The silicon being the same in both products is an implementation detail.
If you sold pork with different price on the condition of eating it in a wood vs. a stone house, some people would consider it market segmentation or maximizing profits. Others might call it illegal price discrimination.
It's cheaper than designing, manufacturing, and stocking more chip models. It's also cheaper than designing and manufacturing 1 model and physically disabling the pieces after.
You could try to regulate that what is manufactured is not gimped on it's way to the consumer for ideological reasons but in the end you'd just end up paying more for a separate physical model because the profit margins on these advanced use cases are simply what drives GPU design.
As for the royalty licensing TSMC is ahead in abilities and has captured an enormous portion of the market but it's not so far ahead that it can eat however far into customer income streams as it wants. Other manufacturers still exist and get deals, Nvidia is using Samsung 8nm for the latest round of GPUs for example. If it continues to increase its lead then we may see that type of agreement grow though.
> Also, why doesn't TSMC slap a license on every IC that leaves their fab, taking (say) a 30% profit from every application in which their ICs are being used?
Because companies would stop using TSMC chips...?
Not to mention the logistical problems to attribute "profit" to any chip in particular.
For GPUs, I agree that you currently have to use TSMC. But if TSMC were to charge 30% of profits, you would almost certainly see a migration to other fabs which would harm TSMC's long-term profitability.
Give it 10 years and a lot of engineering time, maybe half a trillion USD and you'll get the equivalent in the mainland US. Until then, it's more convenient to use the US military resource to protect Taiwan from PRoC.
This is called a royalty and is a pretty common business arrangement when licensing e.g. a patent for your product or some stock footage for your movie.
To differentiate products for consumer and enterprise, Intel disables ECC RAM support for Core i5 or upper series and enables for Xeon E series (i3 or below is sold for both market so not disabled).
NVIDIA reduces (actually reduced on die) FP64 calculation units and disables ECC RAM support for GeForce (except some Titans) to not to be used in datacenter. Previously it works because most scientific calculations requires FP64 calculation and reliability is matter.
But now is the deep learning era, it won't need FP64 calculation and rare RAM error isn't matter. So they must enforce the EURA to avoid dirt cheap Geforce to be used in datacenter for deep learning.
No because they want students to have cuda to learn with and home devs to have so they develop tools for it. Then when the enterprises use it for profit they have to pay for the development of the platform.
That viewpoint is adorably naïve. The Computer History Museum in Mountain View pretty clearly falls into three categories: government projects, genuinely innovative ideas from the private sector that failed, and the people who ripped off those ideas and made a killing. There is very little overlap between the last two categories.
> The Computer History Museum in Mountain View pretty clearly falls into three categories: government projects, genuinely innovative ideas from the private sector that failed, and the people who ripped off those ideas and made a killing. There is very little overlap between the last two categories.
This is ignoring two very important things.
The first is the number of government-funded projects that burned a mountain of cash and led to nothing. Unfortunately this is the rule rather than the exception in modern times because modern government has been captured by interest groups that divert money from where it's supposed to be going to themselves, which makes everything cost ten times more than it did when the government was funding the Apollo program and ARPANET. So you can't just say "government fund more stuff" without fixing that first.
And the second is that private companies inventing stuff only to see somebody else successfully commercialize it is still causing it to be invented. And the overlap between invention and commercial success can be very little and still cause people to do it, because the reward when it happens is very large.
> Meanwhile people say capitalism drives innovation.
The saying is really that free market competition drives innovation.
Obviously patents and copyrights are government-issued monopolies, and monopolies are by definition lacking in competition.
The theory is that by granting the monopolies we get more innovation. Often the theory is wrong.
Especially when we allow the company to leverage the monopoly on the thing they actually invented into a monopoly on ancillary things that are only used in combination with that class of product.
I mean Nvidia is just cashing in their innovation advantage, AMD stack was worse forever and OSS is their white flag/hope someone else picks up the ball and creates an ecosystem to leverage their HW.
Your second sentence doesn't contradict the first sentence. Capitalism (or more precisely, IP law) can simultaneously drive innovation and hold back innovation. The more worthwhile question is whether capitalism drives more innovation overall, but that's hard to prove either way with snarky 1 liner.
Maybe they can't open-source it because they don't own all the IP? That's very likely the case for Windows as well, for example, Microsoft just didn't licence all the code they used for releasing the source, and now you can't go back to 1000 different IP owners and negotiate anything reasonable.
Didn't they have to manually prepare a binary patch for a security issue in the Word Equation Editor, because they either lost or could not compile the source code anymore?
The original Equation Editor was licensed from a third party (Design Science), and it is possible that Microsoft never had the source code. Maybe the third party vendor lost the source code, but I think it is more likely that getting the third party vendor to fix the bug would have required negotiation with that vendor, and maybe Microsoft and that vendor were having trouble agreeing. (This is speculation on my part, I have no inside info.)
Microsoft probably started wondering internally why they don't just write their own equation editor, but didn't have time, so decided to do a crazy patch to this one and then start on a rewrite.
I think that Microsoft can open-source most of Windows sources. Nobody would care too much about few binary blobs and I don't believe that they don't own license for a significant portion of OS.
This is exactly what happened with Solaris, and it turned out to be a rather massive problem because it meant that the community couldn't actually functionally produce a derivative distribution because the original released source code didn't actually represent the entire distribution. And a project that the community can't build will always be critically undermined by that flaw.
I think that momentum behind Open Source Windows would be immense so community would overcome any problems. I mean, people are making Windows distributions right now, with all sources closed, and they're making amazing work if you ask me, with all those reverse-engineered knobs and whistles. Solaris is niche OS after all unlike Windows.
I dunno if I'd call it "solved" or not... Illumos reduced the binary blobs, but to this day you have to download a bundle of them when you build it. The whole issue also added significant friction early on, which I personally think stunted the project's growth, but I'm not sure that really knowable.
Here's a kernel engineer from Microsoft answering the question: What do you think about open sourcing windows and getting rid of the licensing code? [0]
The last assertion made in that answer is unfounded and false -
"Even if the entire OS code was made public tomorrow morning, it would take years before someone figures out how to build it, the complexity of the build system itself is mind boggling."
is contradicted by the fact that just recently a version of windows source (old, but still) was leaked, and people did manage to successfully build and boot the leaked windows (xp and server 2003 IIRC) code within days of that source becoming available.
that's what kept Solaris from being open sourced for years.
There's a talk by Bryan Cantrill about that.
They basically could not provide a fully functional OS because some marginal yet used-everywhere parts where licensed and proprietary (Bryan cites the internationalization library as an example).
second-hand information but apparently the reason they can't is that the driver contains code licensed from other companies and they can't open-source that.
while obviously not an official source, that isn't particularly surprising either.
as an additional relatively-well-known-but-possibly-incorrect bit of internet lore, right now their Linux driver is basically a wrapper around their Windows driver, so that explanation makes a lot of sense. They would have to go through and disentangle what parts they own and what needs to be stripped out / replaced for the linux version at an absolute minimum.
Why is it a shame? They had been providing quality Linux drivers for years, when nobody else cared about high-end graphics for Linux. Remember fglrx?
Now AMD is opensource? Great! However, it's still very far from perfect. You only have to take a look at the list of AMDGPU issues at freedesktop[1]... because being opensource is easy, but working fine in a stable manner is another.
It's shame, because they hinder the progress of Linux desktop and prevent Nouveau from reclocking properly.
And what about AMD bug tracker? It's open, so you can see the bugs. That's a plus, not a minus. Nvidia blob has all the bugs hidden somewhere, so you don't see them. It doesn't mean the blob doesn't have them.
> It's shame, because they hinder the progress of Linux desktop and prevent Nouveau from reclocking properly.
I think it's the opposite. Some years ago, Nvidia was your only chance to have accelerated graphics on Linux. ATI/AMD didn't care about it at all, and Intel cards were not for gaming. So Nvidia made it possible to do things in Linux when nobody else allowed you to... how's that hindering the progress of anything? Specially when nobody forces you to get an Nvidia card.
> And what about AMD bug tracker? It's open, so you can see the bugs. That's a plus, not a minus. Nvidia blob has all the bugs hidden somewhere, so you don't see them. It doesn't mean the blob doesn't have them.
Yes, I didn't say Nvidia was bug free. I just said AMD drivers for Linux are, at the moment, far from perfect, despite being opensource. I'd say, for newer cards, they're worse than Nvidia's. I value opensource, but if I have to choose between having an opensource desktop crashing twice a day, vs. the Nvidia blob, of course I'd go for the latter, as much as I'd love to have a fully opensource OS.
I was Nvidia user for a long time due to the above, but today they aren't worth bothering with. AMD can be slower to fix bugs or have more of them on release day due to having smaller teams, but they are gradually ramping that up, and their current level of support already doesn't bother me, while they are providing a proper open source driver. Nvidia don't and have no plans to. I'd take AMD over Nvidia today any time.
Regarding slowing down progress, I was talking about modern desktop like Wayland compositors and so on. Nvidia was hindering it for years. And their attitude towards Nouveau is disgusting.
Well, I've been using Nvidia cards for years, and the last time I built a new computer (some months ago) I had a hard time deciding whether to stick to Nvidia or switching to AMD. Eventually, I chose to stay with Nvidia, because getting a new AMD card (apart from the fact that there seems to be no budget AMD cards...) seemed like a lottery in terms of having a stable Linux desktop environment, being my best bet to get an older generation card (RX570 or RX580), that had not much availability and they were overpriced here.
As for slowing down Linux desktop progress, I think it's not Nvidia's fault: you could always get a card from another vendor, although the alternatives were not as good. Well, maybe those other vendors are to blame, and not Nvidia...
I'd say it's their fault, since due to the above situation, there were a lot of Linux users with Nvidia cards. Nvidia didn't care to upstream things and that caused them not to support Wayland and many other modern use cases for years.
Today it's less relevant, since usage of Nvidia on Linux is gradually dropping, so their damage to the progress is also diminishing thanks to that. Wayland compositors' developers can simply say - we don't support the blob and don't plan to and be done with it. In the past it was much harder, due to how many Linux users had Nvidia still while alternatives were way less viable.
I encountered a real fun bug where a game on linux crashed and a ghost of the game remained on the monitor even after it was connected to a different computer and power cycled, it remained for days. Some really interesting cascading bugs there.
That's not a software bug, that's an image retention issue with your monitor. If it was that severe then it probably got into a state where it was sending severely invalid timings to the TFT LCD array, DC biasing it, which causes long-term retention and may even cause permanent damage if done for too long.
Software isn't supposed to be able to cause that. That's on your monitor.
I _think_ it was every other frame, and I am fairly sure that it was a software/driver issue. It had never happened before, it has not happened since, and it started immediately when starting the game and the symptoms got progressively worse and triggering the mild symptoms happened every time I started the game.
What I convinced myself of after a few minutes being sure I wasn't hallucinating was that the graphics driver was pushing out malformed data in some way or the other which was triggering bugs in the monitor hardware/firmware, which is easy to believe are plentiful. It would be an interesting project to try to track down and replicate the bug.
That reminds me of the spookiest bug I've ever encountered: once, when resuming a Dell laptop from suspend at work, it showed a Windows desktop. Said laptop had been running Linux exclusively for several months (but it had previously been used with Windows). Interacting with the laptop made the expected xscreensaver unlock screen appear, and everything worked normally afterwards. The only explanation I could come up with was that, somehow, a snapshot of the Windows screen had survived intact in a corner of the framebuffer which the Linux driver didn't touch, even after months of power off/on and suspend/resume cycles, and a bizarre driver glitch made it visible in that particular resume cycle.
I agree, if it weren't for the fact that they give zero shits about Wayland support. I'd be totally fine with them staying closed source as long as they kept up with the standards.
What are you talking about? Wayland is supported on DEs that wanted to support nVidia chips.
Meanwhile projects like Sway have a direct "Go to hell if you use nVidia, we won't let you run this code." It's bizarre that you blame nVidia for this.
It's possible to create a Wayland compositor that works with the proprietary nVidia drivers, but it requires using nVidia-specific interfaces because nVidia refuses to support the same interfaces for non-GLX, non-X11 hardware acceleration provided by every other Linux graphics driver.
It's hardly surprising that a lot of Wayland compositor developers would rather not put in a ton of extra effort to add a special case for one particular set of proprietary drivers, which they would then need to maintain and support separately from the common code path.
To tell the whole story, the NVIDIA argument is that they want cross platform standard interfaces (EGLStream), which would use the same code the Windows driver uses, but the Linux world is pushing for Linux-only interfaces (EGL)
That may be, but the fact remains that nVidia is pushing an interface that no other Linux drivers currently support, for reasons that really only benefit them. The Linux kernel team has never been particularly supportive of middleware layers designed to promote common drivers between Linux and other operating systems, and for good reason—it impedes the development of optimized, native Linux drivers.
The only way I see nVidia succeeding here is if they clearly demonstrate that EGLStreams is a technically superior alternative to GBM, not just for their own hardware but in general, and also contribute the changes needed to support EGLStreams for all the other graphics drivers currently using GBM so that applications don't need to deal with both systems. As long as the EGLStreams code path can only be exercised in combination with the proprietary nVidia drivers it will remain a second-class citizen and projects would be well-advised to avoid it. (Drew DeVault goes into more detail[1] in his objection to the inclusion of EGLStreams support in KWin, which I agree with 100%.)
Or they could just acknowledge that this is a Linux driver, not a Windows driver, and implement the standard Linux GBM interfaces like everyone else even if that means less shared code.
It’s “””supported”””. It’s apparently very buggy and very difficult to debug. Sway lets you run it after you set a flag making it very clear that if something is broken you may not report a bug since the developers are unable to reasonably fix it.
Most Linux distro will also prevent you submitting a bug report for a kernel issue if you have a tainted kernel.
wayland doesn't work at all so if you have a 4k monitor and a non-4k monitor and an nvidia card, you're basically just fucked, because you can't selectively scale things
I have. I needed a prerelease kernel for a new driver but nvidia had not released a binary for the new kernel yet so I was unable to use anything but the open source nvidia driver.
Not to mention that nvidia uses proprietary configuration options even in Xorg.conf. A multi-monitor configuration which works fine in nouveau (or really any other driver) refuses to work with nvidia, because if you use the binary driver you have to set bizarre metamode options to make it work.