微軟解釋為何一個網頁就調用了多個Windows進程
如果你曾在只開了一個網頁的情況下查看Windows 10的任務管理器,或許會驚訝地發現其中竟然出現了多個瀏覽器進程。為了回答這個疑問,微軟在近日的一篇博客文章中給出了詳盡的解釋。其指出,現代瀏覽器基於多進程體系構建,意味著應用程序可被劃分為不同的進程。
以Chromium Edge 為例,該瀏覽器就被劃分成了主進程、渲染器、GPU 運算、實用功能、插件擴展、崩潰報告句柄(Crashpad Handler)等不同的部分。
其中主進程主要負責窗口和選項卡的管理,控制瀏覽器的地址欄、前進/ 後退按鈕等框架、且具有訪問實用功能等進程的特權,比如網絡請求和文件訪問。
渲染器進程通過執行網站提供的代碼來控制一個網頁在選項卡中的呈現,能夠處理超文本標記語言(HTML)、級聯樣式表(CSS)、JavaScript 和圖像等內容。
GPU 運算進程負責與圖形硬件相關的所有任務,比如加速圖形計算、並將處理器結果輸出到顯示器上。
實用功能進程負責了音視頻播放、網絡服務、數據解碼、以及集合管理,Microsoft Edge 可藉此控制、管理、協調全局系統資源的調用。
插件和擴展進程負責了對各個活動插件的管理(比如Adobe Flash),每個進程的資源使用情況、以及同主進程/ 渲染器的通訊,均取決於特定的代碼。
崩潰句柄處理進程可追踪Microsoft Edge 中不同進程的運行狀況,若發生崩潰,Crashpad Handler 能夠捕獲異常、並將錯誤報告傳遞給微軟服務器,以查找問題和修復故障。
此外處於可靠性和安全性的考慮,即便是同一網頁上的不同元素,也可能被分配了單獨的進程。
這樣即便不慎被惡意軟件利用了一個渲染器進程中的安全漏洞,也可避免其影響另一個進程。
微軟解釋稱,因渲染器進程負責與網站的交互,惡意攻擊者對其覬覦已久。為提升安全性,現代瀏覽器給它分配了較低的權限,對操作系統的訪問也受到了極大的限制。
進程間彼此隔離的另一個好處,就是能夠防止對另一個進程的“竄訪”,從而提升了瀏覽器的整體安全性,比如防止被網站廣告給獲取敏感信息。
此外值得一提的是,若Web 應用程序、擴展或插件部分發生了崩潰,也只會有小範圍受到波及(大部分標籤頁仍可正常運行),瀏覽器的整體可靠性卻有了大幅提升。
最後,這項特性可讓用戶更直觀地了解到每個進程的資源佔用,進而分析出哪個網站、擴展程序、或插件消耗了過多的資源。
感興趣的朋友,可在Microsoft Edge 中通過Shift + Esc 組合鍵(或在右上角點擊“設置-> 更多-> 工具”)來喚出瀏覽器的任務管理器。