separate user/kernel program