Como verificar se recursos específicos da CPU estão disponíveis no Linux

LinuxBeginner
Pratique Agora

Introdução

Neste laboratório, você aprenderá como verificar as funcionalidades específicas da CPU disponíveis no seu sistema Linux. Você explorará diferentes métodos para inspecionar informações da CPU, começando com o comando fundamental cat /proc/cpuinfo para visualizar as especificações e flags detalhadas da CPU.

Após a inspeção inicial, você utilizará o comando lscpu para uma visão geral mais estruturada da arquitetura e capacidades da CPU. Finalmente, você se aprofundará nos detalhes do hardware usando dmidecode para obter mais informações sobre os componentes do seu sistema, incluindo informações da CPU.

Listar recursos da CPU com cat /proc/cpuinfo

Nesta etapa, você aprenderá como inspecionar as informações da CPU do seu sistema Linux usando o comando cat e o arquivo /proc/cpuinfo.

O sistema de arquivos /proc é um sistema de arquivos virtual no Linux que fornece informações sobre processos e outras informações do sistema. O arquivo /proc/cpuinfo contém detalhes sobre as CPU(s) instaladas no seu sistema.

O comando cat é um utilitário Linux fundamental usado para exibir o conteúdo de arquivos.

Abra seu terminal, caso ainda não esteja aberto. Você pode fazer isso clicando no ícone Xfce Terminal no lado esquerdo da sua área de trabalho.

Agora, digite o seguinte comando para exibir o conteúdo do arquivo /proc/cpuinfo:

cat /proc/cpuinfo

Pressione Enter.

Você verá uma grande quantidade de saída, detalhando vários aspectos da sua CPU. A saída será semelhante a esta (partes da saída foram omitidas para brevidade e generalidade):

processor       : 0
vendor_id       : GenuineIntel
cpu family      : 6
model           : 158
model name      : Intel(R) Core(TM) i7-7700HQ CPU @ 2.80GHz
stepping        : 9
microcode       : 0x...
cpu MHz         : ...
cache size      : ... KB
physical id     : 0
siblings        : 1
core id         : 0
cpu cores       : 1
apicid          : 0
initial apicid  : 0
fpu             : yes
fpu_exception   : yes
cpuid level     : ...
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 pti fsgsbase bmi1 hle avx2 smep bmi2 erms rtm invpcid mpx rdseed adx smap clflushopt xsaves xsaveopt pcpe bts md_clear flush_l1d arch_capabilities
bugs            : cpu_meltdown spectre_v1 spectre_v2 spec_store_bypass l1tf mds swapgs itlb_multihit srbds mmio_stale_data retbleed
bogomips        : ...
clflush size    : 64
cache_alignment : 64
address sizes   : 39 bits physical, 48 bits virtual
power management:

processor       : 1
vendor_id       : GenuineIntel
...

Este arquivo fornece informações detalhadas sobre cada núcleo da CPU, incluindo seu fornecedor, nome do modelo, velocidade, tamanho do cache e funcionalidades suportadas (listadas em flags).

Compreender a saída de /proc/cpuinfo é útil para solucionar problemas e entender as capacidades do hardware do seu sistema.

Clique em Continuar para prosseguir para a próxima etapa.

Verificar recursos com lscpu

Na etapa anterior, você usou cat /proc/cpuinfo para visualizar informações detalhadas da CPU. Embora /proc/cpuinfo seja abrangente, a saída pode ser bastante verbosa e, às vezes, difícil de analisar rapidamente.

Um comando mais amigável para obter um resumo das informações da arquitetura da CPU é lscpu. O comando lscpu coleta informações da arquitetura da CPU de /proc/cpuinfo e as apresenta em uma saída bem formatada e legível por humanos.

Vamos usar o comando lscpu para obter um resumo da sua CPU.

Digite o seguinte comando no seu terminal:

lscpu

Pressione Enter.

Você verá um resumo conciso da arquitetura da sua CPU. A saída será semelhante a esta:

Architecture:            x86_64
  CPU op-mode(s):        32-bit, 64-bit
  Address sizes:         39 bits physical, 48 bits virtual
  Byte Order:            Little Endian
CPU(s):                  1
  On-line CPU(s) list:   0
Vendor ID:               GenuineIntel
  Model name:            Intel(R) Core(TM) i7-7700HQ CPU @ 2.80GHz
    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 pti fsgsbase bmi1 hle avx2 smep bmi2 erms rtm invpcid mpx rdseed adx smap clflushopt xsaves xsaveopt pcpe bts md_clear flush_l1d arch_capabilities
L1d cache:               32K
L1i cache:               32K
L2 cache:                256K
L3 cache:                6M
NUMA node(s):            1
  NUMA node0 CPU(s):     0
