Windows 10的MSIX究竟是什麼?

微軟曾宣佈Windows 10將引入一種全新的安裝包格式“MSIX”,它可以被看成現有MSI的升級版,幾乎支持所有程序格式。到底是新技術還是舊酒裝個新瓶子,就讓我們來一睹究竟。

追根溯源,瞭解MSIX的前世今生

大家知道從Windows 8引入Windows商店開始,在Windows系統中軟件就分為兩大類,一類是傳統的.exe文件系統稱之為“程序”( Program Files),一般裝在C:\Program Files下;另一類則稱之為“應用”(Application),大多安裝在C:\Program Files\WindowsApps下(圖1)。


Windows 10的MSIX究竟是什麼?


圖1 Windows 10應用安裝位置

對於傳統的標準EXE程序,默認使用的是MSI封裝格式,MSI是Microsoft Installer的簡寫,是微軟格式的安裝包,Windows 10應用則使用APPX格式封裝。這樣開發者為Windows 10系統開發應用是就常常需要為應用兩種獨立封裝格式,為了簡化開發者的封裝工作,微軟引入了全新的安裝包格式MSIX(=MSI+APPX),這就是MSIX的來由(圖2)。


Windows 10的MSIX究竟是什麼?


圖2 MSIX格式

組合格式的背後,MSIX封裝解析

如上所述MSIX=MSI+APPX,微軟推出這種格式的目的是為了簡化開發者的封裝工作。那麼MSIX是怎麼實現這個功能的呢?

首先我們來了解一下MSI封裝格式,MSI文件是Windows Installer的數據包,從本質上將它實際上是一個數據庫,其中包含一個程序所需要的信息和在很多安裝情形下安裝(和卸載)程序所需的指令和數據。它將單純的程序文件和功能封裝在一起,並且包含有關安裝過程信息,比如安裝路徑,系統運行庫文件,安裝選項等信息。這樣使用標準MSI格式封裝的程序,我們在安裝的時候可以記錄各種詳細的信息,卸載的時候則可以根據這些信息將程序完全卸載,即使安裝過程中出現錯誤,我們同樣可以藉助這些想信息恢復到安全前狀態。因此很多大公司開發的軟件都使用MSI格式進行封裝(圖3)。


Windows 10的MSIX究竟是什麼?


圖3 MSI格式

APPX則是Windows 8之後新增的一種應用格式,其實質一個準備好分配和安裝的應用程序包。將安裝包上傳到Windows商店後,在出售之前,商店會運行安全性和遵從性測試,確保用戶從應用商店下載的都是安全性的應用。但是由於目前CPU架構有ARM、x86、x64之分,因此Appx主要有.appx(非通用安裝包,在ARM、x86、x64設備上需要不同的安裝包)、.appxbundle(同一應用的APPX打包,將不同平臺需要的APPX壓縮在一起)、.appxsym(UWP符號文件)、.appxupload(開發者向商店上傳應用用的文件)四種格式(圖4)。


Windows 10的MSIX究竟是什麼?


圖4 .appxbundle文件

Windows 10應用商店是微軟目前全力推廣的應用安裝方式,為了實現全平臺(ARM、x86、x64)兼容,微軟在MWC 2015上首次推出Win10通用應用(Windows10 Universal App),它構建了一整套可以在各種Windows平臺上使用的通用而現代的跨語言API,再加上良好的文檔和應用商店體系。實現了開發者的一份代碼幾乎完全不用改動,只用在生成安裝包的時候勾選幾個選項就可以實現應用的跨平臺安裝(圖5)。


Windows 10的MSIX究竟是什麼?


圖5 應用商店的UWP應用

對於應用,UWP解決跨平臺封裝難題。不過從上面的介紹可以知道,UWP(APPX封裝)和MSI是兩種完全不同的封裝格式,它們分別對應微軟全力推廣的應用和目前最為普及的EXE程序。如何讓這兩者在整合在一起?MSIX應運而生,它彙集了APP應用程序和MSI文件封裝格式的功能。全新的MSIX安裝器將支持所有的Windows文件格式,包括Win32、WPF、WinForm和UWP。這樣開發者只要遵循MSIX封裝協議,將開發的應用程序封裝為.MSIX格式後發佈到Windows 10應用商店,用戶下載後就可以根據自己實際需要自行選擇安裝方式(圖6)。


Windows 10的MSIX究竟是什麼?


圖6 MSIX通用格式

比如很多習慣Windows 7用戶喜歡運行EXE文件,這種類型的程序功能更全面,擴展功能更豐富;但是很多平板用戶則更喜歡APPX應用,這種應用界面清爽,操作簡單。以後我們只要從應用商店下載安裝自己喜歡的應用即可,而不是像現在EXE程序要到華軍這些網站下載,應用則要到商店下載。

MSIX,將帶給我們安全和便利

如上所述,傳統EXE文件功能強大,但是大家也知道很多惡意軟件,病毒也都是使用這種格式開發的。平時我們電腦的病毒、木馬大多是EXE文件帶來的,傳統程序在帶來便利的同時也給我們帶來極大的安全隱患。

應用相對EXE程序來說安全性就提高了許多,這是因為一方面應用的開發需要打包證書(這樣通過證書就很容追溯到惡意應用的開發者),另一方面應用安裝包在上傳到商店後需要通過微軟的審核,運行安全性和遵從性測試,徹底杜絕惡意軟件的入駐。因此從商店下載的MSIX文件可以給用戶帶來前所唯有的安全性。當然二合一方式的封裝也便於用戶自行選擇安裝方式,給開發者同樣帶來極大的便利。而且微軟會將MSIX文件格式進行開源化,期待MSIX文件普及早些到來。

 


分享到:


相關文章: