This project has been already open source in zytor.com since 2000.
It is used by many people and the package is also provided in most major Linux distros. But sometimes the main repository of this project had been pointed to many different places and the ownership was garbled. Now all the updates and the contributions will be posted on 01.org/msr-tools.
rdmsr / wrmsr
rdmsr / wrmsr give access to MSRs. Since it operates with '/dev/cpu/<cpu#>/msr' deivce, it requires a root privilege. And it can specify any CPU in a multi-processor system. To use '/dev/cpu/<cpu#>/msr' devices, 'msr' kernel module needs to be loaded.
e.g.) modprobe msr
sudo rdmsr -p2 0x10
=> read the register value from Time Stamp Counter MSR 0x10 of CPU 2
cpuid reads CPUID values from '/dev/cpu/<cpu#>/cpuid' device and shows a complete CPUID table for the specified processor. To use '/dev/cpu/<cpu#>/cpuid' devices, 'cpuid' kernel module needs to be loaded.
e.g.) modprobe cpuid
=> show all CPUID values of CPU 3
Direct access to MSRs could harm a system. Because wrmsr requires root privilege, a root user could corrupt the system in any other ways. But a user is still recommended to be careful when writing values to MSRs. cpuid does not require any privilege to run and CPUID values are immutable.