这可以追溯到几十年前,那时候第一代分时微型计算机才刚刚诞生,而ARPAnet的实验也才刚展开。那时的编程专家和组网高手建立了一个具有共享性质的文化社群,“hacker”这个名词就是其中的成员创造的。黑客们建立了互联网,黑客们让Unix操作系统演化到现在的模样,黑客们经营着Usenet,黑客们让万维网运转起来。如果你是这个文化的一部分,如果你对这种文化有所贡献,而且这个社群的其它成员也认识你并称你为hacker,那么你就是一名黑客。
黑客的思维方式并不仅仅局限在软件黑客的文化圈内。也有人用黑客态度对待其它事情,如电子和音乐方面——其实你可以在任何最高级别的科学和艺术活动中发现它的身影。软件黑客对这些领域的践行者尊重有加,并把他们也称作黑客——有人宣称黑客天性是绝对独立于他们工作的特定领域的。但在这份文档中,我们将集中书写在软件黑客的技术和态度,以及发明了“黑客”一词的、以共享为特征的文化传统。
根本的区别是:黑客搞建设,骇客搞破坏。
关于骇客,我能说的只有这些。
黑客们解决问题,建设事物,同时他们信仰自由和无私的双向帮助。要想作为一名黑客被社群认同,你需要体现出自己已经具备了这种态度。而要体现出这种态度,你就得真正相信和赞同这种态度。
但是,如果你认为培养黑客态度只是进入黑客文化圈的敲门砖,那就大错特错了。这种态度将有助于有助于你的学习,并且能为你提供源源不断的动力,所以它对你而言是至关重要的。和所有创造性的艺术一样,成为大师的最有效方法,就是模仿大师的精神——智力上的模仿还不够,还要从感情上进行模仿。
或者正如下面这首现代的禅诗讲的:
修行之道:
跟随大师的举动,
和大师一并修行,
领会大师的意境,
成为真正的大师。
所以,如果你想成为一名黑客,反复读下面的事情直至你相信它们为止:
1.这个世界充满了令人着迷的问题等着我们解决。
做一名黑客会有很多乐趣,但是这些乐趣需要付出很多努力才能获得。这些努力需要动力。成功的运动员在表演和超越自我极限的时候获得身体上的愉悦,并把这种愉悦作为自己的动力。同样,为了成为一名黑客,你要从解决问题、磨练技术,以及锻炼智力中得到基本的享受。
如果你不是天性如此,而你又想成为一名黑客,你就要设法成为这样的人。否则你会发现,你的黑客热情会被其他分心的事物吞噬掉——如金钱、性、以及社交圈的认同。
(你必须建立对于自己学习能力的信念——就算你掌握的知识不足以解决当前的问题,如果你从问题的一小部分下手并从中学习,你将学到足够的知识用来解决下一部分——以此类推,直到整个问题都被你解决为止。)
2.一个问题不应该被解决两次。
有创新能力的大脑是一种宝贵的有限资源。当世界还充满非常多有待解决的有趣的新问题时,它们不应该被浪费在重新发明轮子的事情上。
(这并不是在说你有义务把自己所有的作品都免费发布出来,但这样做的黑客能获得大家最大的尊敬。使用黑客技能养家糊口甚至发财致富都没关系,只要你别忘记自己作为一个黑客的责任,
背离黑客群体即可。)
3.无聊和乏味的工作是罪恶。
作为一个黑客,你必须坚信这点并尽可能多地将乏味的工作自动化,这不仅是为了你自己,也是为了其他人(尤其是其他黑客们)。
(对此有一个明显的例外。黑客有时为了休息大脑、学习技能、或者别的特别的原因,也会做一些在他人看来是重复性或枯燥的事情。但这是自愿的——只要是有思维能力的人,就不应该被迫做无聊的活儿。)
4.崇尚自由。
黑客们是天生的反权威主义者。任何能向你发号施令的人都可以让你停止解决令你着迷的问题,同时,按照权威主义者的一般思路,他通常会给出一些极端愚昧的理由。因此,不论何处,任何权威主义的做法,只要它影响到了你和其他的黑客,你就要和它斗到底。
权威主义者喜欢审查和保密。他们不信任自愿的合作和信息的共享——他们只喜欢由他们控制的所谓“合作”。因此,作为一个黑客,你应该对审查、保密,以及使用武力或欺骗去压迫有行为能力的人们的做法有一种本能的敌意。同时你要有为此信念付出的意愿。
5.态度不能替代能力。
作为一名黑客,你必须培养起这些态度。但只具备这些态度并不能使你成为一名黑客,也不能使你成为一个运动健将和摇滚明星。成为一名黑客需要智力、实践、奉献精神、以及辛苦的工作。
如果你尊重能力,你就会享受到提高自己能力的乐趣——辛苦的工作和奉献将不会是一件苦差事,而是一种紧张的娱乐,这是成为黑客至关重要重要的一点。
黑客态度重要,但技术更加重要。态度无法替代技术,在你被别的黑客称为黑客之前,你必须掌握一些基本的技术作为你随身携带的工具。
随着新技术的出现和老技术的过时,这个工具包的内容也在不断改变。比如以前机器语言编程也被列在里边,而HTML是直到最近才包括进去的。不过现在可以清楚地告诉你包含以下内容:
1.学习如何编程。
有一个大体的规律,就是如果你过于偏重使用一种语言,这种语言一方面会成为你得心应手的工具,另一方面也会阻碍你的学习。有这个问题的不只是编程语言,类似RubyOnRails、CakePHP、以及Django的web应用框架也有这个问题,它们只会让你肤浅地懂得一些东西,当你碰到难以解决的问题或者需要调试时,你就可能不知所措了。
如果你想进入正式的编程领域,你将不得不学习C语言,它是Unix的核心语言。C++与C非常其他类似;如果你了解其中一种,学习另一种应该不难。但这两种都不适合编程入门者学习。而且事实上,你越避免用C编程,你的工作效率会越高。
LISP值得学习的理由不同——最终掌握了它时你会得到丰富的启迪和经验。虽然你实际上很少会用到LISP,但这些经验会使你在以后的日子里成为一个更好的程序员。
当然,实际上你最好五种都会(Python,Java,C/C++,Perl和LISP)。除了是最重要的黑客语言外,它们还代表了截然不同的编程思路和方法,每种都会让你受益非浅。(你可以通过修改Emacs编辑器的模式)
单单学习编程语言并不会让你达到黑客的程度,甚至连程序员的程度都难企及——你需要脱离某种编程语言的素服,学习通过编程解决问题的思路。要成为一个真正的黑客,你需要达到几天就能学会一门编程语言的水平,你可以将文档里的信息和你已经掌握的知识结合起来,很快就学会一门编程语言。这意味着你需要先学会机种思路截然不同的语言才行。
编程是一个复杂的技能,我无法给你完整的指南来教会你如何编程,不过我可以告诉你,书本和课程也无法教会你如何编程——很多黑客,或者也许几乎所有的黑客,都是靠自学的。你从书本上学到语言的特点——只是一些皮毛,但要使书面知识成为自身技能,你只能通过实践和虚心向他人学习。因此你要做的就是(a)读代码,(b)写代码。
以前要找适合阅读的好代码并不容易,因为几乎没有大型程序的源代码能让新手练手。这种状况已经戏剧性地发生变化;开源软件、编程工具、和操作系统(全都由黑客写成)现在已经随处可见。让我们在下一个话题中继续讨论……
2.学习使用开源的Unix系统。
我将假设你已经有一台个人计算机供自己使用了(你可以体会一下这意味着多少东西。早些时候,计算机是如此的昂贵,没有人能买得起。而黑客文化就是在那样的环境下演化来的)。新手们能够朝学习黑客技能迈出的最基本的一步,就是找一版Linux或BSD-Unix,安装在个人电脑上,并且把它跑起来。
没错,这世界上除了Unix还有其他操作系统。但它们都是以二进制形式发布的——你无法读到它的源代码,也不可能修改它。尝试在运行DOS、Windows、或MacOS的机器上学习黑客技术,就象是穿着骑士铠甲学跳舞。
除此之外,Unix还是Internet的操作系统。你可以学会上网却不知道Unix,但你不了解Unix就无法成为一名Internet黑客。因此,今天的黑客文化在很大程度上是以Unix为核心的。(这点并不总是真的,一些很早的黑客对此一直很不满,但Unix和Internet之间的联系已是如此之强,就连Microsoft这样强力的公司也对此也无可奈何。)
所以,安装一套Unix吧——我个人偏爱Linux,但还有其他种类共你选择(是的,你可以在同一电脑上同时安装Linux和DOS/Windows)。学习它,运行它,鼓捣它。用它上Internet。阅读它的源代码。修改它的源代码。你会用到很多优秀的编程工具(包括C,LISP,Python及Perl),这些工具在Windows下是做梦都没法得到的。你会觉得乐趣无穷。当你有一天成为大师再回顾初学的日子,你会觉得那时学到的东西可真多。
你可以在www.bsd.org找到BSDUnix的求助及其他资源。
对于新手,我以前不鼓励你自己独立安装Linux或者BSD,现在这些系统的安装工具已经足够好了,就算对新手来说,独立安装操作系统也不是不可能的事。无论如何,我还是推荐你联系本地的Linux用户组,向他们寻求帮助,这会进程更加顺利。
3.学会使用万维网以及编写HTML。
黑客文化建造的大多东西都在你看不见的地方发挥着作用。浙西东西可以帮助工厂、办公室、以及大学正常运转起来,但从表面上很难看到它们对非黑客的普通人的生活的影响。而Web是一个大大的例外。就连政客也同意,这个庞大耀眼的黑客玩具正在改变整个世界。就算只是因为这个(还有许多其它的原因),Web也值得你一学。
要想有价值,你的网页必须有内容——它必须有趣或对其它黑客有帮助。这是下一个话题所涉及的……
4.学习英语,如果你的水平不够用的话。
作为一个以英语为母语的美国人,我以前很不情愿提到这点,免得被当做一种文化上的帝国主义。但相当多以其他语言为母语的人一直劝我指出这一点,那就是:英语是黑客文化和Internet的工作语言,只有懂英语,你才能在黑客社区顺利做事。
大概1991年的时候,我就了解到许多黑客在技术讨论中使用英语,甚至有时他们来自同一种母语也在用英文讨论。在现阶段,英语有着比其他语言丰富得多的技术词汇,因此是一个对于工作来说相当好的工具。基于类似的原因,英文技术书籍的翻译通常都不怎么令人满意。(如果有翻译的话)。
LinusTorvalds是芬兰人,但他的代码注解是用英语写的(很明显他从没想过其他的可能性)。他流利的英语。是他能够管理全球范围的Linux开发人员社区的重要因素。这是一个值得学习的例子。
就算你的母语是英语,这也无法保证你的语言技能足够达到黑客的标准。如果你的写作文字不通、语法混乱、错字连篇,包括我在内的大部分的黑客都会忽略你的存在。虽然写作马虎不一定意味着思考也马虎,但我们发现两者的关联性还是挺强的——马虎的头脑对我们来说毫无价值,如果你写作能力不够,就好好学习写作吧。
和大部分不涉及金钱的文化一样,黑客王国靠声誉运转。你设法解决有趣的问题,但它们到底多有趣,你的解法有多好,是要由那些和你具有同样技术水平,或比你更厉害的人去评判的。
相应地你需要认识到,当你在玩黑客游戏时,你的分数主要是靠其他黑客对你的技术的评价得到的(这就是为什么只有在其它黑客称你为黑客时,你才算得上是一名黑客)。常人的印象里,黑客是一项独来独往的工作,所以上述评价方式并不为众人所知。另一个黑客文化误区是拒绝承认自我或外部评价是一个人的动力,这种想法在1990年代末以后就逐渐衰退了,但现在还有人这么认为。这也是让上述评价方式鲜为人知的原因之一。
要获得其他黑客的尊敬,你可以从下面五种事情着手:
1.撰写开源软件
第一个方法(也是最重要,最传统的方法)是写些被其他黑客认为有趣或有用的程序,并把程序源代码提供给整个黑客文化圈使用。
黑客领域里最受尊敬的偶像,是那些写了大型的、好用的、用途广泛的软件,并把它们发布出来,使得每人都在使用他软件的人。
2.帮助测试并调试开源软件
如果你是个新手,试着找一个你感兴趣的正在开发中的程序,做一个好的beta测试员。你会自然地从帮着测试,进步到帮着抓bug,到最后帮着改程序。你会从中学到很多,而且善因种善果,以后别人也会很乐意帮助你。
3.发布有用的信息
另一件好事是收集整理有用有趣的信息,做成网页或类似FAQ的文档,并且让大家都能看到。
技术性FAQ的维护者会受到和开源代码的作者一样多的尊敬。
4.帮助维护基础设施的运转
黑客文化(还有互联网工程方面的发展)是靠志愿者推动的。要使Internet能正常工作,就要有大量枯燥的工作不得不去完成——管理邮件列表和新闻组,维护大型软件库,开发RFC和其它技术标准等等。
做这类事情的人会得到很多尊敬,因为每人都知道这些事情费时颇多,而又不象编程那样有趣。做这些事情需要奉献精神。
5.为黑客文化本身服务
最后,你可以为这个文化本身做宣传(例如像我这样,写一个“如何成为黑客”的教程:-))这并不要求在你已经在这个圈子呆了很久,因以上四点中的某点而出名,有一定声誉后才能去做。
和大家普遍认为的相反,并不是只有书呆子才能成为一名黑客。但它确实有帮助,而且许多黑客事实上是书呆子。做一个深居简出的人有助于你集中精力进行十分重要的事情,如思考和编程。
因此,很多黑客都接受了“geek(奇客)”这个标签,并把它作为骄傲的奖章——这是宣布他们独立于主流社会期望的一种方式(这个标签也是他们喜欢科幻小说和策略型游戏的标记,而这些也是很多黑客喜欢的东西)。1990年代更多用的称呼是“nerd(书呆子)”,那时“nerd”只带点轻微的贬义,而“geek”则是地地道道的蔑称,而在2000年以后,这两者逐渐调转过来了,至少再美国的大众文化中是这样。而到了现在,甚至在非技术人群里,也有不少以geek精神为傲的文化团体。
如果你能集中足够的精力做好黑客工作同时还能有正常的生活,这是件好事。现在要做到这一点比我在1970年代还是新手的时候要容易的多;如今主流文化对技术怪人要友善得多。甚至有越来越多的人意识到黑客通常是很好的恋人和配偶的材料。
如果你因为生活上不如意而迷上做黑客,那也没什么——至少你不会分神了。也许你以后还能找到自己的生活。
重申一下,要做一名黑客,你必须深入体验黑客精神。计算你不在计算机边上,你仍然有很多对黑客工作有帮助的事情可做。它们并不能替代真正的编程(没有什么能替代编程),但很多黑客都那么做,并感到它们与黑客的本质存在某些基本的连系。
阅读科幻小说。参加科幻小说讨论会。(这是一个认识黑客和准黑客的好方法)
学习一种武术。武术中需要的精神自律能力和黑客在这方面的需求非常相似。黑中最受欢迎的武术是来自亚洲的空手格斗类武术,例如跆拳道、空手道、武术、合气道、柔术等。西式击剑和亚洲剑术也有不少的跟随者。1990年后期以来,在可以合法使用枪支的地方,射击受欢迎的程度也越来越高了。大部分黑客喜欢的武术类型都是那些强调精神的自律,放松的意识,以及意念的控制,而不仅仅是单纯的力量、运动精神、以及身体的强健。
实实在在学习一种冥想修炼。多年以来黑客中最受欢迎的形式是参禅。(很重要的一点是,参禅和宗教可以说是独立的,你不需要接受一种新宗教,或者放弃现有的宗教信仰,就能做参禅的修炼。其他的形式也许也管用,但注意一定要挑那些靠谱的,不需要你相信不着边际的事物的冥想方式来演练。
提高自己对双关语和文字游戏的鉴赏能力。
如果这些事情有很多你已经在做了,那你可能是天生做黑客的材料。至于为什么偏偏是这些事情,原因并不完全清楚,但它们都涉及用到左-右脑能力的综合,这似乎是关键所在(黑客们既需要清晰的逻辑思维,有时又需要偏离逻辑跳出问题的表象)。
最后,还有一些不要去做的事情。
不要使用愚蠢的,哗众取宠的ID或昵称。
不要卷入Usenet(或任何其他地方)的骂战。
不要让你的email或者帖子中充满错误的拼写和语法。
网名的问题值得深思。将身份隐藏在虚假的名字后是骇客、软件破解者、及其他低等生物幼稚愚蠢的行为。黑客不会做这些事;他们对他们所作的感到骄傲,而且乐于人们将作品与他们的真名相联系。因此,如果你现在还在使用假名,那就放弃它吧。在黑客文化里假名是失败者的标记。
我在这里所描述黑客精神和社会远远早于1990Linux出现的时候,我第一次涉足黑客圈是1976年,而究其根源则可追溯到20世纪60年代初。但在Linux出现之前,大多数黑客使用的操作系统要么是私有的商业版本,要么是自己开发的未得到广泛使用的系统(例如麻省理工学院的ITS系统)。虽然那时也有人想要改变这种状况,但他们的努力影响范围相当有限,充其量仅在某个黑客社区有少数忠实用户而已。
尽管很多人存在保留意见,RMS的“自由软件”的大旗也一直举到了1990年代中期。直到Liunx崛起时它才受到了重大挑战。Linux给了的开源开发者一个新的自然归宿,很多项目都已我们现称的开源的方式由Unix移植到了Linux系统中。Linux的社区也得到了爆炸性增长,成为了一个比以前黑客文化更为庞大,并且异质化的新的群体。RMS曾今尝试将这一社群也归并到他的“自由软件运动”大旗下,但终究没有成功,原因可以归于Linux社区的样性,以及LinusTorvalds本人的质疑。Torvalds公开拒绝了RMS的自由软件思想,但还是沿用了“自由软件”这一术语,这也引来了很多年轻黑客的效仿。
1996年,当我第一次发表这篇HOWTO的时候,黑客社团正在围绕着Linux和其它几个开源操作系统(尤其是BSDUnix的衍生系统)进行着快速的重组。几十年来围绕着闭源系统进行闭源开发的方式还没有开始淡出集体记忆,但在大家看来,这似乎已经是死去的历史了。越来越多的黑客都已经开始注重自己在开源项目(例如Linux、Apache等)上的贡献,并将这些贡献当做自己的成就。
然而在那个时候“开源”这一名词还没有出现。这个名词是1998年初才开始出现的,而在出现的半年内,大部分的黑客社区就接受了这一名词,只有少数不接受这一概念的人还在坚持使用“自由软件”这一名词。1998年以后,或者更准确地说是2003年以后,所谓的“hacking”和“开源(自由)软件开发”的含义已经非常接近了。从今天的眼光来看,这种区分已经没有意义了,看趋势,这个现状将来也不大可能有多大的改变。
不管怎样,这段变更的历史还是值得记住的。
内容
怎样才能知道自己已经是一名够格的黑客?
你可以问自己下面三个问题:
你能流利地读写代码吗?
你认同黑客社群的目的和价值吗?
黑客社群里有没有资深成员称呼你为黑客呢?
如果你对这三个问题的答案都是“是”的话,你已经是一名黑客了。如果你只满足其中两项,那就说明你还不够格。
第一个问题是关于技能的。如果你已经符合本文前面提到的最低需求的话,你也算过关,不过如果你发布过为数不少的开源代码并被社群接受,那你就算满分过关了。
这里列出了一些项目的不完全列表供你参考:Linux的改进和用户群扩大对你来说是否重要?你对于自由软件精神是否充满激情?你对于垄断是否有敌意?你是否相信计算机这种工具会让增加世界财富,让这个世界更富有人道主义?
不过值得注意的一点是,黑客社群有一些特有的政治倾向,其中两条,一条是保卫言论自由权,一种是抵御所谓“知识产权”对于开源社区的侵害。实践这两条的是一些民间组织,例如电子前沿基金会(ElectronicFrontierFoundation)就是其中之一。不过虽然如此,黑客们对于有任何明确政治目的的团体都是心怀戒备的,因为我们已经从各种经验教训中学到一点:这些活动只会分裂黑客社团,并让黑客们分心。如果有人以黑客精神为名组织一场首都大游行,那他就完全没有弄明白这点。真正的应对方式也许应该是“闭上嘴巴,给他们看代码”。
第三个问题有点循环递归的味道。在“什么是黑客”一节我已经讲过,作为一名黑客的意义在于参与某个黑客社群,也就是社交网络的一个亚文化团体,作为内部的贡献成员以及外部的宣传者积极活动。和很久以前相比,黑客群体现在的团结意识和自我意识已经增强了很多。过去三十年来,随着互联网的发展,社交网络逐渐开始发挥举足轻重的作用,而黑客的亚文化团体也更加容易发展和维护了。这种变革的明显一个有代表性的现象是:有的黑客社群现在都有自己专门的文化衫了。
研究社交网络的社会学家把黑客文化归为“看不见的大学”,而且注意到这些网络社交圈还有所谓的“看门人”——其中的一些核心成员,他们有一定的权威,可以准新成员的进入。所谓的“看不见的大学”本来就是一个松散的非正式组织,所以这些“看门人”也只是这门称呼而已。但不是每个黑客都是“看门人”,这是每个黑客都深刻明白的一点。“看门人”需要有一定的资历和成就,究竟要到什么程度很难讲,但一旦有这样的人出现,每一个黑客都能辨识出来。
你能教我做黑客吗?
即便我想教你,黑客也依然基本上是一项自行修炼的的态度和技术。当真正的黑客想帮助你的时候,如果你乞求他们一汤匙一汤匙“喂”你的话,你会发现他们不会尊重你。
先去学一些东西。显示你在尝试,你能靠自己去学习。然后再去向你遇到的黑客请教特殊的问题。
如果你发E-mail给一位黑客寻求他的帮助,这是两件首要记住的事情。第一,写出来的文字显得懒且粗心的人通常非常懒于思考且非常马大哈,不能成为好黑客——因此注意拼写正确,使用正确的语法及发音,否则你可能会无人理睬。第二,不要试图要求回复到一个ISP帐号,而那个帐号与你的发信地址不同。这样做的人一般是使用盗用帐号,我们对于回报或者帮助窃贼不感兴趣。
那么,我要如何开始?
对你而言最佳的入门方式也许是去参加LUG(Linux用户组)的聚会。你可以找到在LDP的综合Linux信息页面上找到类似的组织;也许有一个在你家附近的,而且非常有可能与一所大学或学校挂钩。如果你提出要求,LUG成员兴许会给你一套Linux,当然此后会帮你安装并带你入门。
我得什么时候开始学?现在会不会太迟了?
你有动力学习的时候就是好时候。大多数人看来都是在15
20岁之间开始感兴趣的,但据我所知,在此年龄段之外的例外也是有的。
要学多久才能学会黑客技能?
这取决于你的聪明程度和努力程度。对于大多数人,只要足够专注,就能在18个月到2年之间学会一套令人尊敬的技能。但是,不要以为这样就够了;如果你是一个真正的黑客,你要用你的余生来学习和完善你的技术。
VisualBasic是好的入门语言吗?
既然你问了这个问题,那你肯定是想在MicrosoftWindows操作系统下学习黑客技能。这本身就不是一个好主意。我前面讲过在Windows下hack就跟穿着骑士铠甲跳舞一样,我不是在开玩笑。别走这条路,Windows是一个很低劣的hack环境,而且一直如此。
VisualBasic有一个特征性问题,就是它不可以被移植到其他平台。虽然也有些VisualBasic开源实现的雏形,但实现的只是ECMA标准的一个很小的子集。在Windows下大部分类库的知识产权都是Microsoft独家所有,如果你不是及其小心的话,你的代码将只能在Microsoft支持的平台上使用。如果你不打算从Unix起步,那你也有更好的语言可选,而且类库质量还更高,例如Python就是其中之一
和其他的Basic类语言一样,VisualBasic这门编程语言的设计也很糟糕,它会教你一些坏的变成习惯。你就别问我细节了,这可是罄竹难书。还是去学一门设计优良的语言吧。
其中一个坏习惯是让你依赖于单一厂商的函数库、控件及开发工具。一般而言,任何不能够支持至少Linux或者某一种BSD,或其不能支持至少三种以上操作系统的语言,都是一种不适合应付黑客工作的语言。
你能帮我“黑”掉一个站点吗?或者教我怎么黑它?
我怎么样才能得到别人帐号的密码?
这是骇客行为。滚得远远的,白痴。
我如何入侵/查看/监视别人的Email?
这是骇客行为。在我面前消失,智障。
我如何才能在IRC聊天室里偷到频道op的特权?
这是骇客行为。滚开,笨蛋。
我被黑了。你能帮我避免以后再被攻击吗?
不行。目前为止,每次问我这个问题的,都是一些运行MicrosoftWindows的菜鸟。不可能有效的保护Windows系统免受骇客攻击;太多代码和架构的缺陷使保护Windows的努力有如隔靴搔痒。唯一可靠的预防来自转移到Linux或其他设计得至少足够安全的系统。
我的Windows软件出现问题了。你能帮我吗?
当然。打开DOS命令行输入“formatc:”。你遇到的任何问题将会在几分钟之内消失。
我在哪里能找到可以与之交流的真正的黑客?
(我过去曾说过不能在IRC上找到真正的黑客,但我发觉现在情况有所改变。显然一些真正的黑客的社区像GIMP及Perl,也有IRC频道了。)
你能推荐一些有关黑客的好书吗?
成为一名黑客我需要擅长数学吗?
不用。黑客道很少使用常规的数学或算术,不过你绝对需要能逻辑性地思考和进行精密的推理。尤其是你不会用到微积分或电路分析(我们把这些留给电子工程师们:-))。有限数学中的一些可提(包括布尔代数,集合论,组合数学,图论)的背景知识会对你有所帮助。
更重要的一点:你要有逻辑思维能力,能够以数学家的方式追溯因果。虽然大部分的数学知识对你可能没什么用处,但数学思维的能力对你来说是极其重要的。如果你缺乏这方面的智慧,要做一名黑客恐怕是无望了。如果你缺乏这方面的训练,还是尽早开始吧。
我该从那种语言学起?
C确实重要,但它也比Python或Perl难多了。不要尝试先学C。
Windows用户注意:不要满足于VisualBasic。它会教给你坏习惯,而且它不可以跨平台移植,只能在Windows下运行。因此还是敬而远之为好。
我需要什么样的机器配置?
过去个人电脑能力相当不足并且内存很小,这给黑客的学习过程设置了人为的障碍。不过1990中期以后就不是这样了;任何一台Intel486DX50以上配置的机器都有足够的能力进行开发工作、运行X系统、以及进行Internet通讯。而且你买到的市面上最小的硬盘都大得足够你使用了。
选择用来学习的机器时重要的一点是注意配件是否是Linux兼容的(或BSD兼容,如果你选择BSD的话)。和刚才提到的一样,大多数现在的机器都是符合的;唯一值得注意的区域在于modem和打印机;有些具备为Windows设计的配件的机器不会在Linux下工作。
我想贡献社区。你可以帮我选一个问题让我下手吗?
不行,因为我不知道你的兴趣和擅长领域在哪里。如果你没有内在动力,你就很难坚持下去,所以说,别人只给你的路是行不通的。
试试这么做吧。在Freshmeat网站观察几天,看看里边的项目更新,如果你看到一个看上去很酷而且你也很感兴趣的项目,就加入吧。
我得因此憎恨和反对Microsoft吗?
不,你不必如此。不是因为Microsoft不令人讨厌,而是因为黑客文化早在Microsoft出现之前就存在了,且将在Microsoft成为历史后依然存在。你耗费在憎恨Microsoft的任何力气不如花在爱你的技术上。写好的代码——那会相当有效地打击Microsoft又不会让你得到恶报应。
开放源代码软件不会使程序员丢饭碗吗?
目前看起来不太可能,开放源代码软件产业似乎创造了更多的就业机会而不是减少就业机会。如果写一个程序比起不写来是纯经济收益的话,那么在写完后,程序员应该得到报酬不管程序是否是开放源代码。并且,无论写出多么“免费自由”的软件,都存在更多对新的,定制的软件的需求。我有这方面更多的论述,放在放源代码网站资料中。
我要如何开始?哪里有免费的Unix?
在本份文档的某个地方我已经提到过何处可以得到最常用的免费Unix。要做一名黑客,你需要自己找到激励和动力,还要有自学的能力。现在就开始努力吧……