On Sun, Oct 05, 2014 at 11:36:33AM +0200, Ingo Schwarze wrote:
> Hi,
>
> talking about setting the record straight...
>
> System Administrator wrote on Sat, Oct 04, 2014 at 11:57:56PM -0400:
>
> > 2. Open*BSD* as the name implies, had no "decades old" Unix code and
> > by now has had much of the _original_ BSD code replaced as well.
>
> The ancestors of OpenBSD are, in direct line only:
>
> * Version 1 AT&T UNIX (Nov. 1971)
> * Version 2 AT&T UNIX (June 1972) based on v1
> * Version 3 AT&T UNIX (Feb. 1973) based on v2
> * Version 4 AT&T UNIX (Nov. 1973) based on v3
> * Version 5 AT&T UNIX (June 1974) based on v4
> * Version 6 AT&T UNIX (May 1975) based on v5
> * PWB/UNIX 1.0 (July 1977) based on v6
> * 1BSD (Mar. 1978) based on v6
> * Version 7 AT&T UNIX (Jan. 1979) based on v6 and PWB
> * 2BSD (May 1979) based on v6
> * Version 32v AT&T UNIX (May 1979) based on v7
> * 3BSD (Feb. 1980) based on 32v and 2BSD
> * 4.0BSD (Nov. 1980) based on 3BSD
> * 4.1BSD (June 1981) based on 4.0BSD
> * 4.1aBSD (May 1982) based on 4.1BSD
> * 4.1cBSD (Dec. 1982) based on 4.1aBSD
> * 4.2BSD (Sep. 1983) based on 4.1cBSD
> * 4.3BSD (July 1986) based on 4.2BSD
> * 4.3BSD-Tahoe (June 1988) based on 4.3BSD
> * BSD Net/1 (Mar. 1989) based on 4.3BSD-Tahoe
> * 4.3BSD-Reno (June 1990) based on Tahoe and Net/1
> * BSD Net/2 (Aug. 1991) based on 4.3BSD-Reno
> * 386BSD 0.0 (Mar. 1992) based on Net/2
> * 386BSD 0.1 (July 1992) based on 386BSD 0.0
> * NetBSD 0.8 (Apr. 1993) based on 386BSD 0.1
> * 4.4BSD (June 1993) based on Reno and Net/2
> * NetBSD 0.9 (Aug. 1993) based on NetBSD 0.8
> * 4.4BSD-Lite1 (Apr. 1994) based on 4.4BSD
> * NetBSD 1.0 (Oct. 1994) based on NetBSD 0.9 and 4.4BSD-Lite1
> * 4.4BSD-Lite2 (June 1995) based on 4.4BSD-Lite1
> * OpenBSD 1.2 (July 1996) based on NetBSD 1.0
> * OpenBSD 2.0 (Oct. 1996) based on OpenBSD 1.2 and 4.4BSD-Lite2
>
> It is true that much of the original BSD code has been replaced.
> But looking closely, you will still find decades old code from
> almost all BSD releases. Compare, for example,
>
>
> http://cvsweb.openbsd.org/cgi-bin/cvsweb/src/usr.bin/expand/expand.c?annotate=HEAD
>
> to
>
> http://minnie.tuhs.org/cgi-bin/utree.pl?file=1BSD/s6/expand.c
>
> in particular the main loop. Yes, much of the code has been amended,
> but some parts remain unchanged since more than 36 years ago.
> According to the Berne Convention, that file still contains text
> covered by Bill Joy's Copyright, even though - following U.S.
> Copyright law - the Copyright Notice only mentions The Regents.
> That is just one of no doubt many examples.
>
> It is even possible that OpenBSD still contains traces of decades
> old AT&T UNIX code. Good candidates for looking are the following 23
> files, see http://www.groklaw.net/article.php?story=20041126130302760 :
>
> sys/kern/init_main.c
> sys/kern/kern_clock.c
> sys/kern/kern_exec.c
> sys/kern/kern_exit.c
> sys/kern/kern_physio.c
> sys/kern/kern_sig.c
> sys/kern/kern_synch.c
> sys/kern/subr_rmap.c
> sys/kern/sys_generic.c
> sys/kern/sys_process.c
> sys/kern/tty.c
> sys/kern/tty_subr.c
> sys/kern/vfs_bio.c
> sys/kern/vfs_syscalls.c
> sys/sys/buf.h
> sys/sys/proc.h
> sys/sys/tty.h
> sys/ufs/dinode.h
> sys/ufs/inode.h
> sys/ufs/ufs_bmap.c
> sys/ufs/ufs_disksubr.c
> sys/ufs/ufs_inode.c
> sys/ufs/ufs_vnops.cl
>
> I checked init_main.c, and it still says:
>
> * (c) UNIX System Laboratories, Inc.
> * All or some portions of this file are derived from material licensed
> * to the University of California by American Telephone and Telegraph
> * Co. or Unix System Laboratories, Inc. and are reproduced herein with
> * the permission of UNIX System Laboratories, Inc.
>
> I'm too lazy now to check whether any of that code *actually* still
> remains or if it has *incidentally* all been replaced since. In
> any case, i'm not aware that there ever was any *intentional* effort
> to replace AT&T UNIX code in these files. So your claim that none
> remains seems somewhat bold to me. Then again, if any remains, it
> is certainly not a large amount.
>
> History is fun (litigation not so much).
>
> Yours,
> Ingo
And please keep in mind that the statement "old code = bad code" is
not true. Old code can be bad or good, just like new code.
-Otto