From owner-freebsd-current Wed Aug 5 20:39:10 1998 Return-Path: Received: (from majordom@localhost) by hub.freebsd.org (8.8.8/8.8.8) id UAA17832 for freebsd-current-outgoing; Wed, 5 Aug 1998 20:39:10 -0700 (PDT) (envelope-from owner-freebsd-current@FreeBSD.ORG) Received: from godzilla.zeta.org.au (godzilla.zeta.org.au [203.15.68.22]) by hub.freebsd.org (8.8.8/8.8.8) with ESMTP id UAA17819 for ; Wed, 5 Aug 1998 20:39:05 -0700 (PDT) (envelope-from reilly@zeta.org.au) Received: from zeta.org.au (d7.syd2.zeta.org.au [203.26.11.7]) by godzilla.zeta.org.au (8.8.7/8.8.7) with ESMTP id NAA16270 for ; Thu, 6 Aug 1998 13:38:46 +1000 Received: (qmail 5014 invoked by uid 1000); 6 Aug 1998 03:36:31 -0000 Message-ID: <19980806033631.5013.qmail@gurney.reilly.home> From: "Andrew Reilly" Date: Thu, 6 Aug 1998 13:36:31 +1000 (EST) Subject: Re: Heads up on LFS To: tom@uniserve.com cc: reilly@zeta.org.au, current@FreeBSD.ORG In-Reply-To: MIME-Version: 1.0 Content-Type: TEXT/plain; CHARSET=US-ASCII Sender: owner-freebsd-current@FreeBSD.ORG Precedence: bulk X-Loop: FreeBSD.ORG Tom said: > > On Thu, 6 Aug 1998, Andrew Reilly wrote: > > ... >> Now if you were prepared to rely on hardware memory /protection/ >> without using the hardware memory /mapping/, you could probably >> do the same thing in C or C++ (or assembly language). I believe >> that this has been tried in some of the Acorn ARM based OS's >> (RiscOS and the Newton OS.) > > Most microkernel OSes are this way. QNX for x86 does something similar. > The kernel is basically just a scheduler (a QNX kernel is less than 50K), > and all other services that would normally be in the kernel are in their > own address spaces, using strict IPC interfaces between modules. That's not quite what I meant. As far as I know, the Spin and JavaOS beasties get an extra performance bennefit from running both the kernel and all user processes in the _same_ address space, without any hardware protections. They can do that safely, because they push the protection and access issues into the language and the compiler, rather than guarding for errant programs at run-time. NewtonOS and RiscOS also put everything into the one address space, but use some hardware memory _protection_ to prevent user processes from reading or writing into kernel (or other user process) space, unless explicitly allowed, by calling a kernel routine. QNX is much more like Unix, in that all processes have a separate address space of their own. -- Andrew To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-current" in the body of the message