现在单文件很火,各大论坛的软件区都有单文件不断冒出,有的人极力追捧,有的人嗤之以鼻.我一直想发表一下自己的看法,今天抽空写个文章来陈述下自己的观点,当然,以下观点纯属个人意见,不属于严格的科学定义.
1.绿色软件 先来说说绿色软件,顾名思义,就是绿色食品一样的含义,环保型的软件.软件业本身没有这样的定义,软件只有架构的区别,即B/S架构和C/S架构等区别.至于绿色软件之类的称呼,我们一般把范围划定在C/S架构内,即具有PE结构的软件,可直接在操作系统运行. 早期的绿色软件是针对安装版的软件而称呼的,只要不需要安装的软件都称为绿色软件,这类软件一般结构比较简单,动态链接库文件一般就处于软件目录下,不需要向system32写入任何的DLL或者OCX,注册表也不会有任何的改变.由于绿色软件的特性,除了本身的目录下文件没有其他的文件,所以即使格式化系统盘重新安装系统后软件依旧可以运行,造成极大的便利性,所以绿色软件的流行是必然的.最简单的绿色软件判断方法就是安装一个软件后,下次重装系统后没有再次安装而已就可以使用,所以早期的绿色的软件大多都是直接把软件目录打个RAR包就发到网上.但是这类的软件异常稀少,而且大多是非商业软件,用途不广泛.时间一长,绿色软件肯定会被改造完.处于商业利益,某些网站开始雇人专业”绿化”软件,网络开始大批量冒出绿色软件站,站点有专人分析某些安装软件,监视系统文件夹和注册表,很容易就可以把某些结构简单的安装版软件改造成绿色软件,但是此时的绿色软件已经不同于早期的绿色软件了.由于这些绿色软件比较牵强,会向系统盘写入文件并会改动注册表,如果没有上述的改动,软件定然是运行不起来的.所以现在大家看到的软件大都有个”!)绿化”的批处理,批处理的内容无非就是复制一些DLL到系统盘然后导入某些REG文件进行软件注册.其实这个过程和安装版没有任何的区别,安装版软件仅仅是把这一些过程以安装脚本的形式进行的注册,当然安装版有自己的卸载方式,为了在系统的控制面板里出现软件的名字便于卸载,安装版软件会写入一些和软件本身无关的注册表区段,我们称为卸载区段,这是为了系统统一的软件管理而建立的,是微软的一个精巧设计,不是什么不干净的不好的事情,虽然绿色软件没有向注册表区段的写入,但是其它方式和安装版没有区别. 那为什么很多人都极其憎恶安装版软件呢?那是因为早年的流氓软件的影响,我之前已经写过一篇文章分析,这里不再赘述.绿色软件由于使用批处理进行软件的注册安装,开放性使得所有的人都放心,所以一直流行到现在.
2.单文件 单文件是只有一个EXE文件的软件.根据软件模块化的设计思想,软件不同的功能会有不同的程序员开发,然后经过软件架构师的统一设计进行代码的整合,软件不同的功能代码分布在许许多多的DLL文件中,而这些DLL文件最终会进行整合来实现整体的功能,这个整合平台就是一个EXE文件,即主程序文件.DLL是不可运行的,因为DLL仅仅包括了软件的功能代码,在程序上没有写入口函数,EXE是连接DLL的桥梁,他具有完整的入口函数和垃圾回收机制,所以千万别以为EXE才是文件,DLL是无用的(我们这里不讨论程序开发的库文件的编译和链接.).那我们还没说到单文件呢? 由于某些非企业级应用程序比较简单,软件设计起来不复杂,而且功能也不是特别多,并且关联度又很大,此时软件的设计就是以一个EXE为主,所有的代码都写在一个EXE文件内.这类软件就是单文件,所以单文件一般都很小,功能不大,仅仅是一些个人制作的小软件.但是仅仅一个EXE文件的话我们拿什么进行软件的配置保存呢?保存配置有很多方法,数据库?小软件肯定用不到.XML?现在有些软件开始使用了.INI?这是我们见到的最多的配置文件保存形式,因为几乎所有的VB开发范例上都用INI做配置文件.还有就是注册表了,注册表的真正功用就是保存系统和软件的配置.所以大家请不要盲目抵制会写注册表的软件,注册表仅仅和INI的作用一样,进行配置并存,本身不会对系统造成什么性能损失.并且用注册表的方式保存比INI做配置保存有其优越的地方,性能较好.容易和其他软件共享.当然有些软件没有什么配置就不需要写注册表了.
3.便携软件 便携软件是基于单文件和绿色软件之间的一个没有明显界限的软件类别,这是一种非官方的称呼,由一些软件爱好者自发的形成的称呼,顾名思义就是软件具有便携性.单文件应该是属于便携软件的范畴,但是如果单文件有写注册表,我们会想一些办法在软件运行完毕来删除这些注册表痕迹.为什么我们需要这么做?因为便携软件很多时候是用在多台计算机上,比如给别人装机时用的一些优化工具,由于使用非常频繁,又不希望给别人的机器留下什么痕迹,好比去别人家里做客留下一个脚印总是不太好,虽然脚印不会影响别人吃饭睡觉,但别人总会感觉不爽,所以我们需要做清理工作,让软件来无影去无踪.这就是绿色软件的暂时定义.有了这个宗旨,除了单文件外,最容易制作的就是绿色软件了,因为绿色软件已经经过软件绿化者的分析,所有软件需要调用的动态链接库和写入的注册表都有已经明确,我们需要做的就是利用一些代码在软件开始的时候模仿绿色软件或者安装软件的做法进行DLL注册和注册表的导入,然后运行主程序,在主程序运行完毕后进行相关文件的DLL反注册和注册表删除工作,理论上可以做到无任何痕迹.由于便携软件从外表上看上去和单文件没有区别,所有很多人把便携软件成为单文件,如果不深究原理的话可以这样说. 目前用的比较多的便携软件制作软件有MoleBox,Thinstall,APP,NSIS,InnoSetup,WinRAR等.每种软件的性能和方式都不尽相同,有些可以处理的很好,有些处理的有些欠妥,导致会遗留少数痕迹,这也是有些网友说单文件不好的原因,这是制作上的问题,但并不是理论上不好.
以上仅以我的拙见发表一些个人看法,有任何补充和不同意见的可以一起讨论.
« 上一篇:Windows 优化大师 v7.83 Build 8.721[仿单文件] Driver Genius Pro 2008[仿单文件]:下一篇 »