第3章 プログラミングインタフェース

3.1 プログラミングインタフェースの目的

OSの機能が使いたくなるときがあるんです。

3.2 プログラミングインタフェースの提供

使い方

関数呼び出しで使う。

実現方法

カーネルさん⇒神
アプリケーション⇒信者
神は信者の願いを聞いてくれることもあるがなんでも聞いてくれるわけではない。

中をあけてみると

  1. カーネル呼び出しコール
  2. カーネルモード(特権モード)に移行
  3. OS機能の実行
  4. アプリケーションモード(制限モード)に移行
  5. 呼び出し元に戻る

3.3 具体的なOS API

C言語規格の標準ライブラリに含まれるオペレーティングシステム機能

カーネルシステムコール機能

C言語ライブラリ内の関数
WINDOWS API

どうでもいい

3.4 互換性と移植性

互換性があると、使い勝手が良い(と、開発者は思う)
例)ディスプレイはどのパソコンに繋いでも画面が出る⇒インタフェースに互換性がある

オペレーティングシステムのインタフェースの互換性

UNIXベースのOS間はあわせやすい⇒単一UNIX仕様

  • POSIXというものもある

ソースプログラム互換

  • ABI(アプリケーションバイナリインタフェース)
移植性(portability)

ほかのOSで動かしやすい