Один из инженеров компании Intel представил в списке рассылки разработчиков ядра Linux набор патчей с реализацией новой подсистемы ядра LKL (Linux Kernel Library), предоставляющей средства для использования кода ядра в отдельных пользовательских приложениях с минимальными затратами на сопровождение. Например, LKL может использоваться для создания приложений напрямую обращающихся к поддерживаемым в Linux файловым системам, адаптации Linux-драйверов для других операционных систем или для обособленного использования отдельного сетевого стека. Важной особенностью является то, что подобные приложение не привязаны к Linux и могут обособленно функционировать в любых POSIX-совместимых ОС и в Windows.

При помощи LKL код ядра компилируется в отдельный объектный файл и напрямую связывается с приложением. Взаимодействие приложения с компонентами ядра производится через специальную прослойку, которая предоставляет библиотечный интерфейс, отражающий штатный интерфейс системных вызовов ядра. LKL предлагается для включения в ядро в форме порта "arch/lkl" и набора внешних библиотек "tools/lkl/lib".

В отличие от UML (User Mode Linux), который завязан на хосты с Linux и предоставляет полное окружение операционной системы с разделением на ядро и процессы, LKL рассчитан на привязку к приложению только ядра и многоплатформенное использование. Другой похожий проект - LibOS, использует собственные реализации таких высокоуровневых API ядра, как таймеры, обработчики прерываний, планировщики, sysctl, SLAB/SLUB и т.п., в то время как LKL реализован в форме кода поддержки отдельной архитектуры, заменяя лишь привязанные к аппаратным архитектурам операции.

Источник: http://www.opennet.ru/opennews/art.shtml?num=43258