Skip to contentSkip to conversation

Unix code in Linux

DISCUSSION Neil Moore 3 participants 4 messages Jun 19, 2003 – Jun 20, 2003

lore
Share & tools
lore

Neil Moore

author
#0 lore raw

Slashdotter lspd pointed this out in a recent thread, thereby demonstrating that slashdot isn't completely useless.

Compare:
/usr/src/linux/arch/ia64/sn/io/ate_utils.c in Linux
to:
unix/malloc.c in UNIX 6th Edition (page 25 of the Lions code, lines 2522--2589)

atefree() is very obviously based on Unix's mfree(), and atealloc() on malloc(). atefree()/mfree() even have the *same leading comment*. Of course, there are some changes, but the overall structure and many of the details remain.

The copyright notice on ate_utils.c says:

* This file is subject to the terms and conditions of the GNU General Public
* License. See the file "COPYING" in the main directory of this archive
* for more details.
*
* Copyright (C) 1992 - 1997, 2000-2002 Silicon Graphics, Inc. All rights reserved.

This code is obviously not a trade secret, since it has been published in the 1996 version of the Lions book. However, it is copyrighted, and the book's (C) notice says:
. . . SCO [i.e. the Santa Cruz Operation, not The SCO Group] has granted a license to publish solely for the purpose of creating an educational work. SCO grants no license for any other use of this material . . . .

What kind of license did SGI have to the Unix code ca. 2000--2002? Did the original malloc()/mfree() appear in BSD Lite (and thus lost to USL/Novell in the settlement)? Is there any reason to replace this code? Is there any reason not to replace this code?

Signature · 1 line
Neil Moore: [email protected], http://s-z.org/~neil/
#1 lore raw

In article <[email protected]>,

Quoted 9 lines · Neil Moore

Slashdotter lspd pointed this out in a recent thread, thereby demonstrating that slashdot isn't completely useless.

Compare:
/usr/src/linux/arch/ia64/sn/io/ate_utils.c in Linux
to:
unix/malloc.c in UNIX 6th Edition (page 25 of the Lions code, lines 2522--2589)

BSD 4.3 and Unix V7 source is browsable online at
http://tamacom.com/unix/

Choose "V7" and search for "mfree".

The source being online is possible because the V1 - V7 source was put under a BSD-like license by Caldera in 2002. A copy of the license is still at ftp://minnie.tuhs.org/UnixArchive/Caldera-license.pdf

(there's much more at ftp://minnie.tuhs.org/UnixArchive/, including V6, V7 and 2.11BSD source).

So, in this particular case this doesn't seem to be a problem.

Mike.

author
#2 lore raw
Quoted 8 lines · Miquel van Smoorenburg

The source being online is possible because the V1 - V7 source was put under a BSD-like license by Caldera in 2002. A copy of the license is still at ftp://minnie.tuhs.org/UnixArchive/Caldera-license.pdf

(there's much more at ftp://minnie.tuhs.org/UnixArchive/, including V6, V7 and 2.11BSD source).

So, in this particular case this doesn't seem to be a problem.

The license to which you referred says, in part:

Copyright(C) Caldera International Inc. 2001-2002. All rights reserved.

Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:

[. . .] Redistributions of source code and documentation must retain the above copyright notice, this list of conditions and the following disclaimer. [. . .]

The file in question in the Kernel does not include any Caldera copyright notice, and in fact claims that the copyright belongs to SGI. Isn't that a violation of Caldera's copyright?

Of course, if SGI has an unlimited right to relicense Unix code as its own, it's not an issue.

Signature · 1 line
Neil Moore: [email protected], http://s-z.org/~neil/
#3 lore raw
In reply to Neil Moore
Quoted 24 lines · Neil Moore

Slashdotter lspd pointed this out in a recent thread, thereby demonstrating that slashdot isn't completely useless.

Compare:
/usr/src/linux/arch/ia64/sn/io/ate_utils.c in Linux
to:
unix/malloc.c in UNIX 6th Edition (page 25 of the Lions code, lines 2522--2589)

atefree() is very obviously based on Unix's mfree(), and atealloc() on malloc(). atefree()/mfree() even have the *same leading comment*. Of course, there are some changes, but the overall structure and many of the details remain.

The copyright notice on ate_utils.c says:

* This file is subject to the terms and conditions of the GNU General
Public * License. See the file "COPYING" in the main directory of this archive * for more details.
*
* Copyright (C) 1992 - 1997, 2000-2002 Silicon Graphics, Inc. All rights
reserved.

Quoted 7 lines

This code is obviously not a trade secret, since it has been published in the 1996 version of the Lions book. However, it is copyrighted, and the book's (C) notice says:
. . . SCO [i.e. the Santa Cruz Operation, not The SCO Group] has granted a license to publish solely for the purpose of creating an educational work. SCO grants no license for any other use of this material . . . .

I believe the original malloc/free code came from the "C programming language" way back around 1975-79".

Almost all of the base allocators came out of that book. And it was listed only as "a memory allocator", and the algorithms go back even farther. (I was taught that one using a fortran array around 1973.. and was told then that it had been used by IBM/CDC/... for memory allocation in assembler...)

Really.. there are only so many different ways to allocate memory, and this is one of the most basic. Lisp interpreters always had the most elaborate and complete ones, including this one. It is only slightly more complex than the old stack "mark/release" allocator in Pascal.