its kernel only for self-use