日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
虛擬機主要是什么原理?

docker容器與虛擬機有什么區(qū)別?

很高興為您解答。

靜樂網(wǎng)站建設(shè)公司成都創(chuàng)新互聯(lián),靜樂網(wǎng)站設(shè)計制作,有大型網(wǎng)站制作公司豐富經(jīng)驗。已為靜樂成百上千提供企業(yè)網(wǎng)站建設(shè)服務(wù)。企業(yè)網(wǎng)站搭建\成都外貿(mào)網(wǎng)站制作要多少錢,請找那個售后服務(wù)好的靜樂做網(wǎng)站的公司定做!

Docker悄無聲息的來到我們身邊,正在改變我們的開發(fā)、測試、部署應(yīng)用的方式,那么,到底Docker和虛擬機VM有什么區(qū)別,我們通過一個圖,再配上簡明扼要的文字就很容易理解兩者之間的區(qū)別。

首先要明確:Docker是一個開源的應(yīng)用容器引擎,而VM是一個完整的操作系統(tǒng)。

1、使用VM運行多個相互隔離的應(yīng)用

解釋:

可以看到,APP #1、APP #2、APP #3如果要獨立運行,相互隔離,則需要安裝三個操作系統(tǒng)。如果一個虛擬操作系統(tǒng)按1G算,總共需要占3G的存儲空間,更槽糕的是,光運行這三個操作系統(tǒng)就要耗費很大的內(nèi)存和CPU。

2、使用Docker運行多個相互隔離的應(yīng)用

DOCKER DAEMON:Docker守護進程,負責(zé)管理Docker容器。

從計算機軟件層級來看,docker和虛擬機的區(qū)別在于虛擬的軟件層級不一樣。虛擬機基于同一個硬件,模擬出不同的操作系統(tǒng);而docker基于同一個操作系統(tǒng),模擬出不同的運行時環(huán)境。我們依次來看:

1. 先看看計算機的軟件層次,從下到上依次為:操作系統(tǒng)內(nèi)核、文件系統(tǒng)(運行時環(huán)境)、上層APP。

2. 虛擬機運行在同一個硬件上,可以虛擬出不同的操作系統(tǒng)。比如vmware可以在一臺pc上既模擬出一個windows系統(tǒng),同時也可以模擬出一臺linux系統(tǒng)。借助虛擬機,兩個不同的操作系統(tǒng)可以同時運行在同一個硬件之上。

3. 而docker則運行在同一個操作系統(tǒng)內(nèi)核上,虛擬出不同的文件系統(tǒng)或者也可以叫做運行時環(huán)境。不同的運行時環(huán)境,其對應(yīng)的文件系統(tǒng)也是不同的。比如java的運行時環(huán)境就要求文件系統(tǒng)里存在jdk,而golang的運行時環(huán)境則需要有g(shù)o相關(guān)的底層庫。在docker上既可以虛擬出一個java的運行時環(huán)境,也可以虛擬出go的運行時環(huán)境。甚至,基于docker,你既可以虛擬出一個java-1.6的運行時候環(huán)境,也可以虛擬出一個java-1.8的運行時環(huán)境,而這兩個運行時環(huán)境可以同時運行在同一個操作系統(tǒng)之上。


以上就是虛擬機和docker的區(qū)別,更多容器云平臺原創(chuàng)內(nèi)容可關(guān)注我!

最近剛好看了一部分docker的東西
先上圖,vm與docker框架,直觀上來講vm多了一層guest OS,同時Hypervisor會對硬件資源進行虛擬化,docker直接使用硬件資源,所以資源利用率相對docker低也是比較容易理解的

其次,openstack能夠以10臺/min的速度創(chuàng)建虛擬機,在docker面前就弱爆了,因為docker是利用宿主機的系統(tǒng)內(nèi)核,所以可以做到在幾秒鐘之內(nèi)創(chuàng)建大量容器,它們的啟動速度是在數(shù)量級上的差距。

