Kernel vs User Page Allocation

How does kernel memory allocation (kmalloc) differ from user-space allocation (malloc)?

A

malloc allocates physical frames directly; kmalloc allocates virtual pages

B

They use the same allocator; kmalloc just calls malloc internally

C

kmalloc returns physically contiguous memory; malloc returns virtually contiguous memory that may be scattered

D

kmalloc is faster because kernel memory is never swapped