drkdev

kernel study 01: 시스템 구성 정보 확인하기

Dec 27, 2023  │  #linux   #system_engineering   #korean   #kernel  

based on Ubuntu 22.04.3 LTS (GNU/Linux 5.15.0-91-generic aarch64) VM

커널 정보 확인

uname (UNIX name)

커널 이름, 호스트 이름, 커널 버전, 커널 릴리즈, 운영 체제, 하드웨어 이름(아키텍처) 등 시스템 정보를 출력하는 도구

# uname -a
Linux drkup 5.15.0-91-generic #101-Ubuntu SMP Tue Nov 14 13:29:11 UTC 2023 aarch64 aarch64 aarch64 GNU/Linux

5.15.0-91-generic 커널을 사용 중임을 확인할 수 있다.

dmesg (display message)

커널의 메시지 버퍼의 내용을 출력하는 도구.

kernel이 부팅되면서 출력했된 내용을 살펴보겠습니다.

# sudo dmesg | grep -i kernel | more
# kernel 문자열을 포함한 로그만 출력해보았다.
# 좌측 괄호 [] 안은 시스템 부팅 이후 경과한 시간을 초 단위를 표현한 것이다.

# 커널 코드에 패치 적용 (시스템이 부팅되는 과정)
[    0.000000] alternatives: patching kernel code

# 커널 파라미터. BOOT_IMAGE, root, ro 등이 보인다.
[    0.000000] Kernel command line: BOOT_IMAGE=/vmlinuz-5.15.0-91-generic root=/dev/mapper/ubuntu--vg-ubuntu--lv ro

# 주어진 커널 파라미터이지만 인식하지 못하는 파라미터는 user space로 전달된다.
[    0.000000] Unknown kernel command line parameters "BOOT_IMAGE=/vmlinuz-5.15.0-91-generic", will be passed to user space.

# 커널이 인식하는 메모리 정보.
# 시스템에 4194304K 메모리가 존재하며 3860508K가 사용 가능하다.
[    0.000000] Memory: 3860508K/4194304K available (17280K kernel code, 4576K rwdata, 13928K rodata, 9600K init, 1194K bss, 301028K reserved
, 32768K cma-reserved)

# 직접 메모리 액세스(DMA)에 사용되는 사전 할당된 메모리 풀 관련 로그
# CPU를 거치지 않고 메모리와 하드웨어 장치 간에 데이터를 직접 전송하기 위해 필요합니다.
[    0.084903] DMA: preallocated 512 KiB GFP_KERNEL pool for atomic allocations
[    0.085653] DMA: preallocated 512 KiB GFP_KERNEL|GFP_DMA pool for atomic allocations
[    0.086177] DMA: preallocated 512 KiB GFP_KERNEL|GFP_DMA32 pool for atomic allocations

# 커널이 로드한 X.509 인증서 관련 로그
[    0.744737] Loaded X.509 cert 'Build time autogenerated kernel key: a3ee82ff8d989103803e60e521b19f3fabe02ee9'
[    0.746343] Loaded X.509 cert 'Canonical Ltd. Kernel Module Signing: 88f752e560a1e0737e31163a466ad7b70a850c19'
[    0.797094] Loaded X.509 cert 'Build time autogenerated kernel key: a3ee82ff8d989103803e60e521b19f3fabe02ee9'

# 시스템 부팅 하면서 사용했던 메모리를 반환
[    0.802006] Freeing unused kernel memory: 9600K

# systemd 작업들.
[    3.234080] systemd[1]: Listening on udev Kernel Socket.
[    3.236727] systemd[1]: Mounting Kernel Debug File System...
[    3.241096] systemd[1]: Mounting Kernel Trace File System...
[    3.276186] systemd[1]: Starting Load Kernel Module chromeos_pstore...
[    3.278110] systemd[1]: Starting Load Kernel Module configfs...
[    3.283414] systemd[1]: Starting Load Kernel Module drm...
[    3.285204] systemd[1]: Starting Load Kernel Module efi_pstore...
[    3.290713] systemd[1]: Starting Load Kernel Module fuse...
[    3.298218] systemd[1]: Starting Load Kernel Module pstore_blk...
[    3.302885] systemd[1]: Starting Load Kernel Module pstore_zone...
[    3.305147] systemd[1]: Starting Load Kernel Module ramoops...
[    3.311579] systemd[1]: Starting Load Kernel Modules...
[    3.313671] systemd[1]: Starting Remount Root and Kernel File Systems...

