Я реализую системный вызов, который вызывается в пользовательском пространстве, скажем, foo. Системный вызов обращается к структуре задачи foo (через текущий глобальный указатель), печатает ее имя и pid, затем переходит к родительскому процессу foo, родительскому процессу foo и т. д. Выводит все их имена и pid вплоть до процесса инициализации включительно.
pid=1 зарезервирован для инициализации, pid=0 зарезервирован для swapper.
Согласно task_struct swapper, его родительский процесс — это он сам.
Swapper (или sched) всегда имеет pid = 0 и всегда является родительским процессом init?
Все pids неотрицательны? Могу ли я сделать такое предположение?