[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [f-cpu] little feed-back from the libre softawre meeting




----- Original Message -----
From: "Michael Riepe" <michael@stud.uni-hannover.de>
To: <f-cpu@seul.org>
Sent: Saturday, July 13, 2002 1:57 AM
Subject: Re: [f-cpu] little feed-back from the libre softawre meeting


> On Sat, Jul 13, 2002 at 01:30:45AM +0200, whygee@club-internet.fr wrote:
> [...]
> > >     read, write, exec bit + at least 3 rings (super user + user +
> > >     something like for library,...)
> >
> > RWX is ok, because this is how protection is enforced.
> > i'd say that it is the minimum required TLB feature.
>
> *nod*
>
> What about different permission bits for different protection levels?
> Like `supervisor may read and write, j. random luser may only read'.
> That's probably better than a `user/supervisor' bit or an explicit
> `page protection level'.
>

1) Permission bits : rwx
    - 'r' and 'w' are relevant for data memory (DCACHE, data "load" and
"store" operations), but what could be the meaning of 'x' ?
    - 'x' is relevant for code memory (ICACHE, instruction "load"
operations, but what could be the meaning of 'r' or 'w' ?.
It seems to me that DCACHE only needs 'r' and 'w' bits and ICACHE 'x' bit.
But my question is about knowing if there would be two different TLB or an
unified one ?

2) Supervisor/user bits :
    - 's' : some instructions which are considered as priviledged requires
this bit set.

But I aggree with you : we should have like 'sr','sw','ur','uw' for data
memory and 'sx','ux' for code memory (that way we can protect some user
applications for accessing supervisor code pages with 'sx = 1' and 'ux' = 0
in fact) if we want a more fined-grain protection.

3) How to share code between memory spaces, especially for kernel or shared
library codes :
    - code pages can be shared between space memories; using a bit to tell
if VMID must be checked for this page allows kernel code or shared library
to run without excessive cache flushing because of a VMID differs between
two processes.

4) Group bits : are we speaking about equivalence of unix group bits ? that
is 'u','g' and 'o' ?

5) Ring bits : well instead of Supervisor/user bit we have several bits to
encode a level ring. A page must have a ring of lower priority to be
accessed.

6) Inheritance bits : mostly a software issue I think, so I wouldn't detail
them here.




*************************************************************
To unsubscribe, send an e-mail to majordomo@seul.org with
unsubscribe f-cpu       in the body. http://f-cpu.seul.org/