linux 线程有自己独立的内核栈(内核栈中存储着pcb)吗?

linux 线程有自己独立的内核栈(内核栈中存储着pcb)吗?
疑问首先我们知道所有线程共享主线程的虚拟地址空间current-mm指向同一个地址且都有自己的用户态堆栈共享父进程的地址空间再在里面分配自己的独立栈默认2M。这是毫无疑问的但还有一点我没搞明白内核栈是共享还是独立的回答独立的。理由要不然内核栈对应的thread_info中的tast_structpcb进程控制块没有办法与每个线程对应起来因为现在已经有多个task_struct了但保存内核栈的thread_info其实是thread_union联合体中只能保存一个task_struct。所以理论上分析虽然可以共享地址空间但每个线程还是需要一个单独的内核栈的。