Saturday, September 13, 2008

★网管员经验技巧篇

问:如何把 man 或 info 的信息保存为文本文件?
  答:$man tcsh col -b > tcsh.txt
  $info tcsh -o tcsh.txt -s
  问:如何使用.iso文件?
  答:许多Linux发行版本都有.iso的光盘镜像文件,可以用来刻录光盘,也可以在Linux系统下直接使用。
  问:如何强行退出 X-Windows?
  答:有时候在 X-Windows 里由于程序出错,鼠标键盘都不起作用,这时候不用着急,您只须同时按下Ctrl+Alt+BackSpace键就可以回到字符界面了。  
  问:如何压缩可执行文件?
  答:可以使用gzexe压缩可执行文件,压缩后的可执行文件仍然可以直接执行,使用本方法可以达到节省磁盘空间的目的。
  #gzexe gawk
  问:如何处理文件名内含有特殊字符的文件?
  答:如果有一个文件名叫 -file 并想删除它,键入 rm -file,将会显示 invalid option ,原来由于文件名的第一个字符为- , Linux 把文件名当做选项了,可以加 -- 解决这个问题, 如 rm -- -file 。如果是其他特殊字符的话可以在特殊字符前加一个 ,或者用双引号把整个文件名括起来。
  问:"/dev/tty0"不见了怎么找回来?
  答:在 /dev 目录内执行 ./MAKEDEV console 就可以了。
  问:/dev下的cua*被删除,该如何恢复?
  答:如果没有建立任何一个设备,必须自己用mknod命令去建立。例如,假定需要建立 ttyS0 设备则应输入∶
  linux# mknod -m 666 /dev/cua0 c 5 64
  linux# mknod -m 666 /dev/ttyS0 c 4 64
  也可以使用 MAKEDEV这个命令,在 /dev下应该会有。这样简化了设备的建立。例如,如果需要建立 ttyS0 设备时则应输入∶
  linux# cd /dev
  linux# ./MAKEDEV ttyS0
  这将会处理关于接入以及接出设备的建立,并设定正确的权限而恢复已删除的文件。
  问:安装Shadow Suite后,则无办法登录(login)系统,我忽略了什么步骤吗?
  答:若您已经安装 Shadow 程序,但是不能登录,可能您忘记复制 /etc/npasswd 到 /etc/passwd,复制 /etc/nshadow 到 /etc/shadow,您还需要复制 login.defs 到 /etc。
  问:我安装 Shadow Suite,但是当我使用 userdel 命令后,我得到 "userdel: cannot open shadow group file" 信息,我错在哪里?
  答:您编译 Shadow Suite 时使用了 SHADOWGRP 选项,但是您没有/etc/gshadow 文件,您需要编辑 config.h 文件并重新编译它或建立一个 /etc/group文件。
  问:Linux中如何检测CPU型号?
  答:键入cat /proc/cpuinfo命令即可获知系统配备了几个CPU、CPU的型号、制造商、运行频率、cache大小、有无fpu等信息。
  问:如何让鼠标的按键符合左手使用的方向?
  答:其实,在x-windows中,我们可以通过对鼠标的设定来达到鼠标按键方向对调的效果。您可以在.xinitrc中加上下面一行命令内容就可调整鼠标按键方向:
  xmodmap -e "pointer = 3 2 1"
  问:如何使系统在一段时间不运行程序后能自动退出?
  答:当系统管理员root账户拥有者在离开计算机时,出于安全考虑,最好让系统在隔一段时间后能自动退出。为了能做到这一点,您必须为一个叫做 “TMOUT”的Linux变量设置指定时间,时间单位是秒。编辑“/etc/profile”文件,在有“HISTFILESIZE=”字样的那一行的后面加上下面一行内容:
  TMOUT=3600
  加入这一行表示是1小时(60×60=3600秒)。当您把这行内容放入您的“/etc/profile”文件后,在系统在连续一小时不运行程序时,系统会自动通知系统中的所有用户系统将退出。您也可以把该变量设置放在用户各自的“.bashrc”文件中,使得系统能在指定的一段时间不运行程序后能自动退出。
  设置后,必须先退出系统,然后再以root帐户重新登录,该项设置才会生效。
  问:我想让Apache为大量的连接提供服务。为了减小创建进程所需要的时间,我把Apache子进程数量配置为固定值1000。系统的性能很差,有时甚至拒绝连接。有什么好办法吗?
  答:看来您很可能遇到了一个通常称为“thundering herd”(异乎寻常地聚集)的问题。Apache和Linux的文档都详细地说明了这个问题,您可以用几种方法来解决它。
  在Linux中,这种情形通常从进程“wake”(唤醒)发展而来。当一个新到达的连接要求Apache/Linux提供服务时,系统向所有正在休眠的进程发出通知。这时,所有这些进程会试图获得对新连接的控制权。但是,它们之中只有一个能够获得成功,所有其他进程都将失败并转入休眠状态。这被称为 “wake all”(全部唤醒)。Linux 2.2和更早的内核都按照这种方式进行处理。
  当正在休眠的Apache进程比较少时,将不会成为问题。通常,Apache会利用httpd.conf中的MinSpareServers和 MaxSpareServers配置变量调整休眠进程的数量。然而,如果MaxSpareServer值高得异乎寻常,那么它可能导致性能问题。我通常把 MaxSpareServer值设置为MaxClients值的百分之五到十之间。
  如果您的MaxSpareServers值高得异乎寻常,只要减小这个值就可以立即提高性能。
  一些内核不会遇到这个问题,因为它们具有一种利用“wake one”(唤醒一个)的能力,“wake one”允许为每个连接请求唤醒一个进程。BSD具有这个能力,Linux 2.4内核也一样。
  为了利用“wake one”能力,编译Apache的时候必须指定一个特殊的选项。如果为2.4内核配置Apache,在编译之前请按照下面的示例执行命令,它将改善具有“wake one”能力的内核性能:
  # CFLAGS='-DSINGLE_LISTEN_UNSERIALIZED_ACCEPT' ./configure
  为给数量巨大的网络连接提供服务,Apache提供了许多调整参数。Apache有一个固定的最大允许连接数量限制,如果要把它设置成大于256,您必须重新编译Apache。
  另外,为了适应大规模服务的要求,Linux也需要进行一些文件系统方面的调整。您还要检查一下Linux通过编译方式固定的进程、系统级、用户级限制等等。
  问:我有一台便携计算机,想要保证便携机和台式机上都有最新的数据文件,怎么办?
  答:有一个优秀的工具rsync能够完成这个任务。rsync提供了一种保持两组文件同步的方法。它以Andrew Tridgell(SAMBA项目的创始人)设计的算法为基础。Andrew Tridgell的算法允许只传输对文件的改动。
  rsync一般被看成是一个标准的系统工具,因此您的系统上很可能已经安装了rsync。如果它还没有安装,那么您的Linux安装盘上应该有它的包文件,或者您也可以上网下载最新的源代码。在命令行直接输入rsync将提示用法说明,您可以用这种方法测试rsync是否已经安装。
  要保持文件同步,所有机器(在本例中,这是指您的便携计算机和台式机)都必须安装rsync。另外,这两台机器应该能够通过网络互相看到对方。
  我强烈建议用ssh作为两台机器之间的通信机制。但还有其他几种配置rsync传输器的方法,包括rsh和rsync daemon模式,rsync文档对此有详细说明。请参见本文有关ssh的说明了解更多信息。
  rsync命令的语法和cp命令很相似。从本质上看,您是在把文件从一个位置复制到另一个位置,但rsync多了几个cp命令没有的选项。和通常的文件复制相比,文件同步最大的不同之处是您必须指定一台非本地的机器(比如您的台式机)。
  您应该仔细考虑哪些文件要在机器之间保持同步。最好把这些文件放到便携计算机的某个专用目录,避免同步那些不需要同步的文件。例如,您的主目录下可能有数百兆浏览器缓冲数据。通常情况下,您不会想同步这些数据文件。
  问:我想保证几台机器的系统时钟同步,有什么简便方法吗?
  答:ntpdate程序正是为这个目的而设计的,而且它很简单易用。它使用一种协议查询一个或多个时间服务器,然后为您的机器设置正确的系统时间。
  首先您应该确定使用哪一个时间服务器。虽然您可以设置自己的某一台机器作为时间服务器,然后用这台机器同步其他机器的时钟,但我不推荐这么做。这种做法要求您自己完成额外的管理工作,而且您必须保证时间服务器的时钟精确。
  ntpdate命令的语法很简单,但必须用root身份运行它。您可以在命令行中指定一个或者多个时间服务器。
  为了保证时钟精确,我们可以把ntpdate命令放入crontab。但是,对于那些不是一直开启的机器(比如便携机),这个命令放入启动脚本或手工运行更合适。
  必须指出的是,ntpdate设置的是系统时钟,但它不设置硬件时钟(电池供电的时钟)。要让硬件时钟反应系统时钟的值,请使用如下命令:
  # hwclock -systohc
  如果ntpdate还没有安装到系统上,则可以使用Linux安装盘安装。有关ntpdate命令的更多说明,请参见这个命令的man文档。
  问:怎样才能改变目录中文件的默认显示方式?
  答:ls命令能够以各种方式显示文件清单。经常使用的选项包括:-a,表示不隐藏“.”文件;-l,表示详细清单格式,包括文件属性和大小;-color,根据文件的属性用不同的颜色显示文件/目录。执行man ls命令可以得到ls命令选项的完整说明。
  设置ls默认属性最简单的方法之一是建立一个shell别名。这里以bash为例进行说明。请把下面这行命令加入主目录的.bashrc文件:
  alias ls = ls -a -color
  另外,您也可以在当前shell中直接输入这个命令,使得别名立即生效(直到您关闭shell)。
  .bashrc文件中的命令在您每次启动一个交互式shell的时候自动执行,确保了别名的自动设置。
  问:我想在Linux操作系统上访问Windows或DOS的FAT文件,最好的办法是什么?
  答:如果说Linux有独特长处,就是共享。有许多方法能够实现不同文件系统之间的文件共享。有些人建议创建一个独立的FAT分区实现操作系统之间的共享,然而,一种更好的方法是允许每一个操作系统装入其他操作系统的文件系统。
  Linux一直能够很方便地读写Windows/DOS FAT文件系统。最近出现了许多读/写ext2文件系统的Windows工具,但总地看来,对于共享文件系统来说,这些工具远远不如Linux中现有的工具那样值得信赖。
  要在Linux下装入FAT文件系统,Linux内核必须提供适当的支持。大多数默认安装的内核已经包含这方面的支持,但是,如果您选择了自己编译 Linux内核,请确保选中了FAT和VFAT文件系统支持。如果您不想把它编译到内核里,FAT和VFAT支持也可以作为动态装入模块运行。
  无论是哪种情况,您必须先在Linux下创建一个装入点(Mount Point)才能共享文件系统。它可以是您所选择的文件系统内的任何目录,但最好使用一个具有明确含义的名字(如本例的/mnt/msdos)。
  # mkdir /mnt/msdos
  接下来,您应该在/etc/fstab中为FAT文件系统加入一行。如果您的内核支持VFAT,您将能够查看和编辑新版Windows所使用的长文件名。
  试着把下面这行内容加入/etc/fstab(注意在这个例子中,我们使用了硬盘的第三个分区/hda2,您应该根据自己系统的具体情况替换这个分区):
  /dev/hda2/mnt/msdosvfat defaults 0 1
  如果不想让这个文件系统在启动的时候自动装入,您可以在defaults选项之后加入一个“,noauto”。现在,您应该能够以root身份装入Windows分区了。
  # mount /mnt/msdos
  如果您看到错误信息提示文件系统存在问题,那么,很可能您指定了一个错误的文件系统。这时,您应该检查分区并重新试验。
  如果您看到错误信息提示内核对vfat文件系统的支持存在问题,请试着把/etc/fstab入口从vfat改成msdos。如果有效,那么您的内核不支持Windows长文件名。如果无效,那么您的内核没有为DOS或Windows提供合适的文件系统支持。
  假设一切都能够按照设想地那样完成它们的任务,那么,现在您应该能够从Linux下的/mnt/msdos装入点(或者您所创建的其他装入点)访问 Windows数据。如果您按照上面介绍的方式进行设置,只有root才能写入这些文件。记住,FAT系统不提供对用户权限的支持。
  问:我有一个Perl脚本,但是它不能正确执行,或执行时出现bash提示:./script.pl: No such file or Directory。而实际上这个文件是存在的,并可执行,这是为什么呢?
  答:可执行脚本通过脚本的第一行命令告诉shell应该用哪一个程序来执行当前脚本。这个命令总是在第一行,而且它类似于:
  #!/usr/bin/perl
  如果第一行命令指定的程序确实存在,则系统利用该程序解释执行脚本的剩余部分。如果这个程序不存在,您就会看到“No such file or directory”信息。这种脚本执行方式可用于大多数shell脚本,Perl也不例外。
  用“#!/bin/sh”或“#!/bin/bash”作为脚本第一行的情况并不少见。一般地,修正该问题的方法也很简单。Perl可能不在用户的系统目录下。执行which perl,您就可以找到Perl所在的位置。然后,修改脚本的第一行使之符合Perl所在的实际位置,这样您就可以修正这个问题了。
  问:我安装了一个程序。但是执行它的时候,系统显示“error in loading shared libraries...no such file or directory”。经检查程序已安装在机器里,为何产生此错误?
  答:有的程序要用一些称为“动态库”的文件保存部分代码,此部分代码可以供其他程序使用。当程序执行时,操作系统会在某些预定义的地方寻找这些代码库。如果不能找到,操作系统则会显示上述错误。
  如果显示此信息,那么下面两个原因必居其一:或者不存在显示程序所要求的动态库;或者虽然存在但Linux由于某种原因不能找到它。如果不存在那么您应该安装它。
  解决问题的一种方法是确保文件安装到了标准的库目录下,包括/lib和/usr/lib。然而,简单地把文件移入这些目录的方法将干扰包管理软件的工作,因此必须避免。把文件安装到标准目录应该通过包管理软件或在配置/安装时进行。
  如果您要让库文件留在原来的位置,那么,您首先必须找到这些文件,然后把目录加入到搜索路径之中。
  例如,假设要寻找错误信息中出现的文件。首先以超级用户身份执行命令“# find / -name filename.so”。找到目录之后,编辑/etc/ld.so.conf文件,且把该目录加入到文件末尾。再运行ldconfig命令,它将在连接器运行时重新构造连接和缓冲。这就是全部的工作!现在您的程序应该能够找到它运行所需要的库文件了。
  问:我的硬盘空间不足,现在想找到系统中最大的目录/文件,并删除它。请问有没有完成这个任务的工具?
  答:有两个简单的命令能够帮助您轻松地完成这个任务。这两个命令就是du和sort。
  du命令用来计算文件或目录的大小。这个命令有许多选项,下面的说明帮助您掌握这两个命令的基本用法。您最好以超级用户身份执行这两个命令,否则可能看到大量“Permission denied”信息,因为很可能您没有访问这些目录的权限。
  找出所有根级目录及其子目录的大小:
  # cd /
  # du -max-depth=1
  修改max-depth参数,对下一层的目录进行统计:
  # du -max-depth=2
  如果不指定max-depth参数,du将统计出目录树中所有目录和文件的大小。结合sort命令运用的命令,将可以显示命令输出的结果。
  查看硬盘上所有目录和文件的大小,按照大小排序(这可能需要不少时间):
  # du sort -nr less
  注意随意地删除文件可能非常危险,特别是那些操作系统必须含有的文件。如果要寻找那些拥有大型主目录的用户,这种技术也许是最合适的。如果您找到了看来不再需要的程序文件,最好的删除方法应该是:找出安装这个文件的包,然后用rpm(基于rpm的系统)或者dpkg(基于deb的系统)把整个包都删除干净。
  问:为了进行备份,我希望复制并保存所有收到的e-mail。我应该怎么做?
  答:这可以通过procmail程序轻松地完成。这里不再介绍procmail的安装和配置,因为现在的大多数包管理系统(RPM,DEB)能够很好地做到这一点。如果您已经有了一个Linux系统的帐号(或者系统属于您自己所有),则可能procmail已经安装和设置完毕。如果没有,您可以联系系统管理员,或者自己用包管理器安装。
  要快速确定系统中是否已经安装了procmail,请执行如下命令:
  # which procmail
  如果procmail已经成功安装,which将显示出procmail的位置(可能是/usr/bin/procmail)。在您的主目录下创建一个.procmailrc文件,且权限0700:
  # touch ~/.procmailrc
  # chmod 0700 ~/.procmailrc
  procmail“recipes”的选项有很多。procmailrc的man文件描述了其中一部分。然而,作为一个简单的起步,请在.procmailrc文件内试一下下面的内容,注意根据具体情况进行适当的替换:
  LOGFILE=$HOME/.procmail-log
  :0 c:
  /home/dtype/Mail/backup
  :0 c:
  *
  /home/dtype/Mail/sent-mail
  :0
  * ^Sender: owner-linux-kernel
  /home/dtype/Mail/linux-kernel
  LOGFILE指定了一个文件,这个文件将记录procmail所有的活动。如果出现任何问题,它是您首先应该检查的文件。
  这个.procmailrc文件有三项不同的内容。第一项指定了保存所有备份邮件的文件(在本例中,它是 /home/dtype/Mail/backup)。“c:”告诉procmail保存邮件并继续进行正常的邮件处理,包括配置文件的剩余部分。如果不指定“c:”,所有邮件被保存到备份文件,但是不再保存到其他文件。
  为了进行跟踪,想要保存外发的email,.procmailrc文件中包含了一项为发送e-mail设置的内容。
  最后一项内容是一个利用procmail保存特定邮件列表所传入email的例子,本例中的邮件列表是linux-kernel邮件列表。 procmail将在邮件的Sender:头中检查“owner-linux-kernel”文字。注意这里不再包含“c:”这是因为我们希望邮件发送到指定的邮箱,不再同时发送到Inbox中。

