[转自cnbeta] 绿色软件的前世与今生
最近因为工作关系,接触了一些绿色软件的知识,现将其整理出来并结合自己的一些认识,敷衍成这篇文字,至于标题,纯属博君一笑尔。
许多人深有感触,重装系统的麻烦之处往往不仅仅在于Windows的安装过程,还有大量实用软件的安装和配置:周而复始的“运行Setup→选择目标路径→选择安装组件”过程,让人不胜其烦,如何删繁就减,让安装从此轻松起来呢?
Windows系统在使用一段时间后体积会逐渐臃肿,运行效率降低,甚至频繁出错。究其原因,是因为安装和使用各种软件时都会产生不少冗余的信息(垃圾文件和注册表垃圾),而Windows本身缺少一个良好的管理机制,导致用户在卸载软件时并不能同时删去这些冗余信息。有没有办法来减少这些冗余信息对系统的危害呢?
如果你是一个粗通计算机知识的人,在遇到上述两个问题时,也许脑海中就会立刻浮现出“绿色软件”这个词汇来。没错,使用绿色软件确实可以在很大程度上解决这两个问题。那么,绿色软件到底是什么?它又有什么好处呢?
·使用绿色软件有何好处 ?
首先让我们来看看使用绿色软件的好处。
(1)省略或简化程序的安装过程
绿色软件可以放置在硬盘的任何目录中,重装系统后,这些软件不用安装或只需要简单的安装就可运行。比如通过复制安装文件夹的方法可以制作QQ、Foxmail的绿色软件,无论如何重装系统,也不管复制到任何目录中,只需要双击里的可执行程序即可运行。即使不是这样的绿色软件,也仅仅只需要执行批处理文件、安装脚本或REG文件即可,大大简单了程序的安装。
(2)省略或简化程序的配置
大量的软件将配置和数据保存在安装文件夹或注册表中,在制作绿色软件的时候,这些都被很好地保存下来。如QQ的聊天记录、好友信息,Foxmail的邮件、帐号等,都会毫发无损地保留下来,而如果是重新安装,这些信息的重新配置都将是一个很大的工作量,对于不懂电脑的人来说,更是麻烦。
(3)可迁移性强
理论上讲,绿色软件可以放置在电脑的任何一个地方,也可以通过移动硬盘携带到其他的电脑中不需安装直接运行,这给我们的工作带来很大的便利(如QQ聊天记录、电子邮件、地址簿、自定义的输入法等)。
看了上面的介绍,你是否对绿色软件的有了个初步的了解呢?接下来,让我们谈谈绿色软件的历史与发展.
·原始的“绿色软件”
在Windows流行之前的MS-DOS时代,程序只要直接拷贝或者解压缩就能够使用,不想要的时候直接删掉就是。相对于后来Windows下的程序必须经过安装才能使用,而且在安装时,可能往Windows文件夹、注册表等种种你想都想不到的地方,塞进越来越多的“私货”的情况,DOS时代那种“简单”的软件存在形式,就是最原始的“绿色软件”。
·绿色软件的最初定义
而我们平时常说的“绿色软件”这个名词,它出现的时间大约是在21世纪的最初几年,正是流氓软件开始兴风作浪及Windows优化大师、超级兔子等系统优化软件盛行的时期。在当时那种背景环境下,饱受流氓软件荼毒的用户把“绿色软件”定义为“不会在用户的计算机上留下难以清除的冗余信息的软件”,原因是一如爱好环保般不弃置污染物,所以冠上“绿色”之名。这是绿色软件最初的定义。
·时下流行的绿色软件概念
之后随着绿色软件的概念逐渐完善,它有了较为严格的标准,包括以下几点:
(1)不对注册表进行任何操作
(2)不对系统敏感区进行操作,一般包括系统分区根目录、系统目录(windows目录)、程序目录(Program Files)、用户帐户专用目录。
(3)不向除自身所在目录外的其它目录进行任何写入操作。
(4)不需要安装和卸载操作,删除程序所在目录即可彻底删除该软件。
绿色软件可分为狭义和广义两种,完全符合以上标准的就是狭义的绿色,也称为纯绿色软件,是指软件对系统几乎没有任何改变,除了软件的安装目录,不往注册表、系统文件夹等任何地方写入任何信息(或只在开始菜单中添加简单的快捷方式),卸载软件只需要直接删除安装目录即可,类似于以前的大多数DOS程序。狭义的绿色软件最为理想,但现在完全符合这种定义的软件已经越来越少了,以著名的Foxmail为例,它虽然符合以上几个标准,但是,如果用户需要将它设置为系统默认邮件收发软件时,它就必然要对系统设置进行修改。
广义的绿色软件则不需要专门的安装程序,对系统的改变比较少,手工就可以完成操作,比如拷贝几个动态库、导入注册表或者可以借助于批处理等脚本即可直接完成,像某些绿色软件目录中存在的“绿化.bat”程序就是安装时的批处理脚本。但很多这种广义的绿色软件,实际上只是将安装和卸载操作做得更透明一些,并不能达到真正意义上的绿色,软件运行时所产生的冗余信息,仍然不在它的管理范围之内。这类软件,通常称之为“伪绿色软件”。
·逐步向便携式软件靠拢的绿色软件
便携软件(Portable Soft、Portable Application)是指可以放在可移动设备并能够运行在任意其他Windows系统下的应用程序。便携软件可直接从可移动设备上启动,同时加载个人自定义配置,就像运行在自己的电脑上一样;在断开设备后,不在电脑上留下任何个人数据。
按照维基百科上关于便携软件的定义,作为一款便携软件,必须满足以下3个条件:
(1)没有任何形式的安装;
(2)个人设置必须紧跟着软件;这就意味着不能使用注册表保存设置;
(3)在运行过的电脑上不留下任何痕迹。
从其定义不难看出,便携软件与绿色软件有较多的共同之处,但它的要求比“绿色软件”更加严格,不仅不会在系统中留下任何垃圾信息,而且配置会实时保存下来,既方便放在U盘中随时以自己的配置启动,也非常方便用户对软件的日常应用管理,比如在重装系统的情况下,可以达到“免安装、免配置”即可使用的目的。
实际上,现在越来越多的绿色软件制作者在制作绿色软件时,已经是按照便携软件的标准来进行制作了,从某一角度来衡量,便携软件也可说是制作精良且符合标准的绿色软件。
·与虚拟化技术结合的绿色软件
VMware公司的服务器和工作站产品(即我们常用的VMWare虚拟机),让虚拟化技术走上了迅速成名的道路,使它成为近几年最热门的技术之一。不过许多用户并不清楚的是,虚拟化技术有很多分支,除了那种重量级的服务器虚拟化技术之外,还有轻量级的桌面虚拟化和应用虚拟化技术。
VMware Thinapp便是一款应用程序虚拟化工具,它可以将应用程序(包括程序文件、注册表项、DLL、第三方库及虚拟环境框架等)独立于操作系统或其他应用程序封装到单一的EXE文件中,许多绿色软件的制作者往往用它来制作单个文件的绿软。
使用VMware Thinapp打造的“绿色软件”并非直接运行在本地操作系统,而是运行在由自身创建出来的一个虚拟环境中,程序运行时需要的资源也都从这个虚拟环境中获取,从而实现与本地操作系统的隔离。因此,它可以做到对系统毫无影响,完全符合绿色软件的要求。但在本质上,它与我们常说的绿色软件是大不相同的。
另外一个采用应用虚拟化技术的典型代表是最近在国内崭露头角的云端软件平台,它的工作原理是将事先分离出来的软件数据(将原软件通过虚拟化处理之后的所得到的文件和注册表项集合)通过云端自身创建出来的虚拟环境与本地系统联接起来,这样既保持了软件的原貌,又能够达到将软件与系统安全隔离的目的。
云端的方式比较巧妙,它在虚拟环境针对每一个软件都创建了一个容器,再将这些容器与系统联接起来,这样每个软件在运行时所产生的垃圾信息,只会存在于该软件的容器中。如果某个软件出现了较多的垃圾信息,用户还有三种方式进行处理:
(1)隐藏。即断开软件所在容器与系统的连接,垃圾信息立刻从系统中消失。
(2)重置。将软件所在容器恢复至初始状态,垃圾信息将被清除。
(3)删除。删除该软件的同时,垃圾信息也一并被删除。
因此,在云端中运行的软件,同样也可以达到绿色(便携)软件的标准,甚至还有诸如“重置”等普通绿色软件所无法做到的特殊功能。这也是我非常喜欢云端的主要原因。
云端的原理与VMware Thinapp的原理有些相似,但在具体的实现方式上不大相同,最主要的区别在于云端有一个客户端通过虚拟环境对软件进行统一管理,而VMware Thinapp则是每个独立的EXE文件都自带虚拟环境。从这一点来看,VMware Thinapp制作出的软件与普通意义上的绿色软件在形式上更接近一些,而云端则更像一个绿色软件的大管家。
本文到这里暂告终结,个人观点难免有偏颇之处,还请大家欢迎指正,更希望此文让各位能对绿色软件有了一个清楚的认识。更多的绿色介绍及制作方法,请查看下面列出的参考资料。
---------------------------------------------------------------------------------
参考资料及网站:
VMware Thinapp
http://www.vmware.com/cn/products/thinapp/
云端软件平台
http://www.yunduan.cn
维基百科——绿色软件
http://zh.wikipedia.org/wiki/绿色软件
精品绿色便携软件——什么是便携软件 (Portable Soft) ?
http://www.zjfm.com/article/chonglangbaodian/info-431.html
绿软在线——软件绿化初级教程
http://bbs.greendown.cn/read.php?tid=35818
绿色软件站——绿色软件的定义、分类、绿化
http://www.onegreen.net/Article/greens/Class22/537.html