陆续写些关于新书《自己动手写CPU》的博客,本篇主要是讲解 gem5运行全系统模拟
使用gem5可以启动Linux内核,称为全系统模拟,启动之后,可以通过telent连接,进行访问,但四telent有时不稳定,gem5推荐使用m5term进行连接访问,整个步骤如下:
(假设gem5文件加压缩后,位于/root/gem5/gem5-stable-50ff05095970文件夹)
(1)打开终端,进入/root/gem5/gem5-stable-50ff05095970目录,使用如下命令得到x86的二进制虚拟机
scons build/X86/gem5.opt
时间比较长,大约半个小时。
(2)在http://www.m5sim.org/Download下载x86对应的全系统文件,我用的下载地址是http://www.m5sim.org/dist/current/x86/x86-system.tar.bz2
下载后,在/root/gem5/gem5-stable-50ff05095970目录下新建一个文件夹fs-image,将下载的x86-system.tar.bz2复制到该文件夹下,并解压缩。
(3)在http://www.m5sim.org/Download下载alpha对应的全系统文件,我用的下载地址是http://www.m5sim.org/dist/current/m5_system_2.0b3.tar.bz2
下载后,解压缩,将其中disks目录下的linux-bigswap2.img复制到/root/gem5/gem5-stable-50ff05095970/fs-image/x86-system/disks目录下。
(4)修改/root/.bashrc,其中添加环境变量,如下:
export M5_PATH=$M5_PATH:/root/gem5/gem5-stable-50ff05095970/fs-image/x86-system
使用source /root/.bashrc,使得修改后的环境变量生效。
(5)在终端中进入/root/gem5/gem5-stable-50ff05095970目录,是如如下命令可以启动x86虚拟机:
build/X86/gem5.opt configs/example/fs.py --kernel=x86_64-vmlinux-2.6.22.9 --disk-image=linux-x86.img
会出现如下启动结果:
gem5 Simulator System. http://gem5.org
gem5 is copyrighted software; use the --copyright option for details.
gem5 compiled Jan 26 2015 13:54:19
gem5 started Jan 26 2015 18:19:14
gem5 executing on localhost.localdomain
command line: build/X86/gem5.opt configs/example/fs.py --kernel=x86_64-vmlinux-2.6.22.9 --disk-i