Ответ 1
В поисках ответа я отправил тот же вопрос о Quora, и Роберт Лав ответил на него:
Я предполагаю, что вы спрашиваете об этом с точки зрения пользователя системы, или, возможно, кто-то строит ядро для конкретного продукта. Как разработчику ядра, вам все равно, какой распределитель "slab" используется; API то же самое.
Во-первых, "slab" стал общим именем, относящимся к стратегии выделения памяти, использующей кэш объектов, позволяющий эффективно распределять и освобождать объекты ядра. Впервые он был задокументирован инженером Sun Джеффом Бонвиком 1 и реализован в ядре Solaris 2.4.
Linux в настоящее время предлагает три варианта для своего распределителя "slab":
Slab - оригинал, основанный на оригинальной статье Bonwick и доступный с версии ядра Linux 2.2. Это точная реализация предложения Bonwick, дополненная многопроцессорными изменениями, описанными в последующем документе Bonwick 2.
Slub - это замещающий распределитель памяти следующего поколения, который по умолчанию используется в ядре Linux с 2.6.23. Он продолжает использовать базовую модель "slab", но исправляет несколько недостатков в дизайне Slab, особенно вокруг систем с большим количеством процессоров. Slub проще, чем Slab.
SLOB (простой список блоков) - это распределитель памяти, оптимизированный для встраиваемых систем с очень небольшим объемом памяти - порядка мегабайт. Он применяет очень простой алгоритм первого соответствия для списка блоков, мало чем отличающийся от старого распределителя кучи в стиле K & R. Устраняя почти всю избыточность из распределителя памяти, SLOB хорошо подходит для систем с экстремальными ограничениями памяти, но он не предлагает ни одного из преимуществ, описанных в 1, и может страдать от патологической фрагментации.
Что вы должны использовать? Slub, если только вы не собираете ядро для встроенного устройства с ограниченным объемом памяти. В этом случае я бы сравнил Slub против SLOB и посмотрел, что лучше всего подходит для вашей рабочей нагрузки. Нет причин использовать плиту; скорее всего, он будет удален из будущих выпусков ядра Linux.
Пожалуйста, обратитесь к этой ссылке для оригинального ответа.