A question that we often get is whether or not the IVI instrument drivers that we supply with our VTI Instruments products are compatible with Linux. The reason for this question is that many users prefer to have complete control over the software of their test system. And as a result, prefer to use Linux over Windows as their test system’s operating system. For users of LXI instrumentation, the question becomes whether or not the IVI instrument driver that comes standard with their LXI hardware work in Linux.
First of all, it is important to note that there are two levels of IVI compliance: IVI-COM and IVI-C. IVI-C drivers are IVI drivers that that have a C application-programming interface (API). IVI-COM drivers are IVI drivers that have a COM API. COM is a Microsoft technology, and is an architecture that is heavily dependent on the Windows operating system. As a rule of thumb, therefore, IVI-COM drivers will not work on a Linux OS.
Although an LXI instrument need only be delivered with either an IVI-COM driver or and IVI-C driver to be considered compliant, it is quite common industry wide, to deliver both with LXI instruments. Part of the reason for this is that tools commonly used to develop IVI drivers generate an IVI-COM driver at the core and automatically wrap the IVI-COM driver with an IVI-C driver, thus creating both deliverables. This model ultimately poses problems for Linux users.
As shown in the diagram above, IVI-C drivers may not work under Linux if the IVI-C driver is dependent on the IVI-COM driver. In theory, a pure IVI-C driver could work under Linux, but IVI-C instrument drivers require some kind of VISA drivers to be functional. While there are some Linux-based VISA libraries available, they are limited in functionality and support. While this approach is possible, it is challenging.
Because VTI Instruments is committed to providing our customers with an open software architecture, we strive to allow our customers to develop test systems using any operating system they choose. As a result, when designing our first LXI instrument, it was a design requirement to deliver IVI drivers that would work as well under Linux as the IVI drivers designed for the Windows operating system.
The solution involved creating a core driver that contained all of the functionality to control the device. This is illustrated in the diagram above. The higher-level IVI-COM and IVI-C drivers are nothing more than wrappers to the true VTI Instrument core driver. The advantage to this approach is the core driver can be delivered to customers who prefer Linux to Windows. While they don’t get an IVI compliant driver, they do get a driver that delivers the same exact functionality without any of the caveats introduced by IVI to Linux users.