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 $$

관련 정보