国产精品久久久aaaa,日日干夜夜操天天插,亚洲乱熟女香蕉一区二区三区少妇,99精品国产高清一区二区三区,国产成人精品一区二区色戒,久久久国产精品成人免费,亚洲精品毛片久久久久,99久久婷婷国产综合精品电影,国产一区二区三区任你鲁

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

基于Android的最小Linux映像:MicroDroid

ss ? 來源:CSDN ? 作者:Carol ? 2021-02-03 15:31 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

【CSDN 編者按】MicroDroid 本質上還是一個 Android 系統,換句話說,甚至不能將 MicroDroid 作為一個單獨的系統來使用,谷歌如今為現有的Android 系統開發基于虛擬機技術的安全功能,MicroDroid 是為此而生的。

近日有消息稱,谷歌正在研發一個新版本的 Android 系統,名為 MicroDroid 。這個新版本的 Android 首次官方露面是在谷歌提交的開發說明上,谷歌將其稱為“基于 Android 的最小 Linux 映像”。

據 MicroDroid 的描述說明顯示,MicroDroid 將在虛擬機中使用,并且被稱為“通用的 Android 系統鏡像(GSI)的精簡版”,GSI 已經是開源 Android 的一個鏡像,而 MicroDroid 則是一個比通用的 Android 系統更精簡的版本。

MicroDroid 有什么用?

剛才說到,GSI 已經是一個開源的 Android 的基礎版本,但 MicroDroid 相對更精簡。根據 XDA Developers 的分析,谷歌的目標或許是在 Android 旁側運行的虛擬機,如 DRM 相關的應用。MicroDroid 內部擁有少量組件,如 init 和 binder 服務,以便與底層 Android 主機進通信

通過 MicroDroid,我們可以設想在 Android 的同時運行一個小型的虛擬機,MicroDroid 是任意設備可運行的,方便開發者虛擬化一個單獨的 Android 應用程序,而不是提供一個完整的輔助桌面環境。這使得在云端運行安全應用、在操作系統迭代之間切換安全配件文件的能力變得更簡單。

同時,也可以與市場上較新的芯片(如驍龍 888)中的虛擬化功能相結合。而高通方面則表示,允許隔離應用程序和同一設備上的操作系統之間的數據,也可以在隔離的操作系統之間即時更改,并且適應性很好。

圖片來源:高通

圖為驍龍 888 上的上的新型 Type-1 虛擬機管理程序,Hypervisor 在隔離的操作系統之間進行即時切換

另外,據 LWN 的 Jake Edge 介紹,為了提高安全性,谷歌正在致力于將名為“KVM”的 Linux 內核虛擬化機制引入 ARM64 soc 驅動的 Android 設備。

據稱,引入 KVM 支持可以“取消”運行在 Armv8 的高度特權異常級別之一的第三方代碼的特權。例如用于 DRM 、密碼學和其他二進制文件的第三方代碼,可以在 Android 操作系統相同級別的 VM 中運行。

圖片來源:ARM

為了管理這些虛擬機,谷歌正在適配 Chrome OS VMM ( crosvm ),這是用于在 Chrome OS 上運行 Linux 應用程序。同時也準備在一個名為“虛擬化”的 APEX 新包中將 Cromsvm 包含進去一同發布、并為 Android 的 Linux 內核分支帶來 ARM64 上的“受保護的 KVM ”項目。

Android 解決內核碎片化問題迫在眉睫

MicroDroid 的誕生或許要追溯到更早之前。目前,整個 Android 系統的最新開發是通用內核映像( GKI ),其目的是減少 Android 內核的碎片化。

GKI 架構

在傳統上,每個手機都有自己的內核版本,但卻是無法擴展的,這一特性導致了碎片化。若是每次更新都要同時更新多個內核版本(不同設備)的話,就會存在困難程度上升和費用增加的問題,進而導致某些系統很難更新或無法更新。如果說某些設備的內核太老了,沒有最新版本所需要的功能,還會導致這些設備無法更新 Android 版本——在早期乃至近幾年的 Android 設備市場中,這種情況的確是常見的。

這種分裂的現狀還帶來了另一個問題:對上游內核的不利。相對來說,這個問題目前沒有得到足夠的關注。主線內核背后的思想是擁有正確的子系統和抽象,以便支持各式各樣的硬件,但這是不可能做到的。因為這些代碼都存儲在不同的內核中,就像你走進一片巨大的森林,目之所及的僅僅是你視線范圍的樹木,不可能看清楚森林里的每一棵樹上的每一片葉子,同理,除非開發人員能夠看到所有不同硬件下所有不同的問題和解決方案,否則對于內核開發人員來說,是無法想出一個適用于所有人的抽象。

Android 內核層次結構導致碎片化

GKI 用于解決 Android 內核碎片化問題,而 MicroDroid 則是谷歌在 Android 硬件上支持虛擬化道路上的重要一步。

Android 虛擬化管理混亂

