本文以 Linux 内核中的上下文切换函数 content_switch 为中心,分析 Linux 5.4.34 版本内核中进程切换的基本操作与基本代码框架。
由于需要阅读一些与体系结构相关的函数源码,为了快速定位有关函数的位置,这里推荐一个网站:https://elixir.bootlin.com,这个网站提供了所有 Linux 内核版本源码的在线阅读功能。我们可以直接在页面右上方的搜索框中键入函数名,来快速定位该函数在内核源码的哪些地方定义和使用过。
本文以 Linux 内核中的上下文切换函数 content_switch 为中心,分析 Linux 5.4.34 版本内核中进程切换的基本操作与基本代码框架。
由于需要阅读一些与体系结构相关的函数源码,为了快速定位有关函数的位置,这里推荐一个网站:https://elixir.bootlin.com,这个网站提供了所有 Linux 内核版本源码的在线阅读功能。我们可以直接在页面右上方的搜索框中键入函数名,来快速定位该函数在内核源码的哪些地方定义和使用过。
本博客基于 Ubuntu 20.04.5 LTS,内核版本 5.4.34,通过 qemu 在 x86 的宿主机上模拟 ARM64 的环境。其它 Linux 发行版以及内核版本请自行对个别命令进行调整。
本博客基于 Ubuntu 20.04.5 LTS,内核版本 5.4.34,其它 Linux 发行版以及内核版本请自行对个别命令进行调整。
实验目的:通过分析 C 语言源程序经过 gcc 12.2 生成的 ARM64 汇编代码,理解存储程序计算机与函数调用框架。