Vulnerability Itlb multihit:  KVM: Mitigation: VMX disabled
Vulnerability L1tf:      Mitigation: PTE Inversion; VMX conditional cache flushes, SMT disabled
Vulnerability Mds:       Mitigation: Clear CPU buffers; SMT disabled
Vulnerability Meltdown:  Mitigation: PTI
Vulnerability Mmio stale data: Mitigation: Clear CPU buffers; SMT disabled
Vulnerability Retbleed:  Mitigation: IBPB conditional, IBRS_FW, RSB filling, PBRSB-eIBRS Not affected
Vulnerability Spec store bypass: Mitigation: Speculative Store Bypass disabled via prctl and seccomp
Vulnerability Spectre v1:  Mitigation: Invalidate IBPB conditional, INDIR branch predictor by IBPB_FW, STIBP disabled
Vulnerability Spectre v2:  Mitigation: IBPB conditional, IBRS_FW, RSB filling, PBRSB-eIBRS Not affected
Vulnerability Srbds:     Mitigation: Microcode
Vulnerability Tsx async abort: Not affected

Observe como lscpu apresenta as informações em um formato estruturado, tornando mais fácil encontrar detalhes específicos como a arquitetura, os modos de operação da CPU, o ID do fornecedor, o nome do modelo e um resumo das flags (funcionalidades da CPU).

Enquanto cat /proc/cpuinfo fornece os dados brutos, lscpu oferece uma visão analisada e organizada, que geralmente é mais conveniente para uma visão geral rápida.

Clique em Continuar para passar para a próxima etapa.

Inspecionar hardware com dmidecode

Nas etapas anteriores, você explorou as informações da CPU usando cat /proc/cpuinfo e lscpu. Agora, vamos analisar uma ferramenta mais geral para inspecionar o hardware do seu sistema: dmidecode.

dmidecode é uma ferramenta que lê a tabela DMI (Desktop Management Interface) ou SMBIOS (System Management BIOS) de um computador. Essa tabela contém informações sobre os componentes de hardware do sistema, como a placa-mãe, BIOS, memória e muito mais.

Como dmidecode acessa informações de baixo nível do sistema, ele requer privilégios de root. Você pode usar o comando sudo para executar dmidecode com esses privilégios. Lembre-se de que o usuário labex tem acesso sudo sem precisar de uma senha neste ambiente.

Digite o seguinte comando no seu terminal para exibir as informações completas do DMI:

sudo dmidecode

Pressione Enter.

Você verá uma grande quantidade de saída, detalhando vários componentes de hardware. A saída é estruturada em diferentes "handles" ou seções, cada uma descrevendo uma parte específica do sistema (por exemplo, Informações do BIOS, Informações do Sistema, Informações da Placa-Mãe, Dispositivo de Memória).

Aqui está um trecho do que você pode ver (a saída variará dependendo da configuração da máquina virtual):

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

Handle 0x0000, DMI type 0, 26 bytes
BIOS Information
        Vendor: Google
        Version: Google
        Release Date: 01/01/2011
        Address: 0xE8000
        Runtime Size: 96 kB
        ROM Size: 128 kB
        Characteristics:
                PCI is supported
                BIOS is upgradeable
                BIOS shadowing is allowed
                Boot from CD is supported
                Selectable boot is supported
                BIOS ROM is socketed
                EDD is supported
                5.25" / 1.2MB floppy services are supported (int 13h)
                3.5" / 720kB floppy services are supported (int 13h)
                3.5" / 2.88MB floppy services are supported (int 13h)
                Print screen service is supported (int 5h)
                8042 keyboard services are supported (int 9h)
                Serial services are supported (int 14h)
                Printer services are supported (int 17h)
                CGA/mono video services are supported (int 10h)
                NEC PC-98
                ACPI is supported
                USB legacy is supported
                BIOS boot specification is supported
                Targeted content distribution is supported
                UEFI is supported
        BIOS Revision: 0.0

Handle 0x0001, DMI type 1, 27 bytes
System Information
        Manufacturer: Google
        Product Name: Google Compute Engine
        Version: pc-i440fx-xenial
        Serial Number: ...
        UUID: ...
        Wake-up Type: Power Switch
        SKU Number: ...
        Family: Virtual Machine

Handle 0x0002, DMI type 2, 10 bytes
Baseboard Information
        Manufacturer: Google
        Product Name: Google Compute Engine
        Version: pc-i440fx-xenial
        Serial Number: ...
        Asset Tag: No Asset Tag
        Features:
                Board is a hosting board
                Board is replaceable
        Location In Chassis: Not Specified
        Chassis Handle: 0x0003
        Type: Motherboard
        Contained Object Handles: 0

... (more output)

Você também pode especificar o tipo de informação que deseja ver usando a opção -t. Por exemplo, para ver apenas informações de memória:

sudo dmidecode -t memory

Pressione Enter.

Isso filtrará a saída para mostrar apenas detalhes relacionados aos dispositivos de memória do sistema.

dmidecode é uma ferramenta poderosa para coletar especificações detalhadas de hardware sem abrir o computador. É particularmente útil para inventariar hardware ou solucionar problemas relacionados ao hardware.

Clique em Continuar para concluir este laboratório.

Resumo

Neste laboratório, você aprendeu como verificar funcionalidades específicas da CPU no Linux. Você começou usando o comando cat para exibir as informações detalhadas da CPU contidas no arquivo virtual /proc/cpuinfo, que fornece uma lista abrangente das características da CPU e das flags suportadas. Esta etapa inicial apresentou a você o acesso às informações do sistema por meio do sistema de arquivos /proc.