最近做安全防御实验,导师说要用硬件仿真,能降低性能开销。好吧,你说啥就是啥,反正我也没用存软件实验过。先搭建CPU仿真平台吧,千寻万找觅得Multi2Sim,乍一看以为是multisim,还窃喜了两秒,百度一找。。。。。。。(此处省略一万句MMP)。。
好不容易在官网http://www.multi2sim.org/ 下载好Multi2Sim 5.0,按着手册来安装,直接报错。软件本身有问题??系统有问题?手册写错了??反正我是想不出。那就按着网上的来吧。
http://blog.csdn.net/xer1234/article/details/8808121
网上唯一三篇相关博客由这位仁兄贡献
同样错误!!琢磨半天,突然发现,他的版本Multi2Sim 4.1,官方手册版本Multi2Sim-guide-4.2,Are you kidding me? 软件5.0,手册4.2?13年到18年你就只更新软件不更新手册?更可恶的是其他的版本找不到!!!!
最后在github总算找到了简单介绍。https://github.com/Multi2Sim/multi2sim
原来Mac、Windows和Ubuntu16.4的系统都得先装一个叫docker的软件。
Docker地址:https://docs.docker.com/engine/installation/
这个软件装起来简直想吐血。
系统:ubuntu 14.04和15.04,运行以下命令即可安装,(未亲测)
以下针对Ubuntu16.04、windows、mac:
Docker有两种版本,一种个人版CE,一种企业版EE。(本人Ubuntu16.4系统,装个人版)
官方步骤:
1. 安装版本库(准备工作)
(1.1)$ sudo apt-get update
(1.2)$ sudo apt-get install
\
apt-transport-https \
ca-certificates \
curl \
software-properties-common
(1.3)$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
(1.4)$ sudo apt-key fingerprint 0EBFCD88
pub 4096R/0EBFCD88 2017-02-22
Key fingerprint
=9DC8 5822 9FC7 DD38 854A E2D8 8D81 803C 0EBF CD88
uid Docker Release
(CE deb
)<docker@docker.com>
sub 4096R/F273FCD8 2017-02-22
(1.5)$ sudo add-apt-repository \
"deb [arch=ppc64el] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs)\
stable"
2. 开始下载安装(下载速度极慢。。。静静等待)
(2.1)$ sudo apt-get update
(2.2)$ sudo apt-get install docker-ce
到这里已经安装完成
3. 检测是否安装成功
$ sudo docker run hello-world
报错 unable to find image ‘hello-world:latest’locally时,无视。多运行两次就好了。
正式Multi2Sim安装:
总算安装完docker,然后就是把multi2sim镜像加载进来了。
$> docker pull multi2sim/multi2sim
经过漫长的等待完成(共702M),最后运行
$> docker run -it multi2sim/multi2sim bash
也可用: docker run -it multi2sim/multi2sim/bin/bash
到这里安装完成了,问题接踵而来。
先自己写个hello world测试一下。
1. mkdir/home/test
2. touch /home/test/hello.c
3. vihello.c(没有gedit,只能用vi…………此处代码省略)
安装一个gedit吧, apt-get installgedit (没成功,不管了,没有yum命令)
4. 编译:gcc -o -m32 hellohello.c (系统为64为,multi2sim不支持,只能-m32)
5. 运行: m2s hello
结果就不贴出来了,参考上面提到的三篇博客。
事情还没结束。。。。。。。。。。
发现docker内有一套自己的文件系统,原ubuntu的文件在这里根本找不到。
如原/home/www/test在docker下没有,home目录为空
那就把原系统文件和docker镜像内连起来吧。
1.创建要挂载到docker的目录: mkdir /home/multi
2.退出docker: exit
3.找到要共享的目录,如本人 /home/wq/multi2sim
4.挂载到multi2sim镜像:
sudo docker run-itv /home/wq/multi2sim:/home/multi multi2sim/multi2sim /bin/bash
5.检测: ls /home/multi
发现/home/wq/multi2sim目录下的文件果然过来了
以后就可以在Ubuntu中准备好所有的应用,需要测试的时候才打开multi2sim了。前面安装的时候如果觉得太慢,可以自己网上先下载镜像到本地,然后用此方法把本地镜像挂载上去就行啦!
sudo docker images 查看docker内有哪些镜像。