CPUid Ruby

Questo programmino è un esperimento nel vero senso del termine. È stato cominciato un po' per sfida durante una discussione sul forum per dimostrare che Ruby può essere un linguaggio più chiaro di Python. Come sempre la discussione non è giunta ad una conclusione ma a questo ci siamo abituati nella sezione Programmazione.

Il programma è estremamente semplice. Non fa altro che interrogare la CPU su cui è in esecuzione tramite l'istruzione assembly cpuid ed interpretare le risposte che questa ritorna ogni volta. Una volta terminate tutte le richieste vengono stampate a video una serie di informazioni che indicano il nome, il produttore ed un elenco di caratteristiche supportate.

La porte più interessante di questo programmino è sicuramente l'estensione scritta in C. Ruby essendo un linguaggio di alto livello non mette a disposizione un costrutto per inviare istruzioni assembly alla CPU. Tramite questa estensione però sono riuscito a definire due nuove funzioni C che potessero essere richiamate in maniera nativa anche da Ruby.

Esempio

Questo è un esempio dell'output che produce sul mio iMac.

Brand: Intel(R) Core(TM)2 Duo CPU     T7700  @ 2.40GHz
Family: 6    Model: 15    Step: 10
Type: Original OEM Processor
Vendor: GenuineIntel
...

Sorgenti

Puoi scaricare i sorgenti del programma da GitHub:
http://github.com/mmacrelli/cpuid-ruby