FreeBSDのソースコードを閲覧


FreeBSD など、オープンソースな PC-Unix システムを使っていると、ソースコードを覗いて、どんな実装になっているのか知りたくなるのは当然のことでろう。システムのソースコードは、プログラムに興味のある人間にとっては最良の教材であり、そこから実装テクニックをパクるのも、また必要なことだ。

しかし、/usr/src 以下、多量に存在するソースコードを一々エディタで開くなどして閲覧するのは面倒だ。そこで、大量にある資料を合理的に眺めるために生まれた道具、もとい「ブラウザ」を使うのはどうだろう。強力な検索機能などは不在だが、気軽に見る手段の一つとして、Web ブラウザを使うのも悪くないと思う。

Web ブラウザで閲覧可能にしたいのだから、当然ながら httpd が必要だ。従って、予め Apache をインストールしておく必要がある。そして、Apache さえ動いていれば、つまるところの目的は Apache 自体の設定を特に変えることなく、/usr/src 以下のファイルを閲覧できるようにすることだから、残りの作業は至って簡単なのだ。


まず、Apache の、通常 httpd.conf (1.3.4 より以前のバージョンでは srm.conf) で DocumentRoot に指定されたディレクトリ(例えば www.exp.org というマシンならば、http://www.exp.org/ というURLで見えるファイルが入っているところ。下記例では /usr/local/www/data としている)に、usr という名称のディレクトリを作る。

% cd /usr/local/www/data
% mkdir usr
% cd usr
% pwd
/usr/local/www/data/usr

次いで、作ったディレクトリの中に、/usr/src へのシンボリックリンクを、src という名称で張る。

% ln -s /usr/src src
% ls -l src
lrwxr-xr-x 1 hogehoge hogehoge 8 Jun 1 00:00 src -> /usr/src

そして、httpd にシンボリックリンクを辿るよう指示し、尚かつディレクトリに存在するファイルが一覧できるようにするため、上記のシンボリックリンクと同じディレクトリに .htaccess を作るのだ。また、ソースコードが誰にでも見えるようではイヤなので、限られたクライアントからしか見られないよう、アクセスを制限する必要もある。下記の例では、.exp.org 以外からは見られないよう、設定することにした。

Options FollowSymLinks Indexes
order deny,allow
deny from all
allow from .exp.org

これで準備は完了。

早速、ブラウザを立ち上げて確認するのだ。例えば、マシンが www.exp.org だとすると、http://www.exp.org/usr/src/ というURLで、閲覧可能である。(実在するURLですが、皆さんからは見えません)



Index of /usr/src と表示され、それっぽいでしょ。


もどる