您的位置:首页 > 运维架构

Hackers and the Open Source Revolution

2012-05-08 11:36 441 查看

Hackers and the Open Source Revolution

By
Vivek Shangari on February 25, 2012 in
Blogs,
Developers,
For You & Me ·
6 Comments



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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
相关文章推荐