summaryrefslogtreecommitdiff
path: root/rpc.mdwn
blob: 7db5f103589cdd6639a635faeec4fc5f2f81c4db (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
[[!meta copyright="Copyright © 2007, 2008, 2010, 2012 Free Software Foundation,
Inc."]]

[[!meta license="""[[!toggle id="license" text="GFDL 1.2+"]][[!toggleable
id="license" text="Permission is granted to copy, distribute and/or modify this
document under the terms of the GNU Free Documentation License, Version 1.2 or
any later version published by the Free Software Foundation; with no Invariant
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.  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

  * [[Mach RPC|microkernel/mach/rpc]]s

  * [[RPC usage in the Hurd|hurd/rpc]]

  * the [[Hurd's rpctrace|hurd/debugging/rpctrace]]