Why Don't Companies Release Specs?
Mhrmnhrm asks: "With the recent activism by the OpenBSD crew focusing on release of documentation from the likes of Adaptec, Intel, and others, I'm left to wonder: why do companies insist on believing that by denying access to the specs, they somehow gain an advantage? It's not like telling a programmer how to communicate with the underlying hardware is going to tell them how it (the PCB/silicon) was designed, so why make this information secret?"
why do companies insist on believing that by denying access to the specs, they somehow gain an advantage?
The reason is that the ones with pointy hair are running the show and they don't really understand.
sudo eat my shorts
they dont want the world to see how crappy their design is...
1. sometimes the companies don't even have documentation because they've never bothered to write it themselves
2. the company has gotten itself locked up into some NDA bullshit
3. the hardware sucks so bad they don't want people to have documentation proving how shitty it is (as is the case with Adaptec)
vodka, straight up, thank you!
The IP that they are trying to protect is 1) largely in the driver software and 2) any driver that doesn't use the technique is likely to suck. So, either these companies give up trade secret protection (not likely), they provide closed source drivers (nvidia), or the flip OSS the bird.
It's not like this is some great mystery it's just people trying to what they *THINK* is best for themselves.
You might argue that they're wrong about the conclusion but it's no great mystery as to how they arrived at the conclusion.
You are not a beautiful or unique snowflake -- but you could be if you got off your ass.
You're telling me that they don't have internal documentation anyway?
How do they develop their own drivers, etc?
And it DOES stand to make them more money...why am I going to buy a product that is unsupported?
That's a lost sale...
With wider compatability, they allow their marketability to improve.
If there aren't drivers for my OS, I won't buy their hardware. Period. They just lost a sale from me. I personally know 20 people that do the same. And thats just people I know in person. Thats not counting the hundreds of people I have talked about this with online.
I'm not saying they should release it out to the general public, but allow developers to read the docs and write the code for it. We don't want them to write the code for us, or to be 1st level support. Hell, the only time we'd talk to them after getting the docs, is to report a bug.
Because it would cost them money to (1) write coherent and complete documentation and (2) review that documentation to make it safe and legal for public consumption. Why would they spend all the extra time and money to do that when it doesn't bring them any more profit?
:)
Because they (should) already have these docs to write the Microsoft driver ?
pol
European Linux user, living in Antwerp
Goody for you. When you and your friends who think like you are enough of a market share for them to care, their practices will change. Have fun.
7 November 2006: The day Americans realized corruption and incompetence weren't addressing 11 September 2001
<rant>
With that said, we actually do get decent specs on individual chips or chipsets, they are always in just paper of PDF form. Even the most complex devices (UARTs, ethernet controllers, etc.) simply come with a Rosetta stone of diagrams. Then we start the regular cycle: I take the diagrams, decode them, build up a low layer of software to talk to the thing, add more stuff to exercise the features we want, test it, and finally integrate it into a WinCE/Linux/Tornado/whatever driver that does what we're using. All this despite the fact that they ship development kits with binaries (usually Windows or DOS programs) that already talk to the stupid things.
On several occasions I have told the sales guys at hardware vendors that providing source code to some chunk of software that simply does some basic communication with the part would give it big brownie points in the selection process - save us a month of programmer time and you bet we'll think hard about your chip. When I ask if they could part with some of the stuff to help us skip steps 1-3 above, they always give a uniform NO. It doesn't matter what NDA we've signed or a if we are willing to take the code stripped of features and with no warranty. Sometimes I'll get sympathy from application engineers instead of sales droids, but whenever they try to get approval up the food chain they get shut down.
I understand that source code is an incredibly valuable asset (heck, I write the stuff), but why don't hardware/chip vendors realize that handing out or (or selling it cheap) helps sell chips? After all, the stuff's worthless unless you actually get your hardware out there to be used!
</rant>
Whew! That feels better. Anyone from the hardware manufacturing end want to chime in?
"Prepare for the worst - hope for the best."
You're telling me that they don't have internal documentation anyway?
Internal documentation is written for people who already have secret clearance within the company, not for publication. It would take a lot of effort by highly paid lawyers and technical writers to clean up a secret document for public consumption.
With wider compatability, they allow their marketability to improve.
More than likely, the lost profits from not reaching the <10 percent of the market willing to pay only for devices with public documentation are less than the lost profits from incurring the expense of cleaning up internal documents.
I have experience with a few different companies that make chips for PCs. I've found that the most common reason for keeping specs proprietary is patent liability. Areas like computer graphics are minefields with thousands and thousands of patents held by unfriendly entities. If you publicly release a detailed spec for your graphics chip you are inviting these unfriendly patent holders to look for potential litigation.
It's not like nVidia and ATI are looking for reasons to sue each other, it's more about some no-name holding company looking to litigate something like Cadtrak's XOR Cursor patent.
This might also be a competitive thing for Microsoft since they own a big pile of 3D graphics patents from SGI. Microsoft might take legal action against a chip supplier that publishes a spec for a 3D graphics chip that violates one of the old SGI patents.
In my experience most tech companies are now pretty hip about linux and free software, but the potential downside holds them back from releasing specs to the community.
jeff
The ISA (Instruction Set Architecture) is the specification that is needed before writing an OS, compiler or any other low-level software for a given CPU. It's no secret, especially for a very widely used architecture like x86.
In fact, there's this.
I'm not writing documentation, but seldom help with some technical details and help with translations.
Guys, just to understand the problem you have try first write something. Writing good documentation would require someone who can think straight and clearly. And as you can imaging if company got such guy/girl - s/he will be busy doing product itself, rather than documentation. That's first.
Second. On PC market change of technologies occurs every half of year or something like that. Writing documentation, getting thru all bureaucracy for confidential document to be released will be precisely about this half of year. In other words, when documentation is ready - it is already outdated. You can btw notice that industries with longer release cycles normally end-up with decent documentation - they have time and money. Having no money you cannot afford longer release cycle. Telcos are good example of that. Industrial automation is another one.
So PC industry is sort of its own worst enemy. Tight competition force producers to save where possible - e.g. optional component such as documentation. If you have some bright heads, producer can manage to update product line more often - edging against competitors - but again bright heads will be busy with product release, rather than its documentation.
Having dedicated personnel to handle documentation is just expensive.
P.S. One more problem is when product is partially based on some licensed third party development. Most small producers have to license things, since they cannot develop everything in house. Than it happens that documentation ends up with hell a lot of copy'n'pasting from third party one. To release that you have to get a permission from third party: but in most situations you will find out that third party has licensed some parts itself. In the end no-one just want to risk releasing the documentation, especially in litigious U.S.: most companies when finding their parts in someone's else released products may start asking for fees. With all consequences. Hiring experienced attorney for going thru all this licensing mess - and getting clearance from all involved parties - will cost a lot money, most producers just not able to afford.
All hope abandon ye who enter here.
It's not like telling a programmer how to communicate with the underlying hardware is going to tell them how it (the PCB/silicon) was designed, so why make this information secret?
Granted things like video cards and ethernet cards and stuff are significantly more complicated than say, guitar stombox effects and amplifiers, but electronics are electronics. It is not entirely impossible to look at the part itself and map out all the traces on the board (gets harder on multilayer boards, but it's still not impossible). Parts are parts, in the case of resistors, capacitors, diodes and stuff, and they're all marked and/or measurable. Lots of circuits have common subcomponents that are 'universal'- no different than linked lists or binary trees are to programming. Maybe you'll see a proprietary IC, but its manufacturer might have the specs available- I haven't seen an IC data sheet yet that doesn't have an internal schematic of the IC. You might be able to buy them from that manufacturer directly, or build the equivalent from other ICs and parts.
Far as I can tell though, most ICs are pretty standard and available.
So then... releasing their specs or not, it makes no difference on whether or not someone could figure out how their card works and/or clone it.
Yes I realize this takes a lot of work and man-hours to do, but surely this happens in industry of all sorts all the time.
do() || do_not();
Not to say there aren't other reasons already mentioned here, but the most common situation I've seen (and I got quite a few specs released out of DEC in the early '90's), is that the specifications often have a mixture of information considered proprietary (e.g. detailed logic design) and the programming information.
Seldom were there a nice set of documents, partitioned between programming and logic design.
So you have to track down the right documents, edit out the stuff that hardware folks are worried about, and get the right sign-offs. And you therefore have to deal with whatever random document preparation system was used by the engineers to do the documents.
This all turns out to be a fair amount of time, trouble and hassle.
So even if there aren't other paranoid concerns, it is harder than one might naively think.
That means companies like Broadcom (they tend to not have any drivers for linux) won't get chosen by anyone wanting to run Linux, and thus will lose money as people will chose non-Broadcom hardware.
I'm not sure about all hardware, but I'm sure part of the reason Broadcom doesn't openly document their WiFi hardware is because they use software radios, where all of the channel number to frequency conversion is done in the driver and not in the hardware.
This would mean that someone writing an open source driver would have to properly tell the hardware what frequencies to use--something that shouldn't be a problem.
However, it also means that you could easily tell the radio to broadcast in frequencies (and possibly powers) that aren't within the spectrum their FCC license covers. IE, people could do things they aren't supposed to and maybe Broadcomm is worried about law suits.
--
Don't fight Firefox! Let FireFox fight YOU!
That would be a good reason not to release the driver itself as open source/free software, but that doesn't explain why the specifications are closed.
An example, 50% of Ati's cards functionality is in the driver, 50% on the card. We want the specs to access that 50% of the card, not the source code for the 50% on the drivers.
Pupeno
If there aren't drivers for my OS, I won't buy their hardware.
Well duh, I am glad you are against buying hardware you cannot use. Actually I am also glad you are not willing to change OS on a whim because there is some fancy peice of hardware you want to run.
OS support is a feature of a product. If they dont want a segment of a market then they don't release drivers for it. If they are unwilling to put effort into an OS, then they can leave it up to the community to provide it by releasing the specs. But they don't have to if they feel they can live without the market share.
Opening specs is a buisness decision. I personally think its a good idea, but if they dont want a certian percentage of the market, it is up to them.
I'm a good cook. I'm a fantastic eater. - Steven Brust
I went into McDonalds last week and ordered prime rib with a side of potatoes. They wouldn't sell it to me.
When i go into a restraunt, i expect to order and get whatever i want. If they don't serve what i want, i won't eat there. Period. They just lost business from me. I know at least 20 people who tried to order steak from McDonalds and they wouldn't offer it, that's not counting the hundreds of people online who want all kinds of stuff that McDonald's doesn't sell.
I'm not saying that McDonalds should forsake thier demographics, target market, or any plans they had, but at least allow restraunt-goers a chance to eat whatever they want.
You've clearly never had to write a driver for hardware that's produced down the hall
In addition to the cost of producing it, there's other issues. Did the company license some IP for their internal use? If so, can that IP be documented and sent out to third parties? Someone has to check to make sure the relevant legal contracts are followed. Next, did we develop some new and novel way of doing something that's covered by a patent? Is it ours our someone else's. Fear of lawsuits from third parties often drives a company to disclose as little as possible. On the 'simpler' devices, much of the information necessary to write a driver may be novel ways of, for example, encoding something in software that might otherwise be done in hardware. Sometimes these tricks may save lots of money for the hardware company who can sell modems $5 cheaper than their competitors. Why make it easy for them to understand your cleverness?
Finally there's good, old fashioned secrecy. Does Macy's tell Gimble's, as the old (now somewhat dated) adage goes. The idea here is that your competitors should have as difficult a time as inventing something as you did, and any hints or short-cuts that you can give them may eat into your profits. Maybe they make a hardware board that's compatible with your driver, this cutting the cost of their development time since they don't have to do the software. Who knows how this information will come back to bite you.
All of these effects on the bottom line are seen as swamping any increase in hardware/software sales to the open source crowd. Not that they are right about this (or wrong for that matter), just how they think.
Warner
I just spent the entire afternoon looking for a webcam that we could use with linux for a project.
I tested just about every model avaliable... and none met the requirements, wich are work with linux and be recognized by Java Media Framework.
I know that there is a standart for USB MassStorage devices, so is just a matter of implementing ONE driver that will be compatible with every hardware that implements this standart.
Standarts make easy for developers to create drivers, and for vendors to make compatible devices. There are lot's of success cases out there, so why keep on creating non-standatized devices!?!?!
---- You know how some doctors have the Messiah complex - they need to save the world? You've got the "Rubik's" complex
> You're telling me that they don't have internal
> documentation anyway? How do they develop
> their own drivers, etc?
In many cases, no, they don't have documentation. What they have is a guy who knows the hardware and a guy who knows the firmware and a guy who hopes to know the software and they all talk until they are blue in the face.
The problem here though, is that McDonalds has never made the impression to anyone that they sell steak. Its like asking Adobe for full documentation on Windows; they have no idea.
Wouldnt full specifications from McDonalds actually be them telling you exactly what is in each Quarter-Pounder with Cheese, and exactly what happens behind the scenes when they cook it?
I dont know about you, but I think those are some specifications that are better left unreleased.
And keep in mind that I work for an SME and this is just one company in a sea of thousands...
Exactly.
Yet here you are, just as clueless! I'm sorry that the real world is not a happy friendly let's-all-get-along place. It'd be a lot nicer if it were. But the fact is, here and now, short term profits drive 90% of western society in one way or another. To ignore that reality is stupid.
As for what's happening in the market, you need to get real ifyou think I was saying anything other than "money talks, put yours where your mouth is".
7 November 2006: The day Americans realized corruption and incompetence weren't addressing 11 September 2001
Let's send some email to Linux magazines like Linux Journal and others, asking them to interview a few companies like nVidia, ATI, Broadcom and others about this question. Maybe if they think there's enough publicity pressure, they'd give useful answers. Then instead of wondering, we'd *know*.
So by all indications it's safer to sit on the documentation rather than do something and get busted, one way or another. Rules of the business world are quite different from the rules of F/OSS world.
In essence, it's the "patent" argument. All information may be "free", but the first person who spends money creating it is the loser, as the other parsites sponge off their work and don't need to recoup those dollars.
Any sect, cult, or religion will legislate its creed into law if it acquires the political power to do so.
There are a few reasons I have seen based on RE drivers. I'll name a few here in no particular order.
Embarrassment. Sometimes they don't want to tell you that it's necessary to reset the chip repeatedly until it just happens to initialize correctly (probably due to a design flaw).
More embarrassment. They don't want to admit that many of the so-called 'hardware features' are really implemented (poorly) in the driver. Many IDE "RAID cards" are just a bunch of IDE co ntrollers. The RAID is in the driver. The driver's RAID implementation is not generally anywhere near as good as the Linux soft raid device.
Closely related to the above, for (snake oil) security devices, they don't want to document that flipping bit 5 of the 3rd register will bypass all protection.
The IP isn't theirs. The product is just relabled.
Their default answer to anything is NO, and they haven't (and probably won't) give it any thought.
In the case of some graphics cards, they don't want the public to find out the driver has hacks in it to cheat the benchmarks.
If you don't use your own chips, you don't write drivers for them, either.
Contrary to the popular belief, there indeed is no God.
That argument is absurd. If the hardware is capable of significant output on unpermitted frequencies, what's to stop a corrupted driver download, or bug in the official firmware, from doing that? Wireless cards are complex systems that are certainly prone to bugs.
What if a disgruntled employee leaks the docs? Will the company have its FCC certification immediately revoked? If so, why would management build hardware that exposes them to that risk?
What if someone reverse engineers their hardware and writes a fast-propagating worm that programs it to jam law enforcement frequencies? Or microwave users' balls?
If the FCC was truly anal about theoretical interference, it would not certify software transmitters at all.
Several chips from the previous 802.11b generation are heavily documented. Some of them allow sw to increase power output to >=250mW, which combined with a large directional antenna will exceed FCC allowable output. Wait... why aren't these companies being raided by the FCC and DHS?
Frankly "Blame the FCC, we're their bitch" is just a vendor cop out created by competetive paranoia, lawyer power trips, and corporate inflexibility.
They're trying to get the BSD nerds to f*ck off while they sell to the trillions of Windows users that don't mind a silicon-induced lock up twice a week.
Hey, I'm not bitter.. I'm right.
When the number of device driver writers for your part numbers in single digits, you don't need super great docs. When you try to write good docs, the next thing people will complain about is the quality of the docs!
"This mission is too important to allow you to jeopardize it." -- HAL
And now translating this back to the issue at hand:
I asked nVidia to sell me a wireless access point. They wouldn't sell it to me.
When I ask a hardware vendor for a specific piece of hardware, I expect to have it sold to me. If a video card manufacturer refuses to sell me a wireless access point, I won't buy it off them. They just lost a sale! I know at least 20 people who won't be buying wireless access points from nVidia, not counting the hundreds of people online with whom I discussed this topic.
I'm not saying nVidia should forsake their demographics, target market or whatever other fancy words you wanna throw at it, but at least they should sell me a wireless access point if I decide I want an nVidia branded one.
God, it's true... Running something through a babelfish, then have the fish translate it back to your own language DOES produce funny results! Either that, or your analogy was dead-on wrong, but we all know that's impossible, don't we?
Install windows on my workstation? You crazy? Got any idea how much I paid for the damn thing?
Would it be possible to develop a standard conversion tool that translates or at least helps to translate Windows driver source code to Linux driver source code, which would then be releases as binary only? So that HW manufacture could produce a binary Linux driver easily without too much expensive Linux experience work and without revealing their (perhaps legally hazardous) specs to outside community?
Note that IF a company wants to release HW specs it is mainly because they want to have Linux drivers available and a Linux market. It is not that releasing specs would be ever ba an end itself, but rather an unpleasant means.
Generally, wouldn't it be a time for Mr. Torvalds to start thinking about making life easier for proprietary driver development (like freezing the driver binary interface between minor kernel releases).
On the other hand, why is open source hardware development not catching on? Is it again this patent isssue? If the OSS community would provide nice open blueprints for hardware, I don't see why the chinese wouldn't be more than happy to print millions of chips for the consumer market, with manufacturing costs only, no development costs at all.
Anssi Porttikivi / app@iki.fi
The topic is about open specs, not open source. The idea is that opening the spec, that is, making the interface of the device public knowledge, will allow community to write open source drivers and provide support for them. Keep your drivers closed source if you want, just give me the neccessary info to make my own open-source ones.
In any case, I suspect that ten thousand dollars would be pocket change compared to the cost of developing the hardware in the first place. If so, it might be more expensive trying to develop hardware that matches a given interface than to make your own interface and drivers.
Forget magic. Any technology distinguishable from divine power is insufficiently advanced.