★揭露谷歌Chrome浏览器

“现在很多人都在谈Google的Chrome浏览器如何与微软IE8和Firefox竞争.我不太认同这些看法.从长远来看,Chrome绝不仅仅是一 款浏览器,而是一个打着'浏览器'旗号的'网络开发平台'.其真正的目的是要打破基于WindowsAPI的微软'经济系统'的生态平衡,从而实现颠覆微软的长期目标.”9月10日,周鸿祎语出惊人地表示,Google刚发布的Chrome浏览器背后很可能隐藏着一个巨大的“阳谋”.


“虽然此次Google新推的Chrome浏览器特别突出了安全性,越来越多的网民也开始关注上网的安全性,但其实大多数网民并不知道自己用的浏览器是否足够安全.”周鸿祎谈到:“随着'沙箱'、'恶意网址自动屏蔽'、'网页恶意代码智能拦截'等更多网络安全技术在浏览器中的应用,安全性将成为新一轮浏览器大战中一项关键指标.”

浏览器大战烽烟四起 新旧势力齐打安全牌

周鸿祎说这番话的背景,是过去两周来微软、Google两大国际巨头在浏览器上格外令人瞩目的举动.

8月27日,微软浏览器Internet Explorer8.0(IE8)测试版Ⅱ正式亮相微软官网.IE8在用户上网隐私保护和安全性方面具有较大突破,不仅通过提供“隐私浏览”(InPrivate)模式来确保用户上网后电脑上不留下浏览记录、临时网络文件和Cookis等隐私信息,还允许用户拦截试图跟踪记录用户网络行为的第三方软件.微软高管借机抨击Google的隐私保护技术“落后微软10年”.

