Commits

Wang Dingwei committed 51971a7

hack-howto complete

Comments (0)

Files changed (1)

 
 Copyright © 2001 Eric S. Raymond <esr@thyrsus.com>
 
-Barret
+Wang Dingwei <gastlygem(at)gmail.com> 基于 Barret 的翻译更正而成。转载请注明出处。
 
 +--------------+----------------+-----------+
 | 版本更新历史                              |
 为什么会有这份文档?
 什么是黑客?
 黑客精神
+    
     1. 这个世界充满了令人着迷的问题等着我们解决。
     2. 一个问题不应该被解决两次。
     3. 无聊和乏味的工作是罪恶。
     4. 崇尚自由。
     5. 态度不能替代能力。
+
 黑客基本技能
+    
     1. 学习编程。
     2. 学习使用开源 Unix 系统。
     3. 学会使用万维网以及编写 HTML。
     4. 学习英语,如果你的水平不够用的话。
+
 黑客文化中的地位
+    
     1. 撰写开源软件
     2. 帮助测试和调试开源软件
     3. 发布有用的信息
     4. 协助维护基础设施运行
     5. 为黑客文化本身服务
+
 黑客和书呆子(Nerd)的联系
 向黑客的格调靠拢
 历史:Hacking、开源。以及自由软件
 
 
 为什么会有这份文档?
--------------------
+---------------------
 
 作为 `Jargon File`_ 的编辑和几份其他类似性质知名文章的作者,我经常收到充满
 热情的网络新手的电子邮件询问:“我如何才能成为一名出色的黑客?” 早在 1996 年,
 注意:文档的结尾有一份 `FAQ(常见问题解答)`_ 。如果你想通过邮件询问我关于这份
 文档的问题,请先读这份 FAQ 看看能否找到答案——一遍不行就读两遍。
 
-目前这份文档有很多翻译版本: `保加利亚语`_ 、 `简体中文`_ 、 `繁体中文`_ , 
-`丹麦语`_ 、 `荷兰语`_ 、 `法语`_ 、 `德语`_ 、 `匈牙利语`_ 、 `印尼语`_ , 
-`日语`_ 、 `朝鲜语`_ 、 `葡萄牙语`_ 、 `俄语`_ 、 `瑞典语`_ 。 注意由于这份文
-档时有修正,所以以上翻译版本可能有不同程度的过时。
+目前这份文档有很多翻译版本: `阿拉伯语`_ 、 `白俄罗斯语`_ 、 `丹麦语`_ 、 `荷兰语`_ 、 `爱沙尼亚语`_ 、 `德语`_ 、 `希腊语`_ 、 
+`意大利语`_ 、 `希伯来语`_ 、 `挪威语`_ 、 `葡萄牙语(巴西)`_ 、 `罗马尼亚语`_ 、 
+`西班牙语`_ 、 `土耳其语`_ 、 `瑞典语`_ 。注意由于这份文档时有修正,
+所以以上翻译版本可能有不同程度的过时。
 
 装饰本文的“五点九宫格”图像被称作的“glider”,在一种被叫做 `Life`_ 的数学模型中,
 这个简单的样本有一些异乎寻常的属性;多年以来,黑客们都为此着迷。我认为这个图像
 是一个很好的黑客的徽标:它显得抽象而且神秘,而且像是一扇通向一个截然不同的以有
-其内在逻辑的世界的大门。你可以阅读更多关于 `“glider徽标`_ 的内容。
+其内在逻辑的世界的大门。你可以阅读更多关于 `Glider 徽标`_ 的内容。
 
 
 什么是黑客?
------------
+--------------
 
 `Jargon File`_ 包含了一堆关于“hacker”这个词的定义,大部分是关于“技术高超”、
 “热衷解决问题”、以及“超越极限”的内容。但如果你只想知道如何_成为_一名黑客
    这一条无须多说,当然是最基本的黑客技能。如果你还不会任何编程语言,我建议
    你从 Python 开始学起。它设计清晰,文档齐全,而且对初学者比较友好。虽然它
    很适合作为一种入门语言,但它不仅仅只是个玩具;它非常强大、灵活,也适合做
