Ruang pengguna

Sistem operasi umumnya memisahakan ingatan virtual ke dalam ruang kernel dan ruang pengguna. Ruang kernel disediakan secara terbatas untuk menjalankan kernel, ekstensi kernel, dan beberapa device driver. Sebaliknya ruang pengguna merupakan tempat semua aplikasi yang berjalan pada modus pengguna beroperasi dan ingatan ini bisa ditukar-tukar sewaktu-waktu diperlukan. Istilah userland sering digunakan sebagai semua perangkat lunak sistem operasi yang berjalan pada ruang pengguna. Setiap proses pada ruang pengguna normalnya berjalan menggunakan ingatan virtualnya sendiri, dan, kecuali diminta secara eksplisit, tidak dapat mengakses ingatan atas proses yang lain. Hal ini merupakan dasar atas proteksi ingatan yang terdapat pada sistem operasi saat ini, dan menjadi kerangka dasar atas mekanisme pemisahan hak akses. Bergantung pada hak akses yang dimiliki, sebuah proses dapat meminta kernel untuk memetakan bagian dari ruang ingatan proses lainnya untuk proses tersebut, seperti yang terdapat pada pengawakutu. Program juga dapat meminta menggunakan area ingatan untuk kebutuhan berbagi dengan proses lainnya. Suatu pendekatan lain digunakan pada sistem operasi eksperimental adalah dengan menyediakan ruang alamat tunggal untuk semua perangkat lunak, dan mempercayakannya pada mesin virtual suatu bahasa pemrograman untuk memastikan ruang ingatan tersebut tidak dapat digunakan oleh aplikasi. Pendekatan ini telah diimplementasikan pada JXOS, Unununium, dan begitu pula Microsoft Singularity.