Groups | Search | Server Info | Login | Register
| 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.
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 | Next — Previous in thread | Next in thread | Find similar
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