Lions' Commentary on UNIX を6章まで読みました。

Lions’ Commentary on UNIX (Ascii books)/アスキー

¥4,104
Amazon.co.jp

大昔に読もうとして挫折した本です。1998年の発行だったのですね。日本語訳のこの本はもう入手が難しいかも知れませんが英語のpdfならフリーで入手できるようです。

1~5章はC言語の解説を含むイントロ的な章で、5章で試しに少しソースコードを読んでみて、6章はUNIXの起動でここからそろそろ本番という感じです。

6章を十数年ぶりに読んでみて、これは挫折したのは当然だなと思いました。startからmainが呼ばれプロセス0とプロセス1ができる辺りが書いてあるのですが、sched、sleep、swtch、savu、retuとかいきなり一番難しい部分じゃないですか!

6章で全体の流れとどのような関数が出てくるかを示しておいて7章で深堀りするみたいですが、OSの勉強を始めたばかりの状態ではあまりにも分からな過ぎてお手上げになったのでした。当時の苦い感触を思い出しました。

今でもかなり理解不足ではあるのですが6章は概略がつかめれば良い、7章からが本番ということにして読み進めてみます。7章でにっちもさっちも行かなくなるかも知れないと思うと怖いですが。
6章を読み終わったところでLions本をざっとながめてみたところ、システムの起動とプロセス関係がまとめて記載されていたので、途中のブロックデバイス、ファイルシステム、キャラクタデバイスの章をとばして14章 システムの起動 だけを読み直しました。

この状態でしばらくLions本に行ってみようと思います。歯が立つようになっていれば良いのですが。
6.1 シグナルとは を読み直しましたが、ここもコードの動きは何とか追えてもそもそも論的に分からない箇所がたくさんあります。

シグナルは割り込みの1種と考えられるのに、シグナルが実行されるのは実行プロセスになった時だけなのですぐに実行されないというのは、概ね遠からず実行されるから十分だろうという考えなのか?そもそもシグナルというものを考えることによってどんなメリットが生じているのか?等がピンと来ません。

6章も後少しなので読み切ったら引き続き7章のブロックデバイスに行くか、煮詰まらないように気分を変えてLions本に行くか思案中です。