Date: Tue, 11 Dec 2001 10:55:43 -0800 From: Bakul Shah <bakul@bitblocks.com> To: nate@yogotech.com (Nate Williams) Cc: 9ustavo 9onzalez 9iron <gstgnzgr@libertad.univalle.edu.co>, freebsd-hardware@FreeBSD.ORG Subject: Re: i286 Message-ID: <200112111855.NAA26541@warspite.cnchost.com> In-Reply-To: Your message of "Tue, 11 Dec 2001 11:23:33 MST." <15382.20261.860671.461839@caddis.yogotech.com>
next in thread | previous in thread | raw e-mail | index | archive | help
> As I understand, don't you need paging for 'real' protection to work > right, otherwise you're limited to one/two processes on the box? Use of a page table to map a virtual address VA to a physical address PA is the most common method but not the only one. In the extreme case all you need is hardware that can do: PA = contents of a base_register + VA As long as the base register is not visible to user mode programs and the phys addr range for different processes didn't overlap, your process is protected! Actually, you don't even need virtual address space; just protectable address ranges (something you can do in i286) so that a process can only access address ranges open to it but this is not useful except for specialized closed system. The common method was in early 80s was to use two to four segments: code, initialized data, bss and stack. When you needed to make space for a new process, you swapped out an old process to disk instead of a few pages. This is how Unix upto V7 and, I believe also, system 3 (SVR3) worked. Please look up the Unix history for details. -- bakul To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-hardware" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200112111855.NAA26541>