话音刚落,9月2日Google就在全球范围首次推出了Chrome浏览器测试版.Google浏览器除采用了开源、酷而简洁的界面外,最大的亮点就体现在安全性方面:采用“沙箱”技术来支持多标签模式的安全浏览,有效解决假死问题;内置“反钓鱼”及反恶意软件功能;与微软IE8一样提供隐私保护功能.

关注浏览器的安全性,微软和Google并不是第一家.事实上,奇虎360早在去年底就开始筹划开发安全浏览器.今年4月30日,奇虎360与凤凰工作室、以色列安全厂商等联合推出了360安全浏览器0.5测试版,首次在浏览器中加入了“网页恶意代码智能拦截”、“恶意网址自动屏蔽”、“沙箱”等安全防护功能与应用,将网络安全浏览器的标准提高到了一个新的层面.在经过 4个测试版本之后,奇虎360终于对外发布了1.2正式版.

据悉,火狐与Opera将推出的新版浏览器中,安全性也将成为其产品升级中最重要的内容之一.有意思的是,国内杀毒厂商瑞星在Google推出浏览器的第二天,也推出了瑞星安全浏览器的1.0测试版,该版本主要是在火狐浏览器的基础上,新增了两、三项初级的安全功能.从Mozila中国自称未与瑞星合作可知,这应该是瑞星用火狐的开源代码自行加工而成.

对于微软、Google等国际巨头不约而同在浏览器安全性上发力,奇虎360等国内安全厂商推出“安全浏览器”,诸多互联网公司纷纷开打浏览器安全牌,周鸿祎认为这绝非偶然.

据周介绍,奇虎360早在去年底转向反木马与恶意软件开始,就将浏览器端的木马防护列为重要产品方向.周鸿祎表示,浏览器比搜索、邮箱、IM工具等一样,早已成为网民最常用的互联网基础应用.随着互联网的快速发展,木马已经取代病毒成为互联网上对网民的头号公害,目前超过90%的盗号木马、病毒等恶意程序都是通过网页传播,而浏览器作为用户上网的入口,肩负着义不容辞的防护责任.

“如果能通过在浏览器设置强大的安防措施,就可以帮助用户有效封堵大部分盗号木马的入侵.”周鸿祎认为,“以往浏览器的安全性问题被很多网民忽视了,大家会想当然地把保护电脑安全的重任交给杀毒软件.但如今木马的肆虐和其有别于病毒的防护方式,已经让很多传统杀毒软件力不从心了.所以,安全浏览器的推出,完全是出于保护用户电脑的需要.”

  GoogleChrome不仅是浏览器,更是网络开发平台

“表面上微软IE8和GoogleChrome都强调了其浏览器的安全性,不过,这两个针锋相对的厂商并不会在安全领域恋战,至少现在还不是.尤其是Chrome浏览器,是继360安全浏览器之后全球第二家采用'沙箱'技术做浏览器标签的.在获得超强安全的口号下,还隐藏着更为惊人的秘密.”周鸿祎这样评论道.

