ไม่ใช่เคอร์เนลที่ป้องกันการเข้าถึงหน่วยความจำไม่ดี แต่เป็น CPU บทบาทของเคอร์เนลมีเพียงการกำหนดค่า CPU อย่างถูกต้อง
อีกอย่างแม่นยำส่วนประกอบฮาร์ดแวร์ที่ป้องกันไม่ให้หน่วยความจำที่ไม่ดีเข้าถึงเป็นMMU เมื่อโปรแกรมเข้าถึงที่อยู่หน่วยความจำที่อยู่จะถูกถอดรหัสโดย CPU โดยยึดตามเนื้อหาของ MMU MMU สร้างการแปลจากที่อยู่เสมือนไปยังที่อยู่ทางกายภาพ: เมื่อ CPU ทำการโหลดหรือที่เก็บที่อยู่เสมือนที่แน่นอนจะคำนวณที่อยู่ทางกายภาพที่สอดคล้องตามเนื้อหา MMU เคอร์เนลตั้งค่าการกำหนดค่า MMU ในลักษณะที่แต่ละโปรแกรมสามารถเข้าถึงหน่วยความจำที่มีสิทธิ์เท่านั้น หน่วยความจำของโปรแกรมอื่นและการลงทะเบียนฮาร์ดแวร์ไม่ได้ถูกแมปในหน่วยความจำของโปรแกรมเลย: ที่อยู่จริงเหล่านี้ไม่มีที่อยู่เสมือนที่สอดคล้องกันในการกำหนดค่า MMU สำหรับโปรแกรมนั้น
บนการสลับบริบทระหว่างกระบวนการต่าง ๆ เคอร์เนลจะแก้ไขการกำหนดค่า MMU เพื่อให้มีการแปลที่ต้องการสำหรับกระบวนการใหม่
ที่อยู่เสมือนบางอันไม่ได้ถูกแมปเลยนั่นคือ MMU แปลให้เป็นค่าพิเศษ“ ไม่มีที่อยู่ดังกล่าว” เมื่อตัวประมวลผลถูกยกเลิกการกำหนดแอดเดรสที่ไม่ได้แมปสิ่งนี้จะทำให้กับดัก: ตัวประมวลผลแยกไปยังตำแหน่งที่กำหนดไว้ล่วงหน้าในโค้ดเคอร์เนล กับดักบางชนิดนั้นถูกกฎหมาย ตัวอย่างเช่นที่อยู่เสมือนสามารถสอดคล้องกับหน้าเว็บที่อยู่ในพื้นที่สว็อปซึ่งในกรณีที่รหัสเคอร์เนลจะโหลดเนื้อหาของหน้าจากการสลับจากนั้นสลับกลับไปที่โปรแกรมต้นฉบับในลักษณะที่คำสั่งการเข้าถึงหน่วยความจำถูกดำเนินการอีกครั้ง กับดักอื่น ๆ นั้นไม่ถูกต้องตามกฎหมายซึ่งในกรณีนี้กระบวนการได้รับสัญญาณซึ่งโดยค่าเริ่มต้นจะฆ่าโปรแกรมทันที (และถ้าไม่แยกไปที่ตัวจัดการสัญญาณในโปรแกรม: ในกรณีใด ๆ คำสั่งการเข้าถึงหน่วยความจำไม่สมบูรณ์)