dee@linus.UUCP (David E. Emery) (01/18/89)
Who "invented" fork? What system was the first to use fork? (where fork did the Unix thing, i.e. created a complete copy of the calling process as a new O.S. process) Just curious, mostly... dave emery emery@mitre.org
haahr@phoenix.Princeton.EDU (Paul Gluckauf Haahr) (01/20/89)
In article <43676@linus.UUCP> dee@linus.UUCP (David E. Emery) writes: > Who "invented" fork? What system was the first to use fork? > (where fork did the Unix thing, i.e. created a complete copy of the calling > process as a new O.S. process) in the unix retrospective from the 1978 bstj, dennis ritchie attributed the idea to genie, the operating system for the sds-9 (from sigma data systems, later xerox data systems)
hwe@beta.lanl.gov (Skip Egdorf) (01/20/89)
In article <5608@phoenix.Princeton.EDU>, haahr@phoenix.Princeton.EDU (Paul Gluckauf Haahr) writes: > In article <43676@linus.UUCP> dee@linus.UUCP (David E. Emery) writes: > > Who "invented" fork? What system was the first to use fork? > > (where fork did the Unix thing, i.e. created a complete copy of the calling > > process as a new O.S. process) > > in the unix retrospective from the 1978 bstj, dennis ritchie attributed > the idea to genie, the operating system for the sds-9 (from sigma data > systems, later xerox data systems) I was going to answer this at work today but decided to wait 'till I got home to my large dusty piles of literature... [from BSTJ v63 n8 part2, Oct 1984, The Evolution of the UNIX Time Sharing System, D. M. Ritchie, Page 1584] "[... speaking of a split fork and exec...] The separation of the functions is certainly not unique to UNIX, and in fact was present in the Berkeley time-sharing system, (2) " Ref (2) is 2. L. P. Deutsch and B. W. Lampson, "SDS 930 Time-sharing System Preliminary Reference Manual," Doc. 30.10.10, Project GENIE, Univ. Cal. at Berkeley (April 1965) And, From my SDS 940 Time Sharing System Manual dated 1967, (note 1: The 920, 930, and 940 were a similar family of systems with minor variations on features) (note 2: I told you that my piles of literature were large and dusty...) (note 3: BRS is a trap, syscall, type instruction) BRS 9, FKST, Fork Start. BRS 9 is used to create a lower fork. ... BRS 9 creates a new fork as a lower fork of the fork creating it, which is called the controlling fork. The fork is lower in the hierarchy of forks than the controlling fork. The controlling fork may itself be a fork of some still higher fork. When BRS 9 is executed by a user fork, the user fork is dismissed until the lower fork terminates... A user may not have more than eight forks in his fork structure. This includes the system fork and one fork for each system BRS that is active... BRS 30, FKRD, Fork Read. Reads the current status of a lower fork ... BRS 81, WREAL, Wait on REAL time The fork is dismissed for T [a parameter of the call] milliseconds. BRS 106, FKWA, Fork Wait Fork is dismissed until some lower fork terminates. BRS 10, PPAN, Programmed Panic BRS 10 terminates the fork that issues it. Well, you get the idea. (And I know that this was not a tutorial. It was only meant to convey the flavor.) Now, Does anyone know where the SDS 930 System referenced above came up with the idea of fork? Or was it a unique invention? Skip Egdorf hwe@lanl.gov
vjs@rhyolite.SGI.COM (Vernon Schryver) (01/21/89)
In article <23246@beta.lanl.gov>, hwe@beta.lanl.gov (Skip Egdorf) writes: > In article <5608@phoenix.Princeton.EDU>, haahr@phoenix.Princeton.EDU (Paul Gluckauf Haahr) writes: > > In article <43676@linus.UUCP> dee@linus.UUCP (David E. Emery) writes: > > > Who "invented" fork? What system was the first to use fork? > > > (where fork did the Unix thing, i.e. created a complete copy of the calling > > > process as a new O.S. process) > > > > in the unix retrospective from the 1978 bstj, dennis ritchie attributed > > the idea to genie, the operating system for the sds-9 (from sigma data > > systems, later xerox data systems) >... > Ref (2) is > 2. L. P. Deutsch and B. W. Lampson, "SDS 930 Time-sharing System Preliminary > Reference Manual," Doc. 30.10.10, Project GENIE, Univ. Cal. at Berkeley > (April 1965) Scientific Data Systems, SDS, built a nice line of "scientific" machines (think of Nova's but the previous generation; if you don't recall the Nova, then think of PC's used in labs to do data analysis and instrument control). I understand that people at Berkeley (the names above were among the powerful) took an SDS-930 (24-bit words, 16-bit address, 1.75 usec cycle time, LDA was 2 cycles, STA 3 cycles, cpu was 3 bits wide, all silicon, mostly 4"x5" (?) boards with a couple of gates or maybe a flip flop except the CTE (serial comm.) which was racks of surface mount stuff--4 cards/channel) and added paging (without extending the cycle), user/system mode, and the return-to-user-trap to make the 940. There was serious talk of a follow-on from SDS, the 9000 series, but instead, the Sigma series came out, to the disappoint of some. Then Xexox bought SDS, turned it into XDS, and ran it into the ground--or so it seemed from a 1000 miles away. The 940 was <<The>> timesharing machine for a long time--all 45 (?) that were built were cherished. They figured heavily in the histories of Tymshare and Comshare, as well as a few odd places, including the famous San Francisco coop. I've met people who ran chunks of the 940 system under some kind of PDP-10 (?) emulator. There was the 1-board implementation in Hawaii, and the magnificent dream of the BCC-5000 (or was it 500?). "My" 940 was scrapped only a few years ago by the Dept of Comm. I don't think the 930 could run any flavor of TSS--no paging, no user mode. The 910 and 920 were smaller and slower. I think only 1-bit cpu's. There was also a tape file system... (This is certainly partly wrong, since it is based on my failing memory.) Can anyone who thinks that fame from a job done well is lasting list all of the Famous Names from project GENIE? In their day, they were as influential among people who might have read this newsgroup as any of those who have worked on 4.xBSD. My trivia questions: was the 940 syspop "sti" a predecessor of the 4.x BSD ioctl TIOSTI as fork(2) was? Or just a case of parallel evolution? Was Deutsch's QED an ancestor of ex? Vernon Schryver Silicon Graphics vjs@sgi.com
steve@polyslo.CalPoly.EDU (Steve DeJarnett) (01/21/89)
In article <43676@linus.UUCP> dee@linus.UUCP (David E. Emery) writes: >Who "invented" fork? What system was the first to use fork? According to "The Design and Implementation of 4.3BSD Unix": "The fork operation to create new processes comes from Berkeley's GENIE (SDS-940, later XDS-940) operating system. Allowing a user to create processes inexpensively led to using one process per command, rather than running commands as procedure calls, as is done in Multics." ------------------------------------------------------------------------------- | Steve DeJarnett | Smart Mailers -> steve@polyslo.CalPoly.EDU | | Computer Systems Lab | Dumb Mailers -> ..!ucbvax!voder!polyslo!steve | | Cal Poly State Univ. |------------------------------------------------| | San Luis Obispo, CA 93407 | BITNET = Because Idiots Type NETwork | -------------------------------------------------------------------------------
eps@noe.UUCP (Eric P. Scott) (01/23/89)
In article <25259@sgi.SGI.COM> vjs@rhyolite.SGI.COM (Vernon Schryver) writes: >My trivia questions: was the 940 syspop "sti" a predecessor of the 4.x BSD > ioctl TIOSTI as fork(2) was? Or just a case of parallel evolution? Given the time frame, my "best guess" is that BSD people got the idea from TOPS-20, much as job control (and a bunch of other things) betray a heavy ITS influence. Sockets look a lot like some prior British networking stuff, etc. -=EPS=-
kent@decwrl.dec.com (Christopher A. Kent) (02/22/89)
I believe that the concepts of fork and join first appeared in J. B. Dennis and E. C. Van Horn, "Programming Semantics for Multiprogrammed Computations", CACM", V9n3, March 1966. -- Chris Kent Western Research Laboratory Digital Equipment Corporation kent@decwrl.dec.com decwrl!kent (415) 853-6639
bobmon@iuvax.cs.indiana.edu (RAMontante) (02/27/89)
kent@decwrl.dec.com (Christopher A. Kent) <106@gnomee.pa.dec.com> : -I believe that the concepts of fork and join first appeared in - -J. B. Dennis and E. C. Van Horn, "Programming Semantics for -Multiprogrammed Computations", CACM", V9n3, March 1966. Peterson and Silberschatz trace fork/join to this paper, but also to M. Conway, "A Multiprocessor System Design", Proc. AFIPS Fall Joint Computer Conference, 1963.