|
楼主 |
发表于 2005-7-19 17:57:04
|
显示全部楼层
Post by hutigers
另外,完全没有必要为了linux而linux,实在没有必要。
linux的好,不在于替代windows。一家独大不利于竞争。任何一家都是。
我的意思也不是为了Linux而Linux。
但是,从我个人的经验来说,我觉得这个问题应该专门讨论。
几年前,我Linux的基本操作刚入门的时候,大多数情况下仍然是telnet到linux服务器去编写一些小程序或者写几个网页什么的,而日常的问题还是在windows下找一堆破解软件来解决──包括编辑器也是这样,破解UE。
当时的PC配置低,模拟vm实在够呛,所以也没法象现在这样用VMware学。
我是程序员,为了进一步学习Linux,我把笔记本完全装上了Linux。当时的笔记本硬盘只有4G,装双系统都不太实用。
就这样,才算是真正开始用Linux作为主要的日常工具和开发平台。
也就是说,对于某些用户来说,他们可能面临这样的问题:
不想继续使用Windows,觉得Linux确实不错。但是某个或某些软件(甚至是某些网站)导致他不能不继续使用Windows。
但是普通用户一般也就一台计算机,让他们频繁切换OS?他们估计更原意停留在windows里面,情愿,或者不情愿,都没有办法。
我作为程序员,生活环境比较单纯,而且不玩游戏,使用的软件比较简单,所以没问题。可多少人没法这么做?他们不能这么做的原因是因为Windows还是因为Windows的软件?
而且,进一步讨论就涉及到另一个问题──软件是否应该绑定在某个特定的平台上?
我的看法是不应该绑定。
最早,没有操作系统的时候,软件根本只能在固定的硬件上跑,和硬件就绑定死了。
后来,操作系统实现了硬件屏蔽,为不同的硬件提供统一的接口,从此,大多数情况下,软件就不在和硬件绑定了。
但是脱离了硬件绑定的软件又和软件系统(当时还说不上是OS)绑定起来,早期的软件都直接调用固定ROM地址中的系统子程序,一旦系统升级,就出现不兼容。
于是出现了系统API,把最底层的操作系统功能通过API的方式展现,一来屏蔽了操作系统升级可能造成的不兼容,二来也简化了软件的开发,Win32 API和POSIX API都属于这个发展阶段。
那么,软件本身应该和硬件甚至OS是没有关系的,只是和某个API层绑定了。
如果一个操作系统实现了软件所需要的API层,就无所谓native不native。软件就是软件,软件就是我需要的功能,拿来用就是了。
比如金山词霸,我花钱买回来,就为了在盗版的windows上面跑?
比如Java写的软件,只要Linux提供API(内核提供还是软件提供都无所谓),就可以认为这个Java软件可以作为Linux软件使用,难道还非要用C/Gtk重写一遍才叫native?
大量的Linux应用软件都处于重写的过程中,bug难以避免,这才给很多人造成Linux不稳定的印象。同时,应用软件匮乏,也给很多人口实,说Linux无非是一个toy。
软件版有个习惯,一般不推荐使用wine来运行所谓的“Windows软件”(注意,我不是使用模拟这个词),认为应该使用native的Linux软件。我曾经也认为这个观点是正确的。
直到仔细阅读wine的文档,深刻理解了为什么WINE=Wine Is Not an Emulator的意义,我的观念才改变过来。
试想,98和NT根本是2套不同的内核,但是他们都支持Win32 API,甚至都支持MFC,那么哪个Windows程序被认为不是native运行?
如果Unix的高端软件买不起,OpenSource的软件处于不稳定、不完善、不友好的发展阶段,如果一个用户想选择Linux作为系统平台,难道只能在这二者选一吗?难道这么多Windows shareware/freeware甚至商用软件都不能用吗?宁要社会主义的草,不要资本主义的苗?
Wine是个伟大的项目,Wine的创始人的思想也很伟大。Open Source的支持者不应该只是source open,mind也应该open。
Java创新了一个API层(Java的bytecode对于OS来说,本质上也是一种API层),改变了世界。
Wine再现一个事实标准的API层,给上万个应用软件获得新生,也将改变世界。
当然,Wine任重道远,现在确实很不完善。所以在Wine不完善的阶段,用vm方式作为补充,也是一个不错的方法。
现在这方面的支持太少了,Linuxsir如果开版,有侧重的对Wine及win32软件进行支持,功德无量。 |
|