What Is a Hacker?
什么是黑客
The Jargon File contains a bunch of definitions of the term ‘hacker’, most having to do with technical adeptness and a delight in solving problems and overcoming limits. If you want to know how to become a hacker, though, only two are really relevant.
新黑客词典(Jargon File)中有数个“黑客”的定义,主要形容”技术专才”或”有志解决问题及超越极限之人”。要成为黑客,有两个要点。
There is a community, a shared culture, of expert programmers and networking wizards that traces its history back through decades to the first time-sharing minicomputers and the earliest ARPAnet experiments. The members of this culture originated the term ‘hacker’. Hackers built the Internet. Hackers made the Unix operating system what it is today. Hackers make the World Wide Web work. If you are part of this culture, if you have contributed to it and other people in it know who you are and call you a hacker, you're a hacker.
这可以追溯到几十年前第一台分时小型电脑诞生, ARPAnet 实验也刚展开的年代,那时有一个由程序设计专家和网络名人所组成的, 具有分享特点的文化社群。 这种文化的成员创造了 “hacker” 这个词。他们建立了互联网,他们发明了现在使用的 Unix 操作系统。他们管理 Usenet 讨论组。他们令WWW 运作。因此,若你有上述的特性及参与同类的社区,亦有对以上种种作出贡献,同时社区的人知你是谁又称你为“hacker”,你便是黑客。
The hacker mind-set is not confined to this software-hacker culture. There are people who apply the hacker attitude to other things, like electronics or music — actually, you can find it at the highest levels of any science or art. Software hackers recognize these kindred spirits elsewhere and may call them ‘hackers’ too — and some claim that the hacker nature is really independent of the particular medium the hacker works in. But in the rest of this document we will focus on the skills and attitudes of software hackers, and the traditions of the shared culture that originated the term ‘hacker’.
然而,黑客的理念并非只局限于软件社区。有很多人将黑客的态度应用于其他事物,如电子或音乐上——实际上,黑客的理念存在于任何科学及文学。由于了解黑客的理念及精神,软件社区的黑客亦会称后者为黑客。有些人亦认为黑客的理念是独立于黑客所从事的媒体。然而,我们将在这篇文章专注讨论软件黑客的技巧,态度及传统。
There is another group of people who loudly call themselves hackers, but aren't. These are people (mainly adolescent males) who get a kick out of breaking into computers and phreaking the phone system. Real hackers call these people ‘crackers’ and want nothing to do with them. Real hackers mostly think crackers are lazy, irresponsible, and not very bright, and object that being able to break security doesn't make you a hacker any more than being able to hotwire cars makes you an automotive engineer. Unfortunately, many journalists and writers have been fooled into using the word ‘hacker’ to describe crackers; this irritates real hackers no end.
另外,有一群人亦称自已为“黑客”,他们(多数是年青人)用电脑侵入其他电脑的系统作出破坏。黑客们称这群人为“Cracker(破坏者)”,亦不认同他们为黑客。多数黑客会认为Cracker是懒惰, 不负责任,不杰出的人。有能力侵入安全系统并不能使你成为黑客,正如可以用铁丝来偷车并不能使你成为汽车工程师一样。不幸的是很多作家及报道均称这群人为“黑客”。这一直使黑客们非常恼火。
The basic difference is this: hackers build things, crackers break them.
黑客与Cracker的主要区别在于,前者搞建设,后者搞破坏。
If you want to be a hacker, keep reading. If you want to be a cracker, go read the alt.2600 newsgroup and get ready to do five to ten in the slammer after finding out you aren't as smart as you think you are. And that's all I'm going to say about crackers.
如果你想成为一个黑客,请继续读下去。如果你只想做一个Cracker,请到 alt.2600 讨论组,并做好当你发现自己不如想象中聪颖的时候进5到10次监狱的准备。关于Cracker我就说这么多。
The Hacker Attitude
黑客的精神
1\. The world is full of fascinating problems waiting to be solved.
2\. No problem should ever have to be solved twice.
3\. Boredom and drudgery are evil.
4\. Freedom is good.
5\. Attitude is no substitute for competence.
1\. 世上仍有大量迷人的事情等待解决
2\. 同样的问题不应被重复处理两次
3\. 拒绝重复和沉闷的事情
4\. 自由万岁
5\. 精神不能代替能力
Hackers solve problems and build things, and they believe in freedom and voluntary mutual help. To be accepted as a hacker, you have to behave as though you have this kind of attitude yourself. And to behave as though you have the attitude, you have to really believe the attitude.
黑客们解决问题,建设事物,他们崇尚自由和无私的双向帮助。要被他人承认是一名黑客,你必须表现得你具备了这样的态度。而要表现得你具备了这种态度,你必须彻彻底底的坚持它。
But if you think of cultivating hacker attitudes as just a way to gain acceptance in the culture, you'll miss the point. Becoming the kind of person who believes these things is important for you — for helping you learn and keeping you motivated. As with all creative arts, the most effective way to become a master is to imitate the mind-set of masters — not just intellectually but emotionally as well.
如果你认为培养黑客的态度只是一条在这个文化圈中得到认同的路子,那就错了。成为具备这种素质的人对 你¸非常重要 —— 使你保持学习和成为黑客的自发性。正如所有创造性艺术一样,成为大师的最有效途径就是效仿大师的精神——不仅从理念上,还要从态度上效仿。
Or, as the following modern Zen poem has it:
或许下面的这首现代禅诗很好的阐述了这个意思:
To follow the path:
沿着这样一条道路:
look to the master,
关注大师,
follow the master,
跟随大师,
walk with the master,
与大师同行,
see through the master,
洞察大师,
become the master.
成为大师。
So, if you want to be a hacker, repeat the following things until you believe them:
如果你想成为一名黑客,反复阅读以下内容直到你相信它们:
1. The world is full of fascinating problems waiting to be solved.
1. 世上仍有大量迷人的事情等待解决
Being a hacker is lots of fun, but it's a kind of fun that takes lots of effort. The effort takes motivation. Successful athletes get their motivation from a kind of physical delight in making their bodies perform, in pushing themselves past their own physical limits. Similarly, to be a hacker you have to get a basic thrill from solving problems, sharpening your skills, and exercising your intelligence.
作为一名黑客可以享受很多乐趣,同时需要付出相当多的努力。努力需要动力。成功的运动员从锻炼身体、超越身体极限中获得精神愉悦。类似的,作为一名黑客,你可以从解决问题、磨练技术和锻炼智力中获得乐趣。
If you aren't the kind of person that feels this way naturally, you'll need to become one in order to make it as a hacker. Otherwise you'll find your hacking energy is sapped by distractions like sex, money, and social approval.
如果你天生不是这样的人,那你需要设法变成这样的人以使你能够成为一名黑客。否则你将会发现你的精力会被诸如性、金钱、社会上的虚名之类让人分心的东西所消磨掉。
(You also have to develop a kind of faith in your own learning capacity — a belief that even though you may not know all of what you need to solve a problem, if you tackle just a piece of it and learn from that, you'll learn enough to solve the next piece — and so on, until you're done.)
(你还需要对自己的学习能力树立信心——相信尽管你对某一问题了解得不多,只要你能解决其中一部分,并从中学习,你可以解决其他的部分——直到解决它。)
2. No problem should ever have to be solved twice.
2.同样的问题不应被重复处理两次
Creative brains are a valuable, limited resource. They shouldn't be wasted on re-inventing the wheel when there are so many fascinating new problems waiting out there.
创造性的智慧是非常有价值且稀缺的资源。它们不应当被浪费在重复发明轮子上,世上仍有大量迷人的新问题等着解决。
To behave like a hacker, you have to believe that the thinking time of other hackers is precious — so much so that it's almost a moral duty for you to share information, solve problems and then give the solutions away just so other hackers can solve new problems instead of having to perpetually re-address old ones.
作为一名黑客,你应该坚信其他黑客的时间非常宝贵——所以你有义务共享信息,解决问题之后公布方案,这样其他人可以去解决新的问题,而不是忙于应付旧问题。
Note, however, that "No problem should ever have to be solved twice." does not imply that you have to consider all existing solutions sacred, or that there is only one right solution to any given problem. Often, we learn a lot about the problem that we didn't know before by studying the first cut at a solution. It's OK, and often necessary, to decide that we can do better. What's not OK is artificial technical, legal, or institutional barriers (like closed-source code) that prevent a good solution from being re-used and force people to re-invent wheels.
注意,“同一个问题不应该被重复处理两次”并不是说你必须认为所有已有方案都是最优的,或每个问题只有唯一的解决方案。通常我们从一个问题的最初解决方案中能够学习到很多东西。这很好,并且对于我们思考如何能做得更好来说,这通常是必要的。我们反对的是人为的技术、法律上的,或者机构性的设置障碍(例如闭源软件),使得一个好的方案不能被重复使用,逼得人们重造轮子。
(You don't have to believe that you're obligated to give all your creative product away, though the hackers that do are the ones that get most respect from other hackers. It's consistent with hacker values to sell enough of it to keep you in food and rent and computers. It's fine to use your hacking skills to support a family or even get rich, as long as you don't forget your loyalty to your art and your fellow hackers while doing it.)
(你不必认为你必须将 所有 你的创造发明都公布出去,虽然这样做的黑客将会赢得大家极度尊重。适当卖一些钱来换取足够的食物、租金和电脑并不违反黑客的价值观。用你的技能来养家糊口甚至致富都可以,只要你在做这些的时候别忘记你是一名黑客。)
3.Boredom and drudgery are evil.
3.拒绝重复和沉闷的事情
Hackers (and creative people in general) should never be bored or have to drudge at stupid repetitive work, because when this happens it means they aren't doing what only they can do — solve new problems. This wastefulness hurts everybody. Therefore boredom and drudgery are not just unpleasant but actually evil.
黑客(以及富有创造力的所有人)不应当被愚蠢的重复性劳动所困扰,因为这意味着他们并没有在做只有他们才能做的事情——解决新问题。这样的浪费会伤害所有人。因此,无聊和乏味的工作不仅仅是令人不爽,而且是罪恶的。
To behave like a hacker, you have to believe this enough to want to automate away the boring bits as much as possible, not just for yourself but for everybody else (especially other hackers).
作为一个黑客,你应该坚信这一点并尽可能的将枯燥的工作自动化,这不仅仅是为了你自己,也为了其他人(尤其是其他黑客)。
(There is one apparent exception to this. Hackers will sometimes do things that may seem repetitive or boring to an observer as a mind-clearing exercise, or in order to acquire a skill or have some particular kind of experience you can't have otherwise. But this is by choice — nobody who can think should ever be forced into a situation that bores them.)
(这里有一个例外。黑客有时会做一些看起来重复或枯燥的事情以进行脑力休息,或以此来锻炼一种技能,或以此获得某种除此以外无法获取的经验。但这是有选择的——有脑子的人不该被强迫做枯燥的事。)
4. Freedom is good.
4. 自由万岁
Hackers are naturally anti-authoritarian. Anyone who can give you orders can stop you from solving whatever problem you're being fascinated by — and, given the way authoritarian minds work, will generally find some appallingly stupid reason to do so. So the authoritarian attitude has to be fought wherever you find it, lest it smother you and other hackers.
黑客是天生的反独裁主义者。 任何能向你发号施令的人能够迫使你停止解决令你着迷的问题。 同时,按照独裁者的一般思路,他通常会给出一些极端愚昧的理由。因此,不论何处,任何独裁主义的作法,只要它压迫你和其他黑客,你就要和它斗到底。
(This isn't the same as fighting all authority. Children need to be guided and criminals restrained. A hacker may agree to accept some kinds of authority in order to get something he wants more than the time he spends following orders. But that's a limited, conscious bargain; the kind of personal surrender authoritarians want is not on offer.)
(这并非向所有权威挑战。儿童需要监护,罪犯要被看管起来。如果服从命令得到某种东西比起用其他方式得到它更节约时间,黑客可以同意接受某种形式的权威。但这是一个有限度的,有意的交易;那种权威想要的个人服从不是你应该同意给予的。)
Authoritarians thrive on censorship and secrecy. And they distrust voluntary cooperation and information-sharing — they only like ‘cooperation’ that they control. So to behave like a hacker, you have to develop an instinctive hostility to censorship, secrecy, and the use of force or deception to compel responsible adults. And you have to be willing to act on that belief.
权威喜欢审查和保密。他们不信任自愿的合作和信息共享——他们只喜欢由他们控制的所谓“合作”。因此,作为一个黑客,你得对审查、保密,以及使用武力或欺骗去压迫有行为能力的人们的做法有一种本能的敌意。 同时你要有为此信念斗争的意愿。
5. Attitude is no substitute for competence.
5. 精神不能代替能力
To be a hacker, you have to develop some of these attitudes. But copping an attitude alone won't make you a hacker, any more than it will make you a champion athlete or a rock star. Becoming a hacker will take intelligence, practice, dedication, and hard work.
作为一个黑客,你必须培养起这些精神。但是仅仅有精神并不能使你成为黑客,也不能使你成为运动健将或摇滚明星。成为一名黑客还需要智力,实践,奉献精神和辛勤工作。
Therefore, you have to learn to distrust attitude and respect competence of every kind. Hackers won't let posers waste their time, but they worship competence — especially competence at hacking, but competence at anything is valued. Competence at demanding skills that few can master is especially good, and competence at demanding skills that involve mental acuteness, craft, and concentration is best.
因此,你需要学会有怀疑态度和尊重任何能力。黑客不会为装模作样的人浪费时间,但他们尊重能力——尤其是从事黑客工作的能力,不过任何能力都是好的。很少人能具备的高要求能力尤其好,其中涉及脑力,技巧和专注方面的能力最好。
If you revere competence, you'll enjoy developing it in yourself — the hard work and dedication will become a kind of intense play rather than drudgery. That attitude is vital to becoming a hacker.
尊重能力,你就会享受到提高自己的能力所带来的乐趣——辛苦的工作和奉献将不再是苦差而是一种高度娱乐。想要成为一名黑客,这一点尤其重要。
Basic Hacking Skills
基本黑客技能
1\. Learn how to program.
2\. Get one of the open-source Unixes and learn to use and run it.
3\. Learn how to use the World Wide Web and write HTML.
4\. If you don't have functional English, learn it.
1.学习编程
2.获取一个开源的Unix并学习运行和使用它
3.学习使用万维网(World Wide Web,WWW)和HTML(超文本标记语言)
4.学习实用英语
The hacker attitude is vital, but skills are even more vital. Attitude is no substitute for competence, and there's a certain basic toolkit of skills which you have to have before any hacker will dream of calling you one.
黑客的态度很重要,但技能更重要。态度不能替代能力,在被别的黑客称你为黑客之前,你有一些基本技能需要掌握。
This toolkit changes slowly over time as technology creates new skills and makes old ones obsolete. For example, it used to include programming in machine language, and didn't until recently involve HTML. But right now it pretty clearly includes the following:
这些基本技能随着时间的推移和技术的革新也缓慢的变化着。例如以前的内容中包括了使用机器语言编程,最近包含进了HTML。总的来说当前包括以下内容:
1. Learn how to program.
1. 学习编程
This, of course, is the fundamental hacking skill. If you don't know any computer languages, I recommend starting with Python. It is cleanly designed, well documented, and relatively kind to beginners. Despite being a good first language, it is not just a toy; it is very powerful and flexible and well suited for large projects. I have written a more detailed evaluation of Python. Good tutorials are available at the Python web site; there's an excellent third-party one at Computer Science Circles.
显而易见,这是最基本的黑客技能。如果你一门计算机语言都不懂,我建议你从Python学起。它设计良好,文档详尽,并且对新人十分友好。尽管它是一门很好的入门语言,但它不只是玩具水平。它非常强大灵活,并且适用于大型项目。我写过一篇详细的对Python的评价。在Python的网站可以找到很好的教程。在Computer Science Circles也有一篇不错的第三方教程。
I used to recommend Java as a good language to learn early, but this critique has changed my mind (search for “The Pitfalls of Java as a First Programming Language” within it). A hacker cannot, as they devastatingly put it “approach problem-solving like a plumber in a hardware store”; you have to know what the components actually do. Now I think it is probably best to learn C and Lisp first, then Java.
我早前曾经建议使用Java作为入门语言,但这篇评价 改变了我的看法(请在文档中搜索“The Pitfalls of Java as a First Programming Language”)。如同文中尖锐指出的一样,一个黑客不能“像五金店中的管道工一样处理问题”。你需要知道所有的组件事实上都 干了什么。现在,我认为最好先学C和Lisp,然后再学Java。
There is perhaps a more general point here. If a language does too much for you, it may be simultaneously a good tool for production and a bad one for learning. It's not only languages that have this problem; web application frameworks like RubyOnRails, CakePHP, Django may make it too easy to reach a superficial sort of understanding that will leave you without resources when you have to tackle a hard problem, or even just debug the solution to an easy one.
另外有一点需要注意。如果一门语言帮你做了太多工作,它会同时是一个好的生产工具和一个不好的初学对象。不仅语言有这个问题,Web框架比如RubyOnRails,CakePHP,Django也很容易让你流于表面,面对困难问题的时候束手无策,甚至无法对一个简单问题进行追查并给出解决方案。
A better alternative to Java is to learn Go. This relatively new language is pretty easy to move to from Python, and learning it give you a serious leg up on the possible next step, which is learning C. Additionally, one of the unknowns about the next few years is to what extent Go might actually displace C as a systems-programming language. There is a possible future in which that happens over much of C's traditional range.
比Java更好的选择是学习Go。这种相对较新的语言很容易从Python上手,而且学习它可以使你在可能的下一步(学习C语言)中得到很大的帮助。此外,未来几年的一个未知数是Go将在多大程度上取代C语言成为真正的系统编程语言。在未来,这种情况可能会在C语言的大部分传统领域内发生。
If you get into serious programming, you will eventually have to learn C, the core language of Unix. C++ is very closely related to C; if you know one, learning the other will not be difficult. Neither language is a good one to try learning as your first, however. And, actually, the more you can avoid programming in C the more productive you will be.
如果你需要做一些重要的编程工作,你需要学习C语言,它是Unix的核心语言。C++跟C关系密切。如果你了解其中一种,学习另外一种应该不难。但是这两种语言都不适合作为入门学习。此外,如果你越避免用C编程,你的工作效率会越高。
C is very efficient, and very sparing of your machine's resources. Unfortunately, C gets that efficiency by requiring you to do a lot of low-level management of resources (like memory) by hand. All that low-level code is complex and bug-prone, and will soak up huge amounts of your time on debugging. With today's machines as powerful as they are, this is usually a bad tradeoff — it's smarter to use a language that uses the machine's time less efficiently, but your time much more efficiently. Thus, Python.
C的执行效率非常高,并且非常节省机器资源。不幸的是C的高效是通过让你手动进行许多底层资源(例如内存)管理来获得的。底层代码复杂并且容易出bug,你需要花费很多时间来进行调试。鉴于当今的机器性能如此之高,这样的做法通常很不划算——通常更好的做法是使用一种稍微慢一些,不那么高效,但是能够 大幅 节省你的时间的语言。那便是Python。
Other languages of particular importance to hackers include Perl and LISP. Perl is worth learning for practical reasons; it's very widely used for active web pages and system administration, so that even if you never write Perl you should learn to read it. Many people use Perl in the way I suggest you should use Python, to avoid C programming on jobs that don't require C's machine efficiency. You will need to be able to understand their code.
其他对黑客而言比较重要的语言包括 Perl 和 LISP。Perl 很实用,它广泛应用于动态网页和系统管理方面,因此即使你从不写 Perl 代码,至少也得能看懂。许多人使用 Perl 的理由和我建议你使用Python 的理由一样,都是为了避免用 C 完成那些执行效率需求不那么高的工作。你需要能够看懂他们的代码。
LISP is worth learning for a different reason — the profound enlightenment experience you will have when you finally get it. That experience will make you a better programmer for the rest of your days, even if you never actually use LISP itself a lot. (You can get some beginning experience with LISP fairly easily by writing and modifying editing modes for the Emacs text editor, or Script-Fu plugins for the GIMP.)
LISP之所以值得一学是基于另外的理由——当你最终掌握了它的时候,你将会获得巨大的启迪。它将使你在今后成为一个更好的程序员,即使你实际上很少使用LISP本身。(你可以通过为Emacs文本编辑器或者GIMP的Script-Fu编写插件或修改现有插件来很容易的学习LISP。)
It's best, actually, to learn all five of Python, C/C++, Perl, and LISP. Besides being the most important hacking languages, they represent very different approaches to programming, and each will educate you in valuable ways. Go is not quite to the point where it can be included among the most important hacking languages, but it seems headed for that status.
当然,你最好五种语言都会(Python,C/C++,Java,Perl和LISP)。除了是重要的黑客语言之外,它们也代表了截然不同的编程思路和方法,每一种都能让你受益匪浅。
But be aware that you won't reach the skill level of a hacker or even merely a programmer simply by accumulating languages — you need to learn how to think about programming problems in a general way, independent of any one language. To be a real hacker, you need to get to the point where you can learn a new language in days by relating what's in the manual to what you already know. This means you should learn several very different languages.
但是单纯的堆砌语言是不可能成为一个黑客,甚至程序员的。你需要学会如何独立于任何具体的语言之外来思考编程问题。作为一名真正的黑客,你需要通过手册和你已有的知识掌握到在几天之内学会一门语言的要点。这意味着你需要学习许许多多不同的语言。
I can't give complete instructions on how to learn to program here — it's a complex skill. But I can tell you that books and courses won't do it — many, maybe most of the best hackers are self-taught. You can learn language features — bits of knowledge — from books, but the mind-set that makes that knowledge into living skill can be learned only by practice and apprenticeship. What will do it is (a) reading code and (b) writing code.
这里我无法给你完完全全的指导教会你如何编程——这是个复杂的技能。但我可以告诉你,书本和课程也不能做到(最好的黑客中,有许多,也许 几乎 都是自学成才的)。 你可以从书本上学到语言的特点——这只是皮毛,但要使书面知识成为自身技能只能通过实践和虚心向他人学习。因此要做到(1)读 代码及(2)写 代码。
Peter Norvig, who is one of Google's top hackers and the co-author of the most widely used textbook on AI, has written an excellent essay called Teach Yourself Programming in Ten Years. His "recipe for programming success" is worth careful attention.
Peter Norvig,Google最顶级的黑客之一,也是世界上最受欢迎的AI教材(译注:指“人工智能:一种现代方法”和“人工智能程序设计范例:通用Lisp语言的案例研究”等)的共同作者。他写了一篇名为Teach Yourself Programming in Ten Years 的短文。他在文中提到的“编程成功的诀窍(recipe for programming success)”特别值得留意。
Learning to program is like learning to write good natural language. The best way to do it is to read some stuff written by masters of the form, write some things yourself, read a lot more, write a little more, read a lot more, write some more ... and repeat until your writing begins to develop the kind of strength and economy you see in your models.
学习编程就像学习用优美的自然语言书写一样。最好的办法就是阅读大师的名著,试着自己写点东西,再读一些,再写一点,再读一些,再写一点……如此往复,直到你的作品达到如你在范文中所见的简洁和健壮。
I have had more to say about this learning process in How To Learn Hacking. It's a simple set of instructions, but not an easy one.
我必须再提一下How To Learn Hacking,这是一些简单的说明,但是学起来并不容易。
Finding good code to read used to be hard, because there were few large programs available in source for fledgeling hackers to read and tinker with. This has changed dramatically; open-source software, programming tools, and operating systems (all built by hackers) are now widely available. Which brings me neatly to our next topic...
以前很难找到适合阅读的好代码,因为几乎没有大型程序的代码能够供新人阅读和练手。这种情况已经发生戏剧性的变化。开源软件,编程工具和操作系统(都是由黑客创造的)现在随处可见。这刚好带我们到下一个话题……
2. Get one of the open-source Unixes and learn to use and run it.
2. 获取一个开源的Unix并学习运行和使用它
I'll assume you have a personal computer or can get access to one. (Take a moment to appreciate how much that means. The hacker culture originally evolved back when computers were so expensive that individuals could not own them.) The single most important step any newbie can take toward acquiring hacker skills is to get a copy of Linux or one of the BSD-Unixes, install it on a personal machine, and run it.
我假定你拥有或者能使用一台个人电脑(现在的孩子真幸福。黑客文化建立之初电脑贵得要死,没人买得起)。新手们向黑客技能迈出的最重要一步就是获取一份Linux或BSD-Unix的拷贝,将其安装在个人电脑上,并运行它。
Yes, there are other operating systems in the world besides Unix. But they're distributed in binary — you can't read the code, and you can't modify it. Trying to learn to hack on a Microsoft Windows machine or under any other closed-source system is like trying to learn to dance while wearing a body cast.
没错,世上除了Unix还有其他操作系统。但它们都是以二进制形式发布的——你读不到源码,你也不能修改代码。在类似Microsoft Windows 那样的闭源操作系统上学习黑客技术就像戴着脚镣学跳舞。
Under Mac OS X it's possible, but only part of the system is open source — you're likely to hit a lot of walls, and you have to be careful not to develop the bad habit of depending on Apple's proprietary code. If you concentrate on the Unix under the hood you can learn some useful things.
在Mac OS X上倒是可以,不过它只有一部分是开源的——你可能会撞墙,也必须很小心的避免养成依赖 Apple 专有代码的坏习惯。如果你专注于底层的 Unix,你可以学到一些有用的东西。
Unix is the operating system of the Internet. While you can learn to use the Internet without knowing Unix, you can't be an Internet hacker without understanding Unix. For this reason, the hacker culture today is pretty strongly Unix-centered. (This wasn't always true, and some old-time hackers still aren't happy about it, but the symbiosis between Unix and the Internet has become strong enough that even Microsoft's muscle doesn't seem able to seriously dent it.)
Unix是互联网上的操作系统。虽然你不懂Unix仍然可以学会使用互联网,但若你不懂Unix,你将不能在互联网上从事黑客活动。因此,现今的黑客文化是严重以Unix为中心的。(曾经不是这样,并且有一些老派的黑客对此仍然感到不太高兴。但是现今Unix和互联网的羁绊如此之强,连Microsoft也无法撼动分毫。)
So, bring up a Unix — I like Linux myself but there are other ways (and yes, you can run both Linux and Microsoft Windows on the same machine). Learn it. Run it. Tinker with it. Talk to the Internet with it. Read the code. Modify the code. You'll get better programming tools (including C, LISP, Python, and Perl) than any Microsoft operating system can dream of hosting, you'll have fun, and you'll soak up more knowledge than you realize you're learning until you look back on it as a master hacker.
所以,请安装一套Unix - 我个人喜爱Linux但还有其他种类的(并且,你 可以 在同一台电脑上运行Linux和Windows)。学习它,使用它,调教它。用它在互联网上冲浪。阅读它的代码,修改它的代码。你将获得比Windows操作系统上更好的编程工具(包括C,LISP,Python和Perl)。你会觉得其乐无穷,学到比你想像更多更好的知识。
For more about learning Unix, see The Loginataka. You might also want to have a look at The Art Of Unix Programming.
想要获取更多和学习Unix相关的信息,请参考Loginataka。你或许还想看看Unix编程艺术(译注:这里给出的是原文链接。国内有翻译版出售)。
The blog Let's Go Larval! is a window on the learning process of a new Linux user that I think is unusually lucid and helpful. The post How I Learned Linux makes a good starting point.
我认为博客Let’s Go Larval!对于处在学习Linux阶段中的用户是非常易懂和有用的。 这篇文章How I Learned Linux 就是一个很好的起点。
To get your hands on a Linux, see the Linux Online! site; you can download from there or (better idea) find a local Linux user group to help you with installation.
想开始Linux之旅,请参考Linux Online!。你可以从那里下载Linux或者(更好的主意是)找到一个当地的Linux用户群为你的安装过程提供帮助。
During the first ten years of this HOWTO's life, I reported that from a new user's point of view, all Linux distributions are almost equivalent. But in 2006-2007, an actual best choice emerged: Ubuntu. While other distros have their own areas of strength, Ubuntu is far and away the most accessible to Linux newbies. Beware, though, of the hideous and nigh-unusable "Unity" desktop interface that Ubuntu introduced as a default a few years later; the Xubuntu or Kubuntu variants are better.
在本文最初的10年间,我认为从一个初学者的角度来说,所有Linux发行版都差不多。不过在2006~2007年间,一个事实上最好的选择出现了:Ubuntu。其他发行版各有所长,而Ubuntu对初学者最友好。注意,相比Ubuntu默认那个丑陋的几乎不可用的“Unity”桌面,Xubuntu和Kubuntu更好用一点。
You can find BSD Unix help and resources at www.bsd.org.
你可以在www.bsd.org 找到BSD相关的帮助和资源。
A good way to dip your toes in the water is to boot up what Linux fans call a live CD, a distribution that runs entirely off a CD or USB stick without having to modify your hard disk. This may be slow, because CDs are slow, but it's a way to get a look at the possibilities without having to do anything drastic.
一个试水的好办法是试试被Linux爱好者称为“Live CD”的东西,那是一个完全在光盘或者U盘上运行,而不修改你硬盘的发行版。它运行起来比较慢,因为光盘很慢,但是这是一个在做出任何不可挽救的改变前看看可行性的办法。
I have written a primer on the basics of Unix and the Internet.
我写过一篇关于Unix和互联网基础的入门文章。
I used to recommend against installing either Linux or BSD as a solo project if you're a newbie. Nowadays the installers have gotten good enough that doing it entirely on your own is possible, even for a newbie. Nevertheless, I still recommend making contact with your local Linux user's group and asking for help. It can't hurt, and may smooth the process.
我曾经不建议新手独自安装Linux或者BSD。现在它们的安装程序已经做得足够好,你作为新人也完全搞得定。尽管如此,我仍然建议和你当地的Linux用户群取得联系并寻求帮助。这没坏处,并且可以让整个过程更顺利。
3. Learn how to use the World Wide Web and write HTML.
3. 学习使用万维网(World Wide Web,WWW)和HTML(超文本标记语言)
Most of the things the hacker culture has built do their work out of sight, helping run factories and offices and universities without any obvious impact on how non-hackers live. The Web is the one big exception, the huge shiny hacker toy that even politicians admit has changed the world. For this reason alone (and a lot of other good ones as well) you need to learn how to work the Web.
大多数的黑客造物在你所不知的地方发挥着作用,帮助工厂、办公室和学校运转,这看上去跟普通人没太大关系。Web是一个大大的例外,即便 政客 也承认这个巨大耀眼的黑客玩具正在改变着世界。单就这一个原因(当然还有其他理由)你就需要学习掌握Web。
This doesn't just mean learning how to drive a browser (anyone can do that), but learning how to write HTML, the Web's markup language. If you don't know how to program, writing HTML will teach you some mental habits that will help you learn. So build a home page.
这并不仅仅意味着如何使用浏览器(谁都会),而是要学会如何写HTML,Web的标记语言。如果你不会编程,写HTML会教你一些有助于学习的思考习惯。因此,先完成一个主页。尝试坚持使用XHTML,一种比标准HTML更清晰的语言。(Web上有很多很好的初学者指南,例如这个)。
But just having a home page isn't anywhere near good enough to make you a hacker. The Web is full of home pages. Most of them are pointless, zero-content sludge — very snazzy-looking sludge, mind you, but sludge all the same (for more on this see The HTML Hell Page).
但仅仅拥有一个主页不能使你成为一名黑客。Web里充满了各种网页。大多数是毫无意义的,零信息量的垃圾——界面时髦,能夺人眼球的垃圾还是垃圾(更多信息访问The HTML Hell Page)。
To be worthwhile, your page must have content — it must be interesting and/or useful to other hackers. And that brings us to the next topic...
所以,你的页面必须有内容——得是有趣并且/或者对其他黑客来说有用的内容。这是我们下一个议题要说的……
4. If you don't have functional English, learn it.
4. 学习实用英语
As an American and native English-speaker myself, I have previously been reluctant to suggest this, lest it be taken as a sort of cultural imperialism. But several native speakers of other languages have urged me to point out that English is the working language of the hacker culture and the Internet, and that you will need to know it to function in the hacker community.
作为一个美国人和一个以英语为母语的人,我以前很不情愿提到这点,免得成为一种文化上的帝国主义。但相当多以其他语言为母语的人一直劝我指出这一点,那就是英语是黑客文化和Internet的工作语言,你需要懂得以便在黑客社区顺利工作。
Back around 1991 I learned that many hackers who have English as a second language use it in technical discussions even when they share a birth tongue; it was reported to me at the time that English has a richer technical vocabulary than any other language and is therefore simply a better tool for the job. For similar reasons, translations of technical books written in English are often unsatisfactory (when they get done at all).
大概1991年的时候我了解到许多黑客在技术讨论中使用英语,即使英语与他们的母语类似,英语对他们而言只是第二语言的时候也常如此。据我所知,当前英语有着比其他语言丰富得多的技术词汇,因此是一个对于工作来说相当好的工具。基于同样的理由,英文技术书籍的翻译(如果有的话)通常都不能令读者满意。
Linus Torvalds, a Finn, comments his code in English (it apparently never occurred to him to do otherwise). His fluency in English has been an important factor in his ability to recruit a worldwide community of developers for Linux. It's an example worth following.
芬兰人Linus Torvalds用英语注释他的代码(很明显这不是凑巧)。他流利的英语成为他能够管理全球范围的Linux开发人员社区的重要因素。这是一个值得学习的例子。
Being a native English-speaker does not guarantee that you have language skills good enough to function as a hacker. If your writing is semi-literate, ungrammatical, and riddled with misspellings, many hackers (including myself) will tend to ignore you. While sloppy writing does not invariably mean sloppy thinking, we've generally found the correlation to be strong — and we have no use for sloppy thinkers. If you can't yet write competently, learn to.
即使作为一个以英语为母语的人也不代表你就具备了成为黑客所需的语言技能。一般而言,如果你写得像个半文盲似的,文中充斥着各种语法、拼写错误,多半得不到理睬。虽然不严谨的文笔并不总是意味着不严谨的思维,但我们发现这两者之间的关联还是挺紧密的。而我们不需要这种思维不严谨的人。如果你现在还没有具备这样的书写能力,赶紧培养。
Status in the Hacker Culture
在黑客社区中立足
1\. Write open-source software
2\. Help test and debug open-source software
3\. Publish useful information
4\. Help keep the infrastructure working
5\. Serve the hacker culture itself
1.编写开源软件
2.帮助测试和调试开源软件
3.发布有用的信息
4.帮助维护基础设施运转
5.为黑客社区服务
Like most cultures without a money economy, hackerdom runs on reputation. You're trying to solve interesting problems, but how interesting they are, and whether your solutions are really good, is something that only your technical peers or superiors are normally equipped to judge.
像大部分非盈利社区一样,黑客社区靠声誉运转。你设法解决有趣的问题,但问题是否有趣及解决方法是否有效,需要由那些和你具有同样甚至更高技术水平的人去评判。
Accordingly, when you play the hacker game, you learn to keep score primarily by what other hackers think of your skill (this is why you aren't really a hacker until other hackers consistently call you one). This fact is obscured by the image of hacking as solitary work; also by a hacker-cultural taboo (gradually decaying since the late 1990s but still potent) against admitting that ego or external validation are involved in one's motivation at all.
因此,要玩黑客这个游戏,你需要以其他黑客对你技能的评判作为对自己的评价(所以我说,在其他黑客称你为黑客之前,你不是一个真正的黑客)。这个事实常被人误解(从1990年代后有所好转,但还是很严重),人们认为黑客都是不在乎别人的评价,孤僻的人。这实际上是一个黑客文化的禁忌。
Specifically, hackerdom is what anthropologists call a gift culture. You gain status and reputation in it not by dominating other people, nor by being beautiful, nor by having things other people want, but rather by giving things away. Specifically, by giving away your time, your creativity, and the results of your skill. 特别地,黑客被人类学家们称为 奉献社区。在这里你不是凭借你对别人的统治来建立地位和名望,也不是靠美貌,或拥有其他人想要的东西,而是靠你的奉献。尤其是奉献你的时间,你的创造力和你的技术成果。
There are basically five kinds of things you can do to be respected by hackers:
要想获得黑客的尊重,你基本上有5件事情可干:
1. Write open-source software
1. 编写开源软件
The first (the most central and most traditional) is to write programs that other hackers think are fun or useful, and give the program sources away to the whole hacker culture to use.
首先(也是最传统和最重要的)是写一些其他黑客觉得有趣或有用的程序,并且开放源代码。
(We used to call these works “free software”, but this confused too many people who weren't sure exactly what “free” was supposed to mean. Most of us now prefer the term “open-source” software).
(我们曾经把这些程序称为“自由软件(free software)”,但是太多人不能确定这里的“free”是什么意思。现在我们通常使用“开源”软件这个词。
Hackerdom's most revered demigods are people who have written large, capable programs that met a widespread need and given them away, so that now everyone uses them.
黑客间最受尊敬的圣人是那些编写了大型的,功能强劲且满足了广泛需求的开源软件供他人使用的人。
But there's a bit of a fine historical point here. While hackers have always looked up to the open-source developers among them as our community's hardest core, before the mid-1990s most hackers most of the time worked on closed source. This was still true when I wrote the first version of this HOWTO in 1996; it took the mainstreaming of open-source software after 1997 to change things. Today, "the hacker community" and "open-source developers" are two descriptions for what is essentially the same culture and population — but it is worth remembering that this was not always so. (For more on this, see the section called “Historical Note: Hacking, Open Source, and Free Software”.)
但是这里有段有趣的历史。虽然黑客一直敬重开源软件开发者,并且他们是我们社区的核心,但是直到1990年代中期,绝大部分黑客绝大多数时间是在闭源软件上工作的。在我1996年写本文的第一版的时候仍然如此。到1997年之后开源软件逐渐成为主流并改变了这一点。现在,“黑客社区”和“开源软件开发者”本质上是对同一文化和同一人群的两种表述——但值得记住的是,曾经不是如此。(想了解更多,请看“历史记录:黑客活动,开源,和自由软件”。)
2. Help test and debug open-source software
2. 帮助测试和调试开源软件
They also serve who stand and debug open-source software. In this imperfect world, we will inevitably spend most of our software development time in the debugging phase. That's why any open-source author who's thinking will tell you that good beta-testers (who know how to describe symptoms clearly, localize problems well, can tolerate bugs in a quickie release, and are willing to apply a few simple diagnostic routines) are worth their weight in rubies. Even one of these can make the difference between a debugging phase that's a protracted, exhausting nightmare and one that's merely a salutary nuisance.
黑客也尊敬那些为开源软件进行测试和纠错的人。在这个并非完美的世界上,我们不可避免地要花大多数的开发时间在调试阶段。 这就是为什么许多开源软件作者都会高度评价那些好的beta测试员 (知道如何清楚描述出错症状,很好地定位错误,能忍受快速发布中的bug,并且愿意使用一些简单的诊断工具),认为他们像红宝石一样珍贵。一个好的测试员可以使如恶梦的测试及除错工作变为一件值得经历的小烦恼。
If you're a newbie, try to find a program under development that you're interested in and be a good beta-tester. There's a natural progression from helping test programs to helping debug them to helping modify them. You'll learn a lot this way, and generate good karma with people who will help you later on.
如果你是个新手,试着找一个你感兴趣的正在开发的程序,尝试做一个好的beta测试员。 你会自然地从帮着测试,进步到帮着抓bug,到最后帮着改程序。你会从中学到很多,并且与未来会帮到你的人结下友谊。
3. Publish useful information
3. 发布有用的信息
Another good thing is to collect and filter useful and interesting information into web pages or documents like Frequently Asked Questions (FAQ) lists, and make those generally available.
另一个好事是收集整理有用有趣的信息做成网页或文档如FAQ(常见问题)列表,且让他们容易获得。
Maintainers of major technical FAQs get almost as much respect as open-source authors.
技术性FAQ的维护者往往如同开源软件作者一样很受人尊重。
4. Help keep the infrastructure working
4. 帮助维护基础设施运转
The hacker culture (and the engineering development of the Internet, for that matter) is run by volunteers. There's a lot of necessary but unglamorous work that needs done to keep it going — administering mailing lists, moderating newsgroups, maintaining large software archive sites, developing RFCs and other technical standards.
黑客社区(也包括互联网发展)是靠自愿者组成的。有大量重要但平淡的事情需要处理——管理邮件列表,新闻组,维护大型软件归档库,开发RFC和其他技术标准等。
People who do this sort of thing well get a lot of respect, because everybody knows these jobs are huge time sinks and not as much fun as playing with code. Doing them shows dedication.
做以上事情的人会得到很多人的尊敬,因为大家都知道这些事情需要大量的时间并且不如编写软件那么有趣。这类工作需要使命感。
5. Serve the hacker culture itself
5. 为黑客社区服务
Finally, you can serve and propagate the culture itself (by, for example, writing an accurate primer on how to become a hacker :-)). This is not something you'll be positioned to do until you've been around for while and become well-known for one of the first four things.
最后,你还可以为黑客社区做服务和宣扬(比如写一篇“如何成为黑客”的文章 :-))。通常你不会做这些工作,直到你已经做了以上四种中的一样,并且取得了相当的知名度。
The hacker culture doesn't have leaders, exactly, but it does have culture heroes and tribal elders and historians and spokespeople. When you've been in the trenches long enough, you may grow into one of these. Beware: hackers distrust blatant ego in their tribal elders, so visibly reaching for this kind of fame is dangerous. Rather than striving for it, you have to sort of position yourself so it drops in your lap, and then be modest and gracious about your status.
黑客社区没有既定的领导者,但是有被人们尊重的英雄,长老级人物,史学家和发言人。当你在这个圈里足够久,你可能会成为他们中的一员。但请谨记,黑客对于自我夸耀的长老并不认同,因此不要尝试大举追求这种名誉。与其奋力追求,不如先摆正自己的位置,等它自己到你手中,那时需要做到谦虚和优雅。
The Hacker/Nerd Connection
黑客与书呆子(Nerd)的关系
Contrary to popular myth, you don't have to be a nerd to be a hacker. It does help, however, and many hackers are in fact nerds. Being something of a social outcast helps you stay concentrated on the really important things, like thinking and hacking.
与流行的传说不同,黑客并不是书呆子。但这确实对你成为黑客有帮助,并且很多黑客确实是书呆子。做一个深居简出的人有助于使你更能集中精力做一些重要的事,例如思考和从事黑客活动。
For this reason, many hackers have adopted the label ‘geek’ as a badge of pride — it's a way of declaring their independence from normal social expectations (as well as a fondness for other things like science fiction and strategy games that often go with being a hacker). The term 'nerd' used to be used this way back in the 1990s, back when 'nerd' was a mild pejorative and 'geek' a rather harsher one; sometime after 2000 they switched places, at least in U.S. popular culture, and there is now even a significant geek-pride culture among people who aren't techies.
因此,许多黑客甚至以“极客(geek)”(译注:这个词原本在美国俚语中指“反常的人”)为名——这是一种宣布他们独立于普通社会的方式(此外,黑客也通常沉迷于其他一些事情例如科幻和战略游戏)。“书呆子”这个词通常在1990年代也被如此使用,那时候“书呆子”这个词略含贬义,而“极客”贬义更重。2000年以后这两个词的关系发生了转变,至少在美国流行文化上是如此,现在甚至在非技术专家中也出现了以标榜为极客为豪的情况。
If you can manage to concentrate enough on hacking to be good at it and still have a life, that's fine. This is a lot easier today than it was when I was a newbie in the 1970s; mainstream culture is much friendlier to techno-nerds now. There are even growing numbers of people who realize that hackers are often high-quality lover and spouse material. 如果你能集中足够的精力做好黑客工作同时还能有正常的生活,这很好。现在做到这一点比我在1970年代还是新手的时候要容易的多;如今主流文化对技术怪人要友善的多。甚至有越来越多的人意识到黑客通常是很好的恋人和配偶侯选。
If you're attracted to hacking because you don't have a life, that's OK too — at least you won't have trouble concentrating. Maybe you'll get a life later on.
如果你因为生活上的不如意而成为黑客,那也不错——至少你不用分神了。或许今后你能有一个不错的生活。
Points For Style
风格
Again, to be a hacker, you have to enter the hacker mindset. There are some things you can do when you're not at a computer that seem to help. They're not substitutes for hacking (nothing is) but many hackers do them, and feel that they connect in some basic way with the essence of hacking.
重申一下,作为一名黑客,你必须进入黑客式思维模式。当你不在电脑边的时候你仍然有很多有益的事情可做。它们不能替代真正的黑客活动(没有什么可以),但是很多黑客都这么干,并且感到它们与黑客精神存在某些根本的联系。
- Learn to write your native language well. Though it's a common stereotype that programmers can't write, a surprising number of hackers (including all the most accomplished ones I know of) are very able writers.
- 学会流畅的使用母语写作。虽然认为程序员写不好文章的误解仍然很普遍,但是有数量令人惊讶的黑客(包括我所知造诣最高的那些)都是不错的写手。
- Read science fiction. Go to science fiction conventions (a good way to meet hackers and proto-hackers).
- 阅读科幻小说。参加科幻聚会(一个接触黑客和可能成为黑客的人的好方法)。
- Join a hackerspace and make things (another good way to meet hackers and proto-hackers).
- 加入黑客空间(hackerspace)并做一些东西出来(另外一个接触黑客和可能成为黑客的人的好方法)。
- Train in a martial-arts form. The kind of mental discipline required for martial arts seems to be similar in important ways to what hackers do. The most popular forms among hackers are definitely Asian empty-hand arts such as Tae Kwon Do, various forms of Karate, Kung Fu, Aikido, or Ju Jitsu. Western fencing and Asian sword arts also have visible followings. In places where it's legal, pistol shooting has been rising in popularity since the late 1990s. The most hackerly martial arts are those which emphasize mental discipline, relaxed awareness, and precise control, rather than raw strength, athleticism, or physical toughness.
- 习武。武术的精神修炼与黑客之道惊人的相似。黑客中比较常见的当然是亚洲的空手格斗技巧,例如跆拳道、空手道及其变种、中国功夫、合气道、柔术(译注:这里指的是日本传统武术,而不是柔身术或软功)。西方击剑和亚洲剑术也有相当的追随者。在持枪合法的地区,射击从1990年代起也越来越受欢迎。与黑客之道最契合的武术是那些强调精神修炼、放松意识,强调控制而不是单纯的蛮力的类型。
- Study an actual meditation discipline. The perennial favorite among hackers is Zen (importantly, it is possible to benefit from Zen without acquiring a religion or discarding one you already have). Other styles may work as well, but be careful to choose one that doesn't require you to believe crazy things.
- 学习一种冥想修炼。黑客中一直以来最受欢迎的是禅(很重要的是学禅并不要求你有特定的宗教信仰)(译注:这里指的是日本禅宗,而不是汉地佛教禅宗)。其他方式也可以,但是请注意一定选择那些不会要求你相信很疯狂东西的方式。
- Develop an analytical ear for music. Learn to appreciate peculiar kinds of music. Learn to play some musical instrument well, or how to sing.
- 修习音乐。学会鉴赏特别的音乐。学会玩某种乐器,或唱歌。
- Develop your appreciation of puns and wordplay.
- 提高对双关语、文字游戏的鉴赏能力。
The more of these things you already do, the more likely it is that you are natural hacker material. Why these things in particular is not completely clear, but they're connected with a mix of left- and right-brain skills that seems to be important; hackers need to be able to both reason logically and step outside the apparent logic of a problem at a moment's notice.
这些事情,你已经在做的越多,你就越是天生做黑客的料。至于为什么偏偏是这些事情,原因并不完全清楚,但它们都涉及用到左右脑混合使用,这似乎是关键所在。黑客们既需要清晰的逻辑思维,有时又需要偏离逻辑跳出问题的表象。
Work as intensely as you play and play as intensely as you work. For true hackers, the boundaries between "play", "work", "science" and "art" all tend to disappear, or to merge into a high-level creative playfulness. Also, don't be content with a narrow range of skills. Though most hackers self-describe as programmers, they are very likely to be more than competent in several related skills — system administration, web design, and PC hardware troubleshooting are common ones. A hacker who's a system administrator, on the other hand, is likely to be quite skilled at script programming and web design. Hackers don't do things by halves; if they invest in a skill at all, they tend to get very good at it.
工作即娱乐,娱乐即工作。对于真正的黑客来说,“玩”,“工作”,“科学”和“艺术”之间没有界线,或者说,它们在一个高层面的创造性趣味里融合在一起。另外,不要对一点点技能就感到满足。虽然大多数黑客自称是程序员,他们实际上在其他相关的方面也很可能相当强悍——常见的是系统管理、页面设计和PC硬件故障处理。一个黑客,如果他是一名系统管理员,他很可能对脚本编程和页面设计也相当在行。黑客不会半途而废,如果他们要学习一门技能,他们会将其学好。
Finally, a few things not to do.
最后,一些你 不应 做的事。
- Don't use a silly, grandiose user ID or screen name.
- 不要使用愚蠢,哗众取宠的ID或昵称。
- Don't get in flame wars on Usenet (or anywhere else).
- 不要卷入Usenet(或其他任何地方)的骂战。
- Don't call yourself a ‘cyberpunk’, and don't waste your time on anybody who does.
- 不要自称为“赛博朋克(cyberpunk)”,也不要浪费时间跟他们打交道。
- Don't post or email writing that's full of spelling errors and bad grammar.
- 不要发送含有大量拼写和语法错误的email和帖子。
The only reputation you'll make doing any of these things is as a twit. Hackers have long memories — it could take you years to live your early blunders down enough to be accepted.
做出以上事情只会招来嘲笑。黑客的记性都很好——你犯下的错误会令你将要经过多年才可以被其他黑客接受。
The problem with screen names or handles deserves some amplification. Concealing your identity behind a handle is a juvenile and silly behavior characteristic of crackers, warez d00dz, and other lower life forms. Hackers don't do this; they're proud of what they do and want it associated with their real names. So if you have a handle, drop it. In the hacker culture it will only mark you as a loser.
网名的问题值得深思。将身份隐藏在虚假的名字后是骇客、warez d00dz及其他低等生物幼稚愚蠢的行为特点。黑客不会做这些事;他们对他们所作的感到骄傲,而且乐于人们将作品与他们的 真名 相联系。 因此, 若你现在用假名,放弃它。黑客社区里只会将用假名的人视为失败者。
Historical Note: Hacking, Open Source, and Free Software
历史记录:黑客活动,开源,和自由软件
When I originally wrote this how-to in late 1996, some of the conditions around it were very different from the way they look today. A few words about these changes may help clarify matters for people who are confused about the relationship of open source, free software, and Linux to the hacker community. If you are not curious about this, you can skip straight to the FAQ and bibliography from here.
当我在1996年末刚开始写这篇文档的时候,很多情况跟现在是不同的。简单的介绍一下这个变化对于对开放源代码、自由软件和Linux跟黑客社区的关系感到困惑的人们可能会有所帮助。如果你对这些不感兴趣,可以直接跳过这里,前往FAQ和参考资料部分。
The hacker ethos and community as I have described it here long predates the emergence of Linux after 1990; I first became involved with it around 1976, and, its roots are readily traceable back to the early 1960s. But before Linux, most hacking was done on either proprietary operating systems or a handful of quasi-experimental homegrown systems like MIT's ITS that were never deployed outside of their original academic niches. While there had been some earlier (pre-Linux) attempts to change this situation, their impact was at best very marginal and confined to communities of dedicated true believers which were tiny minorities even within the hacker community, let alone with respect to the larger world of software in general.
我描述的黑客精神和黑客社区远早于1990年出现的Linux。我最初进入这个圈子大概是在1976年,其原因可以追溯到1960年代早期。但是在Linux出现前,多数黑客行为是在专有操作系统,或一些自主研发的实验性系统上,例如MIT的ITS,这个系统从未在实验室以外的地方使用过。虽然在早期(Linux出现之前)有过一些试图改变这种状况的努力,但是它们的影响都非常轻微,仅限于真正怀抱这样理想的人群,即使在当时的黑客社区这也是绝对少数,更不论对于世界范围内的通用软件群体的影响了。
What is now called "open source" goes back as far as the hacker community does, but until 1985 it was an unnamed folk practice rather than a conscious movement with theories and manifestos attached to it. This prehistory ended when, in 1985, arch-hacker Richard Stallman ("RMS") tried to give it a name — "free software". But his act of naming was also an act of claiming; he attached ideological baggage to the "free software" label which much of the existing hacker community never accepted. As a result, the "free software" label was loudly rejected by a substantial minority of the hacker community (especially among those associated with BSD Unix), and used with serious but silent reservations by a majority of the remainder (including myself).
现在被称为“开放源代码”的行为,其历史与黑客社区一样久远,但是直到1985年这都只是一个无名的民间行为,没有相关的理论和宣言。这段史前时代在1985年结束,大黑客Richard Stallman(“RMS”)尝试给了它一个名字——“自由软件(Free Software)”。但是这个命名行为也是一个强制要求行为,他为“自由软件”标签加上了大多数已有的黑客社区从不接受的意识形态的包袱。“自由软件”的标签被黑客社区中的一部分重要人物(尤其是与BSD Unix有关联的社区)明确拒绝,并且其余的大部分人也在严肃并且持保留意见的情况下使用它(包括我本人)。
Despite these reservations, RMS's claim to define and lead the hacker community under the "free software" banner broadly held until the mid-1990s. It was seriously challenged only by the rise of Linux. Linux gave open-source development a natural home. Many projects issued under terms we would now call open-source migrated from proprietary Unixes to Linux. The community around Linux grew explosively, becoming far larger and more heterogenous than the pre-Linux hacker culture. RMS determinedly attempted to co-opt all this activity into his "free software" movement, but was thwarted by both the exploding diversity of the Linux community and the public skepticism of its founder, Linus Torvalds. Torvalds continued to use the term "free software" for lack of any alternative, but publicly rejected RMS's ideological baggage. Many younger hackers followed suit.
除此之外,大约在1990年代中期以前,RMS想要在“自由软件”口号下定义和引领黑客社区。在Linux崛起之后,这受到了极大挑战。Linux为开放源代码开发活动提供了一个天然的环境。许多在现今被称为“开放源代码”条款下发布的项目纷纷从专有Unix向Linux迁移。围绕Linux的社区呈现爆炸式的增长,比在Linux出现前的黑客文化规模更大且更多样化。RMS想要将这些活动与他的“自由软件”运动关联起来,但是由于Linux社区爆炸式的多样性和该社区的创始人,Linus Torvalds的公开怀疑所阻碍。Torvalds仍然使用“自由软件”这一词汇,因为找不到更好的替代品,但他公开拒绝了RMS的意识形态观念。许多年轻黑客纷纷效仿。
In 1996, when I first published this Hacker HOWTO, the hacker community was rapidly reorganizing around Linux and a handful of other open-source operating systems (notably those descended from BSD Unix). Community memory of the fact that most of us had spent decades developing closed-source software on closed-source operating systems had not yet begun to fade, but that fact was already beginning to seem like part of a dead past; hackers were, increasingly, defining themselves as hackers by their attachments to open-source projects such as Linux or Apache.
在1996年,当我第一次发布本文的时候,黑客社区正在围绕Linux和一些其他开放源代码的操作系统(尤其是BSD Unix的继承者)进行重组。我们中的许多人曾经在封闭源代码的操作系统上花费大量时间开发封闭源代码软件的集体记忆并没有因此褪色,但是这看起来已经是过去。黑客们将自己作为黑客的定义与开发源代码项目例如Linux和Apache越来越紧密的结合在一起。
The term "open source", however, had not yet emerged; it would not do so until early 1998. When it did, most of the hacker community adopted it within the following six months; the exceptions were a minority ideologically attached to the term "free software". Since 1998, and especially after about 2003, the identification of 'hacking' with 'open-source (and free software) development' has become extremely close. Today there is little point in attempting to distinguish between these categories, and it seems unlikely that will change in the future.
然而“开放源代码”这个词直到1998年初才出现。当它出现之后,多数黑客社区在6个月之内采用了它,除了与“自由软件”在意识形态层面绑定的极少数例外。自1998年起,尤其是2003年之后,“黑客”和“开放源代码(和自由软件)开发”越来越紧密相连。今天,几乎已经无法也没必要将它们区分开,并且这一点看起来在将来也不会改变。
It is worth remembering, however, that this was not always so.
然而,曾经并不是这样,这一点值得我们记住。