Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Path: utzoo!mnetor!seismo!rochester!ritcv!tropix!mjl From: mjl@tropix.UUCP (Mike Lutz) Newsgroups: comp.unix.wizards Subject: Re: Why "u." and not "u->" ? (I'm reading Bach book) Message-ID: <276@tropix.UUCP> Date: Thu, 21-May-87 10:23:32 EDT Article-I.D.: tropix.276 Posted: Thu May 21 10:23:32 1987 Date-Received: Sat, 23-May-87 11:32:31 EDT References: <626@vixie.UUCP> <3568@spool.WISC.EDU> <500@rust.DEC.COM> <8047@utzoo.UUCP> Reply-To: mjl@tropix.UUCP (Mike Lutz) Organization: GCA/Tropel Div. Rochester, NY 14450 Lines: 31 In article <8047@utzoo.UUCP> henry@utzoo.UUCP (Henry Spencer) writes: >> I worked on a system were kernel mode ran unmapped. We were unable to >> use u. and therefore had to solve some very difficult problems. We even >> considered copying u areas to a fixed location at every context switch. > >Don't laugh, it's been done. I'm told it works okay, if a bit slowly. When we ported Unix V7 to the old Motorola ExorMacs system, the ublock relocatability problem was the most difficult one we had to face. The ExorMacs MMU only worked in user mode, so the standard technique of using the OS's map in supervisor mode wouldn't cut it. The trickiest part, of course, is handling the system stack for the current process (residing at the top of the UBLOCK). Stacks have lots of addresses in them, many of which cannot be located, making on-the-fly software relocation impossible. We considered the software copy in/copy out to a fixed memory area, but abandoned this as it would have created intolerable interrupt latency. Finally, we resorted to running most of the kernel code in user mode, with software "logical" states mapped onto the hardware "real" states. Overall performance was between that of a PDP11/34 and an 11/45. If you want to know more about the types of shenanigans required, and the issues that arise, look at the paper by Mike Shon and me in the 1983 Toronto USENIX Conference Proceedings. By the way, I believe Motorola's Unix port to the ExorMacs *did* use software copying; I know that in a simple "cc hello.c" benchmark, our version blew them out of the water. Mike Lutz tropix!mjl (no longer an ExorMacs, thank God!)