60分間ハッキング

その昔、まだインターネットが一般的でない時代、そふとうぇあえんじに屋の僕は、仕事のあいまのお昼休みにGNU's Not Unixの部分をポーティングをして遊んでいた。

そもそもは、学生の頃アメリカでRichard M.StallmanがFree Software Foundationを設立し、コンピュータソフトウェアをソースコード付で、改変する自由をつけて配布するというプロジェクトを立ち上げたのを知った。学生であった時に、やはりライセンスの問題で見れないソースコードがあったりし、非常に不便な思いをした。

さて、お昼休みの60分間ハッキング。昼食には片手で食べられるパンを買ってきて、かじりながらプログラムの分析を。何をするかというと、bashをサポートされていないOS上で、CPU依存部、OS依存部を明確にして、テンプレートファイルやら、configure周りに修正を入れつつmakeをかける。この当時のbashはautoconfなんて使ってなかったので結構強引な手を使った。取り敢えずコンパイルが通るようにする。オリジナルとの差分を確認する。実際に自分がテスタになって使う。更に修正したソースや、configure周りを整理する。落ちたら、coreの検死。再度分析、修正、コンパイル、テスト。bashが終わったらfileutilやら、emacsやらいろいろ。お陰でソースコードを読む・分析する能力は身についたかと思う。BSDのlibcなんかもいい教材になる。

気が着くと、gcc, gdb, clisp等の超大物以外、ディスクがある分だけやってみていた。あとは興味本位で、NCSA httpd(現行 Apacheの前身ともいえるか?)やらCERN httpdもやって勝手にWWWサーバを立ち上げて遊んでた。その後は、インターネットプロバイダが登場する時代にCSLIPやらPPPのコードを弄って遊んでました。はじめは大して知らなくても、暫くやってればディープな世界まで飛べます :-p

あ、そうそうハッキングという言葉。これは「システムに侵入・破壊」することでなく、本来は「非常に優れた悪戯(害のない!)」やら「ソフトウェアに関するイカシた作業」を称える言葉であり、MITで生まれたものとされている。場合によっては、「やっつけ仕事」にも使われるメタな部分を持っている。ハッカーハッカーが作ったものを排除するとインターネットに繋がらなくなります。なんでか?というとインターネットに繋がる為のソフトウェアの基礎や仕様はハッカーが作ったからですし、まだ作り続けていたりします。