<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0">
  <channel>
    <title>zpq2004</title>
    <description></description>
    <link>http://zpq2004.javaeye.com</link>
    <language>UTF-8</language>
    <copyright>Copyright 2003-2008, JavaEye.com</copyright>
    <docs>http://blogs.law.harvard.edu/tech/rss</docs>
    <generator>JavaEye - 做最棒的软件开发交流社区</generator>
      <item>
        <title>释放8080端口</title>
        <author>zpq2004</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://zpq2004.javaeye.com">zpq2004</a>&nbsp;
          链接：<a href="http://zpq2004.javaeye.com/blog/193563" style="color:red;">http://zpq2004.javaeye.com/blog/193563</a>&nbsp;
          发表时间: 2008年05月16日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <p>fuser -k 8080/tcp</p>
          <br/>
          <span style="color:red;">
            <a href="http://zpq2004.javaeye.com/blog/193563#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Fri, 16 May 2008 11:00:29 +0800</pubDate>
        <link>http://zpq2004.javaeye.com/blog/193563</link>
        <guid>http://zpq2004.javaeye.com/blog/193563</guid>
      </item>
      <item>
        <title>Ubuntu7.10下安装反编译工具Jadclipse</title>
        <author>zpq2004</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://zpq2004.javaeye.com">zpq2004</a>&nbsp;
          链接：<a href="http://zpq2004.javaeye.com/blog/187712" style="color:red;">http://zpq2004.javaeye.com/blog/187712</a>&nbsp;
          发表时间: 2008年04月28日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <p>step1:到http://www.kpdus.com/jad.html#download下载Jad的执行程序，解压在任意目录A</p>
