999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

虛擬化技術在便攜移動設備的應用

2022-03-29 00:38:12郭熒炎韋淼楊嘉豪李哲宇吳亞軍
客聯 2022年1期

郭熒炎 韋淼 楊嘉豪 李哲宇 吳亞軍

摘 要:本文旨在說明普通的便攜式移動平臺(例如智能手機)上實現并運行基于KVM虛擬機的具體方法。并以常見的高通MSM8916平臺為例,闡述了在ARM指令集的設備上實現KVM的過程與難點。以及在便攜式移動設備上運用虛擬化技術的具體價值和前景展望。

關鍵詞:KVM;ARM64;便攜式設備;虛擬化

虛擬化(Virtualization)指的是利用軟件技術在一臺硬件設備上模擬出一至多臺設備,各個虛擬設備中的操作系統及其應用程序彼此隔離,不受影響。

目前,由于市場上主流芯片廠商的提供的軟件開發框架普遍缺少對虛擬化的支持,導致ARM平臺的虛擬化技術有關研究雖然有所發展,但是始終無法在市面上的消費級產品中得到實際應用。若在智能設備中引入虛擬化技術,將會在平板與智能手機等使用場景中,加強用戶的安全性,以及大大改善國產智能設備操作系統對Android、Windows等常見平臺的兼容性,加速其普及程度。其次,虛擬化技術在智能設備中的引入也為廢舊設備的重復利用創造了條件,可以將回收的智能設備所提供的算力資源重新利用,為小型云計算中心提供成本更低、功耗更小的解決方案。

一、實現原理

KVM的全稱為Kernel-based Virtual Machine,意為基于內核的虛擬機。該虛擬機實現作為Linux內核的一個模塊被集成于Linux內核源代碼中。KVM通過Linux內核原本提供的任務調度、與硬件外設交互的實現來完成對機器的虛擬。KVM高度依賴于硬件支持,相較于純軟件實現的虛擬化,這種實現能夠更貼近程序在實機上運行的效能。

在高通平臺的ARMV8環境中,ARM Trustzone將整個系統層級分為Secure World與Normal World。Secure World意為安全環境,該環境用于處理例如人臉識別等與用戶隱私有關的操作。Normal World用于運行Linux 內核和普通的應用程序,兩個環境通過QSEECOM接口進行交互。

ARMV8標準又將系統層級又分為4個Exception Level[1]:

EL0: 用戶空間中運行的應用程序,特權級最低。

EL1: Secure World中運行高通的TrustOS實現QSEE[2],用于完成一些安全有關的操作。而Normal World運行Linux操作系統。

EL2:ARMV8專為虛擬化設計的層級,只在Normal World中出現。

EL3:用于切換Normal World與Secure World,Normal World中的應用程序需要發送SMC指令到EL3層才可以進入Secure World。

在高通平臺中,啟動先從位于SOC芯片內部的PBL(Primary Bootloader)開始執行,如果啟動失敗PBL則會創建基于Qualcomm Sahara協議的串口設備用于寫入新的程序。PBL找到位于EMCP上的SBL1(Second Bootloader Stage 1)并跳轉,SBL1階段將會在ARM32模式下初始化總線、時鐘、DRAM等外設,同時加載位于不同分區中的TrustZone、HYP、Aboot(LittleKernel Bootloader)固件。SBL1完成對所有固件的裝載后會進入ARM TrustZone并將處理器重置進入ARM64狀態,TrustZone完成初始化后跳轉至Hypervisor,Hypervisor固件在EL2特權級完成對EL2的初始化然后跳轉至EL1特權級以ARM32模式啟動LittleKernel Bootloader提供Fastboot接口或跳轉到Linux內核。

由于Linux內核是以ARM64指令集編譯的而ARM處理器的工作模式只有在切換特權級時才能切換,LittleKernel Bootloader啟動時需要使用SMC(Secure Monitor Call)指令切換至EL3狀態最后以ARM64工作模式切換至EL1引導Linux內核。

在Linux內核中使用KVM虛擬機需要讓整個內核在EL2特權級中啟動以執行虛擬化相關的指令,然而LittleKernel Bootloader最后通過SMC將特權級置為EL1,這使得KVM無法正常初始化。

實現虛擬化的方式可以通過重寫Hypervisor固件與LittleKernel Bootloader得到。由于高通在MSM8916提供的TrustZone固件的PSCI (Power State Coordination Interface 電源管理接口)標準實現有些許問題,經實驗證明,不能簡單的在LittleKernel Bootloader啟動階段跳轉至EL2特權級的Hypervisor固件然后在EL2狀態下啟動內核與初始化Hypervisor(KVM),這會使TrustZone以不正確的方式初始化另外的CPU核心,讓其他核心以ARM32模式啟動。解決方案在HYP固件實現中調用一次切換狀態的SMC調用,使TrustZone在完成SMC調用后始終處于ARM64工作模式,再在TrustZone完成EL3狀態向EL1狀態轉換的瞬間使得EL1指令無法執行最后在EL2狀態完成對異常的處理,在EL2特權級引導Linux內核與KVM模塊。

