- 博客(6)
- 收藏
- 关注
原创 Linux深入理解进程切换
从现在起,内核在新进程的内核态栈上操作,所以,这条指令才是执行旧进程切换到新进程的开始。其中,content_switch 函数有三个参数:rq、prev、next,rq即使上面我们说的running queue(就绪队列),prev 指向切换前进程的进程描述符,next 指向切换后进程的进程描述符。switch_to 调用3个参数,prev、next和last,prev和next分别指向新旧进程的描述符地址,last,是一个输出参数,用来记录是从哪个进程切换来的。将新进程的栈指针加载到esp寄存器中。
2023-05-23 11:29:33
830
1
原创 Linux操作系统分析课程总结
Linux常用命令、计算机系统的架构冯诺依曼和哈弗架构、x86和ARM64的区别和联系、Linux内核调试过程、深入理解系统调用、进程的描述和描述的创建、可执行程序的执行原理、Linux I/O 和设备管理、进程调度和切换、虚拟机技术、Linux容器技术。
2023-05-18 14:05:39
137
1
原创 lab5.深入理解进程切换
content_switch 函数的下一个重要函数就是 switch_to,即切换寄存器状态和栈。swtich_to 函数会进一步调用 __switch_to_asm。下面是X86_64的实现过程中,寄存器和栈的状态更新过程。content_switch 函数有三个参数:rq、prev、next,其中 rq 指向本次进程切换发生的 running queue;进程切换和核心函数是context_switch,位于 Linux 内核源码目录的 kernel/sched/core.c 中。
2023-04-27 18:47:49
123
1
原创 VSCode环境搭建以及start_kernel调试
接下来准备init脚本文件放在根文件系统跟目录下(rootfs/init),添加如下内容到init文件:(使用touch init 创建init脚本文件,再“vim init”打开init文件,再按i进入插入模式,粘贴进去,再按ESC进入命令模式,:wq保存并退出即可。原文链接:https://blog.youkuaiyun.com/double113217/article/details/129614177。测试挂载根文件系统,看内核启动完成后是否执行init脚本。打包成内存根文件系统镜像。
2023-03-23 22:29:25
236
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人