嵌入式開發(fā)中常用的虛擬機(jī)與容器
1.本文說明
2.VMware Workstatio
2.Oracle VM VirtualBox
3.window10 中的WSL2 Linux子系統(tǒng)
4.docker容器技術(shù)
5.multipass
6.qemu
1.本文說明嵌入式開發(fā)已經(jīng)從以往的單片機(jī)開發(fā)逐漸過渡到越來越依賴Linux的系統(tǒng)。雖然大多數(shù)情況下,windows的開發(fā)工具可以做很多嵌入式開發(fā)工作,也有很多好用的工具,但是Linux里面的好用的工具也很多。這種情況下,解決的辦法就是裝windows,linux雙系統(tǒng)就可以解決,但是這樣切換系統(tǒng)的效率太低了,傳輸文件也非常的麻煩。用虛擬機(jī)也可以解決該問題,虛擬機(jī)也是比較龐大的,而且性能也不怎么好。遇到這些問題,下面介紹幾種常用的工具。
2.VMware Workstatio自然這是一種強(qiáng)大的桌面虛擬計(jì)算機(jī)軟件,可以非常方便的安裝各種系統(tǒng),也可以根據(jù)需要進(jìn)行外設(shè)的開發(fā)。
一般嵌入式開發(fā)上,用來編譯Linux、uboot等鏡像,然后放到windows系統(tǒng)上利用各種工具燒錄,比較的方便。
分為商業(yè)版本和個(gè)人體驗(yàn)版本,做個(gè)人學(xué)習(xí)開發(fā)時(shí),可以使用該軟件來學(xué)習(xí),但是到公司開發(fā)則需要購(gòu)買許可證才能使用。不然一堆的法務(wù)材料會(huì)找上門。
個(gè)人覺得使用該軟件學(xué)習(xí)Linux的使用,同時(shí)個(gè)人做一些Linux開發(fā)等等,是不錯(cuò)的選擇,上手簡(jiǎn)單,便于操作,而且界面也比較好用。當(dāng)然,缺點(diǎn)就是虛擬機(jī)需要安裝一整個(gè)系統(tǒng),占用空間比較大,而且分配的內(nèi)存、cpu使用都比較低,性能差一些。
2.Oracle VM VirtualBox這個(gè)就是一款開源的虛擬機(jī)軟件了,這款軟件就是完全免費(fèi)的。如果說VMware Workstatio擔(dān)心會(huì)有版權(quán)的問題,那么用上這個(gè)虛擬機(jī)則完全不用擔(dān)心這個(gè)問題了。
使用上和VMware Workstatio類似,也都是需要安裝一個(gè)完整的系統(tǒng)鏡像。
當(dāng)然兩者之間簡(jiǎn)單的使用來看,差別不大,一些基本的功能使用起來也差不多。需要注意的是,如果虛擬機(jī)鏡像損壞,起不來了,那么這個(gè)系統(tǒng)鏡像也就不能用了。所以使用這些虛擬機(jī)時(shí),需要注意重要的資料及時(shí)備份。
使用虛擬機(jī)適合日常的開發(fā)工作,容易上手,學(xué)習(xí)成本不高,但是資源占用大,效率低。
3.window10 中的WSL2 Linux子系統(tǒng)因?yàn)槭莣indows自己實(shí)現(xiàn)的虛擬化技術(shù),效果還是可以的。雖然被很多人說有一些bug,但是基本的應(yīng)用程序的使用還是可以應(yīng)對(duì)的,如果不涉及到復(fù)雜的使用,學(xué)習(xí)使用Linux的命令也是不錯(cuò)的選擇。但是缺點(diǎn)就是bug太多,而且系統(tǒng)的占用也比較大,而且東西不可控。
在安裝完成WSL2后可以安裝Linux的內(nèi)核。
可以安裝的Linux版本非常的多。其中安裝Ubuntu版本可以自由的選擇。
比較遺憾的是只能用命令行進(jìn)行操作,還有在開發(fā)Linux的過程中,一些軟件支持的不是很好,還有就是沒有圖形化界面。
而且如果要使用Linux上的USB等外設(shè)驅(qū)動(dòng),也不能很好的支持。
4.docker容器技術(shù)docker的思想就是利用操作系統(tǒng)資源,上面構(gòu)建一些應(yīng)用程序。因?yàn)椴僮飨到y(tǒng)的資源是共享的,所以只需要構(gòu)建上層的應(yīng)用即可。
docker的系統(tǒng)資源是在Linux基礎(chǔ)上的,所以如果在windows上使用,需要安裝wsl2后才能啟動(dòng)docker。
docker的好處在于跨平臺(tái),而且只需要構(gòu)建一個(gè)鏡像,可以在不同的平臺(tái)上進(jìn)行部署,鏡像也可以推送到遠(yuǎn)程的倉(cāng)庫(kù),以便于相同環(huán)境的搭建。
在嵌入式上使用時(shí),可以搭建一個(gè)編譯嵌入式Linux的環(huán)境,也可以構(gòu)建編譯uboot等環(huán)境,在分享給其他人使用時(shí),不用再重復(fù)的搭建環(huán)境的操作。解決很多環(huán)境搭建的問題。
當(dāng)然也可以編譯很多好用的工具,比如編譯qemu的源代碼等等,編譯操作系統(tǒng)鏡像,編譯開源的倉(cāng)庫(kù)里的工具的等等。
docker的遠(yuǎn)程倉(cāng)庫(kù)里有各種版本的linux的鏡像,十分方便構(gòu)建編譯環(huán)境。利用docker搭建一個(gè)虛擬化的Linux內(nèi)核學(xué)習(xí)lab是不錯(cuò)的選擇。
docker搭建環(huán)境、部署很方便,缺點(diǎn)就是上手難度有一些,需要掌握docker的使用思想。
5.multipass如果覺得docker比較復(fù)雜,用起來也不如虛擬機(jī)一樣方便。同時(shí)又覺得安裝VM VirtualBox等占用太多資源,那么multipass就是一個(gè)不錯(cuò)的選擇。
https://multipass.run/
選擇Multipass的優(yōu)勢(shì)在于操作簡(jiǎn)單,而且可以完全搭建一個(gè)全新的ubuntu環(huán)境。
支持Linux、Windows和macos的平臺(tái)。
操作上與完整Ubuntu的控制臺(tái)操作無差別,而且可以自己定義系統(tǒng)的硬盤、內(nèi)存大小。
使用時(shí),如果不想破壞原生Ubuntu環(huán)境,又想在Ubuntu環(huán)境下開發(fā),multipass可以提供一個(gè)干凈的隔離空間。也想安裝不同版本的Ubuntu。
基本的Ubuntu版本都可以供選擇。
這個(gè)虛擬機(jī)使用稍微比docker簡(jiǎn)單一些,但是差別就是multipass的鏡像是無法分享的,只能自己使用。
每次開一個(gè)鏡像就是一個(gè)新的干凈的工作空間。
6.qemu對(duì)于qemu的使用,一般都會(huì)作為嵌入式虛擬環(huán)境來使用。用軟件模擬不同硬件的平臺(tái),比如arm、mips、riscv等等開發(fā),都可以模擬硬件平臺(tái)。同時(shí)借助模擬硬件虛擬化技術(shù),可以很好的開發(fā)上層軟件。
這樣在做嵌入式開發(fā)時(shí),可以節(jié)約調(diào)試的時(shí)間成本,在開發(fā)嵌入式Linux、嵌入式上層軟件的業(yè)務(wù)邏輯的設(shè)計(jì)時(shí),也非常的有優(yōu)勢(shì),在qemu上調(diào)試完成后,再移植到真實(shí)的設(shè)備上。
當(dāng)然,在qemu上也能安裝一些大型的操作系統(tǒng)。對(duì)于嵌入式開發(fā),可以通過軟件模擬硬件的實(shí)現(xiàn),利用這一點(diǎn),很方便寫上層應(yīng)用、網(wǎng)絡(luò)應(yīng)用、圖形化界面的交互等等。
原文標(biāo)題:嵌入式開發(fā)中常用的虛擬機(jī)與容器
文章出處:【微信公眾號(hào):嵌入式IoT】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
責(zé)任編輯:haq
-
嵌入式
+關(guān)注
關(guān)注
5087文章
19145瀏覽量
306114 -
Linux
+關(guān)注
關(guān)注
87文章
11320瀏覽量
209842
原文標(biāo)題:嵌入式開發(fā)中常用的虛擬機(jī)與容器
文章出處:【微信號(hào):Embeded_IoT,微信公眾號(hào):嵌入式IoT】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論