与局域网用比,普通拨号上网的用户在预防黑客的对抗中,往往处于更不利的地位。但是,许多上网的一向对 *** 安全抱着无所谓的态度,认为最多不过是被人盗用账号而损失几千元而已,却没有想到被盗用的账号如果被黑客利用做为跳板从事 *** 破坏活动,你可能就要背黑锅了。根据笔者一位朋友对拨号上网用户的抽样追踪发现,在广州城里,居然有三成多的用户半年以内都不更换一次账号密码!由于从事黑客活动越来越容易,是到了需要提高 *** 安全意识的时候了,下面的 *** 将有助于拨号上网用户预防黑客入侵。
一、经常修改密码
老生常谈了,但却是最简单有效的 *** 。由于许多黑客利用穷举法来破解密码,像John这一类的密码破解程序可从因特网上免费下载,只要加上一个足够大的字典在足够快的机器上没日没夜地运行,就可以获得需要的帐号及密码,因此,经常修改密码对付这种盗用就显得十分奏效。由于那么多潜在的黑客千方百计想要获得别人的密码,那么拨号上网用户就应该加强防范,以下四个原则可提高密码的抗破解能力。
1.不要选择常用字做密码。
2.用单词和符号混合组成密码。
3.使用9个以上的字符做密码,使你的密码尽可能地长,对Windows系统来说,密码最少要由9个字符组成才算安全。
4.密码组成中更好混合使用大小写字母,一般情况下密码只由英文字母组成,密码中可使用26或52个字母。若对一个8个字母组成的密码进行破解,密码中字母有无大小写之分将使破解时间产生256倍的差别。
二、请他人安装后应立即修改密码
这是一个很容易忽略的细节,许多用户之一次不懂得如何拨号上网,就请别人来教,这样常常把用户名和密码告诉此人,这个人记住以后就可以回去盗用服务了。所以,用户更好自己学会如何拨号后再去申请上网账号,或者首先向ISP问清如何修改自己的密码,在别人教会自己如何拨号后,立刻将密码改掉,避免被人盗用。
三、使用“拨号后出现终端窗口”功能
选中某一连接,单击鼠标右键,选“属性/常规/配置/选项/拨号后出现终端窗口”,然后拨号时,在拨号界面上不要填入用户名和密码(更不要选中“保存密码”项),在出现拨号终端窗口后再进行相应的输入,这可以避免用户名和密码被记录到硬盘上的密码文件中,同时,也可以避免被某些黑客程序捕获用户名和密码。
四、删除.pwl文件
在Windows目录下往往有一些以“.pwl”为后缀名的密码文件,“.pwl”是password的音译缩写。比如:在最初的Windows95操作系统中密码的保存即存在安全漏洞,从而使黑客可以利用相应的程序轻松获取保存在pwl文件里的密码。这一漏洞在Windows97中已经被修复。因此,你需要为你的电脑安装Windows97以上版本的操作系统。pwl文件还常常记录其他地方要用到的密码,比如开启Exchange电子信箱的密码、玩Mud游戏的密码等,要经常删除这些pwl文件避免将密码留在硬盘上。
五、禁止安装击键记录程序
很多人知道doskey.exe这个程序,这个在DOS下常用的外部命令能通过恢复以前输入的命令来加快输入命令的速度,在Windows下也有了许多类似的程序,如keylog,它不但能记录用户的击键动作甚至能以快照的形式记录到屏幕上发生的一切。还有些程序能将击键字母记录到根目录下的某一特定文件中,而这一文件可以用文本编辑器来查看。密码就是这样被泄露出去的,偷盗者只要在根目录下看看就可以了,根本无需任何专业知识
六、对付特洛伊木马
特洛伊木马程序常被定义为当执行一个任务时却实际上执行着另一个任务的程序,用“瞒天过海”或“披着羊皮的狼”之类的词来形容这类程序一点也不为过。典型的一个例子是:伪造一个登录界面,当用户在这个界面上输入用户名和密码时,程序将它们转移到一个隐蔽的文件中,然后提示错误要求用户再输入一遍,程序这时再调用真正的登录界面让用户登录,于是在用户几乎毫无察觉的情况下就得到了记录有用户名和密码的文件。现在互联网上有许多所谓的特洛伊木马程序,像著名的BO、Backdoor、Netbus及国内的Netspy等等。严格地说,它们属于客户机/服务器(C/S)程序,因为它们往往带有一个用于驻留在用户机器上的服务器程序,以及一个用于访问用户机器的客户端程序,就好像NT的Server和Workstation的关系一样。
在对付特洛伊木马程序方面,有以下几种办法
1.多读readme.txt。许多人出于研究目的下载了一些特洛伊木马程序的软件包,在没有弄清软件包中几个程序的具体功能前,就匆匆地执行其中的程序,这样往往就错误地执行了服务器端程序而使用户的计算机成为了特洛伊木马的牺牲品。软件包中经常附带的readme.txt文件会有程序的详细功能介绍和使用说明,尽管它一般是英文的,但还是有必要先阅读一下,如果实在读不懂,那更好不要执行任何程序,丢弃软件包当然是最保险的了。有必要养成在使用任何程序前先读readme.txt的好习惯。
值得一提的是,有许多程序说明做成可执行的readme.exe形式,readme.exe往往捆绑有病毒或特洛伊木马程序,或者干脆就是由病毒程序、特洛伊木马的服务器端程序改名而得到的,目的就是让用户误以为是程序说明文件去执行它,可谓用心险恶。所以从互联网上得来的readme.exe更好不要执行它。
2.使用杀毒软件。现在国内的杀毒软件都推出了清除某些特洛伊木马的功能,可以不定期地在脱机的情况下进行检查和清除。另外,有的杀毒软件还提供 *** 实时监控功能,这一功能可以在黑客从远端执行用户机器上的文件时,提供报警或让执行失败,使黑客向用户机器上载可执行文件后无法正确执行,从而避免了进一步的损失。
3.立即挂断。尽管造成上网速度突然变慢的原因有很多,但有理由怀疑这是由特洛伊木马造成的,当入侵者使用特洛伊的客户端程序访问你的机器时,会与你的正常访问抢占宽带,特别是当入侵者从远端下载用户硬盘上的文件时,正常访问会变得奇慢无比。这时,你可以双击任务栏右下角的连接图标,仔细观察一下“已发送字节”项,如果数字变化成1~3kbps(每秒1~3千字节),几乎可以确认有人在下载你的硬盘文件,除非你正在使用ftp功能。对TCP/IP端口熟悉的用户,可以在“MS-DOS方式”下键入“netstat-a”来观察与你机器相连的当前所有通信进程,当有具体的IP正使用不常见的端口(一般大于1024)与你通信时,这一端口很可能就是特洛伊木马的通信端口。当发现上述可疑迹象后,你所能做的就是:立即挂断,然后对硬盘有无特洛伊木马进行认真的检查。
4.观察目录。普通用户应当经常观察位于c:、c:windows、c:windowssystem这三个目录下的文件。用“记事本”逐一打开c:下的非执行类文件(除exe、bat、com以外的文件),查看是否发现特洛伊木马、击键程序的记录文件,在c:Windows或c:Windowssystem下如果有光有文件名没有图标的可执行程序,你应该把它们删除,然后再用杀毒软件进行认真的清理。
七、尽量不要使用共享硬盘功能
使用了远程拨号接入局域网功能的Windows98用户要慎用硬盘共享和文件共享功能,共享就意味着允许别人下载文件。当硬盘或文件夹图标下有一只手托着时,表明启动了共享功能,选中该图标,选择“文件”选单下的“共享”,再选“不共享”,这只手就消失了。
八、不使用“MyDocuments”文件夹存放Word、Excel文件
Word、Excel默认的文件存放路径是根目录下的“MyDocuments”文件夹,在特洛伊木马把用户硬盘变成共享硬盘后,入侵者从这个目录中的文件名一眼就能看出这个用户是干什么的,这个目录几乎就是用户的特征标识,所以为安全起见应把工作路径改成别的目录,并且层次越深越好,比如:c:abcdefghijkl。可以肯定地说,在互联网上,没有什么措施是绝对安全的,黑客入侵的一个重要法则是:入侵者不只用一种 *** 入侵,这就意味着只有堵塞一切漏洞才能防止入侵,这显然是不可能的。具有讽刺意味的是,许多安全措施本身却带来了新的安全隐患,就好像药品常带有副作用一样。
信息时代,手机电脑面临许多病毒威胁,隐私也有泄露风险,我们需要如何保护自己的 *** 安全
为什么会有这篇文档?
身为新黑客词典(The Jargon File)和许多其他广为人知的同类文章的作者,我常收到热心的 *** 新人的电子邮件,问及(大意上是)“如何成为一名魔法师似的黑客?”。1996年的时候我注意到这个重要的问题并没有相关的FAQ或文档页面,所以我写了一份。许多黑客认为这篇文章是权威的,我觉得它应该是吧。此外,我不会寻求在这个话题上的独立著作权,如果你不喜欢在这里读到的内容,自己写一篇吧。
如果你是在离线阅读本文,可以在找到本文的最新版本。(译注:本文的最新中文版可以在这里找到)
注意:本文的末尾有一系列常见问题。请在向我发邮件询问关于本文的任何问题前再三阅读。
目前本文有许多语言的翻译版: *** 语,白俄罗斯语,中文,捷克语,丹麦语,荷兰语,爱沙尼亚语,德语,希腊语,意大利语,希伯来语,挪威语,波斯语,巴西葡萄牙语,罗马尼亚语,西班牙语,土耳其语,瑞典语。请注意,由于本文不定期更新,这些翻译版可能存在不同程度的过时。
本文里九宫格中的5个黑点的装饰图被称作glider。这是一个使很多黑客多年痴迷的被称作康威生命游戏(LIFE)中,具有令人惊奇特性的简单图案。我认为它是很好的黑客精神徽章 —— 抽象,初见的时候感觉有点神秘,通过它复杂的逻辑可以通向整个世界。如果你想了解更多关于glider的信息,请看这里。
如果你觉得这篇文章有价值,请在Gittip上给我一点赞助。也请考虑赞助其他为你提供了有价值代码的黑客。小额的赞助也能够聚小流成江海,使为你提供帮助的人从繁重的劳动中解放出来,创造更多的价值。
什么是黑客?
新黑客词典(Jargon File)中有数个“黑客”的定义,主要形容”技术专才”或”有志解决问题及超越极限之人”。要成为黑客,有两个要点。
这可以追溯到几十年前之一台分时小型电脑诞生, ARPAnet 实验也刚展开的年代,那时有一个由程序设计专家和 *** 名人所组成的, 具有分享特点的文化社群。这种文化的成员创造了 “hacker” 这个词。他们建立了互联网,他们发明了现在使用的Unix操作系统,他们管理Usenet讨论组,他们令WWW运作。因此,若你有上述的特性及参与同类的社区,亦有对以上种种作出贡献,同时社区的人知道你是谁又称你为“hacker”,你便是黑客。
然而,黑客的理念并非只局限于软件社区。有很多人将黑客的态度应用于其他事物,如电子学或音乐上——实际上,黑客的理念存在于任何学科领域。由于了解黑客的理念及精神,软件社区的黑客亦会称后者为黑客。有些人亦认为黑客的理念是独立于黑客所从事的实际工作。本篇文章我们将专注于讨论软件黑客的技巧,态度及传统。
另外,有一群人也称自已为“黑客”,他们(多数是年青人)用电脑侵入其他电脑的系统作出破坏。黑客们称这群人为“Cracker(破坏者)”,并不认同他们为黑客。多数黑客会认为Cracker是懒惰, 不负责任,不杰出的人。有能力侵入安全系统并不能使你成为黑客,正如可以用铁丝来偷车并不能使你成为汽车工程师一样。不幸的是很多作家及报道均称这群人为“黑客”。这一直使黑客们非常恼火。
黑客与Cracker的主要区别在于,前者搞建设,后者搞破坏。
如果你想成为一个黑客,请继续读下去。如果你只想做一个Cracker,请到alt.2600讨论组,并做好当你发现自己不如想象中聪颖的时候进5到10次监狱的准备。关于Cracker我就说这么多。
黑客们解决问题,建设事物,他们崇尚自由和无私的双向帮助。要被他人承认是一名黑客,你必须表现得你具备了这样的态度。而要表现得你具备了这种态度,你必须彻彻底底的坚持它。
如果你认为培养黑客的态度只是一条在这个文化圈中得到认同的路子,那就错了。成为具备这种素质的人,对你非常重要——促使你保持学习和成为黑客的自发性。正如所有创造性艺术一样,成为大师的最有效途径就是效仿大师的精神——不仅从理念上,还要从态度上效仿。
或许下面的这首现代禅诗很好的阐述了这个意思:
To follow the path: 沿着这样一条道路:
look to the master, 关注大师,
follow the master, 跟随大师,
walk with the master, 与大师同行,
see through the master, 洞察大师,
become the master. 成为大师。
如果你想成为一名黑客,反复阅读以下内容直到你相信它们:
1.世上仍有大量迷人的事情等待解决
作为一名黑客可以享受很多乐趣,同时需要付出相当多的努力。努力需要动力。成功的运动员从锻炼身体、超越身体极限中获得精神愉悦。类似的,作为一名黑客,你可以从解决问题、磨练技术和锻炼智力中获得乐趣。
如果你天生不是这样的人,那你需要设法变成这样的人以使你能够成为一名黑客。否则你将会发现你的精力会被诸如性、金钱、社会上的虚名之类让人分心的东西所消磨掉。
(你还需要对自己的学习能力树立信心——相信尽管你对某一问题了解得不多,只要你能解决其中一部分,并从中学习,你可以解决其他的部分——直到解决它。)
2. 同样的问题不应被重复处理两次
创造性的智慧是非常有价值且稀缺的资源。它们不应当被浪费在重复造轮子上,世上仍有大量迷人的新问题等着解决。
作为一名黑客,你应该坚信其他黑客的时间非常宝贵,所以你有义务共享信息,解决问题之后公布方案,这样其他人可以去解决新的问题,而不是忙于应付旧问题。
注意,“同一个问题不应该被重复处理两次”并不是说你必须认为所有已有方案都是更优的,或每个问题只有唯一的解决方案。通常我们从一个问题的最初解决方案中能够学习到很多东西。这很好,并且对于我们思考如何能做得更好来说,这通常是必要的。我们反对的是人为的技术、法律上的,或者机构性的设置障碍(例如闭源软件),使得一个好的方案不能被重复使用,逼得人们重造轮子。
(你不必认为你必须将所有你的创造发明都公布出去,虽然这样做的黑客将会赢得大家极度尊重。适当卖一些钱来换取足够的食物、租金和电脑并不违反黑客的价值观。用你的技能来养家糊口甚至致富都可以,只要你在做这些的时候别忘记你是一名黑客。)
3. 拒绝重复和沉闷的事情
黑客(以及富有创造力的所有人)不应当被愚蠢的重复性劳动所困扰,因为这意味着他们并没有在做只有他们才能做的事情——解决新问题。这样的浪费会伤害所有人。因此,无聊和乏味的工作不仅仅是令人不爽,而是罪恶。
作为一个黑客,你应该坚信这一点并尽可能的将枯燥的工作自动化,这不仅仅是为了你自己,也为了其他人(尤其是其他黑客)。
(这里有一个例外。黑客有时会做一些看起来重复或枯燥的事情以进行脑力休息,或以此来锻炼一种技能,或以此获得某种除此以外无法获取的经验。但这是有选择的——有脑子的人不该被强迫做枯燥的事。)
4. 自由万岁
黑客是天生的反独裁主义者。任何能向你发号施令的人能够迫使你停止解决令你着迷的问题。同时,按照独裁者的一般思路,他通常会给出一些极端愚昧的理由。因此,不论何处,任何独裁主义的作法,只要它压迫你和其他黑客,你就要和它斗到底。
(这并非向所有权威挑战。儿童需要监护,罪犯要被看管起来。如果服从命令得到某种东西比起用其他方式得到它更节约时间,黑客可以同意接受某种形式的权威。但这是一个有限度的,有意的交易,那种权威想要的个人服从不是你应该同意给予的。)
权威喜欢审查和保密。他们不信任自愿的合作和信息共享——他们只喜欢由他们控制的所谓“合作”。因此,作为一个黑客,你得对审查、保密,以及使用武力或欺骗去压迫有行为能力的人们的做法有一种本能的敌意。同时你要有为此信念斗争的意愿。
5. 精神不能代替能力
作为一个黑客,你必须培养起这些精神。但是仅仅有精神并不能使你成为黑客,也不能使你成为运动健将或摇滚明星。成为一名黑客还需要智力,实践,奉献精神和辛勤工作。
因此,你需要学会有怀疑态度和尊重任何能力。黑客不会为装模作样的人浪费时间,但他们尊重能力——尤其是从事黑客工作的能力,不过任何能力都是好的。很少人能具备的高要求能力尤其好,其中涉及脑力,技巧和专注方面的能力更好。
尊重能力,你就会享受到提高自己的能力所带来的乐趣——辛苦的工作和奉献将不再是苦差而是一种高度娱乐。想要成为一名黑客,这一点尤其重要。
基本黑客技能
黑客的态度很重要,但技能更重要。态度不能替代能力,在被别的黑客称你为黑客之前,你有一些基本技能需要掌握。
这些基本技能随着时间的推移和技术的革新也缓慢的变化着。例如,以前的内容中包括了使用机器语言编程,最近包含进了HTML。总的来说当前包括以下内容:
1. 学习编程
理所当然,这是最基本的黑客技能。如果你一门计算机语言都不懂,我建议你从Python学起。它设计良好,文档详尽,并且对新人十分友好。尽管它是一门很好的入门语言,但它不只是玩具水平。它非常强大灵活,并且适用于大型项目。我写过一篇详细的对Python的评价。在Python的网站可以找到很好的教程。在Computer Science Circles也有一篇不错的第三方教程。
我早前曾经建议使用Java作为入门语言,但这篇评价改变了我的看法(请在文档中搜索“The Pitfalls of Java as a First Programming Language”)。如同文中尖锐指出的一样,一个黑客不能“像五金店中的管道工一样处理问题”。你需要知道所有的组件事实上都干了什么。现在,我认为更好先学C和Lisp,然后再学Java。
另外有一点需要注意。如果一门语言帮你做了太多工作,它会同时是一个好的生产工具和一个不好的初学对象。不仅语言有这个问题,比如Web框架RubyOnRails,CakePHP,Django也很容易让你流于表面,面对困难问题的时候束手无策,甚至无法对一个简单问题进行追查并给出解决方案。
如果你需要做一些重要的编程工作,你需要学习C语言,它是Unix的核心语言。C++跟C关系密切。如果你了解其中一种,学习另外一种应该不难。但是这两种语言都不适合作为入门学习。此外,如果你越避免用C编程,你的工作效率会越高。
C的执行效率非常高,并且非常节省机器资源。不幸的是C的高效是通过让你手动进行许多底层资源(例如内存)管理来获得的。底层代码复杂并且容易出bug,你需要花费很多时间来进行调试。鉴于当今的机器性能如此之高,这样的做法通常很不划算——通常更好的做法是使用一种稍微慢一些,不那么高效,但是能够大幅节省你的时间的语言。那便是Python。
其他对黑客而言比较重要的语言包括Perl和LISP。Perl很实用,它广泛应用于动态网页和系统管理方面,因此即使你从不写Perl代码,至少也得能看懂。许多人使用Perl的理由和我建议你使用Python的理由一样,都是为了避免用C完成那些执行效率需求不那么高的工作。你需要能够看懂他们的代码。
LISP之所以值得一学是基于另外的理由——当你最终掌握了它的时候,你将会获得巨大的启迪。它将使你成在今后为一个更好的程序员,即使你实际上很少使用LISP本身。(你可以通过为Emacs文本编辑器或者GIMP的Script-Fu编写插件或修改现有插件来很容易的学习LISP。)
当然,你更好五种语言都会(Python,C/C++,Java,Perl和LISP)。除了是重要的黑客语言之外,它们也代表了截然不同的编程思路和 *** ,每一种都能让你受益匪浅。
但是单纯的堆砌语言是不可能成为一个黑客,甚至程序员的。你需要学会如何独立于任何具体的语言之外来思考编程问题。作为一名真正的黑客,你需要通过手册和你已有的知识掌握到在几天之内学会一门语言的要点。这意味着你需要学习许许多多不同的语言。
这里我无法给你完完全全的指导教会你如何编程——这是个复杂的技能。但我可以告诉你,书本和课程也不能做到(更好的黑客中,有许多,也许几乎都是自学成材的)。你可以从书本上学到语言的特点——这只是皮毛,但要使书面知识成为自身技能只能通过实践和虚心向他人学习。因此要做到读代码及写代码。
Peter Norvig,Google最顶级的黑客之一,也是世界上更受欢迎的AI教材(译注:指“人工智能:一种现代 *** ”和“人工智能程序设计范例:通用Lisp语言的案例研究”等)的共同作者。他写了一篇名为Teach Yourself Programming in Ten Years的短文。他在文中提到的“编程成功的诀窍(recipe for programming success)”特别值得留意。
学习编程就像学习用优美的自然语言书写一样。更好的办法就是阅读大师的名著,试着自己写点东西,再读一些,再写一点,再读一些,再写一点……如此往复,直到你的作品达到如你在范文中所见的简洁和健壮。
我必须再提一下How To Learn Hacking,这是一些简单的说明,但是学起来并不容易。
以前很难找到适合阅读的好代码,因为几乎没有大型程序的代码能够供新人阅读和练手。这种情况已经发生戏剧性的变化。开源软件,编程工具和操作系统(都是由黑客创造的)现在随处可见。这刚好带我们到下一个话题……
2. 获取一个开源的Unix并学习运行和使用它
我假定你拥有或者能使用一台个人电脑(现在的孩子真幸福。黑客文化建立之初电脑贵得要死,没人买得起)。新手们向黑客技能迈出的最重要一步就是获取一份Linux或BSD-Unix的拷贝,将其安装在个人电脑上,并运行它。
没错,世上除了Unix还有其他操作系统。但它们都是以二进制形式发布的——你读不到源码,你也不能修改代码。在类似Microsoft Windows那样的闭源操作系统上学习黑客技术就像戴着脚镣学跳舞。
在Mac OS X上倒是可以,不过它只有一部分是开源的——你可能会撞墙,也必须很小心的避免养成依赖Apple专有代码的坏习惯。如果你专注于底层的Unix,你可以学到一些有用的东西。
Unix是互联网上的操作系统。虽然你不懂Unix仍然可以学会使用互联网,但若你不懂Unix,你将不能在互联网上从事黑客活动。因此,现今的黑客文化是严重以Unix为中心的。(曾经不是这样,并且有一些老派的黑客对此仍然感到不太高兴。但是现今Unix和互联网的羁绊如此之强,连Microsoft也无法撼动分毫。)
所以,请安装一套Unix - 我个人喜爱Linux但还有其他种类的(并且,你可以在同一台电脑上运行Linux和Windows)。学习它,使用它, *** 它。用它在互联网上冲浪。阅读它的代码,修改它的代码。你将获得比Windows操作系统上更好的编程工具(包括C,LISP,Python和Perl)。你会觉得其乐无穷,学到比你想像更多更好的知识。
我认为博客Let’s Go Larval!对于处在学习Linux阶段中的用户是非常易懂和有用的。这篇文章How I Learned Linux就是一个很好的起点。
想开始Linux之旅,请参考Linux Online!你可以从那里下载Linux或者(更好的主意是)找到一个当地的Linux用户群为你的安装过程提供帮助。
在本文最初的10年间,我认为从一个初学者的角度来说,所有Linux发行版都差不多。不过在2006~2007年间,一个事实上更好的选择出现了:Ubuntu。其他发行版各有所长,而Ubuntu对初学者最友好。注意,相比Ubuntu默认那个丑陋的几乎不可用的“Unity”桌面,Xubuntu和Kubuntu更好用一点。
你可以在找到BSD相关的帮助和资源。
一个试水的好办法是试试被Linux爱好者称为“Live CD”的东西,那是一个完全在光盘或者U盘上运行,而不修改你硬盘的发行版。它运行起来比较慢,因为光盘很慢,但是这是一个在做出任何不可挽救的改变前看看可行性的办法。
我写过一篇关于Unix和互联网基础的入门文章。
我曾经不建议新手独自安装Linux或者BSD。现在它们的安装程序已经做得足够好,你作为新人也完全搞得定。尽管如此,我仍然建议和你当地的Linux用户群取得联系并寻求帮助。这没坏处,并且可以让整个过程更顺利。
3. 学习使用万维网(World Wide Web,WWW)和HTML(超文本标记语言)
大多数的黑客造物在你所不知的地方发挥着作用,帮助工厂、办公室和学校运转,这看上去跟普通人没太大关系。Web是一个大大的例外,即便政客也承认这个巨大耀眼的黑客玩具正在改变着世界。单就这一个原因(当然还有其他理由)你就需要学习掌握Web。
这并不仅仅意味着如何使用浏览器(谁都会),而是要学会如何写HTML,Web的标记语言。如果你不会编程,写HTML会教你一些有助于学习的思考习惯。因此,先完成一个主页。尝试坚持使用XHTML,一种比标准HTML更清晰的语言。
但仅仅拥有一个主页不能使你成为一名黑客。Web里充满了各种网页。大多数是毫无意义的,零信息量的垃圾——界面时髦,能夺人眼球的垃圾还是垃圾(更多信息访问The HTML Hell Page)。
所以,你的页面必须有内容——得是有趣并且对其他黑客来说有用的内容。这是我们下一个议题要说的……
4. 学习实用英语
作为一个美国人和一个以英语为母语的人,我以前很不情愿提到这点,免得成为一种文化上的帝国主义。但相当多以其他语言为母语的人一直劝我指出这一点,那就是英语是黑客文化和Internet的工作语言,你需要懂得以便在黑客社区顺利工作。
大概1991年的时候我了解到许多黑客在技术讨论中使用英语,即使在他们的母语都相同,英语对他们而言只是第二语言的时候也常如此。据我所知,当前英语有着比其他语言丰富得多的技术词汇,因此是一个对于工作来说相当好的工具。基于同样的理由,英文技术书籍的翻译(如果有的话)通常都不能令读者满意。
芬兰人Linus Torvalds用英语注释他的代码(很明显这不是凑巧)。他流利的英语成为他能够管理全球范围的Linux开发人员社区的重要因素。这是一个值得学习的例子。
即使作为一个以英语为母语的人也不代表你就具备了成为黑客所需的语言技能。一般而言,如果你写得像个半文盲似的,文中充斥着各种语法、拼写错误,多半得不到理睬。虽然不严谨的文笔并不总是意味着不严谨的思维,但我们发现这两者之间的关联还是挺紧密的。而我们不需要这种思维不严谨的人。如果你现在还没有具备这样的书写能力,赶紧培养。
黑客社区的身份
像大部分非盈利社区一样,黑客社区靠声誉运转。你设法解决有趣的问题,但问题是否有趣及解决 *** 是否有效,需要由那些和你具有同样甚至更高技术水平的人去评判。
因此,要玩黑客这个游戏,你需要以其他黑客对你技能的评判作为对自己的评价(所以我说,在其他黑客称你为黑客之前,你不是一个真正的黑客)。这个事实常被人误解(从1990年代后有所好转,但还是很严重),人们认为黑客都是不在乎别人的评价,孤僻的人。这实际上是一个黑客文化的禁忌。
特别地,黑客被人类学家们称为奉献社区。在这里你不是凭借你对别人的统治来建立地位和名望,也不是靠美貌,或拥有其他人想要的东西,而是靠你的奉献。尤其是奉献你的时间,你的创造力和你的技术成果。
要想获得黑客的尊重,你基本上有5件事情可干:
1. 编写开源软件
首先(也是最传统和最重要的)是写一些其他黑客觉得有趣或有用的程序,并且开放源代码。
(我们曾经把这些程序称为“自由软件(free software)”,但是太多人不能确定这里的“free”是什么意思。现在我们通常使用“开源”软件这个词。
黑客间最受尊敬的圣人是那些编写了大型的,功能强劲且满足了广泛需求的开源软件供他人使用的人。
但是这里有段有趣的历史。虽然黑客一直敬重开源软件开发者,并且他们是我们社区的核心,但是直到1990年代中期,绝大部分黑客绝大多数时间是在闭源软件上工作的。在我1996年写本文的之一版的时候仍然如此。到1997年之后开源软件逐渐成为主流并改变了这一点。现在,“黑客社区”和“开源软件开发者”本质上是对同一文化和同一人群的两种表述——但值得记住的是,曾经不是如此。(想了解更多,请看“历史记录:黑客活动,开源,和自由软件”。)
2. 帮助测试和调试开源软件
黑客也尊敬那些为开源软件进行测试和除错的人。在这个并非完美的世界上,我们不可避免地要花大多数的开发时间在调试阶段。这就是为什么许多开源软件作者都会高度评价那些好的beta测试员(知道如何清楚描述出错症状,很好地定位错误,能忍受快速发布中的bug,并且愿意使用一些简单的诊断工具),认为他们像红宝石一样珍贵。一个好的测试员可以使如恶梦的测试及除错工作变为一件值得经历的小烦恼。
如果你是个新手,试着找一个你感兴趣的正在开发的程序,尝试做一个好的beta测试员。你会自然地从帮着测试,进步到帮着抓bug,到最后帮着改程序。你会从中学到很多,并且与未来会帮到你的人结下友谊。
3. 发布有用的信息
另一个好事是收集整理有用有趣的信息做成网页或文档如FAQ(常见问题)列表,且让他们容易获得。
技术性FAQ的维护者往往如同开源软件作者一样很受人尊重。
4. 帮助维护基础设施运转
黑客社区(也包括互联网发展)是靠自愿者组成的。有大量重要但平淡的事情需要处理——管理邮件列表,新闻组,维护大型软件归档库,开发RFC和其他技术标准等。
做以上事情的人会得到很多人的尊敬,因为大家都知道这些事情需要大量的时间并且不如编写软件那么有趣。这类工作需要使命感。
5. 为黑客社区服务
最后,你还可以为黑客社区做服务和宣扬(比如写一篇“如何成为黑客”的文章 :-))。通常你不会做这些工作,直到你已经做了以上四种中的一样,并且取得了相当的知名度。
黑客社区没有既定的领导者,但是有被人们尊重的英雄,长老级人物,史学家和发言人。当你在这个圈里足够久,你可能会成为他们中的一员。但请谨记,黑客对于自我夸耀的长老并不认同,因此不要尝试大举追求这种名誉。与其奋力追求,不如先摆正自己的位置,等它自己到你手中,那时需要做到谦虚和优雅。
黑客与书呆子(Nerd)的关系
与流行的传说不同,黑客并不是书呆子。但这确实对你成为黑客有帮助,并且很多黑客确实是书呆子。做一个深居简出的人有助于使你更能集中精力做一些重要的事,例如思考和从事黑客活动。
因此,许多黑客甚至以“极客(geek)”(译注:这个词原本在美国俚语中指“反常的人”)为名——这是一种宣布他们独立于普通社会的方式(此外,黑客也通常沉迷于其他一些事情例如科幻和战略游戏)。“书呆子”这个词通常在1990年代也被如此使用,那时候“书呆子”这个词略含贬义,而“极客”贬义更重。2000年以后这两个词的关系发生了转变,至少在美国流行文化上是如此,现在甚至在非技术专家中也出现了以标榜为极客为豪的情况。
如果你能集中足够的精力做好黑客工作同时还能有正常的生活,这很好。现在做到这一点比我在1970年代还是新手的时候要容易的多;如今主流文化对技术怪人要友善的多。甚至有越来越多的人意识到黑客通常是很好的恋人和配偶侯选。
如果你因为生活上的不如意而成为黑客,那也不错——至少你不用分神了。或许今后你能有一个不错的生活。
历史记录:黑客活动,开源,和自由软件
当我在1996年末刚开始写这篇文档的时候,很多情况跟现在是不同的。简单的介绍一下这个变化对于对开放源代码、自由软件和Linux跟黑客社区的关系感到困惑的人们可会有所帮助。如果你对这些不感兴趣,可以直接跳过这里,前往FAQ和参考资料部分。
我描述的黑客精神和黑客社区远早于1990年出现的Linux。我最初进入这个圈子大概是在1976年,其原因可以追溯到1960年代早期。但是在Linux出现前,多数黑客行为是在专有操作系统,或一些自主研发的实验性系统上,例如MIT的ITS,这个系统从未在实验室以外的地方使用过。虽然在早期(Linux出现之前)有过一些试图改变这种状况的努力,但是它们的影响都非常轻微,仅限于真正怀抱这样理想的人群,即使在当时的黑客社区这也是绝对少数,更不论对于世界范围内的通用软件群体的影响了。
现在被称为“开放源代码”的行为,其历史与黑客社区一样久远,但是直到1985年这都只是一个无名的民间行为,没有相关的理论和宣言。这段史前时代在1985年结束,大黑客Richard Stallman(“RMS”)尝试给了它一个名字——“自由软件(Free Software)”。但是这个命名行为也是一个强制要求行为,他为“自由软件”标签加上了大多数已有的黑客社区从不接受的意识形态的包袱。“自由软件”的标签被黑客社区中的一部分重要人物(尤其是与BSD Unix有关联的社区)明确拒绝,并且其余的大部分人也在严肃并且持保留意见的情况下使用它(包括我本人)。
除此之外,大约在1990年代中期以前,RMS想要在“自由软件”口号下定义和引领黑客社区。在Linux崛起之后,这受到了极大挑战。Linux为开放源代码开发活动提供了一个天然的环境。许多在现今被称为“开放源代码”条款下发布的项目纷纷从专有Unix向Linux迁移。围绕Linux的社区呈现爆炸式的增长,比在Linux出现前的黑客文化规模更大且更多样化。RMS想要将这些活动与他的“自由软件”运动关联起来,但是由于Linux社区爆炸式的多样性和该社区的创始人,Linus Torvalds的公开怀疑所阻碍。Torvalds仍然使用“自由软件”这一词汇,因为找不到更好的替代品,但他公开拒绝了RMS的意识形态观念。许多年轻黑客纷纷效仿。
在1996年,当我之一次发布本文的时候,黑客社区正在围绕Linux和一些其他开放源代码的操作系统(尤其是BSD Unix的继承者)进行重组。我们中的许多人曾经在封闭源代码的操作系统上花费大量时间开发封闭源代码软件的集体记忆并没有因此褪色,但是这看起来已经是过去。黑客们将自己作为黑客的定义与开发源代码项目例如Linux和Apache越来越紧密的结合在一起。
然而“开放源代码”这个词直到1998年初才出现。当它出现之后,多数黑客社区在6个月之内采用了它,除了与“自由软件”在意识形态层面绑定的极少数例外。自1998年起,尤其是2003年之后,“黑客”和“开放源代码(和自由软件)开发”越来越紧密相连。今天,几乎已经无法也没必要将它们区分开,并且这一点看起来在将来也不会改变。
然而,曾经并不是这样,这一点值得我们记住。
其它资源
Paul Graham写了一篇名为“Great Hackers”和一篇名为“Undergraduation”的文章,有很多精妙的见解。(中文版详见国内出版图书《黑客与画家》)
年轻的黑客可能会发现Things Every Hacker Once Knew有趣并且有用。
有一篇名为How To Be A Programmer的文章,对如何成为程序员做了详尽的说明。它的价值不仅限于代码及其相关能力上,对于如何在一个程序员团队中工作也有建设性价值。
我写过一篇A Brief History Of Hackerdom。
我写过一篇名为“大教堂与市集(The Cathedral and the Bazaar)”的文章,在文中解释了Linux和开源社区是如何运作的。在它的续集“开拓智域(Homesteading the Noosphere)”中,我进一步深入探讨了这个问题。
Rick Moen写了一篇很棒的关于如何运营一个Linux用户组的文章。
Rick Moen和我共著了一篇关于提问的智慧的文章。它将使你更容易获取到帮助。
如果需要个人电脑、Unix 和互联网如何工作的基础知识,参阅Unix和互联网工作的基本原理。
当你发布软件或补丁时,试着按软件发布实践操作。
如果你对禅诗感兴趣,你可能会喜欢Rootless Root: The Unix Koans of Master Foo。
How To Become A Hacker
Eric Steven Raymond,Thyrsus Enterprises,
Copyright 2001 Eric S. Raymond
翻译:柯非,
这篇译文基于2017.10.06更新的原文修订版1.50。
如果对译文有任何意见或者建议,请发Issue,或直接发Pull Request给我。
译文:
如何成为一名黑客(全集)
---什么是黑客
Jargon File中对“黑客”一词给出了很多个定义,大部分定义都涉及高超的编程技术,强烈的解决问题和克服限制的欲望。如果你想知道如何成为一名黑客,那么好,只有两方面是重要的。(态度和技术)
长久以来,存在一个专家级程序员和 *** 高手的共享文化社群,其历史可以追溯到几十年前之一台分时共享的小型机和最早的ARPAnet实验时期。这个文化的参与者们创造了“黑客”这个词。 黑客们建起了Internet。黑客们使Unix操作系统成为今天这个样子。黑客们搭起了Usenet。黑客们让WWW正常运转。如果你是这个文化的一部分,如果你已经为它作了些贡献,而且圈内的其他人也知道你是谁并称你为一个黑客,那么你就是一名黑客。
黑客精神并不仅仅局限于软件黑客文化圈中。有些人同样以黑客态度对待其它事情如电子和音乐---事实上,你可以在任何较高级别的科学和艺术中发现它。软件黑客们识别出这些在其他领域同类并把他们也称作黑客---有人宣称黑客实际上是独立于他们工作领域的。但在本文中,我们将注意力集中在软件黑客的技术和态度,以及发明了“黑客”一词的哪个共享文化传统之上。
根本的区别是:黑客们建设,而骇客们破坏。
如果你想成为一名黑客,继续读下去。如果你想做一个骇客,去读 alt.2600 新闻组,并在发现你并不像自己想象的那么聪明的时候去坐5到10次监狱。关于骇客,我只想说这么多。
---黑客的态度
黑客们解决问题,建设事物,信仰自由和双向的帮助,人人为我, 我为人人。
要想被认为是一名黑客,你的行为必须显示出你已经具备了这种态度。要想做的好象你具备这种态度,你就不得不真的具备这种态度。但是如果你想靠培养黑客态度在黑客文化中得到承认,那就大错特错了。因为成为具备这些特质的这种人对你自己非常重要,有助于你学习,并给你提供源源不断的活力。同所有有创造性的艺术一样,成为大师的最有效 *** 就是模仿大师的精神---不是仅从理智上,更要从感情上进行模仿。
So,如果你想做一名黑客,请重复以下事情直到你相信它们:
1 这世界充满待解决的迷人问题
做一名黑客有很多乐趣,但却是些要费很多气力方能得到的乐趣。 这些努力需要动力。成功的运动员从健壮体魄,挑战自我极限中汲取动力。同样,做黑客,你必须
要有从解决问题,磨练技术,锻炼智力中得到基本的热望。如果你还不是这类人又想做黑客,你就要设法成为这样的人。否则你会发现,你的黑客热情会被其他诱惑无情地吞噬掉---如金钱、性和社会上的虚名。
(同样你必须对你自己的学习能力建立信心---相信尽管你对某问题所知不多,但如果你一点一点地学习、试探,你最终会掌握并解决它。)
2. 一个问题不应该被解决两次
聪明的脑瓜是宝贵的,有限的资源。当这个世界还充满其他有待解决的有趣问题之时,他们不应该被浪费在重新发明轮子这些事情上。作为一名黑客,你必须相信其他黑客的思考时间是宝贵的---因此共享信息,解决问题并发布结果给其他黑客几乎是一种道义,这样其他人就可以去解决新问题而不是重复地对付旧问题。
(你不必认为你一定要把你的发明创造公布出去,但这样做的黑客是赢得大家尊敬最多的人。卖些钱来给自己养家糊口,买房买车买计算机甚至发大财和黑客价值也是相容的,只要你别忘记你还是个黑客。)
3. 无聊和乏味的工作是罪恶
黑客们应该从来不会被愚蠢的重复性劳动所困扰,因为当这种事情发生时就意味着他们没有在做只有他们才能做的事情---解决新问题。这样的浪费伤害每一个人。因此,无聊和乏味的工作不仅仅是令人不舒服而已,它们是极大的犯罪。要想做的象个黑客,你必须完全相信这点并尽可能多地将乏味的工作自动化,不仅为你自己,也为了其他人(尤其是其他黑客们)。
(对此有一个明显的例外。黑客们有时也做一些重复性的枯燥工作以进行“脑力休息”,或是为练熟了某个技巧,或是获得一些除此无法获得的经验。但这是他自己的选择---有脑子的人不应该被迫做无聊的活儿。)
4 自由就是好
黑客们是天生的反权威主义者。任何能向你发命令的人会迫使你停止解决令你着迷的问题,同时,按照权威的一般思路,他通常会给出一些极其愚昧的理由。因此,不论何时何地,任何权威,只要他压迫你或其他黑客,就要和他斗到底。
(这并非说任何权力都不必要。儿童需要监护,罪犯也要被看管起来。 如果服从命令得到某种东西比起用其他方式得到它更节约时间,黑客会同意接受某种形式的权威。但这是一个有限的、特意的交易;权力想要的那种个人服从不是你的给予,而是无条件的服从。)
权力喜爱审查和保密。他们不信任自愿的合作和信息共享---他们只喜欢由他们控制的合作。因此,要想做的象个黑客,你得对审查、保密,以及使用武力或欺骗去压迫人们的做法有一种本能的反感和敌意。
5. 态度不能替代能力
要做一名黑客,你必须培养起这些态度。但只具备这些态度并不能使你成为一名黑客,就象这并不能使你成为一个运动健将和摇*明星一样。成为一名黑客需要花费智力,实践,奉献和辛苦。
因此,你必须学会不相信态度,并尊重各种各样的能力。黑客们不会为那些故意装模做样的人浪费时间,但他们却非常尊重能力---尤其是做黑客的能力,不过任何能力总归是好的。具备很少人才能掌握的技术方面的能力尤其为好,而具备那些涉及脑力、技巧和聚精会神的能力为更好。
如果你尊敬能力,你会享受提高自己能力的乐趣---辛苦的工作和奉献会变成一种高度娱乐而非贱役。 要想成为一名黑客,这一点非常重要。
支付宝近日可真是搞了个大新闻,吧花呗的账户限制取消了。也就是说同一身份证名下可以开通多个花呗账号,最多三个。蚂蚁金服客服表示,为满足用户需求,在当前完成实名认证情况下,一个身份证最多可开通3个花呗,实...
我做了这么久的SEO,来来回回看到过很多人进入SEO,也看到很多人退出SEO,能够像我们一样坚持在做SEO,每天在分析搜索引擎算法的可能很少有人了,而我在SEO行业整整摸爬滚打了五年,这五年,我们做过...
不知道你对嘉埔盐焗食品加盟项目标相识有几多呢?是否想要加盟到个中来呢?假如是的话,那么本日这篇文章很是的适合你哦,嘉埔盐焗食品加盟项目在市场上成长多年,品牌形象早就已经深入到人心了,深受宽大消费者的喜...
《黑客帝国4》上映一个月倒计时,救世主究竟为什么会复活? 1、因为主角并不真实存在于环境中,而是他的意识在程序中。他们每次执行任务的地方,其实就是母体,母体是一个庞大的模拟程序。主角复活后,变成了一种...
【周星驰版的鹿鼎记中,鳌拜被擒片段】 论康熙者,首先就说他十六岁擒鳌拜,如何如何了不得。在金庸大师的鹿鼎记中,更是将康熙皇帝捉拿鳌拜的传奇渲染的令人印象深刻。凡是看过周星驰作品鹿鼎记的人,都会记...
当地时间2月12日晚,白宫发布声明称,美国总统拜登目前已决定,暂时不对国内航班乘客执行起飞前需进行新冠病毒检测的要求。 声明中写道:“拜登总统自上任以来已采取多项措施以提高旅行的安全性。其中...