用户模式 Linux (UML) 是一个有趣的概念. 它被构建为一个分开的 Linux 内核移植, 有 它自己的 arch/um 子目录. 它不在一个新的硬件类型上运行, 但是; 相反, 它运行在一 个由 Linux 系统调用接口实现的虚拟机上. 如此, UML 使用 Linux 内核来运行, 作为一 个 Linux 系统上的独立的用户模式进程.
有一个作为用户进程运行的内核拷贝有几个优点. 因为它们运行在一个受限的虚拟的处理 器上, 一个错误的内核不能破坏"真实的"系统. 可以在同一台盒子轻易的尝试不同的硬件 和软件配置. 并且, 也许对内核开发者而言, 用户模式内核可容易地使用 gdb 和 其他调 试器操作.
毕竟, 它只是一个进程. UML 显然有加快内核开发的潜力.
确实是忽略了指出, 你应当使你的网络适配卡建立在内核中, 然而, 否则调试器在启动时找不到它会关掉它自己.
然而, UML 有个大的缺点,从驱动编写者的角度看: 用户模式内核无法存取主机系统的硬 件. 因此, 虽然它对于调试大部分本书的例子驱动是有用的, UML 对于不得不处理真实硬 件的驱动的调试还是没有用处.