Groups | Search | Server Info | Login | Register


Groups > comp.arch > #6521

Re: Protection rings within applications

From "Marven Lee" <marven10@gmail.com>
Newsgroups alt.os.development, comp.arch
Subject Re: Protection rings within applications
Date 2012-04-13 10:49 +0100
Message-ID <9uqb5pFcu9U1@mid.individual.net> (permalink)
References <9u593lF5htU1@mid.individual.net> <4f7d885f$0$1744$426a74cc@news.free.fr> <jm0u5a$580$1@dont-email.me>

Cross-posted to 2 groups.

Show all headers | View raw


Morten Reistad wrote:
> Another path is the message-passing monitor QNX, where the core,
> kernel stuff is just a memory, task and paging manager plus message
> passing primitives; with everything like file systems, network
> stacks etc as priviliged user processes.

I've been rewriting my OS that I've not touched in years. It had
kernel-mode drivers using message passing functions that
were almost identical to that in AmigaOS. Recently I've been
tinkering with the code, stripping everything out and converting
it to a true microkernel. I've got the message passing working
but it doesn't do much yet as I've no drivers or servers.

The actual message passing is still similar to the Amiga's
message synchronization, PutMsg, GetMsg, ReplyMsg and Wait
but with additional ReadMsg / WriteMsg functions to transfer
the data between processes. The code seems to work,
I just need to get some servers/drivers written.

Anyway, I was thinking of using the first 31 user IDs as
protection rings, with the 32nd and above user IDs belonging
to normal users. Each ring will have a 32-bit permissions
bitmap of what other rings a process can receive messages
from. My thinking was that protection rings within a user
process would compliment these inter-process/user rings.

PS: I'm not sure how much of the memory management was
in the QNX kernel. IIRC QNX uses an interrupt model
kernel with a single kernel stack per processor. That's fine
for synchronization primitives in a microkernel and message
passing can be preempted and restarted, presumably by
restarting the message copying code from a fixed point
upon returning from an interrupt.  Perhaps page tables
are maintained by the kernel but the more complicated
VM structures are maintained by the process manager.
Just a guess.

-- 
Marv 

Back to comp.arch | Previous | NextPrevious in thread | Next in thread | Find similar


Thread

Protection rings within applications "Marven Lee" <marven10@gmail.com> - 2012-04-05 11:04 +0100
  Re: Protection rings within applications Antoine Leca <root@localhost.invalid> - 2012-04-05 13:56 +0200
    Re: Protection rings within applications Morten Reistad <first@last.name> - 2012-04-10 11:02 +0200
      Re: Protection rings within applications "Marven Lee" <marven10@gmail.com> - 2012-04-13 10:49 +0100
  Re: Protection rings within applications "Rod Pemberton" <do_not_have@notemailnot.cmm> - 2012-04-05 09:16 -0400
    Re: Protection rings within applications BGB <cr88192@hotmail.com> - 2012-04-06 12:05 -0700
    Re: Protection rings within applications jgk@panix.com (Joe keane) - 2012-04-09 21:08 +0000
  Re: Protection rings within applications James Harris <james.harris.1@gmail.com> - 2012-04-05 14:17 -0700

csiph-web