Pages

Kamis, 27 Oktober 2011

How To Become A Hacker encrypytions & decryptions

I. なぜこんな文書を書いたか

 わたしは Jargon File ã®ç·¨é›†è€…ãªã®ã§ã€ã—ã°ã—ã°ç†±å¿ƒãªãƒãƒƒãƒˆãƒ¯ãƒ¼ã‚¯åˆå¿ƒè€…ã‹ã‚‰ã€Œã‚¦ã‚£ã‚¶ãƒ¼ãƒ‰ç´šã®å¤§ãƒãƒƒã‚«ãƒ¼ã«ãªã‚‹ã«ã¯ã©ã†ã‚„ã£ã¦å‹‰å¼·ã™ã‚Œã°ã„ã„ã®ï¼Ÿã€ã¨ã„ã£ãŸã‚ˆã†ãªãŠå°‹ã­ãƒ¡ãƒ¼ãƒ«ã‚’é ‚ãã¾ã™ã€‚ã¨ã“ã‚ãŒä¸æ€è­°ãªã“ã¨ã«ã€ã“ã‚“ãªå¤§äº‹ãªå•é¡Œã‚’æ‰±ã£ãŸ FAQ ã‚„ Web 文書 はみあたりません。というわけで、自分なりのヤツを。

この文書をオフラインで読んでいるなら、最新版は次のところにあります。 http://www.catb.org/~esr/faqs/hacker-howto.html

なお、この文書のさいごには「よくきかれる質問(FAQ)」がついています。この文書についてわたしに質問を送りつけるまえに、まずそれを――二回は――読んでください。

 本書の翻訳はいっぱいあります: ブルガリア語, シナ語 (簡体字), シナ語 デンマーク語, オランダ語, フィンランド語 ドイツ語, ヘブライ語, Hungarian, Italian 日本語, ポーランド語, ポルトガル語 (European), スペイン語, トルコ語, and スウェーデン語。 ちなみにこの文書はときどき変更されるので、これらの翻訳は程度の差はあれ古くなっているかもしれません。

本文書を飾る、9目升目に5つの点の図は、グライダーというものです。これはハッカーたちを何年にもわたって魅了してきたライフゲームという数学なシミュレーションに見られる、驚くような性質を持った簡単なパターンです。ハッカーとはどんなものかについての、いい視覚的なエンブレムだと思います――抽象的で、一見すると謎めいていますが、でも独自の入念な論理を持った大きな世界への玄関口となっているのです。グライダーエンブレムについてはここを参照してください。
II. ハッカーって何?

 Jargon File には「ハッカー(hacker)」という言葉の定義が山ほどあがっています。そのほとんどは、技術的な熟達や。問題解決、限界を克服することといったような話と関係した内容です。でもハッカーになる方法を知りたいなら、ホントに関係ある定義は2つしかありません。

 熟練プログラマやネットワークの天才たちのコミュニティないしは共有文化というものが存在しています。その歴史は初期のタイム・シェアリング・ミニコンピュータや黎明期の ARPAnet の実験にまで遡ることができます。この文化に属する人々が「ハッカー hacker」という言葉をうみだしました。ハッカーたちはインターネットを築きました。ハッカーたちが UNIX オペレーティングシステムを今日のような形にまで作りあげました。ハッカーたちが Usenet を運営し、World Wide Web が使えるようにしたんです。あなたがこの文化の一員で、それに貢献し、その文化のほかの人たちがあなたを知っていて、しかもその人たちがあなたをハッカーと呼んでくれるなら、あなたはハッカーです。

