摘要:
Linux系统如何工作 Linux的启动过程 首先由0号进程idle创建其子进程1号进程init和2号进程kthreadd; 1号进程init是所有用户态进程的祖先,init将会创建新的子进程用来执行用户命令; 2号进程kthreadd是所有内核线程的祖先。 在这个过程中,有可能会发生冲突,根据进程 阅读全文
摘要:
一.进程上下文和中断上下文 进程上下文指的是一个进程在执行的时候,CPU的所有寄存器中的值、进程的状态以及堆栈上的内容,当内核需要切换到另一个进程时,它 需要保存当前进程的所有状态,即保存当前进程的进程上下文,以便再次执行该进程时,能够恢复切换时的状态,继续执行。 中断上下文是硬件通过触发信号,向C 阅读全文
摘要:
一.为何要有系统调用 unix内核分为用户态和内核态,在用户态下程序不内直接访问内核数据结构或者内核程序,只有在内核态下才可访问。请求内核服务的进程使用系统调用的特殊机制,每个系统调用都设置了一组识别进程请求的参数,通过执行CPU指令完成用户态向内核态的转换。 二.系统调用过程 32位系统中,通过i 阅读全文
摘要:
实验基于https://github.com/mengning/mykernel完成 一.配置虚拟机QEMU 安装过程不再阐述,参考上方链接即可 为了使得qemu能够正常进行debug,需要设置相关内核选项 # 打开debug相关选项 # 关闭KASLR,否则会导致打断点失败 Processor t 阅读全文