开发者社区> 技术小甜> 正文

Windows是否已经变成了一个怪物?

简介:
+关注继续查看
一、 引言 
    07年年初,Windows Vista,微软这一历经5年多的开发以及无尽的测试反馈的新一代视窗操作系统终于发布其正式版。Windows Vista是否还会犹如10年前的Windows 98一样(在其之上捆绑了它的Web浏览器和互联网协议栈,以抵制当年风头正兴的Netscape)风声鹤唳? Windows Vista是否又使微软重新站立在视窗剧变的十字路口?本文中,我从一名普通Windows开发者的角度,同读者共同探讨Windows Vista的上市对业界开发人员的重要影响,并对Windows Vista的未来作简单展望。 

二、 微软发布Vista系统,技术人员认可程度如何? 
    pc World对1000位Vista用户进行的在线调查中,超过一半的被调查用户至少有一个程序无法在Vista下运行,1/3多一点的被调查用户在Vista下至少遇到过一个硬件问题,具体请参考下表。 
硬件 软件 
显卡(38%) 防病毒(37%) 
声卡(28%) 防火墙(17%) 
摄像头(17%) 媒体播放器(17%) 
Wi-Fi适配器(15%) 系统应用(15%) 
读卡器(10%) 浏览器(13%) 

下面,让我们具体看一下Vista发布后在各方面对技术人员的影响。 

Vista具有“四高”的弱点 
    Vista对于大多数用户的初步印象是“豪华”、“复杂”,安全漏洞仍不时爆出。而且,很多用户反映Vista系统存在“四高”的明显弱点—①对硬件高配 置的依赖;②高电耗;③高价格;④兼容性要求高。尤其是,Windows Vista系统不但与很多IHV、ISV的软、硬件不兼容,而且与自己前期的Windows产品也不完全兼容,这在广大用户中引起很大的抱怨声。 
据 最近报导,美国很多政府部门都发出通告,暂时禁止升级或使用微软的Windows Vista、Office 2007、IE7,原因是这些部门担心,如果升级到Vista后,原来使用的很多专业软件可能会无法正常工作(不兼容)。这样的信息是否也会同样引起国人 的焦虑?如果一些企业不对关键性应用程序进行Vista兼容性测试而盲目升级,必将会铸成大错! 

兼容性问题 
     在Vista的开发策略方面,微软显然从Apple公司的桌面系统方面借鉴了大量的经验和教训。由大量公司开发的千计的软件和硬件设施必须与 Winodws接口,更别说由微软用户编写的其它软件了。因此解决的方法可能是在机器上处理掉那些旧的程序,这是微软在之前建议在Vista上做的事。所 有那些旧的软件都对那些运行它的公司提出了安全风险,但是如果微软也试图像Apple一样与过去完全脱离,这将会让用户重新考虑购买Windows的原 因。但是,微软的Cherry说:“微软更多地关注于向后兼容性,可能会对整个平台的发展构成威胁。” 

     硬件兼容问题反映最为强烈的是显卡问题。这方面一个最好的例子是,Vista上市给显卡巨头Nvidia公司带来了压力,因为不满显卡驱动程序无法流畅支 持Vista,消费者居然联合起来开通了一个“Nvidia集体诉讼”网站(NvidiaClassAction.org),给这家公司施加压力,要求 Nvidia公司向消费者做出道歉,并承诺及时推出能够稳定支持Vista的驱动程序。

  总的来看,微软以前版本的Windows总以向前兼容为本钱,构建整个行业平台;但是,现在向前兼容的代价,已经使Windows处于危险关头。而我们从 最终Vista的正式发布版来看,微软最终还是决定采取了“折中”的方案,结果仍然导致大量用户对于软硬件兼容性方面的抱怨,即使如此也使微软抛弃了大量 的“向前”的技术。

UAC的烦恼 
  UAC,即“用户帐户控制”,是微软为提高系统安全而在Windows Vista中引入的新的安全技术,它要求所有用户在标准账号模式下运行程序和任务,阻止未认证的程序安装,并阻止标准用户进行不当的系统设置改变。

  在以前的XP环境中,用户安装软件和改变系统设置非常方便,但是在Vista的缺省设置下,用户必须要核实确认每一个系统设置改变,这让自行安装的流氓恶 意软件非常苦难—它必须先获取特权;同时,也给用户增加了很多额外的麻烦。据报导,很多用户都不得不关闭UAC,但也明显地为之带来了安全隐患。

  颇具讽刺意味的是,Vista加强了其自身的安全性能,却也让一些合法软件无法正常工作,特别是那些安全软件,超过半数的被调查者反映遇到过在Vista下应用软件不能正常工作的情况,其中以病毒扫描、防火墙和媒体播放器出现问题最多。

  评注:尽管频繁出现的“Cancel or Allow”对话框会惹恼习惯于“一键式”操作的用户,但必须一分为二地看待问题:试想你正在进行一项紧迫的工作甚至是开发任务,此时你是否还讨厌瑞星防 火墙频繁的安全提示?而至于那些连杀毒软件都以懒得安装的用户,简直就是昂首阔步于陷阱之上。因此,我的观点是,只要保证安全,保守一点完全必要。

Vista对于游戏开发商的影响 
  美国游戏软件开发商WildTangent表示,目前市面上90%的游戏将不能在微软新推出的操作系统Vista上运行。 
WildTangent 首席执行官亚历克斯•圣约翰表示,Vista不能兼容市面上绝大多数游戏,他谴责微软这一漠视消费者和开发商的行为。圣约翰称,Vista安全保护功能的 重新设计扼杀了众多开发商和他们的游戏。微软过分追求安全性,甚至于顾不得考虑用户上的方便性。 

  圣约翰表示,Vista的安全保护功能需要一套新的安装程序,不过即便过了这一关,Vista的数字版权保护技术也肯定会削弱现有的休闲游戏。他说,在线游戏是互联网上的第三大应用,微软在兼容性上原本应该考虑到这一点。 

Vista对于共享软件、安全软件等的影响 
    “Vista功能是如此强大,如此一来,共享软件基本没有生存的空间了。”国内一家软件公司老总说。包括AV编辑、图像管理、安全杀毒、备份还原、家长控制、PIM、邮件收发、网络搜索等众多功能都无缝集成到了Vista当中。 
Adobe 认为,微软在Vista中免费集成XPS,将直接威胁他们的PDF产品。在此之前,以诺顿系列软件著称的Symantec公司,由于微软的Live OneCare和Complete PC Backup分别实现了杀毒和镜像备份功能,Symantec旗下的诺顿杀毒软件和Ghost备份软件面临着市场严重萎缩的危险。

     有人认为,微软以安全为理由,只用一种方法保护我们全体并拒绝开放Vista的底层接口,严重破坏了公平竞争原则。万一失败,全世界97%的桌面型电脑的 安全网就破功。“全球各地电脑使用者认清一个事实—最严重的安全威胁之所以存在,是因为微软操作系统本身就潜在漏洞。”“如果他们以为,把安全软件公司锁 在操作系统核心之外,黑客就不会破解Vista核心,这种想法根本不切实际。事实上,黑客已经得逞了。” 

     在当前的Windows XP系统下,第三方安全厂商可以关闭微软的安全中心,以便让用户使用自己的安全中心提供功能。但是,Vista不允许第三方软件开发商禁用Vista的安全中心功能,从而直接导致很多杀毒、防火墙等安全类软件不能正常运行。 
此 前,赛门铁克在Vista的防火墙方面也与微软存在分歧。后来,微软同意在安装第三方防火强后,可以禁用Vista的内置防火墙。Yecies认为由于 Vista关键API的改变,使安全软件必须考虑与Windows的安全中心结合,这样复杂的关系使安全软件推迟推出Vista下的相应版本。

     评析:诚然,没有捆绑也就没有今天的Windows,更没有Vista的未来。但是,正如欧盟反垄断专员Neelie Kroes警告微软的,以垄断性优势打击竞争对手,很可能(事实上也已经)损害计算机诸多领域的竞争,牺牲市场的多元化和创新,从而损害消费者的利益。另 一方面,也许被绑捆者甘愿“被绑”,但是他们(至少其中一大部分)并没有意识到他们所使用的也许并非是最快最先进的技术。
   Vista对于驱动程序开发者的影响 
    随着Windows Vista的推出,全新的WDF(Windows驱动程序基础)驱动程序开发模型将取代WDM,不过WDF中的KMDF(核心模式驱动程序框架)仍然基于WDM。 

  这一改进,也是使得用户对Vista在显卡兼容问题上抱怨最多的原因。例如,由于Vista全新驱动程序开发模型的推出导致Nvidia的显卡产品和驱动程序未能良好支持Vista操作系统。迫于用户的抗议,该公司称开发Vista驱动程序是“当前第一要务”。 
