酔眼漂流読書日記

本と音楽と酒場と言葉

ふつうのLinuxプログラミング Linuxの仕組みから学べるgccプログラミングの王道

仕事本紹介シリーズ(?)第3弾。まあ世間は夏休みも近いですし(謎)。

言語設計者(ヲタク)の心をくすぐる「Rubyを256倍使うための本 無道編」や、「Rubyソースコード完全解説」といった技術的剛速球本の著者である青木氏による、 Linux プログラミング入門(使う言語はもちろん C)です。とはいえこれもまた多くの良書と同様に Linux に限定された話ではなくて、UNIX 系 OS 一般についての格好のプログラミング入門書にもなっています。趣味の人も、もちろん仕事でこれから UNIX 系 OS 上でプログラミングを行おうとする人にも役に立つ本でしょう。
青木氏はこの本のテーマを「ファイルシステム、プロセス、ストリーム」の解説と言い切っています。なるほど、これらをうまく結びつけ操作する方法をまずカラダで理解することができたなら、更に深い UNIX 系プログラミングの世界に進んでいくことは容易でしょう。
基礎的な概念と周辺の話題を具体例とともに示し、最後はその集大成として簡単なウェブサーバーの設計と実装を示しています。数日前にご紹介した「dRubyによる分散・Webプログラミング」と同様に、是非手を動かしながら読んでいただきたい本です。
ただこの本は「C言語入門」ではありませんので、C言語そのものの基礎的な知識は必要です。著者によれば以下のような知識レベルを想定しているそうです

  • C言語の入門書は読んでいて、構造体とポインタ位はわかる
  • Linux でエディタが使える(エディタの種類は問わない)
  • Linuxコマンドラインを使ったことがあり、cd, ls, cat, less などの基本コマンドは知っている

かつて名著「UNIXプログラミング環境 (海外ブックス)」が出版された際には、今のような UNIX 的環境が世間に溢れていたわけではありませんでしたので、その存在は一部の人たちだけに知られていただけでした*1。現在のように Linuxgcc により、文字通り誰でも UNIX 系プログラミングに挑戦できる今こそ多くの人に読んで欲しい入門書です。

*1:更にそれ以前、私が最初に UNIX を使い仕事をしていたときには、アプリケーションのソースコードとオンラインマニュアル位しか頼りになるものはありませんでしたが