ハッカーになるために 原題 How To Become A Hacker 著者 Eric S. Raymond esr@snark.thyrsus.com Date: 1997/08/05 03:37:08 日本語訳 中谷千絵 jeanne@mbox.kyoto-inet.or.jp 1997/08/26(v 1.11 1997/06/09 15:45:06) 1997/09/01( Date: 1997/08/05 03:37:08) ハッカーになるために この文書を書いた理由 私は Jargon File の編集者で すから、しばしば熱狂的なネットワーク初心者から "優れたハッカー(訳注)に なるにはどのように学んだらいいか" (要するにそれぞれのメールの具体的な 質問を要約するとこのようなことです)というお尋ねメールを頂きます。この ような頼もしい質問に対応できる FAQ や Web 文書 は不思議にみあたりませ ん。それで私がこの文書を書きました。 この文書をオフラインで読んでいるなら、最新版は次のところにあります。 href="http://www.ccil.org/~esr/faqs/hacker-howto.html 訳注:参考に。原文では a wizard hacker となっており、wizard とは「魔法 使い」の意味ですが、 a wizard hacker はより詳しい知識をもった卓越した ハッカーであり、たとえば UNIX Wizard (Unix ウィザード)というのは優れた Unix 専門家の意味で使われます。 ハッカーとは何か Jargon File には `ハッカー hacker' という言葉について、ほとんどは技術的な熟達者になること、そして 問題を解くことや限界を克服することを楽しみとする者というような一連の定 義が収録されています。あなたがハッカーになる方法を知りたいなら、2つだ けが実際に関係します。 熟達したプログラマやネットワークの天才たちからなる、文化を共有した コミュニティがあります。その歴史は初期のタイム・シェアリング・ミニコン ピュータや黎明期の ARPAnet の経験にまで遡ることができます。このような 文化を担ってきた者たちが `ハッカー hacker' という言葉を造語しました。 ハッカーたちがインターネットを築きあげました。ハッカーたちが今日のUNIX オペレーティングシステムを作りました。ハッカーたちが Usenet を動かし、 World Wide Web を作っているのです。 あなたがこのような文化に参加し貢献 し、その世界の住人で、あなたをハッカーと呼ぶ人がいるなら、あなたはハッ カーなのです。 注:ARPAnet ARPA ネットワークとは国防省の ARPA の研究委託を受けた大学 や政府研究機関を政府関係の研究で相互に情報を交換するために構築されたも ので、インターネットの技術的基盤になった。RFC 991 ハッカー精神の根底にあるのはこのようなソフトウェアハッカーの文化に は限りません。ハッカー的態度をエレクトロニクスや音楽のような他のことに 応用する人たちもいます。実際にどのような理科系科学や人文系や文科芸術系 の分野でも非常に高度なレベルで"ハッカー"を見つけることもできます。ソフ トウェアのハッカーたちは同類の態度はどこにでもあることを認めており、そ れらもまた"ハッカー hackers" と呼ばれるでしょう。さらにハッカー的な特 質というのは本当は個々の環境に依存しないものだという人もいます。しかし この文書ではこれから、ソフトウェアハッカーの技術と態度、そして`ハッカー hacker' という言葉を生み出した文化を共有する伝統について話の焦点をあわ せましょう。 自分自身をハッカーと声高に呼ぶ別の集団が存在しますが、彼らはハッカー ではありません。彼らはコンピュータを破壊するような攻撃をしかけ、電話シ ステムをフリーキング(あるいは cracking。 セキュリティ破りのような行為) する人々(主に青年男性たち)です。本物のハッカーはこのような人々を `クラッ カー crackers' と呼び、彼らと一緒に何かをやりたいとは思っていません。 本物のハッカーたちはたいてい、クラッカーというのはだらしない人間で、無 責任で賢くないと思っています。車の点火回路をいじれるようになっても車を 扱うエンジニアにはなれないのと同様、セキュリティ破りを目論んでもハッカー にはなれません。残念なことに、多くのジャーナリストや著述家たちはクラッ カーについて書くために `ハッカー hacker'という言葉を誤用し、使い続けてき ました。この事実は、いつまでも真のハッカーたちにとって悩みの種となって いるのです。 基本的な違いはここにあります。すなわち、ハッカーは物事を築きあげます が、クラッカーは破壊するのです。 注:phreaking セキュリティ破りのような行為「ハッカーズ大辞典」(アスキー 出版)を参照。 ハッカーになりたいならこの文書を読み続けなさい。クラッカーになりたい なら、alt.2600 ニュースグループを読むことです。そして、もしあなたが考 えているほど頭がよくないことがわかったなら、5年や10年、刑務所で暮ら す覚悟をしなくてはいけません。クラッカーについてこれ以上言うことはあり ません。 ハッカーらしい態度を身につけるために ハッカーは問題を解決し、物事を築きあげます。そして、彼らは自由で自発 的な相互援助を信条としています。ハッカーとして受け入れられるようになる には、自らこのような態度を持つように行動しなければなりません。そしてあ なたがその態度を持ってふるまうには、本当にその態度を信奉するようにしな ければいけません。 ハッカー文化に受け入れられようとして、ハッカーらしい態度を身につける ようと考えているなら、あなたは勘違いをしています。ハッカーの態度を信奉 するような人になることが、学ぶ助けになり、動機となったことを持ち続ける ために大切なことなのです。すべての創造的な芸術と同様、熟達者になる効果 的な方法は 熟達者の精神状態をまねすることです。知識だけでなく感情的な 面も同様です。 ハッカーになりたいなら、それらを信条にするようになるまで次に述べること を繰り返して行いなさい。 1. この世界は解決を待っている魅力的な問題でいっぱいだ ハッカーであることはとてもおもしろいものですが、その楽しみには大変な 努力が必要です。努力するには刺激が必要です。よい成績をあげるスポーツマ ンは、自分の肉体的限界を越えて鍛えることで自分の体を作り上げる肉体的な 喜びで動機づけされます。同様に、ハッカーになるためには自分の技術をみが き、知性を働かす訓練して、問題を解決することにゾクゾクするような喜びを 感じるようでなければいけません。 あなたが自然にこのように感じるような人でないなら、ハッカーになるには そのような人にならなくてはいけません。さもないとハッキングへの意欲 はセックスやお金や社会的な名声のようなつまらないことに惑わされてしまう でしょうから。 自分の学習能力は無限なんだということを信頼するようにならなくてはいけ ません。たとえ今の段階では大きな問題を解決するために必要なことすべてを 知らなくても、その問題のほんの一部から取り組んで、そこから新しい事を学 び取り、その経験をもとに次へ次へと進んで行けば、次の部分に取り組むのに 十分なだけ学ぶことができるでしょう。そのように段階的に学んでいけば最後 には大きな問題全体をも解決できるという信念を築いてください。 2. 同じ問題を二度解くような無駄を避けなさい クリエイティブな人材というのは貴重な限られた資源です。いまそこにたく さんの魅力ある新しい問題が解決を待っている時に、車輪をもう一度発明する ような無駄なことをしてはいけません。 ハッカーらしく行動するために、あなたは他のハッカーたちが物事を考える 時間は貴重であることを知っていなければなりません。つまり、情報を共有す ることはほとんど道徳的な義務であると言ってもいいのです。問題を解決し、 その解答を提供すれば、他のハッカーたちは古いものを引続き繰り返して扱わ なくても新しい問題を解決できるのです。 (あなたがハッカーであっても、自分で作ったものをすべて無償で提供してし まう義務があると思いこむ必要はありません。そのように行うハッカーという のは、他のハッカーたちから最高の尊敬を受けるでしょう。食費と家賃とコン ピュータ代を維持するのに必要なだけ自分の作品を売り込むことはハッカーの 価値観と矛盾しません。ハッキングしている間、自分がハッカーであることを 忘れない限り、家族を支えるために、あるいは贅沢を得るためであっても、ハッ キングの技術を使うことはハッカーの価値観と矛盾しません。) 3. 退屈と単純作業は悪 ハッカーたち(そして一般的にクリエイティブな人たち)は決して退屈で反復 の多い仕事にこつこつ精を出すようなことをしません。なぜならそういうこと をしている時は彼らが出来ること、すなわち、新しい問題を解決するというこ とをしていないことになるからです。このような無駄はすべての人にとっても 害になります。ゆえに退屈と単純作業は喜びにならないばかりか実際には悪な のです。 ハッカーらしくふるまうために、自分自身のためばかりでなく他のハッカー の誰にとっても(とりわけ他のハッカーたち)、可能な限りたくさん退屈なこと は自動化してしまってう方がいいのだという信条を持たなければなりません。 (これにははっきりひとつの例外があります。ハッカーたちは時々気持ちの切 替えのために、あるいは技術を習得するため、また人が出来ない特別な経験を するために退屈に見えるようなことをします。しかしこれは好んでするのです。 つまり、考えることができるような人なら、決して退屈を押しつけられるよう なことはありません。) 4. 自由は善 そもそもハッカーたちは反権威主義です。あなたに命令できる人は誰でも、 あなたが興味を持っているどんな問題も解決するのを止めさせることができま す。そして権威主義者の考えを押しつけてくるので、そうなると、そういうこ とには普通あきれるほどのくだらない理由がいろいろあるのがわかるでしょう。 そこで権威主義的態度を見つけた時はいつでも戦わないといけないのです。そ うしないとあなたや他のハッカーたちを窒息させてしまいます。 (このようなことはすべての権威と戦うことと同じではありません。子どもは 導かれる必要があるし、犯罪人は拘束されなければなりません。ハッカーは彼 が命令に従うことに時間を費やすよりも彼が望む何かを手にいれるために、あ る種の権威を承諾することもあるでしょう。しかし、それには制限付きのこと で、つまり意識した値切りです。権威主義者が望む個人的な放棄の類は提供し ていることにはなりません。 権威主義者は検閲と秘密厳守について幅をきかせます。さらに彼らは自発的 な援助や情報を共有することを怪しむのです。彼らは自分たちが管理できる提 携協力だけを好みます。そこでハッカーらしく行動するために、あなたは検 閲や秘密厳守、そして責任ある大人を強要するような圧力や惑わしを使われる ことに対して、本能的に戦いを挑まなくてはなりません。さらにあなたは信念 に基づいて行動するようにしなければなりません。 5. 態度は能力の代用にはならない ハッカーになるために、あなたは多少ともこのような態度を育てなければな りません。しかしスポーツのチャンピオンやロックのスターになることと同様 に、態度だけをまねてハッカーになれるわけではありません。ハッカーになる には知性、実行力、献身に加えて厳しい仕事が必要です。 ですから、あなたは疑問を持つ態度を学び、すべての種類の能力を重視しな ければなりません。ハッカーは自分の時間を無駄にさせられるのを望まないば かりでなく、能力、とりわけハッキング能力を崇拝しますが、すべての能力は 善です。あることをマスターする技術を求める能力はとりわけ善であり、精神 的に強いこと、技術や集中力を含む技術を求める能力はベストです。 能力をあがめるならば、自分でそれをみがくことを楽めるでしょう。つまり、 苦しい仕事や献身(熱中できる遊び)は、単調な骨折り仕事であるよりもむしろ もっと強烈な遊びといった種類のものになるでしょう。そうならばそれがハッ カーになる力なのです。 基本的なハッキング技術 ハッカーの態度は力強いものですが、技術はなおいっそう力強いのです。態 度だけでは能力の補いにはなりません。さらにハッカーの誰かからあなたにお 呼びがかかるのを夢を見る前に、あらかじめ身につけておかなくてはいけない ある程度の基本的な技術の用具一式があります。 この用具一式は科学技術が最新の技術を開発し旧式の技術をすたらせるので、 時代を越えて徐々に変化します。たとえば、かつてはマシン語によるプログラ ミングが含まれていました。また最近になるまで HTML は含まれていませんで した。しかし、1996 年の末には明らかに次のようなものを含めています。 1. プログラムの学び方 当然のことながら、これがハッキング技術の基本です。1997 年にあなたが ぜひ学ばねばならないひとつの言語は C です。しかしあなたがひとつの言語 を知っているだけだとしても、あなたはハッカーではないか、プログラマです らないかもしれません。あなたは一般的な方法、つまりあるひとつの言語に依 存せずプログラミングの問題について考えるために学ぶ必要があります。真の のハッカーになるために、すでに知っていることすべてに対するマニュアルと 関連づけて、あなたは新しい言語を学ぶ足場を得る必要があります。あなたは いくつかの違った言語を学ぶべきだということです。 C のほかにも、さらに少なくとも LISP と Perl ( そして Java はリストに あげるもののなかで特にお勧めします)を学ぶべきです。もっとも重要な言語 に挑戦するだけでなく、それぞれにはプログラミングのために違ったアプロー チ法があり、そしてすべてのものは有益にあなたを訓練します。 ここで私はプログラムを学ぶ方法について完全な説明をすることは出来ませ ん。複雑な要素がある技術ですから。しかし、書籍や講習会のコースでは学 べないことがあります(たぶん、多くの、ほとんどのハッカーたちはコードを 読むことやコードを書くことを自分で学ぶでしょう。)。役に立つのは、コー ドを読みそしてコードを書くことです。 プログラムを学ぶということは、よい自然な言語を書くのを学ぶようなも のです。学ぶのにもっともよい方法はフォームをマスターした者によって書か れたものを読むことです。自分で何かを書く、もっとたくさん読む、少し書く、 もっとたくさん読む、もっと何かを書く......そしてあなたの書くものが、手 本で理解できた長所を取り入れ無駄がはぶかれた美しいものに進展しはじめる まで繰り返しなさい。 以前は読むためのよいコードを見つけることは難しいことでした。なぜなら 駆け出しのハッカーが読んだり、いじくりまわすのに向いているようなソース で入手できる大規模なプログラムなどほとんどありませんでしたから。しかし このような状況は劇的に変化しています;フリーソフトウェア、フリーのプロ グラムツール類、そしてフリーのオペレーティングシステム類は(すべてはソー スで利用できますし、すべてはハッカーによって作られています)、現在では 広く利用できます。それらは我々の次の話題へと適切に私を導きます。 2. フリーの UNIX 類のひとつを入手し、使うことを学び、 そしてそれを動かしなさい。 あなたは自分のコンピュータを持っているか、1台のコンピュータにアクセ ス出来る(現在、子どもたちがコンピュータを持つのはとっても簡単なことで すから)と仮定しています。新米さんがハッカー技術を習得する方向に向かう ひとつの最も重要な段階は Linux のコピーか、フリーの BSD UNIX 類のひと つを入手し、それを自分のマシンにインストールし、それを動かすことです。 もちろん、UNIX の他にも世界にはその他のオペレーティングシステムがあ ります。しかしそれらはバイナリーで配布されているので、あなたはコードを 読むことも改変することもできません。DOS や Windows マシン、あるいは MacOS でハックすることを学ぼうとするのは、体にギプスをつけてダンスを学 ぼうとするようなものです。 そのうえ、UNIX はインターネットのオペレーティングシステムです。UNIX を知らなくてもインターネットを使うのを学ぶことができますが、それを理解 しないでインターネットハッカーになることは出来ません。このようなわけで、 現在ハッカー文化は見事に強烈に UNIX に集中しています。(これはいつも正 確なことではありませんでした。過去のある時期ハッカーたちは UNIX に関し て幸福ではありませんでしたが、UNIX とインターネットの共存は Microsoft の力は UNIX を本気で打ちのめすことができるようには思えないほど十分にた くましく成長しています。) さて、UNIX を登場させましょう。私は Linux が好きですが他の方法もあり ます。UNIX を学びなさい。UNIX ををいじくりまわしなさい。それでインター ネットと語りあいなさい。コードを読もう。コードを改変しよう。あなたは Microsoft のオペレーティングシステムが夢見るどんなあこがれよりも、よく 出来たプログラミングツール(C や Lisp そして Perl を含む)を入手するでしょ う。楽しみなさい、そしてあなたがマスターハッカーになってこの時期のこと をふりかえるまで、あなたが学んでいることを理解するよりもっとたくさんの 知識を吸収するでしょう。 UNIX を学ぶことについての詳細は次のところを見てください。 HREF="http://www.ccil.org/~esr/faqs/loginataka.html">The Loginataka.Linux を自分で入手するためには、Linux の配布ディレクトリを見るか、 Sunsite で Linux の CD サービス品を見てください。 3. World Wide Web を使う方法を学び、HTML を書きなさい ハッカー文化のほとんどのものは表には見えないところでの彼らの働きで築 かれてきました。つまりハッカーでない人々の生活には直接的にどんな影響も 与えないで、彼らは工場や事務所や大学での管理を陰で援助してきたのです。 Web はひとつの大きな例外で、政治家たちでさえそれが世界を変えているのを 認めているとほうもなく大きな輝くハッカーのおもちゃなのです。このような 理由からだけでも(そしてたくさんのその他のよいものも同様に)あなたは Web を使う方法を学ぶ必要があります。 これはブラウザをどのように動かすかを学ぶということを言っているのでは ありません(そんなことは誰でもできることです)、Web を作りあげる言語であ る HTML をどのように書くかを学ぶということです。プログラムが書けないな ら、HTML を書くことは学ぶことを助け、精神的な面でプログラマーの習性を 習うことになるでしょう。そのためにホームページを組み立てなさい。 しかしながら本当のところは、ホームページを持つというのはあなたをハッ カーにするのに十分適切な場所ではありません。Web はたくさんのホームペー ジで満ちています。ほとんどのものはポインターがなかったり、内容がない ゴミであったり、ちょっとよく見えるものもありますが、ゴミはみな同じです から気をつけなさい。(もっと詳しいことについてはここを見てください。) The HTML Hell Page).
価値のあるものにするために、あなたのページは目次 content がなくては なりません。それは他のハッカーたちにとって興味をひき(もしくは)有益にな るものでなければなりません。そして次の話題へとわれわれをひっぱって行く ものでなければなりません。 ハッカー文化での地位 貨幣経済を伴わない文化にはよく見られることですが、ハッカーたちの国 では名声で地位が決まります。あなたが興味ある問題を解決しようと試みてい ても、それらがどれほど興味深いものなのか、また、あなたの解決が本当に素 晴らしいものであるかどうかということは、あなたの技術的な仲間や先輩たち だけが正当な判定を下すことができるものなのです。 ですからあなたがハッカーゲームをする時は、他のハッカーたちがあなたの 技術をどう考えるかによっての評価点を維持することをまず学びなさい。(こ れが、他のハッカーたちが一致してあなたに声をかけるまで、あなたがなぜ本 当にハッカーではないかという理由です。)ハッキングを孤独な仕事としてイ メージすることでこの真相がわかりにくくなります。また自尊心や人から認め られることはすべて人の動機づけに必要であると認めているのに、ハッカー文 化をタブーにすることによってもあいまいになってしまいます(現在ではしだ いに弱まっていますがまだ根強くあります)。 具体的に言うと、ハッカーの国というのは、人類学者がいわゆる供与の文化 だと呼んでいるということです。あなたはそこで他の人々を力で支配するので も、美しくあることによってでもなく、また他の人々が欲しいものを持ってい るというようなことによってではなく、何かを提供することによって、名声や 評判を得るのです。とりわけ、時間やあなたの創造性、そして技術の成果を提 供することで、評判を得るのです。 ハッカーたちから尊重されるためにあなたができる5つの基本的な事柄があり ます。 1. フリーソフトウェアを書く まず初めに(最も主要なことで、もっとも伝統的なことですが )他のハッカー たちが喜ぶ有益なプログラムを書くことです。そしてハッカー文化全体で使用 されるようなプログラムソースを提供することです。 ハッカーの国での最も神格的な英雄は、広範囲のニーズに合った無償の、そ して規模の大きい有用なプログラムを書く人です。そうすれば誰もがそのよう なプログラムを使用します。 2. フリーソフトウェアのテストやデバッグを援助する さらにハッカーから尊重されるような人というのはフリーソフトに立ち向か いデバッグにも貢献します。このような不完全な世界では、ソフトウェア開発 の大部分の時間をデバッグで費やすのです。こういうことがありますから、物 事を考えるフリーソフトウェアの著者たちは、良いベータ版テスター(症状を 適切に指摘し、問題のある箇所を探しだし、急ごしらえのリリース版にはバグ があることを承知できる人であり、ある程度の診断テストをしてくれる人)と いうのはルビーの重さに匹敵する価値があると言うわけです。このような作業 のひとつでさえも、際限なく続く悪夢にうなされる作業になるか、あるいはちょっ とした軽い面倒事程度の仕事になるかの分かれ目になり得るのです あなたが新米なら、興味が持てる開発途中のプログラムを見つけて、よいベー タ版テスターになりなさい。テストプログラマを援助する段階、それらのデバッ グを援助する段階、そしてそれらの改変を援助することへというように自然に 進むでしょう。あなたはこの方面でたくさんのことを学ぶでしょう。そしてあ とに続く人たちによい手本になるでしょう。 3. 有益な情報を公開する もうひとつ別のよいことは Web ページの興味ある情報や FAQ (Frequently Asked Questionslists)のような文書を収集し厳選することです。そしてそれ らを多くの人が利用できるようにすることです。 多くの技術的な FAQ 類の維持に当たることはフリーソフトウェアの著者と 同じくらいの尊敬を得ることです。 4. 基礎の仕事の維持を援助する ハッカー文化(さらに言うとインターネットの技術的開発)はボランティアに よってなされています。多くの必要があるので維持管理をしなくてはいけない 仕事、たとえば、メーリングリストを管理したり、ニュースグループの議長を 勤めたり、アーカイブサイトで大きなソフトウェアを維持したり、RFC 類やそ の他技術的な基準化を開発したりするようなことはあまり魅力的ではありませ ん。 このような種類の仕事をする人々は多大な尊敬を受けるでしょう。なぜな らすべての人はこのような仕事にはとほうもない時間を失い、コードで遊ぶこ とほどおもしろいことではないのを知っていますから。彼らに感謝しましょう。 5. ハッカー文化そのものへの貢献 最後に、あなたは文化それそのものに貢献しそれを広めることができます (たとえば、ハッカーになる方法についてちゃんとした入門書を書くというよ うなことによっても貢献できるのです)。このような仕事は、あなたがいろん な経験をし、そして最初の4項目のひとつについてよくわかるようになるまで は、やらなくてはいけないというようなものではありませんが。 まさしくハッカーの文化には指導者はいませんが英雄やその種族の歴史があ り、伝承者がいます。あなたが長い時間塹壕で過ごしてきたなら、みはりのひ とりくらいには成長するかもしれません。ハッカーたちは彼らの種族の長のう ぬぼれには疑いを持ってきたので、このような名声のようなものが目に見える ようになるのは危険なのです。注意しなさい。名声を得るような努力をするく らいなら、あなた自身の地位を手に入れなければなりません。そうすれば思い 通りになりますから、そうなったら、自分がいる地位について謙虚で好意的で ありなさい。 「ハッカー」と「おたく Nerd」との関係 有名な神話とは反対に、ハッカーになろうとして「おたく」になってはい けません。役に立つことをしますが、多くのハッカーたちは実際には 「おた く」です。社会的に追放状態にあることは、あなたが考えることやハッキング というような本当に重要なことに集中するのを助けます。 そのために、多くのハッカーたちは `nerd' という名前を受け入れていますし、 より耳障りな `geek' という言葉さえ誇りの勲章として使います。それは普通 の社会的期待からの自立を宣言するような道なのです。多くの議論については 次のところを見てください。 The Geek Page よりいいものにするためにハッキングに十分集中できるなら、そしてさらに そういう生きがいを持てるなら、それは素晴らしいことです。これは私が新米 であった頃より現在ではより容易なことです。主流の文化は現在では技術おた くにもっと好意的です。ハッカーがしばしばとても素晴らしいボーイフレンド でありガールフレンドであり、夫であり妻であると認める人はしだいに増えて さえきています。 この件についてのもっと詳しいことは次のところを見てください。 Girl's Guide to Geek Guys 生きがいがないからハッキングに魅力を感じるなら、それもまた了解です。 少なくともあなたはトラブルには巻き込まれるのを望まないでしょうが、後日 そうなるかもしれませんが。 ハッカースタイルの要点 もう一度いいますが、ハッカーになるためにはハッカーらしい思考方法を身 につけなければなりません。コンピュータの前に座っていない時にもハッカー になるためにできることがいくつかあります。次のようなことはハッキングの 代わりにはなりませんが(何事も)、多くのハッカーがそうしていますし、ハッ キングの真髄に本質的に通じるものがあると思います。