Hackers and the Open Source Revolution

Hackers and the Open Source Revolution

This piece corrects the confusion(混淆) created by mainstream(主流) media between “hacker” and “cracker(爆竹)”. It also considers the history, nature, attributes(属性), ethics(伦理学) and attire(服装) of hackers, plus more. Interested in being one yourself, or checking why other people treat you as if you don’t fit into “normal” society? Read on…

The new generation of hackers are turning open source into a powerful force in today’s computing world. They are the heirs(继承人) to an earlier hacking culture that thrived(繁荣) in the 1960s and 1970s when computers were still new — part of a community that believed software should be shared and that all would benefit(有益于) as a result.

These expert programmers and networking wizards(男巫) trace(追溯) their lineage(血统) back to the first time-sharing minicomputers and the earliest ARPAnet experiments. The members of this community coined the term “hacker”. Hackers built the Internet and made the UNIX operating system what it is today. Hackers run Usenet and make the World Wide Web work.

Thanks to the advent(到来) of relatively low-cost(廉价的) computers and the Internet, the new hackers are immeasurably(无限地) more numerous(许多的), more productive(能生产的), and more united than their forebears(祖先). They are linked by a common goal — of writing great software; and by a common code — that such software should be freely available to all.

Hackers sparked(发动) the open source revolution

In 1991, Linus Torvalds sent a posting to an Internet newsgroup, asking for advice on how to make a better operating system. His project was a hobby, he said, and would never be “big and professional”. In 1994, the first working version of Linux was distributed(分布式的).

Marleen Wynants and Jan Cornelis, while discussing the economic(经济的), social, and cultural(文化的) impact(影响) of Free and Open Source Software in their paper “How Open is the Future?” suggest that Linux was more than just a toy for hackers. Propelled(推进) by Linux, the open source hacker culture surfaced from its underground location. Amateur(爱好者) hacker programmers began to create coalitions(联合) with more established(确定的) parts of the software production and distribution(分布) sector(部门). New companies and organisations(组织) were founded, while new products, licenses and communities were created.

In the spring of 1997, a group of leaders in the free software community assembled(集合) in California. This group included Eric Raymond, Tim O’Reilly, and VA Research president Larry Augustin, among others. Their concern(关系) was to find a way to promote(促进) the ideas surrounding free software among people who had formerly shunned(避开) the concept(观念). They were concerned that the Free Software Foundation’s “anti-business message” was keeping the world at large from really appreciating the power of free software.

At Eric Raymond’s insistence(坚持), the group agreed that what they lacked to a great extent(程度) was a marketing campaign(运动) devised(设计) to win mindshare, and not just market share. Out of this discussion came a new term to describe the software they were promoting: open source. A series of guidelines(指导方针) were crafted(精心制作的) to describe software that qualified(限制) as open source. While there has been a hacker subculture(亚文化群) developing open source applications and Internet protocols(协议) for many years, without explicitly(明确地) using the label(标签) “open source”, it is only in the last few years, after this conference, that this practice has become visible(可见物) to a broader public.

In 1998, Microsoft’s anxiety(焦虑) leaked out through what is now known as the Halloween Documents. These documents comprised(包含) a series of confidential(机密的) Microsoft memos on potential(潜在的) strategies(战略) relating to free software, open source software, and to Linux in particular. Among the leaked documents were a series of responses to the original memos.

The leaked documents and responses were published by Eric Raymond during Halloween 1998. Forced to concede(承认) that the memos did indeed originate(引起) from within the company, Microsoft dismissed them as the private speculations(投机) of a couple of engineers. “Linux has been deployed(配置) in mission-critical, commercial(商业的) environments with an excellent pool of public testimonials(证明书),” Vinod Valloppillil, one of the memos’ authors, had noted.

The documents also acknowledged(承认) that open source software “…is long-term credible(可靠的) … FUD (spreading Fear, Uncertainty, and Doubt) tactics(策略) cannot be used to combat(反对) it,” and “Recent case studies (the Internet) provide very dramatic(戏剧的) evidence(证据) … that commercial quality can be achieved/exceeded(超过) by OSS projects.”

