2005-10-21 第3章 プログラミングインタフェース オペレーティングシステム 3.1 プログラミングインタフェースの目的 OSの機能が使いたくなるときがあるんです。 3.2 プログラミングインタフェースの提供 使い方 関数呼び出しで使う。 実現方法 カーネルさん⇒神 アプリケーション⇒信者 神は信者の願いを聞いてくれることもあるがなんでも聞いてくれるわけではない。 中をあけてみると カーネル呼び出しコール カーネルモード(特権モード)に移行 OS機能の実行 アプリケーションモード(制限モード)に移行 呼び出し元に戻る 3.3 具体的なOS API C言語規格の標準ライブラリに含まれるオペレーティングシステム機能 カーネルのシステムコール機能 レジスタに機能の番号とパラメータを入れる アセンブリ言語でカーネル呼出し命令を実行する C言語ライブラリ内の関数 システムコール関数(ex. write) カーネルのシステムコールを呼び出すだけ その他のライブラリ関数 システムコール関数を利用して処理を行う。 WINDOWS API どうでもいい 3.4 互換性と移植性 互換性があると、使い勝手が良い(と、開発者は思う) 例)ディスプレイはどのパソコンに繋いでも画面が出る⇒インタフェースに互換性がある オペレーティングシステムのインタフェースの互換性 UNIXベースのOS間はあわせやすい⇒単一UNIX仕様 POSIXというものもある ソースプログラム互換 ABI(アプリケーションバイナリインタフェース) 移植性(portability) ほかのOSで動かしやすい 共通外の機能を一箇所に固めておく フレームワークみたいなものを使う