Windows Sandbox輕量級桌面開啟及使用教程

前言

(毫無預兆地,)咱們今天來聊一聊Windows Sandbox。
俗話說王老板可能會遲到,但永遠不會缺席。(大霧)
雖然功能出來有一個多月了,官方介紹和網(wǎng)上各種教程已經(jīng)滿天飛了,但一般都只是把官方給出的“特性”和“使用條件”(谷歌翻譯一下然后一字不改地)搬運過來,所以我們今天還有不少東西可以聊。
之前在IT之家投稿文章的評論區(qū),有些網(wǎng)友說我前言廢話太多且和正文無實際聯(lián)系,我們今天就嘗試一下少說廢話。
開聊。


正文

我們將按照以下順序介紹:

  1. 首先簡單介紹一下什么是Windows Sandbox,我們會貼出官方的表述和我們自己的見解[注:為便于理解會同時列出部分英文原文。]);
  2. 如何開啟并使用Windows Sandbox,搬運官方給出的步驟,之后列出我們自己的圖文過程;
  3. 感興趣的小伙伴可以接下去看,我們將會以簡單易懂的方式介紹Sandbox所使用的的技術(shù)。
  4. 講完上述部分,再自然而然地引出,Windows Sandbox和一般虛擬機的區(qū)別。

一、什么是Windows Sandbox

1、定義

Sandbox直譯是沙盤,也叫沙盒或沙箱,特點是可以推倒重來、抹去使用痕跡對外部環(huán)境不產(chǎn)生任何影響。
Windows Sandbox正是為“安全地運行應用程序”而量身定制。用戶可以在這個獨立封閉臨時桌面環(huán)境里,運行不受信任的軟件比如未知的exe文件,不會對宿主機系統(tǒng)造成任何影響。因為 Windows Sandbox 中安裝的任何軟件以及做出的任何文件變動,下次啟動時將不復存在。
按照慣例我們先看一下官方給的表述:

Windows Sandbox is a new lightweight desktop environment tailored for safely running applications in isolation.

(谷歌)翻譯過來:

Windows Sandbox是一種新的輕量級桌面環(huán)境,專為安全運行應用程序而量身定制。

這其實是更加側(cè)重于功能性的描述,把側(cè)重點放在實質(zhì)上,我們會得出以下描述:

Windows Sandbox是一款輕量級的、每次啟動加載固定快照的虛擬機。

為照顧到大部分讀者,這里先稍微解釋一下,用到哪些技術(shù)或如何實現(xiàn)下文再談。

  • 輕量級:由于大部分文件與宿主機共用,所以大小被控制在100MB左右;
  • 每次啟動加載固定快照:關(guān)閉之后會清除所有使用痕跡,再次啟動會回到全新的系統(tǒng)狀態(tài)。相當于首次啟動時就建立了快照,之后每次啟動都自動加載這一快照。
  • 虛擬機:官方介紹中這樣說道:“Windows Sandbox的核心是一個輕量級虛擬機”。本質(zhì)上是Hyper-V在本地創(chuàng)建一個虛擬機,然后通過遠程桌面協(xié)議(RDP)傳輸畫面
  • 系統(tǒng)鏡像則是深度精簡過的幾乎與宿主機相同的系統(tǒng),且診斷數(shù)據(jù)設置與宿主機保持一致。

2、特征

官方介紹中已足夠詳細且易于理解。
Windows Sandbox具有以下屬性:

  • Windows的一部分 - 此功能所需的一切都隨Windows 10 Pro和Enterprise一起提供。無需下載VHD!
  • 原始 - 每次Windows Sandbox運行時,它都像Windows的全新安裝一樣干凈
  • 一次性 - 設備上沒有任何東西; 關(guān)閉應用程序后,一切都將被丟棄
    安全 - 使用基于硬件的虛擬化進行內(nèi)核隔離,后者依靠Microsoft的虛擬機管理程序運行單獨的內(nèi)核,將Windows Sandbox與主機隔離開來
  • 高效 - 使用集成的內(nèi)核調(diào)度程序,智能內(nèi)存管理和虛擬GPU

二、開啟與使用教程

1、官方表述

