So, when I create user level threads, the kernels are not aware of them
This is not entirely true. At least not the way you think.
, - BUT -, ( ). , (, ) . - BUT -, , .
. , . , , .
. Threads Java Python, greenlets Python, goroutines golang - .
Pthreads , pthread . , pthreads - .
, , . , setcontext() getcontext() , .