<p>step2:到http://jadclipse.sourceforge.net/wiki/index.php/Main_Page#Download下载Jad的jar包，放在eclipse的plugin目录下</p>
<p>step3:启动eclipse，打开：Window-&gt;Preferences-&gt;Java-&gt;JadClipse</p>
<p>Path to decompiler:指定到目录A的Jad</p>
<p><span style="font-family: arial,sans-serif; color: #000000;">step4:Eclipse的Windows--&gt;
Perference--&gt;General-&gt;Editors-&gt;File
Associations中修改&ldquo;*.class&rdquo;默认关联的编辑器为&ldquo;JadClipse Class File
Viewer&rdquo;。</span>
</p>
<p>step5:最关键的一步，在终端下<em> sudo apt-get install libstdc++2.10-glibc2.2</em>
</p>
<p>不然你将会遇到<em>error while loading shared libraries: libstdc++-libc6.2-2.so.3: cannot open shared object file: No such file or directory这样的错误</em>
</p>
<p>这个问题只有在ubuntu下才会出现</p>
<p><span style="font-family: arial,sans-serif; color: #000000;">step6:重启eclipse，双击*.class文件，eclipse将自动反编译。</span>
</p>
          <br/>
          <span style="color:red;">
            <a href="http://zpq2004.javaeye.com/blog/187712#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Mon, 28 Apr 2008 17:58:38 +0800</pubDate>
        <link>http://zpq2004.javaeye.com/blog/187712</link>
        <guid>http://zpq2004.javaeye.com/blog/187712</guid>
      </item>
      <item>
        <title>amsn的Loading TkCximage failed异常</title>
        <author>zpq2004</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://zpq2004.javaeye.com">zpq2004</a>&nbsp;
          链接：<a href="http://zpq2004.javaeye.com/blog/180345" style="color:red;">http://zpq2004.javaeye.com/blog/180345</a>&nbsp;
          发表时间: 2008年04月08日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          更新amsn后发现问题：Loading TkCximage failed. This module is need to run aMSN. Please compile aMSN first, instructions on how to compile are located in the file Install.<br />    解决办法：sudo apt-get remove amsn<br />                   sudo apt-get remove tcl8.*<br />                   sudo apt-get install amsn<br />                   sudo apt-get install expect
          <br/>
          <span style="color:red;">
            <a href="http://zpq2004.javaeye.com/blog/180345#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Tue, 08 Apr 2008 10:02:51 +0800</pubDate>
        <link>http://zpq2004.javaeye.com/blog/180345</link>
        <guid>http://zpq2004.javaeye.com/blog/180345</guid>
      </item>
      <item>
        <title>在Ubuntu7.10下安装amsn0.97b</title>
        <author>zpq2004</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://zpq2004.javaeye.com">zpq2004</a>&nbsp;
          链接：<a href="http://zpq2004.javaeye.com/blog/170144" style="color:red;">http://zpq2004.javaeye.com/blog/170144</a>&nbsp;
          发表时间: 2008年03月11日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <span style="font-size: medium; font-family: 幼圆">用7.10的源直接安装amsn的话，版本是0.98，这个版本对中文的支持很不完善，例如在聊天的时候，输入框中打&ldquo;现在&rdquo;二字，会只显示&ldquo;在&rdquo;。因此建议用0.97b的版本。<br /><br />步骤：<br />1.删除现有的amsn<br />sudo apt-get remove amsn<br /><br />2.将现有的Ubuntu7.10的源替换成7.04的源<br />sudo gedit /etc/apt/sources.list<br />把文件的内容换成<br />deb http://ubuntu.cn99.com/ubuntu/ gutsy main restricted universe multiverse<br />deb http://ubuntu.cn99.com/ubuntu/ gutsy-security main restricted universe multiverse<br />deb http://ubuntu.cn99.com/ubuntu/ gutsy-updates main restricted universe multiverse<br />deb http://ubuntu.cn99.com/ubuntu/ gutsy-proposed main restricted universe multiverse<br />deb http://ubuntu.cn99.com/ubuntu/ gutsy-backports main restricted universe multiverse<br />deb-src http://ubuntu.cn99.com/ubuntu/ gutsy main restricted universe multiverse<br />deb-src http://ubuntu.cn99.com/ubuntu/ gutsy-security main restricted universe multiverse<br />deb-src http://ubuntu.cn99.com/ubuntu/ gutsy-updates main restricted universe multiverse<br />deb-src http://ubuntu.cn99.com/ubuntu/ gutsy-proposed main restricted universe multiverse<br />deb-src http://ubuntu.cn99.com/ubuntu/ gutsy-backports main restricted universe multiverse<br />deb http://archive.ubuntu.com/ubuntu/ gutsy multiverse<br />deb http://ubuntu.cn99.com/ubuntu-cn/ gutsy main restricted universe multiverse<br />当然，记得备份原来的内容，因为把源换成7.04只是为了装amsn0.97b，装完之后还是把源换回7.10好<br /><br />3.sudo apt-get update<br /><br />4.sudo apt-get install amsn<br />如果提示下载一个10.6M的包，解压后是40.3M的，那应该就对了<br /><br />5.把源换回7.10<br />sudo gedit /etc/apt/sources.list<br />把原来的内容复制进去<br /><br />6.sudo apt-get update</span><p><span style="font-size: medium; font-family: 幼圆">&nbsp;</span></p>
          <br/>
          <span style="color:red;">
            <a href="http://zpq2004.javaeye.com/blog/170144#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Tue, 11 Mar 2008 13:19:32 +0800</pubDate>
        <link>http://zpq2004.javaeye.com/blog/170144</link>
        <guid>http://zpq2004.javaeye.com/blog/170144</guid>
      </item>
      <item>
        <title>[转]Java Lint 工具</title>
        <author>zpq2004</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://zpq2004.javaeye.com">zpq2004</a>&nbsp;
          链接：<a href="http://zpq2004.javaeye.com/blog/166159" style="color:red;">http://zpq2004.javaeye.com/blog/166159</a>&nbsp;
          发表时间: 2008年02月29日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <span style="font-size: medium; font-family: 幼圆">如果你在编译 Java 程序时，碰到类似&quot;注意： 要了解详细信息，请使用 -Xlint:deprecation 重新编译&quot;这样的提示，而且你对选项<br />-Xlint 感到困惑的话，本文或许会带给你一些有趣且有用的信息。<br />------------------------------<br />  *目录* 1. 简介 2. Lint 3. Java Lint 选项<br /> 1. 简介<br /><br />如果你已经开始使用 JDK 1.5（或者称为 JDK 5.0），那么你很可能在编译时，已经看到过类似如下的警告信息：<br /><br />注意： E:\sandbox\src\DefaultController.java 使用或覆盖了已过时的 API。<br />注意： 要了解详细信息，请使用 -Xlint:deprecation 重新编译。<br /><br />或者这个：<br /><br />注意： E:\sandbox\src\DefaultController.java 使用了未经检查或不安全的操作。<br />注意： 要了解详细信息，请使用 -Xlint:unchecked 重新编译。<br /><br />这些警告不难理解。如果愿意，只要按照提示在编译时指定相应的选项就可以了。可是，如果你也像我一样，困惑于这个编译选项中晦涩的英文（-Xlint），以至于经常要借助参考手册才能想起这个选项的用词或者拼写，那么这篇短文或许对你有些帮助。<br /> 2. Lint<br /><br />在介绍这些关于警告的选项前，我们先看看 lint 究竟是什么。在英文中，lint<br />是指纠缠在一起的细小纤维或者绒毛，比如衣物上面起的毛或者线头。咋看起来，这个词用在 Java<br />编译器选项中，似乎有点风马牛不相及。但是如果你知道一个古老的 Unix 工具被命名为 lint(1)，那就另当别论了。<br /><br />在 Unix 中，实用工具 lint(1)<br />用于在对程序编译的过程中，对程序进行更为细致的额外检查，比如使用未经初始化的变量等常见的编程问题。如此命名该工具，正是借用了&quot;lint&quot;<br />一词的含义：将&quot;lint&quot;从程序中挑拣出来，从而使程序更&quot;干净&quot;。<br /><br />现在我们至少对选项中的 &quot;lint&quot; 有了一些有趣的认识了，记住这个词应该问题不大了。随后，我们将简单地了解一下 Java 的 lint<br />工具。当然，因为 lint 工具当然会涉及到语言规范中的一些知识，而这篇短文显然不适合阐述这些知识。如果对相关内容有兴趣，可以参考其它资料。<br /> 3. Java Lint 选项<br /><br />Java 编译器的选项包括所谓的标准选项和非标准选项。标准选项是指在当前版本的开发环境中支持，且在未来版本中也将被支持的选项。常用的标准选项比如<br />-classpath 以及 -d 等等。<br /><br />非标准选项是在当前版本的开发环境中支持，但不能保证将来一定会继续支持的选项。非标准选项都由 -X 开头，比如我们这里所关心的 Java Lint<br />选项都由 -Xlint 开头。需要先说明的是，单纯的选项 -X 本身是一个标准选项，作用是显示关于非标准选项的信息。参考这个例子：<br /><br />E:\&gt;javac -X<br />  -Xlint                     启用建议的警告<br />  -Xlint:{all,deprecation,unchecked,fallthrough,path,serial,finally,-deprecation<br />,-unchecked,-fallthrough,-path,-serial,-finally}启用或禁用特定的警告<br />  -Xbootclasspath/p:&lt;路径&gt;     置于引导类路径之前<br />  -Xbootclasspath/a:&lt;路径&gt;     置于引导类路径之后<br />  -Xbootclasspath:&lt;路径&gt;       覆盖引导类文件的位置<br />  -Djava.ext.dirs=&lt;目录&gt;       覆盖安装的扩展目录的位置<br />  -Djava.endorsed.dirs=&lt;目录&gt;  覆盖签名的标准路径的位置<br />  -Xmaxerrs &lt;编号&gt;             设置要输出的错误的最大数目<br />  -Xmaxwarns &lt;编号&gt;            设置要输出的警告的最大数目<br />  -Xstdout &lt;文件名&gt;             重定向标准输出<br /><br />这些选项都是非标准选项，如有更改，恕不另行通知。<br /><br />我们依次来看看其中涉及 lint 的选项：<br /><br /> -Xlint<br /><br />启用所有警告。该选项相当于 -Xlint:all 选项。相反，关闭所有警告的选项为 -Xlint:none。<br />-Xlint:unchecked<br /><br />启用对所谓的未经检查的转换（unchecked warning）的警告。这个警告涉及 JDK 5.0 中的新特性&mdash;&mdash;范型（Generic<br />Type），这绝对是另外一个故事了。有兴趣的话，可以在 Internet 上搜索到很多关于范型的文章。<br />-Xlint:path<br /><br />当发现不存在的路径或者目录时给出警告，比如标准选项中的类路径（classpath），源代码路径（sourcepath）等等。<br />-Xlint:serial<br /><br />当在可序列化的类中没有发现 serialVersionUID 的定义时，给出警告。<br />Xlint:finally<br /><br />当发现 finally 子句无法正常结束的情况时给出警告。比如下面这段代码：<br /><br />try {<br /><br />} catch (Exception e) {<br />} finally {<br />    for (;;);<br />}<br /><br />-Xlint:fallthrough<br /><br />当在 switch 语句块中发现 fall-through 的情形时给出警告。这里所说的 fall-through 情形指的是在<br />switch语句块中，除了最后一个<br />case 之外的其它 case 中没有包含 break 语句，导致执行代码时从一个 case 直接穿过执行到了下一个 case 中。比如下面这段代码：<br /><br />switch (color) {<br />case GREEN:<br />        System.out.println(&quot;green&quot;);<br />        // 没有 break 语句；fall-through<br />case RED:<br />        System.out.println(&quot;red&quot;);<br />        break;<br />case YELLOW:<br />        System.out.println(&quot;yellow&quot;);<br /><br />}<br /><br />-Xlint:deprecation<br /><br />显示关于使用了过时的 API 的详细信息。这个选项等同于一个我们熟悉的标准选项，即 -deprecation 选项。相对其它 lint<br />选项而言，该选项的特别之处在于，即使你关闭了它，编译器仍然会简单地提醒你某个类中使用了过时的 API。只是启用该项警告时，显示的信息将更详细而以。<br /><br />上面提到的这些 lint 选项中的警告名称（冒号后面的部分），可以加以组合，从而有选择的开启或者关闭特定的一组 lint 警告选项，比如<br />-Xlint:deprecation,<br />finally 表示开启 deprecation 和 finally 警告。还可以在警告名称前加上&quot;-&quot;表示关闭该项警告，比如<br />-Xlint:all,-unchecked 表示开启除了 unchecked 之外的所有警告。<br /><br />关于 Java 编译器命令的完整参考请见 javac - Java programming language<br />compiler<a href="http://java.sun.com/j2se/1.5.0/docs/tooldocs/windows/javac.html">http://java.sun.com/j2se/1.5.0/docs/tooldocs/windows/javac.html</a><a href="http://java.sun.com/j2se/1.5.0/docs/tooldocs/windows/javac.html"><br /><br /></a></span> <p><span style="font-size: medium; font-family: 幼圆">&nbsp;原文链接:<a href="http://groups.google.com/group/programmercafe/browse_thread/thread/4ae4510028f5d8b2">http://groups.google.com/group/programmercafe/browse_thread/thread/4ae4510028f5d8b2</a></span></p>
          <br/>
          <span style="color:red;">
            <a href="http://zpq2004.javaeye.com/blog/166159#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Fri, 29 Feb 2008 15:48:08 +0800</pubDate>
        <link>http://zpq2004.javaeye.com/blog/166159</link>
        <guid>http://zpq2004.javaeye.com/blog/166159</guid>
      </item>
      <item>
        <title>[转]为Ubuntu 7.10配置SSH服务</title>
        <author>zpq2004</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://zpq2004.javaeye.com">zpq2004</a>&nbsp;
          链接：<a href="http://zpq2004.javaeye.com/blog/166049" style="color:red;">http://zpq2004.javaeye.com/blog/166049</a>&nbsp;
          发表时间: 2008年02月29日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <p><span style="font-size: medium; font-family: 幼圆">网上有很多介绍在Ubuntu下开启SSH服务的文章，但大多数介绍的方法测试后都不太理想，均不能实现远程登录到Ubuntu上，最后分析原因是都没有真正开启ssh-server服务。最终成功的方法如下：<br /><br />sudo apt-get install openssh-server或者sudo apt-get install ssh也行</span></p><p>&nbsp;</p><p><span style="font-size: medium; font-family: 幼圆">Ubuntu缺省安装了openssh-client,所以在这里就不安装了，如果你的系统没有安装的话，再用apt-get安装上即可。<br /><br />然后确认sshserver是否启动了：<br /><br />ps -e |grep ssh<br /><br />如果只有ssh-agent那ssh-server还没有启动，需要/etc/init.d/ssh start，如果看到sshd那说明ssh-server已经启动了。<br /><br />ssh-server配置文件位于/ etc/ssh/sshd_config，在这里可以定义SSH的服务端口，默认端口是22，你可以自己定义成其他端口号，如222。然后重启SSH服务：<br /><br />sudo /etc/init.d/ssh resart<br /></span><span style="font-size: medium; font-family: 幼圆"><br /></span></p><p>原贴地址：<a href="http://andywang.blogbus.com/logs/14742135.html">http://andywang.blogbus.com/logs/14742135.html</a></p>
          <br/>
          <span style="color:red;">
            <a href="http://zpq2004.javaeye.com/blog/166049#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Fri, 29 Feb 2008 10:36:01 +0800</pubDate>
        <link>http://zpq2004.javaeye.com/blog/166049</link>
        <guid>http://zpq2004.javaeye.com/blog/166049</guid>
      </item>
      <item>
        <title>在Ubuntu7.10下安装和使用Virtualbox</title>
        <author>zpq2004</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://zpq2004.javaeye.com">zpq2004</a>&nbsp;
          链接：<a href="http://zpq2004.javaeye.com/blog/165654" style="color:red;">http://zpq2004.javaeye.com/blog/165654</a>&nbsp;
          发表时间: 2008年02月28日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <p>前言: 传说中轻量级的vmware-player在我的Ubuntu7.10上用起来速度很慢，不知道原因，于是尝试了virtualbox，效果很满意</p><p>&nbsp;</p><p><span style="font-size: medium; font-family: 黑体">1.安装</span></p><p><span style="font-size: medium; font-family: 黑体">sudo apt-get install virtualbox</span></p><p><span style="font-size: medium; font-family: 黑体">2.设置用户</span></p><p><span style="font-size: medium; font-family: 黑体">sudo adduser 你的用户名 vboxusers</span></p><p><span style="font-size: medium; font-family: 黑体">注销</span></p><p><span style="font-size: medium; font-family: 黑体">3.sudo /etc/init.d/vboxdrv start</span></p><p><span style="font-size: medium; font-family: 黑体">4.启动</span></p><p><span style="font-size: medium; font-family: 黑体">终端下 virtualbox</span></p><p><span style="font-size: medium; font-family: 黑体">5.新建一个系统</span></p><p><span style="font-size: medium; font-family: 黑体">6.选中这个系统，点右边的&ldquo;光驱&rdquo;，选择一个系统的iso文件（自己下载，我用的是DeepinXP-V5.9f.iso）</span></p><p><span style="font-size: medium; font-family: 黑体">7.启动系统</span></p>
          <br/>
          <span style="color:red;">
            <a href="http://zpq2004.javaeye.com/blog/165654#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Thu, 28 Feb 2008 10:52:27 +0800</pubDate>
        <link>http://zpq2004.javaeye.com/blog/165654</link>
        <guid>http://zpq2004.javaeye.com/blog/165654</guid>
      </item>
      <item>
        <title>[转]ant fileset 用法</title>
        <author>zpq2004</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://zpq2004.javaeye.com">zpq2004</a>&nbsp;
          链接：<a href="http://zpq2004.javaeye.com/blog/163912" style="color:red;">http://zpq2004.javaeye.com/blog/163912</a>&nbsp;
          发表时间: 2008年02月21日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <span style="font-size: medium; font-family: 黑体">Ant真是太方便了，以前都没注意到它。功能很强大，能创建数据库，配置服务器，部署发布应用&hellip;&hellip;只需要写好build.xml文件，剩下的就交给ant来&ldquo;安装&rdquo;你的WEB应用了。<br /><br />Appfuse 的第一个ant命令是ant new，其任务是建立一个新命名的project，少不了会复制很多文件。build.xml中也有很多copy操作，为了搞清楚ant new到底干了些什么事，还是先把copy操作了解一下。看了会ant的DOCS，网上也找了些文章，发现copy这部分都是一带而过，讲得很浅，于是我就只有自己实验下，发现还有点收获。 ant版本为1.6.5。<br /><br />1. 拷贝单个文件到指定目录下。<br />例：&lt;copy todir=&quot;${basedir}/new&quot; file=&quot;${basedir}/old/old1.txt1&quot;&gt;<br />将${basedir}/old/old.txt文件拷贝到${basedir}/new下<br /><br />2. 拷贝一批文件到指定目录下<br />例：&lt;copy todir=&quot;${basedir}/new&quot;&gt;<br />           &lt;fileset dir=&quot;${basedir}/old&quot;&gt;<br />              &lt;include name=&quot;old1.txt&quot; /&gt;<br />              &lt;include name=&quot;old2.txt&quot; /&gt;<br />              &lt;exclude name=&quot;old8.txt&quot; /&gt;<br />          &lt;/fileset&gt;<br />       &lt;/copy&gt;<br />      这里fileset定义的是原文件的组成形式，&lt;include/&gt;子属性表示包括，&lt;exclude/&gt;子属性表示排除，很简单，通过他们组合实现多文件的筛选，当然我这个例子用得很傻。比如<br />                &lt;include name=&quot;appgen/**&quot;/&gt;<br />                &lt;include name=&quot;ibatis/**&quot;/&gt;<br />                &lt;exclude name=&quot;**/*.log&quot;/&gt;<br />      拷贝appget目录和ibatis目录下除了.log文件以外的其它所有文件和子目录。<br /><br />       可以把&lt;fileset/&gt;简写成&lt;fileset dir=&quot;${basedir}/old&quot; includes=&quot;old1.txt,old2.txt&quot; /&gt;，includes可以理解成include的复数形式，包含多个文件时用逗号隔开，excludes也一样。<br /><br />3. 拷贝一个目录到指定目录下<br />例：&lt;copy todir=&quot;${basedir}/new&quot;&gt;<br />           &lt;fileset dir=&quot;${basedir}/old&quot;&gt;<br />             &lt;include name=&quot;appgen&quot; /&gt;<br />             &lt;include name=&quot;appgen/&quot; /&gt;<br />             &lt;include name=appgen/**&quot; /&gt;<br />             &lt;include name=&quot;appgen/***&quot; /&gt;<br />           &lt;/fileset&gt;<br />       &lt;/copy&gt;<br />      同样使用&lt;fileset/&gt;属性，name指定目录名，不过这里要分两种情况，用&lt;include/&gt;子属性和不用&lt;include/&gt;子属性.<br />      若使用&lt;include/&gt;， 又要分三种情况<br />          若是&ldquo;appgen&rdquo;，则只会拷贝名为appgen的空目录过去，它里面的文件和子目录则不会拷贝。<br />          若是&ldquo;appgen/&rdquo;，或&ldquo;appgen/**&rdquo;，则会把整个appgen目录拷贝过去，包括里面的文件和子目录。<br />          若是&ldquo;appgen/*&rdquo;，则只会把该目录和该目录下第一级子目录的所有东西拷贝过去，而不会拷贝第二级和第二级以下的。注：&ldquo;appgen/*&rdquo;这儿是一个*号，*号若大于两个，也跟一个*号是同样效果。比如&ldquo;appgen/*&rdquo;和&ldquo;appgen/****&rdquo;都只拷贝appgen目录下第一级子目录。<br /><br />注：若appeng这个目录本身就是个空目录，无论怎么写，这个空目录都不会被拷贝。也就是说，copy操作不会产生创建空目录的作用，要想创建空目录，只有用mkdir。<br /><br />      若不使用任何&lt;include&gt;属性，如<br />           &lt;fileset dir=&quot;${basedir}/old&quot;&gt;<br />           &lt;/fileset&gt;<br />      则会拷贝${basedir}/old下的所有文件和子目录。<br /><br />注：使用&lt;exclude/&gt;排除目录时，目录名必须写成&ldquo;appgen/&rdquo;或&ldquo;appgen/**&rdquo;形式，否则不会生效。<br /><br />      以上是三种拷贝到目录的种类，注意如果计算机中没有todir指定的路径，ant将会自动创建这个路径。<br /><br />4. 拷贝单个的文件：<br />〈copy tofile=&quot;old.txt&quot; file=&quot;new.txt&quot; /〉就这么简单就行了。<br />当然也可以写成<br />  &lt;copy tofile=&quot;${basedir}/new/new.txt&quot;&gt;<br />     &lt;fileset dir=&quot;${basedir}/old&quot; includes=&quot;old.txt&quot; /&gt;<br />  &lt;/copy&gt;<br />      这里includes就只能写一个文件，不能写上多个文件，因为不能将多个文件复制到一个文件中去，所以这样麻烦的写法是没有意义的。<br /><br /><br /><br />       复制肯定还要涉及到同名覆盖的问题，ant在copy类的API中说明：Files are only copied if the source file is newer than the destination file，这里的newer是指文件的修改时间，即使你在修改时文件内容没有任何变化，只是导致修改时间变了，ant同样会覆盖同名文件，也就是说， ant不会检查文件内容。<br /><br />      对于是复制目录的情况，由于目录没有修改时间，ant还是通过检查目录内文件的修改时间来决定是否覆盖的，若目录内某文件修改时间有变化，则会覆盖这个文件，而不是整个目录。<br /><br />如果要强行覆盖，&lt;copy/&gt;有个overwrite属性，默认为false，改成true就行了。</span><p><span style="font-size: medium; font-family: 黑体">&nbsp;</span></p>
          <br/>
          <span style="color:red;">
            <a href="http://zpq2004.javaeye.com/blog/163912#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Thu, 21 Feb 2008 14:52:27 +0800</pubDate>
        <link>http://zpq2004.javaeye.com/blog/163912</link>
        <guid>http://zpq2004.javaeye.com/blog/163912</guid>
      </item>
      <item>
        <title>[转]设置myeclipse中的代码提示</title>
        <author>zpq2004</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://zpq2004.javaeye.com">zpq2004</a>&nbsp;
          链接：<a href="http://zpq2004.javaeye.com/blog/160953" style="color:red;">http://zpq2004.javaeye.com/blog/160953</a>&nbsp;
          发表时间: 2008年02月01日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <span style="font-size: medium; font-family: 仿宋">MyEclipse中无法使用快捷键&ldquo;alt+/&rdquo;或＂Ctrl+j＂的解决办法<br />WIndows-&gt;References-&gt;General-&gt;keys 找一个Command为Content Assist的行，将键位改成&ldquo;Alt+/&rdquo;就可以了，同时将when选择&quot;Editing JAVA Source&quot;<br />另外一法：&ldquo;windows--&gt;preferences--&gt;java--&gt;editor--&gt;content assist--&gt;advanced&rdquo;看看里面那些复选框的勾是不是还在。 如果都没勾上的话就点&ldquo;Restore Defaults&rdquo;让它恢复默认。</span>
          <br/>
          <span style="color:red;">
            <a href="http://zpq2004.javaeye.com/blog/160953#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Fri, 01 Feb 2008 11:38:36 +0800</pubDate>
        <link>http://zpq2004.javaeye.com/blog/160953</link>
        <guid>http://zpq2004.javaeye.com/blog/160953</guid>
      </item>
      <item>
        <title>Ubuntu常用命令</title>
        <author>zpq2004</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://zpq2004.javaeye.com">zpq2004</a>&nbsp;
          链接：<a href="http://zpq2004.javaeye.com/blog/156091" style="color:red;">http://zpq2004.javaeye.com/blog/156091</a>&nbsp;
          发表时间: 2008年01月15日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <p><span style="font-size: medium; font-family: 黑体"><span style="font-size: medium; font-family: 黑体">1. 查看本机IP<br />(1)命令行：ifconfig<br />eth0(以太网卡)下的inet地址</span></span></p><p><span style="font-size: medium; font-family: 黑体">&nbsp;</span></p><p><span style="font-size: medium; font-family: 黑体"><span style="font-size: medium; font-family: 黑体">(2)菜单 System\Administrator\Network Tools</span></span></p><p><span style="font-size: medium; font-family: 黑体">在&quot;网络设备&quot;一栏，选择 <span style="font-size: medium; font-family: 黑体">eth0(以太网卡)</span></span></p><p><span style="font-size: medium; font-family: 黑体">&nbsp;</span></p><p><span style="font-size: medium; font-family: 黑体"><span style="font-size: medium; font-family: 黑体">(3)命令行： gnome-nettool</span></span></p><p><span style="font-size: medium; font-family: 黑体">在&quot;网络设备&quot;一栏，选择 <span style="font-size: medium; font-family: 黑体">eth0(以太网卡)</span></span></p>
          <br/>
          <span style="color:red;">
            <a href="http://zpq2004.javaeye.com/blog/156091#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Tue, 15 Jan 2008 15:32:53 +0800</pubDate>
        <link>http://zpq2004.javaeye.com/blog/156091</link>
        <guid>http://zpq2004.javaeye.com/blog/156091</guid>
      </item>
      <item>
        <title>在Ubuntu7.10下使用微软雅黑字体</title>
        <author>zpq2004</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://zpq2004.javaeye.com">zpq2004</a>&nbsp;
          链接：<a href="http://zpq2004.javaeye.com/blog/156019" style="color:red;">http://zpq2004.javaeye.com/blog/156019</a>&nbsp;
          发表时间: 2008年01月15日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <p><span style="font-size: medium; font-family: 黑体">新装的Ubuntu系统，默认的字体十分难看，后来换成微软雅黑就舒服多了，不过貌似网上提供微软雅黑字体ZIP压缩包的地方很少，是因为版权的问题？</span></p><p><span style="font-size: medium; font-family: 黑体">&nbsp;</span></p><p><span style="font-size: medium; font-family: 黑体"><span class="postbody">
1. 获得/usr/share/fonts文件夹权限</span></span></p><p><span style="font-size: medium; font-family: 黑体"><span class="postbody">sudo chown 用户名 /usr/share/fonts</span></span></p><p><span style="font-size: medium; font-family: 黑体">&nbsp;</span></p><p><span style="font-size: medium; font-family: 黑体">2. <span class="postbody">创建文件夹yahei

<br />
sudo mkdir /usr/share/fonts/yahei
<br />

<br />
3. 获得/usr/share/fonts/yahei文件夹权限

<br />
sudo chown 用户名 /usr/share/fonts/yahei
<br />

<br />4. 将微软雅黑</span><span class="postbody">字体</span><span class="postbody">（msyh.ttf和msyhbd.ttf）拖入 /usr/share/fonts/yahei文件夹
<br />

&nbsp;<br />5. 编辑/etc/X11/xorg.conf
</span></span></p><p><span style="font-size: medium; font-family: 黑体"><span class="postbody">sudo gedit /etc/X11/xorg.conf
<br />

<br />
#加入一行
<br />

FontPath      &quot;/usr/share/fonts/yahei&quot;
<br /></span></span></p><p><span style="font-size: medium; font-family: 黑体">&nbsp;</span></p><p><span style="font-size: medium; font-family: 黑体"><span class="postbody">#示例
<br />
#-----------------------------------------------------------------
<br />
Section &quot;Files&quot;
<br />
    RgbPath        &quot;/usr/lib/X11/rgb&quot;
<br />
    FontPath        &quot;/usr/share/fonts/yahei&quot;
<br />
EndSection
<br />
#-----------------------------------------------------------------
<br />

<br />
6. 建立字体缓存信息</span></span></p><p><span style="font-size: medium; font-family: 黑体"><span class="postbody">fc-cache -fv
<br />

<br />
7. 修改/etc/fonts/language-selector.conf</span></span></p><p><span style="font-size: medium; font-family: 黑体"><span class="postbody">
             sudo gedit /etc/fonts/language-selector.conf</span></span></p><p><span style="font-size: medium; font-family: 黑体"><span class="postbody"><br />
#在相应位置添加</span></span></p><p><span style="font-size: medium; font-family: 黑体"><span class="postbody">&lt;family&gt;Microsoft YaHei&lt;/family&gt;
<br />

<br />
#示例
<br />
#-----------------------------------------------------------------
<br />

<br />
&lt;alias&gt;
<br />
                &lt;family&gt;serif&lt;/family&gt;
<br />
                &lt;family&gt;Microsoft YaHei&lt;/family&gt;
<br />
                &lt;prefer&gt;
<br />
                        &lt;family&gt;Bitstream Vera Serif&lt;/family&gt;
<br />
                        &lt;family&gt;Microsoft YaHei&lt;/family&gt;
<br />
                        &lt;family&gt;DejaVu Serif&lt;/family&gt;
<br />
                        &lt;family&gt;AR PL ShanHeiSun Uni&lt;/family&gt;
<br />
                        &lt;family&gt;WenQuanYi Bitmap Song&lt;/family&gt;
<br />
                        &lt;family&gt;AR PL ZenKai Uni&lt;/family&gt;
<br />
                &lt;/prefer&gt;
<br />
        &lt;/alias&gt;
<br />
        &lt;alias&gt;
<br />
                &lt;family&gt;sans-serif&lt;/family&gt;
<br />
                &lt;family&gt;Microsoft YaHei&lt;/family&gt;
<br />
                &lt;prefer&gt;
<br />
                        &lt;family&gt;Bitstream Vera Sans&lt;/family&gt;
<br />
                        &lt;family&gt;Microsoft YaHei&lt;/family&gt;
<br />
                        &lt;family&gt;DejaVu Sans&lt;/family&gt;
<br />
                        &lt;family&gt;AR PL ShanHeiSun Uni&lt;/family&gt;
<br />
                        &lt;family&gt;WenQuanYi Bitmap Song&lt;/family&gt;
<br />
                        &lt;family&gt;AR PL ZenKai Uni&lt;/family&gt;
<br />
                &lt;/prefer&gt;
<br />
        &lt;/alias&gt;
<br />
        &lt;alias&gt;
<br />
                &lt;family&gt;monospace&lt;/family&gt;
<br />
                &lt;family&gt;Microsoft YaHei&lt;/family&gt;
<br />
                &lt;prefer&gt;
<br />
                        &lt;family&gt;Bitstream Vera Sans Mono&lt;/family&gt;
<br />
                        &lt;family&gt;Microsoft YaHei&lt;/family&gt;
<br />
                        &lt;family&gt;DejaVu Sans Mono&lt;/family&gt;
<br />
                        &lt;family&gt;AR PL ShanHeiSun Uni&lt;/family&gt;
<br />
                        &lt;family&gt;WenQuanYi Bitmap Song&lt;/family&gt;
<br />
                        &lt;family&gt;AR PL ZenKai Uni&lt;/family&gt;
<br />
                &lt;/prefer&gt;
<br />
        &lt;/alias&gt;
</span></span></p><p><span style="font-size: medium; font-family: 黑体">&nbsp;</span></p><p><span style="font-size: medium; font-family: 黑体"><span class="postbody">
#------------------------------------------------------------------------
<br />

<br />
8. 然后在系统-&gt;首选项-&gt;外观--&gt;字体 中选择微软雅黑 即可
<br />
注销查看效果</span>&nbsp;


	</span></p>
          <br/>
          <span style="color:red;">
            <a href="http://zpq2004.javaeye.com/blog/156019#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Tue, 15 Jan 2008 14:31:29 +0800</pubDate>
        <link>http://zpq2004.javaeye.com/blog/156019</link>
        <guid>http://zpq2004.javaeye.com/blog/156019</guid>
      </item>
      <item>
        <title>在Ubuntu7.10下安装中文输入法</title>
        <author>zpq2004</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://zpq2004.javaeye.com">zpq2004</a>&nbsp;
          链接：<a href="http://zpq2004.javaeye.com/blog/155961" style="color:red;">http://zpq2004.javaeye.com/blog/155961</a>&nbsp;
          发表时间: 2008年01月15日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <p><span style="font-family: 黑体; font-size: medium;">刚刚装好的系统应该是没有中文输入法的，但是应该有其他语言的输入法，点击屏幕右上角的一个小键盘图标可以看到<br />
<br />
打开一个终端，用env | grep im 命令<br />
如果什么都没有显示，那么 System－系统管理－Language Support－选择Chinese－OK   重启<br />
之后就会发现，界面都变成中文的了，而且中文输入法应该已经可以用了<br />
<br />
不过装完了中文输入法，有可能会导致无法重命名目录<br />
解决办法:</span>
</p>
<p>修改<span class="postbody">
/etc/X11/xinit/xinput.d/scim</span>
</p>
<p>改成这样：<span class="postbody">
</span>
</p>
<p><span class="postbody">#GTK_IM_MODULE=xim
<br />
#QT_IM_MODULE=xim
<br />
GTK_IM_MODULE=scim
<br />
QT_IM_MODULE=scim</span>
</p>
          <br/>
          <span style="color:red;">
            <a href="http://zpq2004.javaeye.com/blog/155961#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Tue, 15 Jan 2008 11:20:43 +0800</pubDate>
        <link>http://zpq2004.javaeye.com/blog/155961</link>
        <guid>http://zpq2004.javaeye.com/blog/155961</guid>
      </item>
      <item>
        <title>GNOME是什么?</title>
        <author>zpq2004</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://zpq2004.javaeye.com">zpq2004</a>&nbsp;
          链接：<a href="http://zpq2004.javaeye.com/blog/155950" style="color:red;">http://zpq2004.javaeye.com/blog/155950</a>&nbsp;
          发表时间: 2008年01月15日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <span style="font-size: medium; font-family: 黑体"><span style="font-size: medium; font-family: 黑体">1997年8 月，为了克服KDE所遇到的QT许可协议和单一C++依赖的困难，以墨西哥的Miguel de Icaza为首的250程序员就开始了一个新项目，完全从头开始，这就是GNOME。<br /><br /><br />经过14个月的共同努力，终于完成了这个工程。现在GNOME已得到了占Linux 市场份额最大发行商Red Hat 的支持，拥有了大量应用软件，包括文字处理软件Go，电子表格软件Gnumeric，日历程序GNOMEcal，堪与PhotoShop 媲美的图形图像处理软件Gimp 等。<br /><br /><br />现在GNOME与KDE成为了两大竞争阵营，必将使得Linux更加易于使用。<br /><br />----------------------------------------------------------------------<br />gnome是桌面环境，类似于windows,windows有什么作用，他就有什么作用。<br />windows有资源管理器explorer，gnome有nautilus<br />windows有记事本，gnome有很多编辑器，诸如gedit<br />windows有媒体播放器wmplayer，gnome有gmplayer<br />windows有网络浏览器IE,gnome有galeon<br />windows有系统监视器，gnome有gnome-system-monitor<br />windows有OE，gnome有evolution<br />windows有QQ,gnome有gaim<br />windows有acdsee, gnome有gthumb<br />windows有photoshop，gnome有gimp<br />windows有Acrobat,gnome有ggv<br />windows有winamp,gnome有xmms<br />windows有M$ office,gnome有Open Office<br />windows有金山词霸，gnome有stardict<br />windows收费的，gnome都免费。<br /><br />----------------------------------------------------------------------<br />什么是 GNOME<br /><br />GNOME 是一种让使用者容易操作和设定电脑环境的工具。GNOME 包含了 Panel (用来启动此程式和显示目前的状态)、桌面 (应用程式和资料放置的地方)、及一系列的标准桌面工具和应用程式，并且能让各个应用程式都能正常地运作。不管你之前使用何种操作系统，你都能轻易地使用 GNOME 功能强大的图形接口工具。<br /><br />GNOME 是完全公开的 (免费的软件)，它是由世界上许多程式设计人员所发展出来的，你可以免费地取得它的源代码。如果你对 GNOME 有兴趣的话，可以参观 GNOME 的网站 http://www.gnome.org。<br /><br />对使用者而言，GNOME 有许多方便之处。GNOME 提供非文字的接口，让使用者能轻易地使用应用程式。<br /><br />GNOME 设定容易，你可以将它设定成任何你想要的模式。GNOME 的 Session 管理员能记住先前系统的设定状况，因此，只要你设定好你的环境，它就能够以你所想要的方式呈现出来。GNOME 支援许多种语言，或是你也可以新增其他不同的语言。GNOME 甚至还支援 &quot;拖拉&quot; 协定，让 GNOME 能够使用本来不支援的应用程式。<br /><br />对程式设计者而言，GNOME 也有它的方便处。程式设计人员不需要购买昂贵的版权来让他们所发展出来的软件相容于 GNOME。事实上，GNOME 是不受任何厂商约束的&mdash;它任一元件的开发或修改均不受限于某家厂商。<br /><br />GNOME 可以多种程式语言来撰写，并不受限于单一语言。GNOME 使用 Common Object Request Broker Architecture (CORBA) 让各个程式元件彼此正常地运作，而不需考虑它们是用何种语言所写成的，甚至是在何种系统上执行的。GNOME 可在许多类似 UNIX 的作业平台上执行，包括 Linux。<br /><br />GNOME 由 GNU Network Object Model Environment 的第一个字母所组成，GNOME 属于 GNU 计划中的一部份。<br /><br />GNU 计划开始于1984年，专注于发展类似 UNIX 且完全免费的操作系统。如果你对 GNU 计划有兴趣的话，可以参观一下这个网站 http://www.gnu.org。(Unlinux.com)<br /><br />----------------------------------------------------------------------<br />GNOME、XWindow、KDE区别？<br /><br />很多LINUX初学者分不清楚linux和X之间,X和Xfree86之间,X和KDE,GNOME等之间是什么关系.常常混淆概念,我想以比较易于理解的方式说明一下X,X11,XFREE,WM,KDE,GNOME等之间的关系.由于本人水平有限可能存在错误,请高手指正.      <br /><br />  一,linux本身没有图形界面,linux现在的图形界面的实现只是linux下的应用程序实现的.      <br />  图形界面并不是linux的一部分,linux只是一个基于命令行的操作系统,linux和Xfree的关系就相当于当年的DOS和WINDOWS3.0 一样,windows3.0不是独立的操作系统,它只是DOS的扩充,是DOS下的应用程序级别的系统,不是独立的操作系统,同样XFree只是 linux   下的一个应用程序而已.不是系统的一部分,但是X的存在可以方便用户使用电脑.WINDOWS95及以后的版本就不一样了,他们的图形界面是操作系统的一部分,图形界面在系统内核中就实现了,没有了图形界面windows就不成为windows了,但linux却不一样,没有图形界面linux还是   linux,很多装linux的WEB服务器就根本不装X服务器.这也WINDOWS和linux的重要区别之一.      <br /><br />  二,X是协议,不是具体的某个软件:      <br />  X   是协议,就像HTTP协议,IP协议一样.这个概念很多初学者甚至学习LINUX有一定时间的人都混淆,一个基于X的应用程序需要运行并显示内容时他就联接到X服务器,开始用X协议和服务器交谈.比如一个X应用程序要在屏幕上输出一个圆那么他就用X协议对X服务器说:喂!我需要在屏幕上画一个圆.X应用程序只负责告诉X服务器在屏幕的什么地方用什么颜色画一个多大的圆,而具体的&quot;画&quot;的动作,比如这个圆如何生成,用什么显卡的驱动程序去指挥显卡完成等等工作是由X服务器来完成的.X服务器还负责捕捉键盘和鼠标的动作,假设X服务器捕捉到鼠标的左键被按下了,他就告诉X应用程序:亲爱的应用程序先生,我发现鼠标被按下了,您有什么指示吗?如果X应用程序被设计成当按下鼠标左健后再在屏幕上画一个正方形的话,X应用程序就对X服务器说:请再画一个正方形,当然他会告诉服务器在什么地方用什么颜色画多大的正方形,但不关心具体怎么画--那是服务器的事情.      <br />  那么协议是需要具体的软件来实现的,这就是下面我要讲的:      <br /><br />  三,X和XFree86的关系.      <br />  有了协议就需要具体的软件来实现这个协议.就好比我们有了交通法规就需要交警去根据法规维护交通秩序一样.Xfree86就是这样一个去根据法规实现协议的   &quot;交警&quot;.他按照X协议的规定来完成X应用程序提交的在屏幕上显示的任务.当然不仅仅是某个特定的交警才可以去维护和实现这个法规,比如还可以由交通协管员来实现交通法规,必要的时候警察也可以介入,当然前提是他们都要懂得交通法规,也就是要懂得协议.所以实现X协议的软件也并不只有XFree86,   XFree86只是实现X协议的一个免费X服务器软件.商业上常用MOTIF,现在还有XORG,还有很多很小的由爱好者写的小的X服务器软件.甚至可以在WINDOWS上有X服务器运行,这样你可以在linux系统上运行一个X应用程序然后在另一台windows系统上显示.多么神奇.你可以用   google找到这样的X服务器软件.只不过在LINUX上最常用的是XFree86.(现在的linux发行版都用Xorg了)顺便说一句,苹果电脑的图形界面用的也是X协议,而且被认为是做的最好的X协议图形界面,并且他对X协议的实施是做在系统内核里的,所以性能明显好很多,这就是为什么很多大型三维图形设计软件都是在苹果平台上的原因.      <br />  为了便于理解拿HTTP协议来比较:      <br />  协议是HTTP   (hyper   text   transmission   protocol)      <br />  实现这个协议的常用服务器有:apache   IIS   等      <br />  请求这些服务器传输文件的客户有:IE   ,MOZILLA   ,NETSCAPE等.      <br />  协议是X      <br />  实现这个协议的常用服务器有Xfree86   ,Xorg   ,Xnest等      <br />  请求这些服务器来完成显示任务的客户:所有的X应用程序.      <br />  只不过HTTP协议的服务器和客户端通常都在两台不同的电脑(服务器和客户机)之间来实现,所以一般人对这个比较容易理解.而X协议的服务器和客户端程序通常在同一台电脑上,因此很多用户都感到对此很难理解.既然是协议,那么肯定和平台无关的,因此可以让X应用程序显示在任何装有X服务器的远程计算机上. 甚至显示在装有Xnest服务器的windows系统上.只不过在大多数情况下,X应用程序都用本机的X服务器,然后X服务器将显示结果输出到本机的显示器.这也是很多人不理解X是一种协议的原因.      <br /><br />  四,X和X11R6又是什么关系?      <br />  不知道初学者有没有注意到/usr/X11R6这个目录,这是XFree的默认安装目录      <br />  X11R6   实际上是   X   Protocol   version   11   Release   6      <br />  (X协议第11版第六次发行)的意思,就是说目前用的X协议是第11版的,然后经过了6次小的修正.不同版本的X协议是不能通信的.就象我们现在IPV4和IPV6不能通信一样,不过不用担心,现在的X服务器软件和X应用程序都遵循X11R6.      <br />  另外XFree86   3.3.6   XFree86   4.3.6   等这些版本是实现X协议的软件XFree86的版本号.这是初学者经常高混淆的概念.      <br />  协议版本和实现协议的软件的版本--这两个概念的区别你分清楚了吗?      <br /><br />  五,X服务器和WM(window   manager   窗口管理器)之间是什么关系.      <br />  平时大家起动图形界面是怎么启动的呢?      <br />  如果你是一开己就进入图形界面那就太遗憾了.应为你错过了了解X服务器起动过程的好时机.不过没关系.你打开一个XTERM输入:      <br />  init   3      <br />  就可以安全的回到字符界面.      <br />  好了,等做完以下实验你就完全明白X和WM(window   manager   窗口管理器)之间是什么关系了.      <br />  先输入以下命令:      <br />  #startx      <br />  起动图形界面,你看到的是一个和平时使用一样的完整的图形界面操作环境.      <br />  你可以最大化,最小化,移动,关闭窗口等.      <br />  按ctrl+alt+backspace反回字符界面.      <br />  输入:      <br />  #xinit      <br />  再次启动图形界面,你看到了什么,你看到一个XTERM.而且不能移动.但是你可以在这个XTERM中输入命令打开X应用程序,如果我输入:      <br />  #mozilla      <br />  打开浏览器,你看到的浏览器和平时有什么不同吗?他在屏幕中间,不能移动,不能最小化,不能最大化,没有边框.      <br />  为什么同样一个X应用程序会有这样的不同呢?因为我们用startx起动图形界面的时候同时也启动了一个WM(即窗口管理器),如果你用KDE就起动了 KDE,如果你用GNOME就起动了GNOME.但是你用xinit起动图形界面的时候却没有起动WM.      <br />  现在你明白窗口管理器的作用了吗?他的作用就是最大化,最小化,移动,关闭窗口等.而这些不是X服务器来负责完成的.      <br />  如果你用xinit起动图形界面并在xterm中输入twm,看看会有什么?      <br />  xterm被加上了一个边框,你可以通过这个边框移动,最大化,最小化这个xterm,twm就是XFree86中自带的窗口管理器,是一个比较简陋的最简单的窗口管理器,但是他具有窗口管理器的全部特征.      <br />  如果你不输入twm而输入gnome-session就可以起动GNOME      <br />  或者输入startkde起动KDE.      <br />  通过以上的实验你就可以清楚的明白他们之间的关系.      <br /><br />  六,关于KDE和GNOME      <br />  KDE   和GNOME是LINUX里最常用的图形界面操作环境,他们不仅仅是一个窗口管理器那么简单,   KDE是K   Desktop   Environment   的缩写.他不仅是一个窗口管理器,还有很多配套的应用软件和方便使用的桌面环境,比如任务栏,开始菜单,桌面图标等等.      <br />  GNOME是GNU   Network   Object   Model   Environment   的缩写.和KDE一样,也是一个功能强大的综合环境.      <br />  另外在其它UNIX系统中,常常使用CDE作为这样一个环境.      <br />  其它的小型窗口管理器有:      <br />  window   maker,after   step,blackbox,fvwm,fvwm2,等等都是常用的优秀窗口管理器.REDHAT9中有   window   maker   但是默认不安装,大家可以装来试试.只要xinit再wmaker&amp;就可以用windowmaker了.      <br />  七,linux图形界面层次关系总结      <br />  linux本身--&gt;X服务器&lt;-[通过X协议交谈]-&gt;窗口管理器(综合桌面环境)--&gt;X应用程序.</span></span>                    <p><span style="font-size: medium; font-family: 黑体"><span style="font-size: medium; font-family: 黑体">&nbsp;</span></span></p>
          <br/>
          <span style="color:red;">
            <a href="http://zpq2004.javaeye.com/blog/155950#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Tue, 15 Jan 2008 10:46:48 +0800</pubDate>
        <link>http://zpq2004.javaeye.com/blog/155950</link>
        <guid>http://zpq2004.javaeye.com/blog/155950</guid>
      </item>
      <item>
        <title>李纳斯·托沃兹(Linus Torvalds)：Linux之父</title>
        <author>zpq2004</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://zpq2004.javaeye.com">zpq2004</a>&nbsp;
          链接：<a href="http://zpq2004.javaeye.com/blog/155630" style="color:red;">http://zpq2004.javaeye.com/blog/155630</a>&nbsp;
          发表时间: 2008年01月14日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <span style="font-size: medium; font-family: 黑体">导语：28岁的芬兰青年李纳斯创造了一个全新的世界：就是一种名为Linux的操作系统。它所产生的力量决定了编程领域的新氛围，正如我们的环境决
定了动植物的特性一样。创造简洁优雅的程序，写出干净而无冗长的代码，或者是超一流的程序，就足以赢得同行们的尊敬和推崇。而李纳斯走得更远，他不但重新
定义了一流程序、代码和软件的基准，而且迈向了&ldquo;黑客&rdquo;的终极高度，开创了另一个互联网的传奇故事。</span><h4><span style="font-size: medium; font-family: 黑体">21世纪是自由软件的世纪</span></h4><p><span style="font-size: medium; font-family: 黑体">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 好像是谈论梦想，又好像是&ldquo;X档案&rdquo;中的一段情节。一个21岁的芬兰大学生，在学生宿舍里写了一个操作系统的内核&mdash;&mdash;Linux，然后公布于众，吸引了成千上万的程序员为之增补、修改和传播，短短几年就拥有了1000多万的用户，成为地球上成长最快的软件。</span></p><p><span style="font-size: medium; font-family: 黑体">　
　就在两年前，你去问一个程序员自由软件的前景，他肯定会告诉你，自由软件有意思，但难成气候。而今，无数的程序员都将Linux作为自己首要的追求，否
则不足以证明自己的境界。就在一年前，你去问一个大公司的信息主管有关自由软件的可行性，他肯定会告诉你，这东西他不会、也不敢用，因为缺乏相应的支持，
缺乏应有的商业化质量。</span></p><p><span style="font-size: medium; font-family: 黑体">　　但今天，局势大变。《幸福》500大企业的信息主管已经纷纷在着手Linux的评估和部署。而且，在不到一年时
间内，Linux就得到了IBM、HP、Compaq、Sun、SGI、Dell、Oracle、Informix、SAP、Sybase、CA、
Intel、SCO等除微软之外的几乎所有计算机大公司的支持。虽然已被一群信徒崇拜多年，Linux，这个稳定、开放、可靠、廉宜的操作系统，只有在
1999年才堂而皇之跻身业界主流，成为微软帝国合法的竞争对手。而且，成为地球上最炙手可热的软件。</span></p><p><span style="font-size: medium; font-family: 黑体">　　一台邮件服务器成年累月运行，却
从不需要重新启动；一台网络服务器面对海量访问，却从不崩溃；一个操作系统还带源代码，可以自由地无限制地修改。这一切，听起来可望不可及。但实际上，数
以千百计的公司真的找到了实现了网络零故障的秘诀。而且它不是Windows，而是Linux。&nbsp;</span></p><p><span style="font-size: medium; font-family: 黑体">　　光芒四射的Linux凭借产品的卓越
脱颖而出。毫无疑问，这要归功于世界各地无数富有才华却又不计报酬的黑客（特指执着狂热的程序员），尤其是李纳斯&middot;托沃兹创世纪般的贡献。曾经被无数个巨
头公司猛烈攻打，而屹然不动的微软帝国，如今，有可能被一个人发动的战争所摧毁。</span></p><p><span style="font-size: medium; font-family: 黑体">　　因为Linux不仅仅是一个产品，其背后有着人性中最
悠久的底蕴，有着自由软件深厚的传统，又有着互联网势不可挡的自由共享精神的背景。而且它所摧毁的不仅仅是一家公司，而是整个软件产业封闭的传统商业模
式。因此，Linux掀起的不只是一场战役，而是一场影响深远的革命。它的直接作用就是打破软件世界的单极垄断，瓦解软件业的知识霸权。它的深层意义就
是，将软件业从系统集成和产品制造为中心的低级阶段推向以服务为中心的高级阶段。</span></p><p><span style="font-size: medium; font-family: 黑体">&nbsp;&nbsp;&nbsp;&nbsp; Tim Oreilly说，自由软件将像&ldquo;Intel Inside&rdquo;，成为计算机业的下一波浪潮。更有人直截了当地说：&ldquo;21世纪将是自由软件的世界&rdquo;。</span></p><p><span style="font-size: medium; font-family: 黑体">&nbsp;&nbsp;&nbsp;&nbsp; 正如互联网难以置信的爆炸一样，自由软件也是不可思议地猛推到人们面前。已经习惯了风暴式创新的信息产业，仍然被自由软件无以伦比的声势所震撼。但是，至今还有许许多多的人对这场革命无所适从，或茫然无知。 </span></p><h4><span style="font-size: medium; font-family: 黑体">芬兰的荷马史诗</span></h4><p><span style="font-size: medium; font-family: 黑体">　　一个冬天只有三个小时日照，夏天几乎全天日照的芬兰，约1/4的国土处在北极圈内。这个寒冷的国度，遍布着大
大小小约60000多个湖泊，芬兰也因此被人们称为&ldquo;千湖之国&rdquo;。在芬兰，一年中实际上只有三个季度，即春冬、夏季和秋冬。&ldquo;严寒的冬天&rdquo;长达8个月之
久，而夏天却只有60天左右。芬兰的历史可以说是芬兰人与自然、与寒冷做艰苦卓绝斗争的一个神话。</span></p><p><span style="font-size: medium; font-family: 黑体">　　芬兰人的民族史诗《卡勒瓦拉》就记载
了这个民族从远古时代，直到圣女玛丽亚生下英雄卡勒利亚王为止的所有神话。这部史诗的作者从丰富的民间传说、神话及歌谣中汲取了一切养料和精彩篇章，将它
们收集、改编并润色整理。1835年初版时有35篇长诗，共12000多行；而1849年再版时，篇幅几乎增加了一倍，共50篇长诗，23000余行，是
由数千年的民间传说拼凑而成，最终成为芬兰人的&ldquo;荷马史诗&rdquo;，对芬兰语言的形成和国家的文化起到了极为重要的作用。该诗的主人公是一个道士
Vainamoinen，最终则成为世界的主宰。</span></p><p><span style="font-size: medium; font-family: 黑体">　　虽然卡勒瓦拉是一个虚构、夸张的故事，但它与现实世界中的另一部&ldquo;杰作&rdquo;非常相似，这
部杰作就是由互联网促成的，是由成千上万名不同的黑客相助的结果。而始作俑者就是28岁的芬兰青年-李纳斯&middot;托沃兹，他创造了一个全新的世界：Linux
的操作系统。它所产生的力量重新定义了编程领域的全新氛围，正如我们的环境决定了动植物的特性一样。</span></p><p><span style="font-size: medium; font-family: 黑体">　　对大多数黑客来说，他们的目标就是创造简洁优雅的程序，干净而无冗余的代码。或者是超一流的程序，以此赢得同行们的尊敬和推崇。而李纳斯走得更远，他不但重新定义了一流程序、代码和软件的基准，而且迈向了&ldquo;黑客&rdquo;的终极高度。</span></p><p><span style="font-size: medium; font-family: 黑体">　
　Linux的装机量还无法与Windows的1亿多用户相比，甚至还不能与苹果Mac的5000万用户相比，但是Linux的崛起势头却令人咋舌。由于
它可以在互联网上免费发送的，因此在那些互联网发达的国家十分流行，例如南非、古巴、墨西哥、斯洛文尼亚、克罗地亚、俄罗斯、印度、巴基斯坦、尼加拉瓜、
菲律宾、玻利维亚等。从技术上讲，Linux使其他品牌的Unix黯然失色，成为Unix市场最重要的组成部分。连Unix最早的共同创始人Dennis
Ritche也说：&ldquo;Linux值得称赞。&rdquo;</span></p><p><span style="font-size: medium; font-family: 黑体">　　Linux的传奇还有许多线索，但它的主角就是李纳斯。这是一位具有非凡智慧和魅力的黑客，他单枪匹马能解决的问题，往往要让一群程序员苦干数月。当然，这也是一个互联网的传奇故事，是依靠互联网分布式协作模式的成果。</span></p><p><span style="font-size: medium; font-family: 黑体">　
　事实上，Linux是互联网的卡勒瓦拉，这个巨大的代码拼凑物代表着这个快速增长的电脑王国。它将开发者和使用者紧紧地联系在一起，将这么多程序员连结
在一起的最大动力就是要创造出世界上最伟大的操作系统。它比任何一种商用Unix都要强劲，可以运行在各种硬件平台上，而且可以无限制地按需定制。这个操
作系统可以完全与微软的旗舰产品Windows
NT相媲美：具有真正的多任务功能、虚拟内存、共享库、TCP/IP网络以及其他各种先进性能。许多人都将它视为NT最强大的竞争对手，也是微软垄断下的
唯一可替代的选择。</span></p><h4><span style="font-size: medium; font-family: 黑体">一个大鼻子的书呆子</span></h4><p><span style="font-size: medium; font-family: 黑体">　　&ldquo;我是在大学校园的游行示威中诞生的。我们家的爱巢修筑在我祖父公寓的一个房间里。我的第一个摇篮是一个洗衣用的筐子。幸好那个时期没有给我留下什么记忆。</span></p><p><span style="font-size: medium; font-family: 黑体">　　我是一个长相丑陋的孩子。要是好莱坞有一天想拍一部关于Linux的电影的话，我希望他们一定得找一个像汤姆&middot;克鲁斯那样的人担当主角，但在现实中，我的相貌可没有那么好。千万别误解我的话，我还没丑到《巴黎圣母院》里那个驼子的地步。</span></p><p><span style="font-size: medium; font-family: 黑体">　
　但可以想象一个我的大包牙，凡是见过我小时候照片的人，都会觉得我的相貌酷似河狸。再想象一下我不修边幅的衣着，以及一个托沃兹家族祖祖辈辈遗传下来的
大鼻子，这样，在你脑海中我的模样就形成了。有时别人对我说，我的鼻子长得简直&ldquo;富丽堂皇&rdquo;。照片上我们家三代男人的脸部轮廓让人痛苦地联想到，留在别人
记忆里的唯有鼻子而没有什么其他的男人气质。</span></p><p><span style="font-size: medium; font-family: 黑体">　　为了让你对我模样的想象更完整一些，现在再来补充一些细节。棕色头发(在美国这里，人们把它称做金黄色，但在斯堪的纳维亚就叫做&ldquo;棕色&rdquo;)、蓝眼睛、稍有点近视，于是戴副无伤大雅的眼镜。另外眼镜至少可以让人不大注意我的鼻子，于是我就带上了，任何时候都不摘下来。</span></p><p><span style="font-size: medium; font-family: 黑体">　　我在穿着方面的缺乏品味。通常，我都是选深蓝色的衣服，这就意味着我只穿蓝色牛仔裤，再配一件蓝色翻领毛衣&mdash;&mdash;也可能是青绿色之类。</span></p><p><span style="font-size: medium; font-family: 黑体">　　这些都没什么影响。因为，我有迷人的个性。</span></p><p><span style="font-size: medium; font-family: 黑体">　　我是一个古怪的书呆子，一个为人取笑的对象。我有着其他合乎大家想象中的书呆子的所有特点：比如数学极好，物理也非常棒，社交能力却差得一塌糊涂等等。每一个人大概在上学时都遇到过像我这样的人：在数学方面很突出，但不是因为学习刻苦，而是天生就是那个样子。</span></p><p><span style="font-size: medium; font-family: 黑体">　
　我可能的确很怪，而且是个小矮个，但我混得不错。我在体育方面虽说不上能达到运动员的水平，但也不是不可救药的家伙。我没花什么力气就成了在学校里属于
有点档次的那类学生，尽管从来也不属于出类拔萃的那种，可能主要是因为我不那么玩命。其实我即使在社会层面也有别人可以接受的地方。好象谁也不会太关注我
的鼻子。</span></p><p><span style="font-size: medium; font-family: 黑体">　　回过头来看，当时的大多数孩子似乎在穿衣服方面也不太讲究，而当我们长大后，又突然要由别的什么人来决定我们穿什么衣服了。就
我自己而言，这些人主要是某些高技术公司的销售人员，我就穿他们在会议上免费发送的T恤和夹克。而且我还有一个老婆，由她决定我的衣橱里应该放些什么样的
衣服，还替我挑选凉鞋才袜子。于是我更用不着为此事操心了。</span></p><p><span style="font-size: medium; font-family: 黑体">　　我的鼻子越长越大。但至少现在，与我的鼻子相比，我的人格力量占了上风。&rdquo;</span></p><h4><span style="font-size: medium; font-family: 黑体">终极黑客出手</span></h4><p><span style="font-size: medium; font-family: 黑体">　　&nbsp;Linux这部史诗发端于赫尔辛基。似乎天下的黑客都在为自己的生命创作源程序，李纳斯也不例外。他的家就在
离市中心不远的Kalevagatan（与卡勒瓦拉很相近）大街。这是一个19世纪的建筑与现代化平房交相呼应的地方。李纳斯与妻子住在这里。他的家很像
是大学生的集体宿舍，楼梯下总放着一排排自行车。</span></p><p><span style="font-size: medium; font-family: 黑体">　　李纳斯本人看起来就像一名学生，而不像道士。他中等身材，浅褐色头发，蓝眼睛，目光透
过镜片直直地射向你，只有浓密的眉毛是黑色的，衬着一张孩子气的脸庞。他的房间四周排列着许多书籍，里面布满了油画和各种装饰品，相当低廉的窗帘，两把扶
手椅之间挂着发干的鳄鱼皮，房间里还有两只目空一切的猫和几台计算机：三台PC，一台Power
Mac，还有三台从DEC借来的基于Alpha芯片的微机。它们不起眼地布置在房间的角落中。另外一样很有意思的东西不易察觉：那是一根将计算机连到电话
插座的导线，这是通向互联网的256K的专线，由当地的一家ISP安装并承担费用，它是对这位Linux道士的象征性奖励。</span></p><p><span style="font-size: medium; font-family: 黑体">　　Linux
并不是一件刻意创造的杰作，而完全是日月积累的结果，是经验、创意和一小块一小块代码的合成体，不断的积累使其成为一个有机的整体。Linux初期的许多
编程工作是在Sindair
QL机器上完成。这台机器化掉了他2000多美元，对他来说，这可是一笔&ldquo;巨额&rdquo;投资。这是一种十分古怪的英国产电脑，是1984年推出的。它有无数的缺
点，却有一个真正的优点：它是一套真正的多任务系统。有一件十分关键的事件最终导致了Linux的诞生。</span></p><p><span style="font-size: medium; font-family: 黑体">　　&ldquo;上大学第一年我的宿舍在一
层，靠窗户的一张桌子上就摆着Sinclair
QL电脑。但我没有编写多少程序，原因之一是我必须集中精力读书，原因之二是我也找不到什么项目去做。没有项目可做就会缺乏热情。你总是在寻找能够让你鼓
起劲去做的事情。当时似乎是参军的好时光。我当时十九岁，正因为自己的电脑毛病太多而心情沮丧。而且，当时也没有任何有意思的电脑项目，于是我就搭上了一
辆开往拉普兰的火车。在那里手执武器上了一个月的&ldquo;体育课&rdquo;之后，我便觉得在我有生之年完全有资格从此一动不动，享受平静的生活了。惟一可做的事情就是把
编码打入键盘，或者手里端着一瓶比尔森啤酒（说真的，在我复员整整十年后，才第一次参加一次剧烈的活动。当时大卫硬拉着我去冲浪。旧金山半月湾的强大海浪
差点没把我淹死，我的腿一连酸了好几天）。</span></p><p><span style="font-size: medium; font-family: 黑体">　　部队服役结束于1990年5月7日。我连我们的结婚纪念日都记不住，但我却不大可能忘记我离开部队的日子。</span></p><p><span style="font-size: medium; font-family: 黑体">　　那年整个夏天我没有干什么正事。我大学二年级的课程直到秋天才开始。我的电脑状态也很不佳。于是我就穿着一件破旧的睡衣，逗猫玩，偶尔和朋友们联欢会，让他们笑话我的保龄球和台球的拙劣技术。当然，我对我的下一部电脑也做了一些设想。我面临的是一个电脑迷的困境。&rdquo;</span></p><p><span style="font-size: medium; font-family: 黑体">　
　1990年秋天，李纳斯在赫尔辛基上Unix课程。学校刚刚安装了一台运行Ultrix（Unix诸多版本中的一种）MicroVAX。Unix是大学
科学和工程院系最流行的操作系统，那些处理繁重任务的公司也使用Unix。Unix的问世与互联网的历史密不可分。事实上，互联网上运行的大多数操作系统
都是Unix。1993年，AT&amp;T将Unix卖给Novell。1995年，Novell又将它卖给圣克鲁斯丁。如今，像SCO、IBM、
DEC、HP和Sun等都有不同的版本，造成了市场的混乱，成为微软Windows攻击的致命弱点。</span></p><p><span style="font-size: medium; font-family: 黑体">　　但1990年，李纳斯还沉浸在许多
世俗的事物中。由于大学的机器无法同时处理16个以上的用户，要用机器，就得排长队等待。那时李纳斯刚刚得到一台PC。他从笨拙的DOS操作系统学不到任
何东西，而他的课本中就有安德鲁&middot;塔南鲍姆（Andrew
Tanenbaum）的《操作系统：设计与实现》，该书提供了Minix（Unix的变种）的操作指南。Minix虽然很简单，功能有限，但是Minix
却在李纳斯的脑海中奏出一个和音：&ldquo;1987年发布后两个月来，就有一个新闻组汇集了世界各地的40000名用户。&rdquo;许多用户需要更多的功能。塔南鲍姆
说：&ldquo;我每天都收到几百个电子邮件，要求增加这个功能、那个功能。但我只能一再回绝，使许多人都非常沮丧和失望。&rdquo;</span></p><p><span style="font-size: medium; font-family: 黑体">　　&ldquo;每个人都会一本改变其一生的书籍，比如《圣经》、《资本论》等等，而那本红色的简装本教科书差不多等于睡在了我的床上。&rdquo;</span></p><h4><span style="font-size: medium; font-family: 黑体">Linux创世纪</span></h4><p><span style="font-size: medium; font-family: 黑体">　　李纳斯开始自己试验性地编程，他将Minix当作脚手架，开发一个新的程序。他按两个过程进行，一个过程写A，另一个过程写B，但他从来没有想过要创建一个内核（操作系统中用于实时处理和控制工作的部分）。他只通过阅读新闻组来修改两个处理过程。</span></p><p><span style="font-size: medium; font-family: 黑体">　
　李纳斯很早就是一名黑客，&ldquo;如果说我孩提时代一些最幸福的记忆是玩我外公的一台老式电子计算器，对此大概谁也不会感到惊奇。我外公是赫尔辛基大学的一位
统计学教授。那时的计算器可不像现在的那样能够很快的一下就给出答案，它们还得有个计算过程。一边计算一边闪烁个不停，好像在对你说：&ldquo;瞧，我还活着，这
次计算我只用10秒钟就能完成，同时我还能对你眨眼睛，告诉你我已经完成了多少工作。&rdquo;</span></p><p><span style="font-size: medium; font-family: 黑体">　　这一点非常有意思。比现在的计算器令人兴奋多
了，因为现在的玩意儿在计算简单问题时全然不费力气。而当早期的计算器计算时，你知道它们正在辛苦地工作。并且，这一点可以一目了然地看出来。大概是在
1981年，当时我外公抱回来一台崭新的Commodore VIC-20计算机。刚开始还比较有节制，后来简直就被它迷住了。</span></p><p><span style="font-size: medium; font-family: 黑体">　　我开始用数字形式编写程序，然后再用手工进行转换。这就是用机器语言编程序。我已经能够驱使电脑做事情，对一切细节我都能够加以控制。由于在我和电脑之间没有抽象的屏障，我很快地就能接受目标，这便是和一台机器变得亲密的感受。</span></p><p><span style="font-size: medium; font-family: 黑体">　　就这样，十二岁、十三岁、十四岁过去了。其他孩子在外面踢足球的时候，我却觉得外公的电脑更加有意思。我每个礼拜开一次会，这是在我的日历上唯一的社交活动，偶尔和电脑一同熬夜时除外。</span></p><p><span style="font-size: medium; font-family: 黑体">　　外公死后，他的电脑就成了我的生活伴侣。</span></p><p><span style="font-size: medium; font-family: 黑体">　
　由于我父母的离婚，我们手头很拮据。当时我记得最清楚的是，我妈妈不得不经常典押她唯一的投资&mdash;&mdash;无度电话公司的股票。在芬兰，只要你拥有一部电话就能
拥有一张该公司的股票。我妈妈的股票大约值五百美元，每当我们手头特别缺钱花时，她就只好拿着股票到当铺去。我记得曾和妈妈去典押过一次，心里感到非常窘
迫（如今我是这家公司的董事会成员。事实上，赫尔辛基电话公司是我任董事会成员的唯一一家公司）。&rdquo;</span></p><p><span style="font-size: medium; font-family: 黑体">　　1991年，他需要一个简单的终端模拟程序来访问新闻组。于是李纳斯坐下来，写了一个基于两步处理的应急程序。工作内容非常简单，一个过程就是从键盘中读出并发送到Modem上，另一个过程就是从Modem上读取并发送到屏幕上。</span></p><p><span style="font-size: medium; font-family: 黑体">　
　1991年夏，也就是李纳斯有了第一台PC的六个月之后，李纳斯觉得自己应该下载一些文件。但是在他能够读写到磁盘上之前，他又不得不编写一个磁盘驱动
程序。同时还要编写文件系统。这样有了任务转换功能，有了文件系统和设备驱动程序，就成了Unix，至少成了 Unix的内核。Linux由此诞生了。</span></p><h4><span style="font-size: medium">再一次走在了自己的前面</span><br /></h4><p><span style="font-size: medium; font-family: 黑体">　　&ldquo;坦白地讲，在使用UNIX的人当中，有许多是几乎发疯的人。他们不是集邮疯子，不是把邻居的狗毒死的疯子，而是一些生活方式很另类的人。 </span></p><p><span style="font-size: medium; font-family: 黑体">　
　别忘了，UNIX最初的主要发展是在六十年代和七十年代，我当时正在祖父公寓里的一个洗衣筐子里睡觉。当时正是美国嬉皮士的时代，那是一个了各种理想的
时代。革命、解放、自由爱情&hellip;&hellip;于是UNIX的相对开放性对这类人就特别有吸引力，尽管在当时它还缺乏商业上的价值。 </span></p><p><span style="font-size: medium; font-family: 黑体">　　大概是
1991年前后，当时拉尔斯&middot;沃兹尼亚斯（Lars
Wizenius）拉着我去赫尔辛基理工大学参加一个集会。当时的演讲者是理查德&middot;斯托曼（Richard
Stallman）。此人是自由软件的鼓吹者。他还撰写了《自由软件宣言》和自由软件产权证书，即GPL。他首先提出的关于开放源代码的概念完全是有意
的，而并非出于偶然，和UNIX最初的开放发展理念是相吻合的。我在生活中第一次见到了典型的留着长发、蓄着长胡子的黑客形象，其代表就是理查德。这样的
人在赫尔辛基为数不多。</span></p><p><span style="font-size: medium; font-family: 黑体">　　&nbsp;我当时可能没有看到眼前的光芒，但我猜他说的一些话也多少给了我一些触动。毕竟，我后来为Linux使用的就是GPL。就这样，我再一次走在了自己的前面。&rdquo;</span></p><p><span style="font-size: medium; font-family: 黑体">　
　如果李纳斯没有在Minix新闻组中谈论Linux，那么这个新生的系统很可能就夭折了。一开始，他向赫尔辛基大学申请FTP服务器空间，可以让别人下
载Linux的公开版本。&ldquo;Linux是我的工作名，但如果我把它作为正式名字，别人肯定会认为我是一个自大狂，不会把Linux当回事。于是我给它起了
一个很糟糕的名字：Freax。是Free（自由）+Freak（怪诞）+X组成。但负责FTP站点的阿里&middot;莱姆克（Ari
Lemmke）极不喜欢这个名字，&ldquo;他倒喜欢我当时正在使用的另一个名字――Linux。我承认我并没有太坚持。但这一切都是他搞的。所以，我既可以不惭
愧地说自己不是那么以个人为中心，也不得不承认自己并非完全没有自我意识。并且我认为，这是个不错的名字。&rdquo;</span></p><p><span style="font-size: medium; font-family: 黑体">　　1992年1月，大概只有
100人左右使用Linux，但他们为Linux提供了十分关键的洗礼。这些早期的上传和评论十分重要。尤其是那些同行们为修补代码错误而上传的补丁。李
纳斯很偶然地闯进一个在线Karelia，开始着手将补丁拼凑起来。在网上，任何地方、任何人都可以得到基本的Linux文件。电子邮件使他们可以方便地
进行评论并加以改善，而Usenet新闻组则提供了一个讨论的论坛。Linux以个人的产品起步，而变成了一个百锦图，成了志向相同的黑客们的一场运动。</span></p><p><span style="font-size: medium; font-family: 黑体">　
　既使通过黑客的补丁将其不断改善，Linux内核本身也没有多大用处。Linux的腾飞必须具备其他因素，其中最关键的是自由软件基金（FSF）的
GNU计划。GNU的目标就是要编写一个完全免费的Unix版本：包括内核及所有相关的组件，可让用户自由共享并且改写软件。而Linux无疑是得来全不
费功夫。</span></p><p><span style="font-size: medium; font-family: 黑体">　　通常一个操作系统要等待别人根据它来写相关的应用程序，而Linux却反其道而行之，李纳斯将Linux进行改写，使其与GNU现有的应用软件很好地结合起来。通过这种方式，Linux一夜之间就拥有了图形用户界面。</span></p><h4><span style="font-size: medium; font-family: 黑体">与敌共眠</span></h4><p><span style="font-size: medium; font-family: 黑体">　　&ldquo;一个每月挣五十美元的人，他可能会为一个软件花费二百五十美元吗？如果花一点钱买非法拷贝软件，而把五个月的工资
用于吃饱肚子，我一点不觉得他不道德。这种侵权是道义上可以接受的。去追捕这种&ldquo;侵权者&rdquo;是不道德的，更不要说简直就是愚蠢的。就Linux而言，谁在乎
如果只将其用于个人目的时，一个人是否真正遵循了GPL呢？那些想藉此赚大钱的人们，才是真正不道德的，不管他们是在美国还是非洲，也不管程度如何。贪欲
从来就不是善的。&rdquo;</span></p><p><span style="font-size: medium; font-family: 黑体">　　李纳斯采纳了标准GNU技术许可方案，即&ldquo;Copyleft&rdquo;（简称GPL）。这种通用公开授权，允许用户销售、拷
贝并且改动程序，但你必须将同样的自由传递下去，而且必须让你修改后的代码也免费公开。这一举措成了Linux成功的强大力量。首先，它大大促进了商用领
域的繁荣，虽然Linux可以网上免费下载，但30美元一套的CD-ROM比自己下载更方便、更经济也更快速。同时这也大大刺激了程序员的积极性。这种许
可方式可确保他们的工作免费传播，不会被逐利之徒所利用，或锁进专有产品之中。</span></p><p><span style="font-size: medium; font-family: 黑体">　　也就是说，GPL为Linux黑客们的网络新部落提供了一套成文的&ldquo;宪法&rdquo;。你可以进行开发和赢利（黑客也得吃饭），但源程序必须免费公开。</span></p><p><span style="font-size: medium; font-family: 黑体">　
　1994年3月，正式的Linux
1.0版发布，它的出现无异于网络的&ldquo;自由宣言&rdquo;。从此Linux用户迅速增加，Linux的核心开发小组也日渐强大。在Linux所包含的数千个文件
中，有一个名为Credits的文件，里面列出了100多名对Linux有过重要贡献的黑客，包括他们的名字、地址以及所做工作。其中的软件都是经过&ldquo;优
胜劣汰&rdquo;的达尔文式的选择方式所生存下来的。</span></p><p><span style="font-size: medium; font-family: 黑体">　　Linux的方法看起来很简单：所有的黑客都可添加额外功能并完善性能。所谓的&beta;测试也不是修补漏洞，而是集成过程。</span></p><p><span style="font-size: medium; font-family: 黑体">　
　1994年，安德森&middot;艾文成立了Red
Hat软件公司，成为最著名的Linux分销商之一。他说：&ldquo;Linux和自由软件社区可以看作是真正的知识界精华。&rdquo;由于这种独特的开放性，使
Linux几乎支持任何一种平台。到Linux 2.0版，已经提供了64位处理能力（而许多Unix以及Windows
NT还是32位阶段），还具有对称性多重处理及更先进的网络功能。用户数已经突破千万大关，出现在120多个国家和地区，尤其在发展中国家，Linux更
是理想之选。</span></p><p><span style="font-size: medium; font-family: 黑体">　　Linux的黑客们包括李纳斯本人，似乎对编写应用软件不感兴趣。但随着Linux市场扩展，商业公司也开始弥补这一欠缺，包括字处理、电子表格、图形软件等强劲的桌面应用软件已经纷纷涌现。</span></p><p><span style="font-size: medium; font-family: 黑体">　
　&ldquo;我并没有成为一个完全的隐士，但是即使在Linux出现之后，我一如既往地不善交际。我的大多数朋友都很善于与人相处，但我不行。你可以想象一下，如
果从来没有给女人打过电话，那约会的情况会是怎样的呢？所以在那段时间里，我只有几个常到我那里敲窗子、想和我喝杯茶的朋友。我不认为有人会到处传说我正
在做一项伟大的事业、我将改变世界之类的话。我不认为有人曾经这么想过。&rdquo;</span></p><p><span style="font-size: medium; font-family: 黑体">　　&ldquo;对我而言，那意味着电话一直占线，没有人能给我们打电话&hellip;&hellip;后来，明信片开始从四面八方寄来。我想就是在那时，我意识到现实世界的人们确实在使用他所创造的东西。&rdquo;李纳斯的妻子萨拉&middot;托沃兹说。</span></p><p><span style="font-size: medium; font-family: 黑体">　　最知名的程序员何以维生？</span></p><p><span style="font-size: medium; font-family: 黑体">　
　&ldquo;对于任何编程的人来说，编程是世界上最有趣的事。它比下棋之类的游戏更有乐趣得多，因为它可以由你自己来制订游戏规则。而你制定什么样的规则，也就会
导出与此规则相符合的结果。然而，对于编程外行的人来说，它却似乎是世上最枯燥的事。编程给人带来的最初兴奋的原因有部分是显而易见的，那就是：通过编程
你可以支配一台计算机，而且毫无怨言。而真正使编程令人欲罢不能的是：你能让电脑做你想做的事，但是你还必须想出怎样做到的办法。</span></p><p><span style="font-size: medium; font-family: 黑体">　　通过编程和电脑，你能够构筑一个新世界，有时其设计会是非常美妙的。而能够坐下来，盯着电脑屏幕，将一个问题彻头彻尾地贯穿思考，就需要某种特定的人。比如，需要像我这种书呆子气十足的人。&rdquo;</span></p><p><span style="font-size: medium; font-family: 黑体">　
　1996年底，正当Linux如火如荼之际，一个令人震惊的消息传来：李纳斯准备离开赫尔辛基，闯荡硅谷，加盟一家不知名的计算机公司
Transmeta。许多人怀疑这会不会给发展中的Linux造成致命的伤害。但许多老资格的开发人员和商业公司都很自信，因为Linux已获得了足够的
发展动力。李纳斯为什么要到Transmeta ？&ldquo;我无法告诉你，这是最高机密。&rdquo;他腼腆地说，&ldquo;但在合同中规定，我可以一边工作一边做Linux。&rdquo;</span></p><p><span style="font-size: medium; font-family: 黑体">　
　&ldquo;我认识一个瑞典人，他在Transmeta工作。他到了赫尔辛基呆了一天和我见面，那时我说：&ldquo;总算可以毕业了。&rdquo;，因为那时我已经几年没有好好放松
了。然后他就问我是否愿意去
Transmeta，然后我和他的老板谈。一周之后，1996年的秋天，我就坐飞机到加州来看。那时我已经在Linux上干了6年，也希望有一些别的东
西。我可不想在一根绳上吊死。我不希望Linux是我生活的全部，我希望能够找到一些本身就能激励人的东西。而且，小公司人情味比较足。还有，涉足一些世
界上没有其他人涉足的领域也让人兴奋。&rdquo;</span></p><p><span style="font-size: medium; font-family: 黑体">　　李纳斯花了整整七年时间，才获得赫尔辛基大学的硕士学位。因为他把大部分时间和精力都投进了Linux。当他完成硕士论文时，他必须面对任何一个大龄黑客都必须面临的永恒问题：在现实世界中我将何以维生？</span></p><p><span style="font-size: medium; font-family: 黑体">　
　有些人像Matt Welsh一样，继续留在学术圈中；有些人如Hannu
Savolainen，销售商用Linux软件，如声卡驱动程序。而李纳斯对创办自己的公司并没有兴趣。但是，他也愉快地承认，自己也有一些黑客的欲望，
比如希望有些钱。&ldquo;当然，钱不会成为我生活的主要目标。&rdquo;</span></p><p><span style="font-size: medium; font-family: 黑体">　　李纳斯做如此选择最根本的原因，还是需要一种新的挑战。他很坦诚：&ldquo;如果Transmeta进展顺利，我只需工作就会很有钱，可以做自己想做的一切。&rdquo;对Transmeta，他唯一透露的技术细节就是公司发展超大规模集成芯片（VLSI），当然软件很关键。</span></p><p><span style="font-size: medium; font-family: 黑体">　
　Transmeta是Dave Ditzel领头的创业公司。Dave是Sun
SPARC处理器芯片开发项目的首席科学家，而SPARC是最成功的RISC芯片。Transmeta的主要投资者中就有微软的创始人之一保罗&middot;艾伦。
Transmeta的任务是创造多媒体PC的新引擎。</span></p><p><span style="font-size: medium; font-family: 黑体">　　促使李纳斯来到硅谷的原因不仅仅是Transmeta的劝诱，还有他刚刚降世的女
儿：Patrica
Miranda，生于1996年12月。女儿的到来促使他想改变一下与Linux的长期关系。这位IT业的道士已经创造了丰富多彩的Linux
2.0，而今他又专心致志于他的另一项创造&mdash;&mdash;Linus 2.0（他的女儿，见下图），我们又怎能埋怨他呢？</span></p><p><span style="font-size: medium; font-family: 黑体">　　无疑，快到而立之年的李
纳斯已经为人类创造了一部恢弘的史诗。他本人也成了地球上最知名的程序员，互联网上真正的名人。某搜索引擎的结果显示：Sun公司CEO Scott
McNealy有7192条相关信息，Oracle老板拉里&middot;埃里森为8580条，明星汤姆&middot;克鲁斯为16604条，而李纳斯&middot;托沃兹则高达20419
条。</span></p><h4><span style="font-size: medium; font-family: 黑体">敌人真实的心态</span></h4><p><span style="font-size: medium; font-family: 黑体">　　&ldquo;Linux所取得的许多成功，其实可以归结为我的缺点所致：1、我很懒散。2、我喜欢授权给其他人。黑客
们，不，程序员们，把在Linux和其他开放源代码的项目上工和放在比睡觉、锻炼身体、小圈子聚会，以及，有时是性生活更优先的地位。因为他们喜欢编程，
更因为他们乐于成为一个全球协作努力的活动的一部分――Linux是世界上最大的协作项目，这一努力将给所有喜欢它的人带来最好最美的技术。这种努力是如
此率真，又是如此有趣。&rdquo;</span></p><p><span style="font-size: medium; font-family: 黑体">　　Linux代表着网络时代新形式的开放知识产权形态，将从根基上颠覆以Windows为代表的封闭式软件产权
的传统商业模式。目前，Linux已拥有了许多世界一流的企业用户和团体用户，其中包括NASA、迪斯尼、洛克希德、通用电气、波音、Ernst
＆Young、UPS、IRS、Nasdaq，以及多家美国一流的大学机构等。</span></p><p><span style="font-size: medium; font-family: 黑体">　　比尔&middot;盖茨公开表示，他根本没把Linux放在眼里，他
预测Linux只会起一些有限的作用。但是，1998年11月，微软秘密备忘录《鬼节前夕》被揭露，微软对Linux的真实认识引起了极大反响。因为报告
高度评价了Linux的市场份额、性能和可靠性，指出：&ldquo;Linux代表的是一种最优秀的UNIX系统，被广泛地应用在关键业务领域，由于其开放特性，
Linux将超过其它的操作系统。&rdquo;&ldquo;在人们转移至Linux后，他们会发现他们所需要的几乎所有应用程序都已被免费提供了，包括Web服务器、POP客
户、邮件服务器和文本编辑器等等。&rdquo;&ldquo;Linux在个人设置、可用性、可靠性、扩展性和性能表现方面均超过了Windows NT。&rdquo;</span></p><p><span style="font-size: medium; font-family: 黑体">　　报告承认：以Linux为代表的自由软件在短期上，已经对微软的收入构成威胁。而长期来说，这种自由交流思想的开发模式将极大地打击微软。</span></p><p><span style="font-size: medium; font-family: 黑体">　
　几年前，微软还在嘲笑自由软件。但如今，他们再也不能漠视这场迅速蔓延的民间运动。1993年，互联网兴起，微软首席技术官梅尔沃德半开玩笑地说：&ldquo;我
们的主营业务软件到了末日，将来会暴尸于信息高速公路旁。&rdquo;没想到，这个玩笑越来越成为真实。最近，这位微软帝国的&ldquo;军师&rdquo;突然宣布离开公司休长假。他对
一位媒体朋友的一番话很有意味，他说，未来的微软必须改变商业模式，微软不能再靠卖软件产品生存，而应该成为&ldquo;应用软件服务供应商&rdquo;（ASP），靠服务谋
生。但对垄断者来说，这种转变是极端痛苦的，而且能否平安转变，这位软件业的&ldquo;诸葛亮&rdquo;也无从把握，不敢下言。</span></p><p><span style="font-size: medium; font-family: 黑体">　　微软总裁鲍尔默也表示，
不久微软也可能被迫公开Windows的源代码。微软是很现实，也是反应很快的公司，它介入自由软件也只是时间问题。如果微软被迫拥抱自由软件，对消费
者、对产业有益，不就是一件好事吗？但是可以肯定，如果不是迫不得已，它决不会主动放弃封闭的垄断模式。</span></p><p><span style="font-size: medium; font-family: 黑体">　　李纳斯是自由软件未来的定心丸。</span></p><p><span style="font-size: medium; font-family: 黑体">　　当人人都崇拜的盖茨住在他豪华的华盛顿州西雅图郊区的湖滨行宫里时，李纳斯和他的妻子以及他们蹒跚学步的女儿们却挤在圣克拉拉一栋两层楼的公寓套房里。</span></p><p><span style="font-size: medium; font-family: 黑体">　
　这位平常的芬兰人，简单而强大的Linux操作系统的创造者，超越了盖茨的神话。也有传闻说盖茨是一个卓越的程序员，但李纳斯是货真价实的高手。还在大
学里时他就完成了一个货真价实的操作系统。年轻时的盖茨把拷贝他自己平庸的程序的程序员同行称为&ldquo;贼&rdquo;，而慷慨的李纳斯把他的杰作与全世界共享。</span></p><p><span style="font-size: medium; font-family: 黑体">　
　多年来，在残酷的商业世界里，微软一一摆平诸多强大的对手。但是，这股完全来自民间的力量却让微软无所适从。因为，所有的原有商业规则都不起作用，微软
的市场权力突然失效。看看李纳斯&middot;托沃兹本人，一个典型的软件工程师，语言平淡，直来直去。既没有乔布斯能言善辩的个人魅力，也没有鲍尔默激情澎湃的煽动
能力。他的讲演总像软件代码一样缺少修饰，缺乏激情和美感，还夹杂着许多生僻的技术术语。但是他的实在，他的沉稳，却能让每一位见到李纳斯的人相信：自由
软件蕴含着永恒的生命力，而且会不断进步。他是Linux未来前进方向的定心丸。</span></p><p><span style="font-size: medium; font-family: 黑体">　　Linux就像《卡勒瓦拉》一样，由最初的约
10000行程序经过全球网络上数不清的编程人员的不断添加，目前的规模已达100万行左右；由李纳斯本人所控制的主要版本现已达到2.2版，而由各家商
业软件公司所自行开发的扩散版本更是不计其数。如何对这种开发模式进行有效地控制和管理、减少软件本身不必要的膨胀，确实是决定Linux未来发展的一个
关键性问题。</span></p><p><span style="font-size: medium; font-family: 黑体">　　对如日中天的Linux来说，再没有比对手的褒扬和关注更高的鼓励了。李纳斯本人则不无揶揄地说：&ldquo;我根本没有打算威胁微
软，因为我根本没有把微软视为真正的对手。尤其没有把Windows视为对手&mdash;&mdash;因为Linux和Windows的目标完全不一样。至于说到
Windows NT，我曾经对它发生过兴趣，但是我越深入进去，就越发现它不过是一个带有较稳定的内核的传统的
Windows而已。我从中找不到任何技术上令人感兴趣的东西。依我看，微软做得更多的是怎么去挣钱，而不是去制作一个更好的操作系统。&rdquo;</span></p><p><span style="font-size: medium; font-family: 黑体">　
　1999年3月3日，李纳斯在LinuxWorld的主题发言中向广大Linux程序员们呼吁，不必努力让Linux与各种商业版本的Unix相竞争，
而应该努力让Linux更为好用，使之进入桌面PC与PDA。&ldquo;成为未来这个行星上最重要的操作系统。&rdquo;李纳斯的发言得到了与会者的热烈欢迎。</span></p><p><span style="font-size: medium; font-family: 黑体">　　对于Linux的未来，李纳斯也充满信心：&ldquo;Linux一直就是最棒的。我对Linux的未来确实一点儿都不担心，因为从技术方面看，Linux肯定会越变越好；而从非技术方面看，我个人也看不出有什么担忧的。&rdquo;</span></p><p><span style="font-size: medium; font-family: 黑体">　　&ldquo;资源共享，服务收费&rdquo;，摈弃原始的不合理规则，添加新的互联网精神，使软件业真正走向以服务为中心的高级阶段，真正与高境界的知识经济相符合。这就是自由软件所指引的广阔而光明的未来之路。 <br /></span></p><h4><span style="font-size: medium; font-family: 黑体">乐者为王</span></h4><p><span style="font-size: medium; font-family: 黑体">　　戴着眼镜，语音轻柔，容易接近，对自己的才能和成就充满自豪，而且十分幽默。他从前是出名地逮什么吃什么，现在则对寿司情有独钟。由于编程太多，他的肚子已经有点儿凸，不过他的声音和他顽童般的笑容里远没有失去芬兰特色的那种轻快。</span></p><p><span style="font-size: medium; font-family: 黑体">　
　李纳斯看来是一个平民主义者，他希望打破垄断性软件定价的思想方式，也反映在他的其他口味上。比如，他不买精装书，因为他相信精装书卖不太好，所以定价
一定偏贵。同样，他更喜欢好莱坞的娱乐片，而不是欧洲的高品位艺术电影。他的父亲在电台工作，他的母亲翻译报纸新闻，叔叔为芬兰电视台工作，祖父是报纸记
者，所以他理解新闻媒体，而且似乎也对于自己越来越出名自得其乐。</span></p><p><span style="font-size: medium; font-family: 黑体">　　&ldquo;即使是那些无法想象世界上有人做事会出于兴趣的人－－那种人是挺可
悲的，但也是有这样的人，我也可以向他们解释：10年之后Linux要是真的一帆风顺，我就要风得风，要雨得雨了，就象在银行存钱一样。这不是我的目的，
但可以这样告诉那些除此之外就无法理解的人。我认为自己是一个艺术家，在做自己乐意做的事情。而且我也不用活得特别惨，因为程序员的待遇并不差。&rdquo;</span></p><p><span style="font-size: medium; font-family: 黑体">　
　Transmeta公司位于圣克拉拉一个匿名的写字楼群内，当李纳斯从公司出来时，手里拿着一罐拉开盖的可乐，穿着软件程序员的典型服装：牛仔裤，T
恤，一成不变的凉鞋和袜子。当我问他穿凉鞋着袜子是不是标准的程序员工装时，他理由充分地解释说，在他从未见到任何程序员之前他就喜欢把袜子和凉鞋配在一
起了。他说：&ldquo;这肯定是关于程序员的自然法则。&rdquo;</span></p><p><span style="font-size: medium; font-family: 黑体">　　记者问出了第一个问题：&ldquo;你家里人都是搞技术的吗？&rdquo;</span></p><p><span style="font-size: medium; font-family: 黑体">　　&ldquo;不是，他们基本上是新闻记者，&rdquo;他答道，接着又说：&ldquo;所以我知道你们都是一些坏蛋。&rdquo;　</span></p><p><span style="font-size: medium; font-family: 黑体">　　&ldquo;噢，难道你是从一堆坏蛋是钻出来的吗？&rdquo;记者也不是吃素的。</span></p><p><span style="font-size: medium; font-family: 黑体">　　这个世界级的程序编制员抑头大笑，不料将嘴里的一口可乐全喷在了摄影兼司机的后脖子上，李纳斯的脸不好意思地红起来。</span></p><p><span style="font-size: medium; font-family: 黑体">　
　记者问他，如果见到比尔&middot;盖茨想说些什么，他却说连与后者见一下的欲望都没有。&ldquo;在我们俩之间没有什么关系可言，&rdquo;他说，&ldquo;他所做的事是世界上最优秀
的，但我却丝毫不感兴趣。我所做的事在世界上也可能是最优秀的，他也不感兴趣。我对他经商提不出任何建议，他对我的技术也提不出任何看法。&rdquo;</span></p><p><span style="font-size: medium; font-family: 黑体">　　&ldquo;我们人类被这三种事物所驱使――对于人类以外的其他生命行为也是如此。这一次序是：生存；社会交往；寻找乐趣。它也是进化的次序。这就是我为什么选择了&ldquo;Just for Fun&rdquo;作为自传书名的原因。</span></p><p><span style="font-size: medium; font-family: 黑体">　　因为我们曾经所做的一切事情，似乎最终都是为了我们自己的乐趣。&rdquo;</span></p>
          <br/>
          <span style="color:red;">
            <a href="http://zpq2004.javaeye.com/blog/155630#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Mon, 14 Jan 2008 13:52:49 +0800</pubDate>
        <link>http://zpq2004.javaeye.com/blog/155630</link>
        <guid>http://zpq2004.javaeye.com/blog/155630</guid>
      </item>
      <item>
        <title>Debian 是什么？</title>
        <author>zpq2004</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://zpq2004.javaeye.com">zpq2004</a>&nbsp;
          链接：<a href="http://zpq2004.javaeye.com/blog/155615" style="color:red;">http://zpq2004.javaeye.com/blog/155615</a>&nbsp;
          发表时间: 2008年01月14日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <span style="font-size: medium; font-family: 黑体"><span style="font-family: 黑体">Debian </span>是为您的计算机所设计的一个自由 (free) 操作系统 (operating system,OS)。操作系统是使计算机运行的基本程序和工具的集合，其中最主要的部分称为核心(kernel)。核心是计算机中最主要的程序，负责一切基本&ldquo;持家&rdquo;的调度工作，并让您执行其它程序。Debian使用Linux核心，它是一个完全自由的软件，由Linus Torvalds开始编写，并由世界各地数以千计的程序编写员支持。操作系统里的大部份基本工具都是来自GNU 计划 ，而这些工具也是自由软件。<br /><br />    一个操作系统的其中一面是应用软件 (application software)：一些帮助您完成工作的程序，由编辑文档至进行商业交易，由游戏玩乐至编写更多的软件。Debian拥有超过1,500 个软件包（已编译的软件，并且把它包装了起来以便安装）──这些全部都是自由软件。<br /><br />    Debian 系统有点像一个金字塔。在它的基底是 Linux。之上是所有的基本工具，主要是来自 GNU。在其上是您在机器上执行的所有应用软件，有不少也是来自 GNU 的。Debian 的开发人员好比建筑师和协调者──他们把所有的东西适当地结合起来，小心地把系统组织好而制成一个稳定的操作系统：Debian GNU/Linux。<br /><br />    GNU/Linux的设计哲学是把它的功能用一些细小但多用途的元件来分布。这样做您就可以将这些细小的元件（程序）用新的方式组合而达到新的功能。Debian 就好像一个 erector set：您可以用它来建造任何东西。<br /><br />    当您使用一个操作系统时，您定想付出最少的精神时间来完成您的工作。Debian 附有很多工具来帮您，不过您一定要知道这些工具是做什么的。虚耗一个小时尝试使用某些东西但最后放弃了，功亏一篑，是非常没有工作效率的。</span><p><span style="font-size: medium; font-family: 黑体">&nbsp;</span></p>
          <br/>
          <span style="color:red;">
            <a href="http://zpq2004.javaeye.com/blog/155615#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Mon, 14 Jan 2008 12:20:18 +0800</pubDate>
        <link>http://zpq2004.javaeye.com/blog/155615</link>
        <guid>http://zpq2004.javaeye.com/blog/155615</guid>
      </item>
  </channel>
</rss>