Does SCO own read-copy-update?
[Posted June 13, 2003 by corbet]
Thanks to Con Zymaris for pointing us to
this
interview in The Age with Laura Didio, the Yankee Group analyst who
signed SCO's NDA and looked at the company's evidence. Says Laura:
SCO claims there are multiple instances of copyright violations. SCO
said these include: NUMA (Non Uniform Memory access) a mechanism for
enabling large multiprocessing systems, RCU (Read Copy Update) (and)
SMP.
Now, it's hard to point at a particular spot in the kernel and say "this is
the NUMA (or SMP) implementation;" that code tends to be widely
distributed. But read-copy-update is a different story.
RCU is a complex locking technique that is well suited to data structures
that are read often and modified relatively rarely; LWN covered RCU on the Kernel Page
almost one year ago. The RCU patches did indeed come from IBM, with
early patches
showing up in the first part of 2001. IBM also presented
RCU at the 2001 Ottawa Linux Symposium. SCO could conceivably have a case
here.
The origins of RCU are described in this
paper by Paul McKenney and John Slingwine. In the acknowledgements
there you'll find:
This work was done with the aid of Macsyma, a large symbolic
manipulation program developed at the MIT Laboratory for Computer
Science and supported from 1975 to 1983 by the National Aeronautics
and Space Administration under grant NSG 1323, by the Office of
Naval Research under grant N00014-77-C-0641, by the
U. S. Department of Energy under grant ET-78-C-02-4687, and by the
U. S. Air Force under grant F49620-79-C-020, between 1982 and 1992
by Symbolics, Inc. of Burlington Mass., and since 1992 by Macsyma,
Inc. of Arlington, Mass. Macsyma is a registered trademark of
Macsyma, Inc.
The paper is intense and detailed - if its authors copied the technique
from Unix, they went to unusual lengths to track down earlier work, perform
benchmarking, and apply complicated mathematics to the question of which
locking scheme is best. The real proof of origin will be in the reports
the authors sent back to various funding agencies over a period of almost
thirty years. It would appear, however, that SCO is going to have a hard
time establishing ownership of this technique.
The code, however, could be a different story. The original
Linux RCU patch was taken out of Sequent's old Dynix/ptx operating
system. Information on Dynix/ptx is a little hard to come by now, but the
Internet Archive has its uses... here's a
copy of a Sequent.com page from 2000 describing the system. Among
other things, this page says:
In 1998 Sequent (now merged with IBM) joined IBM and Intel in
Project Monterey to develop an industry standard, high volume,
enterprise Unix. As a member of the Project Monterey product line,
NUMA-Q's high-end operating system, DYNIX/ptx, is being enhanced to
provide increased commonality of technologies with AIX and Project
Monterey for IA-64 and a common application development
environment.
So, work from project Monterey did go into Dynix, and code from Dynix went
(after some significant transformations) into Linux. So it is truly
possible that SCO is sitting on a code base which contains an RCU
implementation that is remarkably similar to the one found in the Linux 2.5
kernel.
Who owns that code, however, will depend entirely on the history of contracts between
SCO and IBM. It seems unlikely that RCU was part of the original Unix code
base; more likely it was added to Monterey by Sequent/IBM. Depending on
what contracts IBM signed, it may well have given up the right to release
the RCU code under the GPL. Or maybe not.
RCU is used in several places in the 2.5 kernel. It has, in general, been
retrofitted into existing areas of code as a performance improvement. If
need be, those patches could certainly be reversed and RCU removed from the
kernel. It would slow down 2.6, and have a small performance impact, but
it would not be that big of a problem. But that is an issue for the
future; SCO first must prove its rights to the code.
(
Log in to post comments)