使用該功能的先決條件

  • Windows 10 Pro或Enterprise Insider內(nèi)部版本18305或更高版本
  • AMD64架構(gòu)
  • 在BIOS中啟用虛擬化功能
  • 至少4GB的RAM(推薦8GB)
  • 至少1 GB的可用磁盤空間(建議使用SSD)
  • 至少2個CPU內(nèi)核(建議使用4個內(nèi)置超線程的內(nèi)核)

快速開始

  1. 安裝Windows 10 Pro或Enterprise,Insider build 18305或更新版本
  2. 啟用虛擬化
    • 如果您使用的是物理機,請確保在BIOS中啟用了虛擬化功能。
    • 如果您使用的是虛擬機,請使用此PowerShell cmdlet啟用嵌套虛擬化:
    • Set-VMProcessor -VMName <VMName> -ExposeVirtualizationExtensions $ true
  3. 打開Windows功能,然后選擇Windows Sandbox。選擇“ 確定”以安裝Windows Sandbox。系統(tǒng)可能會要求您重新啟動計算機。
  4. Windows Feature
  5. 使用“ 開始”菜單,找到Windows Sandbox,運行它并允許提升
  6. 從主機復制可執(zhí)行文件
  7. 將可執(zhí)行文件粘貼到Windows Sandbox的窗口中(在Windows桌面上)
  8. 在Windows Sandbox中運行可執(zhí)行文件; 如果是安裝程序,請繼續(xù)安裝
  9. 運行應用程序并像平常一樣使用它
  10. 完成實驗后,您只需關(guān)閉Windows Sandbox應用程序即可。所有沙盒內(nèi)容都將被丟棄并永久刪除
  11. 確認主機沒有您在Windows Sandbox中進行的任何修改。

2、詳細圖文

(1)開啟

使用先決條件:

  • 官方表述中的“推薦配置”我們就不在贅述了,相信有需求的用戶肯定滿足
  • Windows 10 Pro或Enterprise Insider內(nèi)部版本18305或更高版本
  • 在BIOS中啟用虛擬化功能
    虛擬化的類型上文也有提到,虛擬機的代碼已給出。
    物理機需要CPU支持,Intel平臺的是Intel虛擬化技術(shù)(Intel-VT),AMD平臺是AMD虛擬化技術(shù)(AMD-VT)。
    比如我手中的本本:
    開啟Intel-VT

    現(xiàn)在抱著小本本在窮鄉(xiāng)僻壤碼字,身邊沒有臺式機、沒有采集卡、沒網(wǎng)、沒流量,大家先將就看一下……
    開啟功能
    Windows Sandbox功能需要在18305及更高版本的系統(tǒng)中手動開啟,具體路徑為控制面板程序和功能啟用或關(guān)閉Windows功能勾選Windows Sandbox。
    點擊確認后系統(tǒng)會自動搜索、下載所需文件,之后會重啟兩次,以配置更新的方式對系統(tǒng)做出改動。
    啟用或關(guān)閉Windows功能

(2)使用

重啟之后并不能馬上運行Windows Sandbox,開機之后會發(fā)現(xiàn)后臺有鏡像工具正在運行,磁盤占用很高,應該是在部署文件。
稍作等待就可以在開始菜單中找到Windows Sandbox。
首次運行開啟需要一段時間,長短因機器而異,數(shù)十秒到幾分鐘都是可能的。
1. 進入桌面
進入后我們會看到和全新安裝的系統(tǒng)同樣的桌面,查看系統(tǒng)信息會發(fā)現(xiàn)系統(tǒng)版本和宿主機系統(tǒng)一致。

Windows SandBBox桌面環(huán)境

系統(tǒng)信息與宿主機一致

將Windows Sandbox窗口全屏我們將看到熟悉的遠程桌面操作欄,也證實了我們之前的說法。
通過RDP傳輸畫面

Windows Sandbox桌面環(huán)境中精簡掉了很多與設計目的無關(guān)的功能和服務,但Powershell、命令提示符等系統(tǒng)工具都保留了下來。
系統(tǒng)工具

