/proc/cpuinfo 에서 CPU 플래그 검사
이 단계에서는 Linux 커널에서 제공하는 가상 파일인 /proc/cpuinfo를 탐색합니다. 이 파일에는 시스템의 CPU 에 대한 정보가 포함되어 있습니다. 이 파일은 CPU 모델, 속도, 캐시 크기 및 지원되는 기능 (플래그) 을 포함하여 프로세서에 대한 세부 정보를 얻을 수 있는 훌륭한 소스입니다.
/proc 파일 시스템은 커널 데이터 구조에 대한 인터페이스를 제공하는 가상 파일 시스템입니다. /proc 내의 파일은 디스크에 저장되지 않고, 액세스할 때 커널에 의해 즉시 생성됩니다.
/proc/cpuinfo의 내용을 보려면 cat 또는 less와 같은 명령줄 유틸리티를 사용할 수 있습니다. cat은 전체 내용을 터미널에 출력하고, less는 내용을 페이지별로 스크롤할 수 있도록 합니다. /proc/cpuinfo는 매우 길 수 있으므로 less가 더 편리한 경우가 많습니다.
터미널을 열고 cat을 사용하여 CPU 정보를 보려면 다음 명령을 입력합니다.
cat /proc/cpuinfo
시스템의 각 CPU 코어에 대한 자세한 정보가 표시됩니다. 출력에는 processor, vendor_id, model name, cpu MHz, cache size, flags와 같은 줄이 포함됩니다.
다음은 표시될 수 있는 예시입니다 (출력의 일부가 생략됨):
processor : 0
vendor_id : GenuineIntel
cpu family : 6
model : 158
model name : Intel(R) Core(TM) i7-10700 CPU @ 2.90GHz
stepping : 13
microcode : 0xffffffff
cpu MHz : 2904.000
cache size : 16384 KB
physical id : 0
siblings : 1
core id : 0
cpu cores : 1
apicid : 0
initial apicid : 0
fpu : yes
fpu_exception : yes
cpuid level : 22
wp : yes
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ss ht syscall nx pdpe1gb rdtscp lm constant_tsc rep_good nopl xtopology nonstop_tsc cpuid tsc_known_freq pni pclmulqdq vmx ssse3 fma cx16 pcid sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand hypervisor lahf_lm abm 3dnowprefetch invpcid_single ssbd ibrs ibpb stibp fsgsbase tsc_adjust bmi1 avx2 smep bmi2 erms invpcid mpx rdseed adx smap clflushopt intel_pt xsaveopt xsavec xgetbv1 xsaves arch_capabilities
bugs : cpu_meltdown spectre_v1 spectre_v2 spec_store_bypass l1tf mds swapgs itlb_multihit srbds mmio_stale_data retbleed
bogomips : 5808.00
clflush size : 64
cache_alignment : 64
address sizes : 43 bits physical, 48 bits virtual
power management:
processor : 1
vendor_id : GenuineIntel
cpu family : 6
model : 158
model name : Intel(R) Core(TM) i7-10700 CPU @ 2.90GHz
stepping : 13
microcode : 0xffffffff
cpu MHz : 2904.000
cache size : 16384 KB
physical id : 0
siblings : 1
core id : 0
cpu cores : 1
apicid : 0
initial apicid : 0
fpu : yes
fpu_exception : yes
cpuid level : 22
wp : yes
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ss ht syscall nx pdpe1gb rdtscp lm constant_tsc rep_good nopl xtopology nonstop_tsc cpuid tsc_known_freq pni pclmulqdq vmx ssse3 fma cx16 pcid sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand hypervisor lahf_lm abm 3dnowprefetch invpcid_single ssbd ibrs ibpb stibp fsgsbase tsc_adjust bmi1 avx2 smep bmi2 erms invpcid mpx rdseed adx smap clflushopt intel_pt xsaveopt xsavec xgetbv1 xsaves arch_capabilities
bugs : cpu_meltdown spectre_v1 spectre_v2 spec_store_bypass l1tf mds swapgs itlb_multihit srbds mmio_stale_data retbleed
bogomips : 5808.00
clflush size : 64
cache_alignment : 64
address sizes : 43 bits physical, 48 bits virtual
power management:
flags 줄은 특히 흥미로운데, CPU 에서 지원하는 다양한 기능 및 확장을 나열하기 때문입니다. 이러한 플래그는 가상화 지원 (vmx 또는 svm), 특정 명령어 집합 (예: sse, avx) 및 보안 기능과 같은 기능을 나타냅니다.
grep을 사용하여 /proc/cpuinfo 내에서 특정 정보를 검색할 수도 있습니다. 예를 들어, 모델 이름을 찾으려면 다음을 수행합니다.
grep "model name" /proc/cpuinfo
이렇게 하면 각 CPU 코어의 모델 이름이 출력됩니다.
model name : Intel(R) Core(TM) i7-10700 CPU @ 2.90GHz
model name : Intel(R) Core(TM) i7-10700 CPU @ 2.90GHz
또는 vmx (Intel VT-x 가상화 지원) 와 같은 특정 플래그의 존재를 확인하려면:
grep "vmx" /proc/cpuinfo
출력에 vmx가 있으면 CPU 가 Intel VT-x 가상화를 지원하는 것입니다.
/proc/cpuinfo를 탐색하는 것은 커널의 관점에서 시스템 프로세서의 기능을 직접 이해하는 기본적인 방법입니다.
이 랩을 완료하려면 계속을 클릭하십시오.