-
綠色軟件
鎖定
- 中文名
- 綠色軟件
- 外文名
- Portable Application
- 別 稱
- 可攜式軟件
- 含 義
- 不用安裝,直接可以使用的軟件
- 特 點
- 無需安裝便可使用
- 應 用
- 對系統的影響幾乎沒有
綠色軟件軟件特徵
1 不對註冊表進行任何操作。
2 不對系統敏感區進行操作,一般包括系統啓動區根目錄、安裝目錄(Windows目錄)、程序目錄(ProgramFiles)、帳户專用目錄。
3 不向自身所在目錄外的目錄進行任何寫操作。
4 因為程序運行本身不對除本身所在目錄外的任何文件產生任何影響,所以,根本不存在安裝和卸載問題。
綠色軟件基本分類
綠色軟件分為狹義綠色和廣義綠色:
狹義的綠色可以叫做純綠色軟件,就是指這個軟件對現有的操作系統部分沒有任何改變,除了軟件現在安裝的目錄,應該不往任何地方寫東西,刪除的時候,直接刪除所在的目錄就可以了,就類似於以前的大多數DOS程序。
廣義的綠色可以叫作偽綠色軟件,就是指不需要專門的安裝程序,對系統的改變比較少,手動也可以方便的完成這些改變,比如拷貝幾個動態庫,或者導入註冊表,這裏的關鍵是手工可以方便的完成這些改變,或者可以藉助於批處理等等腳本完成。
為什麼要分為兩類?
雖然狹義的綠色軟件最為理想,但是完全符合這種定義的軟件非常罕見,而相當多的軟件可以劃分到廣義的綠色這個類別,這樣包括了廣義的綠色軟件的概念後使得綠色軟件這個概念更有意義。
那麼不符合綠色軟件要求的有哪些呢?
主要是指那些和操作系統聯繫和集成非常緊密的軟件,這些軟件不適合製成綠色軟件,最好還是用原來的安裝程序來安裝。如IE6,替換了系統中的許多動態庫,手工完成這個過程很困難,也不太安全。又比如大多數殺毒軟件,如果 必須實時監控系統的底層運作,對系統的修改比較大,就不適合做成綠色軟件。還有微軟公司的Office系列軟件,和系統集成的也比較緊密。但是廣義的這個標準比較靈活,如果有人搞清楚了Office系列軟件的安裝製作過程,也有可能製作出廣義的綠色的Office系列。
[1]
綠色軟件安裝與運行
為了充分理解綠色軟件的定義,必須從現代軟件的安裝過程和運行過程兩個方面來討論。
安裝過程:以前在dos下面的時候,就沒有這些所謂綠色軟件的説法,原來程序的安裝基本上都是簡單的複製或者解壓縮,然後配置一下config.sys 和autoexec.bat文件就可以了。隨着windows的發展,應用軟件也越來越大,也越來越複雜,從而有公司專門從事安裝程序的製作,如InstallShield就是一款比較有名和應用比較廣泛的安裝軟件,現在Windows也有了專門的安裝程 序,就是Microsoft Installer。安裝程序的作用是什麼呢?主要是為了給要安裝的程序提供一個簡單方便的設置環境,而不需要用户手工完成這個步驟,越是複雜的配置過程,對系統的修改越多,對安裝程序的依賴性就越高,Windows程序的易學易用的優點和良好的安裝界面 是分不開的,安裝軟件的任務就是給應用程序提供一個初步完好的可以運行的環境,而不需要用户進行手工配置。
運行過程:應用程序啓動的時候,從註冊表或者配置文件中讀取配置,運行的時候,可以修改配置,但這個修改一般是在安裝軟件所作工作的基礎上進行的,例如不能改變應用程序的安裝位置了。
明白安裝過程和運行過程的區別後,很容易就想到把綠色軟件的使用按照這兩個階段分為綠色安裝過程和綠色運行過程。綠色安裝是綠色運行的前提,沒有綠色安裝,也就説不上什麼綠色運行了,綠色軟件首先必須是綠色安裝,我前面提到的不適合綠色軟件標準的基本上都是不能綠色安裝的。
綠色安裝的基本含義,也可以分為狹義的和廣義的綠色安裝:
1 狹義的綠色安裝就是指直接拷貝或者解壓縮到目標目錄,不需要向系統目錄拷貝也不需要寫入註冊表,這是最理想的情況,或者是安裝程序的作用除了解壓縮外是可以忽略的,如在開始菜單加入快捷鍵等對系統和軟件的運行沒有太大影響的操作,也就是説安裝過程的作用就是複製文件到目標文件夾。
2 廣義的綠色安裝就是指在狹義的複製的基礎上,必須向系統目錄拷貝一些動態庫,或者要在註冊表中導入必要的設置,或者要進行一些其他的配置,否則的話,應用程序不能運行,而且這個配置工作應該比較簡單,也容易撤銷這些操作對系統的改變。
同樣,綠色運行也可以分為狹義的和廣義的綠色運行:
1 狹義的綠色運行指的是軟件運行時完全不改變操作系統的文件和配置--很多小程序屬於這個類別,或者運行結束後把撤銷對系統的改變,比如運行的時候加載一個驅動程序,退出時卸載該驅動程序,所操作的INI文件在自己的程序目錄中。
2 廣義的綠色運行指的是可以通過程序本身來改變當前的設置,如改變當前軟件的運行方式,或者與某些文件後綴相關聯,或者在註冊表中留下當前的軟件設置,也就是説對系統的註冊表有永久的改變,但是這些改變都是應用程序自己完成的,不需要藉助其他程序或者用手工完成。
綜合綠色安裝和綠色運行,可以把綠色軟件細分為:
1 狹義的綠色安裝,同時是狹義的綠色運行的軟件,對操作系統沒有任何改變。
2 狹義的綠色安裝,廣義的綠色運行的軟件,軟件的配置工作由軟件本身來完成,不是通過安裝程序。
3 廣義的綠色安裝,狹義的綠色運行,軟件的配置工作由安裝程序來完成,軟件本身不能對配置修改,同時如果沒有配置工作,軟件無法正常運行。
4 廣義的綠色安裝,廣義的綠色運行,最複雜的一種綠色軟件,軟件的配置工作由安裝程序來完成,但是軟件本身可以對配置 修改,同時如果沒有配置工作,軟件無法正常運行。
綠色軟件製作方法
綠色軟件的製作簡稱軟件的“綠化”,綠色軟件的製作實際上就是我們自己完成安裝程序的工作。沒有什麼固定的方法,基本上是猜測加上試驗,不同類別的綠色軟件分別有不同的製作策略。
拿到一個新的軟件,想要製成綠色軟件的話,一般遵循如下步驟:
綠色軟件判斷
就是指猜測這個軟件能不能製成綠色軟件,從功能,從你對它的瞭解,如果你覺得這個軟件和系統的關係非常緊密,就不要繼續下去了,還是用原始的安裝程序最保險最方便,這樣的例子有directx9 ,IE6,Norton的反病毒軟件等等。這樣的判斷可以節省你的時間,當然你可以忽略這一步,嘗試製作綠色軟件,那麼就轉到第2步。
綠色軟件綠化
對於不同的軟件有不同的方法,沒有一定的規則,但是總的來説,就是理解軟件的安裝過程,轉換為綠色安裝,在這個過程中,可能需要嘗試多個方法,也可能最後由於軟件的複雜性或者某些特性,導致無法綠化。要有失敗的思想準備,具體的綠化方法隨後講 述。
綠色軟件測試
綠化後的測試最好到一個全新安裝的操作系統中測試,而且如果你要在多個操作系統中使用這個軟件的話,還要在其他的操作系統中測試,有的軟件的文件隨着操作系統的不同而不同,這個時候你需要在不同的操作系統中進行“綠化”過程,最後綜合為一個完整 的適應多個操作平台的綠色軟件。
[4]
綠色軟件綠化方法
“綠化”方法,需要根據經驗選擇不同的“綠化”方法,也可能需要不斷嘗試不同的方法,直到成功為止。按照先易後難的次序,具體的方法包括:
綠色軟件虛擬化
所謂虛擬化,就是通過把應用程序安裝到一些輕量級的虛擬系統,這些虛擬系統本身非常輕量體積不到6M,但是卻可以和真實Windows一樣,本身支持獨立安裝運行軟件,保存數據,擁有自己的獨立桌面。虛擬系統實現了操作系統與應用程序分離的目標,安裝到虛擬系統之中的任何應用程序都可以在不同的Windows操作系統之間靈活遷移。因此我們可以用它來製作綠色軟件,特別是一些常規方法無法制作的軟件,用虛擬化的方式會更加容易實現。
綠色軟件解壓縮
這是最簡單的一種方法,就是指嘗試能不能直接解開軟件的壓縮包。用Winzip和Winrar試一試,看看能不能直接打開壓縮的安裝文件,如果不能打開,那麼就換別的方法。如果可以,那麼恭喜,這個軟件多半是屬於綠色安裝的軟件(有個別例外,如E mEditor),把壓縮包中的文件直接解壓到目標路徑,然後測試軟件的功能是否正常,如果功能正常,那麼“綠化”就成功了,如果使用不正常,那麼就換別的方法。這一類軟件的特點是安裝程序的工作完全可以由軟件自身來完成。
綠色軟件安裝然後卸載
綠色軟件反編譯安裝程序
這個方法需要動腦筋,就是根據安裝程序所用的製作工具,選擇相應的反編譯程序,然後閲讀反編譯出的安裝腳本,製作綠色軟件。目前的軟件大多使用專門的安裝工具製作,如InstallShield,Wise,Inno Setup,Windows Installer,NSIS(Nullsoft),Installer VISE,其中Windows Installer格式的安裝文件(就是MSI,MST為後綴的文件),可以通過微軟的免費工具Orca打開查看,InstallShield格式的安裝文件也有很多免費的工具可以解壓縮和查看腳本。當然專門的安裝工具很多,有許多安裝程序沒有相應的反編 譯程序,這種時候,就無法使用這個方法了。
綠色軟件反安裝程序
現在的軟件安裝完成後絕大多數都帶有卸載方法。卸載是安裝的逆過程,如果知道怎麼卸載,那麼也可以推測出如何安裝。由專門的安裝工具製作的反安裝程序,一般都是根據某一個文件中的信息來卸載的,可以用一個純文本的編輯器打開這 個文件。個別情況下這個文件完全不包含可讀信息,就只好換用其他方法了。具體過程就是先採用方法2,然後理解反安裝過程,最後根據反安裝的信息製作綠色軟件。
綠色軟件比較系統快照
當前面的方法都失敗的時候,可以試一試這個方法。具體思路就是首先在安裝軟件之前,把系統的狀態記錄下來,主要包括註冊表和系統目錄的所有的文件狀態。然後就是安裝軟件。安裝完成後,再一次記錄系統狀態。最後就是比較前後兩個系統狀態的不同 ,而得知安裝程序所做的工作。這個工作一般由專門的軟件完成,如免費工具Regshot,免費工具WinInstall LE(在Windows 2000 Sever 光盤的目錄VALUEADDRDPARTY\MGMT\WINSTLE\中)。在多數時候,僅僅需要對比安裝前後註冊表的不同,這時候還有大量的註冊表工具可以選用。在得出系統差異後,把差異分解為兩個部分:文件部分和註冊表部分。文件部分指的是向系 統目錄拷貝的文件,以及作為COM組件註冊的文件,還有與這些文件相關的註冊表部分。註冊表部分單單指其餘的註冊表的變化。對於文件部分,可以進一步區分出必須要往系統目錄拷貝的文件(這種情況是少數)和可以放在軟件的安裝目錄的文件。對於註冊表部分,區 分出由這個軟件的安裝程序本身所作出的註冊表操作和註冊COM組件時候的註冊表操作,拋棄其他程序(如資源管理器Explorer)的操作。根據所有這些,寫一個拷貝文件,註冊COM組件和導入註冊表的批處理文件,就可以完成綠色軟件的製作了。當註冊表文 件中含有路徑信息的時候,可以手工修改註冊表文件或者把註冊表文件轉化為INF文件從而實現全自動的路徑處理。
綠色軟件註冊表綠化
這個方法是上面的方法5的簡化版,現在軟件的配置大多寫在註冊表中的“HKEY_LOCLAL_MACHINE\SOFTWARE\軟件公司名字”和“HKEY_CURRENT_USER\SOFTWARE\軟件 公司名字”這2個鍵下面,直接對把這2個註冊表鍵導出到REG文件中。自注冊的COM組件都需要導出如下4個函數:DllCanUnloadNow,DllGetClassObject,DllRegisterServer, DllUnregisterServer,可以用vc自帶的depend.exe找出哪一個動態鏈接庫是自注冊的COM組件。最後寫一個批處理文件用regsvr32.exe註冊COM組件和用regedit.exe導入註冊表。
通過上面分析安裝程序的動作,把安裝程序的工作分解為複製文件,註冊COM組件,安裝服務驅動,註冊表配置等幾個部分,雖然註冊表配置可以覆蓋註冊COM組件,安裝服務驅動等操作步驟,但是把這些明顯分割出來有助於製作綠色安裝的軟件。對於需要更復雜的步 驟來安裝的軟件,還是使用原來的安裝程序比較保險。
[4]
- 參考資料
-
- 1. 軟件版本的劃分原則以及版本的特點 .新浪網[引用日期2013-09-16]
- 2. 軟件知識:什麼是綠色軟件?有哪些特點? .天極網[引用日期2013-09-16]
- 3. 綠色軟件的定義和分類 .綠色軟件站[引用日期2013-09-16]
- 4. 自己動手做綠色軟件 .天極網[引用日期2013-09-16]