最后找了一個IBM測試案例,關(guān)于計算能力的,對于kvm為什么會有這么大的性能損失,一方面是因為虛擬機增加了一層虛擬硬件層,運行在虛擬機上的應(yīng)用程序在進行數(shù)值計算時是運行在Hypervisor虛擬的CPU上的;另外一方面是由于計算程序本身的特性導(dǎo)致的差異。虛擬機虛擬的cpu架構(gòu)不同于實際cpu架構(gòu),數(shù)值計算程序一般針對特定的cpu架構(gòu)有一定的優(yōu)化措施,虛擬化使這些措施作廢,甚至起到反效果。比如對于本次實驗的平臺,實際的CPU架構(gòu)是2塊物理CPU,每塊CPU擁有16個核,共32個核,采用的是NUMA架構(gòu);而虛擬機則將CPU虛擬化成一塊擁有32個核的CPU。這就導(dǎo)致了計算程序在進行計算時無法根據(jù)實際的CPU架構(gòu)進行優(yōu)化,大大減低了計算效率。

docker是虛擬化軟件運行環(huán)境。

虛擬機是虛擬化硬件。

層次不同。

虛擬機更消耗資源。但帶來的是一個完整的可以不同于宿主機的操作系統(tǒng)。因為和宿主機操作系統(tǒng)不共享任何東西(包括硬件,內(nèi)核,動態(tài)庫,環(huán)境變量等),它的隔離性更好。

docker更輕量級,共享使用宿主機的硬件和內(nèi)核,資源占用更少。它在宿主機內(nèi)核基礎(chǔ)上虛擬化了一個不同于宿主機的軟件運行環(huán)境,比如動態(tài)庫,環(huán)境變量等??梢哉f,docker和宿主機之間除了內(nèi)核共享,其它都可以不同。

虛擬機主要是什么原理?

要回答這個問題,首先看為什么一個OS無法直接與另外的OS共存。答案很簡單,OS作為硬件上第一層軟件,認為自己擁有全部的硬件的訪問和控制權(quán),且自己是唯一的控制者。在這種情況下,如果兩個OS共存,必然產(chǎn)生問題。

OS主要負責(zé)管理的是CPU和內(nèi)存,以及眾多的IO設(shè)備。于是我們可以分別討論。hypervisor是實現(xiàn)虛擬化的關(guān)鍵,它會以一個內(nèi)核態(tài)的驅(qū)動存在。

CPU的虛擬化:

背景知識:x86 CPU有一項權(quán)限機制,把CPU的狀態(tài)置于RING 0到RING 3分別使CPU具有最高的權(quán)限到最低的權(quán)限。以Linux為例,內(nèi)核運行于RING 0上,而其余全部用戶進程運行于RING 3上(Xen比較奇葩,Linux在Xen下面會運行于RING 1)。在用戶權(quán)限下,所有的IO設(shè)備是不可操作的,另外,有些控制寄存寄是無法訪問的,一些privilege的指令是不能運行的。因此一個用戶進程要想讀寫文件,進行一些操作,就要依賴于內(nèi)核。系統(tǒng)調(diào)用能夠使CPU運行于RING 0,并執(zhí)行內(nèi)核代碼(具體方法見一些操作系統(tǒng)教程)。

背景說完。一個CPU的全部狀態(tài)其實就是所有寄存器的值,只要保證任何操作之后寄存寄的值在OS看來是正確的,guest OS就可以正常執(zhí)行。hypervisor會為每個虛擬的CPU創(chuàng)建一個數(shù)據(jù)結(jié)構(gòu),模擬CPU的全部寄存器的值,在適當(dāng)?shù)臅r候跟蹤并修改這些值。

那么考慮虛擬化一個CPU,在虛擬化的guest OS里面,CPU無論如何也不可能運行于RING 0,因為這樣的話,host OS必然會crash掉。因此,當(dāng)一個guest OS想要進入到RING 0執(zhí)行內(nèi)核代碼時,hypervisor會向guest OS說謊,并告訴它,你已經(jīng)在RING 0上了,而實際上,所有的指令還是在RING 3上。當(dāng)guest OS訪問到任何privilege的東西時,hypervisor會接到fault,此時hypervisor會判斷這個指令是什么,并修改相應(yīng)的虛擬寄存器的狀態(tài),然后返回。這樣guest OS就可以正常的運行。需要指出的是,在大多數(shù)的指令下代碼是直接跑在硬件上的,而不需要軟件介入。只有在一些權(quán)限高的請求下,軟件會介入,并維護虛擬的CPU狀態(tài)。

