Wenn Sie es von kernel.org herunterladen und extrahieren (linux-3.13), können Sie feststellen, dass es in linux-3.13 / kernel / fork.c eine Reihe gut dokumentierter Funktionen gibt. Einer, do_fork (...), behauptet, die eigentliche Gabelung auszuführen. Hier ruft diese Funktion 'static struct task_struct * copy_process (...)' in der Zeile 1129 auf. Was Sie suchen, muss sich in der Nähe befinden.
OK hier, wie ich sehe, ruft die Funktion nach der Prüfung der Selinux-Berechtigungen 'dup_task_struct (...)' auf, was 'alloc_task_struct_node (...)', 'alloc_thread_info_node (...)' und 'arch_dup_task_struct (...)' aufruft. . In Anbetracht der Tatsache, dass 'alloc_task_struct_node (...)' "wenig mehr als das Aufrufen von kmem_cache_alloc_node (...)" bedeutet, und der Tatsache, dass diese Funktion in der Datei linux-3.13 / mm / slab.c deklariert ist, die auf den Speicher hinweist Management und die Tatsache, dass viele Kernel-Threads möglicherweise gegen Speicherverwaltungsaufgaben arbeiten (das Erstellen und Löschen von Strukturen kontinuierlich), würde ich wetten, dass insbesondere Linux keine normalen Prozessdatenstrukturen nebeneinander erstellt, da viele Threads dies tun die gleichen generischen Zuordnungen, die Fork verwendet .
Wenn Sie linux-3.13 / mm / slub.c öffnen, beginnt es mitzuteilen, dass es sich um einen Slab-Speicherzuweiser handelt. Eine Internet-Suchmaschine gibt diese Ergebnisse an: Wikipedia ... und lwn .