Hallo Tom,
Was ja auch gut so ist - sonst würde ein "böses Programm"[tm] einfach SIGKILL abfangen, ignorieren und ließe sich dann nicht mehr beenden. Würde man dann als "Windows" bezeichnen ;-)
Und hier kommt wieder der GateKeeper ins Spiel.
Durch ständiges Wiederholen von Namen fangen Dinge auch nicht an, zu existieren. *sigh*
Er entscheidet, ob der Prozess abgeschossen werden sll, arbeitet die Filehandles, Speicherhandles, Gatehandles, etc ab. Danach sollten alle Ressourcen des gekillten Prozesses zurückgegeben worden sein. danach können auch die LDT des Prozesses aufgelöst werden.
Wenn ich mal von den ominösen Gatehandles absehe ist das das, was der Linux-Kernel macht. Und zwar ausschließlich der. Allerdings ist z.B. die Erwähnung der LDT eine komplett x86-spezifische Sache, auf anderne Architekturen setzt Linux das anders um, der Benutzer merkt dennoch keinen Unterschied. Du redest hier also mal wieder auf einer Ebene, die mit der Prozessbehandlung, so wie sie für den User/Programmierer sichtbar ist, so gut wie gar nichts zu tun hat. Ich wiederhole mich: Prozesse/Signale sind unter POSIX eben nicht so Low-Level, wie Du annimmst.
Das glaub eich allerdings nicht, denn Linux ist ein intelligentes OS und selbst DOS7 kannte schon Childprozesse, die nicht direkte Untertanen vom DOS-Kernel waren, sondern von Prozessen...
Du willst allen Ernstes ein Real-Mode-Betriebsystem (DOS) mit einem Protected-Mode-Betriebsystem (Linux) vergleichen? Naja, wenn Du DOS-Konzepte auf Linux überträgst, ist klar, woher Deine total falschen Vorstellungen kommen.
Viele Grüße,
Christian
"I have always wished for my computer to be as easy to use as my telephone; my wish has come true because I can no longer figure out how to use my telephone." - Bjarne Stroustrup