RISOLTO Virtualizzazione, cpu e ram

gpc

Utente Èlite
2,267
40
La VM riesce a "comprendere" se sta sfruttando cpu AMD o Intel?
Grazie in anticipo
 
Ultima modifica:

Skills07

Head of Development
Staff Forum
Utente Èlite
35,410
11,489
CPU
Ryzen 7 5800x
Dissipatore
Deepcool gammax l240 v2
Scheda Madre
Aourus Gigabyte X-470 ultra gaming
HDD
Samsung Evo 850 250gb ,2tb x 2 toshiba P300, 256 Ssd silicon power, Samsung evo plus 1tb nvme
RAM
32 gb G.Skill Tridentz 3200 mhz RGB
GPU
Zotac - RTX 3070 Ti Trinity OC
Monitor
ASUS TUF QHD 165hz IPS, ITEK GCF 165hz IPS QHD, Samsung Curvo 144hz QHD
PSU
Seasonic Focus 650w 80 platinum
Case
Coolermaster h500p
Periferiche
Asus Tuf Wireless
Net
Fibra Tim 100mb
OS
Windows 10 Pro 64 bit
Dovrebbe dirtelo e dipende da che virtualizzatore usi
 

DispatchCode

Moderatore
Staff Forum
Utente Èlite
2,222
1,853
CPU
Intel I9-10900KF 3.75GHz 10x 125W
Dissipatore
Gigabyte Aorus Waterforce X360 ARGB
Scheda Madre
Asus 1200 TUF Z590-Plus Gaming ATX DDR4
HDD
1TB NVMe PCI 3.0 x4, 1TB 7200rpm 64MB SATA3
RAM
DDR4 32GB 3600MHz CL18 ARGB
GPU
Nvidia RTX 3080 10GB DDR6
Audio
Integrata 7.1 HD audio
Monitor
LG 34GN850
PSU
Gigabyte P850PM
Case
Phanteks Enthoo Evolv X ARGB
Periferiche
MSI Vigor GK30, mouse Logitech
Net
FTTH Aruba, 1Gb (effettivi: ~950Mb / ~480Mb)
OS
Windows 10 64bit / OpenSUSE Tumbleweed
Se per VM intendi proprio il programma in sè, ovviamente si, riesce (può farlo anche un qualsiasi programma). Ci sono anche istruzioni assembly apposta per individuare il vendor, ma in generale il sistema operativo dispone di "interfacce" (diciamo così, per semplificare) che i vari programmi possono richiamare per avere alcune funzionalità.

Chi per caso ne fosse interessato, trova un esempio di codice sotto spoiler. ?

C:
#include <stdio.h>
#include <stdlib.h>
#include <stdint.h>

typedef struct _cpu_basic_info {
    char     vendorid[13];
} cpu_basic_info;

int main() {

    cpu_basic_info* info = calloc(1, sizeof(cpu_basic_info));

    __asm
    {
        mov    eax, 00h
        cpuid

        mov    esi, info

        mov    dword ptr[esi].vendorid, ebx
        mov    dword ptr[esi].vendorid + 4, edx
        mov    dword ptr[esi].vendorid + 8, ecx
    };

    printf("%s\n", info->vendorid);
    free(info);    
    getchar();

    return 0;
}

Nel mio caso il risultato è:

2022-07-05_190924.png
[/code]
 

BAT

Moderatore
Staff Forum
Utente Èlite
22,918
11,562
CPU
1-Neurone
Dissipatore
Ventaglio
RAM
Scarsa
Net
Segnali di fumo
OS
Windows 10000 BUG
Chi per caso ne fosse interessato, trova un esempio di codice sotto spoiler
non me lo compila, Compilatore GCC 11.2.0
da 5 errori,

In function 'main':
14|error: expected '(' before '{' token
15|error: unknown type name 'mov'|
15|error: invalid suffix "h" on integer constant|
15|error: expected identifier or '(' before numeric constant|
30|error: expected declaration or statement at end of input|
|=== Build failed: 5 error(s), 0 warning(s) (0 minute(s), 0 second(s)) ===|


magari posta lo zip direttamente del file, forse il copia-incolla si porta dietro robaccia, caratteri invisibili ecc.
 
Ultima modifica:

DispatchCode

Moderatore
Staff Forum
Utente Èlite
2,222
1,853
CPU
Intel I9-10900KF 3.75GHz 10x 125W
Dissipatore
Gigabyte Aorus Waterforce X360 ARGB
Scheda Madre
Asus 1200 TUF Z590-Plus Gaming ATX DDR4
HDD
1TB NVMe PCI 3.0 x4, 1TB 7200rpm 64MB SATA3
RAM
DDR4 32GB 3600MHz CL18 ARGB
GPU
Nvidia RTX 3080 10GB DDR6
Audio
Integrata 7.1 HD audio
Monitor
LG 34GN850
PSU
Gigabyte P850PM
Case
Phanteks Enthoo Evolv X ARGB
Periferiche
MSI Vigor GK30, mouse Logitech
Net
FTTH Aruba, 1Gb (effettivi: ~950Mb / ~480Mb)
OS
Windows 10 64bit / OpenSUSE Tumbleweed
non me lo compila, Compilatore GCC 11.2.0
da 5 errori,

In function 'main':
14|error: expected '(' before '{' token
15|error: unknown type name 'mov'|
15|error: invalid suffix "h" on integer constant|
15|error: expected identifier or '(' before numeric constant|
30|error: expected declaration or statement at end of input|
|=== Build failed: 5 error(s), 0 warning(s) (0 minute(s), 0 second(s)) ===|


