作者:Hari Pulapaka
Windows是一種多功能、靈活的操作系統(tǒng),可在多種機(jī)器架構(gòu)上運(yùn)行,并有多種SKU。它目前支持x86、x64和ARM體系結(jié)構(gòu)。它甚至曾經(jīng)支持Itanium、PowerPC、Alpha和MIPS(wiki:http://en.wikipedia.org/wiki/Windows_NT)。Windows也可以在多種環(huán)境中運(yùn)行;從數(shù)據(jù)中心、筆記本電腦和電話到ATM機(jī)等嵌入式設(shè)備。
即使有了所有這些支持,Windows的核心在所有這些架構(gòu)和SKU上幾乎保持不變。Windows可以動(dòng)態(tài)擴(kuò)展,這取決于其運(yùn)行的體系結(jié)構(gòu)和處理器,以充分利用硬件的功能。這同樣適用于Microsoft Azure。因此,如果您曾經(jīng)想知道Windows如何在數(shù)據(jù)中心運(yùn)行Azure節(jié)點(diǎn),請(qǐng)繼續(xù)往下看!
正如Satya所說(shuō),“我們正在將Azure打造成世界級(jí)計(jì)算機(jī)”,為世界級(jí)計(jì)算機(jī)提供動(dòng)能表明了Windows的擴(kuò)展能力。為了展示這種規(guī)模,這里是數(shù)據(jù)中心M系列機(jī)器(Azure中可用的最大虛擬機(jī)之一,具有896個(gè)邏輯處理器)中直接在Azure主機(jī)上運(yùn)行的taskmgr的快照。
M-series taskmgr
在這篇文章中,我們將討論為數(shù)據(jù)中心的Azure主機(jī)服務(wù)的Azure主機(jī)操作系統(tǒng)的內(nèi)部結(jié)構(gòu)。
云主機(jī)–Azure主機(jī)操作系統(tǒng)
Azure是微軟的云計(jì)算服務(wù),它提供IaaS(基礎(chǔ)設(shè)施即服務(wù))虛擬機(jī)(VM)、PaaS(平臺(tái)即服務(wù))容器和許多其他SaaS服務(wù)(例如Azure Storge、Networking等)。對(duì)于IaaS和PaaS服務(wù),所有客戶代碼最終都在虛擬機(jī)中運(yùn)行。因此,在核心平臺(tái)層,Azure主機(jī)操作系統(tǒng)的主要目的是管理虛擬機(jī)并將其管理得非常好!管理VM包括啟動(dòng)、關(guān)閉、實(shí)時(shí)遷移、更新等。
由于Azure使用Windows作為操作系統(tǒng),所有這些虛擬機(jī)都作為Microsoft Hyper-V(即我們的虛擬機(jī)管理程序)的guest運(yùn)行。Microsoft Hyper-v是一種type1(https://en.wikipedia.org/wiki/Hypervisor)的管理程序,因此,當(dāng)我說(shuō)Azure Host操作系統(tǒng)時(shí),它在技術(shù)上是根操作系統(tǒng)。這是一個(gè)完全控制硬件并提供虛擬化設(shè)施以運(yùn)行g(shù)uest VM的操作系統(tǒng)。
請(qǐng)記住,我們使用的hypervisor與我們?cè)谒袛?shù)百萬(wàn)客戶計(jì)算機(jī)上的Windows客戶端和Windows服務(wù)器上使用的hypervisor相同。我們將在即將發(fā)布的博客文章中解釋Microsoft Hyper-V的一些關(guān)鍵功能,這些功能允許Azure安全可靠地管理guest VM。
云主機(jī)
正如我提到的,Azure主機(jī)操作系統(tǒng)的目標(biāo)是良好地管理VM的生命周期。這意味著Windows(或稱Azure主機(jī)操作系統(tǒng))不需要通常與Windows關(guān)聯(lián)的大量功能來(lái)執(zhí)行此功能。因此,我們創(chuàng)建了一個(gè)專門的控制臺(tái)(沒(méi)有GUI,有些人還稱之為headless)版本的Windows,稱為云主機(jī)。
這是基于OneCore的Windows版本。OneCore是所有Windows SKU系列(或版本)構(gòu)建其功能的基礎(chǔ)層。它是所有版本的Windows(PC、Windows Server、XBOX或IOT)所需的一組組件(可執(zhí)行文件、DLL等)。如果拿編程類比的話,它是所有Windows類繼承的基類(例如Object)。如果您查看OneCore內(nèi)部以了解它提供的功能,您可以看到提供核心功能的API集,如內(nèi)核、虛擬機(jī)監(jiān)控程序、文件系統(tǒng)支持、網(wǎng)絡(luò)、安全、Win32 API等。下圖中調(diào)用的OneCoreUAP是用于構(gòu)建客戶端PC版本的稍高層的另一個(gè)示例,GUI堆棧和更高級(jí)別的網(wǎng)絡(luò)組件,如媒體堆棧和WiFi。
OneCore中可用的一些代表性組件
我們?nèi)绾螛?gòu)建云主機(jī)?
需要在Azure主機(jī)上運(yùn)行少量代碼,以與控制平面集成,并監(jiān)控和管理容器/VM。基于對(duì)該代碼的依賴集的分析,我們確定了Azure在OneCore之上需要的一組功能(DLL和API集)。然后將這些二進(jìn)制文件(數(shù)十個(gè)二進(jìn)制文件)添加到OneCore中,將其用作Azure主機(jī)的操作系統(tǒng)。
為了添加這些DLL,我們創(chuàng)建了一個(gè)名為云主機(jī)的全新SKU,并將所有這些二進(jìn)制文件添加到云主機(jī)。您可以將云主機(jī)視為OneCore的“子類”。注意,我們必須創(chuàng)建一個(gè)新的SKU“云主機(jī)”,因?yàn)槲覀冃枰騉neCore添加新的二進(jìn)制文件。我們可以直接將它們添加到OneCore中,但它更干凈,可以創(chuàng)建專門構(gòu)建的SKU/版本,同時(shí)保持OneCore未修改。換句話說(shuō),云主機(jī)是一個(gè)專門為運(yùn)行數(shù)據(jù)中心中的Azure主機(jī)節(jié)點(diǎn)而設(shè)計(jì)和構(gòu)建的SKU。您可能更熟悉其他Windows SKU,通常稱為版本,如Pro、Enterprise等[wiki:https://en.wikipedia.org/wiki/Windows_10_editions]。云主機(jī)是一個(gè)類似的SKU/版本,僅用于數(shù)據(jù)中心中的Azure節(jié)點(diǎn)。
有了這個(gè)解釋,讓我們看看這個(gè)云主機(jī)。這是一張?jiān)浦鳈C(jī)WIM(https://en.wikipedia.org/wiki/Windows_Imaging_Format#:~:text=The%20Windows%20Imaging%20Format%20(WIM,Windows%20Fundamentals%20for%20Legacy%20PCs.)文件的圖片(WIM文件就像一個(gè)zip文件,用于存儲(chǔ)要啟動(dòng)的Windows映像)。您可以看到它的大小為280MB,比典型的PC WIM文件小10倍多。
這比您在PC上使用的任何Windows都要小得多,典型的客戶端企業(yè)版WIM文件大小為3.6 GB。
云主機(jī)引導(dǎo)到控制臺(tái)Shell中,體驗(yàn)通常類似于Windows Server Core。這是一張?jiān)浦鳈C(jī)會(huì)話的圖片,來(lái)自我們的一臺(tái)測(cè)試機(jī)器。
(請(qǐng)記住,我們通常不會(huì)登錄到Azure主機(jī)節(jié)點(diǎn),這純粹是為了演示目的)
帶有cmd shell、taskmgr和Regedit的云主機(jī)
您可能注意到的另一件事是,taskmgr甚至regedit看起來(lái)與您在Windows 11上看到的不同。這是因?yàn)檎缥姨岬降模浦鳈C(jī)是基于OneCore構(gòu)建的,它是headless(或基于控制臺(tái)的),因此它不包含任何Windows的GUI部分。我們有一個(gè)特殊的taskmgr和regedit版本,它與Windows11中的所有現(xiàn)代GUI功能都不相關(guān)聯(lián),這給了他們“老式”的外觀。
API:什么樣的代碼可以在Azure主機(jī)節(jié)點(diǎn)上運(yùn)行?
我們可以在Azure主機(jī)上運(yùn)行C++、Python甚至Rust代碼。要記住的主要一點(diǎn)是,作為一名開(kāi)發(fā)人員,如果您正在構(gòu)建代碼以在Azure Host上運(yùn)行(這只是我們的內(nèi)部開(kāi)發(fā)人員),您只能鏈接OneCore SDK(OneCore.lib)。我們?cè)谶@里(https://docs.microsoft.com/en-us/windows/win32/apiindex/windows-umbrella-libraries)記錄了OneCore可用的API界面,以對(duì)應(yīng)在這里(https://docs.microsoft.com/en-us/windows-hardware/drivers/develop/building-for-onecore)構(gòu)建OneCore的信息。
隨著對(duì)Azure云主機(jī)內(nèi)部結(jié)構(gòu)的深入了解,未來(lái)的博客文章將繼續(xù)介紹更新Azure主機(jī)的代碼和設(shè)計(jì)內(nèi)部結(jié)構(gòu)(例如,Tardicade、VM PHU、Hypervisor熱重啟和實(shí)時(shí)遷移)、內(nèi)核/虛擬化功能、安全性以及操作系統(tǒng)平臺(tái)中的許多其他領(lǐng)域。
審核編輯:湯梓紅
-
WINDOWS
+關(guān)注
關(guān)注
4文章
3569瀏覽量
89303 -
操作系統(tǒng)
+關(guān)注
關(guān)注
37文章
6892瀏覽量
123742 -
主機(jī)
+關(guān)注
關(guān)注
0文章
1010瀏覽量
35309 -
云主機(jī)
+關(guān)注
關(guān)注
1文章
47瀏覽量
8756 -
Azure
+關(guān)注
關(guān)注
1文章
124瀏覽量
12809
原文標(biāo)題:Azure主機(jī)操作系統(tǒng)–云主機(jī)
文章出處:【微信號(hào):Arm軟件開(kāi)發(fā)者,微信公眾號(hào):Arm軟件開(kāi)發(fā)者】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
開(kāi)發(fā)環(huán)境介紹主機(jī)操作系統(tǒng)
微軟發(fā)布 Azure Linux 正式版
微軟云計(jì)算操作系統(tǒng)Windows Azure將在中國(guó)落地
基于單片無(wú)操作系統(tǒng)的 USB 主機(jī)控制器接口
![基于單片無(wú)<b class='flag-5'>操作系統(tǒng)</b>的 USB <b class='flag-5'>主機(jī)</b>控制器接口](https://file1.elecfans.com//web2/M00/A5/A0/wKgZomUMOUyAJ5UHAAAdGGKTlqc527.gif)
基于網(wǎng)絡(luò)欺騙的操作系統(tǒng)抗識(shí)別模型NDAF
![基于網(wǎng)絡(luò)欺騙的<b class='flag-5'>操作系統(tǒng)</b>抗識(shí)別模型NDAF](https://file.elecfans.com/web2/M00/49/81/poYBAGKhwL-AO1PEAAAZahnBCj4750.jpg)
云主機(jī)相比于虛擬主機(jī)的優(yōu)勢(shì)_企業(yè)和建站新手如何選用云主機(jī)
云主機(jī)是什么,有什么用
云主機(jī)的應(yīng)用場(chǎng)景_云主機(jī)如何進(jìn)行地區(qū)選擇
Linux主機(jī)是什么
云主機(jī)和云虛擬主機(jī)二者的特點(diǎn)是怎樣的
云主機(jī)要不要更新操作系統(tǒng),更新后會(huì)有影響嗎
微軟發(fā)布自己的Linux發(fā)行版,“Linux是種癌癥”影響?yīng)q在
![微軟發(fā)布自己的Linux發(fā)行版,“Linux是種癌癥”影響?yīng)q在](https://file1.elecfans.com/web2/M00/88/CA/wKgZomR0DouAZyMBAAAsAZeJDdw395.png)
Ubuntu替代Windows?使用Station主機(jī)打造桌面操作系統(tǒng)!
![Ubuntu替代Windows?使用Station<b class='flag-5'>主機(jī)</b>打造桌面<b class='flag-5'>操作系統(tǒng)</b>!](https://file.elecfans.com/web2/M00/18/8C/pYYBAGFulb2ADXFqAAAS2Fa58YU110.jpg)
評(píng)論