2. 進行文件操作
首先由于Windows Sandbox的設計目的是測試不信任的軟件,所以刪去了微軟商店,開始菜單中的磁貼都是廣告,點擊無效,只可以通過.exe文件安裝軟件。Microsoft Store中下載的軟件都是運行在APP Container中,本身就是安全的,所以這樣設置也沒有問題。
其次,Windows Sandbox中保留了Edge瀏覽器,應該是考慮到訪問用戶需要訪問一些不信任或不行為太規(guī)矩的網(wǎng)站。
再次,由于安裝和使用軟件本質(zhì)上也是對文件進行操作,所以我們這里僅通過文件的變動驗證Windows Sandbox桌面環(huán)境是否如官方所說是“一次性”的。由于本質(zhì)是虛擬機所以“隔離性”就不需要測了。
和其他Hyper-V虛擬機一樣,Windows Sandbox與宿主機系統(tǒng)共享剪切板,但通過拖拽的形式傳輸文件是行不通的。
我們在宿主機系統(tǒng)新建一個文件,復制到Windows Sandbox中。
文件傳輸

3. 驗證
我們先退出Windows Sandbox,這時系統(tǒng)會彈出對話框,詢問是否確認關(guān)閉Windows Sandbox,提示一旦關(guān)閉臨時桌面環(huán)境中所有文件將不會被保存且永久丟失。
關(guān)閉前二次確認

再次開啟,發(fā)現(xiàn)果然系統(tǒng)煥然一新,恢復如初,之前傳輸?shù)奈募惨呀?jīng)沒有了。
第二次運行

開啟及使用教程到此結(jié)束,如果您還有興趣可以接著往下看。

三、使用了哪些技術(shù)

首先感謝您看到這里。
在這部分我們將會帶您解讀官方介紹中關(guān)于“Windows Sandbox內(nèi)核”的章節(jié),我會盡量以通俗易懂的方式使大家理解Windows Sandbox使用了哪些技術(shù)、實現(xiàn)了哪些功能或特性

1、 動態(tài)生成鏡像 - Dynamically generated Image

上面我們提到,Windows Sandbox的核心是一個輕量級虛擬機,因此需要一個操作系統(tǒng)映像才能啟動。而鏡像也才100MB左右,這是如何實現(xiàn)的呢。
微軟將Windows Sandbox所用鏡像稱之為“動態(tài)基本映像(dynamic base image)”,顧名思義是動態(tài)生成的,微軟表示W(wǎng)indows Sandbox無需“像使用普通虛擬機那樣下載新的VHD映像”,其實,不僅“無需”,而且不能。
Windows Sandbox鏡像分為兩部分,一部分是可變的(Mutable),另一部分是不可變的(Immutable)??勺兾募@部分稱為“基本鏡像(base image)”,在未啟動Windows Sandbox時以壓縮包的形式存儲,大小約25MB,安裝后大概占用100MB的磁盤空間。
而不可變部分則是鏈接到宿主機系統(tǒng)的相關(guān)文件,也就是Windows Sandbox運行時直接調(diào)用相關(guān)文件,并不額外占用空間。這就是為何Windows Sandbox占用空間如此少的原因。

Dynamic Image

打個比方,基本動態(tài)鏡像的生成和應用就像某種情況下我們?nèi)ヒ巴鉄?,我?strong>自帶食材,租用目的地商家的烤架和炭火等設施。我們自己帶的食材對應可變部分,租用的設置對應的是不可變部分。
相應的,如果食材也是在目的地商家那邊買的,就是云服務;如果食材和設施都是自帶的就是本地計算機。

2、智能內(nèi)存管理 - Smart memory management

前面我們提到Windows Sandbox是一個輕量級的桌面環(huán)境,所謂輕量級,就是占用資源較少,磁盤空間是一方面,系統(tǒng)性能也是一方面。
內(nèi)存管理方面,微軟采取的策略是“主機可以根據(jù)需要從沙盒中回收內(nèi)存”。也就是說,當宿主機系統(tǒng)需要時間,可以將分給Windows Sandbox的內(nèi)存調(diào)到更少的水平。
另外,由于Windows Sandbox基本上運行與宿主機相同的操作系統(tǒng)映像,微軟還允許Windows Sandbox“通過我們稱為“直接映射(Direct Map)”的技術(shù)使用與操作系統(tǒng)二進制文件的主機相同的物理內(nèi)存頁面”。說白了就是同一內(nèi)存區(qū)域,可以同時供宿主機系統(tǒng)和Windows Sandbox同時訪問,以此來實現(xiàn)節(jié)省內(nèi)存。

Direct Map

打個比方就像是班主任在班里播放電影,班主任決定學生是否可以看、看多少,在看的同時班主任和學生看到的都是同樣的內(nèi)容。

