在此文中,持续完善,搭建内核开发环境的细节,有需要的小伙伴儿可以持续关注下
git版本管理
# 安装git环境
sudo apt-get install git
汇编器
链接器
调试器
gdb
是目前最常用的动态调试工具之一。
所谓动态调试,指的是在程序运行的过程中对程序进行观测或施加干预的过程,一种常见的动态调试方法是断点,通过插入断点使得程序在特定点位暂停运行,让动态调试器可以对程序的状态进行进一步的观测。
与动态调试相对的是静态分析。
静态分析不需要实际运行程序,甚至不需要编译程序,而是在程序源代码或指令的层级进行一系列分析甚至“枚举”,预测程序的可能执行情况,寻找潜在的问题。
某种程度上来说,对于存在问题的程序,程序员直接阅读代码或汇编指令并分析问题,也可以被视为一种静态分析。
相较于静态分析,动态调试可以真实地反映程序运行的实际情况,包括各种数据的实际值、程序的实际执行路径等。
在某些场景下,使用动态调试寻找程序的问题或理解程序的行为,比直接阅读程序源码要简单许多,例如使用动态调试器单步运行程序,在每一步运行的前后观察程序的相关状态,可以非常直观地找到导致问题的程序指令或代码。
当然,静态分析也有着广泛的应用,许多静态分析工具在无需编译或运行程序的情况下便可分析程序的潜在问题,这可以有效节约程序运行的时间,同时静态分析可以尽可能地枚举程序的可能执行路径,有助于发现实际运行程序时不会出现或非常罕见的问题。
编辑器
# 安装编辑器vim以及ctags(方便跳转)
sudo apt-get install vim universal-ctags
构建系统
make和cmake
模拟器
QEMU
是目前广泛应用的开源模拟器和虚拟机项目。
它可以在一种架构的CPU
(如x86
)上,
模拟其他多种架构的CPU(如aarch64等),
这使得可以通过qemu在x86 CPU上运行为其他CPU架构编译的程序。
qemu
的模拟粒度可以分为进程级和系统级。
在进程级模拟下,
qemu
只负责运行一个为其他架构编译的普通程序,这个程序与当前系统中运行的程序的唯一区别是它所使用的指令集不同,qemu
会负责将它所使用的指令集翻译为当前机器可以执行的指令。
默认情况下,
qemu
命令执行进程级模 拟。
qemu-system
命令可以用于系统级模拟。
在系统级模拟下,QEMU
会模拟一整套硬件,包括CPU
、内存、磁盘以及多种可选硬件设备,此时QEMU
的功能类似于虚拟机。在系统级模拟下,QEMU
不能直接运行普通的用户态程序,而是需要运行完整的操作系统,由操作系统来管理QEMU
模拟出的硬件资源。
sudo apt install qemu-user
文档工具
如Doxygen
图形设计工具
GIMP
data manage
sudo apt-get install docker.io
sudo usermod -aG docker thirty-two