Фундаментом распределения памяти ядра в Linux является механизм распределения страниц, используемый для управления пользовательской виртуальной памятью. Здесь, как и в схеме виртуальной памяти, используется алгоритм двойников, так что память для нужд ядра может выделяться и освобождаться на уровне страниц. Поскольку минимальное количество памяти, которое может быть выделено таким образом, составляет одну страницу, такое распределение неэффективно в связи с частыми запросами на выделение небольших участков памяти разного размера с малым временем жизни. Для повышения эффективности Linux использует схему, известную как кусочное распределение (slab allocation) [BONW94] в пределах выделенной страницы. На машинах Pentium/x86 размер страницы составляет 4 Кбайт, и участки памяти, выделяемые в пределах страницы, могут иметь размеры 32, 64, 128, 252, 508, 2040 и 4080 байт.
Такое распределение является относительно сложным и детально здесь не рассматривается;его полное описание можно найти в [VAHA96]. По сути, Linux поддерживает множество связанных списков, по одному для участков каждого размера. Участки могут быть разделены на меньшие или объединены вместе, подобно разделению и слиянию блоков в алгоритме двойников, и перемещаться из одного списка в другой соответственно изменению их размеров.