sysctl 로 커널 변수 조회하기

최초 작성일 [2020.01.19]

작업환경 : macOS High Sierra

sysctl 은 커널의 속성들을 읽고 수정할 수 있는 유닉스 계열 OS의 기능이다.

$ sysctl -a | head -10
user.cs_path: /usr/bin:/bin:/usr/sbin:/sbin
user.bc_base_max: 99
user.bc_dim_max: 2048
user.bc_scale_max: 99
user.bc_string_max: 1000
...
net.inet.ip.ttl: 64
net.inet.ip.rtexpire: 10
net.inet.ip.rtminexpire: 10
net.inet.ip.rtmaxcache: 128
...
machdep.cpu.cache.linesize: 64
machdep.cpu.cache.L2_associativity: 4
machdep.cpu.cache.size: 256
...

sysctl -a 는 모든 커널 변수를 조회하는 명령어다. 사용자, 네트워크, 하드웨어, 보안 등 커널이 관리하는 자원과 기능에 연관된 변수들을 모두 보여준다.

CPU에 대한 모든 정보를 조회하려면 아래의 명령어를 실행한다.

$ sysctl machdep.cpu
machdep.cpu.max_basic: 22
machdep.cpu.max_ext: 2147483656
machdep.cpu.vendor: GenuineIntel
machdep.cpu.brand_string: Intel(R) Core(TM) i7-8750H CPU @ 2.20GHz
machdep.cpu.family: 6
machdep.cpu.model: 158
machdep.cpu.extmodel: 9
machdep.cpu.extfamily: 0
machdep.cpu.stepping: 10
...
machdep.cpu.features: FPU VME DE PSE TSC MSR PAE MCE CX8 APIC SEP MTRR PGE MCA CMOV PAT PSE36 CLFSH DS ACPI MMX FXSR SSE SSE2 SS HTT TM PBE SSE3 PCLMULQDQ DTES64 MON DSCPL VMX EST TM2 SSSE3 FMA CX16 TPR PDCM SSE4.1 SSE4.2 x2APIC MOVBE POPCNT AES PCID XSAVE OSXSAVE SEGLIM64 TSCTMR AVX1.0 RDRAND F16C
machdep.cpu.leaf7_features: SMEP ERMS RDWRFSGS TSC_THREAD_OFFSET BMI1 AVX2 BMI2 INVPCID SMAP RDSEED ADX IPT SGX FPU_CSDS MPX CLFSOPT
machdep.cpu.extfeatures: SYSCALL XD 1GBPAGE EM64T LAHF LZCNT PREFETCHW RDTSCP TSCI
machdep.cpu.logical_per_package: 16
machdep.cpu.cores_per_package: 8
...
machdep.cpu.core_count: 6
machdep.cpu.thread_count: 12
machdep.cpu.tsc_ccc.numerator: 184
machdep.cpu.tsc_ccc.denominator: 2

CPU 제조사 이름, 코어 갯수 등 여러 정보가 나타나는 것을 확인할 수 있다. CPU가 가상화(virtualization) 기능을 가지고 있는지 확인하기 위해 machdep.cpu.features 를 조회해보자.

$ sysctl machedep.cpu.features | grep VMX

features 목록에 VMX가 포함되어 있으므로 내가 사용중인 macOS의 CPU는 가상화가 가능함을 알 수 있다.

Last updated