- 博客(5)
- 收藏
- 关注
原创 Linux内核进行进程切换的理解 内核版本4.15
A是当前进程prev_p B是下一个要运行的进程next_p 在调度函数中执行update_sp0后此时内核栈由A转换成B进程内核栈了,因此return prev_p返回的是B进程内核栈中的prev_p 也就是(曾经)把B进程切换出CPU的进程(这个进程可能是 A C D等等)。这么理解进程A切换到B进程,运行到__switch_to_asm函数的return prev_p 此时A的内核栈中存放的是A和B进程 B进程内核栈中存放的是 B进程和 (曾经)把B进程切换出CPU的进程。
2023-06-21 22:12:10 174
原创 linux内核中的一些字段理解4.15
是pid中的结构体中pid_namespace结构体在基数树上,当find_vpid时会获取这个进程pid_namespace然后通过pid和pid_namespace在命名空间的基数树上获取到struct pid结构体,这了利用了基数树的特性。在使用接口pid_task获取到task_struct时,通过struct pid中的hlist_head tasks字段获取到struct pid(也就是它自己),然后在利用struct pid中的node字段中的*pprev获取到task_struct。
2023-06-10 15:08:33 149 1
原创 do_syscall_64 函数
x86_64 4.15.1内核do_syscall_64 函数中nr和ori_ax和ax中根本不是系统调用号,我看网上帖子都是说系统调用号,我真是无语了。我是自己编译内核打印nr ori_ax ax值得,不知道网上帖子有没有测试,就在哪里瞎扯淡。
2022-09-12 17:43:35 449 1
空空如也
linux 内核之内存访问权限
2022-11-10
TA创建的收藏夹 TA关注的收藏夹
TA关注的人