In this blog I share my observations, thoughts and experience about computers, linguistics, philosophy and many other things that interest me.

Tuesday, January 01, 2019

System calls in process manager and in the microkernel

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: