「100人のプロが選んだソフトウェア開発の名著」に寄稿させていただきました。
100人のプロが選んだソフトウェア開発の名著に寄稿させていただきました。
デブサミで先行発売されるそうです。しかも割引ありとのことなのでデブサミに行ける方は、現地で購入されるのがよろしいかと。またこの本の中で紹介されている書籍も、デブサミで販売されるそうです。
blogでも、取り上げてくださいとのことなので私の原稿を公開します。
「コンピュータの気持ちが分かりますか?」
ruimoがコンピュータを仕事としたい新卒の人に贈りたい1冊
30日でできる! OS自作入門
川合秀実 著
毎日コミュニケーションズ, 2006年
コンピュータの調子が悪いので見てくれと言われて調べていると、まわりの人達が突然笑い出しました。その時私は、コンピュータ本体に耳をあて、じっと音を聞いていたのです。コンピュータが発する音を聞いて診断するというのが、エスパーか何かのように見えたのでしょう。しかし、これはトリックでもハッタリでもなく、割と有効な診断方法なのです。HDDの音を聞けば、シリンドルモータが回っているのか、エラーリトライしていないか、軸受が劣化していないかが分かりますし、冷却ファンの音を聞けば、ちゃんと冷却できているのかが分かります。そして無音状態のコンピュータのスピーカの音からは、CPUの動作状況が良く分かります。嘘だと思ったらヘッドフォンを付け、ボリュームを上げた状態でCPUに負荷のかかる作業をしてみてください。特徴的なノイズの音が様々に変化し、慣れれば愛機のCPU使用率がだいたい判断できるようになるはずです。CPUや周辺回路の出すノイズがオーディオ回路に入り込んで聞こえるため、そうした回路の動作状況が音から判断できるのです。
私がコンピュータを始めた頃は、パソコン(当時はマイコンと呼ばれていました)一式揃えると100万近くかかり、よほど裕福な人以外は自分でパーツを買ってきて回路を設計し、半田付けして作るのが当たり前でした。初めて作ったコンピュータはメモリが256バイト(256Mでも256Kでもありませんよ!)で、バスリクエストという機構を使ってCPUを停止状態にし、2進数でメモリに命令を書き込んでから、停止を解除して計算を実行。終わってからまた停止してメモリの内容を確認するという感じでした。
会社に入ったのはDOS/Vが日本で流行りだした、16bit全盛の時代です。この頃はDMAとか、割り込み、メモリといったものを意識して構成ファイルを書く必要があり、否が応にもハードウェアのことを少なからず意識 しなければなりませんでした。その後OSはどんどん高度化され、今BIOSが無くなろうとしています。必要とされるハードウェアの知識は今後もどんどん減っていくでしょう。コモディティ化の中では避けられないことですし、大部分の人にとっては好ましいことでしょう。
仕事で、特に障害の解析をしていると「なんでそんなことが分かったんですか?」と聞かれることがあります。こういう場合、聞かれた本人でも、あらためて「なぜ」と聞かれると良く分からなかったりします。しかし最近、原始的なハードウェアやOSをいじっていた頃の知識が少なからず役に立っていることが分かってきました。例えばハードウェアを設計する時はタイミングチャートを書き、信号がぶつかったりしないか何度も検証しますが、これはマルチスレッドプログラミングの設計に通じるところがあります。DOSのようなメモリ保護のないOSの下で、プログラムが暴走(OSも含めてコンピュータのメモリ内容を破壊してしまう現象)して原因がなかなか分からず苦労した経験があれば、Cのような「危険と隣り合わせの」言語を使う時に細心の注意を払うようになります。
パソコンの進歩は、低レベルの動作を学ぶ機会を奪いました。これは不幸なことかもしれません。今回挙げたのは、OSを1から作る本です。フロッピーディスクを使って16bitのリアルモードでブートローダを書くところから始まり(フロッピーディスクを知らない若い人がいたりして戦慄を覚えますが、実際入手は困難なので、この本の内容を実際に試すのに残された時間は長くありません)、最終的にはマルチタスクの可能なOSを書き上げてしまいます。この本を読んで試してみれば、きっとこれまでよりも「コンピュータの気持ち」が分かるようになるはずです。
もう1つハードウェア寄りの実践知識を手に入れる方法をご紹介しておきましょう。秋月電子は私が秋葉原の中でもっとも好きなお店の1つですが、ここには様々な組み込み用のマイコンが売られています。最近は非常に敷居が下がったので10k円くらいあれば一式揃います。これを使ってアセンブラ、割込を使ったプログラミングを経験してみてください。色々と得るものがあるはずです。