FUD was a traditional Microsoft marketing strategy, acknowledged and understood internally(内部地). Examples of Microsoft’s FUD tactics included announcing the launch(发射) of non-existent(不存在的) products or spreading rumours(谣言) that competing products would cause Windows to crash.

So, who are these hackers?

Should you happen to bump(碰撞) into them and inquire(询问) about their craft, hackers will gleefully(欢欣地) inform(通知) you that programming is the most fun you can have with your clothes on… although clothes are not mandatory(强制的).

A hacker is someone who enjoys exploring the details of computers and how to stretch(伸展) their capabilities(才能), as opposed to most users, who prefer to learn the minimum(最小的) necessary. Originally, “hacker” was a term of respect, used among computer programmers, designers, and engineers. The hacker was one who created original and ingenious(有独创性的) programs.

To programmers, “hackers” connote(意味着) mastery(掌握) in the most literal(文字的) sense: those who can make a computer do what they want it to — whether the computer wants to or not. Unfortunately, this term has been abused(滥用) by the media to give it a negative(负的) connotation(内涵) — of someone who breaks into systems, destroys data, steals copyrighted software and performs other destructive(破坏的) or illegal(非法的) acts with computers and networks.

The term that accurately(精确地) defines(定义) that kind of person is “cracker”.

Hackers carry stacks(堆) of ideas teetering(摇晃) in their heads at any given time. Their brains cannot stop collecting, consuming(消耗), or taking things apart(相距), only to reassemble(重新装配) them again. But what seems to drive them is an intense(强烈的) ability, even a need, for analysis and organisation. When hackers encounter(遭遇) a technology for the first time, they do not just absorb(吸收) the general shape, but go straight for the details. They feed on the logic(逻辑) of technology. When they do communicate, they can speak and write with great precision(精度) about what they’ve learned.

The hacker attitude

Hackers solve problems and build things, and they believe in freedom and voluntary(自愿的) mutual(共同的) help. The hacker mindset(心态) is not confined(限制) to the realm(领域) of software (or hardware(计算机硬件)). The hacker nature is independent of the particular medium(方法) the hacker works in.

Hackerism ideas have travelled(有过…旅行的) beyond the computer industry. The ideals(理想) of the hacker culture could apply to almost any activity one pursues(继续) with passion. Burrell Smith, a key member of the team that created the Apple Macintosh computer, says, “Hackers can do almost anything and be a hacker. You can be a hacker carpenter(木匠). It’s not necessarily high-tech(高科技的). I think it has to do with craftsmanship(技术), and caring(有同情心的) about what you’re doing.”

In his book Biopunk, Marcus Wohlsen reasons that the primal(被压抑童年情绪的释放) urge(力劝) to tinker(做焊锅匠) is an essential prerequisite(先决条件) to being a hacker. In the hands of its most gifted practitioners(开业者), tinkering(铸补) is an essential form of creativity(创造力). But it is a different brand of creativity, practised in a different spirit, than the kind suggested by the romantic(浪漫的) image of the lone artist or genius(天才) inventor trying to wrestle(摔跤) inspiration(灵感) out of nothing.

Tinkering in a generic(类的) sense is fiddling(诈骗) or tweaking(扭), spending the weekend in the garage trying to squeeze(挤) a few more horsepower(马力) out of the Yamaha FZ 16. But it still retains(保持) the idea of “work that is not really work”. Jacking up your shocks and putting in balloon tyres on your Willy’s Jeep is not something you do because you have to. Tinkering is work you do for fun.

Hackers embrace(拥抱) the playfulness(玩笑) of tinkering, but here’s the mischief(恶作剧) in their creed(信条): just because the work is fun does not mean it is unimportant. “Playing”, in the hacker sense of the word, is not just a way to stay entertained(娱乐). It is an attitude toward innovation(创新) that champions gamesmanship(搅乱战术) and admires intellect(智力) applied with competitive(竞争的) vigour(活力) and flair(资质).

