コンピュータなどの情報機器ハードウェア間の通信を行う際の入出力ポートのコネクタ形状や、信号の送受信の方法(プロトコル)などを決めたもの。主にパラレル接続のものとシリアル接続のものに分けられるが、シリアル接続でもパラレルの制御用信号線や電源供給線が混ぜてあるものがほとんどである。またPCにおいてはパラレル接続での高速化が頭打ちなことから、各インタフェースのシリアル接続方式への移行が進んでいる(バス (コンピュータ)も参照)。
汎用でホットプラグ(機器の電源を入れたまま抜き差しできる)対応のもの
シリアル
USB
Thunderbolt
IEEE 1394
イーサネット(100Baseまで)
ExpressCard
eSATA
パラレル
イーサネット (1000BASE-T)
一般的にホットプラグ非対応で汎用のもの。サーバ用にホットプラグ機能を付加したものもある。
パラレル
SCSI
PCI
PCI-X
シリアル
PCI-Express
シリアルSCSI
シリアルATA
InfiniBand
ファイバーチャネル
汎用だがレガシーデバイス(旧世代のインタフェース)としてしばしば扱われるもの。PCカードの一部を除いてホットプラグには対応しない。
パラレル
XTバス
ISA
EISA
パラレルポート(IEEE 1284、セントロニクス規格準拠)
NuBus
Cバス
IDE
PCカード
シリアル
PS/2コネクタ
シリアルポート
RS-232
EIA-422
ADB
汎用ではなく、用途が限られるもの
シリアル
MIDI - 電子楽器の制御
S/PDIF - 音声の入出力
パラレル
GP-IB - 計測機器の制御
フロッピーディスク
ソフトウェアインタフェース
ソフトウェア間の通信を行う際の情報の渡し方などを決めたもの。
API (Application Programming Interface)
ABI (Application Binary Interface)
プロセス間通信
ネットワーク
オブジェクト指向プログラミングにおいて、複数の種類のオブジェクトを多態性によって統一的に利用するため、境界部分の汎用的な共通規格を定義したもの。あるインタフェースに従ったメッセージを送受信できるようにすること、もしくはあるインタフェースに従った操作をできるようにすることを、そのインタフェースを実装する (implement) という。
JavaやC#などのプログラミング言語では、実装を持たない抽象型としてインタフェースをサポートする。これらの言語において、クラスは実装の多重継承をサポートしない代わりに、任意の数のインタフェースを実装することができる。詳細は「インタフェース (抽象型)」を参照
ユーザインタフェース