OSHI é um sistema operacional Java gratuito baseado em JNA (nativo) e uma biblioteca de informações de hardware

OSHI é um sistema operacional Java gratuito baseado em JNA (nativo) e uma biblioteca de informações de hardware. Não requer a instalação de nenhuma biblioteca nativa adicional e tem como objetivo fornecer uma implementação multiplataforma para recuperar informações do sistema, como versão do sistema operacional, processos, uso de memória e CPU, discos e partições, dispositivos, sensores, etc.

Plataformas suportadas

Windows • Linux • macOS • Unix (AIX, FreeBSD, OpenBSD, Solaris)

Download e gerenciamento de dependências

Versão estável

Desenvolvimento Atual (SNAPSHOT) Download

documento

uso

  1. Inclua o OSHI e suas dependências no seu classpath. Recomendamos fortemente que você adicione OSHI como uma dependência ao gerenciador de dependências do seu projeto (como Maven ou Gradle).
  2. Crie uma nova instânciaSystemInfo
  3. Use getters from SystemInfopara acessar componentes de hardware ou sistema operacional, por exemplo:
<span style="color:#333333"><span style="background-color:#f5f5f5"><code class="language-java"><span style="color:#660066">SystemInfo</span><span style="color:#000000"> si </span><span style="color:#666600">=</span> <span style="color:#000088">new</span> <span style="color:#660066">SystemInfo</span><span style="color:#666600">();</span>
<span style="color:#660066">HardwareAbstractionLayer</span><span style="color:#000000"> hal </span><span style="color:#666600">=</span><span style="color:#000000"> si</span><span style="color:#666600">.</span><span style="color:#000000">getHardware</span><span style="color:#666600">();</span>
<span style="color:#660066">CentralProcessor</span><span style="color:#000000"> cpu </span><span style="color:#666600">=</span><span style="color:#000000"> hal</span><span style="color:#666600">.</span><span style="color:#000000">getProcessor</span><span style="color:#666600">();</span></code></span></span>

Consulte SystemInfoTest.java para obter um exemplo . Para ver um exemplo de saída para sua máquina:

<span style="color:#333333"><span style="background-color:#f5f5f5"><code class="language-sh"><span style="color:#000000">git clone https</span><span style="color:#666600">://</span><span style="color:#000000">github</span><span style="color:#666600">.</span><span style="color:#000000">com</span><span style="color:#666600">/</span><span style="color:#000000">oshi</span><span style="color:#666600">/</span><span style="color:#000000">oshi</span><span style="color:#666600">.</span><span style="color:#000000">git </span><span style="color:#666600">&&</span><span style="color:#000000"> cd oshi

</span><span style="color:#666600">./</span><span style="color:#000000">mvnw test</span><span style="color:#666600">-</span><span style="color:#000000">compile </span><span style="color:#666600">-</span><span style="color:#000000">pl oshi</span><span style="color:#666600">-</span><span style="color:#000000">core exec</span><span style="color:#666600">:</span><span style="color:#000000">java \
  </span><span style="color:#666600">-</span><span style="color:#660066">Dexec</span><span style="color:#666600">.</span><span style="color:#000000">mainClass</span><span style="color:#666600">=</span><span style="color:#008800">"oshi.SystemInfoTest"</span><span style="color:#000000"> \
  </span><span style="color:#666600">-</span><span style="color:#660066">Dexec</span><span style="color:#666600">.</span><span style="color:#000000">classpathScope</span><span style="color:#666600">=</span><span style="color:#008800">"test"</span></code></span></span>

Algumas configurações podem ser definidas no arquivo oshi.properties ou manipuladas usando a classe GlobalConfig . Isso deve ser feito na inicialização, pois a configuração não é segura para threads e o OSHI não garante a releitura da configuração durante a operação.

Este oshi-demoartefato inclui vários exemplos de prova de conceito do uso de OSHI para obter informações, incluindo uma GUI Swing básica.

Recursos suportados

  • Sistemas de computador e firmware, substratos
  • SO e versão/compilação
  • CPUs físicas (Core) e lógicas (Hyper-Threading), grupos de processadores, nós NUMA
  • Carga do sistema e por processador, contadores de ticks de uso, interrupções, tempo de atividade
  • Tempo de atividade do processo, CPU, uso de memória, usuário/grupo, parâmetros de linha de comando, detalhes do thread
  • Memória física e virtual usada/disponível
  • Sistema de arquivos montado (tipo, espaço livre e total, opções, leitura e gravação)
  • Unidades de disco (modelo, número de série, tamanho, leitura e gravação) e partições
  • Interfaces de rede (IP, entrada/saída de largura de banda), parâmetros de rede, estatísticas TCP/UDP
  • Status da bateria (porcentagem de capacidade, tempo restante, estatísticas de uso de energia)
  • dispositivo USB
  • Monitor conectado (com informações EDID), placa gráfica e placa de som
  • Sensores em alguns hardwares (temperatura, velocidade do ventilador, tensão)

Exemplo de saída do OSHI

OSHI fornece saída para cada uma de suas interfaces diretamente por meio de métodos Java. Ao pesquisar periodicamente informações dinâmicas (por exemplo, a cada segundo), os usuários podem calcular e rastrear alterações.

Teste de informações do sistema

Você pode ver mais exemplos e executar SystemInfoTest  e ver a saída completa do seu sistema clonando o projeto e construindo-o com Maven.

desempenho oshi