訳注:ARPAnet ARPA ネットワークとは国防省の ARPA ã®ç ”ç©¶å§”è¨—ã‚’å—ã‘ãŸå¤§å­¦ã‚„æ”¿åºœç ”ç©¶æ©Ÿé–¢ã‚’æ”¿åºœé–¢ä¿‚ã®ç ”ç©¶ã§ç›¸äº’ã«æƒ…å ±ã‚’äº¤æ›ã™ã‚‹ãŸã‚ã«æ§‹ç¯‰ã•ã‚ŒãŸã‚‚ã®ã§ã€ã‚¤ãƒ³ã‚¿ãƒ¼ãƒãƒƒãƒˆã®æŠ€è¡“çš„åŸºç›¤ã«ãªã£ãŸã€‚RFC 991

 ハッカー精神は、ソフトウェアハッカー文化だけに限られたものではありません。ハッカー的態度をその他エレクトロニクスや音楽などに発揮する人たちもいます――実はどの科学や芸術分野でも、一番高い水準ではこのハッカー精神が見られます。ソフトウェアのハッカーたちも、ほかの分野での似たような精神を察知して、それを「ハッカー(hacker)」と呼んだりします。さらにハッカー性は、そのハッカーが活躍する個別分野とは無関係に存在するという人もいます。しかしこの文書ではこれから、ソフトウェアハッカーの技術と態度、そして「ハッカー(hacker)」という言葉を生み出した共有文化の伝統に話をしぼります。

 ハッカーを声高に名乗る別の集団が存在しますが、彼らはハッカーではありません。これはコンピュータに侵入したり、電話のただがけしたりする人々(主に男のガキ)です。本物のハッカーはこの連中を「クラッカー(crackerï¼‰ã€ã¨å‘¼ã³ã€ä¸€åˆ‡é–¢ã‚ã‚Šã‚’æŒã¡ãŸããªã„ã¨æ€ã£ã¦ã„ã¾ã™ã€‚æœ¬ç‰©ã®ãƒãƒƒã‚«ãƒ¼ãŸã¡ã¯ãŸã„ã¦ã„ã€ã‚¯ãƒ©ãƒƒã‚«ãƒ¼ã¯æ€ æƒ°ã§ç„¡è²¬ä»»ã§ã‚ã¾ã‚Šè³¢ããªã„ã¨æ€ã£ã¦ã„ã¾ã™ã€‚è»Šã®ç‚¹ç«å›žè·¯ã‚’ã„ã˜ã£ã¦ã‚­ãƒ¼ãªã—ã§è»Šã‚’å§‹å‹•ã§ãã¦ã‚‚è‡ªå‹•è»Šã‚¨ãƒ³ã‚¸ãƒ‹ã‚¢ã«ã¯ãªã‚Œãªã„ã‚ˆã†ã«ã€ã‚»ã‚­ãƒ¥ãƒªãƒ†ã‚£ç ´ã‚ŠãŒã§ãã¦ã‚‚ãƒãƒƒã‚«ãƒ¼ã«ã¯ãªã‚Œãªã„ã‚ˆã€ã¨ã„ã†ã®ãŒãƒãƒƒã‚«ãƒ¼ãŸã¡ã®æ–‡å¥ã§ã™ã€‚æ®‹å¿µãªã“ã¨ã«ã€å¤šãã®ã‚¸ãƒ£ãƒ¼ãƒŠãƒªã‚¹ãƒˆã‚„è‘—è¿°å®¶ãŸã¡ã¯ã ã¾ã•ã‚Œã¦ã€ã‚¯ãƒ©ãƒƒã‚«ãƒ¼ã«ã¤ã„ã¦æ›¸ãã®ã« `ハッカー hacker'という言葉を使い続けています。真のハッカーたちはこれをとてつもなく不愉快に思っています。

 基本的な違いとはすなわち:ハッカーはものをつくります。クラッカーは壊します。

 ハッカーになりたいならこの文書を読み続けなさい。クラッカーになりたいなら、alt.2600 ãƒ‹ãƒ¥ãƒ¼ã‚¹ã‚°ãƒ«ãƒ¼ãƒ—ã‚’èª­ã‚“ã§ã€ãã—ã¦è‡ªåˆ†ã§æ€ã£ãŸã»ã©é ­ãŒã‚ˆããªã„ã“ã¨ãŒã‚ã‹ã£ãŸã¨ãã«ã¯ã€ãƒ–ã‚¿ç®±ã‚’ 5 å¹´ã‚„ 10 年くらう覚悟をすること。クラッカーについてこれ以上言うことはありません。

III. ハッカー的心構え

 ハッカーは問題を解決し、物事を築きます。そして自由と自発的な助け合いを信条としています。ハッカーとして受け入れられるには、こういう姿勢態度を持つようなふるまいが必要です。そしてこの姿勢を持つかのようにふるまうには、本当にその心構えを信じるしかありません。

ã€€ã§ã‚‚ã€ãƒãƒƒã‚«ãƒ¼æ–‡åŒ–ã«å—ã‘å…¥ã‚Œã‚‰ã‚ŒãŸã„ãŒãŸã‚ã«ãƒãƒƒã‚«ãƒ¼ã‚‰ã—ã„å¿ƒæ§‹ãˆã‚’èº«ã«ã¤ã‘ã‚‹æ°—ãªã‚‰ã€ãã‚Œã¯å‹˜é•ã„ã€‚ãƒãƒƒã‚«ãƒ¼ã®å¿ƒæ§‹ãˆã‚’æœ¬å½“ã«ä¿¡ã˜ã‚‹ã¦ã„ã‚‹ã‚ˆã†ãªäººã«ãªã‚‹ã®ã¯ã€ã‚ãªãŸè‡ªèº«ã«ã¨ã£ã¦å¤§åˆ‡ãªã“ã¨ãªã‚“ã§ã™â€•â€•å­¦ã¶ã®ã«å½¹ç«‹ã¡ã€ãã®æ„æ¬²ã‚’æŒç¶šã•ã›ã¦ãã‚Œã‚‹ã‚“ã§ã™ã€‚ã™ã¹ã¦ã®å‰µé€ çš„ãªèŠ¸è¡“ã¨åŒæ§˜ã€ç†Ÿé”è€…ã«ãªã‚‹æœ€é«˜ã®æ–¹æ³•ã¯ç†Ÿé”è€…ã®ç²¾ç¥žã‚’ã¾ã­ã‚‹ã“ã¨ã§ã™ã€‚çŸ¥è­˜é¢ã ã‘ã§ãªãã€æ„Ÿæƒ…çš„ãªé¢ã‚‚å«ã‚ã€‚

あるいは現代の禅詩が言うように:

道をたどり
師をあおげ
師にしたがえ
師とともに歩け
師を見通せ
師となれ

 だからハッカーになりたいなら、以下の内容を何度も唱えて、それを信じ込むこと:
1. この世界は解決を待っている魅力的な問題でいっぱいã

 ハッカーであることはとてもおもしろいのですが、そのためには相当な努力が必要です。その努力をするには意欲が必要です。優秀な陸上選手は、自分の肉体的な限界を越えて体を機能させるという肉体的な喜びが意欲の源です。同様に、ハッカーになるためには自分の技術をみがき、知性を働かす訓練して、問題を解決することにゾクゾクするような喜びを感じるようでなければいけません。

 あなたが生まれつきこのように感じないなら、ハッカーになるにはまずそのような人にならなくてはいけません。さもないとハッキングへの意欲が、セックスやお金や社会的な名声のようなつまらないことに惑わされてしまうでしょうから。

ã€€ï¼ˆè‡ªåˆ†ã®å­¦ç¿’èƒ½åŠ›ã«å¯¾ã™ã‚‹ä¿¡é ¼ã‚‚è‚²ã¦ã¾ã—ã‚‡ã†ã€‚ãŸã¨ãˆä»Šã®æ®µéšŽã§ã¯å¤§ããªå•é¡Œã‚’è§£æ±ºã™ã‚‹ã®ã«å¿…è¦ãªã™ã¹ã¦ã‚’çŸ¥ã‚‰ãªãã¦ã‚‚ã€ãã®å•é¡Œã®ã»ã‚“ã®ä¸€éƒ¨ã‹ã‚‰å–ã‚Šã‹ã‹ã£ã¦ã€ãã“ã‹ã‚‰æ–°ã—ã„äº‹ã‚’å­¦ã³å–ã‚Œã°ã€æ¬¡ã®éƒ¨åˆ†ã®è§£æ±ºã«ååˆ†ãªã ã‘å­¦ã¹ã¦ã€ãã—ã¦æ¬¡ã¸æ¬¡ã¸ã¨é€²ã‚ã°ã€ã„ãšã‚Œå¤§ããªå•é¡Œå…¨ä½“ãŒè§£æ±ºã§ãã‚‹ã¨ä¿¡ã˜ã¾ã—ã‚‡ã†ï¼‰ã€‚
2. 同じ問題を二度解くような無駄はいやã

 クリエイティブな人材は貴重な限られた資源です。世の中にはたくさんの魅力的な新しい問題が解決を待っているんだから、車輪を発明しなおすような無駄なことをしてはいけません。

ã€€ãƒãƒƒã‚«ãƒ¼ã‚‰ã—ããµã‚‹ã¾ã†ã«ã¯ã€ä»–ã®ãƒãƒƒã‚«ãƒ¼ãŸã¡ãŒè€ƒãˆã‚‹æ™‚é–“ã¯è²´é‡ã§ã‚ã‚‹ã¨ä¿¡ã˜ãªã‘ã‚Œã°ãªã‚Šã¾ã›ã‚“ã€‚ãã‚Œã‚’ã¨ã“ã¨ã‚“ä¿¡ã˜ã¦ã€æƒ…å ±ã‚’å…±æœ‰ã™ã‚‹ã®ãŒã»ã¨ã‚“ã©é“å¾³çš„ãªç¾©å‹™ã§ã‚ã‚‹ã¨æ€ãˆã‚‹ã‚ˆã†ã«ãªã‚Šã¾ã—ã‚‡ã†ã€‚å•é¡Œã‚’è§£æ±ºã—ã€ãã®è§£ç­”ã‚’æä¾›ã™ã‚Œã°ã€ä»–ã®ãƒãƒƒã‚«ãƒ¼ãŸã¡ã¯å¤ã„å•é¡Œã«ã„ã¤ã¾ã§ã‚‚å–ã‚Šçµ„ã¿ãªãŠã—ç¶šã‘ãšã«ã€æ–°ã—ã„å•é¡Œã‚’è§£æ±ºã§ãã‚‹ã®ã§ã™ã€‚

(作ったものをすべて無償で提供する義務があると思いこむ必要はありません。でもそうするハッカーが、他のハッカーたちから最高の尊敬を受けるのは確かですが。食費と家賃とコンピュータ代をまかなうのに必要なだけ自分の作品を売り込んでも、ハッカーの価値観と矛盾しません。ハッキングしている間、自分がハッカーであることを忘れない限り、家族を支えたり、あるいは金持ちになるためにであっても、ハッキングの技術を使うことはハッカーの価値観と矛盾しません。)
3. 退屈と単純作業は悪

 ハッカーたち(そして一般的にクリエイティブな人たち)は、退屈したり、くだらない反復作業をいやいやこなしたりする必要はないはずです。だってそういうときには、彼らしかできないこと、つまり新しい問題を解決するということが行われていないことになるからです。こういう無駄は万人にとって有害です。だから退屈と単純作業はつまらないだけでなく、本当に悪いことなのです。

 ハッカーらしくふるまうには、これを徹底的に信じ込んで、自分自身のためばかりでなく他のみんな(とりわけ他のハッカーたち)のためにも、退屈な部分はできるだけたくさん自動化してしまいたくなるようにしましょう。

(これには明らかな例外が一つあります。ハッカーたちは時々気持ちの切替えのために、あるいは技術を習得するため、またほかの手段では出来ない特別な経験を積むために、端からは反復ばかりで退屈に見えるようなことをします。しかしこれは好きでやっているのです――思考能力のある人なら、決して退屈を強制されるべきではありません)。
4. 自由は善

ã€€ãã‚‚ãã‚‚ãƒãƒƒã‚«ãƒ¼ãŸã¡ã¯åæ¨©å¨ä¸»ç¾©ã§ã™ã€‚ã‚ãªãŸã«å‘½ä»¤ã§ãã‚‹äººã¯ã€ä½•ã‹ã‚ãªãŸãŒèˆˆå‘³ã‚’æŒã£ã¦ã„ã‚‹å•é¡Œã‚’è§£æ±ºã™ã‚‹ã®ã‚’æ­¢ã‚ã•ã›ã¦ã—ã¾ãˆã¾ã™â€•â€•ã—ã‹ã‚‚ã€æ¨©å¨ä¸»ç¾©çš„ãªé ­ã®ç‰¹å¾´ã¨ã—ã¦ã€ãã®ã‚„ã‚ã•ã›ã‚‹ç†ç”±ã‚‚ã‚ãã‚Œã‚‹ãã‚‰ã„ãã ã‚‰ãªã„ã‚‚ã®ã§ã‚ã‚‹ã®ãŒæ™®é€šã§ã™ã€‚ã ã‹ã‚‰æ¨©å¨ä¸»ç¾©çš„æ…‹åº¦ã«å‡ºä¼šã£ãŸã‚‰ã€å¿…ãšæˆ¦ã‚ãªã„ã¨ã„ã‘ãªã„ã®ã§ã™ã€‚ãã†ã—ãªã„ã¨ã‚ãªãŸã‚„ä»–ã®ãƒãƒƒã‚«ãƒ¼ãŸã¡ãŒçª’æ¯ã•ã›ã‚‰ã‚Œã¦ã—ã¾ã„ã¾ã™ã€‚

(だからといってすべての権威と戦えということではありません。子どもには指導がいるし、犯罪者は拘束されるべきです。ハッカーは、命令に従うための時間以上にほしい何かを手にいれるためなら、ある種の権威を認めることに同意することもあるでしょう。しかし、それには制限のついた意識的な取引です。権威主義者が求める個人的な降伏などは提供しないのです)。

ã€€æ¨©å¨ä¸»ç¾©è€…ã¯æ¤œé–²ã¨ç§˜å¯†ãŒå¤§å¥½ãã§ã™ã€‚ã•ã‚‰ã«è‡ªç™ºçš„ãªå”åŠ›ã‚„æƒ…å ±å…±æœ‰ã‚’æ€ªã—ã‚€ã®ã§ã™ã€‚å½¼ã‚‰ã¯è‡ªåˆ†ãŸã¡ãŒç®¡ç†ã§ãã‚‹ã€Œå”åŠ›ã€ã ã‘ã‚’å¥½ã¿ã¾ã™ã€‚ã ã‹ã‚‰ã€ãƒãƒƒã‚«ãƒ¼ã‚‰ã—ãè¡Œå‹•ã™ã‚‹ãŸã‚ã«ã¯ã€æ¤œé–²ã‚„ç§˜å¯†ã€ãã—ã¦è²¬ä»»ã‚ã‚‹å¤§äººã«ç„¡ç†å¼·ã„ã™ã‚‹ã‚ˆã†ãªåœ§åŠ›ã‚„ã”ã¾ã‹ã—ã®ä½¿ç”¨ã«å¯¾ã—ã€æœ¬èƒ½çš„ã«æ•µæ„ã‚’æ„Ÿã˜ã‚‹ã‚ˆã†ã«ã—ãªãã¦ã¯ãªã‚Šã¾ã›ã‚“ã€‚ãã—ã¦ã“ã®ä¿¡å¿µ に基づいて行動しなければならないのです。
5. 心構えは技能の代用にはならない

 ハッカーになるには、上記の心構えをある程度身につけなければなりません。しかしスポーツのチャンピオンやロックのスターになろうとしたら、心構えだけではどうしようもないでしょう。同じように、心構えだけでハッカーになれるわけではありません。ハッカーになるには知性、実行力、献身、そして大きな努力が必要です。

ã€€ã§ã™ã‹ã‚‰ã€ã‚ã‚‰ã‚†ã‚‹é¢ã§å§¿å‹¢ã‚„æ…‹åº¦ã¯ä¿¡ç”¨ã›ãšã«ã€æŠ€èƒ½ã‚’é‡è¦–ã™ã‚‹ã“ã¨ã‚’å­¦ã³ã¾ã—ã‚‡ã†ã€‚ãƒãƒƒã‚«ãƒ¼ã¯ã€ãƒãƒƒã‚«ãƒ¼ã‚‚ã©ãã®ç›¸æ‰‹ã‚’ã—ã¦æ™‚é–“ã‚’ç„¡é§„ã«ã—ãŸã‚Šã¯ã—ã¾ã›ã‚“ãŒã€æŠ€èƒ½ã«ã¯é ­ã‚’åž‚ã‚Œã¾ã™ã€‚ãªã‹ã§ã‚‚ã¨ã‚Šã‚ã‘ãƒãƒƒã‚­ãƒ³ã‚°æŠ€èƒ½ã‚’å´‡æ‹ã—ã¾ã™ãŒã€ãã®ä»–ã©ã‚“ãªæŠ€èƒ½ã§ã‚‚ã„ã„ã®ã§ã™ã€‚ã”ãå°‘æ•°ã®äººã—ã‹èº«ã«ã¤ã‘ã‚‰ã‚Œãªã„ã€ãƒãƒ¼ãƒ‰ãƒ«ã®é«˜ã„æŠ€èƒ½ã¯ç‰¹ã«ã‚ˆã„ã‚‚ã®ã§ã€ç²¾ç¥žçš„ãªæ­£ç¢ºã•ã€æŠ€å·§ã€é›†ä¸­åŠ›ã‚’å¿…è¦ã¨ã™ã‚‹ãƒãƒ¼ãƒ‰ãƒ«ã®é«˜ã„æŠ€èƒ½ã§ã®æŠ€èƒ½ã¯æœ€é«˜ã§ã™ã€‚

ã€€æŠ€èƒ½ãŒã™ã°ã‚‰ã—ã„ã‚‚ã®ã ã¨æ€ãˆã‚‹äººãªã‚‰ã€è‡ªåˆ†ã®æŠ€èƒ½ã‚’ã¿ãŒãã®ã‚‚æ¥½ã—ã‚ã‚‹ã§ã—ã‚‡ã†ã€‚ãã®ãŸã‚ã®å¤§ããªåŠªåŠ›ã‚„çŒ®èº«ã‚‚ã€å˜èª¿ãªéª¨æŠ˜ã‚Šä»•äº‹ã§ã¯ãªãã€ä¸€ç¨®ã®ã‚‚ã£ã¨å¼·çƒˆãªéŠã³ã«ãªã‚‹ã§ã—ã‚‡ã†ã€‚ãã—ã¦ãƒãƒƒã‚«ãƒ¼ã«ãªã‚‹ã«ã¯ã€ãã‚ŒãŒä¸å¯æ¬ ãªã®ã§ã™ã€‚

IV. 基本的なハッキング技術

 ハッカーとしての心構えは重要ですが、技術はもっと重要です。心構えは技能の代用にはなりません。ハッカーの誰かが、あなたをハッカー呼ばわりしようなどと夢にでも思ってくれるには、まず身につけるべき基本的な能力ツールキット一式があります。

 このツールキットは時代と共にだんだん変わります。科学技術が新しい技能をうみだし、古い技能を時代遅れにするからです。たとえば、かつてはマシン語によるプログラミングがここには含まれていました。また最近になるまで HTML は含まれていませんでした。しかし、いま明らかに含まれるのはこんなものです:
1. プログラミングを身につけること。

  ã€€å½“ç„¶ã®ã“ã¨ãªãŒã‚‰ã€ã“ã‚Œã¯æ ¹æœ¬çš„ãªãƒãƒƒã‚­ãƒ³ã‚°æŠ€è¡“ã§ã™ã€‚ã‚‚ã—ã‚³ãƒ³ãƒ”ãƒ¥ãƒ¼ã‚¿è¨€èªžã‚’ãªã«ã‚‚çŸ¥ã‚‰ãªã„ãªã‚‰ã€ã¾ãš Python から始めることをおすすめします。設計がきれいだし、ドキュメントもしっかりしているし、初心者にもそこそことっつきやすくできています。でも入門言語として最適でも、おもちゃではありません。強力で柔軟で、大きなプロジェクトにもじゅうぶん対応しています。もっとくわしい Python の評価を書いたのでご参考まで。Python ウェブサイトにはチュートリアルもあります。

 Java もプログラミングを学ぶにはよい言語です。 Python よりはむずかしいですが、できるコードは Python より高速です。二番目の言語としてはとてもすぐれていると思います。

   でも、言語を一つしか知らないなら、ハッカーではないし、プログラマですらないのです。あなたはプログラミングの問題について考えるのに、ひとつの言語に依存しない一般的な方法を身につけなくてはならないからです。真のハッカーになるには、マニュアルの記述を自分のこれまでの知識と関連づけることで、新しい言語をものの数日で習得できるようにならなくてはなりません。ということはつまり、ぜんぜん違った言語をいくつか学ぶべきだということです。

   本気でプログラミングをするなら、C を勉強するしかありません。これは Unix ã®ä¸­æ ¸ã¨ãªã‚‹è¨€èªžã§ã™ã€‚C++ は C と密接な関係にあります。片方を知っていれば、もう片方を学ぶのはそんなにむずかしくありません。が、どっちも真っ先に勉強しようとするのには向いた代物ではありません。

ハッカーにとって特に大事な言語としては、それ以外に Perl と LISP があります。Perl は実際的な意味からも勉強しておく価値があります。アクティブ Web ページやシステム管理にとても広く使われているからです。自分では Perl を使わなくても、読めるようにはなっておきましょう。LISP は、それをモノにしたときのすばらしい悟り体験のために勉強しましょう。この体験は、その後の人生でよりよいプログラマーとなる手助けとなるはずです。たとえ、実際には LISP そのものをあまり使わなくても。

 実は、この 5 つすべて(Python, Java, C/C++, Perl, LISP)を勉強しておくのがいちばんいいのです。これらはもっとも重要なハッキング用言語だというだけでなく、それぞれプログラミングに対してまったく違ったアプローチをしているので、どれも非常に有益な勉強となるでしょう。

 ここでプログラムの学び方について完全な説明は出来ません。プログラミングは複雑な技能ですから。しかし、本や講習会のコースでダメだとは言っておきましょう(多くの、いやひょっとしてほとんどのハッカーたちは我流で勉強してきたのです)。役に立つのは、(a) コードを読むこと、そして (b) コードを書くことです。

ã€€ãƒ—ãƒ­ã‚°ãƒ©ãƒ ã‚’å­¦ã¶ã¨ã„ã†ã“ã¨ã¯ã€è‡ªç„¶è¨€èªžã§ã‚ˆã„æ–‡ç« ã®æ›¸ãã‹ãŸã‚’å­¦ã¶ã‚ˆã†ãªã‚‚ã®ã§ã™ã€‚ã„ã¡ã°ã‚“ã„ã„ã®ã¯ã€ãã®åˆ†é‡Žã®ç†Ÿç·´è€…ãŒæ›¸ã„ãŸã‚‚ã®ã‚’èª­ã‚“ã§ã€è‡ªåˆ†ã§ä½•ã‹æ›¸ã„ã¦ã¿ã¦ã€ã‚‚ã£ã¨ãŸãã•ã‚“èª­ã‚“ã§ã‚‚ã€ã‚‚ã†ã¡ã‚‡ã£ã¨æ›¸ã„ã¦ã€ã‚‚ã£ã¨ãŸãã•ã‚“èª­ã‚“ã§ã‚‚ã€ã‚‚ã†ã¡ã‚‡ã£ã¨æ›¸ã„ã¦â€¦â€¦ãã—ã¦è‡ªåˆ†ã®æ›¸ãã‚‚ã®ãŒã€ãŠæ‰‹æœ¬ã®ã‚‚ã¤åŠ›å¼·ã•ã¨ç°¡æ½”ã•ã‚’ã‚‚ã¤ã‚ˆã†ã«ãªã‚‹ã¾ã§ã“ã‚Œã‚’ç¹°ã‚Šè¿”ã™ã“ã¨ã§ã™ã€‚

 以前は読むのにいいコードを見つけるのは大変でした。大規模なプログラムのなかで、駆け出しハッカーが読んだり、いじったりできるソースの形で入手できるものはほとんどなかったからです。しかしこの状況は劇的に変わりました;オープンソースのソフト、プログラムツール類、そしてオペレーティングシステム類(すべてハッカーの作ったものです)が現在では広く出回っています。ここから話はうまいこと、次のテーマに進むことになります。
2. オープンソース UNIX 類のひとつを入手し、使いかたと動かしかたをおぼえること。

 ここではあなたが自分のコンピュータを持っているか、あるいはコンピュータにアクセスできるものと仮定します(まったく最近のガキどもときたら、なんの苦労もないんだから:-))。新米さんがハッカー技術を習得するための唯一最大の重要な一歩は、Linux かフリーの BSD UNIX 類をどれか入手し、それを自分のマシンにインストールし、動かすことです。

 ええもちろん、UNIX 以外にも世界にはオペレーティングシステムがあります。しかしそれらはバイナリで配布されているので、コードを読んだりいじったりできないんです。DOS や Windows マシンや MacOS でハッキングを学ぼうとするのは、ギプスをつけてダンスを学ぼうとするようなものです。

 そのうえ、UNIX はインターネットのオペレーティングシステムです。UNIX を知らなくてもインターネットの使い方は学べますが、UNIX がわからずにインターネットハッカーになることは出来ません。そういうわけで、現在のハッカー文化はかなり強く UNIX 中心となっています(昔からずっとそうだったわけではありません。だから一部の古参ハッカーは、現状を苦々しく思っています。でも UNIX とインターネットの共存は非常に強く、 マイクロソフトの力をもってしても、それを本気でつぶすのはむずかしいようです)。

 だから UNIX をたちあげなさい――わたしは Linux が好きですが、他の方法もあります(そして、ええ、 Linux と DOS/Windows を同じマシンで走らせることは十分可能です)。UNIX を学びなさい。走らせなさい。いじりたおしなさい。それでインターネットと語りあいなさい。コードを読もう。コードを改変しよう。Microsoft のオペレーティングシステムでは夢見ることもできないほどよく出来たプログラミングツール(C や Lisp や Python、Perl など)が手に入ります。楽しいですよ。そしてあなたがマスターハッカーになってふりかえったら、この時期にどれほどの知識を自分が吸収したかようやく理解できるようになるでしょう。

UNIX の学習についての詳細はThe Loginatakaを参照のこと。

Linux を入手するは、Linux はどこで手に入る?を参照。

BSD Unix ã«é–¢ã™ã‚‹ãƒ˜ãƒ«ãƒ—ã‚„å„ç¨®æƒ…å ±ã«ã¤ã„ã¦ã¯ã€http://www.bsd.org/を参照。

(註:Linux でも BSD ã§ã‚‚ã€ç´ äººã•ã‚“ã¯ä¸€äººã§ã‚¤ãƒ³ã‚¹ãƒˆãƒ¼ãƒ«ã™ã‚‹ã®ã¯æœ¬å½“ã¯ãŠã™ã™ã‚ã—ã¾ã›ã‚“ã€‚Linux なら、手近の Linux ユーザグループを見つけて助けてもらいましょう。あるいはLinux Internet Support Co-Operativeに連絡しましょう。LISC はアドバイスや援助が受けられるようなIRC チャンネルを持っています。)
3. World Wide Web を使う方法を学び、HTML を書きなさい。

ã€€ãƒãƒƒã‚«ãƒ¼æ–‡åŒ–ã®æˆæžœç‰©ã¯ã€ã»ã¨ã‚“ã©ãŒç¸ã®ä¸‹ã§åƒãã‚ˆã†ã«ã¤ãã‚‰ã‚Œã¦ãã¾ã—ãŸã€‚å·¥å ´ã‚„äº‹å‹™æ‰€ã‚„å¤§å­¦ã®é‹å–¶ã‚’åŠ©ã‘ã¤ã¤ã€ãƒãƒƒã‚«ãƒ¼ã§ãªã„äººã€…ã®ç”Ÿæ´»ã«ã¯ã¾ã‚‹ã§ç›´æŽ¥çš„ãªå½±éŸ¿ã‚’ã‚‚ãŸãªã‹ã£ãŸã®ã§ã™ã€‚Web は唯一の大きな例外で、これはハッカーたちの巨大な輝くおもちゃなのに、政治家たちでさえそれが世界を変えているのを認めているのです。このためだけにでも(そしてそれ以外にもましな理由はいくらでもあります)Web の使い方は身につける必要があります。

 これはブラウザの使い方を覚えるだけの話ではありません(そんなのサルでもできます)。Web のマークアップ言語である HTML の書き方を覚えろということです。プログラミング経験がないなら、HTML を書けばプログラミングの勉強に役にたつ精神的な習慣が身に付きます。だから、ホームページをつくることです。

ã€€ã—ã‹ã—ãªãŒã‚‰ãƒ›ãƒ¼ãƒ ãƒšãƒ¼ã‚¸ã‚’æŒã¤ã ã‘ã§ã¯ã€ãƒãƒƒã‚«ãƒ¼ã«ã¯ã¾ã ã¾ã ã»ã©é ã„çŠ¶æ…‹ã§ã—ã‹ã‚ã‚Šã¾ã›ã‚“ã€‚Web はホームページだらけです。そのほとんどは無意味きわまる、まともな中身ゼロのうんこです――見た目は非常にかっこよさげなうんこだったりはしますが、それでもうんこはうんこなのです(詳しくは地獄の HTML ページ (ここにもある) を参照)。

 価値あるものにするには、ページにはまともな中身がなくてはなりません。それは他のハッカーたちにとって興味をひき、そして/あるいは有益なものでなければなりません。
4. まともに英語ができないならば、身につけなさい。

私自身がアメリカ人だし英語が母語なので、これを挙げるのはあまり気乗りがしませんでした。これを言うと文化帝国主義と思われるんじゃないかと思ったからです。しかし英語以外を母語とする数名から、英語はハッカー文化やインターネットでの作業用言語なんだということ、ハッカーコミュニティーで役に立つには英語を知らないとダメだということを指摘するように言われたのです。

これはまったくその通りです。1991 å¹´é ƒã€æ¯èªžãŒä¸€ç·’ã§ã‚‚è‹±èªžã‚’ç¬¬ä¸€å¤–å›½èªžã¨ã—ã¦èº«ã«ç€ã‘ã¦ã„ã‚‹å¤šãã®ãƒãƒƒã‚«ãƒ¼ãŸã¡ã¯ã€æŠ€è¡“çš„ãªè­°è«–ã‚’ã™ã‚‹ã¨ãã«è‹±èªžã‚’ä½¿ã†ã¨ã„ã†ã®ã‚’çŸ¥ã‚Šã¾ã—ãŸã€‚ãã®ã¨ãæ•™ã‚ã£ãŸã®ã¯ã€è‹±èªžã¯æŠ€è¡“ç”¨èªžãŒã»ã‹ã®è¨€èªžã‚ˆã‚Šã‚‚è±Šå¯Œã§ã€ã ã‹ã‚‰è‹±èªžã®ã»ã†ãŒã¨ã«ã‹ãã“ã®ä»•äº‹ã«å‘ã„ã¦ã„ã‚‹ã®ã ã¨ã„ã†ã“ã¨ã§ã™ã€‚åŒæ§˜ãªç†ç”±ã§ã€è‹±èªžã§æ›¸ã‹ã‚ŒãŸæŠ€è¡“æ›¸ã‚’è¨³ã—ãŸå ´åˆã€å¤šãã¯ä¸æº€è¶³ãªå‡ºæ¥ã«ãªã‚Šã¾ã™(そもそも訳されるかどうかもわかりませんし)(訳注:もちろん山形浩生を初めとする一部の日本語訳は例外である。)

 フィンランド人であるリーヌス・トーヴァルズは自分の書くコードのコメントを英語で書きます (どうやら英語以外で書こうなんて考えたこともないようです)。彼の流暢な英語は、Linux ã®é–‹ç™ºè€…ã®ä¸–ç•Œçš„ãªã‚³ãƒŸãƒ¥ãƒ‹ãƒ†ã‚£ã‚’ãƒªã‚¯ãƒ«ãƒ¼ãƒˆã—ã¦ãã‚‹ã«ã‚ãŸã£ã¦ã®ã€ã¨ã£ã¦ã‚‚å¤§äº‹ãªè¦å› ã§ã—ãŸã€‚è¦‹ç¿’ã†ä¾¡å€¤ã®ã‚ã‚‹å…ˆä¾‹ã¨ã„ãˆã¾ã—ã‚‡ã†ã€‚

V. ハッカー文化での地位

ã€€è²¨å¹£çµŒæ¸ˆã‚’ä¼´ã‚ãªã„æ–‡åŒ–ã«ã¯ã‚ˆãè¦‹ã‚‰ã‚Œã‚‹ã“ã¨ã§ã™ãŒã€ãƒãƒƒã‚«ãƒ¼ç¤¾ä¼šã§ã¯åå£°ã§åœ°ä½ãŒæ±ºã¾ã‚Šã¾ã™ã€‚ãŠã‚‚ã—ã‚ã„å•é¡Œã‚’è§£æ±ºã—ã‚ˆã†ã¨ã—ã¦ã„ã¦ã‚‚ã€ãã‚Œã‚‰ãŒã©ã‚Œã»ã©ãŠã‚‚ã—ã‚ãã€ã¾ãŸã€ã‚ãªãŸã®è§£æ±ºæ–¹æ³•ãŒæœ¬å½“ã«ç´ æ™´ã‚‰ã—ã„ã‹ã©ã†ã‹åˆ¤æ–­ã§ãã‚‹åŠ›ãŒã‚ã‚‹ã®ã¯ã€ãµã¤ã†ã¯æŠ€è¡“ä¸Šã®ä»²é–“ã‚„å…ˆè¼©ãŸã¡ã ã‘ãªã®ã§ã™ã€‚

ã€€ã§ã™ã‹ã‚‰ãƒãƒƒã‚«ãƒ¼ã‚²ãƒ¼ãƒ ã«å‚åŠ ã—ãŸã‚‰ã€ä»–ã®ãƒãƒƒã‚«ãƒ¼ãŸã¡ãŒã‚ãªãŸã®æŠ€èƒ½ã‚’ã©ã†æ€ã†ã‹ã§ã‚¹ã‚³ã‚¢ã‚’ã¤ã‘ã‚‹ã“ã¨ã‚’è¦šãˆã¾ã™ï¼ˆã ã‹ã‚‰ã“ãã€ä»–ã®ãƒãƒƒã‚«ãƒ¼ãŸã¡ãŒãŸãˆãšã‚ãªãŸã‚’ãƒãƒƒã‚«ãƒ¼å‘¼ã°ã‚ã‚Šã™ã‚‹ã¾ã§ã€ã‚ãªãŸã¯æœ¬å½“ã®ãƒãƒƒã‚«ãƒ¼ã§ã¯ãªã„ã®ã§ã™ï¼‰ã€‚ãƒãƒƒã‚­ãƒ³ã‚°ã¯å­¤ç‹¬ãªä½œæ¥­ã¨ã„ã†ã‚¤ãƒ¡ãƒ¼ã‚¸ãŒã‚ã‚‹ã®ã§ã€ã“ã®äº‹å®Ÿã¯è¦‹ãˆã«ãããªã£ã¦ã„ã¾ã™ã€‚ã¾ãŸã‚¨ã‚´ã‚„å¤–ã‹ã‚‰ã®è©•ä¾¡ãŒãƒãƒƒã‚«ãƒ¼ã¨ã—ã¦ã®å‹•æ©Ÿã¥ã‘ã«é–¢ä¿‚ã—ã¦ã„ã‚‹ã¨ã„ã†ã“ã¨ã‚’èªã‚ã‚‹ã“ã¨ã«å¯¾ã—ã¦ã€ãƒãƒƒã‚«ãƒ¼æ–‡åŒ–ã«ã¯ã‚¿ãƒ–ãƒ¼ãŒã‚ã‚Šï¼ˆç¾åœ¨ã§ã¯ã—ã ã„ã«å¼±ã¾ã£ã¦ã„ã¾ã™ãŒã¾ã æ ¹å¼·ãã‚ã‚Šã¾ã™ï¼‰ã€ã“ã®ã›ã„ã§è¦‹ãˆã«ãããªã£ã¦ã„ã‚‹é¢ã‚‚ã‚ã‚Šã¾ã™ã€‚

ã€€å…·ä½“çš„ã«ã¯ã€ãƒãƒƒã‚«ãƒ¼ç¤¾ä¼šã¨ã„ã†ã®ã¯äººé¡žå­¦è€…ãŒè¨€ã†ã¨ã“ã‚ã®è´ˆä¸Žã®æ–‡åŒ–ãªã®ã§ã™ã€‚ãã“ã§åœ°ä½ã¨åå£°ã‚’å¾—ã‚‹ã«ã¯ã€ä»–ã®äººã€…ã‚’åŠ›ã§æ”¯é…ã—ãŸã‚Šã€ç¾Žã—ã‹ã£ãŸã‚Šã€ä»–ã®äººã€…ãŒæ¬²ã—ãŒã‚‹ã‚‚ã®ã‚’æŒã£ã¦ã„ãŸã‚Šã—ã¦ã‚‚ã ã‚ã§ã™ã€‚ä½•ã‹ã‚’ã‚ã’ã¦ã—ã¾ã†ã“ã¨ã§ã€åœ°ä½ã¨åå£°ã‚’å¾—ã‚‹ã®ã§ã™ã€‚å…·ä½“çš„ã«ã¯ã€æ™‚é–“ã¨å‰µé€ æ€§ã€ãã—ã¦æŠ€è¡“ã®æˆæžœã‚’ã‚ã’ã¦ã—ã¾ã†ã“ã¨ã§ã€è©•åˆ¤ã‚’å¾—ã‚‹ã®ã§ã™ã€‚

 ハッカーたちから尊敬されるためにできることは、基本的に 5 つあります。
1. オープンソース・ソフトウェアを書く

 まず初めに(最も主要で、もっとも伝統的なことですが)他のハッカーたちが喜ぶ有益なプログラムを書くことです。そしてハッカー文化のみんなが使えるように、そのプログラムのソースをあげてしまうことです。

(むかしはこの種のソフトを「フリーソフト」と呼んでいましたが、「フリー」の意図する意味がよくわかっていない人たちが多すぎて混乱してきました。私たちの多くがいまではオープンソース・ソフトという用語の方を好みます)。

ã€€ãƒãƒƒã‚«ãƒ¼ç¤¾ä¼šã§ã®æœ€ã‚‚ç¥žæ ¼çš„ãªè‹±é›„ã¯ã€å¤§è¦æ¨¡ã§å½¹ã«ç«‹ã¤ãƒ—ãƒ­ã‚°ãƒ©ãƒ ã‚’æ›¸ãã€ãã‚ŒãŒåºƒç¯„ãªãƒ‹ãƒ¼ã‚ºã«å¿œãˆã¦ã„ã¦ã€ã—ã‹ã‚‚ãã‚Œã‚’ç„¡å„Ÿã§ã°ã‚‰ã¾ã„ã¦ãã‚Œã¦ã€ã ã‹ã‚‰ã¿ã‚“ãªãŒã„ã¾ã‚„ãã®äººã®æ›¸ã„ãŸã‚½ãƒ•ãƒˆã‚’ä½¿ã†ã‚ˆã†ã«ãªã£ã¦ã„ã‚‹ã€ãã‚“ãªäººã§ã™ã€‚
2. フリーソフトウェアのテストやデバッグを手伝う

 さらにハッカー社会は、オープンソースのデバッグに立ち上がる人も賞賛します。この世は不完全なので、ソフトウェア開発のほとんどの時間はデバッグに費やされます。だからこそ、物を考えているオープンソース・ソフトの作者たちは、良いベータテスタ(症状を明確に表現できて、問題のある箇所を特定し、急ごしらえのリリースのバグにがまんできて、ある程度の診断テストをしてくれる人)は体重分のルビーにも匹敵する価値があると言うわけです。以上の条件の一つでも満たされていれば、バグ取り作業が際限なく続く悪夢になるか、ちょっとした軽い面倒事程度ですむかの分かれ目になり得るのです。

 あなたが新米なら、興味が持てる開発途中のプログラムを見つけて、よいベータテスタになりなさい。プログラムのテストを助ける段階から、そのデバッグを援助する段階、そしてプログラム自体の改変を援助する段階へと自然に進むでしょう。こうすればたくさんのことを学べるし、あとでいろいろ手助けをしてくれるはずの人々ともよい縁(カルマ)をつくりだす役にもたつはずです。
3. æœ‰ç›Šãªæƒ…å ±ã‚’å…¬é–‹ã™ã‚‹

ã€€ã“ã‚Œã¾ãŸã‚ˆã„ã“ã¨ã¯ã€å½¹ã«ç«‹ã¤ãŠã‚‚ã—ã‚ã„æƒ…å ±ã‚’é›†ã‚ã¦é¸ã‚Šåˆ†ã‘ã€ãã‚Œã‚’Webページにしたり、あるいは FAQ (Frequently Asked Questions lists)のような文書にすることです。そしてそれらを一般公開することです。

 大事な技術 FAQ 類の維持管理者は、オープンソースの作者とほとんど同じくらい尊敬を得られます。
4. インフラが機能し続けるように手伝う

 ハッカー文化(さらに言うとインターネットの技術的開発)はボランティアが運営しています。それを機能させるためには、必要ながら陽の当たらない作業をたくさんやらなくてはならないのです。たとえば、メーリングリストを管理したり、ニュースグループの議長を勤めたり、アーカイブサイトで大きなソフトウェアを維持したり、RFC 類やその他技術的な標準を開発したりするようなことです。

  このような種類の仕事を立派にこなす人々は多大な尊敬を受けます。このような仕事が時間ばかり食って、しかもコードで遊ぶほど楽しくないのをみんな知っていますから。それを引き受けるのは献身ぶりを示すことになるわけです。
5. ハッカー文化そのものへの貢献

 最後に、あなたは文化そのものに貢献しそれを広めることができます(たとえば、ハッカーになる方法についてちゃんとした入門文書を書いたりして :-))ã€‚ã“ã®ã‚ˆã†ãªä»•äº‹ã¯ã€ã‚ãªãŸãŒã„ã‚ã‚“ãªçµŒé¨“ã‚’ã—ã€ãã—ã¦ã“ã‚Œã¾ã§ã®ï¼”é …ç›®ã®ã©ã‚Œã‹ã§åã‚’ã‚ã’ã‚‹ã¾ã§ã¯ã§ãã‚‹ã‚‚ã®ã§ã¯ã‚ã‚Šã¾ã›ã‚“ãŒã€‚

ã€€ãƒãƒƒã‚«ãƒ¼ã®æ–‡åŒ–ã«ã¯ã€ã¯ã£ãã‚Šã—ãŸæŒ‡å°Žè€…ã¯ã„ã¾ã›ã‚“ãŒã€æ–‡åŒ–ãƒ’ãƒ¼ãƒ­ãƒ¼ã‚„éƒ¨æ—ã®é•·è€ã‚„æ­´å²å®¶ã‚„ä¼æ‰¿è€…ãŒã„ã¾ã™ã€‚æˆ¦å ´ã§ãã‚Œãªã‚Šã®æ™‚é–“ã‚’éŽã”ã™ã†ã¡ã«ã€ã‚ãªãŸã‚‚ãã®ä¸€äººã¸ã¨æˆé•·ã™ã‚‹ã‹ã‚‚ã—ã‚Œã¾ã›ã‚“ã€‚ãŸã ã—ã“ã“ã§æ³¨æ„ï¼ã€€ãƒãƒƒã‚«ãƒ¼ã¯ã€éƒ¨æ—ã®é•·è€ãŒã‚¨ã‚´ã‚’ã‚€ãå‡ºã—ã«ã™ã‚‹ã¨ä¿¡ç”¨ã—ã¾ã›ã‚“ã€‚ã ã‹ã‚‰ã“ã®ç¨®ã®åå£°ã‚’ã¯ã£ãã‚Šç›®æŒ‡ã™ã‚ˆã†ãªã¾ã­ã¯å±é™ºã§ã™ã€‚åå£°ã‚’å¾—ã‚ˆã†ã¨åŠªåŠ›ã™ã‚‹ã®ã§ã¯ãªãã€ã†ã¾ãç«‹ã¡å›žã£ã¦ãã®åå£°ãŒè‡ªç„¶ã«ã‚„ã£ã¦ãã‚‹ã‚ˆã†ã«ã—ãªãã¦ã¯ãªã‚Šã¾ã›ã‚“ã€‚ãã—ã¦åå£°ã‚’å¾—ã¦ã‚‚ã€è‡ªåˆ†ã®åœ°ä½ã«ã¤ã„ã¦è¬™è™šã§å¥½æ„çš„ã§ã‚ã‚Šãªã•ã„ã€‚

VI. 「ハッカー」と「おたく Nerd」との関係

 有名な言い伝えがなんと言おうとも、ハッカーになるのに「おたく」である必要なありません。とはいえ、おたくのほうが好都合なのは事実だし、多くのハッカーは確かにおたくです。社会のつまはじき状態のほうが、本当に重要なことに集中しやすいわけです。考えるとかハッキングするとかね。

 このため、多くのハッカーは「おたく」というレッテルを受け入れていますし、もっときつい「geek」という言葉さえ、誇りをこめて使います。それは自分が普通の社会的期待から自由だと宣言する方法の一つなのです。詳しくはThe Geek Pageを見てください。

 上達するほどハッキングに集中できて、しかも一方でまともな社会生活が送れるというのなら、それはそれで結構なこと。これはわたしが新米であった1970 å¹´ä»£é ƒã«æ¯”ã¹ã‚‹ã¨ã€ç¾åœ¨ã§ã¯ãšã£ã¨ç°¡å˜ã§ã™ã€‚ä¸»æµæ–‡åŒ–ã¯ç¾åœ¨ã§ã¯æŠ€è¡“ãŠãŸãã«ãšã£ã¨å¥½æ„çš„ã«ãªã£ã¦ã„ã¾ã™ã‹ã‚‰ã€‚ãƒãƒƒã‚«ãƒ¼ãŒã¨ã¦ã‚‚ç´ æ™´ã‚‰ã—ã„æ‹äººã‚„ä¼´ä¾¶ã«ãªã‚‹ã“ã¨ã ã£ã¦å¤šã„ã¨æ°—ã¥ã„ãŸäººãŸã¡ã¯ã€å®Ÿã¯ã ã‚“ã ã‚“å¢—ãˆã¦ã„ã‚‹ã®ã§ã™ã€‚è©³ã—ãã¯ã€Œå¥³ã®å­ã®ãŸã‚ã®ãŠãŸãã‚¬ã‚¤ãƒ‰ã€ã‚’å‚ç…§ã€‚

 まともな社会生活がおくれないのでハッキングに魅力を感じるなら、それもまた結構――少なくとも、気が散って困るようなことはないわけですから。それにまあ、いずれ社会生活のほうもなんとかなるかもしれないじゃないですか。

VII. ハッカースタイルの要点

 もう一度いいますが、ハッカーになるためにはハッカー精神を身につけなければなりません。コンピュータの前にすわっていない時にもハッカーになるのに役立つことがいくつかあります。以下にあげることは、ハッキングそのものの代わりにはなりません(そんなものはあるわけがない)。でも多くのハッカーは以下のようなことをやっていますし、それがハッキングの真髄に本質的に通じるものがあると感じています。

* SF を読むこと。SF å¤§ä¼šã«å‚åŠ ã™ã‚‹ã“ã¨ï¼ˆãƒãƒƒã‚«ãƒ¼ã‚„ãƒãƒƒã‚«ãƒ¼ã®åµãŸã¡ã«å‡ºä¼šã†ã„ã„æ–¹æ³•ã§ã™ï¼‰ã€‚
* 禅や武道を学ぶこと(その精神面は深いところでハッカー精神と共通しています。)
* 音楽を分析的に聞く耳を鍛えること。一風変わった音楽がわかるようになること。なにか楽器を上手に演奏したり、歌が歌えるようになること。
* だじゃれや言葉あそびへの理解を深めること。
* 母語できちんと文が書けるようになること(わたしが知っている最高の連中を含め、ハッカーの驚くほど多くは物書きとしても有能です)。

 これらのうち、すでにやっていることが多ければ多いほど、あなたのハッカー的資質も高いはずです。なぜよりによってこういう事柄なのかは、まだ完全には明らかではないのですが、いずれも右脳能力と左脳能力の組み合わせという点で結びついています。どうもこれが重要らしいのです(ハッカーは、論理的に理屈づけると同時に、問題の理屈の外へ一瞬で踏み出す能力が必要なのです)。

 最後に、次のようなことはしてはいけません。

* つまらないおおげさな ID やハンドルを使わない。
* Usenet (ã‚ã‚‹ã„ã¯ä»–ã®å ´æ‰€ã§ã‚‚)で、フレームとは関わり合いにならない。
* 「サイバーパンク」を名乗ったりしないこと。そしてそう名乗っているヤツを相手にして時間を無駄にしてもいけません。
* 誤字脱字だらけで文法もでたらめな投稿やメールはしないこと。

 こんなことをしたら、評判を落とすだけです。ハッカーたちは記憶力がいいんですよ。かつての愚行を忘れて受け入れられてもらえるまで、何年も苦労する結果になりかねません。

ã€€ãƒãƒ³ãƒ‰ãƒ«åã«ã¾ã¤ã‚ã‚‹å•é¡Œã«ã¤ã„ã¦ã¯ã€ã‚‚ã†ã¡ã‚‡ã£ã¨è©³ã—ãæ›¸ã„ã¦ãŠãã¾ã—ã‚‡ã†ã‹ã€‚ãƒãƒ³ãƒ‰ãƒ«ã®é™°ã«ã‚¢ã‚¤ãƒ‡ãƒ³ãƒ†ã‚£ãƒ†ã‚£ã‚’éš ã™ã®ã¯ã€ã‚¯ãƒ©ãƒƒã‚«ãƒ¼ã‚„ã€warez d00dz や、他の下等な生の形態に特徴的な、子どもじみた愚かな行動です。ハッカーはこんなことはしません。かれらは自分たちがやることに誇りを持っていて、それに本名で関わろうとします。だからもしあなたがハンドルを持っているのなら、それをお捨てなさい。ハッカー文化において、それはあなたにとって敗者の印にしかならないでしょう。

VIII. その他の関連文書

ポール・グレアムは 偉大なハッカーという文書でいろいろ賢明なことを書いています。

Peter Seebach はハッカーの扱い方がわからない管理職向けのすばらしい Hacker FAQ(邦訳「管理職のためのハッカー FAQ」)を維持しています。

Loginataka は、Unix ハッカーの正しい修行と心構えについていろいろ述べています。

わたしはほかにA Brief History Of Hackerdom(邦訳「ハッカー界小史」)を書いています。

またThe Cathedral and the Bazaar という論文(邦訳「伽藍とバザール」)では、 Linux とオープンソース文化がどのように機能するかについていろいろ説明しています。このテーマについてもっと直接的に扱ったのがThe Homesteading the Noosphere という論文(邦訳「ノウアスフィアの開墾」)です。

Rick Moen は、Linux ユーザグループの運用についてすばらしい文書を書いています。

Rick Moen と私は、賢い質問の仕方という別の文書をいっしょに書きました。これを読めば、助けを求めるときに実際に助けがくる見込みが高まるでしょう。

パーソナルコンピュータやUnixやインターネットがどう機能するかの基礎について説明がいるなら、The Unix and Internet Fundamentals HOWTO.

ソフトウェアをリリースしたり、ソフトのパッチを書いたりするときには、Software Release Practice HOWTO のガイドラインにしたがうようにしましょう。

禅詩が気に入ったら、Rootless Root: The Unix Koans of Master Foo もお気に召すかもしれません。
IX. FAQ
Q: ハッキングの方法を教えてください。

 このページを公開してから、「ハッキングのすべてを教えてください」というお願いが週に数通(しばしば日に数通)も舞いこみます。残念ながら、私にはそれだけの時間もエネルギーもありません。なにせ自分自身のハッキングプロジェクトで、時間の 110% が使い果たされますので。

 たとえわたしにそれだけの時間とエネルギーがあったとしても、ハッキングというのは基本的には自分で身につけなくてはならない姿勢であり、技術なんです。真のハッカーたちはあなたを助けようとしてくれますが、知っていることを何もかも手取り足取り教えこんでくださいなんてお願いしたところで、バカにされるだけです。

 まず何かを2、3でいいから身につけること。自分が努力していて、自分で学ぶ能力があることを示しなさい。それから出会うハッカーたちに質問するように。
Q: それではどうやったら始められるのですか?

 始めるのにベストなのは、おそらくは LUG (Linux user group) ã®ä¼šåˆã«å‚åŠ ã™ã‚‹ã“ã¨ã§ã—ã‚‡ã†ã€‚LDP General Linux Information Page でそうしたグループを見つけることができます。多分あなたの身近なところ、ひょっとしたら大学関連なんかでもあるでしょう。LUG ã®ãƒ¡ãƒ³ãƒãƒ¼ã¯ã€ã‚ãªãŸãŒé ¼ã‚ã° Linux をくれるでしょうし、それをインストールして事を始めるのをきっと助けてくれるでしょう。
Q: いつ始めるべきでしょうか? 私が習得するには遅すぎるでしょうか?

 始めようというやる気になったのなら、何歳であれ適齢です。大抵の人は 15~20 歳で興味を持つようですが、私はその上下ともに例外を知ってます。
Q: ハックを習得するのにどれぐらいかかるのでしょうか?

 あなたの才能と、あなたがどれだけそれに打ち込むかにかかってます。大抵の人は、専心するなら、18 ヶ月から 2 年ぐらいでちゃんとした技術を身につけることができます。けれどもそこで終わりだなんて思わないように。もしあなたが本物のハッカーなら、残りの人生をあなたの技能を修練し、完全なものにすることに使うでしょう。
Q: 手始めに Visual Basic とか C# などの言語を勉強するのはどうでしょうか?

 こういう質問をするってことは、ほぼ確実に MS ウィンドウズの下でハッキングをしようと思ってますね。それがそもそもの大間違いです。ウィンドウズの下でハッキングを学ぶのを、拘束衣を着て踊りを学ぶのに例えたのは、あれは冗談じゃないんですよ。そっちの方にはいきなさんな。ひどいもんだし、どこまでいってもひどいままです。

 Visual Basic ã‚„ C# にはそれぞれ個別に問題があります。その大きなものは、移植性がないことです。こうした言語のオープンソース実装のプロトタイプはありますが、これに関する ECMA è¦æ ¼ã¯ãƒ—ãƒ­ã‚°ãƒ©ãƒŸãƒ³ã‚°ã‚¤ãƒ³ã‚¿ãƒ¼ãƒ•ã‚§ãƒ¼ã‚¹ã®ã”ãä¸€éƒ¨ã—ã‹ã‚«ãƒãƒ¼ã—ã¦ã„ã¾ã›ã‚“ã€‚ã‚¦ã‚£ãƒ³ãƒ‰ã‚¦ã‚ºã§ã¯ã€ã»ã¨ã‚“ã©ã®ãƒ©ã‚¤ãƒ–ãƒ©ãƒªã‚µãƒãƒ¼ãƒˆã¯ã€å˜ä¸€ãƒ™ãƒ³ãƒ€ãƒ¼ï¼ˆãƒžã‚¤ã‚¯ãƒ­ã‚½ãƒ•ãƒˆï¼‰ã®ç‹¬å ã§ã™ã€‚ã©ã®æ©Ÿèƒ½ã‚’ä½¿ã†ã‹ã¨ã¦ã‚‚æ…Žé‡ã«ã—ãªã„ã¨â€•â€•ãã“ã‚‰ã®é§†ã‘å‡ºã—ã«æ‰‹ã«è² ãˆã‚‹ã‚ˆã†ãªæ…Žé‡ã•ã§ã¯ã‚ã‚Šã¾ã›ã‚“â€•â€•ãƒžã‚¤ã‚¯ãƒ­ã‚½ãƒ•ãƒˆãŒæ”¯æŒã—ã¦ãã‚Œã‚‹ãƒ—ãƒ©ãƒƒãƒˆãƒ›ãƒ¼ãƒ ã«å°ã˜è¾¼ã‚ã‚‰ã‚Œã¦ã—ã¾ã„ã¾ã™ã€‚Unix から始めたら、もっとずっといい言語と優れたライブラリが手に入ります。

 特にひどいのが Visual Basic ã§ã™ã€‚ãƒžã‚¤ã‚¯ãƒ­ã‚½ãƒ•ãƒˆã®ç‹¬å è¨€èªžã ã¨ã„ã†ã ã‘ã§ã€ã‚‚ã†ã™ã§ã«å¤±æ ¼ã§ã™ã—ã€ã»ã‹ã® Basic と同じく言語としての設計もまずく、悪いプログラミングの習慣が身についてしまいます。

 こういう悪い習慣の一つは、特定ベンダーのライブラリや開発ツールに依存するようになる、ということです。一般に、最低でも 3 種類のベンダーの OS でサポートされていない言語は、どれでもハッキングにはまずい言語といえます。
Q: システムのクラックを手伝ってください。あるいはクラックの方法を教えてください。

 お断り。この FAQ を読んだ後で未だにこんな質問が口に出せる人間は、教育不能なほどバカに決まってるからです。そもそもわたしににそんな暇があったとしてもね。この手のお願い電子メールがきたら、すべて無視されるか、あるいはすさまじく無礼な返事が戻ることになるでしょう。
Q: 他の人のアカウントのパスワードはどうやったらわかりますか?

それってクラッキング。あっちいけ、バーカ。
Q: 他の人のメールを読んだりモニタしたり入り込んだりするにはどうすればいいの?

それってクラッキング。逝ってよし。
Q: IRC でチャンネル op 特権を盗むのってどうやんの?

それってクラッキング。失せろ。
Q: クラックされてしまいました。更なるアタックを避けるのを手伝ってもらえませんか?

 お断り。これまでこの質問をしてくるのは例外なく Windows を動かしている人です。クラック攻撃に対して Windows のシステムを実際上安全なものにするのは不可能です。コードにもアーキテクチャにも余りにもたくさんの弱点がありますし、底の抜けたボートから水を汲み出そうとするようなものです。唯一確かな防止策が取れるとしたら、Linux か本物のセキュリティを備えた他のオペレーティング・システムに交換することです。
Q: Windows ソフトのことで困っています。助けてもらえますか?

 はい。DOS プロンプトにいって、「format c:」とタイプしましょう。ものの数分で、困っておいでの各種問題は消滅することでしょう。(訳注:これを実際にやってみた人によると、実際には途中でとまってしまうとのこと)
Q: どこで真のハッカーたちと話すことができますか。

 一番よいのは UNIX あるいは Linux ã®ãƒ¦ãƒ¼ã‚¶ãƒ¼ã‚°ãƒ«ãƒ¼ãƒ—ã‚’è¦‹ã¤ã‘ã€ä¼šåˆã«å‚åŠ ã™ã‚‹ã“ã¨ã§ã™(Sunsite の LDP ページ にいくつかユーザグループのリストがあります)。

(むかしは IRC にハッカーなんかいないよ、と言ったものですが、でもこれはかわりつつあるようです。GIMP や Perl なんかのからみでは、どうやら本物のハッカーコミュニティがIRC チャンネルをもっています)。
Q: ハッキングに関連した題目に関して、お勧めの役に立つ書籍はありますか?

 私は Linux Reading List HOWTO を維持してます。これが助けになるかもしれません。The Loginataka も面白いかもしれません。
Q: ハッカーになるには数学が得意じゃないとダメですか?

 いえいえ、ハッキングは形式的な数学や算数はほとんど使いません。具体的には、三角関数だの微積分だの解析だのはふつうは要りません(コンピュータグラフィックスなど一部の限られたアプリケーション分野は例外です)。形式論理やブール代数を多少知っているのはいいことです。有限数学の基礎(有限集合論、組み合わせ数学、グラフ理論)も役に立ちます。

もっと重要なことがあります。数学者がやるのと同じように、論理的に考えて、厳密な理由づけの連鎖をたどれる必要があります。ほとんどの数学の中身は役にたちませんが、数学を扱えるだけの規律と知性は必要です。知性がなければ、ハッカーとしては絶望です。規律が身に付いていなければ、それを育んでおかないとどうしようもありません。

 要求されるだけのものを持ち合わせているか調べるいい方法は、レイモンド・スマリヤンの著書『この本の名は?』を手に取ってみることでしょう。スマリヤンの遊び心たっぷりな論理的パズルは、ハッカー精神に大いに通じるものです。このパズルが解けたら、それはいい兆候です。それを解くのが楽しければ、もっといい兆候でしょう。
Q: 最初にどんな言語を学んだらいいでしょうか。

 あなたがまだ知らないなら、まずは XHTML (HTML の最新の方言) です。けばけばしい、大風呂敷まみれの、ろくでもない HTML 本はいくらもありますが、いい本はげんなりするほど少数です。わたしが勧めるベストは、HTML: The Definitive Guide(邦訳は「HTML」第三版、オライリー)です。

 しかし HTML は十分なプログラミング言語ではありません。プログラミングに手をつける準備ができたら、私は Python から始めることを勧めます。たくさんの人が Perl を勧めるのを聞かれたでしょうし、Perl は今なお Python よりも人気がありますが、習得するのが Python より難しいですし、(私の考えでは)Python ほどうまく設計されてません。ウェブには Python ã‚’åˆ©ç”¨ã™ã‚‹ãƒ—ãƒ­ã‚°ãƒ©ãƒŸãƒ³ã‚°åˆå¿ƒè€…ã®ãŸã‚ã®æƒ…å ±æºãŒå­˜åœ¨ã—ã¾ã™ã€‚

 C はとても重要ですが、でも Python や Perl よりもずっと難しいです。最初に習得しようとするものではありません。

 Windows ユーザの方々、Visual Basic に甘んじてはいけません。悪い習慣を覚えてしまいますし、それは Windows 以外では利用できません。避けなさい。
Q: どんなハードウェアが必要でしょうか?

ã‚€ã‹ã—ã¯ã€ãƒ‘ãƒ¼ã‚½ãƒŠãƒ«ã‚³ãƒ³ãƒ”ãƒ¥ãƒ¼ã‚¿ã¯ã„ã•ã•ã‹éžåŠ›ã§ãƒ¡ãƒ¢ãƒªã‚‚å°‘ãªãã€ãŠã‹ã’ã§ãƒãƒƒã‚«ãƒ¼ã®å­¦ç¿’ãƒ—ãƒ­ã‚»ã‚¹ã«ã‚‚ã€ã©ã†ã—ã‚ˆã†ã‚‚ãªã„åˆ¶é™ãŒåŠ ã‚ã£ã¦ã—ã¾ã„ã¾ã—ãŸã€‚ã§ã‚‚ã“ã‚Œã¯ã€ã—ã°ã‚‰ãå‰ã‹ã‚‰ã‚‚ã†ã‚ã¦ã¯ã¾ã‚‰ãªããªã£ã¦ã„ã¾ã™ã€‚Intel 486DX50 以上を持ったマシンなら、開発作業にも、X にも、インターネット通信にもじゅうぶん耐えるくらい強力ですし、いま買えるいちばん小さなディスクでも、じゅうぶんな容量があります。

マシンを選ぶときにだいじなのは、そのハードで Linuxが走るか (またはあなたの選んだ道次第では BSD が走るか) ということです。これまた、最近のマシンならほとんど大丈夫です。ちょっと問題のある分野は、モデムとプリンタだけです。いくつかのマシンは、 Windows 専用ハードを持っていて、Linux では使えません。

ハードウェア互換性については FAQ があります。最新版は以下にあります;
http://users.bart.nl/~patrickr/hardware-howto/Hardware-HOWTO.html
Q: è²¢çŒ®ã—ãŸã„ã‚“ã§ã™ã‘ã©ã€ã©ã®å•é¡Œã«å‚åŠ ã™ã‚Œã°ã„ã„ã‹é¸ã¶ã®ã‚’åŠ©ã‘ã¦ãã‚Œã¾ã›ã‚“ã‹ï¼Ÿ

 いやです。あなたの能力も関心も知らないんだから。自発的でないと長続きしません。だから人に道を選んでもらうとほとんど確実に失敗するんです。

 こうしたらどうでしょう。Freshmeat ã«æµã‚Œã‚‹ãƒ—ãƒ­ã‚¸ã‚§ã‚¯ãƒˆç™ºè¡¨ã‚’ä½•æ—¥ã‹çœºã‚ã¦ã”ã‚‰ã‚“ãªã•ã„ãªã€‚ãã—ã¦ã€ŒãŠãŠã£ï¼ã€€ã“ã„ã¤ã¯ã‚„ã£ã¦ã¿ãŸã„ãžã€ã¨æ€ã†ã®ãŒã‚ã£ãŸã‚‰ã€ãã‚Œã«å‚åŠ ã™ã‚‹ã‚“ã§ã™ã€‚
Q: マイクロソフトを憎み、非難する必要があるのでしょうか?

 いえ、その必要はありません。マイクロソフトが胸くそ悪くないということはないのですが、マイクロソフトが存在するずっと前からハッカー文化は存在したのですし、マイクロソフトが過去のものになるときも、なおハッカー文化は存在するのです。マイクロソフトを憎むのに費やすエネルギーがあるのなら、あなたの技能を愛ずるのに使った方がいいに違いありません。よいコードを書きなさい――それこそがあなたのカルマを汚すことなく本当に十分にマイクロソフトを叩くことになるのです。
Q: でもオープンソース・ソフトだと、プログラマは食べていけなくなるんじゃないですか?

 そういうことはなさそうです――いまのところ、オープンソース・ソフト産業は仕事をなくすよりは作り出しているようです。あるプログラムが書かれることが、書かれない状態にくらべて便益が増すのであれば、そのプログラムがあとでフリーになろうとなるまいと、プログラマは支払いを受けるでしょう。そして「フリー」ソフトがいくら書かれても、新しいカスタマイズされたソフトの需要はどんどん出てくるようですよ。これについては、オープンソースのページでも書きました。
Q: どこから手をつけたらいいですか。フリーの UNIX をどこで入手できますか。

 このページのあちこちに広く使われているフリー Unix を入手するためのポインタを入れてあります。ハッカーになるには、自分を教育する意欲と自主性と能力が必要です。さあ、それをいますぐ発揮して……

Version $Date: 2000/08/04 01:52:32 $

Eric S. Raymond (esr@snark.thyrsus.com)

原訳謝辞:

日本語訳は Linux-JF ãƒ—ãƒ­ã‚¸ã‚§ã‚¯ãƒˆã®æ¬¡ã®æ–¹ã€…ã‹ã‚‰å¤šãã®ã”åŠ©è¨€ã‚’é ‚ãã¾ã—ãŸã€‚

山崎さん (hiro@koneeko.linux.or.jp)、 岡本さん (ikko-@pacific.rim.or.jp)、 落海さん (ochiumi@ibm.net)、 Hiro Sugawaraさん (hiro@arkusa.com)、 土屋さん (tsuchiya@pine.kuee.kyoto-u.ac.jp)、 花高さん (hanataka@abyss.rim.or.jp)、 é è—¤ã•ã‚“ (hermit@super.win.or.jp)、 かもさん (kamo@math.titech.ac.jp )、 中野さん (nakano@apm.seikei.ac.jp)、 M. Meiarashiさん (mes@st.rim.or.jp)、ありがとうございます。

原訳:中谷千絵 jeanne@mbox.kyoto-inet.or.jp 1997/09/01
改訳:山形浩生 hiyori13@alum.mit.edu + 村川泰 2000/02/21
åŽŸæ–‡åŠ ç­†åˆ†ã®è¿½åŠ ä¿®æ­£ï¼šå±±å½¢æµ©ç”Ÿ hiyori13@alum.mit.edu + Takachin
Takachin

Tidak ada komentar:

Posting Komentar