Skip to content

GlueCode

Berkus Decker edited this page Aug 2, 2017 · 1 revision

A distinction should be made between the "kernel" and the "glue code". The kernel is conceptually a PD much like a user-level task, in which threads can execute, wait, migrate in and out, and so on; its primary distinction is that it is specially privileged and provides basic system control services. Glue code is the low-level, highly system-dependent code that enacts the transitions between all protection domains, both user and kernel. This distinction between kernel and glue code is often overlooked because both types of code usually execute in supervisor mode and are often linked together in a single binary image. However, this does not necessarily have to be the case; in QNX the 7K nucleus consists of essentially nothing but glue code, while the "kernel proper" is placed in a specially privileged but otherwise ordinary process. In the presence of migrating threads the distinction between them becomes extremely important.

Clone this wiki locally