Aber diese unterschiedlichen Dinge benötigen Pages mit unterschiedlichen Attributen (z.B. Execute-Only für .code) und wie ein Prozess intern genau aufgebaut sein sollte ist meiner persönlichen Meinung nach auch eher Aufgabe des Kernels.
Naja, deswegen meinte ich ja auch, dass es im einfachsten Fall reicht wenn der Loader Pages in den neuen Prozess mappen darf. Was natürlich mit den entsprechenden Page-Rechten passieren sollte.
Aber was meinst du mit internem Aufbau des Prozesses? Meinst du da, wo der Code hinkommt, wo die Daten usw.? Das sollte eigentlich egal sein bzw. macht es aus der Sicht mehr Sinn, das der Kernel nicht angefasst werden muss um neue Features (ASLR oder so) zu implementieren, sondern das kann man dann schön im Loader machen.
In tyndur darf den Syscall zum Mappen von Pages jeder Prozess benutzen, aber nur, wenn er den anderen Prozess selber erstellt hat und der andere Prozess noch nicht läuft. Dieser Syscall ist also völlig harmlos und man muss die Rechte nicht auf den Loader einschränken.
Naja, ich würde das aber auch meinen Loader machen lassen, wenn der Prozess schon läuft und "einfach" nur nen Plug-In laden will.
Und ich sag mal das Recht das nur ein ganz bestimmter Prozess nen Syscall machen darf, lässt sich leichter, performanter und bug-freier implementieren, als wenn man das mit irgendwelchen Rechten (Mehrzahl!) machen würde. Denn du willst doch sicher auch nicht das jedes Programm ein neues Programm starten darf oder?
Das liegt jetzt auch ein wenig daran, wie man die Rechte oder allgemein die Sicherheit umsetzen möchte.
Es kann auch durchaus sein, das ich mal wieder ein Problem sehe wo keins ist, aber wie gesagt, eine mir bekannte und genau definierte Stelle ist mir lieber als alle dürfen ran