开发者社区> simpower91> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

沙箱程序之虚拟机篇

简介:
+关注继续查看

由上而下的描述。

  • libvirt

最顶层是管理虚拟机的入口,linux开源套件 libvirt(官网:www.libvirt.org):
Introduction

The libvirt project:

is a toolkit to manage virtualization platforms
is accessible from C, Python, Perl, Java and more
is licensed under open source licenses
supports KVM, QEMU, Xen, Virtuozzo, VMWare ESX, LXC, BHyve and more
targets Linux, FreeBSD, Windows and OS-X
is used by many applications

Recent / forthcoming release changes

事实上我刚开始接触的时候只知道virsh用来管理虚拟机,感觉十分奇怪,而virsh其实就是virtual shell,CLI常用的有:list,dumpxml,edit,start,shutdown等,该套件还有一套GUI接口,virt-manager,到了图形界面就相当方便了,跟vmware差不多用法。坦白讲已经这个GUI早已大行其道的时代,我非常热衷于图形界面,因为我属于联想型,发散思维,懒得死记硬背,最好看到图形就知道怎么用,连手册都不用看,马云说“需要看长长说明书的产品就丢掉”,能用超级自动化工具,绝不手工作业,毕竟程序员就是用来发明超级自动化工具的,够懒,才能发明出更好的超级自动化工具。

还要补充一点,虚拟机配置通过xml管理,使用dumpxml命令查看,这个配置文件包含了虚拟机模拟器的路径,你可以在这里将其指向不同的虚拟机,比如x86,arm,mips,powerpc等等。这一点对于以后的安卓沙箱会用帮助。

  • qemu

这一层就到了虚拟机层了,开源项目,但是可以模拟多种cpu,模拟外设,目前我主要修改和编译其中的部分代码来对抗反虚拟机病毒,细节不必透露,以后还会做一些类似ring -1的事情,以后做到了再写一篇更深入的文章。网上有大量资料,目前不多介绍了。centos6,对应的虚拟机版本为2.5,最新版本会有很多新库的依赖,比如libc,有很多坑要填,因此使用老旧的2.5,centos7之后,我们将采用最新版2.12的qemu。这一层所做的事其实和java vm以及.net vm有些类似,还有WebAssemblly。

还有一点,采用增量镜像的好处,第一层为操作系统层,第二层为应用软件层(安装office,wps等样本运行环境),第三层为空(目的是便于镜像还原,由于是空层使得这一层文件非常小,当样本运行过后,用这个很小的空层文件覆盖样本运行后的那个增量,即可将沙箱还原为运行样本之前的面貌)。

  • kvm

hypervisor层,使用了x86 cpu的VT技术,硬件级虚拟化技术,需要开启cpu vt,安装后会在设备目录有一个/dev/kvm设备,运行在内核当中,与之对应的有windows下的hyper-V,还有苹果的什么我忘记了,不重要。这一层可以跟上一层集成在一起,也就是说cpu可以由这一层提供,而外设则由上一层提供。

越往底层写的越少,因为有些不必写,更底层的还没深入研究,我是由qemu切入,然后上下延申,下一篇是驱动篇,由驱动程序入手,窥探操作系统的设计。

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
VMware 虚拟机安装|学习笔记
快速学习 VMware 虚拟机安装
54 0
VMware中出现物理内存不足,无法使用配置的设置开启虚拟机解决方案
前几天给大家分享了如何在VMware中安装CentOS系统,后来有小伙伴在群里咨询,当新建虚拟机之后,打开虚拟机会弹出“物理内存不足,无法使用配置的设置开启虚拟机”的问题,如下图所示。这里会给出提示,让你将虚拟机内存大小减少到20352MB。
1087 0
如何在VMware中创建虚拟机
今天给大家分享如何在VMware中创建虚拟机,具体的教程如下。在这里小编提前下载了Ubuntu14.04桌面系统,为后面在虚拟机中安装Ubuntu14.04桌面系统做准备。
1082 0
VMWare虚拟机安装 - 学习者系列文章
  以前笔者写过一个VMWare虚拟机的安装说明,但是那个版本比较低,已经过时,今天,讲讲VMWare的14版本的安装和使用说明。          首先,下载VMWare 14的安装文件,这里提供一下百度网盘文件:   链接:https://pan.baidu.com/s/1NMfRzJle66_KNmXiiKZX9w 密码:g3ig   下面讲讲安装:   1、  打开安装程序;       2、  进行安装;   这里去掉这两项:          这里点击“许可证”。
987 0
已预装EduSoho的Ubuntu 14.04 VMWare虚拟机
版权声明:转载请注明出处:http://blog.csdn.net/dajitui2024 https://blog.csdn.net/dajitui2024/article/details/79396627 ...
1797 0
《VMware、Citrix和Microsoft虚拟化技术详解与应用实践》一2.5 在ESXi上建立第一台虚拟机
本节书摘来自华章出版社《VMware、Citrix和Microsoft虚拟化技术详解与应用实践》一 书中的第2章,第2.5节,作者:马博峰,更多章节内容可以访问云栖社区“华章计算机”公众号查看。
1522 0
redhat 5 在虚拟机vmware中连接ADSL网络方法详述
家用网络是ADSL,且家用PC上安装的虚拟机是REDHAT 5,要用虚拟机的linux上网必须按如下方法配置才能上网 一 设置虚拟机网卡为桥接模式 二 设置虚拟机中REDHAT 5的网络IP 为动态获取,具体步骤是 1测试虚拟机能否连网 [root@wang ~]# ping www.
826 0
程序休眠问题的C代码实现
问题描述 编写代码用于实现程序的休眠,例如,如果要求程序休眠10秒钟,那么在这10秒内程序要一直等待,而不执行任何操作。   解决思路 在Linux下,有一个select函数用于实现进程的阻塞,该函数的原型是: int select(int n, fd_set *readfds,fd_set *writefds, fd_set *exceptfds, struct timeval *timeout); 可以用该函数来实现程序的休眠。
886 0
+关注
simpower91
架构师
7
文章
0
问答
文章排行榜
最热
最新