magari posta lo zip direttamente del file, forse il copia-incolla si porta dietro robaccia, caratteri invisibili ecc.
Non te lo compila perché la sintassi asm è di MSVC, dovresti compilare con Visual Studio (o comunque con il compilatore Microsoft).
O in alternativa convertire l'asm per GCC ?
 

gpc

Utente Èlite
2,267
40
grazie
quindi se da una VM si esegue uno script può fornire come risultato Intel o AMD
Se qualcosa è scritto solo per Intel non si può eseguire su AMD?
 

BAT

Moderatore
Staff Forum
Utente Èlite
22,918
11,562
CPU
1-Neurone
Dissipatore
Ventaglio
RAM
Scarsa
Net
Segnali di fumo
OS
Windows 10000 BUG
Se qualcosa è scritto solo per Intel non si può eseguire su AMD?
l'architettura è x86_64 per entrambi, è per questo motivo che Windows, linux e programmi vari funzionano su entrambe le CPU, a parte qualche differenza in prestazioni dipendenti dall'ottimizzazione software
 
  • Mi piace
Reazioni: Moffetta88

DispatchCode

Moderatore
Staff Forum
Utente Èlite
2,222
1,853
CPU
Intel I9-10900KF 3.75GHz 10x 125W
Dissipatore
Gigabyte Aorus Waterforce X360 ARGB
Scheda Madre
Asus 1200 TUF Z590-Plus Gaming ATX DDR4
HDD
1TB NVMe PCI 3.0 x4, 1TB 7200rpm 64MB SATA3
RAM
DDR4 32GB 3600MHz CL18 ARGB
GPU
Nvidia RTX 3080 10GB DDR6
Audio
Integrata 7.1 HD audio
Monitor
LG 34GN850
PSU
Gigabyte P850PM
Case
Phanteks Enthoo Evolv X ARGB
Periferiche
MSI Vigor GK30, mouse Logitech
Net
FTTH Aruba, 1Gb (effettivi: ~950Mb / ~480Mb)
OS
Windows 10 64bit / OpenSUSE Tumbleweed
ok, però se parliamo di kernel del SO?

Non ho capito cosa stai chiedendo però.
Le architetture Intel o AMD non hanno alcun nesso con un SO.

Tra win e Linux ovviamente le differenze ci sono, a partire dal tipo di kernel.
Gli OS supportano svariate architetture.

Cosa vuoi sapere di preciso?
 

gpc

Utente Èlite
2,267
40
ok
se un kernel non supporta un' architettura non può andare ovviamente nemmeno su una VM?

per fare un esempio estremo, i SO Apple non possono essere eseguiti su AMD
(a prescindere dal discorso che devono essere installati sui loro device)
come discorso estremo
 

Skills07

Head of Development
Staff Forum
Utente Èlite
35,410
11,489
CPU
Ryzen 7 5800x
Dissipatore
Deepcool gammax l240 v2
Scheda Madre
Aourus Gigabyte X-470 ultra gaming
HDD
Samsung Evo 850 250gb ,2tb x 2 toshiba P300, 256 Ssd silicon power, Samsung evo plus 1tb nvme
RAM
32 gb G.Skill Tridentz 3200 mhz RGB
GPU
Zotac - RTX 3070 Ti Trinity OC
Monitor
ASUS TUF QHD 165hz IPS, ITEK GCF 165hz IPS QHD, Samsung Curvo 144hz QHD
PSU
Seasonic Focus 650w 80 platinum
Case
Coolermaster h500p
Periferiche
Asus Tuf Wireless
Net
Fibra Tim 100mb
OS
Windows 10 Pro 64 bit
con l'hackintosh installi anche su AMD
 

gpc

Utente Èlite
2,267
40
ok, però siamo su kernel non ufficiali per AMD
corretto?
la stabilità è tutt' altro che garantita
non si può istallare da dmg ufficiale
 

DispatchCode

Moderatore
Staff Forum
Utente Èlite
2,222
1,853
CPU
Intel I9-10900KF 3.75GHz 10x 125W
Dissipatore
Gigabyte Aorus Waterforce X360 ARGB
Scheda Madre
Asus 1200 TUF Z590-Plus Gaming ATX DDR4
HDD
1TB NVMe PCI 3.0 x4, 1TB 7200rpm 64MB SATA3
RAM
DDR4 32GB 3600MHz CL18 ARGB
GPU
Nvidia RTX 3080 10GB DDR6
Audio
Integrata 7.1 HD audio
Monitor
LG 34GN850
PSU
Gigabyte P850PM
Case
Phanteks Enthoo Evolv X ARGB
Periferiche
MSI Vigor GK30, mouse Logitech
Net
FTTH Aruba, 1Gb (effettivi: ~950Mb / ~480Mb)
OS
Windows 10 64bit / OpenSUSE Tumbleweed
ok
se un kernel non supporta un' architettura non può andare ovviamente nemmeno su una VM?

per fare un esempio estremo, i SO Apple non possono essere eseguiti su AMD
(a prescindere dal discorso che devono essere installati sui loro device)
come discorso estremo

VirtualBox esegue le istruzioni sulla macchina host, quindi non potresti ad esempio avere un host x86_64 che esegue un OS ARM.
VirtualBox è un hypervisor, non un emulatore.
 
  • Mi piace
Reazioni: Moffetta88

Entra

oppure Accedi utilizzando
Discord Ufficiale Entra ora!

Discussioni Simili