Note that in Minix there is a distinction between tasks calls and system calls.
What is the difference?
-
User level programs can only make "system calls" to Minix server processs (process manager, file manager, etc).
-
Server processes and Device driver processes can make calls to the System task in the kernel code - "task calls".
Each of these "calls" is really implemented by sending a message.
-
Sending a message is therefore the mechanism for Minix "system calls" and "task calls".
-
Message passing itself is implemented by executing a trap instruction to switch to kernel mode and execute the kernel routine for handling sending/receiving messages.