OSって、やっぱり、難しい

OSを作りたい!!って意気込んで、何度も壁に跳ね返され、
性懲りも無く同じような事を繰り返して来たわけだけれど、
何が難しいのか、そこが、なかなか見えてこない。
何が分からないかが分からない、という状況は、
迷路に嵌る可能性が非常に高いように思う。
これは、少し、後戻りをしても、
一度、落ち着いて、問題を整理する必要があるように思う。


とは言え、そこまで深刻な状態でもないのだが、
何かがぼんやりとしたままで、どうにも引っ掛かる。
そのもやもやとした物が何かを、少し考えたい、と言ったところか。


そもそも、OSとは何か?
個人的には、必要な機能の集合体、と言った捕らえ方をしているが、
それだけでは、なかなか説明しきれない部分もある。
現状、ROSeは、一つのモジュールとなっているが、
これは、モニタ的な機能しか実装していないからであって、
リソース管理やタスク管理を行おうとしたら、
途端に複雑な作りになるような気がする。
OSを通常のアプリケーションと同じように捕らえていると、
どうにも、その複雑な作りが、ピンと来ない。


OSは、断片として存在し、クライアントからの要求によって呼び出され、
連携してサービスを提供するようなイメージなのだが、
もう一つのイメージとしては、OSと言う確固とした存在があって、
常時、資源やプロセスやユーザの管理やら監視を行っている。
なんか、この二つのイメージが、事ある毎に、こんがらがる。


BIOSのソースを追い掛けた時も、同じような違和感を感じたが、
結局、OSも、環境を整えた後は、アプリケーションに制御を渡す。
つまり、ソースを流れに沿って追い掛けても、真の姿は見えてこない。
エントリポイントから、アプリケーションに制御を渡すまでは、
つまりは、OSの初期化処理であって、OSの本体とは言い難い。


では、OSの本体とは、一体、何なのか?
あぁ、何だか、そこが、もやもやしている正体のような気がするなぁ。