“究其原因,开发Vista驱动要比XP的驱动复杂很多,”nVidia的软件工程副总裁Dwight Diercks介绍说,“Vista需要一个全新的图形驱动模型,它改变了基本的显示方式,它去除了从NT 4.0时代就使用的一些旧的驱动代码。” 

   评析:Vista力推全新的WDF驱动程序开发模型将取代WDM,是其适应新一代软硬件显示技术发展的一个大胆决断,自然也带来了不少问题。此外,要进行 Vista上的驱动程序开发,建议读者参考Windows Vista创新技术讲座《Windows Vista时代的驱动程序开发》(代号为WCI 372)。 

三、 微软平台已经成为一个技术的大杂烩? 
    尽管本人对微软开发技术已染指十几年,但我也不敢对诺大一个微软平台妄加评论。因此,还是通过几个例子来说明问题吧。  史蒂夫•鲍尔默认为,“在每一个版本的Windows当中,微软都在重复着相同的东西,这种愚蠢的做法必须被废止。”在过去的20年里,Windows系 统的大小伴随着每个版本的发布而变得越来越大。伴随着旧代码和功能的积累,它变得越来越臃肿,从而导致障碍(安全漏洞、资源消耗、管理忿怒)多于收益。这 无疑会导致大量开发者在诸多相似或相近的技术之间苦苦挣扎。 
IDC分析师吉伦也表示,“我们不认为Vista会与以前的版本有什么实质性差别。” 

     看起来,微软在其产品的延续性和软件开发的惯性思维决定了,Vista只能在Windows基础锦上添花,而不可能是脱胎换骨的蝶变。

     另一方面,也许微软在从Windows XP向Vista的迁移过程中,所犯下的一个巨大的错误就是想要为Vista操作系统创造一种全新的软件基础构架。Vista几经推迟发布的主要原因正在 于设计时将太多创新技术集成在一起,却忽视了它们对机器的客观要求。 为此,Aaron Ricadela毫不客气地指责Vista,认为它就像是一个重度的瘾君子,过度依赖于对无数特定PC硬件的广泛支持,以达到维系自己的生命和活力,这就 严重阻止了微软开发现代化电脑操作系统的步伐。微软自身的编程错误,在软件质量上的肆意妄为,都把Windows变成了一个“系统安全性的粪堆”。 

     Windows开发负责人James Allchin在给同事的一封电子邮件中写到:“我认为,我们的团队已经不知道何为应变性,何为全局观,何为安全性,什么又是性能……我看到很多的随机功能,以及一些很棒的蓝图,但不知道如何将它们变成很棒的产品。” 
MVP Demonfox的看法:很多当初良好的设计理念和技巧已经为层层的妥协性和兼容性考虑搞得面目全非。它的内核变得如此复杂甚至于浏览器已经变成了内核中 最中枢的部分之一。它的庞大成为臃肿和脆弱而不是强大的代名词。这个操作系统究竟还能否胜任我们在上面进行创新和开拓,我很怀疑。只是个人认为,整个 Windows系统长期积累的复杂性已经让很多有意义有魄力有革命性的创新无法在上面自由发挥。人们经常发现,你要这样做,就会影响到这个,然后会牵连到 那个,最后这里有那么一个潜伏的bug就引爆了。在这样一个不是磐石一块而如迷宫一般的地基上建造出来的只能是脆弱不稳定臭虫满天飞的系统。
四、 微软是否已经失去大规模代码管理和控制能力? 
     Vista开发历时近6载,堪称是微软的一场世纪豪赌。为了一劳永逸地解决过去系统升级遗留的问题,不致让日后的升级维护越来越复杂,微软程序员重写了近 60%的源代码。代码总量多达5000万行,比Windows XP多40%,比Windows 2000多70%。在测试过程中,微软发现了2万多个Bug,直到2006年7月的预定发布时间,Vista仍有5700个Bug没能消除,发布不得不延 期。 
对于Vista目前的尴尬境地,Windows开发负责人James Allchin以及微软现任CEO鲍尔默都一致认为“Windows Vista操作系统的开发已经走入歧途”,而且具有讽刺意味的是,他们都声称“自己也许会买苹果Mac”。众所周知,苹果是微软在PC操作系统竞争方面的 冤家对头,他们的上述言论,是否表明了他们已经对视窗的前景缺乏信心。 

