LWN.net Logo

Depends.

Depends.

Posted Oct 11, 2006 6:04 UTC (Wed) by jd (guest, #26381)
In reply to: Making sense of the One Laptop Per Child proprietary software row (Jem Report) by elicriffield
Parent article: Making sense of the One Laptop Per Child proprietary software row (Jem Report)

Typically, I believe people do a "clean-room" version in circumstances like this. In other words, person A signs the NDA for the source code and writes a formal specification of what it does. No code, no exposure of code, just a specification. Person B, who has neither signed the NDA nor seen the source code, then writes a driver based on the specification.

This is usually tolerated by companies, as it (a) keeps their intellectual property safe, (b) adds extra customers for the hardware - where the money is anyway, and (c) doesn't expose their code to any meaningful peer-review.

This is also usually tolerated by Open Source developers, as the clean-room implementation is (a) unburdened, (b) semantically identical to the original (although not syntactically identical), (c) much more likely to be correct and feature-complete than if a hostile company picks and chooses what to put in a published specification. (I shouldn't need to name names here.)

Although not often mentioned as a feature, clean-rooming can lead to cleaner code, as there's less risk of cruft or architectural defects caused by the inevitable failures of communication between hardware and software divisions of a corporation. For this reason alone, ancient and crufty code is almost always better re-engineered by clean-rooming it than attempting to fix.


(Log in to post comments)

Copyright © 2008, Eklektix, Inc.
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds