Back in 2003, when designing RadiOS, I correctly realized that in the combined microkernel + process manager system the system calls can be separated into two different groups: those which need to access the PCB (process control block, or process descriptor), and those which don't. In other words, the microkernel proper implements a set of syscalls that e.g. start/stop threads, but don't deal with processes. The process manager "installs" its own syscalls on a top, and implements functionality related to processes.
Now, analyzing QNX source code, I realized that in QNX it's somehow similar, but of course those syscall sets are different. The list can be seen in a file named kerext.h; there is a comment at the beginning of it saying "Kernel calls which are installed by the process manager".
No comments:
Post a Comment