Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

常见问题解答(FAQ)

你会教我怎么成为黑客吗?

自从首次发表这篇文章以来,我每周都会收到几封(通常每天几封)希望“教我关于黑客的一切”的邮件。遗憾的是,我没有时间和精力去做这件事;我自己的黑客项目,再加上作为开源理念推广者四处奔走,已经占据了我110%的时间。

即使我有空,黑客之道本质上也是一种你必须自学的心态和技能。你会发现,虽然真正的黑客愿意帮助你,但如果你乞求他们将知道的一切都喂给你,他们不会尊重你。

先自主学习基础知识,展现你的行动力与自学能力。之后,再带着具体问题向你结识的黑客请教。

那我该怎么入门呢?

对你而言,最好的入门方式是参加 LUG(Linux 用户组)线下聚会。你可以在 LDP Linux 综合资讯页面(http://MetaLab.unc.edu/LDP/intro.html)找到各地群组;你附近很可能就有一个,也许与某所学院或大学有关联。如果你主动询问,LUG 的成员或许会提供 Linux 系统,并且肯定会指导你完成安装、带你入门。

我该从什么时候入门?现在学是不是太晚了?

只要你拥有学习的动力,不管年龄多大都是合适的起点。大多数人在 15-20 岁之间产生兴趣,但我也见过不少更早、或是年纪更大才起步的例子。

学会黑客的能力需要多长时间?

取决于你的天赋,以及投入的努力。如果集中精力,大多数人可以在 18 个月到 2 年内掌握一套相当扎实的技能。不过不要以为这就结束了,如果你是一个真正的黑客,你一生都要持续学习、打磨你的手艺。

Visual Basic 和 Delphi 适合作为入门语言吗?

不适合,因为它们不可移植。这些语言没有开源实现,所以你只能受限于供应商选择支持的那些平台。接受这种垄断生态,不符合黑客之道。

Visual Basic 尤其糟糕,凭它是微软专有语言这一点,就可以将它排除掉了。而且和其他早期 Basic 语言一样,它的语言设计有缺陷,会让你养成不好的编程习惯。

其中一个坏习惯,就是会养成依赖单一厂商提供的程序库、图形组件与开发工具的习惯。总的来说,一门语言如果不能至少在 Linux 或某款 BSD 系统,或是至少三家不同厂商的操作系统上运行,就不适合用来学习黑客技术。

你愿意帮我破解系统,或者教我怎么破解吗?

不能。读完这篇 FAQ 还提出这种问题的人,即便我有空辅导,也说明他蠢到不可教化。收到这种邮件,我要么直接无视,要么会用最难听的话怼回去。

我要怎么拿到他人账号的密码?

这是在搞破坏。滚开,白痴。

我的系统被人入侵了。你能帮我防御以后的攻击吗?

不能。到目前为止问过我这个问题的人全都在使用 Windows。想要有效防护 Windows 不被入侵几乎没有可能,它的代码与架构缺陷实在太多,保护 Windows 就像试图用筛子给船舀水。唯一可靠的办法就是换成 Linux 或其他具有真正安全性的操作系统。

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

可以。打开 DOS 提示符,输入“format c:”。几分钟之后,你遇到的所有麻烦都会消失b

我在哪里可以找到真正的黑客交流?

最好的方式是找到本地的 Unix 或 Linux 用户组,参加他们的线下聚会(你可以在 Metalab 站点的 LDP 网页上找到各地用户组清单链接:http://metalab.unc.edu/LDP/)。

(我过去常说在 IRC 上找不到真正的黑客,但据我所知,这种情况正在改变。不少和 GIMP、Perl 这类项目相关的正统黑客社群都有了 IRC 交流频道。)

你能推荐一些和黑客相关的优质书籍吗?

我维护了一份《Linux 阅读清单 HOWTO》(http://sunsite.unc.edu/LDP/HOWTO/Reading-List-HOWTO/index.html)或许对你有所帮助。另外《登录那吒迦》(Loginataka)a也值得一读。

我应该先学哪种语言?

如果你还不了解,先学 HTML。市面上有很多华而不实、炒作过度且质量低劣的 HTML 读物,好书却少得可怜。我最推荐《HTML 权威指南》(HTML: The Definitive Guide,http://www.oreilly.com/catalog/html3/)。

但HTML不是完整的编程语言。当你准备正式学习编程时,我推荐从 Python(http://www.python.org)开始。你会听到很多人推荐 Perl,而且 Perl 仍然比 Python 更流行,但它更难学,而且(在我看来)设计得没有 Python 好。为 Python 初学者准备的网络资源可以在http://www.deja.com/getdoc.xp?AN=523189453找到。

C 语言非常重要,但它比Python或Perl都难得多。不要把它当作第一门编程语言。

Windows 用户,不要满足于 Visual Basic。它会让你养成坏习惯,并且写出来的代码不能移植到 Windows 之外。不要再使用它。

我需要什么样的硬件设备?

过去个人电脑算力不足、内存容量有限,这给黑客的学习过程带来了人为限制。但这种情况在不久前已经改变:一台 Intel 486DX50 级别及以上的设备,就可以进行开发工作、运行 X 窗口系统、进行网络通信,而且今天你能买到的最小的磁盘也足够大。

在选择学习用的机器时,重要的是它的硬件是不是与 Linux 兼容(或者与 BSD 兼容,如果你选择这条路的话)。大多数现代设备都能满足条件;唯一容易出问题的地方是调制解调器(猫)和打印机,部分设备搭载只适配 Windows 的专属硬件,无法在 Linux 环境正常工作。

有一份硬件兼容性的 FAQ,最新版本在这里:http://users.bart.nl/˜patrickr/hardware-howto/Hardware-HOWTO.html。

我需要憎恨、抨击微软吗?

不,你没必要这么做。不是说微软就不让人厌恶,而是在微软诞生之前,黑客文化就已经存在;就算微软已经成为了历史,黑客文化也仍然会存在。别把精力浪费在憎恶微软上,专心打磨自己热爱的技艺就好。写出优秀的代码足以有力回击微软,而不会玷污你的业力。

但开源软件不会让程序员无法谋生吗?

可能性并不大。到目前为止,开源软件行业整体是在创造岗位,而不是削减岗位。如果开发一套程序比放任需求空缺更有净经济效益,那么无论成品最终是否开放免费,程序员都能够获得报酬。而且,无论写了多少“自由”软件,用户似乎总是有更多新应用、定制应用的需求。我在开源(http://www.opensource.org)页面上对此有更多论述。

我该怎么入门?我在哪里可以得到免费的 Unix 系统?

我在本文其他部分提供了一些最常用的免费 Unix 链接。想要成为黑客,你需要具备动力、主观能动性与自学能力。现在就行动吧……

译者注

a. 登录那吒迦(Loginataka):此处为 ESR 模仿梵语经文和史诗的标题风格,原文为 nāṭaka(梵语 नाटक,梵剧、史诗)。

b. 这是格式化 C 盘(系统盘)的高危指令,执行后会清空系统盘的所有数据;Linux 系统等效高危命令是rm -rf /,这句是讽刺玩笑,千万不要执行!