diff options
author | Ingo Schwarze <schwarze@cvs.openbsd.org> | 2011-11-17 12:55:06 +0000 |
---|---|---|
committer | Ingo Schwarze <schwarze@cvs.openbsd.org> | 2011-11-17 12:55:06 +0000 |
commit | caa6f3501017614097a9b107f76361844bc77f55 (patch) | |
tree | 55b9f57b32940913c3d9123694a226a161ab4831 | |
parent | 2b63cadef46650bf5cdbec3a97d285d1ef1215a8 (diff) |
Fix HISTORY:
Mention the predecessor exec() in v1, and remove the bogus "appeared
in 3BSD", just leave "execve() appeared in v7", because:
(1) There is a direct line of inheritance from v7 (Bell, Jan 1979)
via 32v (Bell, May 1979) to 3BSD (UCB, Feb 1980), and it goes without
saying that children include code from their grandparents.
(2) It is impossible that there was parallel development of execve()
at Bell and UCB. The only UCB release before v7 was 1BSD (May 1978),
and even 2BSD (May 1979) did not include any kernel parts but fully
relied on the Bell v6 kernel. When Bell released 32v, the UCB did
not even own a VAX, and Bill Joy was still are pure userland hacker.
Only after the original UCBVAX arrived at Berkeley, Richard Fateman
involved Domenico Ferrari who involved Ozalp Babaoglu who started
kernel work at UCB, based on Bell 32v, later involving Bill Joy.
(3) Genetic analysis of the source code confirms this.
All kernel code involved is in sys1.c. Regarding this file,
the first two UCB releases, VAX 3BSD (based on Bell 32v)
and PDP-11 2.8BSD (Dec 1981, based on Bell v7) are more similar
to their respective Bell parents than to each other.
The Berkeley versions are cousins, not siblings:
v7 -> 32v: 523 +71 -60 = 534
v7 -> 2.8: 523 +305 -24 = 804
32v -> 3: 534 +169 -110 = 593
3 -> 2.8: 593 +413 -202 = 804
References:
http://oreilly.com/catalog/opensources/book/kirkmck.html
http://minnie.tuhs.org/cgi-bin/utree.pl?file=32V
http://minnie.tuhs.org/cgi-bin/utree.pl?file=V7/usr/sys/sys/sys1.c
http://minnie.tuhs.org/cgi-bin/utree.pl?file=32V/usr/src/sys/sys/sys1.c
http://minnie.tuhs.org/cgi-bin/utree.pl?file=3BSD/usr/src/sys/sys/sys1.c
https://www.mckusick.com/csrg/ - /cdrom1/2.8/usr/kernel/sys/sys/sys1.c
facts checked and ok sobrado@, style and formatting ok jmc@
-rw-r--r-- | lib/libc/sys/execve.2 | 14 |
1 files changed, 8 insertions, 6 deletions
diff --git a/lib/libc/sys/execve.2 b/lib/libc/sys/execve.2 index fb10ff55a0e..b3f5980c0d7 100644 --- a/lib/libc/sys/execve.2 +++ b/lib/libc/sys/execve.2 @@ -1,4 +1,4 @@ -.\" $OpenBSD: execve.2,v 1.37 2011/10/24 19:31:56 schwarze Exp $ +.\" $OpenBSD: execve.2,v 1.38 2011/11/17 12:55:05 schwarze Exp $ .\" $NetBSD: execve.2,v 1.9 1995/02/27 12:32:25 cgd Exp $ .\" .\" Copyright (c) 1980, 1991, 1993 @@ -30,7 +30,7 @@ .\" .\" @(#)execve.2 8.3 (Berkeley) 1/24/94 .\" -.Dd $Mdocdate: October 24 2011 $ +.Dd $Mdocdate: November 17 2011 $ .Dt EXECVE 2 .Os .Sh NAME @@ -322,12 +322,14 @@ The .Fn exect function should not be used in portable applications. .Sh HISTORY +The predecessor of these functions, the former +.Fn exec +system call, first appeared in +.At v1 . The .Fn execve -function call first appeared in -.At v7 -and -.Bx 3 . +function first appeared in +.At v7 . .Sh CAVEATS If a program is .Em setuid |