【研究内容】
l 操作系统工作的基础:存储程序计算机、堆栈(函数调用堆栈)机制和中断机制;
l 在操作系统工作的基础之上,请您简述操作系统(内核)是如何工作,宏观概述结合关键点的微观(CS:EIP、EBP/ESP等的变化)分析。
【分析结论】
在单进程计算机中,通过CPU和进程空间实现计算机的运行。每个进程都有4G的进程逻辑地址空间task_struct,CPU根据cs:eip从进程空间中取下一条指令进行执行,这样一直取指令执行指令地重复执行实现了单进程计算机的顺序运行。
而函数调用堆栈实现了c代码的调用执行控制,寄存器ebp指向当前函数调用堆栈的栈底,esp指向当前函数调用堆栈的栈顶。当调用新函数时,将cs:eip和原函数的栈底压栈,并把原函数的栈顶作为新函数的栈底,此时栈顶与栈底重合,eip指向新函数开始处继续执行,当函数运行结束时leave将释放新函数的函数调用栈空间,此时栈顶与栈底重合,再恢复ebp到原函数的栈底,此时cs:eip出栈,从cs:eip处继续执行原函数,从而实现了c函数的调用控制