[lkml]   [2000]   [Oct]   [17]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
Messages in this thread
SubjectRe: quick questions: kernel stack size and call gates
Chris Swiedler wrote:
> 1. Does Linux use call gates (as specified in the Intel SDK vol.3) when a
> user process makes a system call? From what I understand, call-gates let a
> ring-3 process execute ring-0 code, which sounds exactly like a system call.
> I've found all of the actual system call functions (sys_ni etc.) in sys.c,
> but where is the code which userland calls to transfer to "kernel mode" and
> execute a particular syscall?

Linux uses an interrupt gate (int $0x80). The code that handles the
entry to kernel mode is in arch/i386/kernel/entry.S

> 2. I've often heard that the kernel stack size is set small (4 or 8k?). Is
> this done by limiting the size of the stack segment itself for the kernel?
> Where is the code which sets up the limit?

The stack segment is a flat segment just like the code and data
segments. The stack size is fixed and is allocated to be two pages (8k
on x86). There is no mechanism in place to enforce the stack boundaries
other than a possible page fault. The task structure is located at the
bottom of the stack space so it would get overwritten before any fault
would occur anyways.


Brian Gerst
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to
Please read the FAQ at

 \ /
  Last update: 2005-03-22 12:41    [W:0.028 / U:2.192 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site