Giter Site home page Giter Site logo

hvinfo's Introduction

hvinfo

Yet another hypervisor detection tool for UNIX-like systems.

Design goals

  • Single high level language (Ada 2005). Even if certain things require more code.
  • No root privileges required, ever. Even if it means running checks in inconvenient ways.
  • Support for at least the most popular UNIX-like systems, not just Linux.

Building

To build it, you need GNU Make, GNAT 4.x or higher (Ada 2005 support required) and gprbuild.

Build setup is rather simplistic at this time.

cd hvinfo
gmake
gmake install PREFIX=<some dir>

Building a Debian package

Debian packaging is not yet good enough to get it included in Debian, but should be fine for local use. Install the devscripts package and do:

debuild -us -uc

If you have your Ada toolchain installed in an unusual location, it's better to ensure you have it in your $PATH.

OS and hypervisor support

CPUID-based checks that can detect KVM, Xen HVM, VMware, bhyve, and Hyper-V are supported on any OS.

Xen PV vs. Xen HVM check is supported on Linux and FreeBSD.

The easiest way to detect VirtualBox, Parallels, and some other hypervisors that don't use CPUID identification is to check the SMBIOS vendor name, and this is currently only supported on Linux because it provides DMI information via sysfs to unprivileged users. FreeBSD requires root privileges for DMI reading, so Parallels is undetectable on FreeBSD right now.

Container systems such as LXC and OpenVZ are not supported yet.

Virtualization systems for platforms other than x86 aren't supported either.

Patches are welcome.

TODO

  • Implementation-independent makefile (anyone knows how to make ifdef work in both make flavours?)
  • Containers virtualization detection.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.