經驗證以上的方法在未開啟Secure Boot功能的MSM8916設備上能夠成功在EL2特權級啟動Linux內核。但是在市面上的很多設備與開發模塊都開啟了Secure Boot功能。Secure Boot功能開啟后在SOC的指定區域中寫入OEM公鑰,Aboot與SBL等啟動所需的鏡像都會被簽名,啟動時會對這些鏡像進行驗證若公鑰的Hash值與SOC中儲存的公鑰的Hash值不同則拒絕啟動。所以不能通過上述替換LittleKernel Bootloader與HYP固件的方式完成Linux內核在上述情況設備中的引導。

對于開啟Secure Boot功能的設備,本文提出了如下的解決方案。

由于Secure Boot功能對公鑰的驗證僅限于Aboot之前的Bootloader,而Android Bootimg格式的Linux內核沒有設置簽名和公鑰的檢查,則可以通過將LittleKernel Bootloader打包成Android Bootimg格式以方便跳轉,通過使用Aboot分區中已簽名的Bootloader跳轉至修改過引導順序的LittleKernel Bootloader來繞過對Aboot的公鑰Hash檢查從而進入上述啟動過程。

根據2017年Black Hat大會“Blue Pill for Your Phone”[3]對高通ARM TrustZone的逆向分析指出,在一些SCM調用中缺少對HYP區域內存的檢查。可以利用此漏洞在LittleKernel Bootloader中動態替換Hypervisor內存中儲存的內容,將能夠讓內核引導至EL2特權級的Hypervisor固件替換內存中通過檢查的Hypervisor固件內容,實現跳轉,最終成功加載KVM內核模塊,在目標機器上實現EL2特權級指令的執行。

在用戶層,本文使用的是Libvirt與Qemu完成對便攜式設備虛擬化可行性的驗證。Qemu是一個通用的開源機器仿真器,能夠在一臺機器上模擬所支持任何一個架構的整個系統或者類UNIX系統的用戶環境,也可以結合內核中的KVM模塊(Qemu負責對IO的模擬、KVM負責對CPU與RAM的模擬)獲得接近在真實機器上運行的性能。Libvirt是管理虛擬化技術的一組守護進程、程序接口和管理工具,是對不同Hypervisor的一層封裝,除了能夠管理KVM虛擬機之外,還能管理其他Hypervisor實現,也可以通過網絡對運行Libvirt守護進程的機器進行管理。

二、實驗環境

本文中使用的設備搭載著高通MSM8916處理器,該SOC具有四個運行在0.9GHZ主頻下的ARM Cortex-A53核心,采用ARMV8指令集,同時兼容ARM32指令架構。處理器接有一顆KMK8x000vm-b412的EMCP為程序的存取提供EMMC5.0標準的外存讀寫速度,基于LPDDR2技術的低功耗內存也能夠準確的表現出這類ARM指令集的便攜設備在真實的使用場景的功耗和性能。另外采用WCN3620芯片提供2.4Ghz WIFI連接,為實驗的調試與數據的傳輸提供方便。

本文使用的軟件部分環境基于最新的LTS版本的Linux 5.15內核與Debian 11 bulleye操作系統,這兩者的組合不僅能保證實現在新架構與新版本的依賴庫的可行性,還能夠減少由于閉源軟件等一些不可控的因素對KVM技術最終在設備上呈現的效果造成影響。另外,為了貼合ARM便攜設備的使用場景,Bootloader采用在智能手機中常用的LittleKernel Bootloader,用于配置和啟動Linux內核和通過usb提供PC交互的基于Fastboot協議的調試接口。在用戶層的模擬中使用的虛擬機平臺是Qemu+Libvirt,虛擬機的環境為Ubuntu Server 20.04 + EDK2,其中Ubuntu Server提供測試環境,EDK2提供通用的UEFI啟動器啟動Ubuntu Server。

三、實驗結果

在實體機下的Debian環境中使用著名的性能測試工具UnixBench在空載的情況下運行Unixbench 5.1.2可執行文件,Unixbench使用GCC 10.2.1進行編譯,測試結果如下所示。

在KVM虛擬機中,在Ubuntu Server 20.04中同樣使用UnixBench 5.1.2進行測試,測試結果如下所示。

根據測試結果得知,虛擬化技術在便攜式設備常用的ARMV8指令集平臺上完全可行,且性能逼近實機運行的速率,是一個完全能夠用于實際生產環境中的技術,而且在開啟Secure Boot功能的設備上,性能也能完全不受為規避Secure Boot多出的啟動流程的影響,也為未來對市面上的產品進行再回收與二次開發提供了可能。

四、總結與展望

