- 博客(5)
- 收藏
- 关注
原创 lab5:深入理解进程切换
linux 中进程切换涉及到一个调用链:先是 context_switch 函数,content_switch 函数位于 Linux 内核源码目录的 kernel/sched/core.c 中,是 schedule 函数中实现进程切换的函数.content_switch 函数有三个参数:rq、prev、next,其中 rq 指向本次进程切换发生的 running queue;prev 和 next 分别指向切换前后进程的进程描述符。
2023-05-23 10:45:45
80
1
原创 lab4:以time/gettimeofday系统调用为例分析ARM64 Linux 5.4.34
(4)系统调用内核处理函数执行完成后,系统调用返回前,需要恢复异常发生时程序的执行现场(恢复现场),其中就包括主动设置ELR_EL1和SPSR_EL1的值,原因是异常会发生嵌套,一旦发生异常嵌套ELR_EL1和SPSR_EL1的值就会随之发生改变,所以当系统调用返回时,需要恢复之前保存的ELR_EL1和SPSR_EL1的值。(5)内核调用异常返回指令eret,CPU自动把ELR_EL1写回PC,把SPSR_EL1写回PSTATE,并返回到用户态程序里,可以继续运行了。(1)svc指令触发系统调用。
2023-05-23 10:39:30
94
1
原创 Linux实验三——基于VS Code的Linux内核调试环境搭建及start_kernel跟踪分析
在start_kernel函数打断点进行执行,断点设在init/main.c中的start_kernel函数中,然后Qemu 开启GDB调试,vscode start debug即可开始调试内核。sudo apt install libncurses5-dev bison flex libssl-dev libelf-dev #编译内核所需的依赖---一些基础库。首先从https://www.busybox.net下载 busybox源代码解压,解压完成后,跟内核一样先配置编译,并安装。
2023-05-23 10:27:26
212
1
原创 Linux操作系统Lab1
将一个简单的C程序汇编成LoongArch或RISC-V汇编代码,并逐步分析程序的执行过程,深入理解存储程序计算机和函数调用堆栈框架在执行过程中所起的作用。
2023-03-10 15:16:19
192
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人