Monday, October 19, 2009

Is SCO Waiting for Godot?

Bankruptcy Judge Kevin Gross remarked in his recent ruling that ongoing SCO Group litigation attempts were like a bad version of Samuel Beckett's play, Waiting for Godot. The almost decade-long legal saga gained publicity in the FOSS community for targeting Linux as illegally containing licensed AT&T UNIX System V source code.

According to Ars Technica, as part of its Chapter 11 restructuring, SCO has indicated in a required SEC filing that CEO Darl McBride is Estragon, gone, gone, gone! McBride was behind the attempts to sue multiple corporate Linux users and demand hefty licensing fees. However, during the protracted litigation the strategy backfired when an internal SCO memo surfaced that revealed audits of Linux, by SCO itself, found no evidence of any UNIX license infringements. The courts also determined that SCO never actually owned the relevant UNIX copyrights in the first place.

During 2003-2004, all these legal machinations led me to investigate SCO's claims more deeply, while writing Chap. 4 "Linux Load Average" for my Perl::PDQ book. I didn't want to get indirectly caught up in the litigation for making statements that weren't true. A central question hinged off a public email put out by Linus Torvalds, where he stated categorically that he wrote every bit (literally) of the original Linux kernel. Even if that were true, how could he be absolutely certain that someone else, as part of an open source contribution, did not introduce System V code into later Linux versions? In particular, the load average code in the kernel is the sort of thing that one would not necessarily want to reinvent. Consistent with OO reuse philosophy, why not just insert existing code? SCO actually claimed that IBM was guilty of doing just that. Regardless of what IBM did or did not do with Linux code, from a purely engineering standpoint, reuse makes a lot of sense.

In the upcoming GCaP class (Nov 16-20), there is a module entitled "Linux, Lexus, Linus and Load", where I show how I resolved this question in favor of Torvalds by comparing the code for the load average in Linux 2.6 online (thanks LXR in Norway!), FreeBSD and Solaris. Along the way, I also discovered that not only is load-average instrumentation multifarious in its manifestations, but the concept has its origin in the CTSS project at MIT, which predates UNIX by about a decade!

No comments: