A.9 常见问题解答(FAQ)

    你能教我怎么做黑客吗?

    自这份文档首次发布以来,我每周都会收到一些请求(经常是一天好几次),说“请教给我关于黑客的一切”。很遗憾,我没有时间或精力做这个。我有自己的黑客项目,作为一个开放源代码倡导者,我要四处奔波,这些已经占用了我110%的时间。

    即便我可以教你,从黑客的态度和技能上讲,基本上也应该是你自己教自己。你会发现,当有真正黑客愿意帮你的时候,如果你祈求他们一勺一勺地“喂”你,他们不会尊重你的。

    首先,你要学一些东西。展示出你在努力尝试,展示出你有能力自学。然后再带着特定问题去请教你所遇到的黑客。

    我该如何开始?

    对你而言最佳的入门方式也许是参加LUG(Linux用户组)聚会。你可以在LDP Linux通用信息页面(http://MetaLab.unc.edu/LDP/intro.html)上找到这样的用户组;很可能你身边就有一个,而且多半是和某个大学或学院相关联的。如果你要求,LUG成员很可能会给你一套Linux,而且通常会帮你安装,带你入门。

    我应该从什么时候开始学?现在是不是太迟了?

    只要你有动力开始,任何时候都是好时候。大多数人是在15到20岁之间开始对此感兴趣的,但我知道有不少例外,高于或低于此年龄段的都有。

    我要多久才能学会黑客技能?

    这取决于你的天赋和努力程度。如果足够专注,大多数人能在18个月到两年时间内掌握一套相当体面的技能。但是不要觉得这就可以了,如果你是一名真正的黑客,你会用你的一生来学习和完善你的技能。

    Visual Basic或者Delphi是好的入门语言吗?

    不是,因为这些语言不可移植。而且也没有这些语言的开源平台实现,因此你只能在那些厂商所支持的平台上编程。黑客可不会接受这种垄断。

    Visual Basic尤其糟糕。仅从它是微软的专有语言这一点就足可以抛弃它了,而且和其他各种Basic语言一样,它的设计也很差,这会让你养成一些坏的编程习惯。

    其中一个坏习惯是让你依赖单一厂商的函数库、控件和开发工具。一般而言,任何语言,若是不能得到至少Linux或某种BSD的支持,以及/或者不能得到至少三家厂商的操作系统的支持,都不值得想当黑客的你学习。

    你能帮我攻破一个系统吗?或者教我如何去做?

    不能。如果谁在读完这份FAQ后还问这种问题,那真是愚不可及,即便我有时间也不会教你。对这类邮件请求,我要么直接忽略,要么会不客气地回敬你。

    我怎样才能拿到某人账号的密码?

    这是骇客行为。请走开,傻瓜。

    我被黑了。你能帮我防御攻击吗?

    不能。到目前为止,问这个问题的都是使用Windows的用户。你不可能有效保护Windows使其免受攻击,它的代码和架构有太多缺陷,保护Windows就像是用漏勺从漏水的船上向外舀水。唯一可靠的防护方法就是转向Linux或其他真正安全的操作系统。

    我的Windows软件出问题了,你能帮我吗?

    可以。打开DOS命令行界面,输入“format c:”。你的问题会在几分钟内消失。

    从哪里能找到可以对话的真正黑客?

    最好的办法是在你所处的地方找一个UNIX或Linux用户组并参加他们的聚会。(你可以在Metalab的LDP站点上找到一些用户组列表的链接:http://metalab.unc.edu/LDP/)

    (以前我说过在IRC上不会有真正的黑客,但我发觉情况有所变化,显然有些真正的黑客社区,比如GIMP和Perl,现在也有IRC频道了。)

    你能推荐一些和黑客编程相关的好书吗?

    我维护着一份Linux Reading List HOWTO:http://sunsite.unc.edu/LDP/HOWTO/Reading-List-HOWTO/index.html,也许它会帮到你,而且可能你会喜欢其中那篇“The Loginataka”。

    我应该先学习什么语言?

    HTML,如果你还不会的话。市面上有很多装帧华丽、被吹得天花乱坠的HTML书籍,遗憾的是几乎没有一本是质量过硬的。我最喜欢的是《HTML:The Definitive Guide》(http://www.oreilly.com/catalog/html3/)

    但HTML并不是一个完整的编程语言。如果你做好准备开始学习编程,我建议从Python起步,http://www.python.org。会有很多人向你推荐Perl,而且Perl现在确实比Python流行,但Perl更难学而且(在我看来)它设计得不是很好。

    C的确很重要,但它比Python或者Perl都难得多。不要一开始就尝试学习C语言。

    对于Windows用户,不要以为Visual Basic有多好。它会让你养成坏习惯,而且它不能跨平台,只能运行在Windows上。离它远点儿。

    我需要什么样的硬件?

    个人电脑曾经因其性能较弱、内存较小而给黑客的学习设置了人为限制,但时过境迁,现在任何Intel 486DX50以上配置的机器都足以胜任软件开发、X窗口运行以及互联网通信,而你能买到的最小容量的硬盘也已足够大。

    选择用于学习的机器时,比较重要的一点是留心其硬件是否与Linux兼容(或者与BSD兼容,如果你选择学习BSD)。同样,如今大多机器都符合这点;唯一可能有点麻烦的是modem和打印机;有些机器含有专为Windows设计的硬件,它们无法运行Linux。

    这里有最新版本的关于硬件兼容性的FAQ:http://users.bart.nl/~patrickr/hardware-howto/Hardware-HOWTO.html 我是否需要憎恨并反对微软?

    不需要。这并不是说微软不令人作呕,而是因为黑客文化早在微软出现之前就已存在,并会在微软成为历史之后继续存在。与其花费能量去憎恨微软,还不如去热爱你的编程手艺。写出好的代码——你就是在有力地打击微软,而且还不用担心报复。

    软件开源会不会让程序员无以谋生?

    不太可能,目前看来,开源软件产业非但没有使工作职位减少,反而创造了更多的工作职位。如果程序写出来比不写出来会有净经济收益,那程序员就会得到报酬,而不论程序写出来后是否免费。此外,不论写出多少“免费”软件,永远存在更多新的和定制化的应用需求。对此我在Open Source网站(http://www.opensource.org)上有更多的论述。

    我该如何开始?从哪儿能获得免费的UNIX?

    我已经在本文中提到过哪里有最常用的免费UNIX。要想成为一名黑客,你需要兴趣、主动性和自学能力。现在就开始吧……

    [1] 电脑朋克(cyberpunk),又称赛博朋克、数字朋克,网络叛客等,是cybernetics与punk的结合词。该词最早出现在Bruce Bethke于1983年11月发表在科幻杂志《Amazing》上的短篇小说《Cyberpunk》中。在电脑朋克作家看来,总存在一个统治民众生活的极权主义体系,该体系依靠某种特定的技术(如洗脑、假肢、克隆、遗传工程等方式)来实现统治,这种技术使人和机器结合起来,人们生活的每一个细节都受电脑网络控制,而生活在社会边缘的局外人(如罪犯、流浪汉、梦想家或只是单纯寻求兴趣爱好的人)与极权主义体系展开斗争。随着时间的演变,电脑朋客通常指那些着迷于电脑的反文化分子,他们喜欢在网络上制造各种恶作剧,借此展示对流行秩序的反抗。——译者注