summaryrefslogtreecommitdiff
path: root/system_call.mdwn
diff options
context:
space:
mode:
authorThomas Schwinge <tschwinge@gnu.org>2013-07-10 23:39:29 +0200
committerThomas Schwinge <tschwinge@gnu.org>2013-07-10 23:39:29 +0200
commit9667351422dec0ca40a784a08dec7ce128482aba (patch)
tree190b5d17cb81366ae66efcf551d9491df194b877 /system_call.mdwn
parentb8f6fb64171e205c9d4b4a5394e6af0baaf802dc (diff)
IRC.
Diffstat (limited to 'system_call.mdwn')
-rw-r--r--system_call.mdwn15
1 files changed, 15 insertions, 0 deletions
diff --git a/system_call.mdwn b/system_call.mdwn
index f180a79b..16d706c7 100644
--- a/system_call.mdwn
+++ b/system_call.mdwn
@@ -18,3 +18,18 @@ 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
system call is implemented (primarily by means of [[RPC]]) inside [[glibc]].
+
+
+# IRC, freenode, #hurd, 2013-06-15
+
+ <braunr> true system calls are always implemented the same way, by the
+ kernel, using traps or specialized instructions that enable crossing from
+ user to kernel space
+ <braunr> glibc simply translates function calls to system calls by packing
+ arguments appropriately and using that trap or syscall instruction
+ <braunr> on microkernel based systems however, true system calls are
+ normally used only for IPC
+ <braunr> so we also use the term syscall to refer to those RPCs that
+ provide system services
+ <braunr> e.G. open() is a call to a file system server (and maybe several
+ actually)