linux 3.18.6
- start_kernel 创建了kernel_init,kernel_thread,0,1,2三个进程。1号是所有用户态进程的祖先,2号是所有内核线程的祖先
- 一般来说,用户态和内核态访问的空间不同。0x00000000-0xbffffffff(逻辑地址)
- CS寄存器的最低两位表明了当前代码的特权级(判断由硬件完成 )
- 中段发生时save_all(保存到kernel_stack),结束时restore_all
- int 指令做了什么事?
- int , SAVE_ALL,RESTOR_ALL,iret
- 0x80,系统调用.eax存系统调用号
- trap_init() 系统调用的初始化
- 内核态返回之前,可能会产生进程调度
- 内核=中断调用的集合+内核线程
- 系统调用图片
- 静态链接ELF
- -