- 博客(5)
- 收藏
- 关注
原创 Linux课程总结
在Linux操作系统分析这门课程的学习过程中,我了解到了Linux操作系统的组成和架构,包括内核、Shell、文件系统等等。由于本人是跨考生,在学这门课之前,仅仅了解一些Linux常用指令,这么课让我认识了Linux操作系统的底层构成,进程的创建终止以及进程调度机制等等,同时学习了编译内核,构建根文件系统,通过qemu模拟环境启动内核,使用gdb断点调试内核程序,阅读内核源码,对Linux操作系统有了一个更全面、更深层次的认识。
2023-05-14 23:41:38
88
原创 lab5:深入理解进程切换
如果prev进程是用户进程,则将被借用的mm_struct的引用计数器加1,使得即使用户进程退出,地址空间也不会被马上销毁(需要等到引用计数器为0才能销毁)。prev->mm 指向切换之前进程的当前正在使用的地址空间描述符 active_mm 如果该进程是内核线程,则mm为空,内核线程没有自己的用户空间上下文,因此需要借用其他进程正在使用的地址空间,即active_mm。next->mm 指向切换后要执行的进程的地址空间描述符。
2023-04-25 20:08:05
107
1
原创 以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-30 20:42:30
102
原创 lab3:基于VS Code的Linux内核调试环境搭建及start_kernel跟踪分析
ubuntu 22.04 许多bug.环境:ubuntu 18.04。
2023-03-23 23:54:42
279
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人