ふつうのLinuxプログラミング

「ふつうのLinuxプログラミング」を読みました。Linuxの基本概念であるファイルシステム、プロセス、ストリームを中心に書かれています、というかLinuxではこの3つを押さえていれば基礎は十分みたいで(特にGUIいらないなら)、一つ一つの概念をLinuxの既存コマンドをCで作っていきながら覚えられます。最終的にはHTTPサーバを作ってしまいます。
最初のほうはLinuxの概念とか知らないので興味深く読めたんですが、真ん中あたりはAPIリファレンス->それを利用してLinuxコマンド自作の流れが繰り返しでだれてくるんだけど(微妙に知ってる知識だったりするのも原因かも)、最後のHTTPサーバの作成の章でまた面白く読めました。機能制限があるとはいえ、それまでのこの本で得られた知識だけでHTTPサーバが作れてしまう。この章でそれまでのリファレンス&それを利用したコマンド作成が結構重要で、行ったり来たりしながら読むと理解が深まると思います。
Windows以降でCプログラム始めた人でLinuxもやってみたいけどよくわからない…という人向けの本です。C言語自体はある程度知ってることを前提として書かれています。やはりunixから生まれた言語だけあってC言語やるならunix系OSで始めればよかったなぁと思いました。個人的によくわかってなかったLinuxのプロセスとシグナルとfork、ディレクトリ構成、あと意外と知らなかったCのファイルシステム周りの低レベルAPIの説明/サンプルあたりは勉強になりました。あとメモリ空間のセクションの切られ方もcatで覗けるのはちょっとびっくりしました。
Binary 2.0カンファレンスも開催されるようですが、その前に基礎として1.0?な知識を身につけるのもいいのではないでしょうか。