X-Git-Url: http://git.annexia.org/?a=blobdiff_plain;f=virt-what.pod;h=2ef5d08181e7d25ae123aaddc3a433c3109f64ba;hb=fc6413775e8fd011f9583280f30f7c46defa6723;hp=0a724d4b8e3350c4c7574fe61e3c129d7a302f87;hpb=c9622b6019744e7fe13bd8ccd93374abc7770683;p=virt-what.git diff --git a/virt-what.pod b/virt-what.pod index 0a724d4..2ef5d08 100644 --- a/virt-what.pod +++ b/virt-what.pod @@ -95,7 +95,8 @@ Status: contributed by Justin Clift The guest is running inside IBM PowerVM Lx86 Linux/x86 emulator. -Status: data supplied by Jeffrey Scheel, not confirmed +Status: data originally supplied by Jeffrey Scheel, confimed by +Yufang Zhang and RWMJ =item B @@ -112,6 +113,15 @@ This is a User-Mode Linux (UML) guest. Status: contributed by Laurent Léonard +=item B + +Some sort of virtualization appears to be present, but we are not sure +what it is. In some very rare corner cases where we know that +virtualization is hard to detect, we will try a timing attack to see +if certain machine instructions are running much more slowly than they +should be, which would indicate virtualization. In this case, the +generic fact C is printed. + =item B This is Hitachi Virtualization Manager (HVM) Virtage @@ -163,6 +173,40 @@ Status: confirmed by RWMJ =back +=head1 EXIT STATUS + +Programs that use or wrap C should check that the exit +status is 0 before they attempt to parse the output of the command. + +A non-zero exit status indicates some error, for example, an +unrecognized command line argument. If the exit status is non-zero +then the output "facts" (if any were printed) cannot be guaranteed and +should be ignored. + +The exit status does I have anything to do with whether the +program is running on baremetal or under virtualization, nor with +whether C managed detection "correctly" (which is basically +unknowable given the large variety of virtualization systems out there +and that some systems deliberately emulate others). + +=head1 RUNNING VIRT-WHAT FROM OTHER PROGRAMS + +C is designed so that you can easily run it from +other programs or wrap it up in a library. + +Your program should check the exit status (see the section above). + +Some programming languages (notably Python: issue 1652) erroneously +mask the C signal and do not restore it when executing +subprocesses. C is a shell script and some shell commands +do not work correctly when you do this. You may see warnings from +C similar to this: + + echo: write error: Broken pipe + +The solution is to set the C signal handler back to C +before running C. + =head1 IMPORTANT NOTE Most of the time, using this program is the I thing to do. @@ -185,6 +229,13 @@ tool. You might include this information in status and monitoring programs. +=item System tuning (sometimes) + +You might use this program to tune an operating system so it runs +better as a virtual machine of a particular hypervisor. However if +installing paravirtualized drivers, it's better to check for the +specific features your drivers need (eg. for the presence of PCI devices). + =back =head1 SEE ALSO