Download the eXtremeDB Kernel Mode data sheet (PDF)
Read the Dr. Dobb's Journal feature article on eXtremeDB-KM.
At the heart of many operating systems is the kernel, responsible for resource allocation, scheduling, low-level hardware interfaces, network, security and other integral tasks.
To accelerate overall system performance, some applications are deployed, entirely or in part, as kernel mode software components. Often such kernel-based software must sort, store and retrieve complex data – for example, an access control system’s “policy engine” may reside in the kernel and need to check a rules database to determine whether a process has permission to open specific files in a certain mode and at a certain time and date.
eXtremeDB Kernel Mode (KM) is the first database management system (DBMS) designed explicitly to run in the OS kernel, providing kernel-based application functions with critical database capabilities such as transaction processing, querying using multiple index types, multi-threaded data access, a flexible database API, and a high-level data definition language.
McObject pioneered in-memory embedded databases with its ultra-small footprint eXtremeDB. eXtremeDB’s efficiency, and its streamlined, all-in-memory architecture, permit its deployment in the kernel, where other database management systems (DBMSs) might overwhelm kernel resources.
In representative applications, eXtremeDB-KM performed an order of magnitude faster than the alternative of deploying a database system in user space and requiring kernel processes to access it via expensive (in performance terms) context switches.
eXtremeDB-KM is an in-memory database system that provides direct data access to kernel processes. The eXtremeDB run-time maps its databases into the driver or kernel module address space, providing pointers to the data elements and eliminating expensive buffer management.
The eXtremeDB-KM run-time code is directly linked with the module, so remote procedure calls are eliminated from the execution path. As a consequence, the execution path generally requires just a few CPU instructions. Kernel-mode threads have direct access to kernel-mode databases; concurrent access is coordinated by the database run-time. The databases are also made available to user-mode applications via a set of public interfaces implemented via system calls (see diagram, below).
eXtremeDB Kernel Mode is available to kernel processes directly. User-mode applications interact with eXtremeDB-KM using a set of public interfaces implemented via system calls to a kernel-mode proxy.
McObject’s eXtremeDB-KM package offers specialized development tools, complete source code, and example programs. One example kernel module provided with eXtremeDB-KM checks a given operation against access rules stored in the database. A related user-mode example program provides the interface to define and change rules stored in the kernel-mode database.