- 博客(5)
- 收藏
- 关注
原创 【无标题】
在虚拟化环境中,物理主机上的虚拟化软件(如VMware、KVM等)启动,并创建虚拟机管理器(VMM)或称为hypervisor。VMM负责管理虚拟机的创建、销毁和资源分配。
2023-05-15 17:20:09
75
1
原创 深入理解进程切换
最后,调用 finish_task_switch 函数,完成进程切换,这个函数与第一步的prepare_task_switch函数是成对出现的,用来完成一些清理操作。调度队列是一个序列,rq指本次进程切换时的运行队列,prev指向切换前的进程,next指向切换后进程。1.在进程切换前调用prepare_task_switch函数来使得内核执行一些相关的指令。2.调用 arch_start_context_switch 函数开始进行进程切换。决定切换到内核模式还是用户模式。3.下面的代码进行进程地址切换。
2023-05-02 20:10:52
137
1
原创 【无标题】
然后通过__invoke_syscall函数执行该系统调用内核处理函数,也就是将__invoke_syscall函数的两个参数regs和syscall_fn变为调用syscall_fn(regs),regs中存储着系统调用参数(regs->regs[0-5])和系统调用号(regs->regs[8]),从而执行该系统调用内核处理函数。最后将系统系统调用内核处理函数的返回值保存到内核堆栈里保存x0的位置,以便将返回值在恢复现场系统调用返回时可以传递到用户态x0寄存器。修改profile文件内容。
2023-03-30 20:58:12
65
原创 linux实验
操作系统使用eip寄存器通过总线将代码和指令从内存中读入到CPU中执行。在程序运行的过程中,通过函数调用等手段可以改变eip中的值来改变指令的执行顺序,这个过程涉及到ebp、esp等寄存器。%ebp:堆栈指针,典型的用法是配合push和pop汇编指令间接改变自身,%ebp就是栈顶指针;%eax:默认“累加器”,也是一个通用寄存器,往往也是存储函数返回值的寄存器。%esp:“基址指针”,一般作为一个函数的框架指针;通过汇编理解存储程序计算机和和函数调用框架。unbutu 64位系统。
2023-03-14 22:06:48
54
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