Це не ядро, яке запобігає поганому доступу до пам'яті, це процесор. Роль ядра полягає лише в правильному налаштуванні процесора.
Точніше, апаратним компонентом, який запобігає поганому доступу до пам'яті, є MMU . Коли програма отримує доступ до адреси пам'яті, адреса декодується процесором на основі вмісту MMU. MMU встановлює переклад з віртуальних адрес на фізичні адреси: коли ЦП виконує завантаження або зберігає певну віртуальну адресу, він обчислює відповідну фізичну адресу на основі вмісту MMU. Ядро встановлює конфігурацію MMU таким чином, що кожна програма може отримати доступ лише до пам'яті, на яку вона має право. Регістри пам'яті та апаратних регістрів інших програм зовсім не відображаються в пам'яті програми: ці фізичні адреси не мають відповідної віртуальної адреси в конфігурації MMU для цієї програми.
При контекстному перемиканні між різними процесами ядро змінює конфігурацію MMU таким чином, що містить потрібний переклад для нового процесу.
Деякі віртуальні адреси взагалі не відображаються, тобто MMU переводить їх на спеціальне значення "немає такої адреси". Коли процесор перенаправляє ненаписану адресу, це викликає пастку: процесор відгалужується на заздалегідь визначене місце в коді ядра. Деякі пастки є законними; наприклад, віртуальна адреса може відповідати сторінці, що знаходиться в просторі своп ; у цьому випадку код ядра завантажить вміст сторінки із свопом, а потім переключиться назад на початкову програму таким чином, щоб інструкція з доступу до пам'яті виконувалась знову. Інші пастки не є законними, і в цьому випадку процес отримує сигнал, який за замовчуванням вбиває програму негайно (а якщо не гілки на обробник сигналу в програмі: у будь-якому випадку інструкція доступу до пам'яті не завершена).