После долгих поисков в ядре и работы над проектом, относящимся к той же теме, я обнаружил:
a) Да, у каждого kthread есть свой стек, который отличается от архитектуры, такой как 8k, 4k
b) Да Я потеряет локальный адрес одного из потоков, если он переключится обратно в пространство пользователя, когда стек ядра станет пустым, однако, если мы объявим глобальную переменную и exern, эта переменная сделает этот поток доступным в другом потоке. Кроме того, следует отметить, что все ядро имеет только 1 сегмент данных
c) Два потока имеют разные pid, потому что эти два потока являются двумя разными процессами в контексте ядра, добавьте, что они представлены [] в ps
{{ 1}}