Ich arbeite an einem Experiment, mit dem Benutzer 1% meiner CPU verwenden können. Das ist wie dein eigener Webserver; aber eine große dynamische Remote-Ausführung Framework (Fragen Sie nicht darüber), und ich möchte nicht, dass Benutzer API-Funktionen wie Dateien erstellen, keine Sockets, keine Threads, keine Konsolenausgabe, nichts.
Update1: Leute werden mir Binärdateien senden, so interrupt 0x80
ist möglich. Deshalb ... Kernel?
Ich muss einen Prozess beschränken, so dass es nichts anderes tun kann, als eine Einzelrohr verwenden. Durch diese Pipe wird der Prozess meine eigene umwickelte und kontrollierte API verwenden.
Ist das überhaupt möglich? Ich dachte wie ein Linux-Kernel-Modul.
Die Probleme mit der Begrenzung von RAM und CPU sind hier nicht primär, dafür gibt es etwas bei Google.
Vielen Dank im Voraus!
Werden Sie die Programme kompilieren, oder senden Ihnen die Benutzer Binärdateien? – Corbin
Es klingt, als ob Sie nach [ptrace] suchen (https://en.wikipedia.org/wiki/Ptrace). –
Sie können Chroot verwenden, um den Zugriff auf den Rest des Dateisystems zu beschränken. Aber um Dinge wie Socket-Erstellung und Ähnliches zu begrenzen, müssten Sie wahrscheinlich Ihre eigene libc rollen oder zumindest libc/glibc einbinden, um die Grenzen zu setzen. –