嵌入式開發中常用的虛擬機與容器
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】歡迎添加關注!文章轉載請注明出處。
責任編輯:haq
-
嵌入式
+關注
關注
5046文章
18821瀏覽量
298594 -
Linux
+關注
關注
87文章
11123瀏覽量
207919
原文標題:嵌入式開發中常用的虛擬機與容器
文章出處:【微信號:Embeded_IoT,微信公眾號:嵌入式IoT】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論