Kernel Mode Linux is a technology which enables the execution of user programs in a kernel mode.
Version: 2.6.31_001Kernel Mode Linux project is a technology which enables us to execute user programs in kernel mode. In Kernel Mode Linux, user programs can be executed as user processes that have the privilege level of kernel mode.
Operating System: Linux
The benefit of executing user programs in kernel mode is that the user programs can access a kernel address space directly. So, for example, user programs can invoke system calls very fast because it is unnecessary to switch between a kernel mode and a user mode by using costly software interruptions or context switches.
Unlike kernel modules, user programs are executed as ordinary processes (except for their privilege level), so scheduling and paging are performed as usual.
Although it seems dangerous to let user programs access a kernel directly, safety of the kernel can be ensured, for example, by static type checking, software fault isolation, and so forth.
For proof of concept, we are developing a system which is based on the combination of Kernel Mode Linux and Typed Assembly Language, TAL. (TAL can ensure safety of programs through its type checking and the type checking can be done at machine binary level.
ï¿½ On IA-32, programs executed in kernel mode shouldn't modify their CS, DS, FS and SS registers.
ï¿½ On AMD64, programs executed in kernel mode shouldn't modify their CS register.
ï¿½ In addition, on AMD64, IA-32 binaries cannot be executed in kernel mode.