diff options
-rw-r--r-- | microkernel/mach/gnumach/interface/syscall.mdwn | 2 | ||||
-rw-r--r-- | rpc.mdwn | 15 | ||||
-rw-r--r-- | system_call.mdwn | 8 |
3 files changed, 21 insertions, 4 deletions
diff --git a/microkernel/mach/gnumach/interface/syscall.mdwn b/microkernel/mach/gnumach/interface/syscall.mdwn index d5fc542b..f470754b 100644 --- a/microkernel/mach/gnumach/interface/syscall.mdwn +++ b/microkernel/mach/gnumach/interface/syscall.mdwn @@ -14,3 +14,5 @@ License|/fdl]]."]]"""]] [[!map pages="microkernel/mach/gnumach/interface/syscall/* and !microkernel/mach/gnumach/interface/syscall/*/*" show=title]] + +- [[mach_msg|https://www.gnu.org/software/hurd/gnumach-doc/Mach-Message-Call.html#Mach-Message-Call]] @@ -9,7 +9,20 @@ Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license is included in the section entitled [[GNU Free Documentation License|/fdl]]."]]"""]] -RPC stands for remote procedure call. +RPC stands for remote procedure call. It is generally one userspace processes +communicating with another userspace process. For example, a user may use +emacs to open a text file for editing. On the Hurd, glibc turns the C function +call into appropriate RPC calls to ext2fs. It is important to remember that +gnumach's IPC facilitates this communication between emacs and ext2fs (with +the gnumach mach_msg () syscall: one to send the message and one to receive +the reply). + +It is also important to distinguish an RPC from a [[system call|system_call]]. +A system call, happens when a userspace process requests something of the kernel. +An RPC is generally one userspace process requesting something from another +userspace process. + + # See Also diff --git a/system_call.mdwn b/system_call.mdwn index 45ed9dbe..d8a465b4 100644 --- a/system_call.mdwn +++ b/system_call.mdwn @@ -10,11 +10,13 @@ is included in the section entitled [[GNU Free Documentation License|/fdl]]."]]"""]] In an [[UNIX]]-like system, a *system call* (*syscall*) is used to request all -kinds of functionality from the operating system kernel. +kinds of functionality from the operating system kernel. On GNU/Linux, glibc +translates function calls to system calls by packing arguments appropriately +and using that trap or syscall instruction. A [[microkernel]]-based system typically won't offer a lot of system calls -- -apart from one central one, and that is *send message* -- but instead [[RPC]]s -will be used instead. +apart from one central one, and that is *send message* (mach_msg) -- but +instead [[RPC]]s will be used instead. See [[GNU Mach's system calls|microkernel/mach/gnumach/interface/syscall]]. In the [[GNU Hurd|hurd]], a lot of what is traditionlly considered to be a UNIX |