OSの第3の特徴はクライアントサーバ・フレームワークだ。OSは「マイクロカーネルOS」と呼ばれる形式のOSです。従ってファイルシステム、UI、ネットワーク、メッセージング、テレフォニー、挙げていくときりがないのですが、これら機能の提供主体はカーネルとは分離した形で提供、実行されています。この機能の提供主体をサーバと呼び、利用者側のプログラム(クライアント)はサーバと通信を行い、要求を依頼することで、処理を進めていきます。OSではこの形態を「クライアントサーバ」と呼びます。OSとはなんと難しいのであろうか。剣呑、剣呑」のような誤解を持たれかねません。OSではクライアントサーバという機構を基盤として、利用者に対し便利な機能を、性能を保ったまま提供することを可能にしています。利用者の観点からはごく当たり前に見え提供者の観点から見ると柔軟性があることを、どのように実現しているかを解説していきます。サーバはどこだまずシステム全体の中で、どこにサーバがいるのかを明らかにしましょう。サーバはどこにいるかマイクロカーネルの定義は以下のようなものでした。OSが提供する各種機能の中で、必要最小限のものをカーネルとして抱え、そのほかはユーザーレベルに配置する。これにより全体の設計が簡素化でき、結果的に性能も向上するという考え方ですからファイルサーバも、ウィンドウサーバ(キー入力やポインタをプログラムに分配し画面への描画を行う、GUIの基礎となるサーバです)もカーネル側には含まれていません(注1)。OSもV7までは、カーネルの機能をサーバとして呼び出すカーネルサーバコールというものがあり、プロセス、スレッドの生成やセマフォ、ミューテックスの操作はこれを通じて行っていました。V8.1bでリアルタイムカーネルEKA2に代わって以降、ユーザーからのカーネル呼び出し(execコール)がプリエンプション可能になりました。その結果カーネルサーバコールで呼び出しをシリアライズする必要がなくなり、カーネルAPIのほとんどがexecコールベースに置き換えられています。OSの内部構造を知る人へのサポートだけではなく、後述する「機能を提供する主体に求められるもの」という節への伏線でもあります。資源へのアクセスをシリアライズする必要があるのであれば、サーバというのは筋の良いアイデアなのです。良いのはシリアライズ不要な構造なのですが、それが可能か否かは提供する機能の粒度に依存します。SNSfacebooktwitterITmediaはアイティメディア株式会社の登録商標です。