演講嘉賓 | 代 杰
回顧整理 | 廖 濤
排版校對 | 宋夕明
嘉賓介紹
OS內核及視窗分論壇
代杰,華為OS內核實驗室驅動領域專家。
正文內容
設備驅動程序在內核中扮演著至關重要的角色,其直接與硬件設備交互,為操作系統和應用程序提供硬件操作的接口,并管理系統中的硬件資源。目前,HarmonyOS NEXT的內核驅動在兼容性和競爭力構建上有哪些挑戰和機遇?華為OS內核技術專家代杰在第三屆OpenHarmony技術大會上進行了精彩分享。
驅動生態復雜度高:既包含了南向生態(面向器件),也包含了部分北向生態(面向應用);既包含了硬件外設(UFS、GPU等),也包含了虛擬設備(random、loop、dm、dmabuf 等);既包含了硬件控制器(UFS host),也包含了協議層(SCSI、USB、DRM等)。對于 HarmonyOS NEXT 這樣一個新生的操作系統來說,驅動生態對其內核意味著什么?
先讓我們看一組數據:在Linux超過3000萬行的代碼中,有60%是驅動代碼,重新開發需要耗費大量的人力和時間成本,且部分廠商不提供源碼;以手機為例,驅動超過400個,涉及內核的接口超過1000個,代碼量超過400萬行。此外,應用生態上有POSIX標準,但驅動生態上卻缺乏統一的標準。因此,兼容Linux的驅動生態是從NEXT內核誕生時就需要考慮的問題。
HarmonyOS NEXT內核采取了UDK(Unified Driver Kit)技術,通過統一驅動框架,支持多個后端的方案,使其更好地兼容Linux的驅動生態。該技術的特點主要有:既能運行NDC(Native Driver Container),也能運行LDC(Legacy/Linux Driver Container),且可以幾乎零修改兼容Linux的驅動;驅動框架和驅動運行在獨立的進程空間。業界與UDK同類的項目如Genode DDEKit、Linux Kernel Library、VMWare vmklinux等,均因性能、兼容性以及版本演進等因素未成功。那么UDK目前面臨的核心技術挑戰有哪些?
LDC 側面臨的核心技術挑戰主要有:(1)如何具備跨 Linux 版本的演進能力?驅動版本碎片化已經成業界痛點,DDEKit 就因跟不上 Linux 版本演進而放棄;(2)兩個內核模型如何對接,Linux 內核機制如何在用戶態來表達?(3)性能及內存開銷問題,例如跨進程通信開銷、內存拷貝開銷等;(4)與原生容器并存和過渡問題。
針對上述問題(1),可以采用Base + Model架構,分離較為穩定的基礎KABI和易變KABI,便于跟隨版本演進(DC-Base:包含不易隨版本變化的穩定的KABI;DC-Model:包含易變的KABI集合),使其能夠在Linux發行版上實現多版本驅動并存功能。
針對上述問題(2),可以采取可擴展內核語義映射框架。Extension:host 側向 LDC 提供的功能擴展,將 NEXT 內核的能力做一層封裝,實現與 Linux 內核基本等價的接口供驅動使用;interface ko:提供 host 與驅動交互通道,完成 host/linux 名字空間轉換。
NDC 側面臨的核心技術挑戰主要有:(1)目前,NDC 巨量的接口缺失,生態不完備,Linux 面向驅動的上萬接口難以重新實現。且短期看,NDC只能運行在受限場景,無法完全舍棄 LDC;(2)用戶態的驅動框架性能和宏內核仍存在差距。文件系統和驅動的交互多一次進程間通信,驅動和內存的交互同樣需要進程間通信,且交互更為頻繁,例如 GPU 驅動需要頻繁地申請、釋放內存。
針對上述(1)的 NDC 接口缺失問題,NEXT 內核采取 LDC/NDC 多模共存的方案,實現生態上的抽屜式替換。從NDC和LDC的二選一階段,逐步演進到LDC/NDC的多模同時部署:所有的驅動和設備由 devmgr 同一管理,devmgr 可以路由到“正確”的驅動容器;NDC 可以抽屜式替換 LDC 中的驅動,能夠做到實現一個,替換一個,按重要程度逐步替換。此外,采取“孿生驅動”(Twin Driver)模式,針對代碼量巨大的驅動,為減小工作量,使用雙驅動容器協同方式:將核心的數據路徑,和上層應用交互的路徑由 NDC 承載,設備節點由 NDC 創建;上下電、初始化等功能仍通過 LDC 承載。
針對上述(2)的性能問題,可以采用 NDC 多態部署方案,實現安全和性能的權衡。NDC 中的關鍵驅動,例如 UFS 存儲設備和 VFS 部署在同一個地址空間,其他驅動則部署在獨立的地址空間。同時,中斷通過遷移線程模型直通用戶態驅動框架,解決傳統的中斷在用戶態處理,需要經過調度的問題,可以將時延壓縮到 2us 以內。
未來,隨著HarmonyOS NEXT生態和技術的發展,驅動框架作為北向和南向的生態中樞,有很多的機會。例如,提供更多的信息到應用層,實現精準的性能功耗控制;打破傳統的分層解耦,簡化關鍵協議、關鍵路徑等等。
-
Next
+關注
關注
0文章
8瀏覽量
6168 -
HarmonyOS
+關注
關注
80文章
2135瀏覽量
32645
發布評論請先 登錄
華為智能光伏第三屆全球安裝商大會圓滿收官
九同方亮相第三屆軟件創新發展大會
立儀科技受邀參加第三屆中國傳感器與應用技術大會

線上逛展 | 沉浸探索第三屆OpenHarmony技術大會五大展區
第三屆OpenHarmony技術大會 生態企業分享創新成果,共繪開源系統新藍圖

高燃回顧|第三屆OpenHarmony技術大會精彩瞬間
第三屆OpenHarmony技術大會主論壇嘉賓演講大咖金句聚焦

深開鴻亮相第三屆OpenHarmony技術大會,以技術驅動OpenHarmony生態發展

迅龍軟件受邀參加第三屆OpenHarmony技術大會,共建共享鴻蒙生態

評論