/boot/config-$(uname -r)

커널의 컴파일 옵션을 확인해보겠습니다. 특정 옵션이 활성화 되어 있어야만 사용할 수 있는 기능이 존재합니다. 예를 들어 ftrace를 사용하기 위해서는 CONFIG_FTRACE 옵션이 활성화 되어 있어야 합니다.

#cat /boot/config-$(uname -r) | head -n 10
# 너무 많은 옵션이 존재하니 앞의 10줄 정도만 출력해보았습니다.

#
# Automatically generated file; DO NOT EDIT.
# Linux/arm64 5.15.0-91-generic Kernel Configuration
#
CONFIG_CC_VERSION_="gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0"
CONFIG_CC_IS_GCC=y
CONFIG_GCC_VERSION=110400
CONFIG_CLANG_VERSION=0
CONFIG_AS_IS_GNU=y
CONFIG_AS_VERSION=23800

dmidecode (dmi : Desktop Management Interface)

하드웨어 정보를 보여주는 명령어입니다. 이 명령어는 시스템의 BIOS, 시스템 보드, 프로세서, 메모리 등과 같은 다양한 컴포넌트에 대한 상세한 정보를 제공합니다.

가능한 타입을 나열하면 아래와 같습니다.

Valid type keywords are:
  bios
  system
  baseboard
  chassis
  processor
  memory
  cache
  connector
  slot

dmidecode -t bios

BIOS(Basic Input/Output System)를 확인해보겠습니다.

# dmidecode -t bios
# UTM VM에서 실행하여 흔히 보이는 vendor가 아닌 UEFI 환경임을 확인할 수 있습니다.

# dmidecode 3.3
Getting SMBIOS data from sysfs.
SMBIOS 3.0.0 present.

Handle 0x0000, DMI type 0, 26 bytes
BIOS Information

    #
	Vendor: EFI Development Kit II / OVMF
	Version: 0.0.0
	Release Date: 02/06/2015
	Address: 0xE8000 # bios가 메모리 상에서 위치한 시작 주소
	Runtime Size: 96 kB # bios run time의 크기입니다.
	ROM Size: 64 kB
	Characteristics:
		BIOS characteristics not supported
		Targeted content distribution is supported
		UEFI is supported
		System is a virtual machine
	BIOS Revision: 0.0

dmidecode -t system

시스템 관련 정보를 출력해보겠습니다. 컴퓨터를 구성하는 다양한 하드웨어의 모델명 등을 확인할 수 있습니다.

# dmidecode -t system
# VM이라서 에뮬레이터인 QEMU를 사용하고 있음을 확인할 수 있습니다.

# dmidecode 3.3
Getting SMBIOS data from sysfs.
SMBIOS 3.0.0 present.

Handle 0x0100, DMI type 1, 27 bytes
System Information
	Manufacturer: QEMU
	Product Name: QEMU Virtual Machine
	Version: virt-7.2
	Serial Number: Not Specified
	UUID: <omit>
	Wake-up Type: Power Switch
	SKU Number: Not Specified
	Family: Not Specified

Handle 0x2000, DMI type 32, 11 bytes
System Boot Information
	Status: No errors detected

cpu1

/proc/cpuinfo

# cat /proc/cpuinfo

processor	: 0
BogoMIPS	: 48.00
Features	: fp asimd evtstrm aes pmull sha1 sha2 crc32 atomics fphp asimdhp cpuid asimdrdm jscvt fcma lrcpc dcpop sha3 asimddp sha512 asimdfhm dit uscat ilrcpc flagm sb paca pacg dcpodp flagm2 frint
CPU implementer	: 0x00
CPU architecture: 8
CPU variant	: 0x0
CPU part	: 0x000
CPU revision	: 0

(omit)

dmidecode -t processor

cpu(processor) 정보를 출력해보겠습니다.
자주 출력해보는 내용이기 때문에 가상 머신이 아닌 타 기기에서 출력된 내용물을 가지고 설명해보겠습니다.