-   大型项目。我在一篇更详细的 `Python 试用体验`_ 中有更详细的论述。 `Python 网
-   站`_ 有很好的 `入门教程`_ 。 
+   大型项目。我在一篇更详细的 `Evaluation of Python`_ (译注:Python 试用体验)
+   中有更详细的论述。 `Python 网站`_ 有很好的 `入门教程`_ 。 
    
-   我曾经推荐过将 Java 作为初学的语言,但 `这批评`_ 改变了我的想法(在里边
+   我曾经推荐过将 Java 作为初学的语言,但 `这批评`_ 改变了我的想法(在里边
    搜索 "The Pitfalls of Java as a First Programming Language" 就知道我的意思
    了)。作为一名黑客,你不能像人们挖苦的一样,“像水管工人一样装电脑”,你必须
    知道各个部件的工作原理。现在我觉得可能还是学过 C 和 Lisp 后再学 Java 比
    (b) 写代码。
    
    Peter Novig 是 Google 公司的顶尖黑客之一,而且是最受欢迎的 AI 课本的一名
-   作者。他写了一篇好文章名叫“十年教会自己编程(`Teach Yourself Programming 
-   in Ten Years`_)”,其中的“编程的成功之道 (recipe for programming success)”
-   尤其值得一读。
+   作者。他写了一篇好文章名叫 `Teach Yourself Programming 
+   in Ten Years`_ (译注:十年教会自己编程),其中的“recipe for programming success”
+   (译注:编程的成功之道)尤其值得一读。
 
    学习编程就象学习自然语言写作一样。最好的做法是读一些大师的名著,试着自己
    写点东西,再读些,再写点,再读些,再写点……如此往复,直到你的文章具备范文
    Windows 下是做梦都没法得到的。你会觉得乐趣无穷。当你有一天成为大师再回顾
    初学的日子,你会觉得那时学到的东西可真多。
    
-   如果你想了解更多关于学习 Unix 的信息,读一下 `The Loginataka`_ 吧。也许你
-   还想看看 `The Art of Unix Programming`_ 。
+   如果你想了解更多关于学习 Unix 的信息,读一下 `The Loginataka`_ (译注:
+   ESR 的另一著作,可以称为黑客大藏经)吧。也许你还想看看 
+   `The Art of Unix Programming`_ (译注:Unix 编程艺术,经典著作)。
    
    你可以访问 `Linux Online!`_ 网站,这个网站可以帮你起步。你可以从那里下载
    到 Linux,或者更好的办法是找一个本地的 Linux 用户组,让他们帮你安装
    写闭源软件,直到我 1996 年开始写这篇 HOWTO 时也是如此。但从 1997 年后
    开源软件进入了主流,而且改变了这一切。以现在的观点来看,“黑客社群”和“开
    源开发者”是对这一个社群的两种称呼,但值得记住的是,以前这两者的概念并不
-   完全一样。要了解更多信息,你可以看看 `关于黑客、开源、以及自由软件的历
-   史`_ 这一节的内容。
+   完全一样。要了解更多信息,你可以看看 `关于黑客、开源、以及自由软件的历史`_ 
+   这一节的内容。
 
 2. 帮助测试并调试开源软件
    
 Liunx 崛起的时候,它才受到了重大挑战。Linux 给了的开源开发者一个新的自然归宿,
 很多项目都已我们现称的开源的方式由 Unix 移植到了 Linux 系统中。Linux 的社区也
 得到了爆炸性增长,成为了一个比以前黑客文化更为庞大,并且异质化的新的群体。RMS 
-坚持尝试将这一社群也归并到他的“自由软件运动”大旗下,但是 Linux 社区爆炸式的多
-样性,以及 Linus Torvalds 本人的质疑阻碍了这一后果。托瓦尔兹继续利用缺乏任何替代术语“自由软件”,但公开拒绝RMS的思想包袱。许多年轻的黑客们也纷纷效仿。
+曾今尝试将这一社群也归并到他的“自由软件运动”大旗下,但终究没有成功,原因可以归
+于 Linux 社区的样性,以及 Linus Torvalds 本人的质疑。Torvalds 公开拒绝了 RMS 的
+自由软件思想,但还是沿用了“自由软件”这一术语,这也引来了很多年轻黑客的效仿。
 
-1996年,当我第一次发表这篇HOWTO的黑客,黑客社区迅速重组的Linux和其他开放原始码作业系统的少数(特别是那些从BSD Unix的后裔)。社区记忆的事实是,我们大多数人花了几十年的发展封闭源代码的封闭源代码操作系统的软件还没有开始褪色,但实际上已经开始看起来像死过去的一部分,黑客越来越多,其定义为黑客自己的附件,如Linux或Apache开放源代码项目。
+1996年,当我第一次发表这篇 HOWTO 的时候,黑客社团正在围绕着 Linux 和其它几个
+开源操作系统(尤其是 BSD Unix 的衍生系统)进行着快速的重组。几十年来围绕着闭源
+系统进行闭源开发的方式还没有开始淡出集体记忆,但在大家看来,这似乎已经是死去的
+历史了。越来越多的黑客都已经开始注重自己在开源项目(例如 Linux、Apache 等)上的
+贡献,并将这些贡献当做自己的成就。
 
-所谓“开源”,但是,还没有出现,那将不这样做,直到1998年初。当它没有,大多数的黑客社区内通过以下六个月内,在思想上重视的例外是术语“自由软件”是少数。自1998年以来,特别是在大约2003年,'黑客'与'开源(免费软件)开发的识别变得极为接近。今天有在试图区分这两类小一点,这似乎不太可能会改变未来。
+然而在那个时候“开源”这一名词还没有出现。这个名词是 1998 年初才开始出现的,而在
+出现的半年内,大部分的黑客社区就接受了这一名词,只有少数不接受这一概念的人还在
+坚持使用“自由软件”这一名词。1998 年以后,或者更准确地说是 2003 年以后,所谓的
+“hacking” 和 “开源(自由)软件开发”的含义已经非常接近了。从今天的眼光来看,这种
+区分已经没有意义了,看趋势,这个现状将来也不大可能改变了。
 
-这是值得记住的,然而,这并不总是如此
+话虽如此,这段变更的历史还是值得记住的
 
 
 其它资源
 还有一篇叫 `How To Be A Programmer`_ 的文章,是这篇文章很好的补充。里边的
 建议不但包括如何提高编程和其它技术,还包含团队合作的窍门。
 
-我还写过一篇 `黑客文化简史`_ 
+我还写过一篇 `A Brief History Of Hackerdom`_ (译注:黑客文化简史
 
-我写了一本 `大教堂与市集`_ ,对于Linux及开放源代码文化现象有详细的解释。我
-也在这个话题上进一步阐述导致的结局—— `开拓智域`_ 。
+我写了一本 `The Cathedral and the Bazaar`_ (译注:大教堂与市集),对于 Linux 
+及开放源代码文化现象有详细的解释。这种现象在我的另一篇 `Homesteading the Noosphere`_
+(译注:开拓智域)中还有更直接的阐述。
 
-Rick Moen 写了一份很好的关于 `如何运营 Linux 用户组` 的文档。
+Rick Moen 写了一份很好的关于 `how to run a Linux user group`_ (译注:如何运营 Linux 
+用户组)的文档。
 
-我和Rick Moen合作完成了另一份关于 `提问的智慧`_ 的文章,可以让你事半功倍的
-获得帮助。
+我和Rick Moen合作完成了另一份关于 `How To Ask Smart Questions`_ (译注:提问的智慧) 
+的文章,可以让在寻求帮助时得到事半功倍的效果。
 
 如果你想知道 PC、UNIX 及 Internet 基本概念和工作原理,参考 `The Unix and 
 Internet Fundamentals HOWTO`_ 。
 
-当你释放出一个软件或为其打补丁,试着按 `软件发行惯例 HOWTO`_ 去做。
+当你发布软件或者补丁的时候,请遵照 `Software Release Practice HOWTO`_ 去做。
 
+如果你对禅诗感兴趣,也许你还喜欢看这篇 `Rootless Root: The Unix Koans of Master Foo`_
 
 FAQ(常见问题解答)
-------------------
+---------------------
 
 问:怎样才能知道自己已经是一名够格的黑客?
 问:你能教我做黑客吗?
-问:那么我要如何开始?
+问:那么我要如何开始?
 问:我得什么时候开始学?现在会不会太迟了?
 问:要学多久才能学会黑客道?
-问:Visual Basic及Delphi是好的入门语言吗?
+问:Visual Basic 是好的入门语言吗?
 问:你能帮我“黑”掉一个站点吗?或者教我怎么黑它?
 问:我怎么样才能得到别人帐号的密码?
 问:我如何入侵/查看/监视别人的Email?
 问:成为一名黑客我需要擅长数学吗?
 问:我该从那种语言学起?
 问:我需要什么样的机器配置?
+问:我想贡献社区。你可以帮我选一个问题让我下手吗?
 问:我得因此憎恨和反对Microsoft吗?
 问:但开放源代码软件不会使程序员丢饭碗吗?
-问:我要如何开始?哪里有免费的Unix?
+问:我要如何开始?哪里有免费的 Unix?
 
 
 问:怎样才能知道自己已经是一名够格的黑客?
 
 问:那么,我要如何开始?
 
-答:对你而言最佳的入门方式也许是去参加LUG(Linux用户组)的聚会。 你可以找到
-    在 LDP的综合Linux信息页面上找到类似的组织;也许有一个在你家附近的,而且
-    非常有可能与一所大学或学校挂钩。如果你提出要求,LUG成员兴许会给你一套
+答:对你而言最佳的入门方式也许是去参加 LUG(Linux用户组)的聚会。 你可以找到
+    在 LDP 的综合 Linux 信息页面上找到类似的组织;也许有一个在你家附近的,而且
+    非常有可能与一所大学或学校挂钩。如果你提出要求,LUG 成员兴许会给你一套
     Linux,当然此后会帮你安装并带你入门。
 
 问:我得什么时候开始学?现在会不会太迟了?
 问:我在哪里能找到可以与之交流的真正的黑客?
 
 答:最佳办法是在你附近找一个Unix或Linux的用户组,参加他们的聚会。(你可以在
-    ibiblio 的 `LDP`_ 站点 找到一些用户组的链接。)
+    ibiblio 的 LDP_ 站点 找到一些用户组的链接。)
     
     (我过去曾说过不能在IRC上找到真正的黑客,但我发觉现在情况有所改变。显然
     一些真正的黑客的社区像 GIMP 及 Perl,也有IRC频道了。)
 问:你能推荐一些有关黑客的好书吗?
 
 答:我维护着一份 `Linux Reading List HOWTO`_ ,也许你会觉得有用。 
-    `Loginataka`_ 也大致值得一读。
+    `The Loginataka`_ 也大致值得一读。
 
     关于Python的介绍,请访问在Python站点上的 `入门教程`_ 。
 
     如果你选择 BSD 的话)。和刚才提到的一样,大多数现在的机器都是符合的;唯一
     值得注意的区域在于 modem 和打印机;有些具备为Windows设计的配件的机器不会在Linux下工作。
     
