Date: Thu, 6 Aug 1998 13:36:31 +1000 (EST) From: "Andrew Reilly" <reilly@zeta.org.au> To: tom@uniserve.com Cc: reilly@zeta.org.au, current@FreeBSD.ORG Subject: Re: Heads up on LFS Message-ID: <19980806033631.5013.qmail@gurney.reilly.home> In-Reply-To: <Pine.BSF.3.96.980805202349.20955A-100000@shell.uniserve.ca>
next in thread | previous in thread | raw e-mail | index | archive | help
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
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?19980806033631.5013.qmail>