专栏首页嵌入式iot嵌入式开发中常用的虚拟机与容器

嵌入式开发中常用的虚拟机与容器

嵌入式开发中常用的虚拟机与容器

  • 1.本文说明
  • 2.VMware Workstatio
  • 2.Oracle VM VirtualBox
  • 3.window10 中的WSL2 Linux子系统
  • 4.docker容器技术
  • 5.multipass
  • 6.qemu

1.本文说明

嵌入式开发已经从以往的单片机开发逐渐过渡到越来越依赖Linux的系统。虽然大多数情况下,windows的开发工具可以做很多嵌入式开发工作,也有很多好用的工具,但是Linux里面的好用的工具也很多。这种情况下,解决的办法就是装windows,linux双系统就可以解决,但是这样切换系统的效率太低了,传输文件也非常的麻烦。用虚拟机也可以解决该问题,虚拟机也是比较庞大的,而且性能也不怎么好。遇到这些问题,下面介绍几种常用的工具。

2.VMware Workstatio

自然这是一种强大的桌面虚拟计算机软件,可以非常方便的安装各种系统,也可以根据需要进行外设的开发。

一般嵌入式开发上,用来编译Linux、uboot等镜像,然后放到windows系统上利用各种工具烧录,比较的方便。

分为商业版本和个人体验版本,做个人学习开发时,可以使用该软件来学习,但是到公司开发则需要购买许可证才能使用。不然一堆的法务材料会找上门。

个人觉得使用该软件学习Linux的使用,同时个人做一些Linux开发等等,是不错的选择,上手简单,便于操作,而且界面也比较好用。当然,缺点就是虚拟机需要安装一整个系统,占用空间比较大,而且分配的内存、cpu使用都比较低,性能差一些。

2.Oracle VM VirtualBox

这个就是一款开源的虚拟机软件了,这款软件就是完全免费的。如果说VMware Workstatio担心会有版权的问题,那么用上这个虚拟机则完全不用担心这个问题了。

使用上和VMware Workstatio类似,也都是需要安装一个完整的系统镜像。

当然两者之间简单的使用来看,差别不大,一些基本的功能使用起来也差不多。需要注意的是,如果虚拟机镜像损坏,起不来了,那么这个系统镜像也就不能用了。所以使用这些虚拟机时,需要注意重要的资料及时备份。

使用虚拟机适合日常的开发工作,容易上手,学习成本不高,但是资源占用大,效率低。

3.window10 中的WSL2 Linux子系统

因为是windows自己实现的虚拟化技术,效果还是可以的。虽然被很多人说有一些bug,但是基本的应用程序的使用还是可以应对的,如果不涉及到复杂的使用,学习使用Linux的命令也是不错的选择。但是缺点就是bug太多,而且系统的占用也比较大,而且东西不可控。

在安装完成WSL2后可以安装Linux的内核。

可以安装的Linux版本非常的多。其中安装Ubuntu版本可以自由的选择。

比较遗憾的是只能用命令行进行操作,还有在开发Linux的过程中,一些软件支持的不是很好,还有就是没有图形化界面。

而且如果要使用Linux上的USB等外设驱动,也不能很好的支持。

4.docker容器技术

docker的思想就是利用操作系统资源,上面构建一些应用程序。因为操作系统的资源是共享的,所以只需要构建上层的应用即可。

docker的系统资源是在Linux基础上的,所以如果在windows上使用,需要安装wsl2后才能启动docker。

docker的好处在于跨平台,而且只需要构建一个镜像,可以在不同的平台上进行部署,镜像也可以推送到远程的仓库,以便于相同环境的搭建。

在嵌入式上使用时,可以搭建一个编译嵌入式Linux的环境,也可以构建编译uboot等环境,在分享给其他人使用时,不用再重复的搭建环境的操作。解决很多环境搭建的问题。

当然也可以编译很多好用的工具,比如编译qemu的源代码等等,编译操作系统镜像,编译开源的仓库里的工具的等等。

docker的远程仓库里有各种版本的linux的镜像,十分方便构建编译环境。利用docker搭建一个虚拟化的Linux内核学习lab是不错的选择。