从表面上来看,IE8的诞生可以说是微软吹响了浏览器保卫战的号角,而Google推出Chrome浏览器,则明显意在与微软抗衡,全力争夺浏览器市场份额,同时也不可避免会影响到火狐浏览器的份额.

浏览器市场份额的数据变化,也说明市场竞争的激烈程度.2006年10月,微软IE浏览器的市场份额为80.4%(此前最高超过96%),而火狐只有0.69%.但到了今年2月,火狐的市场份额已经升至17.27%,IE则降至72.95%.今年6月,火狐的市场份额增至19.27%.8月,微软在其年报中首次承认,火狐浏览器是微软的“竞争对手”.GoogleChrome浏览器推出后一周内,市场份额也已超过了1%.

但在周鸿祎看来,Google推Chrome浏览器,决不仅仅着眼于浏览器市场本身,更不是为了跟火狐浏览器竞争,而是有着更深远的战略意义.“Google在 Chrome浏览器里做了三件事:第一,重写了JavaScript引擎,大大提升了Chrome运行Web化软件应用的性能,使其可以承载更强大的软件化Web应用;第二,革命性地改造了浏览器的界面,每一个标签可以单独拖出来形成独立窗口,使其看起来不再是传统的浏览器,而更像一个本地化的软件应用程序;第三,将每个标签作为独立进程来运行,并采用了'沙箱'技术,任何一个进程的崩溃或假死都不会影响其他进程,大大提高了浏览器的稳定性.”