虛擬機是一種軟件程序,它可以在計算機上模擬另一個計算機系統(tǒng)的行為。它的原理是通過在主機操作系統(tǒng)上運行虛擬機軟件,該軟件可以模擬出一個完整的計算機系統(tǒng),包括處理器、內(nèi)存、硬盤、網(wǎng)絡(luò)接口等組件。虛擬機可以運行不同的操作系統(tǒng)和應(yīng)用程序,使得用戶可以在同一臺計算機上同時運行多個不同的操作系統(tǒng)和應(yīng)用程序,從而提高計算機資源的利用率和靈活性

我寫了一個小項目桃花源(英文名為 peach),該項目是一個迷你虛擬機,用于學(xué)習(xí) Intel 硬件虛擬化技術(shù)。學(xué)習(xí)該項目可使讀者對 CPU 虛擬化、內(nèi)存虛擬化技術(shù)有個感性、直觀的認識,為學(xué)習(xí) KVM 打下堅實的基礎(chǔ)。peach 實現(xiàn)了如下功能:

  • 使用Intel VT-x技術(shù)實現(xiàn)CPU虛擬化
  • 使用EPT技術(shù)實現(xiàn)內(nèi)存虛擬化
  • 支持虛擬x86實模式運行環(huán)境
  • 支持虛擬CPUID指令
  • 支持虛擬HLT指令,Guest利用HLT指令關(guān)機

代碼倉庫如下:

https://gitee.com/pandengyang/peach.git

https://github.com/pandengyang/peach.git

題主問的虛擬機概念很泛,不過一般說的是vnware那種模擬電腦硬件的軟件。

首先,先來講講虛擬機的大致原理,即CPU的虛擬化技術(shù);舉個例子,比如一臺電腦,在沒有裝win系統(tǒng)的時候,本質(zhì)上就是由一系列硬件組成的機器,我們稱其為裸機。

而vnware虛擬機就是在原有的電腦系統(tǒng)上開辟出一臺新的裸機,用戶可以在新的裸機上裝新的系統(tǒng),可以是win,也可以是linux等其他系統(tǒng),相當(dāng)于內(nèi)嵌了一臺新的電腦。

其次,vnware虛擬機本質(zhì)上是軟件,模擬電腦硬件的軟件,所以一旦開始運行,主機是可以檢測到的(但是虛擬機檢測不到主機),而且只要能讓主機和虛擬機ping通的話,還可以保持兩者的網(wǎng)絡(luò)聯(lián)系,當(dāng)然,這個需要看網(wǎng)卡質(zhì)量。

在實際使用上就是主機界面開一個終端窗口來操作虛擬機。此外,磁盤空間足夠大的話可以裝多臺虛擬機,相當(dāng)于有多臺電腦的體驗,甚至每臺虛擬機的內(nèi)存和磁盤容量都可以自己定義。而且一旦將虛擬機文件備份好,未來虛擬機發(fā)生損壞,用此文件就可以輕易覆蓋恢復(fù)。

最后,之所以越來越多開發(fā)者青睞于虛擬機,是因為虛擬機軟件本身就包含了各種硬件驅(qū)動,也不用擔(dān)心接口不夠,內(nèi)存不足等問題,內(nèi)存硬盤網(wǎng)卡USB統(tǒng)統(tǒng)在軟件中可設(shè)置,完全不必要去購置多臺電腦和額外內(nèi)存磁盤就可以玩轉(zhuǎn)各種操作系統(tǒng)和測試軟件,甚至還可以自主搭載一些小型的服務(wù)器。

如果到了這里還是不懂的話,那就這么理解吧:

火影忍者里的長門(主機),通過輪回眼的六道之術(shù)分化出(虛擬化)6個跟自己同樣有輪回眼的佩恩們(6臺虛擬機),佩恩們雖然看起來都具有本體(主機)一模一樣的能力,但是他們的查克拉(計算機資源)實際上是由長門(主機)分配出去的。

到此,以上就是小編對于日本vpswindow的問題就介紹到這了,希望這2點解答對大家有用。


當(dāng)前名稱:虛擬機主要是什么原理?
文章分享:http://www.dlmjj.cn/article/cdoojoe.html