docker搭建环境、部署很方便,缺点就是上手难度有一些,需要掌握docker的使用思想。

5.multipass

如果觉得docker比较复杂,用起来也不如虚拟机一样方便。同时又觉得安装VM VirtualBox等占用太多资源,那么multipass就是一个不错的选择。

https://multipass.run/

选择Multipass的优势在于操作简单,而且可以完全搭建一个全新的ubuntu环境。

支持Linux、Windows和macos的平台。

操作上与完整Ubuntu的控制台操作无差别,而且可以自己定义系统的硬盘、内存大小。

使用时,如果不想破坏原生Ubuntu环境,又想在Ubuntu环境下开发,multipass可以提供一个干净的隔离空间。也想安装不同版本的Ubuntu。

基本的Ubuntu版本都可以供选择。

这个虚拟机使用稍微比docker简单一些,但是差别就是multipass的镜像是无法分享的,只能自己使用。

每次开一个镜像就是一个新的干净的工作空间。

6.qemu

对于qemu的使用,一般都会作为嵌入式虚拟环境来使用。用软件模拟不同硬件的平台,比如arm、mips、riscv等等开发,都可以模拟硬件平台。同时借助模拟硬件虚拟化技术,可以很好的开发上层软件。

这样在做嵌入式开发时,可以节约调试的时间成本,在开发嵌入式Linux、嵌入式上层软件的业务逻辑的设计时,也非常的有优势,在qemu上调试完成后,再移植到真实的设备上。

当然,在qemu上也能安装一些大型的操作系统。对于嵌入式开发,可以通过软件模拟硬件的实现,利用这一点,很方便写上层应用、网络应用、图形化界面的交互等等。

本文分享自微信公众号 - 嵌入式IoT(Embeded_IoT),作者:bigmagic

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2021-03-27

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Java虚拟机详解(一)------简介

      本系列博客我们将以当前默认的主流虚拟机HotSpot 为例,详细介绍 Java虚拟机。以 JDK1.7 为主,同时介绍与 JDK1.8 的不同之处,通过Or...

    IT可乐
  • 嵌入式开发中静态代码分析器的七种用途

    当前标准的C语言编译器存在普遍只能找出代码中潜在的缺陷,而对程序方案设计并没有效。使用静态代码分析器有助于提升固件和捕获编译器难以察觉的问题。以下是每一位嵌入式...

    CSDN技术头条
  • 微软私有云测试01-Windows Server 2016虚拟化新功能概述

    Windows Server 2016从2015年Preview到2016年10月13日发布至今已经过去了3年多的时间,Windows Server 2016 ...

    SuperDream
  • 用ARM实现音乐电子相册

    Zoctopus
  • 关于PHP虚拟主机概念及怎么选择稳定的PHP虚拟主机

    PHP型虚拟主机这种类型的虚拟主机在国外已经发展了很长时间,技术比较成熟,一般控制面板功能很丰富,管理方面也都比较完备。现在很多中小型企业在建设网站时都会选择P...

    砸漏
  • 关于PHP虚拟主机概念及如何选择稳定的PHP虚拟主机

    PHP型虚拟主机这种类型的虚拟主机在国外已经发展了很长时间,技术比较成熟,一般控制面板功能很丰富,管理方面也都比较完备。现在很多中小型企业在建设网站时都会选择P...

    砸漏
  • 交叉编译问题记录-嵌入式环境下 GDB 的使用方法

    本文为作者原创,转载请注明出处:https://www.cnblogs.com/leisure_chn/p/10693247.html

    叶余
  • Java基础知识面试题(2020最新版)

    Java概述何为编程什么是Javajdk1.5之后的三大版本JVM、JRE和JDK的关系什么是跨平台性?原理是什么Java语言有哪些特点什么是字节码?采用字节码...

    用户7886150
  • Java基础知识面试题(2020最新版)

    Java概述何为编程什么是Javajdk1.5之后的三大版本JVM、JRE和JDK的关系什么是跨平台性?原理是什么Java语言有哪些特点什么是字节码?采用字节码...

    用户7886150

扫码关注云+社区

领取腾讯云代金券