[think]如何成为骇客

这文章是Eric Raymond先生的著作, 由Ken LEE翻译成中文

如何成为骇客

为何有这文章?

身为Jargon File的作者, 我常收到热心的网络新秀的电子邮件, 问及"如何可以成为骇客?" 奇怪地, 在互联网上像没有文件或FAQ介绍这个重要问题, 所以, 我写了这篇文章.

 若你只是离线地阅读本文, 你可到这里阅读本文的最新中文版本.

 

什麽是骇客

Jargon File里有数个'骇客'的定义, 主要形容"技术专才"或"有志解决问题及超越极限之人士".其实要成为骇客, 只有两个要点

  最初骇客是形容一班最初使用早期微电脑及ARPAnet实验的专业程式员及网络专才.他们崇尚共享主义,他们建立互联网,他们建立及发展成现今的Unix作业系统.他们管理Usenet讨论组.亦是他们令互联网运作.因此, 若你有上述的特性及参与同类的社群,亦有对以上种种作出贡献,同时社群的人知你是谁又称你为骇客, 你便是骇客.

然而,骇客的理念并非只局限於这"软件"的社群. 有很多人应用骇客的态度於其他事物,如电子或音乐上-- 实际上,骇客的理念存在於任何科学及文学.由於了解骇客的理念及精神,软件社群的骇客亦会称后者为骇客. 有些人亦认为骇客的理念是独立於骇客所从事的媒体.然而, 我们将在这篇文章专注讨论软件骇客的技巧, 态度及传统.

 另外, 有一群人亦称自已为"骇客", 他们(多数是年青人)用电脑侵入其他电脑的系统作出破坏.骇客们称这群人为"破坏者(Cracker)", 亦不认同他们为骇客. 多数骇客会认为破坏者是懒惰, 不负责任, 不杰出的人. 有能力侵入保安系统并不能使你成为骇客, 正如可以用铁线来偷车并不能使你成为工程司一样.不幸的是很多作家及报导员均称这群人为"骇客".

 CRACKER 与 HACKER的主要分别是前者破坏, 后者建立.

 若你想成为骇客, 请看下去, 若你只想成为CRACKER, 请到alt.2600讨论小组, 准备作出系统破坏. 我相信你不会感到自己是想像中的聪颖. 我对CRACKER便说到这里为止.

 

骇客的态度

骇客解决问题, 建立事物, 相信自由及共享主义. 要成为骇客及被接受为骇客, 你的行为须"表现"出上述的态度. 要"表现"上述的态度, 你须"真正相信"上述的态度是正确

相信上述的态度并非只认为要被接受为骇客, 而是要使能学习及保持成为骇客的自发性. 正如其他的创作艺术一样. 学习必须同时著重理念与态度.

 所以, 要成为骇客, 仔细了解下列各点, 直至你相信为止: 

1. 世界是有大量有趣的问题是等待解决的

成为骇客是一件满有趣的事情, 但背后同时要付出努力. 努力却须要自发性. 成功的运动家有强烈的欲望去使自己发挥至极限, 正如骇客必须有欲望去解决问题, 不断加强技术及运用智慧.

 若你并非此类人, 要成为骇客你便需要作出改变. 否则你的骇客生涯及能量只会被性欲, 金钱及社会的既定价值观所消耗, 一点一滴地消耗.

 (你亦需有强烈信念, 相信纵使你暂停不能解决整个问题, 只是你能解决其中一部份, 及能从中学习, 你会可以解决另外的一部份 --- 直至解决整个问题)

 

2. 没有人应该有需要解决同样问题两次

你的智慧是一个很有价值, 但同时很"有限"的资源. 请不要将这有价值的资源用来"重新发明车轮". 因为有很多其他尚未解决的问题是等待著你的.

 要成为骇客, 你必须相信其他骇客的思想时间非常宝贵, 所以你有道德上的责任去分享资讯, 解决问题及将其解决方法分享, 使其他骇客不须再花时间解决同样问题, 而可以用时间解决的难题.

 (你不须相信你必须将所有你的创作分享, 纵使愿意如此做的骇客是最从人专重的.售卖足够的创作以购买食物, 支付租金及使用电脑的费用并不违反骇客的价值观. 运用你的骇客技能养活家庭, 甚至致富亦可以,只要你做这些事时不要忘记你是一名骇客)

 

3. 拒绝沉闷及乏味的事情

正如一般的创作者, 骇客不应做沉闷及乏味, 愚蠢及反反覆覆的事情. 因为这表示他们不是做著只有他们才可以做的事 -- 解决新问题. 这样实在太浪费了.因此, 沉闷及乏味的事情对骇客而言不仅只是不良, 而是邪恶的.

  要成为骇客, 你必须相信此观念以令你将所有沉闷及乏味的事情尽量自动化, 不止为自己而是为其他人(其他骇客).

 (但有时为了锻练, 或获得某种技术及经验, 骇客亦要做那些重复又乏味的事情, 但这是个人选择, 没有一个善於思想的人应被逼做沉闷的事)

 

4. 自由

骇客天生反霸权主义. 若有人可以向你下达命令, 他便足以停止你 -- 停止你去解决一些你认为有意义的问题. 极权主义的人, 由於思想特殊, 会给你一个极愚蠢的理由去停止你解决这些有意义的问题. 为了不令你和其他骇客窒息, 必须打击霸权主义.

 (这并不是向所有权力挑战, 正如小孩需要成人指导, 罪犯须被压抑. 骇客可同意接受某些权力. 但只是有限及有意识地同意接受. 那种极权主义的人所要求的绝非骇客所能认同)

 极权主义者很喜欢"禁制"及"保密", 他们不相信自由合作及资讯交流 -- 他们由接受可以由他们操控的"合作"形式. 因此, 骇客必须对抗不合理的禁制, 保密及以暴力或欺瞒压逼人民的手段.

 

5. 信念不能替代能力

作为骇客, 你必须发展上述的态度及拥有其信念, 但有信念不能使你成为骇客, 正如有信念不能使你成为出色的运动家或摇滚乐手一样. 要成为骇客, 你须付出智慧, 锻炼及勤奋.

 因此, 骇客须要相信能力. 任何方面的能力都是好的, 一些只有少数人可领略的才能"更好", 而"最好"是一些需要高度智慧, 技巧及高度集中力的才能.

  若你尊敬才能,亦渴望得到 - - 你所付出的努力将成为乐趣而非沉闷的事情, 这亦是骇客必须拥有的.

 

基本骇客技能

骇客态度固然重要,但骇客技能更重要.态度绝不能替代才能, 因此, 你必须学习一些基本知识才会被称为骇客.

 由於科技不断演进,这些基本知识会不断改变.(例如,以前须要机械码才能编写电脑程式,但近来人们却爱用HTML.)在现在,你需要下列知识:

 

1.学如何写电脑程式

这,当然是最基本的骇客技能.如果你不懂任何电脑程式语言,我便建议你学Python.这是一个清楚地设计的,有清析记录语法的,适合初学者的电脑程式语言.虽然它可能是你的第一种学习的电脑程式语言, 但它绝非一件玩具.它是非常强力,有弹性而又适用於大型项目的电脑程式语言.

 但紧记,若你只懂一种电脑程式语言,你不能成为电脑程式员,更遑论成为骇客 - - 你需要了解程式编写方法, 而且不受任何一种电脑程式语言限制.因此, 你要学习如何只参看使用者指引, 将其中内容与你所学关联, 便能於数天内学懂一种新的电脑程式语言. 即是你要学习多种不同的电脑程式语言.

 如果你对电脑程式要求严格, 你必须学习unix的核心语言-- C (虽然 C 并不应是你第一种学习的电脑程式语言). 其他骇客需要学习的包括PerlLISP. 由於实用性, Perl是值得学的,Perl是广泛地用於Active Web Pages及系统管理上的, 因此就算你不会用Perl来编写程式你亦需学习如何阅读及了解Perl. 至於学习LISP能给你一个意想不到的宝贵经验, 有助你於日后的日子里写便好的电脑程式, 纵使你可能不会时常用LISP来编写程式.

 因此, 你最好完成以上四种电脑程式语言的学习(Python, C, Perl 及 LISP). 除了是最重要的骇客语言, 它们亦代表不同的程式编写方法. 每种语言都从不同方向使你获得宝贵经验.

  我不可能在此教导你如何编写电脑程式, 因为这是一门复杂的技能. 我只可对你说的就是 -- 书本与课程并不有效 (很多,甚或是大多数的骇客都是自学的). 最有效学习电脑程式是(一)阅读程式码 (二)编写程式码

 学习编写电脑程式就如学习普通语言一样, 最佳方法是阅读一些别人的大作, 然后写一些程式, 再阅读多些, 再写多些 ... 直至你发展出你独有的一套编写电脑程式方法.

 寻找好的程式用以阅读和学习是非常困难的, 以往是很缺乏一些比较大型的程式供初学的骇客练习. 但现在情况已经有所改变;开放程式码的软件, 电脑程式编写工具, 及作业系统(都是由骇客创造)现时是很容易便可以取得. 正好带领我们到下一个题目 ...

 

2.取得一份开放程式码的unix作业系统, 然后学习它.

我假设你拥有/或者可以使用一台个人电脑(现今的小孩随时都可以很容易地得到 :-)). 成为骇客的第一步是在你的电脑上安装一套LINUX或BSD-Unix的作业系统, 及使用它.

 当然, 世界上除了UNIX外还有很多其他作业系统, 但它们都是以二进制形式分发的 - - 你不但不能阅读那些程式码, 你亦不能改动它们. 在DOS,WINDOWS或MAC 或等作业系统上从事骇客活动, 便像穿著盔甲学跳舞一样.

 另外, UNIX是互联网上的作业系统、 虽然你可以不懂UNIX但仍能使用互联网, 但若你不懂UNIX, 你不能在互联网上从事骇客活动. 因此, 现今骇客们大多是精於及偏爱UNIX的. (以前的骇客可能不同意, 但互联网及UNIX的相互关系已令其他 -- 包括微软的作业系统难於取代.

 所以, 请安装一套UNIX -- 我个人喜爱LINUX但其实有其他种类的(你可以同时安装LINUX及DOS/WINDOWS在同一电脑上). 学习它, 使用它, 把玩它. 用它来上互联网. 阅读及改动它的程式码. 它比微软等的作业系统提供更好的程式工具(包括C, LISP, Python及Perl). 你会得到趣味及学到比你想像更多更佳的知识.

要知多点关於学习UNIX的资料请到Loginataka

 要得到LINUX, 请到

 要知多点关於BSD UNIX 的资料及协助请到www.bsd.org.

 (注:若你是初学者,我不建议你独自安装LINUX或BSD. 若你欲安装LINUX,到一些LINUX的使用者团体寻求协助; 或到Linux Internet Support Co-operative (LISC)IRC 频道看看.)  

3. 学习如何用互联网及用HTML来写网页

大部份骇客所做的事情, 如在工厂及办公室或大学里的工作, 是不会对非骇客做成影响的. 但互联网却是一个例外, 就算政治家都承认互联网是一个足以影响世界的东西.亦由於这原因(及其他种种原因)你要学如何在互联网上工作.

 这不是说你要学如何使用浏览器(人人都懂使用..), 我是说你首先要学用HTML来写网页. 若你根本不懂写程式,用HTML来写网页可帮助你得到一些程式编写的基本概念.

 可是写网页仍不足够, 在互联网上有很多网页, 但大部份是没有方向, 明显地没有内涵的网页. (你大可到The HTML Hell Page看看)

 所以, 你的网页一定要有内容□必须是有趣的及/或有用的(对其他骇客), 这便是我在下一个题目要说的..

 

骇客社群的身份

像大部份非谋利的社群, 骇客以名誉为重. 你会尝试解决有趣的问题, 但问题是否有趣及你的解决方法是否有效, 却只有其他具有技能的骇客们可以去品评.

 因此, 要玩骇客这个游戏, 你要以其他骇客对你的观感作为自己的评价. (正如我说你不是骇客,除非其他骇客亦称你为骇客).不过这事实却有时被人误解, 因为他们多以为骇客是孤独地工作的人.

 人类学家称骇客为贡献社群. 骇客得到地位及名誉并非来自强於他人的权力, 亦非由於外表美丽, 或有异於常人的能力,而是源於施与.清晰地说,是将你的时间, 创意及创意的结果贡献他人.

 基本上, 你可以贡献5方面的东西以获得其他骇客的尊重:

 

1. 编写公开程式码的软件

首先(最传统及基本的方法), 是编写一些其他骇客认为有趣又有用的程式, 而且将程式码公开.

 (人们以前会称此类程式为”免费软件”, 但由於太多人将”免费软件”的意义误解. 现时大部份人称此类程式为公开程式码的软件) 骇客界最受人尊重的圣者是一些编写大型, 功能强劲而又很有用的公开程式码软件, 供其他人使用.

 

2. 帮助他人测试及除错公开程式码的软件

在这不完美的世界, 人们无法避免花很长的时间用於测试及为软件除错. 因此, 很多公开程式码软件的作者都会高度评价那些好的程式测试员 (可以清楚表达程式错误表徵,程式错误位置,能接受软件在开发期间的暂时性错误及继续测试). 一个好的程式测试员可以使如恶梦的测试及除错工作变为一件值得经历的小烦恼.

  若你是初学者, 你可以找一些正在开发阶段而你又感兴趣的程式来做测试及除错. 当你懂得测试及除错, 你自然会学习更改程式.这样,你不单可以学习, 亦可以与其他专家建立良好的关系,而他们亦很可能会於未来给予你帮助.

 

3. 发行有用的资讯

另外一点是你可以收集及挑选有用的资讯并制成网页或FAQ(常问问题), 以供诸同好.

 技术性FAQ的经营者往往很多人的专重, 如同编写公开程式码的软件的专家一样.

 

4. 帮助系统运作

骇客社群(特别是互联网的发展者)是由自愿者组成的. 当中有大量必须但平淡的工作须要有人去处理 -- 例如管理电子邮件,监察讨论小组,经营大型程式的储存网站,及发展技术性标准等.

 做以上工作的人得到很多人的专重, 因为人人都知道此种工作是很花费时间但又不如编写程式般有趣.此等工作须要使命感.

 

5. 为骇客社群服务

最后,你可以为骇客社群服务及传扬(例如你可以写一篇如何成为骇客的文章 :-)). 通常你不会做这些工作,直至你已做了以上四种的工作的其中一样.

 骇客社群没有一个既定的领导者, 但却有为人尊重的英雄及长老级人物等发言人. 当你在此有一段时间的经验,你可能会成为其中的英雄或长老.但记著,骇客社群对傲慢的自我中心者并不认同, 所以不要成为如斯的领导人物.你不应追求成为领导人物, 你应了解自己的方向及以谦虚的心来看自己的地位及身份.

 

骇客与怪客的关系

与传说不同,骇客并不一定是怪客, 但有很多骇客却实在是怪客. 通常社会不甚认同的怪客会有更多时间习中思考及从事骇客活动.

 因此,很多骇客都以怪客为名, 并以此表示自己独立於社会一般的观念. 你可看这里得到更多此等讨论.

 若你可以集中精神从事骇客活动, 做得又好而又可以维持生命, 实在是很难得的事. 比起70年代来说现在做骇客是比较容易的了.人们亦开始了解骇客其实是高质素的人才.

 但若你是由於太苦闷而做骇客的话, 我亦欢迎你, 最少你可以比较专心地从事骇客活动, 可能有一天你会得到人生的乐趣.

 

其他事项

我想再说一次,若你要成为骇客,你必需要有骇客的理念. 就算你不是在电脑前面你亦可以做以下与此理念有关的事情.当然,没有事情可以取代骇客的电脑活动.

 

  • 阅读科技故事,参与科技会议(在场内很可能遇到其他骇客)
  • 学习禅及工夫武术 (理念与骇客的理念在很多方面相近)
  • 发展分析音乐的听觉.学习欣赏特定的音乐,学习以一种或以上的学器, 学习唱歌.
  • 学习欣赏文字及双关语
  • 学好你本土的语言(有很多骇客都是有能的作家)

多做以上的行为,你更容易成为骇客, 可能因为上述的行为是会将左脑及右脑的混合使用 (骇客需要以理性分析事情及於一瞬间以逻辑以外的思考来处理有关工作)

 最后,一些你应做的事情

  • 不要用愚蠢,浮夸的User ID或假名
  • 不要卷入Usenet及其他讨论的骂战
  • 不要自称为’电脑流氓’,亦不要与此类人交往
  • 不要发放有大量错字或错文法的电子邮件及电子讨论

若你做出上述的事情, 你将会得到很坏的名誉, 骇客有很好的记性, 你最期的所作所为会令你将要经过多年才可以被其他骇客接受.

 用假名的问题值得我们深思. 将身份隐藏是小孩子的做法,另是Cracker, warez d00dz 及其他低等生物的特徵. 骇客不会做这些事; 他们对自己的创作及行为表示骄傲,因此爱用名. 因此, 若你现在用假名, 请你立即放弃. 在骇客社群里只会将用假名的人视为失败者.

 

其他的资源

Peter Seebach维护著一个很好的骇客 FAQ供不懂处理骇客的人士阅览. 若上述超连结没有反应你可到Excite 搜寻器来寻找

 Loginataka有一些关於Unix骇客的训练和应有态度的资料

 本人亦写了一个有关骇客社群的简短历史的网页

 我亦写了一篇文章, 名为The Cathedral and the Bazaar, 以解释有关Linux及开放式程式码等的文化. 我亦在续篇Homesteading the Noosphere一文中再将此题目直接地说明

 

常问问题

问: 你会否教授我如何成为骇客 ?

自从写了这个网页, 我每星期(有时每天有数次)收到上述的要求, 可惜的是我并没有时间及精力去教人如何成为骇客. 我自己所从事的骇客活动已用了我 110%的时间.

 就算我有时间, 骇客本身是一种态度及技巧你要自我学习. 你会发现真骇客们很愿意提供协助, 但若你只是不断地像婴儿般要求□养, 他们不会尊重你

 所以, 你应先学一些基本知识. 表现出你是正在尝试, 及你有能力自学. 接著才与骇客们讨论特殊的难题.

 

我要如何开始?

最好先到LUG(Linux 用家小组)讨论. 你可以在LDP General Linux Information Page找到此类小组; 很多时你可以找到一个接近你的小组, 多数是大学提供的. LUG的成员可能会提供一套Linux给你, 及教你如何安装及开始.

 

你会否教我如何破解系统, 或教我破解术?

我不会. 任何已阅读此FAQ而仍问此问题的人实在是太愚蠢及不能教导(就算我有时间教导)任何此类电子邮件会被忽略或以粗暴语气回答

 

我的系统刚被破解. 你会否帮我防范再被破解 ?

不会. 每次我收到这类要求的, 都是用视窗作业系统的. 基本上是不可能有效地防止视窗作业系统被破解; 因为这作业系统有太多的程式及结构缺点, 就像要用筛子来将船划动一样.只有转用Linux等有真正安全的作业系统方可解决这个问题.

 

在那儿可以与真骇客通讯?

最好是找一个你本区的Unix或Linux的讨论小组, 并参与讨论(你可以在 LDP的网页找到超连结)

 我曾说在IRC(网上即时讨论小组)不能找到真骇客, 但我发觉现在情况有所改变. (现时有些真骇客亦在GIMP及Perl等的网上即时讨论小组出现.)

 

你可否介绍一些有关骇客的有用书籍?

你可到本人维护的Linux Reading List HOWTO看看,Loginataka亦有相关的资料.

我应先学那种程式语言?

若你不懂HTML, 你应先学它. 在坊间有很多不好的HTML书, 好的HTML书却很少. 我本人最喜欢 HTML: The Definitive Guide.

 但HTML并不是完全的程式语言. 当你有心理准备开始学写程式, 我提议你学Python.可能已有很多人提议你学Perl, 而事实上Perl是比Python更多人用. 但对初学者来说, Perl比较难学. 而且(我认为)Perl的设计比不上Python.在网上有很多Python的资讯供初学者.

 C语言是非常重要, 但比Python及Perl更难学. 不要以它为起点.

 对於视窗作业系统的用家, 请你们不要只学Visual Basic. 它会使你得到坏的编写程式习惯, 亦并不能於不同的作业系统平台使用. 尽量不要用它.

 

问: 但编写开放式程式的人会否不能赚钱过活?

看来不会 □ 直至现在, 开放式程式工业是在创造就业机会而非减少就业机会. 若成功编写一个程式是经济正收益,程式编写员, 无论是开放式或非开放式的, 亦可得到薪金. 另外, 无论有多少的开放式程式, 亦有更多需求新的及度身订做的应用程式.我在Open Source网页有更详尽的解说.

 

问: 我应如何开始, 我在那里可以很到免费的Linux ?

在这网页的其他地方已有超连结带你到可以得到免费Unix的地方. 要成为骇客, 你需要有主动性, 自发性及自学能力. 现在开始吧….

 Eric S. Raymond的电子邮号esr@snark.thyrsus.com  

posted @ 2010-04-10 11:44 Justin 阅读(...) 评论(...) 编辑 收藏