UNIXバリアント(macOSなど)でsysctlを使用して、通常Linuxの/proc/selfにある情報を読み取ることはできますか?

UNIXバリアント(macOSなど)でsysctlを使用して、通常Linuxの/proc/selfにある情報を読み取ることはできますか?

など/proc/selfの工程関連情報を読むために長い間使用されてきました。/proc/self/maps

ただし、一部のUNIXバリアント(macOSなど)ではprocfsファイルシステムは実装されていませんが、次のようになります。協会状態では、を使用して同様の情報を取得することが可能でなければなりませんsysctl

出力を読み取ると、sysctl -a情報が特定のプロセスに直接関連しておらず、システムやカーネルに関連していることがわかります。

それでは、macOSなどのUNIXバリアントのsysctlLinuxディストリビューションに一般的に存在する情報をどのように読み取ることができますか?/proc/self

たとえば、macOSに入りたいと思います/proc/self/maps

答え1

sysctl にはほとんどシステム全体のパラメータが含まれているという観察が適切です。これは名前sysctl(SYStem ConTroLを暗示)とも関連しています。マニュアルページsysctl - get or set kernel state説明「。」

一部のBSDシステムは、FreeBSDなどprocfsにインストールできるオプションのファイルシステムサポートを提供しています。/proc

# mount -t procfs procfs /proc

いくつかの機能を提供しますが、特定の基本BSDプロセスのランタイム統計を明示的に照会するのではなく、エミュレーションモードでLinuxバイナリを実行するときに互換性のために最も一般的に使用されます。残念ながら、procfs私が知っている限り、OS Xはファイルシステムをサポートしていません。

より一般的には、BSDシステムはそうではないので、特定の/procクエリに基づく回答を置き換えるために使用されるのは、特定のクエリ/procに依存します。投稿の最近の編集を考慮すると、このコマンドは特定のプロセスのメモリ使用量を表示するのに役立ちます。

$ sudo vmmap $$

関連情報