虛擬化技術作為許多云計算與數據中心的核心技術,在X86平臺上已經發展成為較為成熟的技術之一,主要用于服務器的批量管理,將服務器集群所能提供的物理資源轉換成可被重復劃分的邏輯資源,提高了服務器的利用效率。

在ARM64平臺上,虛擬化技術不僅能實現傳統X86架構上對物理資源的靈活劃分,還能利用RISC指令集帶來的低功耗優勢,在更低的功耗下實現相同的任務。另外基于ARM64平臺的芯片其成本要遠遠低于傳統的基于X86指令集的芯片,甚至也可以使用回收的ARM便攜設備組成服務器集群來提供云計算等服務,這項技術的普及也將大大減少服務提供商的搭建成本和維護成本,降低了搭建數據中心的門檻也推進了廢舊電子產品的重復利用。

在面向最終用戶的市場中,本文闡述的技術也起著十分重要的作用。通過對硬件的完全虛擬而性能又貼近實機運行速度的特性也可以將用戶使用的應用程序的運行環境與外部的操作系統完全隔離開來,降低了有害應用對設備造成影響的可能性。另外也能通過該項技術完善基于Linux技術的國產操作系統對于為Windows與Android設計的應用程序的兼容性,應用生態處于發展中的操作系統也可以利用該技術迅速建立應用生態。另外基于KVM技術構建的虛擬機間接通過模擬硬件為所有在虛擬機運行的應用程序提供了統一的運行環境,大大減少了ARM指令集不同平臺普遍存在的差異性與碎片化。

參考文獻:

[1]Loopers. ARMv8-A Exception Levels.CSDN[DB/OL].https://blog.csdn.net/longwang155069/article/details/105010182,2020-03-21.

[2]謝君. Qualcomm QSEECOM 接口漏洞(CVE-2019-14040)分析.易學教程[DB/OL].https://www.e-learn.cn/topic/3583766,2020-4-18.

[3]Oleksandr Bazhaniuk. Blue Pill for Your Phone. Black Hat USA 2017 conference[DB/OL].https://www.blackhat.com/docs/us-17/wednesday/us-17-Bazhaniuk-BluePill-For-Your-Phone.pdf,2017-8-16.

主站蜘蛛池模板: 国产又黄又硬又粗| 亚洲福利一区二区三区| 女人18毛片久久| 高清不卡毛片| 青草视频网站在线观看| 欧美高清三区| 欧美性色综合网| 亚洲av无码久久无遮挡| 黄色免费在线网址| 极品国产在线| 国产精品成人啪精品视频| 精品99在线观看| 中字无码av在线电影| 国内精品91| 欧美综合成人| 亚洲A∨无码精品午夜在线观看| 超碰91免费人妻| 99久久精品久久久久久婷婷| 天天综合网色中文字幕| 国产剧情一区二区| 国模视频一区二区| 久久semm亚洲国产| 免费观看无遮挡www的小视频| 久久大香伊蕉在人线观看热2| 在线观看欧美国产| 亚洲美女高潮久久久久久久| 欧美一区精品| 激情综合图区| 亚洲 欧美 中文 AⅤ在线视频| 亚洲无码高清视频在线观看| 六月婷婷激情综合| 亚洲最大福利视频网| 欧美成人一级| 亚洲视频二| 国产精品视频导航| 国产69精品久久| 伊人久久大香线蕉影院| 日韩在线成年视频人网站观看| 国产日韩AV高潮在线| 2021最新国产精品网站| 亚洲V日韩V无码一区二区| 一级毛片在线免费视频| 欧美日韩理论| 欧美亚洲欧美| 免费一级成人毛片| 成人亚洲视频| 国产黄色视频综合| 日本三级欧美三级| 亚洲综合亚洲国产尤物| 欧美午夜理伦三级在线观看| 97青草最新免费精品视频| 久久国产精品电影| 永久在线精品免费视频观看| 久久黄色毛片| 2020最新国产精品视频| 午夜日本永久乱码免费播放片| 久久精品娱乐亚洲领先| 国产亚洲欧美在线人成aaaa| 欧美黄色网站在线看| 一级一毛片a级毛片| 麻豆国产精品一二三在线观看| 97人人做人人爽香蕉精品| 福利国产微拍广场一区视频在线| 日韩在线播放中文字幕| 久久精品这里只有国产中文精品 | 国产丝袜第一页| 四虎亚洲国产成人久久精品| 久久国产精品娇妻素人| 极品国产在线| 亚洲an第二区国产精品| 亚洲第一成人在线| 一区二区三区四区在线| 日本午夜视频在线观看| 黄色一级视频欧美| 中文字幕亚洲专区第19页| 无码精品福利一区二区三区| 三上悠亚精品二区在线观看| 国产美女在线观看| 午夜福利在线观看入口| 99久久免费精品特色大片| 亚洲视屏在线观看| 99视频在线免费|