장착된 cpu가 1개라고 인식되기 때문에 하나의 cpu 정보만 출력되었습니다. 만약 motherboard의 소켓에 여러 cpu를 장착했다면, 해당 갯수만큼 출력될 것입니다.

흔히 물리적 cpu 코어의 갯수와 논리적 cpu 코어의 갯수를 헷갈리는데 해당 출력을 통해 명확히 구분할 수 있습니다. Socket Designation은 곧 cpu가 mother board에 장착된 소켓의 위치이며, Core Count는 장착된 하나의 cpu가 소유한 컴퓨팅 코어를 의미합니다. 아래 출력물을 기준으로 설명하자면, 물리적으로 cpu는 2개가 소켓에 장착되어 있으며 각각 8개의 코어를 가지고 있으며 하이퍼 쓰레딩이 적용되어 있어 하나의 코어당 2개 이상의 thread가 존재하는 것으로 확인됩니다.

# dmidecode -t processor

# dmidecode 3.3
Getting SMBIOS data from sysfs.
SMBIOS 3.2.0 present.

Handle 0x0400, DMI type 4, 48 bytes
Processor Information
    Socket Designation: CPU 0  # cpu가 장착된 소켓의 이름입니다. MB에 cpu를 장착할 때 사용하는 소켓의 이름과 동일합니다.
    Type: Central Processor # cpu임을 나타냅니다.
    Family: Xeon
    Manufacturer: Intel
    ID: C3 06 03 00 FF FB EB BF
    Version: Intel(R) Xeon(R) CPU E5-2600 v4
    Voltage: 1.2 V
    External Clock: 100 MHz
    Max Speed: 3000 MHz
    Current Speed: 3000 MHz
    Status: Populated, Enabled
    Upgrade: Socket LGA 2011
    L1 Cache Handle: 0x0700
    L2 Cache Handle: 0x0701
    L3 Cache Handle: 0x0702
    Serial Number: Not Specified
    Asset Tag: Not Specified
    Part Number: Not Specified
    Core Count: 8 # cpu가 소유한 물리적 core 갯수를 의미합니다.
    Core Enabled: 8
    Thread Count: 16 # 일반적으로 하이퍼스레딩 또는 다중 스레딩 기술이 적용된 경우, 물리적 코어 수보다 스레드 수가 더 많습니다.
    Characteristics:
        64-bit capable
        Multi-Core
        Hardware Thread

# 다른 소켓에 장착된 cpu의 정보를 출력합니다. 해당 컴퓨터가 2개의 cpu를 장착하고 있음을 의미합니다.
Handle 0x0401, DMI type 4, 48 bytes
Processor Information
    Socket Designation: CPU 1
    Type: Central Processor
    Family: Xeon
    Manufacturer: Intel
    ID: C3 06 03 00 FF FB EB BF
    Version: Intel(R) Xeon(R) CPU E5-2600 v4
    Voltage: 1.2 V
    External Clock: 100 MHz
    Max Speed: 3000 MHz
    Current Speed: 3000 MHz
    Status: Populated, Enabled
    Upgrade: Socket LGA 2011
    L1 Cache Handle: 0x0703
    L2 Cache Handle: 0x0704
    L3 Cache Handle: 0x0705
    Serial Number: Not Specified
    Asset Tag: Not Specified
    Part Number: Not Specified
    Core Count: 8
    Core Enabled: 8
    Thread Count: 16
    Characteristics:
        64-bit capable
        Multi-Core
        Hardware Thread

lscpu

cpu와 관련된 정보를 출력하는 명령어입니다. dmidecode와 비슷한 역할을 하지만, 더 간단하게 출력해줍니다.
특히, NUMA와 관련된 정보를 출력해주는 점이 차이점입니다.

# lscpu

Architecture:           aarch64
  CPU op-mode(s):       64-bit
  Byte Order:           Little Endian
CPU(s):                 8
  On-line CPU(s) list:  0-7
Vendor ID:              0x00
  Model:                0
  Thread(s) per core:   1
  Core(s) per socket:   8
  Socket(s):            1
  Stepping:             0x0
  BogoMIPS:             48.00
  Flags:                fp asimd evtstrm aes pmull sha1 sha2 crc32 atomics fphp asimdhp cpuid asimdrdm jscvt fcma lrcpc dcpop sha3 asimddp s
                        ha512 asimdfhm dit uscat ilrcpc flagm sb paca pacg dcpodp flagm2 frint
NUMA:
  NUMA node(s):         1
  NUMA node0 CPU(s):    0-7
Vulnerabilities:
  Gather data sampling: Not affected
  Itlb multihit:        Not affected
  L1tf:                 Not affected
  Mds:                  Not affected
  Meltdown:             Not affected
  Mmio stale data:      Not affected
  Retbleed:             Not affected
  Spec rstack overflow: Not affected
  Spec store bypass:    Vulnerable
  Spectre v1:           Mitigation; __user pointer sanitization
  Spectre v2:           Not affected
  Srbds:                Not affected
  Tsx async abort:      Not affected

memory

/proc/meminfo

메모리 정보를 출력하는 명령어입니다. 메모리의 총 용량, 사용량, 사용 가능한 용량 등을 확인할 수 있습니다.

# cat /proc/meminfo | head -n 10
# 아주 많은 정보가 출력되기 때문에 앞의 10줄만 출력해보았습니다.

MemTotal:        4004640 kB
MemFree:         1628216 kB
MemAvailable:    3582652 kB
Buffers:           62432 kB
Cached:          1957112 kB
SwapCached:            0 kB
Active:           623540 kB
Inactive:        1451744 kB
Active(anon):       1332 kB

free

# free
               total        used        free      shared  buff/cache   available
Mem:         4004640      225444     1628468        5380     2150728     3582876
Swap:        3001340           0     3001340

total = used + free + buff/cached

dmidecode -t memory

dmidecode의 메모리 정보 출력물을 통해서, 메모리를 Physical Memory Array와 Memory Device로 구분하여 출력합니다.

# dmidecode -t memory

# dmidecode 3.3
Getting SMBIOS data from sysfs.
SMBIOS 3.0.0 present.

Handle 0x1000, DMI type 16, 23 bytes
Physical Memory Array
	Location: Other
	Use: System Memory
	Error Correction Type: Multi-bit ECC
	Maximum Capacity: 4 GB
	Error Information Handle: Not Provided
	Number Of Devices: 1

Handle 0x1100, DMI type 17, 40 bytes
Memory Device
	Array Handle: 0x1000
	Error Information Handle: Not Provided
	Total Width: Unknown
	Data Width: Unknown
	Size: 4 GB
	Form Factor: DIMM
	Set: None
	Locator: DIMM 0
	Bank Locator: Not Specified
	Type: RAM
	Type Detail: Other
	Speed: Unknown
	Manufacturer: QEMU
	Serial Number: Not Specified
	Asset Tag: Not Specified
	Part Number: Not Specified
	Rank: Unknown
	Configured Memory Speed: Unknown
	Minimum Voltage: Unknown
	Maximum Voltage: Unknown
	Configured Voltage: Unknown

disk

df (disk free)

각 파일 시스템이 마운트 된 곳과 용량을 출력합니다.

/dev/mapper/ubuntu–vg-ubuntu–lv, /dev/vda1, /dev/vda2 3개의 파일 시스템이 확인됩니다. 마운트된 경로를 보니 vda1, vda2는 부트 파티션으로 사용되고 있고, ubuntu–vg-ubuntu–lv는 루트 파티션으로 사용되고 있음을 확인할 수 있습니다.

VM 위의 파일 시스템이기 때문에 vda로 시작하는 이름을 가지고 있습니다. 일반적으로는 hda나 sda로 시작하는 이름을 가지고 있습니다.

tmpfs 는 임시 파일 시스템을 의미합니다.

# df -h (human readable)

Filesystem                         Size  Used Avail Use% Mounted on
tmpfs                              392M  1.4M  390M   1% /run
/dev/mapper/ubuntu--vg-ubuntu--lv   15G  7.0G  6.5G  52% /
tmpfs                              2.0G     0  2.0G   0% /dev/shm
tmpfs                              5.0M     0  5.0M   0% /run/lock
/dev/vda2                          2.0G  129M  1.7G   8% /boot
/dev/vda1                          1.1G  6.4M  1.1G   1% /boot/efi
tmpfs                              392M  4.0K  392M   1% /run/user/1000