如今 Android 上的管理程序情況還是很混亂的。如果你認為內核的碎片化問題已經“很糟糕了”,那現實的情況可能是已經“非常非常糟糕了”。

就目前而言,所有的 Android 設備都在運行的某些版本的 Linux ,但就管理程序而言,簡直分裂得就像狂野的西部世界。有些設備根本沒有管理程序,這算情況好的了,但對于有管理程序的設備而言,他們的管理程序需要用于管理不同的事情。

3.1 安全增強

目的是保護內核,但是其本身也存在問題,因為緩解措施很多時候也是攻擊的入口。并且重點在于,虛擬機監控程序使用更高的特權運行,所以其中的錯誤可能意味著這些假定的保護程序并不能真正地保護系統。

3.2 粗粒度內存分區

這個在 Android 中的粗粒度內存分區看起來有點像 IOMMU ,但實際上不是。它在引導時用于將物理內存劃分為多個區域,這些區域可以交給各種設備進行 DMA 或者其他用途。但在引導時間之后,Hypervisor(虛擬機監視器)還有很多工作要做,所以這類型的使用顯得有些浪費。

3.3 在Android以外運行代碼

Armv8 有多個特權級別,稱為異常級別,從特權級別最高的固件( EL3 )到管理程序( EL2 )和操作系統( EL1 ),再到特權級別最低的用戶( EL0 )。Hypervisor 異常級別不是 EL3 級別,因此設備制造商在更新那里的代碼時不必擔心設備的砌墻問題,同時它也不是 EL1 級別,運行在那里的代碼不需要與任何其他東西集成。而這意味著,EL2 成為了某種“游樂場”,似乎不適合其他地方的代碼會被卡在那里,因為 EL2 擁有的特權可能比需要的多得多,這是很糟糕的現象。

特權和例外級別

在大多數情況下,甚至沒有任何虛擬機,所以這些管理程序不會提供常見的服務。這種情況導致可信計算基礎( TCB )增加了,安全性和功能性因此而損失,安全性受到了阻礙。而且因為該級別的碎片化,更新設備變得更加困難。此外,由于無法從 Android 內部訪問硬件虛擬化特性,功能也相應變得很缺乏。

實際上,受信任級別比不安全級別擁有更多特權,因此,受信任的操作系統可以映射不受信任的管理程序內存,且可以提供訪問,這樣一來受信任的應用程序也可以訪問它。這在 Android 生態中是有問題的,其中一部分原因來自于運行在可信端的 DRM 的第三方代碼、各種不透明的二進制 blob 、加密代碼等等,這些代碼可能并不值得信任,而且它們也會受到碎片化問題的困擾。

內核的 Arm64 體系結構的維護者之一、同時也是 KVM 引入 Android 系統的負責人威爾·迪肯( Will Deacon )認為,“可信”一次在很大程度上是一個營銷術語,目的是讓人們覺得運行在那里的代碼是安全可靠的。但“信任”還有另一種定義,即“期待、希望或假設”,這同樣適用于當下。Android 系統必須希望在受信任端運行的軟件沒有惡意的,否則一旦惡意軟件運行在可信任端,Android 就束手無策了。

所以,Android 如今希望有一種方式來取消這個第三方代碼的特權,需要一個可移植的環境,能夠以一種與 Android 系統隔離的方式來承載這些服務,還能將這些第三方項目彼此隔離。基于這些愿景,KVM 和 MicroDroid 就應運而生了,MicroDroid 在 KVM 的基礎上能保證更安全、更快捷、更開放的方式去進行隔離、迭代和運行。

另外,也有業內人士猜測,MicroDroid 也可能和谷歌努力將 Crosvm 背后的想法擴展到 Android 應用程序有關。不過在官宣之前,我們也只能對現有的信息作出一些猜測,MicroDroid 背后真正的意圖是什么,或許也要等待進一步的消息。

