アプリケーションからシステムコールを抽出する方法は?ソースコードで使用されている関数と同じですか?

アプリケーションからシステムコールを抽出する方法は?ソースコードで使用されている関数と同じですか?

ソースコードからSysCallを抽出しようとしていますが、少し混乱しています。似たようなソースが見つかりました。https://chromium.googlesource.com/chromiumos/docs/+/master/constants/syscalls.mdそしてhttps://filippo.io/linux-syscall-table/システムコールはCで呼び出される関数と同じですか?それとも、システムコール関数が呼び出され、実際のシステムコールが行われるsyscall(SYS_gettid)のようなシステムコールですか?

アプリケーションが使用しているシステムコールを抽出しようとしています。

ベストアンサー1

ほとんどの場合、プログラムのソースコードに明示的なシステムコールが見つかりません。アプリケーションはその言語のランタイムライブラリを呼び出して作成され、カーネル呼び出しを担当するのはまさにこのライブラリです。多くの言語ランタイムライブラリは、Cライブラリを使用してこの責任を順番に委任します。

Cライブラリ関数とシステムコールの間には1対1の対応さえありません。一部のCライブラリ関数はシステムコールをまったく使用せず、他の関数は複数を使用します。あるスキーマから別のスキーマへの変更もマッピング -Linuxにはアーキテクチャ固有のシステムコールがたくさんあります。- 使用される実際のシステムコールは、実行中のカーネルとCライブラリに大きく依存します。例えばカーネルが新しいシステムコールを追加し、そのサポートがCライブラリに追加されます。

おすすめ記事