Linked by Thom Holwerda on Mon 25th Dec 2006 19:58 UTC, submitted by Michael Larabel
3D News, GL, DirectX "Nouveau is a community project that is working on producing open-source 3D display drivers for NVIDIA graphics cards. Nouveau is not affiliated with Nvidia Corp and is an X.Org project. While this project is still far from being completed, for this holiday special we are sharing some of our first thoughts on this project from our experience thus far. We would like to make it very clear, however, that the Nouveau driver is no where near completed and still has a great deal of work ahead for the 3D component. This article today will also hopefully shed some light on the advancements of this project so far."
Thread beginning with comment 196138
To view parent comment, click here.
To read all comments associated with this story, please click here.
RE[2]: License violation?
by Xaero_Vincent on Tue 26th Dec 2006 00:04 UTC in reply to "RE: License violation?"
Xaero_Vincent
Member since:
2006-08-18

I don't understand the distinction between "clean-room" and "regular" reverse engineering. I don't see how developers can do anything except getting "down and dirty", when no specifications are availible.

Has Nvidia confirmed that Nouveau is not violating the EULA?

I totally encourage open-source driver development, but only as long as it respects EULAs. Nvidia was nice enough to respect us by creating a GPL shim kernel module that dynamically executes the driver blob.

Reply Parent Score: 1

RE[3]: License violation?
by cromo on Tue 26th Dec 2006 00:30 in reply to "RE[2]: License violation?"
cromo Member since:
2006-06-17

Well, read about it, e.g. here: http://en.wikipedia.org/wiki/Clean_room_design . This kind of reverse engineering is not forbidden (thus allowed) by law in most countries and nvidia has no way to forbid it AFIK.

Reply Parent Score: 3

RE[3]: License violation?
by zima on Tue 26th Dec 2006 01:44 in reply to "RE[2]: License violation?"
zima Member since:
2005-07-06

Simplest solution to EULA prohibition of reverse engineering, decompiling, or disassembling would be to do that in a place where you don't have to care about this points of EULA (law allows them), such as at least some countries in EU...

Reply Parent Score: 1

RE[3]: License violation?
by woogs on Tue 26th Dec 2006 01:53 in reply to "RE[2]: License violation?"
woogs Member since:
2006-10-09

In clean room reverse engineering, you only observe the effects of the software with which you are working. In this case, the Nouveau developers are monitoring the values in the registers on the graphics cards when certain calls get made. They're working off the observed effects of the program, not the program itself.

To put it in other terms, the developers are building a set of requirements that accurately describe the functionality of an existing piece of software, then they're building (from scratch) new software that fulfills the requirements. When all is said and done, you have two, provably distinct pieces of software that do the same thing.

Reply Parent Score: 5

RE[4]: License violation?
by hal2k1 on Tue 26th Dec 2006 02:43 in reply to "RE[3]: License violation?"
hal2k1 Member since:
2005-11-11

Exactly.

There are methods to monitor the behaviour of a piece of running code, and then try to replicate that behaviour with your own alternative code (ie clean room reverse-engineering), without ever disassembling the original code or copying it in any way (other than reproducing its behaviour in other equivalent code).

Rough example: I might learn calculus from someone's textbook, but that does not mean that if later in life I write a calculus textbook of my own from what I have learned overall that I necessarily violate the IP of the author of the book from which I first learned.

To violate a copyright, I have to actually copy the original book's text in substantial part.

Edited 2006-12-26 02:44

Reply Parent Score: 5

RE[4]: License violation?
by kaiwai on Tue 26th Dec 2006 03:15 in reply to "RE[3]: License violation?"
kaiwai Member since:
2005-07-06

With the application they're using - which they wrote, would be interesting to see if they could apply it to other situations like Ati and Matrox.

Reply Parent Score: 2

RE[3]: License violation?
by hal2k1 on Tue 26th Dec 2006 02:58 in reply to "RE[2]: License violation?"
hal2k1 Member since:
2005-11-11

//I don't understand the distinction between "clean-room" and "regular" reverse engineering. I don't see how developers can do anything except getting "down and dirty", when no specifications are availible. //

"Dirty" reverse engineering would involve disassembling code and/or looking at the original source, then "plagiarising" it by writing different but equivalent code. There is more than one way to write any given "while loop".

"Clean" reverse engineering would involve taking the original code, running it, stimulating it with known, controlled inputs in a systematic manner, and observing the output that the running code then produced. Then one documents the functional behaviour observed, and then other people write new code to replicate that same functional behaviour using the original recorded observations as a specification.

Dirty replicates the original work, but palgiarised.

Clean replicates only the functionaility of the original, not the original itself.

It is the difference between making a fake look-alike copy of a watch and calling it a "Timeks" versus coming up with one's own distinct different design for a timepiece but which still did an exactly equivalent function as a real Timex ... display the time.

Edited 2006-12-26 03:01

Reply Parent Score: 4

RE[3]: License violation?
by porcel on Wed 27th Dec 2006 01:00 in reply to "RE[2]: License violation?"
porcel Member since:
2006-01-28

A EULA does not override the law of the land. Reverse engineering is perfectly legal, whatever any EULA of dubious legality itself, may say.

Reply Parent Score: 3