结合 BusyBox 与完整发行版的内核验证环境

本站之前的两篇文章: 《基于 BusyBox 快速制作内核验证环境》 《基于完整发行版搭建内核验证环境》 分别总结了基于 QEMU 搭建内核验证环境的两种思路。经过这几年下来在日常工作中的实践和体会,总结下两者各自的优劣: 前者构建成本低,操作简单;用户态极简,启动时省去了大量用户态(如 systemd)的初始化工作,启动速度快。 后者有完整的 C 语言运行时环境,可执行动态链接的用户态程序;有完整的包管理,软件资源丰富,可拓展性强。 我个人的偏好是,优先考虑使用前者,毕竟简单高效,有利于反复试错和快速迭代;如果验证场景对 C 语言运行时或者其他用户态基础设施有依赖,再考虑使用后者。 那么,有没有一种方法,能够将两者的优点结合起来, …

基于 BusyBox 快速制作内核验证环境

本文介绍的方法,旨在利用基于 BusyBox 制作的简易文件系统来快速启动内核并进入一个 shell 环境,以此来验证内核的功能和稳定性。其优点在于制作简单,资源占用小,验证环境的启动时间短(仅需启动内核,省去了各种用户态应用及框架的启动过程);缺点是可拓展性较差,难以支撑一些需要用到用户态工具的复杂内核功能的验证。 本文主要以 ARM64 为例讲解整个过程。实际操作中,应结合实际使用的体系结构与工具链对步骤细节进行调整。介绍的验证环境有基于 initrd 和基于 SD 卡两种,可以根据实际情况选择。 BusyBox 编译 1# BusyBox 源代码下载,解压 2# https://busybox.net/downloads/ 3 …