I'm not certain how accurate these changes are, but I hope they are
useful.

Thanks,

Joshua

>From b1fa70e9544b5e26b43092cb6bbc824ec6baae0b Mon Sep 17 00:00:00 2001
From: Joshua Branson <[email protected]>
Date: Mon, 26 Nov 2018 11:51:44 -0500
Subject: [PATCH] I added mach_msg to the gnumach syscall page. I tried to add
 some more information to the rpc and syscall pages.

---
 microkernel/mach/gnumach/interface/syscall.mdwn |  2 ++
 rpc.mdwn                                        | 15 ++++++++++++++-
 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]]
diff --git a/rpc.mdwn b/rpc.mdwn
index 5fed0aa2..7db5f103 100644
--- a/rpc.mdwn
+++ b/rpc.mdwn
@@ -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
-- 
2.19.2

Reply via email to