- 博客(4)
- 收藏
- 关注
原创 Linux课程总结报告
通过本次学习,我对linux操作系统的了解大大加深了,从内核的组成,进程的创建和切换过程,内核如何管理设备驱动程序,文件系统的组成等掌握了操作系统的工作原理,对操作系统内核的实现和运作有了更深入的认识;在实验的过程中,我还掌握了Linux操作系统的调试和分析技能,在课程学习中掌握了一系列调试和分析Linux内核的技巧和工具,更加深入理解了内核的运作过程,发现问题和解决问题;
2023-05-15 15:48:25
874
1
原创 Linux深入理解进程切换
上下文切换完成后,必须调用 finish_task_switch,即这两个函数一定是要成对出现的。cpu_switch_to() 有两个参数,分别存放在寄存器 x0 与 x1 中,x0 存放上一个进程的进程描述符的地址,x1 存放下一个进程的进程描述符的地址。而ret指令出栈存入RIP寄存器的是进程切换之后的next进程的内核堆栈栈顶数据.其中参数rq代表当前CPU的执行进程队列,prev,next分别指向进程上下文组成的双向链表的进程描述符。切换寄存器状态和栈。2.进行进程地址空间的切换,代码如下。
2023-04-25 10:51:28
86
1
原创 以time/gettimeofday系统调用为例分析ARM64 Linux 5.4.34
由于Ubuntu是X86架构,为了编译arm64的文件,需要安装交叉编译工具链。
2023-03-30 18:41:03
128
原创 基于VS Code的Linux内核调试环境搭建及start_kernel跟踪分析
在内核引导时,init_task会被创建并启动,是所有其他进程的起点。在start_kernel()函数末尾,arch_call_rest_init()函数体内为rest_init()函数,因此设置一个rest_init函数断点,进入rest_init函数体内,该函数由0号进程执行。新建一个.vscode文件夹,将配置文件放入该文件夹内,配置如下五个文件:c_cpp_properties.json,init,launch.json,settings.json,tasks.json。
2023-03-23 23:42:35
186
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人