Além disso, este oshi-demomódulo inclui uma classe OshiGui que implementa uma GUI Swing básica para fornecer sugestões para visualizações potenciais usando OSHI em UI, aplicativos de monitoramento ou alerta, conforme mostrado abaixo. Para uma GUI mais avançada baseada nesta abordagem, consulte o projeto MooInfo .

saída

Informações gerais sobre sistemas operacionais e hardware de sistema de computador:

 

Medindo os ticks (usuário, nice, sistema, inativo, iowait e irq) entre intervalos, a porcentagem de uso pode ser calculada. Informações para cada processador também são fornecidas.

 

As informações do processo incluem CPU e memória disponíveis para cada processo.

Informações sobre memória e arquivos de troca estão disponíveis.

 

Fornece estatísticas da bateria do sistema:

Power Sources:
 Name: InternalBattery-0, Device Name: bq20z451,
 RemainingCapacityPercent: 100.0%, Time Remaining: 5:42, Time Remaining Instant: 5:42,
 Power Usage Rate: -16045.216mW, Voltage: 12.694V, Amperage: -1264.0mA,
 Power OnLine: false, Charging: false, Discharging: true,
 Capacity Units: MAH, Current Capacity: 7213, Max Capacity: 7315, Design Capacity: 7336,
 Cycle Count: 6, Chemistry: LIon, Manufacture Date: 2019-06-11, Manufacturer: SMP,
 SerialNumber: D869243A2U3J65JAB, Temperature: 30.46°C

O EDID de cada display é fornecido. Isso pode ser analisado com vários utilitários para obter informações detalhadas. OSHI fornece um resumo dos dados selecionados.

Displays:
 Display 0:
  Manuf. ID=SAM, Product ID=2ad, Analog, Serial=HA19, ManufDate=3/2008, EDID v1.3
  41 x 27 cm (16.1 x 10.6 in)
  Preferred Timing: Clock 106MHz, Active Pixels 3840x2880
  Range Limits: Field Rate 56-75 Hz vertical, 30-81 Hz horizontal, Max clock: 140 MHz
  Monitor Name: SyncMaster
  Serial Number: H9FQ345476
 Display 1:
  Manuf. ID=SAM, Product ID=226, Analog, Serial=HA19, ManufDate=4/2007, EDID v1.3
  41 x 26 cm (16.1 x 10.2 in)
  Preferred Timing: Clock 106MHz, Active Pixels 3840x2880
  Range Limits: Field Rate 56-75 Hz vertical, 30-81 Hz horizontal, Max clock: 140 MHz
  Monitor Name: SyncMaster
  Serial Number: HMCP431880

Exibe o disco e o uso (tempos de leitura, gravação e transferência) e pode mapear partições para sistemas de arquivos.

Disks:
 disk0: (model: SanDisk Ultra II 960GB - S/N: 161008800550) size: 960.2 GB, reads: 1053132 (23.0 GiB), writes: 243792 (11.1 GiB), xfer: 73424854 ms
 |-- disk0s1: EFI (EFI System Partition) Maj:Min=1:1, size: 209.7 MB
 |-- disk0s2: Macintosh HD (Macintosh SSD) Maj:Min=1:2, size: 959.3 GB @ /
 disk1: (model: Disk Image - S/N: ) size: 960.0 GB, reads: 3678 (60.0 MiB), writes: 281 (8.6 MiB), xfer: 213627 ms
 |-- disk1s1: EFI (EFI System Partition) Maj:Min=1:4, size: 209.7 MB
 |-- disk1s2: Dropbox (disk image) Maj:Min=1:5, size: 959.7 GB @ /Volumes/Dropbox

As leituras dos sensores estão disponíveis com alguns hardwares (consulte as notas na API ).

Sensors:
 CPU Temperature: 69.8°C
 Fan Speeds:[4685, 4687]
 CPU Voltage: 3.9V

Os dispositivos USB conectados podem ser listados:

USB Devices:
 AppleUSBEHCI
 |-- Root Hub Simulation Simulation (Apple Inc.)
     |-- IOUSBHostDevice
         |-- IR Receiver (Apple Computer, Inc.)
         |-- USB Receiver (Logitech)
 AppleUSBEHCI
 |-- Root Hub Simulation Simulation (Apple Inc.)
     |-- FaceTime HD Camera (Built-in) (Apple Inc.) [s/n: DJHB1V077FDH5HL0]
     |-- IOUSBHostDevice
         |-- Apple Internal Keyboard / Trackpad (Apple Inc.)
         |-- BRCM2070 Hub (Apple Inc.)
             |-- Bluetooth USB Host Controller (Apple Inc.)
 AppleUSBEHCI
 |-- Root Hub Simulation Simulation (Apple Inc.)
     |-- IOUSBHostDevice
         |-- Apple Thunderbolt Display (Apple Inc.) [s/n: 162C0C25]
         |-- Display Audio (Apple Inc.) [s/n: 162C0C25]
         |-- FaceTime HD Camera (Display) (Apple Inc.) [s/n: CCGCAN000TDJ7DFX]
         |-- USB2.0 Hub
             |-- ANT USBStick2 (Dynastream Innovations) [s/n: 051]
             |-- Fitbit Base Station (Fitbit Inc.)

 https://github.com/oshi/oshi icon-default.png?t=M4ADhttps://github.com/oshi/oshi

Acho que você gosta

Origin blog.csdn.net/allway2/article/details/124844898#comments_28968427
Recomendado
Clasificación