責任編輯:xj

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • Android
    +關注

    關注

    12

    文章

    4026

    瀏覽量

    133993
  • 內核
    +關注

    關注

    4

    文章

    1468

    瀏覽量

    42877
  • 操作系統
    +關注

    關注

    37

    文章

    7402

    瀏覽量

    129313
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    安裝官方 Ubuntu 23.10 映像時報錯,求解決

    我正在嘗試為我的 VisionFive 2 安裝新的 Ubuntu 23.10 服務器映像,我之前安裝了 Debian,并且有效。現在我從這里下載了實時安裝程序下載適用于 RISC-V 平臺
    發表于 02-10 06:54

    無法啟動預安裝的 Ubuntu 23.10 服務器映像怎么解決?

    從預安裝的 Ubuntu 23.10 服務器映像啟動: RISC-V/星五 VisionFive 2 - Ubuntu Wiki 我使用圖像刻錄機解壓縮并將圖像寫入 microSD 卡。我在電路板關閉
    發表于 02-09 07:25

    RK3576+Android15+Linux6.1調試EM05 4G模塊全記錄:從底層到上層的踩坑與破局

    )服務。最近我們在 RK3576 開發板 + Android15 系統 + Linux6.1 內核 環境下調試EM05 4G 模塊 時,就遇到了從“RIL 起不來” 到 “庫缺失” 再到 “上層功能未開” 的一系列問題。今天就把完整的調試流程、踩過的坑和解決方案整理出來,
    的頭像 發表于 02-03 15:27 ?1520次閱讀
    RK3576+<b class='flag-5'>Android15+Linux</b>6.1調試EM05 4G模塊全記錄:從底層到上層的踩坑與破局

    深入解析RK平臺Android/Linux Bootloader核心文件:android_bootloader.c

    參數組裝等關鍵工作。(這個啟動流程androidlinux共用) 本文將從 文件定位、核心函數、執行流程 三個維度,拆解這個文件的底層邏輯。 一、文件核
    的頭像 發表于 01-09 10:58 ?1203次閱讀
    深入解析RK平臺<b class='flag-5'>Android</b>/<b class='flag-5'>Linux</b> Bootloader核心文件:<b class='flag-5'>android</b>_bootloader.c

    Linux Swap交換空間詳解:Android編譯內存不足?這樣擴充立竿見影

    ? ? 在 ?Linux? 系統使用過程中,你是否遇到過? “ 內存不足 ”? 的報錯?比如編譯? Android? 源碼時,明明按教程操作,卻因物理內存沒達到? 16G? 要求而編譯中斷?這正是
    的頭像 發表于 12-06 08:10 ?4258次閱讀

    如何利用 DDR 參數文件生成 Linux 映像

    如何利用 DDR 參數文件生成 Linux 映像
    發表于 09-02 06:39

    谷歌全新Android助力提高開發效率

    隨著 Android 的更新,加上 AI 的接入與賦能,讓 Android 開發新范式正在加速成型。
    的頭像 發表于 08-29 09:22 ?860次閱讀

    Android 16更新亮點介紹

    Android 近期在整個平臺上推出了一系列更新,包括:發布 Android 16 并為開發者和用戶提供詳細信息,推出改進外接顯示設備上 Android 桌面體驗的開發者預覽版,為 Google
    的頭像 發表于 07-05 11:37 ?3756次閱讀

    ArkUI-X與Android聯動編譯開發指南

    本文主要介紹通過CLI工具鏈執行ace create project命令創建工程,生成聯動編譯腳本。使用Android Studio編譯Android應用時,可聯動編譯ArkTS源碼,并自動拷貝
    發表于 06-16 22:55

    想從linux系統讀回CYC65215部件的配置程序映像,并檢查其CRC是否正確(假設它有附加 CRC),圖像有CRC嗎?

    我想從 linux 系統讀回 CYC65215 部件的配置程序映像,并檢查其 CRC 是否正確(假設它有附加 CRC)。圖像有 CRC 嗎? CRC 是否使用標準多項式的已知算法生成? 如果是,是哪條多項式?
    發表于 05-23 06:22

    為什么無法在USB控制中心選擇固件映像文件?

    我在開發 CYUSB3KIT-003 固件并將固件映像文件下載到 FX3 時遇到了一個問題。 我通過將 PMODE[2:0] 配置為 F11 來設置 USB 啟動模式,并像往常一樣將新開發的固件下載
    發表于 05-07 06:14

    如何在i.MX 8XDXL EVK的A35上運行Yocto Linux,在M4上運行FreeRTOS?

    我正在使用i.MX 8XDXL 評估套件并希望在 Cortex-A35 上運行 Yocto Linux 映像cores 的Cortex-M4 上的 FreeRTOS 映像核心。 實現這一目標的最佳
    發表于 04-04 06:02

    3種系統加持!飛凌嵌入式RK3576核心板LinuxAndroid、桌面系統全兼容

    飛凌嵌入式FET3576-C核心板正式發布了新系統Forlinx Desktop 24.04。至此,FET3576-C核心板已完成Linux 6.1、Android 14、Forlinx Desktop 24.04等多種操作系統的適配,充分展現了其在系統豐富性方面的卓越實
    的頭像 發表于 04-02 16:00 ?1210次閱讀
    3種系統加持!飛凌嵌入式RK3576核心板<b class='flag-5'>Linux</b>、<b class='flag-5'>Android</b>、桌面系統全兼容

    請問如何在Linux中使用幀緩沖區更新epdc顯示?

    我正在使用帶有 epdc 顯示子卡 (IMXEBOOKDC5) 的 IMX8ULP EVK。使用 Linux 映像引導后,epdc 顯示無法使用幀緩沖區進行更新。當檢查顯示 pmic 的電源使能引腳
    發表于 04-01 06:41

    如何使用Linux映像在IMX8ULP上啟用自定義logo?

    Hi, 我正在使用IMX8ULP EVK替換為IMXEBOOKD5(帶有 EPDC 接口的 e-ink 顯示)并使用 Linux 映像啟動 EVK。我需要替換默認的燕尾服
    發表于 03-31 06:30