自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 lab5:s深入理解进程切换

context_switch函数的主要功能是保存当前运行进程的上下文,并加载要切换到的目标进程的上下文,以便让目标进程继续执行。最后,调用 finish_task_switch 函数,完成进程切换,这个函数与第一步的prepare_task_switch函数是成对出现的,用来完成一些清理操作。调度队列是一个序列,rq指本次进程切换时的运行队列,prev指向切换前的进程,next指向切换后进程。如果切换到的目标进程属于不同的地址空间,那么页表会被切换到目标进程的页表,以确保正确的内存映射。

2023-05-23 10:45:41 77 1

原创 LINUX课程总结

在Linux操作系统分析这门课程的学习过程中,我了解到了Linux操作系统的组成和架构,包括内核、Shell、文件系统等等。由于本人是跨考生,在学这门课之前,仅仅了解一些Linux常用指令,这么课让我认识了Linux操作系统的底层构成,进程的创建终止以及进程调度机制等等,同时学习了编译内核,构建根文件系统,通过qemu模拟环境启动内核,使用gdb断点调试内核程序,阅读内核源码,对Linux操作系统有了一个更全面、更深层次的认识,也对我今后的对Linux的学习打下了一个良好的基础。

2023-05-16 11:41:32 447

原创 lab5:深入理解进程切换

该函数在进程切换之前调用,内核会执行与体系结构相关的一些调测指令。上下文切换完成后,必须调用 finish_task_switch,即这两个函数一定是要成对出现的。

2023-04-25 23:45:08 79 1

原创 lab4:以time/gettimeofday系统调用为例分析ARM64 Linux 5.4.34

这一过程是 CPU 硬件自动完成的,不需要程序干预。随后,以 svc 指令对应的 el0_sync 为例,el0_sync 处的内核汇编代码首先做的就是保存异常发生时程序的执行现场(保存现场,即用户栈、通用寄存器等),然后根据异常发生的原(ESR_EL1 寄存器中的内容)跳转到 el0_svc,el0_svc 会调用 el0_svc_handler、el0_svc_common 函数,将 X8 寄存器(regs->regs[8])中存放的系统调用号传递给 invoke_syscall 函数。

2023-03-31 09:49:46 98

原创 lab3基于VSCode调试Linux内核

基于VSCode调试Linux内核

2023-03-23 21:31:37 101

原创 C程序x86-64汇编代码

x86汇编代码分析

2023-03-14 21:20:44 279

空空如也

空空如也

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

TA关注的人

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