看板 DFBSD_kernel 關於我們 聯絡資訊
Hi all, 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. -Zera Holladay