Skip site navigation (1)Skip section navigation (2)
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>