私は Linux システム プログラミングは初めてで、 Linux System Programmingを読んでいるときに API と ABI に出会いました。
API の定義:
API は、あるソフトウェアがソース レベルで別のソフトウェアと通信するためのインターフェイスを定義します。
ABIの定義:
API はソース インターフェイスを定義しますが、ABI は特定のアーキテクチャ上の 2 つ以上のソフトウェア間の低レベル バイナリ インターフェイスを定義します。アプリケーションがそれ自体と対話する方法、アプリケーションがカーネルと対話する方法、およびアプリケーションがライブラリと対話する方法を定義します。
プログラムはソースレベルでどのように通信できますか? ソースレベルとは?それは何らかの形でソースコードに関連していますか? または、ライブラリのソースがメイン プログラムに含まれますか?
私が知っている唯一の違いは、API は主にプログラマーによって使用され、ABI は主にコンパイラーによって使用されることです。