In chess, the grandmaster(大师) and the goat each play with the same sixteen pieces. But in the hands of the former, the game becomes an object of beauty and raw intellectual(智力的) force. In the same way, the gifted tinkerer can rearrange(重新排列) the already existing engine parts or snippets(小片) of computer code in a way that creates something utterly(完全地) new and potentially(潜在的) transformative(变化的).

For hackers, the logical(合逻辑的) frame(框架) of mind required for programming spills over into more commonplace(平凡的) activities. You could ask hackers a question and sense their mental accumulators(蓄电池) processing bits until they came up with a precise(精确的) answer to the question you asked.

Marge Saunders would drive to the Safeway supermarket every Saturday morning in her Volkswagen and on her return would ask her husband, “Would you like to help me bring in the groceries(杂货)?” Bob Saunders would reply, “No.” Stunned(震惊), Marge would drag in the groceries herself. After this occurred a few times, she exploded, hurling(猛投) curses(诅咒) at him and demanded an explanation on why he didn’t help her.

“That’s a stupid question to ask,” he said. “Of course I won’t like to help you bring in the groceries. If you ask me if I will help you bring them in, that’s another matter.” It was as if Marge had submitted(服从) a program into the TX-0, and the program, as programs do when the syntax(语法) is improper(不正确的), had crashed. It was not until she debugged(调试) her question that Bob Saunders would allow it to run successfully on his own mental computer.

Hacker ethic

Wikipedia accurately(精确的) explains the “hacker ethic(伦理)” as a generic phrase that describes the moral values and philosophy(哲学) that are standard in the hacker community. The early hacker culture and resulting philosophy originated(引起) at the Massachusetts Institute of Technology (MIT) in the 1950s and 1960s.

The term “hacker ethic” is attributed(归属) to journalist Steven Levy, as described in his book titled Hackers: Heroes of the Computer Revolution, written in 1984. The guidelines(指导方针) of the hacker ethic make it easy to see how computers have evolved(发展) into the personal devices(装置) we know and rely(依靠) upon today.

The hacker ethic was a “…new way of life, with a philosophy, an ethic and a dream.” However, the elements(基础) of the hacker ethic were not openly debated and discussed; rather they were accepted and silently agreed upon.

Free and Open Source Software (FOSS) has evolved from the hacker ethics that Levy described. The hackers who stay true to the hacker ethics — especially the Hands-On Imperative — are usually supporters of the free and open source software movement.
The general tenets(原则) of the hacker ethic are:

  • Access to computers — and anything that might teach you something about the way the world works — should be unlimited and total. Always yield(屈服) to the Hands-On Imperative! Hackers believe that essential lessons can be learned about the systems — about the world — from taking things apart(相距), seeing how they work, and using this knowledge to create new and even more interesting things. They mostly resent(怨恨) any person, physical barrier(障碍物), or law that tries to keep them from doing this.
  • All information should be free. If you don’t have access to the information you need to improve things, how can you fix them? A free exchange of information, particularly when the information is in the form of a computer program, allows for greater overall creativity(创造力).
  • Mistrust authority(权威) promote(促进) decentralisation(地方分权). The best way to promote this free exchange of information is to have an open system, with no boundaries(边界) between hackers and a piece of information, or an item of equipment that they need in their quest(追求) for knowledge, and their time online. The last thing they need is a bureaucracy(官僚主义), whether in the corporate(法人的) world, in government, or at university. Bureaucracies are flawed(有缺陷的) systems, dangerous in that they cannot accommodate(容纳) the exploratory(勘探的) impulses(冲动) of true hackers. Bureaucrats(官僚) hide behind arbitrary(任意的) rules (as opposed to the logical(合逻辑的) algorithms(算法) by which machines and computer programs operate): they invoke(调用) those rules to consolidate(巩固) their own power, and perceive(察觉) the constructive(建设性的) impulse of hackers as a threat(威胁).
  • Hackers wish to be judged by their hacking, not bogus(假的) criteria(标准) such as degrees, age, race, or position. Hacker cultures are meritocracies(英才教育), where positions are based on demonstrated(证明) knowledge and achievements(成就). Hackers care less about people’s superficial(表面的) characteristics(特征) than they do about their potential(潜能) to advance the general state of hacking, to create new programs to admire, to talk about new features(特色) in the system, etc.
  • You can create art and beauty on a computer. Hackers deeply appreciate innovative(革新的) techniques that allow programs to perform complicated(难懂的) tasks with a few instructions. A program’s code is considered “beautiful” in its own right, having been carefully composed(构成) and artfully(巧妙地) arranged. Learning to create programs that used the least amount(数量) of space almost became a game between early hackers.
  • Computers can change your life for the better. This belief is subtly(精细地) manifest(显然的). Rarely will hackers try to impose(强加) their view of the myriad(无数) advantages of the computer way of knowledge to an outsider. Yet, this premise(前提) dominates(控制) the everyday behaviour of hackers. For sure, the computer has changed their lives, given it a focus, enriched(充实) it, while making it more adventurous(爱冒险的). It has made hackers masters of a certain slice of the world. Since all this is so obvious to hackers themselves, they believe that surely everyone could benefit(有益于) from experiencing this power. Surely everyone could benefit from a world based on the Hacker Ethic(伦理). This is the implicit(含蓄的) belief of hackers, and they irreverently(不逊地) go beyond what is conventionally(照惯例) expected of computers — leading the world to a new way of looking at and interacting(相互作用) with computers.

The last two points of the traditional ethics perhaps do not seem surprising today. They must be understood in their historical(历史的) context(环境). In the 70s, computers were strange and unfamiliar to most people. In cases where they meant something, it was mostly to do with administrative(管理的) data processing, computing centres, punch(冲压机) cards and Teletype interfaces(界面). Art, beauty and life changes were not mainstream(主流) notions(概念) associated(交往) with computers.

The hacker attire

Hackers dress for comfort, function, and minimal(最低的) maintenance(维护) rather than for appearances (some, perhaps unfortunately, take this to extremes(狂热分子) and neglect(疏忽) personal hygiene(卫生)). They have a very low tolerance(公差) for suits and other “business” attire(服装); in fact, it is not uncommon for hackers to quit(离开) a job rather than conform(符合) to a dress code.

When they are somehow pushed into conforming to a dress code, they will find ways to subvert(颠覆) it, for example, by wearing absurd(荒谬的) novelty(新奇) ties. Most hackers I know consider a tie as a strangulation(绞窄) device(装置) that partially(部分地) cuts off the blood supply to the brain…which explains the behaviour of tie-wearers. A tie could bestow(使用) upon you the reputation(名声) of a super-loser, a suit-wearing super-user with no clue(线索) — someone with root privileges(特权) on a UNIX system but no idea what he is doing; the equivalent(等价物) of a three-year-old with an AK-47 for a toy. In times of dire(可怕的) stress(压力), he may roll up his sleeves and loosen(放松) the tie about half an inch. It seldom helps.

Female hackers almost never wear visible(明显的) makeup(化妆品) and many use none at all.

How to become a hacker

In his essay by the same name, Eric Steven Raymond lists out, among other things, the basic hacking skills for wannabe(想达到目标的人) hackers. He recommends the following five languages — Python, Java, C/C++, Perl and Lisp.

Python. It is cleanly designed, well documented and relatively kind to beginners. Despite(尽管) being a good first language, it is not a toy; it is very powerful and flexible(灵活的), and well suited for large projects. Paul Graham points out that many hackers use Python because they like the way source code looks.

That may seem a frivolous(无聊的) reason to choose one language over another. But it is not as frivolous as it sounds — when you program, you spend more time reading code than writing it. You push blobs of source code around the way a sculptor(雕刻家) does with blobs of clay(粘土). So a language that makes source code ugly is maddening(令人发狂的) to an exacting programmer, as clay full of lumps(块) would be to a sculptor.

Java. Eric Raymond suggests that Java is a good language to learn to program in. Most hackers today may not agree. Their main objection(异议) is that Java is not malleable(可锻的). The malleability(顺从) of the medium(方法) while programming is part of the process of discovery, which includes understanding all the requirements and forces — internal(内部的) or not — that a system must be designed around.

James Gosling, best known as the father of the Java programming language, in his paper “Java: An Overview”, says, “Very dynamic(动态的) languages like Lisp, TCL and Smalltalk are often used for prototyping(样机研究). One of the reasons for their success at this is that they are very robust(强健的)… Another reason … is that they don’t require you to pin down decisions early on. Java has exactly the opposite property: it forces you to make choices explicitly(明确地).”

The difference between languages like Lisp and Java, as Paul Graham points out in his book Hackers and Painters, is that Lisp is for working with computational(计算的) ideas and expression, whereas(然而) Java is for expressing completed programs.

As James Gosling says, Java requires you to pin down decisions early on. And once pinned down, the system — which is the set of type declarations(申报), the compiler(编译器), and the runtime system — makes it as hard as it can for you to change those decisions, on the assumption(假定) that all such changes are mistakes you’re inadvertently(疏忽的) making. The effect is like having governors(主管人员) (speed limiters) fitted in your off-roader(越野的) to prevent fools (you?) from doing too much damage. Hackers don’t like a language that talks down to them. Hackers just want power.

C/C++. If you get into serious programming, you will 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.

Perl. Another language of particular importance to hackers is Perl, which is worth learning for practical reasons. It is very widely used for active Web pages and systems administration(管理), so that even if you never write Perl, you should learn to read it.

Lisp. The truly serious hacker should consider learning Lisp. Lisp(口齿不清) is worth learning for 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 a lot.

Get Linux

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. Yes, there are other operating systems in the world besides UNIX/Linux. 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 Windows machine is like trying to learn to dance while wearing a body cast. Besides, 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-centred.

So, bring up a Linux. Learn it. Run it. Tinker(发出丁当声) with it. Talk to the Internet with it. Read the code and modify(修改) it. You’ll get better programming tools (including C, Lisp, Python and Perl) than any Microsoft operating system can dream of. You’ll have fun and you’ll soak(吸收) up more knowledge than you realise, until you look back on it as an ace hacker.

So are you a hacker?

You must earn the title of “hacker”, rather than just claim(要求) it. The same essay by Eric S Raymond that I mentioned earlier offers some invaluable(无价的) tips on how to earn your status in hackerdom. Among others, there are two main things you can do to be respected by hackers (for a complete list, read “How to become a hacker” by Eric S Raymond).

Write open source software. 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 to the whole hacker culture to use. 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.

Help test and debug(调试) open source software. They also serve hackerdom 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 will tell you that good beta-testers (who know how to describe symptoms(症状) clearly, localise(地方化) 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(讨厌的人).

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 and then on to helping modify them. You’ll learn a lot this way and generate(形成) good karma(因果报应) with people who will help you later on.

To end, I will have to quote Eric S Raymond yet again, since he puts it so beautifully:

We half-joke about ‘world domination’, but the only way we will get there is by serving the world. That means you and I; and that means learning how to think about what we do in a fundamentally(根本地) new way, and ruthlessly(无情地) reducing the user-visible complexity(复杂) of the default environment to an absolute(绝对的) minimum(最小值).

Computers are tools for human beings. Ultimately(最终的), therefore, the challenges of designing hardware(计算机硬件) and software must come back to designing for human beings — all human beings. This path will be long, and it won’t be easy. But we owe it to ourselves and each other to do it right. May the open source be with you!

References
  • How to Become a Hacker, an essay by Eric Steven Raymond
  • Hackers: Heroes of the Computer Revolution, by Steven Levy
  • The Daemon, the GNU, and the Penguin, by Peter H. Salus
  • OpenSources, by Chris DiBona, Sam Ockman and Mark Stone
  • The New Hacker’s Dictionary, by Eric S Raymond, MIT Press
  • Biopunk: DIY Scientists Hack the Software of Life, by Marcus Wohlsen

你可能感兴趣的:(linux学习)