愕然!!

FreeDOS で、Ctrl+C が、どのように処理されるのか、
それを追う為に FreeDOS の中身を追い掛けようと、
ソースファイルを展開したまでは良かったが、
さて、こいつら、どこから始まっているんだろう?
もしかして、僕は、基本的な事すら、理解していないのであろうか?


つまり、C プログラムが、main から始まるというのは、
あくまで OS が存在する上での話であって、
OS(DOS含め)その物を構築する際に、そんな物は無いのである。


それでは、一体、どこから探っていったら良い物か...
とりあえず、次に、Makefile を覗いてみる。
しかし、これも、結構、複雑に絡み合っていて、追うのに苦労する。
それでも、何とか、ビルド手順は掴めた気がするのだが、
結局、どこから始まるのかは、一向に分からんのである。


知識としては、プリプロセッサが、#〜を処理した後、
コンパイラが、コンパイルを行って、オブジェクトファイルを生成し、
その後、リンカが、それぞれのオブジェクトファイルを一つにまとめる、
とは知っているのだが、実に、表面的な理解だったように思える。
もうちょっと深く理解する必要がある。


掘り下げるべきは、多分、リンカの動きだと思う。
リンカがどのようにオブジェクトを並べるのか?
エントリポイントをどのように決定するのか?
その辺の理解が深まれば、自ずと、どこから始まるかが分かるはず。
あぁ、何だか、自分の無知さ加減に、愕然とするなぁ〜。