那么,微软究竟在哪些方面“迷失方向”? 
      第一,微软的开发理念是否过于保守?在这一点上,鲍尔默认为,Vista本质上没有根本性的突破,针对的还是个人电脑,虽然它增强了网络功能,但系统与互联网依然是割裂的,并特别强调,这种设计理念已经过时。

    第二,微软在创新技术方面是否故弄玄虚?微软一直是IT的创新旗帜,谁也不会怀疑微软的创新能力。Vista拥有50个相互依赖的组件层次,共有6个版 本,其复杂程度远远超出人们的想象。背负着上面下达的指令,开发团队承受着巨大压力,不断在系统中加入大型客户所需要的功能。创新不堪重负,开发步履维 艰,整个项目一波三折。Vista集成了太多的创新技术,但过于超前,结果导致硬件无力支持、Bug补不胜补、系统的稳定和安全无法保障。

     也许Vista的致命弊病恰恰在于它的过度创新。微软早已意识到未来的PC方向是互联网,所以,为了适应网络需求,不断捆绑各种各样的应用软件,甚至在 IE 7.0中嵌入雅虎助手,使之成为“工具栏标准”。然而,令人遗憾的是,这种创新尽管没有远离互联网的发展方向,却反把Vista变成了一个“系统安全性的 粪堆”。为此,许多人都慨叹,“微软成也创新,困也创新。” 
微软助理副总裁,Redmond研究实验室的负责人Dan Ling说:“显然,公司正处于巨大的转折期中。我们需要考虑缩短开发期并能很好的控制它的进度。”微软的服务器和工具组的高级产品经理Mario Juarez提到他们正在计划“一个公司灵魂的讨论”来确定如何在网络上安置微软技术集。 

发展中的滞后 
    在Vista正式发布前的一次分析师会议上,鲍尔默说,微软在从XP转向Vista时犯了一个相当大的错误,它试图为操作系统开发一个全新的软件结构。 这是他,Gates,Allchin和研究和战略总裁Craig Mundie全都反对的一个决定。鲍尔默说:“我们试着进行过多的创新并且想同时整合它们,这在过去有用,不过现在已经失去效力了。这会使问题变得更复 杂。”两年前,微软重新设置了它的整个Windows开发过程来使得它的操作系统不那么麻烦,但是鲍尔默说,Windows仍然没有我们希望的那么模块 化。 
诚然,一直以来,Windows开发小组承受着来自于大客户的销售压力;但最后,他们还是被迫按着大客户的要求去开发相应的功能,这使得项目使用性差。

    Windows依靠于急转,还有应该支持的PC硬件转化的缺点,让微软与它所希望的能现代化它的操作系统的愿望背道而驰。另一方面,时间的紧迫性和现实的商业利益导致微软自身的工程错误和不时对质量问题上的放任,最终难免使自己陷入安全问题的泥沼。 

    Huckaby说,那些依赖间接地影响了Windows程序性能的问题不仅仅是安全的问题。例如,许多在微软的.Net框架上的软件必须与Windows 动态库进行连接,而不是在托管代码上自主运行,这样必然导致了速度慢的问题。微软曾试图象.Net代码那样重制Windows内核,甚至做出了相关的研究 项目来使得它的CLR成为Windows系统代码的核心;但是,Windows的硬件连接层阻止它转换。Huckaby说:“引发这个问题的是一个重大的 商业决策—而不是技术上的决定。” 

    demonfox的建议是,利用虚拟化提供向前兼容支持,保留底层的内核,重新开发核心的安全组件,重新设计那个奇怪的Windows注册表,而网络时代 使用越来越频繁的数字认证管理和数字版本管理等功能都要重新简化设计。这当然是极其复杂的事情,但关键的是改变态度,办法是人想的,但态度决定一切。
