[解決済み】APIとABIの違いについて
質問
私はLinuxシステムプログラミングの初心者で、APIとABIを読んでいるときに出会いました。 Linuxシステムプログラミング .
APIの定義。
APIとは、以下のようなインターフェイスを定義するものです。 あるソフトウェアが通信する をソースレベルで共有することができます。
ABIの定義。
APIがソースを定義するのに対して インターフェイスを定義するのに対し、ABIは の間の低レベルバイナリインターフェース またはそれ以上のソフトウェアの断片を 特定のアーキテクチャ 定義するのは アプリケーションの相互作用 アプリケーションがどのように カーネルとの関係、そして アプリケーションはライブラリと相互作用します。
プログラムはどのようにしてソースレベルで通信することができるのですか?ソースレベルとは何でしょうか?ソースコードと何か関係があるのでしょうか?それとも、ライブラリのソースはメインプログラムに含まれるのですか?
私が知っている唯一の違いは、APIは主にプログラマーが使用し、ABIは主にコンパイラが使用することです。
どのように解決するのですか?
APIは人間が使うものです。私たちはソースコードを書きます。プログラムを書いていて、あるライブラリの機能を使いたいときは、次のようなコードを書く。
long howManyDecibels = 123L;
int ok = livenMyHills( howManyDecibels);
というメソッドがあることを知る必要がありました。
livenMyHills()
これは長い整数のパラメータを取ります。つまり、プログラミングインターフェイスとして、すべてソースコードで表現されているのです。コンパイラはこれを、特定のオペレーティング・システム上でこの言語の実装に準拠した実行可能な命令に変換します。この場合、オーディオ・ユニットに対する低レベルの操作になります。つまり、特定のビットとバイトが、あるハードウェアに吹き込まれるわけです。つまり、実行時には、普段は目にすることのないバイナリレベルの動作がたくさん行われているのです。
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン