2006-12-11 07:18:06 PST
How can you say that any language is a safe language? You talk about having checks, which makes sense to deter any errant code from affecting anything (especially on a flat model with no hardware security)... but no code is perfect. Once those checks are removed then the possibility exists to have errant code take down the entire system.
That was the whole point behind the 32-bit hardware protection mechanisms added to the x86 line. The hardware would signal before something bad happened, and then you could politely shut down the app.
To have everything run in the same PL is inviting disaster on a scale heretofore unseen in operating systems because no other OS writer has looked at that potential problem and said "Ah, heck... let's go for it". They step back and say: "Oh, I've got these hardware mechanisms in place, let's go for it."
I would suggest removing paging from your vocabularly, but making sure you have the basic descriptors setup properly to allow the OS to trap any errant code writing outside of its space. You can always setup OS API calls which would allow inter-process shared writing via a new descriptor pointing to a shared area, etc.
There are ways to utilize hardware in an intelligent manner. It doesn't have to be (and cannot be truly) done through any compiler or "safe language" extension. That is unless you know something I do not.
I'm anxious to hear your replies to my posts.
- Rick