lsblk (list block devices)

블록 장치(디스크, 파티션, 논리 볼륨 등)에 대한 정보를 출력합니다. 특히, RAID 구성 여부를 확인할 수 있습니다.

# lsblk

NAME                      MAJ:MIN RM   SIZE RO TYPE MOUNTPOINTS
loop0                       7:0    0  59.2M  1 loop /snap/core20/1977
loop1                       7:1    0 109.6M  1 loop /snap/lxd/24326
loop2                       7:2    0  46.4M  1 loop /snap/snapd/19459
loop3                       7:3    0  35.5M  1 loop /snap/snapd/20298
sr0                        11:0    1  1024M  0 rom
vda                       252:0    0    32G  0 disk
├─vda1                    252:1    0     1G  0 part /boot/efi
├─vda2                    252:2    0     2G  0 part /boot
└─vda3                    252:3    0  28.9G  0 part
  └─ubuntu--vg-ubuntu--lv 253:0    0  14.5G  0 lvm  /

MAJ:MIN: major, minor number. 커널이 해당 디스크를 식별하는 데 사용하는 고유 번호입니다. RM: 디스크의 제거 가능 여부 RO: 읽기 전용 여부 TYPE: 디스크의 타입. lvm(logical volume manager)를 사용하고 있음을 확인할 수 있습니다. RAID로 구성여부도 출력됩니다. MOUNTPOINTS: 마운트된 경로

NAME      MAJ:MIN RM   SIZE RO TYPE  MOUNTPOINT
sda         8:0    0   1TB  0 disk
├─sda1      8:1    0   512M  0 part  /boot/efi
├─sda2      8:2    0   2GB   0 part  [SWAP]
└─sda3      8:3    0 997.5G  0 part
  └─md0     9:0    0  1.9T  0 raid1 /
sdb         8:16   0   1TB  0 disk
├─sdb1      8:17   0   512M  0 part
├─sdb2      8:18   0   2GB   0 part
└─sdb3      8:19   0 997.5G  0 part
  └─md0     9:0    0  1.9T  0 raid1 /

위 예시에서 “sda"와 “sdb” 디스크는 RAID1으로 구성되었습니다. “md0"은 RAID 레이드 장치를 나타내며 “/dev/md0"는 RAID로 구성된 볼륨을 나타냅니다. RAID 구성은 여러 디스크의 복제 또는 데이터 분산을 허용하므로 “md0"의 하위 항목으로 “sda3"와 “sdb3"이 나타납니다.

network

네트워크 카드(NIC) 확인하기

lspci 명령어는 PCI 버스를 통해 연결된 장치들의 정보를 출력합니다. 여기서는 네트워크와 관련된 정보만을 grep하기 위해 grep 명령어를 사용하였습니다. 구체적으로, 서버가 사용하는 네트워크 카드(NIC)를 확인할 수 있습니다.

# lspci | grep -i ether

00:01.0 Ethernet controller: Red Hat, Inc. Virtio network device

ip로 network interface 확인

ifconfig 보다 ip 사용을 권장함. ifconfig는 유지 보수가 끝났으나 ip는 리눅스 커널과 같이 개발되며 지속적으로 유지보수되고 있음.

ip address # ip a로만 입력 가능
ip link # 네트워크 인터페이스 확인
ip neigh # ARP 테이블 (mac 주소) 확인하기

해당 글에서는 하드웨어적인 측면에서 살펴봐야하므로 ip 명령어에 대한 설명은 네트워크 인터페이스의 목록을 확인하는 것 정도로 마치겠습니다.

ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever

2: enp0s1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
    link/ether 1e:6f:22:b0:70:1e brd ff:ff:ff:ff:ff:ff
    inet 192.168.64.4/24 metric 100 brd 192.168.64.255 scope global dynamic enp0s1
       valid_lft 72571sec preferred_lft 72571sec
    inet6 fd1d:e88a:d67e:2671:1c6f:22ff:feb0:701e/64 scope global dynamic mngtmpaddr noprefixroute
       valid_lft 2591943sec preferred_lft 604743sec
    inet6 fe80::1c6f:22ff:feb0:701e/64 scope link
       valid_lft forever preferred_lft forever

