From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on inbox.vuxu.org X-Spam-Level: X-Spam-Status: No, score=-1.1 required=5.0 tests=DKIM_SIGNED,DKIM_VALID, DKIM_VALID_AU,MAILING_LIST_MULTI,T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.4 Received: (qmail 16756 invoked from network); 29 Mar 2022 15:25:06 -0000 Received: from minnie.tuhs.org (45.79.103.53) by inbox.vuxu.org with ESMTPUTF8; 29 Mar 2022 15:25:06 -0000 Received: by minnie.tuhs.org (Postfix, from userid 112) id 1182D9D6C0; Wed, 30 Mar 2022 01:25:04 +1000 (AEST) Received: from minnie.tuhs.org (localhost [127.0.0.1]) by minnie.tuhs.org (Postfix) with ESMTP id CE8869D684; Wed, 30 Mar 2022 01:24:39 +1000 (AEST) Authentication-Results: minnie.tuhs.org; dkim=pass (1024-bit key; unprotected) header.d=planet.nl header.i=@planet.nl header.b="QBKdZtA9"; dkim-atps=neutral Received: by minnie.tuhs.org (Postfix, from userid 112) id 23FE09D684; Wed, 30 Mar 2022 01:24:34 +1000 (AEST) Received: from ewsoutbound.kpnmail.nl (unknown [195.121.94.168]) by minnie.tuhs.org (Postfix) with ESMTPS id B05239D662 for ; Wed, 30 Mar 2022 01:24:29 +1000 (AEST) X-KPN-MessageId: 4b1c6db7-af74-11ec-a80d-005056aba152 Received: from smtp.kpnmail.nl (unknown [10.31.155.37]) by ewsoutbound.so.kpn.org (Halon) with ESMTPS id 4b1c6db7-af74-11ec-a80d-005056aba152; Tue, 29 Mar 2022 17:24:15 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=planet.nl; s=planet01; h=to:message-id:date:from:subject:mime-version:content-type; bh=FZJWlB2JrzmgMWm/0T+/hpKSGFd3iRuv4cNNnvslTxU=; b=QBKdZtA9wSmLelborLZrcn8szXQCEbSRmbMLIRe6bLyYRg7p0E2j8c6uP8a08SQpafOQPK9edhkJd 2kIYQD8BoezHtQd2Q+diszUL67vNzW927BLoJ2i1KxA548jTh6zi9D2A+g0ObIpayIQsPsZXaar8VH FJEk7RMvAbBsaeqk= X-KPN-MID: 33|TsiIUwKbBIKg+5xRjOqzAgovm4zzWN0y4r82iw6Yi/s8NNQNA7x7qwpUcnIELVr mlLk07QJQ2wC3+ASrdKSVBzSK3X5m3cAnYrD7Xzz2TTI= X-KPN-VerifiedSender: Yes X-CMASSUN: 33|uyFyNED0DO4eGBJMIcZjP5xrUpAVxJWV/I2VZLQufsbUKljx/SlLTw9VOavcQWN 2b2Gt4fXB0ICYnc2+MqFD4w== X-Originating-IP: 80.101.112.122 Received: from smtpclient.apple (sqlite.xs4all.nl [80.101.112.122]) by smtp.kpnmail.nl (Halon) with ESMTPSA id 4c814d2a-af74-11ec-afb5-005056ab1411; Tue, 29 Mar 2022 17:24:18 +0200 (CEST) Content-Type: text/plain; charset=utf-8 Mime-Version: 1.0 (Mac OS X Mail 14.0 \(3654.120.0.1.13\)) From: Paul Ruizendaal In-Reply-To: Date: Tue, 29 Mar 2022 17:24:17 +0200 Content-Transfer-Encoding: quoted-printable Message-Id: <9316583A-2461-40B9-8B87-15AC4A719198@planet.nl> References: To: Clem Cole X-Mailer: Apple Mail (2.3654.120.0.1.13) Subject: Re: [TUHS] Paging code in SysV R2 X-BeenThere: tuhs@minnie.tuhs.org X-Mailman-Version: 2.1.26 Precedence: list List-Id: The Unix Heritage Society mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: TUHS main list Errors-To: tuhs-bounces@minnie.tuhs.org Sender: "TUHS" No, sorry, my scope of interest is mostly 1975-1985. I did read the Mach virtual memory paper from 1988 - from that paper I = gather that the data structures used are totally different from those in = Sys V or BSD. There is also the VM implementation that Richard Miller did on SysV r1 = in 1983. Interestingly, his design seems to parallel the choices made = by Reiser a few years before, but it is lighter touch. Both Reiser and = Miller refer to Denning and Tenex as prior art. Miller's 1984 Usenix = paper about this project argues that doing approximated LRU from the = page table data results in a process local working set view, which he = argued was preferable to the system global working set view generated in = the BSD clock algorithm. Paul > On 29 Mar 2022, at 16:05, Clem Cole wrote: >=20 > Fascinating - thank you. >=20 > Have you figured out that path from here to the SVR4 code base that = was used for the x86 [which I think also went through a few more = generations after the SVR4 release]? =20 >=20 > Clem >=20 > On Tue, Mar 29, 2022 at 7:22 AM Paul Ruizendaal via TUHS = wrote: >=20 > I did not have a lot of time to work on documenting the evolution of = paging / virtual memory code in 32V, Sys III and early SysV in the past = months, but I did get some more background information that seems worth = sharing. >=20 > My understanding of the virtual memory story at USG is now as follows: >=20 > Somewhere in 1981/82 a project plan for Unix 5 / System V was made and = evolving John Reiser=E2=80=99s virtual memory code for 32V-r3 was part = of that plan. =E2=80=9CEvolving=E2=80=9D in this context meant making it = more maintainable and more hardware independent. John=E2=80=99s code = assumed a memory page, a disk block and a file block all to be the same = size, and it needed to be more general. It was also designed around the = VAX MMU and this too needed to be generalised. The person assigned to = that job was Bob (Robert) Baron, reporting to Tom Raleigh. The project = involved quite a bit of re-architecting and progress was slowish. On top = of that Bob left for CMU to work on Mach. Tom Raleigh tried to pick up = where Bob had left off, but progress remained slowish. >=20 > In parallel, Keith Kelleman and Steve Burroff were working on Unix for = the 3B20 Unix. They did paging code from scratch around the 3B20 MMU = (which used a more or less =E2=80=98modern=E2=80=99 page table design) = and developed their idea for the =E2=80=9Cregions=E2=80=9D abstraction = to support large, non-contiguous address spaces. It seems that they = built on the main working set ideas/concepts in the Reiser/Baron/Raleigh = code base, combined these with their =E2=80=9Cregions=E2=80=9D idea, = made it multi-processor capable and made it all work on the 3B20. Around = that time Tom Raleigh seems to have transferred to Bellcore, and the VAX = code base got orphaned. >=20 > Two young engineers appear to have picked up the work on the VAX code = base: Dean Jagels and Jim McCormick. My understanding is that they = essentially back ported the 3B20 work to the VAX, falling back on the = Reiser/Baron/Raleigh work where necessary. They got it working, and as = far as I can tell, this is what got released in 1984 as part of SysV = R2.4 for the VAX (the oldest surviving source code for this that I could = find). >=20 > This somewhat tortuous birth may in part explain why Research chose to = use the 4BSD virtual memory code for 8th edition. >=20 >=20