當開始要執行一個程式的時候 (process 建立了),kernel 就會為這個 process 準備一塊記憶體讓他儲存執行程式所需要的變數、資料、stack 等。而每一支程式都會有屬於自己的記憶體空間,kernel 透過其記憶體管理的方式,可以讓每個 process 都有自己的程式空間,自己的記憶體定址範圍,而且不會相互影響。
但是在 kernel module 中,所有的 module 使用的是跟 kernel 一樣的記憶體空間,所以如果其中某個 module 發生問題,譬如說佔用了別人的記憶體空間,或是修改了別人的記憶體內容,而造成 segmentation fault 的話,整個 kernel 也會因此而當掉的,所以必須小心謹慎的在 module 中處理變數跟位址。