淘客熙熙

主题:windows操作系统下,为什么要产生大量垃圾? -- 杜撰

共:💬18 🌺26 新:
全看分页树展 · 主题 跟帖
家园 这个问题要分开来看

首先,你看到的一些在application data或者安装目录下的dat/ini文件,可能是用户在使用软件中的一些设置或者个人习惯。在卸载时不删除这些文件,一般是为了下次安装(例如说升级或者坏了重装)之后,能直接使用这些设置,方便用户。

其次,在system/system32下的dll,一般是供系统使用或者其他程序调用的,也是不可以随便删的。例如说,如果我有个软件A,依赖于一个aa.dll,那么我会在安装我这个软件的时候,检查系统有没有这个版本的aa.dll,如果没有的话,那么复制一个过去。如果也有一个软件B,也同时依赖这个aa.dll。那么如果我在卸载A的时候,删除了这个aa.dll,那么之后软件B就不能够正常运行了。而且,我在卸载软件A的时候,无法预知有没有另外的一个软件B/C/D...也是依赖这个aa.dll的,所以,这么删,是很危险的。

再次,关于注册表的垃圾,来源基本上就是我说的这两种:配置信息,和一些公共控件(ocx或者com之类)的注册信息。卸载时不删除它们的原因大致上也和上面说的差不多。

最后,说一下关于系统垃圾的问题。其实这个问题是很多现代操作系统所很难避免的,原因无非是现在的软件功能越来越多,配置越来越复杂,程序之间的依赖和耦合也越来越多。所以,卸载的时候,一不小心,就容易造成大面积的破坏。当然,这些在专业人士看来,往往就是一个两个小地方没弄好,但是在普通用户看起来,就是非常严重的问题,甚至会影响他们对这个软件的评价。所以,很多软件在设计时抱着安全第一,稳定第一的方针,保守处理,也是无可厚非的。

而且,对于Windows来说,由于系统的封闭性,有些时候,即使发现了这些垃圾,但是因为信息没有完全公开或者其他原因,也不敢随便乱动。例如说注册表里的绝大多数项,我相信即使是专门做Windows应用程序开发的很多程序员,也不敢说自己知道那些项是干什么的,怎么手工修改删除的。而对于Linux/Unix来说,因为系统的开放性,所以,一但发现类似的情况,可以比较方便的判定某些文件或者信息是不是真正的垃圾信息,然后加以删除或者进行其他操作。不过有一点是肯定的:要让应用程序本身自动的完成这个步骤,基本上是不可能的。

全看分页树展 · 主题 跟帖


有趣有益,互惠互利;开阔视野,博采众长。
虚拟的网络,真实的人。天南地北客,相逢皆朋友

Copyright © cchere 西西河