Tuesday, August 11, 2009

linux kernel: 3rd

1. page round off:
newbrk = (addr + 0xFFF) & 0xFFFFF000;

kernel memory region: double link list --> red-black tree
collect adjacent free regions

2. system calls API:
malloc-calloc (libc calls) --brk--sbrk(syscall#()-->number = eax
register: 0x80 _ mode switch.
set_system_gate(0x80, &system_call);

pushl %eax,
SAVE_ALL
movl ..

calling stack.

3. signals, block/pending signals
k = &current->sig->action[sig-1];

No comments:

Post a Comment