五、 小结 
      在Vista正式发布前不久,久未露面的盖茨也在近日频频发表言论,“Vista的发布是继Windows发布后的最重大举措,一旦成功,其在微软历史上的地位绝对会超过Windows”。 

      当家人亲临宣传自家产品,这在业界已不是什么新鲜事。但是微软历来说一不二的作风不由不使业界对微软这个庞然大物的一举一动作深入长远的探察和准备。历览Windows 95、Windows 98和Windows XP……,莫不是如此。

      对于Windows Vista,我的总体感觉是:桌面技术(特别是Direct X 10,WDDM以及图形技术方面)已经相当过硬,而且成为吸引普通客户的一块巨大招牌;网络安全方便还存在一定的问题,尽管Vista的UAC机制并不招 人喜爱,但Vista的安全性终究是一大进步;系统整体模块化方面仍存在不少问题,导致体积臃肿和运行速度的缓慢;兼容技术(特别是向前兼容方面)处理上 仍相当不令人满意。

      其实,读者可能从前文已经看出,对于Windows Vista的技术兼容方面,在微软内部从最高层领导到基层程序员就存在很大的不一致性。看起来,正式版的Vista确实是为了商业的考虑而加入了太多因为 客户体验而不得不加入的技术,以及为了兼容前代技术而做出的牺牲—Windows前几个版本的上市也莫不是如此。这当然是商业运作所迫切要求的;否则, Windows也不会是使用量最大的操作系统了。 

      为此,Gartner提出建议,希望一些企业等到2008年再升级操作系统,因为到那时很多第三方产品才能成熟,并且可以提供许多Vista中所包含的安全升级方案。这是完全可理解的—Vista赢得一部分客户的同时,也必然暂时失去一部分客户。 

在这个网络计算逐渐取代桌面计算的时代,Windows Vista赢得了许多,也痛失了许多。作为个人,作为一名微软平台的积极追随者(也是一名开源运动的积极响应者),我对Windows Vista的未来仍充满信心。 

















本文转自朱先忠老师51CTO博客,原文链接: http://blog.51cto.com/zhuxianzhong/59894,如需转载请自行联系原作者


版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
阿里云服务器如何登录?阿里云服务器的三种登录方法
购买阿里云ECS云服务器后如何登录?场景不同,大概有三种登录方式:
10002 0
使用SSH远程登录阿里云ECS服务器
远程连接服务器以及配置环境
13974 0
如何设置阿里云服务器安全组?阿里云安全组规则详细解说
阿里云安全组设置详细图文教程(收藏起来) 阿里云服务器安全组设置规则分享,阿里云服务器安全组如何放行端口设置教程。阿里云会要求客户设置安全组,如果不设置,阿里云会指定默认的安全组。那么,这个安全组是什么呢?顾名思义,就是为了服务器安全设置的。安全组其实就是一个虚拟的防火墙,可以让用户从端口、IP的维度来筛选对应服务器的访问者,从而形成一个云上的安全域。
17196 0
阿里云服务器如何登录?阿里云服务器的三种登录方法
购买阿里云ECS云服务器后如何登录?场景不同,阿里云优惠总结大概有三种登录方式: 登录到ECS云服务器控制台 在ECS云服务器控制台用户可以更改密码、更换系.
25230 0
阿里云服务器如何登录?阿里云服务器的三种登录方法
购买阿里云ECS云服务器后如何登录?场景不同,云吞铺子总结大概有三种登录方式: 登录到ECS云服务器控制台 在ECS云服务器控制台用户可以更改密码、更换系统盘、创建快照、配置安全组等操作如何登录ECS云服务器控制台? 1、先登录到阿里云ECS服务器控制台 2、点击顶部的“控制台” 3、通过左侧栏,切换到“云服务器ECS”即可,如下图所示 通过ECS控制台的远程连接来登录到云服务器 阿里云ECS云服务器自带远程连接功能,使用该功能可以登录到云服务器,简单且方便,如下图:点击“远程连接”,第一次连接会自动生成6位数字密码,输入密码即可登录到云服务器上。
33601 0
阿里云服务器ECS登录用户名是什么?系统不同默认账号也不同
阿里云服务器Windows系统默认用户名administrator,Linux镜像服务器用户名root
13948 0
阿里云服务器端口号设置
阿里云服务器初级使用者可能面临的问题之一. 使用tomcat或者其他服务器软件设置端口号后,比如 一些不是默认的, mysql的 3306, mssql的1433,有时候打不开网页, 原因是没有在ecs安全组去设置这个端口号. 解决: 点击ecs下网络和安全下的安全组 在弹出的安全组中,如果没有就新建安全组,然后点击配置规则 最后如上图点击添加...或快速创建.   have fun!  将编程看作是一门艺术,而不单单是个技术。
18989 0
腾讯云服务器 设置ngxin + fastdfs +tomcat 开机自启动
在tomcat中新建一个可以启动的 .sh 脚本文件 /usr/local/tomcat7/bin/ export JAVA_HOME=/usr/local/java/jdk7 export PATH=$JAVA_HOME/bin/:$PATH export CLASSPATH=.
14114 0
+关注
10145
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
JS零基础入门教程(上册)
立即下载
性能优化方法论
立即下载
手把手学习日志服务SLS,云启实验室实战指南
立即下载