程式不外乎就是要利用系統的資源去完成他的指令動作,因為 Linux 是多功的作業系統,所以多個程式同時去競爭使用有限的 (如記憶體) 或是同一個 (對同一磁碟進行讀取) 系統資源,是在平常不過的了。而 kernel 在這裡的任務就是要去分配這些系統資源,以及維持程式們執行的秩序,避免有人占用資源不放,或是變動了別人的資源而導致其他程式甚至是整個系統 crash。
程式的執行就是在 user space 與 kernel space 中來回切換。在 user space 的 function library 在編譯後會轉換成在 kernel space 執行的 system call,並且在 kernel 的協調監督下完成動作。而當 system call 完成後,就把結果再轉變成 user space 的形式傳回去。