[ Bottom of Page | Previous Page | Next Page | Contents | Index | Library Home | Legal | Search ]

Kernel Extensions and Device Support Programming Concepts

Kernel Environment

The kernel is dynamically extendable and can be expanded by adding routines that belong to any of the following functional classes:

The term kernel extension applies to all routines added to the kernel, independent of their purpose. Kernel extensions can be added at any time by a user with the appropriate privilege.

Kernel extensions run in the same mode as the kernel. That is, when the 64-bit kernel is used, kernel extensions run in 64-bit mode. These kernel extensions must be compiled to produce a 64-bit object.

The following kernel-environment programming information is provided to assist you in programming kernel extensions:

A process executing in user mode can customize the kernel by using the sysconfig subroutine, if the process has appropriate privilege. In this way, a user-mode process can load, unload, initialize, or terminate kernel routines. Kernel configuration can also be altered by changing tunable system parameters.

Kernel extensions can also customize the kernel by using kernel services to load, unload, initialize, and terminate dynamically loaded kernel routines; to create and initialize kernel processes; and to define interrupt handlers.

Note
Private kernel routines (or kernel services) execute in a privileged protection domain and can affect the operation and integrity of the whole system. See Kernel Protection Domain for more information.

[ Top of Page | Previous Page | Next Page | Contents | Index | Library Home | Legal | Search ]