* OSの仕事ってなんだ? -(by [[K]], 2009.07.01) *** (0) -これは当初「川合のぼやき」に書こうかどうか迷った内容のものを書くことにしたわけだけど、ここは僕のホームページではなくOsaskWikiなので他の誰が書いてもいいものだと思う。 -ただこのシリーズの趣旨としては、OSASKの設計に関する話を書いているので、他の人が書く場合もそれには準じてほしい。で、僕以外の人がOSASKの設計に関する話を書くなんてことはまずないと思うかもしれないけど、そんなことはなくて、たとえばこういう考え方のもとでこうしたらどうかという提案はできる。 -基本的に一つの話題に1ページ使ってしまうので、ちょっとした提案であれば、OSASK-MLや[[impressions]]を活用してもらうほうがいいと思う。 *** (1) -たとえばQEMUやVMwareなどのエミュレータを使い、Windows上でLinuxを使っている人は結構いると思う。逆にLinux上でWindowsを使う人もいるかもしれない。Xenでおなじことをやってもいい。 -こういう状況だと、仮想マシン上で動いているOSは一体どういう「仕事」をしているといえるだろう。それはアプリケーションを実行することだ。つまり、Windows上でLinuxのツールやアプリを使いたいから、エミュレータを使ってLinuxを動かしているわけだ。 -かつてはOSの仕事は分かりやすかった。コンピュータが行う処理のうち、アプリケーションが担う上層の機能以外の全てが、OSの仕事だった。OSはその範囲の処理の全てに責任を持っていた。そしてそれらをシェル・カーネル・ドライバなどのモジュールに分割して、これ全体をOSと呼んでいた。 -しかし仮想マシン上で動くOSにあっては、実ハードウェアの制御はエミュレータとバックで動いているホストOSの仕事だから、結局APIの提供くらいしか仕事がない。 -また、今ではXen専用の、つまりXenがなければ動かないようなOSも少しは存在し、これも「OS」であると一般に理解されているらしい。確かに僕もこれをOSと呼ぶことに違和感を感じない。このタイプのOSは、煩雑なデバイスドライバ開発から開放されていて、それは現代にあっては悪くない設計方針だと僕も思う。 *** (2) -ここまでを分かった上で、efg01について考えてみよう。これはまさにAPIのみを.g01アプリに対して提供している。機能的にはエミュレータとOSASK-HBを足したものがefg01に相当するといっていい。 -しかし先の仮想マシン専用のOSもOSと呼んでいいのなら、このefg01がOSといえない理由はあるのだろうか。つまりAPIを提供する能力があればそれはOSといっていいのか? -つづく * こめんと欄 #comment