周鸿祎认为,Chrome的这些设计,可以把很多WEB应用的界面和使用体验变成跟本地软件几乎一样.而这种用户体验的转变,有可能带来一场网络应用的革命.因此,Chrome可以说并不是为一般的网页浏览设计的,也不是给IE那样的普通用户使用的,而是为很多网络应用的开发者提供的.这些人以前开发的网络应用,也可以放在IE里给很多人使用,但它始终是一个网页应用.但如果现在把它放在Chrome平台上,变成跟本地软件一模一样的应用,那么对于很多开发者就更具吸引力.他们开发Web应用软件时,很可能会把Chrome作为底层平台,并向用户大力推荐使用Chrome.随着客户端往WEB化发展,而WEB化又向客户端靠拢,Chrome就会成为两者融合的一个桥梁.

有人说Google要与微软竞争,必须做自己的桌面操作系统,周鸿祎完全不认同这种说法.他说,今天任何一个企业开发一款桌面操作系统,都肯定竞争不过微软.Sun公司曾经试图用JavaScript去颠覆微软,但失败了.苹果之所以干不过微软,就是因为他们挤不掉微软这个生态链.对于Google来说,面对微软如此牢固的一个经济系统,在根本无法取代它时,就必须破坏他的生态平衡.而破坏生态平衡最关键的一步,不是推自己的操作系统,而是先让人们不再依赖微软的操作系统.但要从用户端去推动人们不依赖微软的操作系统是很难下手的,因为用户已经用习惯了.所以只能先让开发者不再依赖微软操作系统,改用Google的Chrome来开发越来越多的Web应用.一旦Chrome变成一个底层,谁还需要在Windows本地使用呢?

