硬科技:為何x86的虛擬化這麼難搞(上)

2020.03.09 08:00AM

筆者常常不小心用注音輸入法打成「淫笑卡」的音效卡,沒事就被寫成「噓你話」的虛擬化(Virtaulization),是一個涵蓋範圍甚廣甚至無所不在的技術名詞,從個人電腦玩家琅琅上口的硬體虛擬化,一路到程式設計師耳孰能詳的應用程式介面(API, Application Programming Interface),都是虛擬化的應用範圍。

先了解一下維基百科對於虛擬化的定義:

在計算機技術中,虛擬化或虛擬技術(Virtualization)是一種資源管理技術,是將電腦的各種實體資源(CPU、記憶體、磁碟空間、網路適配器等),予以抽象、轉換後呈現出來並可供分割、組合為一個或多個電腦組態環境。由此,打破實體結構間的不可切割的障礙,使用戶可以比原本的組態更好的方式來應用這些電腦硬體資源。這些資源的新虛擬部份是不受現有資源的架設方式,地域或物理組態所限制。一般所指的虛擬化資源包括計算能力和資料儲存。

但在了解虛擬化技術之前,應該要對真實世界的電腦具備完整的認知,特別是近代多工作業系統的概念以及「同時」執行多個應用程式的方式,這會讓各位科科更進一步的體認到「指令集架構」作為「電腦的基礎語言」和「軟體硬體之間的介面」的角色。

「系統核心模式」vs.「使用者模式」

兼具管理驅動程式與系統底層的「系統核心模式(Kernel Mode)」與負責應用程式執行的「使用者模式(User Mode)」,定義出2種最基本運作權限的「雙模式運作(Dual Mode)」是近代多工作業系統的基礎,保護系統檔案與共用資源,確保作業系統核心免於一般使用者的破壞與互相干擾,也是需要處理器提供相對應執行權限、系統管理指令、中斷例外處理流程與記憶體保護機制的地方。

當科科按下電腦的電源鈕時,會發生以下的開機順序:

  • 處理器從唯讀記憶體(Boot ROM)擷取並執行系統自我檢測程式(POST,Power-On Self-Test)。
  • 從硬體或SSD等儲存媒介讀取作業系統載入器(OS Loader)。
  • 將作業系統核心(Kernel)載入到記憶體。
  • 開始在系統核心模式(Kernel Mode)執行作業系統核心。
  • 陸續載入裝置驅動程式(Device Driver),直到可完全運行電腦的基本功能。
  • 進入執行階段(Runtime)後,作業系統啟動使用者模式(User Mode),載入與執行應用程式。

應用程式透過「例外、設陷、系統呼叫」要求資源

可能影響系統底層「動搖國本」的處理器指令,都應定義為只能在系統核心模式執行的「特權指令(Privileged Instruction),處理器僅允許這些指令在系統核心模式執行。

假如應用程式需要硬體資源,例如要求增加可使用的主記憶體容量,需要執行系統特權指令,那就會觸發處理器的例外處理機制(Exception Handling),由作業系統的設陷(Trap,或稱為軟體中斷)決定是否執行該指令,如同意,就啟動系統呼叫(System Call)要求作業系統核心進行分配,讓處理器轉而執行相對應的系統程式碼,分配更多的記憶體容量。執行結束後,再恢復執行該應用程式。當應用程式需要存取某硬體裝置,也是透過系統呼叫,讓處理器載入適當的裝置驅動程式,完成後,再讓處理器回到之前的狀態。

多工作業系統也是基於相同的原理,以x86指令集為例,作業系統的應用程式執行狀態、相關資訊與程式用到的暫存器資料,都會紀錄成工作狀態節區(TSS,Task State Segment)資料結構,x86處理器藉由反覆載入、回存TSS的「Context Switch」以實現「分身」多工能力,而多工作業系統就是最常見的虛擬化應用。

但支撐多工作業系統的條件可不簡單,尤其處理器廠商需要絞盡腦汁設法滿足作業系統廠商的需求。為何MS-DOS沒辦法多工?就因為8086沒有雙模式可用,難以隔離,隨便一個應用程式都可能毀掉作業系統。這也是x86指令集歷代演進中最重要的一環,沒有之一。繼續閱讀:硬科技:為何x86的虛擬化這麼難搞(中)

相關消息

科技應用
EVOX《對話式 AI 白皮書》:掌握 AI 商務溝通新趨勢
癮特務
3 天前
即拍即印普普風概念印章,製造屬於自己的圖像
annti wang
15 年前
開箱評測
被評價為「每步都非常舒服」的恢復型拖鞋 2種熱賣的日常款比較
Gizmodo Japan
1 天前
文化創意
國家鐵道博物館第一階段開放 免費展區即有豐富內容、柴電工廠吸收新知
Chevelle.fu
20 個小時前
汽車未來
全新改款 BMW iX 豪華純電旗艦休旅強勢上市!「THE NEW BMW iX」現場直擊,亮點分享一次了解!
癮特務
10 天前
開箱評測
這麼薄卻可6裝置充電、總輸出達130W 這款Anker充電器規格簡直是拼命了
Gizmodo Japan
21 個小時前
開箱評測
可以與行李箱組合的三合一背包 我無法割捨Patagonia的理由
Gizmodo Japan
20 個小時前
產業消息
聯發科2025Q2手機營收佔52%預期旗艦天璣年內創造30億美金營收 首款2nm晶片維持9月設計定案
Chevelle.fu
1 天前
《奇妙之旅》家族競技展開 熱鬪場內容介紹
皮耶哈
15 年前