DragonFly kernel List (threaded) for 2005-01
I've been reading the "Design and Implementation of the 4.4 BSD Operating
System." I have a few questions concerning system calls on DFBSD and in
general. For reference, I have been looking at pg. 53, chaper 3.2.
I'll start by summarizing what is written: a system call handler must 1.
veryify that parameters are at a valid user address space and 2. call a
kernel routine that implements the system call.
So my questions are:
1. What is the diff between a "trap" and an "interrupt?" The distinction
between the two seems blurred at best.
2. What is a trap into the kernel? How does this work? Where is the C
code in the /usr/src?
3. What is the system call handler? Is the system call handler any
different from a signal handler in a user process? How does the system
call handler locate the address of the kernel routine?
The authors state that the most frequent traps into the kernel are system
calls (after clock processing). I assume the code concerning the above
must be very fast and machine specific. If this is not the appropriate
list to ask these questions, then I apologize.