Wie kann ich den Kernel schnell erstellen und testen, wenn ich einen Systemaufruf ändern möchte?

7

Insbesondere möchte ich ein fd-Flag und einen Zweig in ein paar fd-Handling-Systemaufrufen hinzufügen, die verwendet werden sollten, wenn das Flag anstelle des aktuellen Codes gesetzt ist. Ich denke, das einzige, was hier für die Zwecke dieser Frage wichtig ist, ist, dass dies eher eine generische als eine hardwarespezifische Modifikation sein sollte.

Wie richte ich die Dinge so ein, dass ich den geänderten Kernel neu erstellen und die neue Funktion schnell testen kann? Ich glaube, ich brauche ein grundlegendes Setup, das in einer virtuellen Maschine startet und meinen Testcode ausführt. Ich denke, es könnte einfach in einem Initram sein und der Start muss möglicherweise nicht weiter gehen (?)

Gibt es hierzu gute Anleitungen oder können Sie diese hier in einer einzigen Antwort erläutern?

PSkocik
quelle
2
Abhängig von den Besonderheiten können Sie dies auch als implementieren LD_PRELOAD.
Chrylis

Antworten:

11

eudyptula-bootist dafür ziemlich praktisch; Der einführende Blog-Beitrag enthält weitere Details. Grundsätzlich können Sie jedoch eine VM mit dem zu testenden Kernel und Ihren vorhandenen Dateisystemen (mit overlayfs) starten . Auf diese Weise können Sie einen Kernel schnell überprüfen, ohne ihn neu zu starten, und Sie haben weiterhin Zugriff auf alle Ihre Dateien.

Die einzige Anforderung an den zu testenden Kernel ist, dass er overlayfsund unterstützt 9p; Diese können einfach in der Kernelkonfiguration aktiviert werden, bevor sie erstellt werden.

Stephen Kitt
quelle