设为首页 收藏本站
查看: 1604|回复: 0

[经验分享] 虚拟机就是开发板

[复制链接]

尚未签到

发表于 2017-6-25 15:31:14 | 显示全部楼层 |阅读模式
  转载自:http://blog.csdn.net/aggresss/article/details/54928181
  开发板可能对于电子类理工科人并不陌生,很多项目开发都需要开发板作为验证载体。对于接口类的验证确实需要物理开发板来验证,但是对于一些偏软件类的实践验证可以通过虚拟机或者叫模拟器来完成,这样可以避免物理平台的故障风险,降低实践成本,把更多的注意力放在需要关注的软件验证上面。这一次,我们来把虚拟机当做开发板,探讨通过虚拟机学习Linux相关知识的方法。
        虚拟机的运行软件是QEMU。QEMU官方(www.qemu-project.org)对自己的定义为“QEMU is a generic and open source machine emulator and virtualizer.”名称取自“Quick EMUlator”。
QEMU支持3种运行模式:
        Full-system emulation:Run operating systems for any machine, on any supported architecture
        User-mode emulation:Run programs for another Linux/BSD target, on any supported architecture
        Virtualization:Run KVM and Xen virtual machines with near native performance
        其中,用户模式仿真允许一个 CPU 构建的进程在另一个 CPU 上执行(执行主机 CPU 指令的动态翻译并相应地转换 Linux 系统调用);系统模式仿真允许对整个系统进行仿真,包括处理器和配套的外围设备;虚拟化运行模式是指通过底层的硬件支持(Intel-VT,AMD-V等虚拟化技术)和Xen或者KVM等系统级虚拟化技术相结合,高效运行虚拟化系统。
        这里要分清两个概念,模拟器(emulation)和虚拟化(virtulization),模拟器是emulator,通常是为了模拟不同指令集、不同体系架构的 CPU,所以多数情况要对微指令进行解释执行,效率相对与虚拟化慢很多;虚拟化技术 virtualization,基本都是去模拟一套相同指令集相同架构的硬件平台,因此在做好保护的前提下,很多时候可以直接利用 CPU 去执行目标指令。虽然还是模拟物理 CPU 而不借助于 Host OS 的功能,少了一层指令集转换,运行速度会提高不少。
        对于使用过Vmware Workstation 或者是 Virtual Box 的人刚接触QEMU时比较不习惯,因为它是一个命令行下纯脚本控制的软件,这就是开源社区的风格,专注于做好自己的事,UI的事情会由另一个社区来处理(可以通过额外安装 qemu-launcher 实现)。
  运行QEMU最好是在Linux环境下,我的运行环境是Ubuntu16.04_amd64 版本。QEMU的安装非常简单,在ubuntu环境下输入:
  sudo apt-get install qemu
  等待安装完成后在shell中输入 qemu 然后按两下Tab键,就可以看到QEMU支持的所有命令,如下图所示。
DSC0000.jpg
        命令的最后一部分代表模拟的平台,中间带system的是运行在系统模式下,不带system的是运行在用户模式下。
        在接下来几期的实践中我们会使用qemu-system-arm 模拟arm平台下的一个开发板,来进行Linux相关的一些实验。在模拟arm平台前,我们先体验一下QEMU与KVM相结合的虚拟化技术,来虚拟化运行一个Windows XP系统,体验一下QEMU可以实现Vmware Workstation 和 Virtual Box 同样的功能。
首先需要安装两个软件:
        sudo apt-get install qemu-kvm
        sudo apt-get install virt-manager
其中,qemu-kvm提供虚拟化加速功能,virt-manager是一个轻量级应用程序套件,提供管理虚拟机的命令行或图形用户界面。
        安装完成后通过命令 virt-manager 就可以启动图形化的虚拟机管理界面,准备好一张ISO格式的系统光盘,我这里用Windows XP,当然,你也可以选择任意支持光盘安装的系统ISO文件。各种下一步之后就可以在Linux环境下虚拟化运行Windows XP 系统了,体验了一下,相当流畅,毕竟XP是15年前的操作系统了,对硬件要求还是比较低的,下面是运行的截图。
DSC0001.jpg
        系统运行后,使用 ps -ef |grep qemu 命令查看一下就会发现,其实virt-manager 调用了 libvirt+ 进程,然后 libvirt+ 通过调用 qemu-system-x86_64 命令来运行虚拟机,只是和模拟器不同的是它使用了 -enable-kvm 参数,就变成了虚拟化运行了。我们所看到的图形化的虚拟机最终都是通过调用命令行命令加参数实现的,这就是Linux社区软件的风格。
DSC0002.jpg

        通过上面这个简单的小实验,我们大体对QEMU有了一个感性的认识,从下一期开始,我们将使用QEMU模拟运行一个开发板,并在上面实验与Linux相关的内容。
        《虚拟机就是开发板》英文名称是 Linux Kernel Demo ,简写为 LKDemo 。
        文章中提到的所有 开源文档、代码都提供下载:https://github.com/aggresss/LKDemo

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-388037-1-1.html 上篇帖子: 什么叫带外管理 带内管理 下篇帖子: NB 命令安装需似机(无图型化安装)
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表