现在的大部分电脑应用软件,都是基于 Windows API开发的,这是一个由微软建立的产业生态系统,也是微软多年来得以牢牢控制桌面的根本原因.无论谁想要开发客户端软件,都必须符合微软API的标准,否则就无法顺利到达用户面前.任何企业如果要战胜微软,必须首先破坏微软这一生态系统的平衡,让普通用户不再依赖微软的Windows操作系统,而要实现这一目标,前提就是要让开发者不再依赖微软Windows API标准.

因此,周认为Chrome浏览器最重要的使命,就是破坏微软多年来建立起来的以Windows API为核心的经济系统(EcoSystem)的生态平台,Google必须首先破坏微软的这一系统的生态平衡,而手段就是利用Chrome吸引更多的Web应用开发者放弃WindowsAPI标准,转而开发基于Chrome的网络应用,并借助开发者向普通用户大力推荐使用Chrome,从而逐步地使普通用户逐步解除对微软操作系统的依赖,最终实现颠覆微软的长期目标.这也许就是Google推Chrome浏览器的“阳谋”.对此,周鸿祎还将在近日通过博客的形式,予以系统的表述.

至于Chrome和火狐的关系,周鸿祎认为两者不会形成正面竞争,反而将使Google与Mozila在互联网消费者市场和开发者市场形成双剑合璧的开局,对微软形成左右夹击的局面.一方面,Google用Chrome拉拢很多Web应用开发者,让他们把平台建立在Chrome上,间接打击IE浏览器.而另一方面,在消费者层面,Google目前就是Firefox最主要的收入来源,是支撑Firefox的最大支柱,Google将继续通过操纵Firefox,做出比IE更好的用户体验、更复杂的工程和插件,来和IE争夺普通用户.