루프팩 인터페이스를 제외하고, enp0s1 인터페이스, en(이더넷), po(포트), s1(슬롯1)을 의미합니다.

ethtool

위에서 확인한 네트워크 인터페이스의 구체적인 정보를 확인해볼 수 있습니다. 안타깝게도 가상 머신에서는 정상적인 값을 출력하지 않으므로 타 기기의 출력물을 살펴보겠습니다.

Supported link modes는 네트워크 카드가 지원하는 연결 모드를 의미합니다.
Advertised link modes는 네크워크 상 다른 장치와 연결 할 때 사용할 수 있는 연결 모드를 의미합니다.

해당 네트워크 카드가 지원하는 연결 모드와 속도를 확인해보겠습니다.

Half Duplex and Full Duplex

Half Duplex -> 데이터가 한 번에 한 방향으로만 전송됨. Full Duplex -<> 데이터가 동시에 양방향으로 전송될 수 있음.

Settings for enp0s1:
    Supported ports: [ TP ]
    Supported link modes:   10baseT/Half 10baseT/Full
                            100baseT/Half 100baseT/Full
                            1000baseT/Full
    Supported pause frame use: No
    Supports auto-negotiation: Yes
    Advertised link modes:  10baseT/Half 10baseT/Full
                            100baseT/Half 100baseT/Full
                            1000baseT/Full
    Advertised pause frame use: No
    Advertised auto-negotiation: Yes
    Link partner advertised link modes:  Not reported
    Link partner advertised pause frame use: No
    Link partner advertised auto-negotiation: No
    Speed: 1000Mb/s # 현재 속도
    Duplex: Full # duplex 지원
    Port: Twisted Pair
    PHYAD: 0
    Transceiver: internal
    Auto-negotiation: on
    MDI-X: off (auto)
    Supports Wake-on: pumbg
    Wake-on: g
    Current message level: 0x00000007 (7)
                               drv probe link
    Link detected: yes # 정상적으로 연결되었음을 의미합니다.

ethtool -g (ring buffer)

NIC의 버퍼 공간인 ring buffer의 크기를 확인해볼 수 있습니다.
패킷이 전달되면 ring buffer에 우선 복사된 후 커널에 의해 처리됩니다.
ring buffer가 너무 작다면 자주 커널에 의해 처리되어야 하므로 성능 저하가 발생할 수 있습니다.

관습적으로 pre-set maximums와 같게 hardware settings을 맞춰야 합니다. 수정을 원한다면 -G 플래그를 통해 수정할 수 있습니다.

# ethtool -g enp0s1

Ring parameters for enp0s1:
Pre-set maximums:
RX:		256
RX Mini:	n/a
RX Jumbo:	n/a
TX:		256
Current hardware settings:
RX:		256
RX Mini:	n/a
RX Jumbo:	n/a
TX:		256

ethtool -k

NIC 옵션을 확인할 수 있습니다.
tcp-offload 기능을 통해 mtu 이상의 크기를 가진 패킷의 분할 작업을 cpu가 아닌 NIC가 처리하도록 할 수 있습니다. 그러나 네트워크 대역폭이 높은 서버와 같이 특정 환경에서는 불특정한 패킷 유실이 발생할 수 있어 off 시키곤 합니다.

# ethtool -k enp0s1 | head -n 10

Features for enp0s1:
rx-checksumming: off [fixed]
tx-checksumming: off
	tx-checksum-ipv4: off [fixed]
	tx-checksum-ip-generic: off [fixed]
	tx-checksum-ipv6: off [fixed]
	tx-checksum-fcoe-crc: off [fixed]
	tx-checksum-sctp: off [fixed]
scatter-gather: off
	tx-scatter-gather: off [fixed]

ethtool -i

NIC의 커널 드라이버 정보를 확인할 수 있습니다.

ethtool -i enp0s1

driver: virtio_net
version: 1.0.0
firmware-version:
expansion-rom-version:
bus-info: 0000:00:01.0
supports-statistics: yes
supports-test: no
supports-eeprom-access: no
supports-register-dump: no
supports-priv-flags: no

  1. cpu의 개략적인 내용은 cpu.land 의 문서를 확인해보는 것이 좋습니다. ↩︎