Edge瀏覽器參考架構
一般瀏覽器的主要結構都是下圖這樣的。所以參考下圖來繪製Edge的架構。
首先打開一個edge瀏覽器,然後我們用任務管理器去查看,會看到下圖這樣的結果。
查閱相關資料得知,老版本的Edge由MicrosoftEdge.exe
和MicrosoftEdgeCP.exe
兩個進程組成,後來的版本採用UWP架構,其進程主要由RuntimeBroker.exe
和其他進程組成。其中RuntimeBroker
和一些核心進程爲中等完整性級別,其他進程都在AppContainer
中以低完整性級別運行。
AppContainer
是windows提出的進程隔離機制。通過將應用程序與不需要的資源和其他應用程序隔離,可以最大限度地減少惡意操縱的機會。
- Browser_Broker是broker進程,負責啓動C網頁,同時執行類似文件保存等高特權動作,以中等完整性級別運行。
- Runtime Broker是以中等完整性級別運行,負責權限管理。
- Chakra JIT Complier是JavaScript的編譯器,負責解析和執行Javascript代碼。
- User Interface Service顧名思義是提供用戶接口服務。
- Background Tab Tool 是標籤頁工具。
- 百度一下你就知道是我打開的頁面。Edge會爲每一個標籤頁創建一個進程,是瀏覽器sandbox機制的體現。
- Microsoft Edge Mangaer是主要進程,有待進一步分析。
接下來使用Process Explorer工具來查找Edge各個部分所使用的模塊。在process explore中發現Edge的進程有這麼幾個,和任務管理器大同小異。
查看MicrosoftEdgeCP.exe的dll,根據描述,推測:
-
EdgeContent.dll是Edge的瀏覽器引擎
-
edgehtml.dll是渲染引擎
-
JS解釋器:chakra.dll
-
XML解釋器:xmllite.dll
-
網絡相關組件包含
- windows HTTP服務:winhttp.dll
- Win32的Internet擴展:wininet.dll
- Web客戶端DLL:Windows.Web.dll
-
用戶界面後端包含
- Windows DirectUI 引擎:dui70.dll
- Windows Direct User Engine:duser.dll
- DirectX Graphics Infrastructure:dxgi.dll
結合以上信息,可以初步繪製Edge參考架構:
reference: