くろょろぐ

はてダからはてブロに移行済み

OS

そもそも、本来、マイコンのアプリケーションプログラムは、そのアプリケーションに必要な全てのプログラム要素を記述する必要があった。そのうち、各々のアプリケーションに共通に使われるいくつかのものはライブラリにまとめられ、また、ある具体システムで共通に使われるものはドライバとしてまとめられた。そうこうするうちに、個々の目的毎にまとめられていたものの差異を吸収する必要性が出てきた。…のだと思う。
二つ、あるいは三つのアプローチが考えられる。一つは、具体システム、ありていに言えばハードウェアの共通化だ:より正確には、ハードウェアのインターフェースの共通化だ。これは実際に現在、各種のデファクトスタンダードがある。もう一つは、仮想的な具体システムの構築、要するにバーチャルマシン化だ:p-codeシステムやSqueakJavaなんかがそうだろう。最後はOSだと思う。
戯のところに、自前ファイルシステムを受け入れられるシステムがあるなら、自前メモリマネージャも受け入れられてしかるべきじゃないか、というような事が書いてあった。で思った事。
OSが、例えばファイルシステムやメモリ管理などを行うのは、それが、アプリケーション間で共通に利用されるものと認識されているからだろう:アプリケーションプログラマが、それらのプリミティブな実装に煩わされないように配慮するためのものだったはずだ。が、ある程度アプリケーションが成熟してくると、今度はOS標準のそういったお仕着せのシステムが邪魔になってきた:つまり、今度はOSの制限を回避する事に煩わされるようになってしまったわけだ。