Linux and UNIX systems: Building a K-TAP

There are hundreds of Linux distributions available, and the list is growing. This means that there might not be a K-TAP already available for your Linux distribution. If the correct K-TAP is not available, the S-TAP installation process can build it for you.

When you install an S-TAP on a Linux system, the installation process checks the Linux kernel to determine whether a K-TAP has been created to work with that kernel. If a kernel is running that hasn’t loaded the KTAP before, it searches for a matching module and loads it. If the installation process does not find a matching K-TAP, it attempts to build one to match your Linux kernel.

Most of the K-TAP code is independent of the kernel. The installer for version 9.1 provides a new layer of code, which enables the kernel-independent code to interact with your kernel. This new layer is delivered as proprietary source code. The installer builds the complete K-TAP by compiling this proprietary source code against your Linux kernel. This produces a K-TAP specific to your Linux distribution.

This process requires that the standard kernel development utilities, provided with Linux distribution, are present on the database server where the K-TAP is to be built. The development package must be an exact match for the kernel. The gcc compiler is also required.

If you have several systems running the same Linux distribution, you can build a K-TAP on one system and copy it to the others. For example, you might build a K-TAP on a test system and then copy it to one or more production database servers after testing. If you use the Guardium Installation Manager (GIM) to install the S-TAP, GIM can automatically copy the bundle containing the new K-TAP to a Guardium system from which you can distribute it to other database servers.

When the installer attempts to build a K-TAP module, you see messages issued by guard-ktap-loader. These messages can include:
  • It is attempting to build
  • The build has completed
  • The K-TAP has been loaded
  • The build cannot be attempted, because the kernel development package is not found