よく教材として話題に出されるのは、UNIXv6のソースコードだと思います。
V6/usr/source - The Unix Tree
ですが、読み下せば読み解けないことはないけれど、結構トリッキーな書き方をしているように思います。
そこで個人的にはMITの教材用に書き直されたこちらのソースコードをお勧めします。
mit-pdos/xv6-public - GitHub
ただ、いきなりこんな大量のファイルを見せつけられても困ると思いますので、まずは比較的単純なcat
コマンドのソースコードなどから見ることをお勧めします。
後は気になった(気に入った)コマンドのソースコードをじっくり読むと、
「このコマンドはこういう風に動いていたのか!」
と感動しますね。
あとよくお題に出されるのは、MINIXでしょうか。
あとCentOS6.9のファイルシステムには最初からソースは入っているのでしょうか?
入ってないような雰囲気があります。
入っていなかったと思います。自前でCentOSをビルドしない限り。
Debian系ですと、ちょっと sources.list
のコメントアウトを外して、apt source
でダウンロードできたりするのですが、CentOSだと yum-utils
を入れないといけないようですね。
yum でソースコードをダウンロードしたい - 英語とプログラミング気まぐれ日記
ソースコード読むの、楽しいですよ :)
ぜひコーヒーや紅茶片手に、ゆっくり読んでみてください。かんたんなコマンドも、その裏での実装にはいろんな工夫があることが伺えて、とても感動しますよ!
P.S.
Pythonタグもついているので、Pythonのオープンソースも紹介いたします。
bottle - GitHub
一つのファイルに収めたWebフレームワークです。 bottle.py
が本体となります。
一つのファイルに収めているので、こちらもちょっとトリッキーですが、なかなかおもしろいと思います。
evincarofautumn/kitten - GitHub
タグにも引っかかっていませんが、プログラミング言語の実装も読んでみると面白いかもしれません。
連鎖型プログラミング言語「Kitten」の実装はHaskellです。
Haskellという時点で、
「うわーっ! 読めるわけないじゃないかよーっ。俺"モナド"も"カリー化"も知らないよお」
と思いながらおもむろに src
フォルダの中の適当なソースコードを眺めたら
「あれ? 読める? なんか言わんとしてることが理解できるぞ?」
と私はなりました。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/09/21 12:42