-    关于硬件兼容性有一个FAQ;最新版本在 这里。
+    你可以查看这份 `Linux Hardware Compatibility FAQ`_ 。
+
+问:我想贡献社区。你可以帮我选一个问题让我下手吗?
+
+答:不行,因为我不知道你的兴趣和擅长领域在哪里。如果你没有内在动力,你就很难
+    坚持下去,所以说,别人只给你的路是行不通的。
+    
+    试试这么做吧。在 Freshmeat 网站观察几天,看看里边的项目更新,如果你看到
+    一个看上去很酷而且你也很感兴趣的项目,就加入吧。
 
 问:我得因此憎恨和反对Microsoft吗?
 
 答:在本份文档的某个地方我已经提到过何处可以得到最常用的免费 Unix。要做一名
     黑客,你需要自立自强,以及自学能力。现在开始吧……
 
+
+.. _`Thyrsus Enterprises`: http://catb.org/~esr/
+.. _`阿拉伯语`: http://www.slashproc.net/doc/howto-ar.html
+.. _`白俄罗斯语`: http://moneyaisle.com/worldwide/how-to-become-a-hacker-be
+.. _`丹麦语`: http://www.olemichaelsen.dk/hacker-howto.html
+.. _`荷兰语`: http://www.knudde.be/index.php?page_name=hacker_howto
+.. _`爱沙尼亚语`: http://www.kakupesa.net/hacker/
+.. _`德语`: http://www.linuxtaskforce.de/hacker-howto-ger.html
+.. _`希腊语`: http://users.otenet.gr/~indy90/hacker-howto-gr/
+.. _`意大利语`: http://www.victorfleur.com/documents/hacker.html
+.. _`希伯来语`: http://he.wikisource.org/wiki/%D7%90%D7%99%D7%9A_%D7%9C%D7%94%D7%99%D7%95%D7%AA_%D7%94%D7%90%D7%A7%D7%A8
+.. _`挪威语`: http://stian.atlantiscrew.net/doc/hacker-howto.html
+.. _`葡萄牙语(巴西)`: http://jvdm.sdf1.org/pt/raquer-howto/
+.. _`罗马尼亚语`: http://garaj.xhost.ro/hacker-howto/hacker-howto.ro.htm
+.. _`西班牙语`: http://www.sindominio.net/biblioweb/telematica/hacker-como.html
+.. _`土耳其语`: http://www.belgeler.org/howto/hacker-howto/hacker-howto.html
+.. _`瑞典语`: http://www1.tripnet.se/~mly/open/faqs/hacker-howto.se.html
+.. _`Life`: http://dmoz.org/Computers/Artificial_Life/Cellular_Automata/
+.. _`Glider 徽标`: http://www.catb.org/~esr/hacker-emblem/
+.. _`Jargon File`: http://www.catb.org/jargon
+.. _`alt.2600`: news:alt.2600
+.. _`Evaluation of Python`: http://www.linuxjournal.com/article.php?sid=3882
+.. _`Python 网站`: http://docs.python.org/tutorial/
+.. _`入门教程`: http://docs.python.org/tut/tut.html
+.. _`这则批评`: http://www.crosstalkonline.org/storage/issue-archives/2008/200801/200801-Dewar.pdf
+.. _`Perl`: http://www.perl.com/
+.. _`LISP`: http://www.lisp.org/
+.. _`Teach Yourself Programming in Ten Years`: http://norvig.com/21-days.html
+.. _`The Loginataka`: http://catb.org/~esr/faqs/loginataka.html
+.. _`The Art of Unix Programming`: http://catb.org/~esr/writings/taoup/
+.. _`Linux Online!`: http://www.linux.org/
+.. _`Ubuntu`: http://www.ubuntu.com/
+.. _`live CD`: http://www.livecdnews.com/
+.. _`Unix 和 Internet 基础`: http://en.tldp.org/HOWTO/Unix-and-Internet-Fundamentals-HOWTO/index.html
+.. _`这个 HTML 入门教程`: http://htmldog.com/
+.. _`The HTML Hell Page`: http://catb.org/~esr/html-hell.html
+.. _`open-source`: http://www.opensource.org/
+.. _`Great Hackers`: http://www.paulgraham.com/gh.html
+.. _`Undergraduation`: http://www.paulgraham.com/college.html
+.. _`How To Be A Programmer`: http://samizdat.mines.edu/howto/HowToBeAProgrammer.html
+.. _`A Brief History Of Hackerdom`: http://catb.org/~esr/writings/hacker-history/hacker-history.html
+.. _`The Cathedral and the Bazaar`: http://catb.org/~esr/writings/cathedral-bazaar/index.html
+.. _`Homesteading the Noosphere`: http://catb.org/~esr/writings/homesteading/
+.. _`黑客精神的五项基本原则`: http://www.catb.org/~esr/faqs/hacker-howto.html#attitude
+.. _`HTML: The Definitive Guide`: http://www.oreilly.com/catalog/html5/
+.. _Python: http://www.python.org/
+.. _`Linux Hardware Compatibility FAQ`: http://en.tldp.org/HOWTO/Hardware-HOWTO/index.html
+.. _`Freshmeat`: http://freshmeat.net/
+.. _`Open Source`: http://www.opensource.org/
+.. _`Linux Reading List HOWTO`: http://en.tldp.org/HOWTO/Reading-List-HOWTO/index.html
+.. _`how to run a Linux user group`: http://linuxmafia.com/faq/Linux_PR/newlug.html
+.. _`How To Ask Smart Questions`: http://catb.org/~esr/faqs/smart-questions.html
+.. _`The Unix and Internet Fundamentals HOWTO`: http://en.tldp.org/HOWTO//Unix-and-Internet-Fundamentals-HOWTO/
+.. _`Software Release Practice HOWTO`: http://en.tldp.org/HOWTO/Software-Release-Practice-HOWTO/index.html
+.. _`Rootless Root: The Unix Koans of Master Foo`: http://catb.org/~esr//writings/unix-koans
+.. _LDP: http://www.tldp.org/links/index.html