A method and apparatus for providing abstraction layers in the hierarchical
structure of a set-top terminal to enable the set-top's firmware to be
compatible with different operating systems. An operating system (OS)
kernel interface is provided using a first OS abstraction layer that is
OS-independent, and a second abstraction layer that is OS-dependent. The
interface enables the terminal's firmware to access the kernel's set of
functions independently of the OS. The abstraction layers provide an
interface for kernel functions for the following kernel constructs:
Timers, Threads, Memory, Synchronization and Messaging. The invention
benefits terminal manufacturers and developers as well as network
operators by allowing set-top firmware to run without modifications due to
a change in the set-top's OS.