Kernel Mode Linux allows user programs to run in kernel mode, improving performance and enabling greater control of system resources.
Unlike kernel modules, user programs are executed as regular processes, with scheduling and paging performed as usual. Despite the potential danger of allowing user programs to access the kernel directly, safety can be ensured through techniques such as static type checking and software fault isolation.
To demonstrate the potential of this technology, the Kernel Mode Linux project is currently working on a new system that combines Kernel Mode Linux with Typed Assembly Language (TAL). TAL is a language that can provide additional safety through its type checking capabilities, even at the machine binary level.
It's important to note that there are some restrictions on what user programs can do in kernel mode. For example, on IA-32, programs executed in kernel mode must not modify their CS, DS, FS, or SS registers. Similarly, on AMD64, programs executed in kernel mode must not modify their CS register. Additionally, IA-32 binaries cannot be executed in kernel mode on AMD64 systems.
Overall, Kernel Mode Linux is an exciting technology that can provide significant performance benefits while maintaining a high level of safety and security.
Version 2.6.31_001: N/A