暇な人はやってみるといいプログラミングの万能練習法は良いトレーニングになる。プログラムを書きたいと思う人種が与えられたメニューをこなすだけの人間ではないと思うけどハッカーを目指している人には UNIX の勉強にもなるんじゃないだろうか。というわけで、実際の練習メニューは以下の通り。
- プログラミング言語を選択する
- 書いてみようと思う POSIX のコマンドを決める
- man をはじめとするマニュアルを読んでコマンドの仕様を理解する
- 設計する(初回のコーディングと同時進行はやめたほうがいいかも)
- コーディング
- テストする。設計とコーディングの反復。
- 終了
C 言語で書いたならテストのあとにオリジナルのソースを読んで答え合わせするのですが、必ずしもオリジナルのコードが正解とは言い切れない。自分が書いたプログラムが仕様どおりに動いているならアルゴリズムの違いなどは気にしなくていいと思う。だけど突き詰めれば処理速度の問題が出てきたりするので比較することが勉強になるのだ。
コーディングのトレーニングと同時に、以下のような知識や技術も身に付く。
- man が読めるようになる
- POSIX のコマンドを覚える
- ソースコードを読む力が身に付く
- UNIX の勉強
関連ページ
POSIX とは
e-words.jp より:
IEEEによって定められた、UNIXベースのOSが備えるべき最低限の仕様のセット。
POSIX のコマンド(仕様書には Utilities とある)は http://www.opengroup.org/onlinepubs/009695399/idx/utilities.html で見れる。ただしこのページはフレームで分割されたページから抜き出した URL なので文書本体 http://www.opengroup.org/onlinepubs/009695399/ も見ておかないと意味がわからない。http://www.unix.org/version3/apis/cu.html もあったが、先に挙げたページより古いようなので見比べて使うのがよろしいかと。
現在は UNIX 98 と UNIX 03 と呼ばれる仕様が、UNIX を名乗りたいときに従うべき仕様(慣習)である。UNIX 03 の仕様は IEEE Std 1003.1 である。また、IEEE Std 1003.1 は ISO/IEC 9945:2003 でもある(歴史的な事情で?ややこしい)。UNIXの規格についてというページが参考になる。
UNIX 03 の仕様書を見るにはユーザ登録が必要。http://www.opengroup.org/publications/catalog/x03xy.htm 。HTML と PDF バージョンがある。
余談だが、2007年10月にリリース予定の Intel ベースの Mac OS X Leopard は UNIX 03 に認定された。