MAP | TOP > 工房「藤車」 > 技術系執筆情報 > 『lsを読まずにプログラマを名乗るな!』 |
秀和システムから出版された、 拙著『lsを読まずにプログラマを名乗るな!』(ISBN:978-4-7980-3943-5) のサポートページです。
書籍中の誤りに関する情報以外にも、 紙面の都合で書籍では記述できなかった情報等を掲載します。
拙著の読者以外にも、 GNU coreutils のソースコードを参照する方のお役に立ては幸いです。
内容の不備等にお気付きの際には、 メール、 twitter (@flyingfoozy 宛) 等でお知らせください。
表題 | 概要 |
---|---|
正誤情報/補足説明 | 書籍中の誤りに関する修正、 および補足的な説明を掲載します。 |
ビルド時の留意点 | GNU coreutils をソースコードからビルドする際の、 留意点について説明します。 |
GNU coreutils へのバグ報告 | 本書の執筆過程で見つけた GNU coreutils のバグに関して説明します。 |
出版以来、 『何故 BSD 系のソースコードではないのか?』とか、 『BSD 系のソースコードの方が読むのが楽なのでは?』 といった疑問を持たれる方が多数見受けられましたので、 GNU coreutils のソースコードを選択した理由に関して、 本書の序文から引用します。
処理全体を理解するためのコストの点では、 ソースコードの分量が少ない、 BSD 系の
ls
コマンドのソースコードを読む、 という選択肢もあります。しかし、
ls
コマンドの実装を理解するための、 一種の『教材』として考えた場合、 BSD 系のソースコードには以下の問題があります。
- BSD 環境以外ではビルドが困難(*1)なため、 多くの環境では、 ソースコード変更の効果を実際に試してみることができない
- ディレクトリ配下の要素を読み出す処理が、 FTS ライブラリで隠蔽されているため、
ls
コマンドのソースコードを読むだけでは、 低レイヤの話が見えてこないまた、 『コード量が多い』と言われる GNU coreutils の
ls
コマンドの実装ですが、 読み始めの対象となる機能範囲を、 非常にプリミティブな部分に限定した上で、 徐々に読み込む機能範囲を広げていけば、 それ程無理をしなくても読めるレベルのコード量です。以上の理由から本書では、 GNU coreutils の
ls
コマンドのソースコードを選択しました。(*1)筆者が試した範囲では、 『BSD 系』と言われる Mac OS X でもビルドできませんでした
MAP | TOP > 工房「藤車」 > 技術系執筆情報 > 『lsを読まずにプログラマを名乗るな!』 |