自定义博客皮肤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)
  • 收藏
  • 关注

原创 Linux操作系统分析课程总结报告

在本门课程的学习过程中,我跟踪调试了start_kernel的运行过程、编写系统调用程序以及跟踪该程序,使得我对Linux系统的启动过程和系统调用有了更深刻的理解。通过分析Linux系统中的进程切换过程,了解了Linux系统的一般执行过程。同时这门课程对Linux系统下函数执行过程中栈和寄存器的变化、系统的中断和异常、虚拟化技术等进行了深入的分析,加深了我对Linux操作系统的内部工作原理和相关概念的领悟。

2023-05-15 21:56:56 277 1

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

在context_switch()函数中,操作系统会调用switch_to()函数来完成寄存器和堆栈的切换,以实现进程的切换。1.当进程在运行过程中遇到中断或触发系统调用,首先会进行中断上下文的切换,之后进行ISR中断服务,之后调用_schedule()函数进行进程的切换,schedule()将当前进程的标识符记为prev进程。3.在context_switch()中调用switch_to()进行寄存器和堆栈的切换,也就是context_switch()完成进程的切换。

2023-04-26 21:54:34 109 1

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

这时CPU是知道异常类型和异常向量表的起始地址的,所以可以自动把VBAR_EL1寄存器的值(vectors),和第3组Synchronous的偏移量0x400相加,即vectors + 0x400,得出该异常向量空间的入口地址,然后跳转到那里执行异常向量空间里面的指令。svc指令触发了系统调用,所以排在最前面的就是条件判断跳转到el0_svc,el0_svc中主要负责调用C代码的el0_svc_handler处理系统调用和ret_to_user系统调用返回。制作dev和lib目录中的内容。

2023-03-31 17:14:04 128

原创 lab3:基于VS Code的Linux内核调试环境搭建及start_kernel跟踪分析

start_kernel的结尾是arch_call_reset_init(),这个函数执行了reset_init()函数,进入reset_init函数内部,并且这个函数是由0号进程执行的。在新线程(进程)中运行kernel_init()函数, 在kernel_init()函数里面调用了run_init_process函数。2号进程在不停地查看是否有需要创建的内核进程,如果kthread_create_list不空即有需要创建的内核进程。kernel_thread函数是通过_do_fork函数来创建进程的。

2023-03-24 01:39:55 226 1

空空如也

空空如也

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

TA关注的人

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