![]() |
|
|
This is a historical document, written in June 2003. I have updated the format, and text in italics is commentary added at a later date. The opinions expressed here are my own and have no relationship with the opinions or official viewpoints of any organization with which I was associated.
On Tuesday, 27 May 2003, I spoke to Kieran O'Shaughnessy, managing director of SCO Australia. He claims that there are two separate issues: the complaint against IBM for breach of contract, and the discovery of UNIX System V code in Linux, apparently put there by somebody else. He told me that SCO had entrusted three independent companies to compare the code of the UnixWare and Linux kernels. All three had come back pointing to significant occurrences of common code ("UnixWare code", as he put it) in both kernels.
In view of the long and varied history of UNIX, I wondered whether the code in question might have been legally transferred from an older version of UNIX to Linux, so I asked him if he really meant UnixWare and not System V.4. He stated that it was specifically UnixWare 7.
SCO are not prepared to say where the offending code is located, of course. I've done some thinking and came to the conclusions:
The Linux and UNIX kernels have very different structures. It's very difficult to copy code from Linux to UNIX or the other way round.
Linux source code is freely available. UnixWare source code is not, even less than many other proprietary UNIX implementations. Thus it would be easier to copy code from Linux to Unixware then from Unixware to Linux.
I have seen instances of open source code included without attribution in a specific vendor's System V source tree. No, I'm not going to say who it is.
One place where code sharing would make eminent sense would be in code designed to emulate the other kernel. For example, recent versions of UnixWare include Linux emulation. There are two ways to approach this task: write it from scratch or copy the Linux code. The latter would work better, but it would also require releasing the entire UnixWare kernel under the GPL. We stood before a similar problem in the FreeBSD project. Although FreeBSD is an open source operating system, it's not GPL, and we don't want to be subject to the restrictions of the GPL. As a result, we wrote the Linux support from scratch.
But what about Linux taking the System V ABI code from UNIX? Well, yes, they did that, legitimately. One of the main companies involved in its development was Caldera. See Linux Support for Non-Linux Programs and the Linux ABI project for details. At the time he wrote it, Christoph Hellwig was working for Caldera. But this is an irrelevant detail: it's a patch, not in the base Linux kernel.
All of this is pure educated conjecture, of course. But I'm sure I'm not the only one who has come to this conclusion. If SCO is innocent, it's easy enough to prove it--now. They only need to point to the offending code, which is a good idea even without such theories. If they do it later, they'll leave themselves open to charges that they have rewritten the Linux support in the meantime.
At some later date SCO came up with a single example of code clearly copied from Unix. Not from UnixWare, but from System V.4, as detailed here, and bases on an old and primitive definition of malloc(). Hardly state of the art. As it stood, it was covered completely by the Ancient Unix license.
Greg's home page | Greg's diary | Greg's photos | Copyright |