3、集成內(nèi)核調(diào)度程序 - Integrated kernel scheduler

這一項和上一項類似,讓宿主機系統(tǒng)決定Windows Sandbox所需的虛擬處理器。
“允許以與為進程調(diào)度線程相同的方式調(diào)度沙箱的虛擬處理器。主機上的高優(yōu)先級任務可以搶占沙箱中不太重要的工作?!?br> 這樣做的目的是宿主機系統(tǒng)將Windows Sandbox作為一個進程而不是虛擬機來管理,視為應用程序。

4、快照和克隆 - Snapshot and clone

這兩種技術(shù)技術(shù)就是大家理解的虛擬機上的技術(shù),目的是不需要每次啟動時都花費啟動系統(tǒng)的花銷。
快照就是首次啟動后將內(nèi)存、CPU等設備狀態(tài)存入硬盤。
克隆是“當我們需要一個新的Windows Sandbox實例時,我們可以從磁盤恢復沙箱環(huán)境并將其放入內(nèi)存而不是啟動它”。

5、圖形虛擬化 - Graphics virtualization

既然是虛擬機,無法訪問GPU等高級設備,也就需要圖形化虛擬這一技術(shù)了。
官方描述的有些復雜,簡單來說就是,微軟和廠商合作,將現(xiàn)代圖形虛擬化功能直接集成到DirectX和WDDM中,利用顯卡驅(qū)動和系統(tǒng)組件,使得Windows Sandbox中運行的程序可以直接調(diào)用圖形API,相當于在宿主機系統(tǒng)和Windows Sandbox之間搭了一座橋。

GPU virtualization for Sandbox

打個比方就是……額,網(wǎng)關(guān)……

四、Windows Sandbox和一般虛擬機的區(qū)別

講完Windows Sandbox的特點,我們來講和一般虛擬機的區(qū)別大家就很好理解了。
簡單來說,區(qū)別主要顯現(xiàn)在鏡像。

  1. 一般虛擬機運行的是完整的系統(tǒng)鏡像,而Windows Sandbox運行的是深度精簡、輕量級的“動態(tài)基本鏡像”;
  2. 一般虛擬機可以隨意選擇鏡像版本,而Windows Sandbox的鏡像則必須和宿主機系統(tǒng)保持一致,起碼現(xiàn)在是這樣;
  3. 一般虛擬機可以手動創(chuàng)建、刪除、應用系統(tǒng)快照,而Windows Sandbox則是自動創(chuàng)建新系統(tǒng)的系統(tǒng)快照且每次啟動都會自動部署;

后記

雖說Windows Sandbox是開發(fā)來當做測試環(huán)境的,不過也不是說就可以隨心所欲地測試任何項目了。
在Windows Sandbox桌面環(huán)境中對文件的操作不會影響到宿主機系統(tǒng),所以可以用來測試不信任的.exe文件,甚至是激活病毒,但請不要忘記,網(wǎng)絡是連通的(×3)。
所以如果有新品種的WannaCry還是請謹慎對待,以及賬號密碼在哪都別輕易填寫
好了,今天先聊到這。
如有更好的見解,歡迎補充。
如有錯誤,也請麻煩指正。
拜拜~~~

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關(guān)閱讀更多精彩內(nèi)容

  • 發(fā)現(xiàn) 關(guān)注 消息 iOS 第三方庫、插件、知名博客總結(jié) 作者大灰狼的小綿羊哥哥關(guān)注 2017.06.26 09:4...
    肇東周閱讀 15,097評論 4 61
  • 歸并排序算法和快速排序算法是java.util.Arrays中使用的排序算。對于一般的基本數(shù)據(jù)類型,Arrays....
    哲哲哥閱讀 368評論 0 0
  • 我站在遠處看風景 而風景中的人在看你 問那清風流水 何處是心靈皈依 你在風景中一枝獨立 映襯著千般流光寫意 不時忍...
    花蔓情緣閱讀 520評論 3 12
  • 待學習
    Minstrel_a7ca閱讀 237評論 0 0
  • 為了一睹你的芳顏,我煎熬了三年,今日,我終于隨了愿,這就是我魂牽夢繞的柴爾龍海,這就是我夢里?;氐钠钸B山。...
    行者賽俠閱讀 1,841評論 3 3

友情鏈接更多精彩內(nèi)容