自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(4)
  • 收藏
  • 关注

原创 分析 time/gettimeofday 系统调用

并将系统调用的参数依次放入x0-x5这6个寄存器中,然后将系统调用号存入x8寄存器中。然后通过__invoke_syscall函数执行该系统调用内核处理函数,即将__invoke_syscall函数的两个参数regs和syscall_fn变为调用syscall_fn(regs),regs中存储着系统调用参数(regs->regs[0-5])和系统调用号(regs->regs[8]),从而执行该系统调用内核处理函数。执行完成以后,一个一个退栈执行后续代码然后到b ret_to_user返回系统调用。

2023-05-22 15:57:43 172 2

原创 基于VSCode的Linux内核调试环境搭建以及start_kernel跟踪分析

首先从https://www.busybox.net下载 busybox源代码解压,解压完成后,跟内核一样先配置编译,并安装。5、在.vscode中添加配置文件。6、跟踪Linux内核的启动过程。

2023-05-22 14:50:06 274 1

原创 Linux源码分析课程总结报告

虚拟化技术中虚拟化层会拦截所有的硬件访问,并将其重定向到虚拟机中。这意味着,在启动引导程序时,虚拟化层会加载虚拟机的引导程序而非物理主机上的引导程序。从而虚拟层会在调用系统调用时访问虚拟的内核而非物理机的内核,从而实现虚拟化的系统调用。

2023-05-15 23:57:52 175 1

原创 深入理解进程切换

pushl %ebp由于 switch_to 是 context_switch() 中的一个宏替换,所以这一步是将 context_switch() 的栈桢起始位置压到 prev 进程的内核栈中。movl [next->thread.esp], %esp将 next->thread.esp 恢复到当前 CPU 的 esp 寄存器中,此时已经切换到了 next 进程的内核栈。到这里已经完成了内核栈的切换,下面的工作就是在 __switch_to() 中对 next 进程进行一些设置。

2023-04-26 22:27:44 228 1

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除