From mboxrd@z Thu Jan 1 00:00:00 1970 From: norman@oclsc.org (Norman Wilson) Date: Sun, 11 Sep 2016 21:31:10 -0400 (EDT) Subject: [TUHS] Shell control through external commands Message-ID: <20160912013110.ECB3B4422E@lignose.oclsc.org> Doug McIlroy: "Re-port" may be a bit strong. Internet stuff from Berkeley was folded into the research code (for a huge increase in kernel size). But I think it was done by pasting Berkeley code into local source, rather than the other way around. ==== Actually it was more nearly: -- Adopt 4.1c BSD kernel -- Graft in Research-specific things it was important to keep: in particular Dennis's stream subsystem, Tom Killian's original /proc, Peter Weinberger's early network file system client code (the server was just a user-mode program) and simple hackery to speed up the file system without great fuss (make the block size 4KiB and move the free list to a bitmap; no cylinder groups or other radical changes). Also device drivers to support Datakit, at the time our workhorse network. I think a file-system switch went in early as well, spurred by having both /proc and pjw's network file system; it wasn't used to support multiple disk-file-system layouts, though it could have been. -- Outside the kernel, keep pretty much the then-current Research commands, including Blit/5620 support, the cleaned up and slightly-extended Bourne shell, and whatnot. I don't think the BSD kernel when adopted had much, if any, of sockets, Berkeley's TCP/IP, McKusick's FFS; if it did, they were excised. Likewise any remaining trace of V7's mpx(2) multiplexed-file IPC. I'm going by the state the system was in when I arrived in August 1984, plus a short note written by Weinberger that I came across later. TCP/IP support didn't show up until later, I think summer 1985, though it might have been a year later. The first cut was done by Robert T. Morris (later famous for a buggy program that broke the Internet), who did several summers as an intern; he took the code from (I think) 4.2 BSD, and constructed some shims to fit it into the stream world. Paul Glick later cleaned it up a lot, removing the need for most of the shimmery. Further evolution followed, of course, including a complete rewrite of the interface between drivers (device, file system, and stream) and the rest of the system, which made configuration much more straightforward. Also a rampage on my part to identify code that was no longer useful and kick it out; I took special pleasure in removing ptrace(2) (even though I had to change adb and sdb first to use /proc). But that was all later. Norman Wilson Toronto ON