Runlevels and opcodes

I am a bit familiar with the design of operating systems
but i definitely lack practical experience so please
apologize if i am confusing things ... Anyway i think
the subject is likely to interest our readers !

On most modern operating systems, system calls provide
control and isolation for resource access (memory, drivers...)
and thereby security.

*** But what does prevent a user-level process from executing
wild instructions (RESET, traps, other dangerous instructions
and undocumented features) ?

More generally, does any of you know if some architectures
provide the possibility of designing custom transitions
between processor "runlevels" (usually there are only 2
available, superuser and user modes) ?

E.g.

processor starts in super-user mode ----> thread 1: switch to user-level
                                          with some opcodes masked

                                    ----> thread 2: switch to another
                                          user-level
                                          with other opcodes masked

How do context switches occur on existing architectures ?
Is it some kind of "forking" from super-user mode to user mode and
multiple simultaneous user mode contexts (no switching back to
super-user mode) ?

Basically, what are the main differences between (intel, sparc, alpha, ...)
from this point of view ?

Best regards
Phil

To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-hackers" in the body of the message

Reply via email to