Gibt es gute (Einstiegs-) Tutorials zum Hinzufügen von Systemaufrufen zu FreeBSD über Kernel-ladbare Module? Genauer gesagt, die erforderliche Form der Methoden, um Informationen aus Prozessen zu erhalten, etc.Erstellen neuer Systemaufrufe über KLD in FreeBSD
Antwort
Ich bin wirklich glücklich zu sehen, dass Ihr Professor Ihnen solche praktischen Aufgaben gibt. Ich wünschte, ich hätte solche Profs.
Wie auch immer, die Sache ist, wenn Sie in der Kernel-Domäne arbeiten kaum finden Sie alle Ressourcen. Leute, die in der Kerndomäne arbeiten, dokumentieren nichts und schreiben keine Tutorials. Also, es ist wirklich schwer, irgendwelche "Entry Level" Dokumente zu finden. Auch wenn Sie ein solches Tutorial finden, werden die Dinge im Kernel ständig geändert und das Dokument wird nicht aktualisiert. Als ich anfing, musste ich Dinge lernen, indem ich den Kernel-Code las.
Eine andere wichtige Sache ist Linux ist mehr dokumentiert als jedes UNIX. Manchmal kann man Linux-Sachen lesen und dieses Wissen auf UNIX portieren. Genug mit dem Jammern. Hier sind die Ressourcen, die Ihnen helfen könnten.
BSD UNIX:
- Dynamic Kernel Linker (KLD) Facility Programming Tutorial hat "KLD Syscall Implementierung Skeleton"
- Designing BSD Rootkits: An Introduction to Kernel Hacking Dieses Sie einen anderen Ansatz lehrt Runtime kernel patching mit (in der Regel Trojaner diesen Ansatz verwenden), um den Systemaufruf Dispatcher zu flicken und ein erstellen Systemaufruf.
Linux:
- Adding A System Call to Linux Kernel: Ein Schritt für Schritt Anleitung
- Kernel command using Linux system calls: den Systemaufruf Linux Entdecken Schnittstelle (SCI), lernen, wie man neue Systemaufrufe hinzuzufügen (und Alternativen zu tun so)
Vielen Dank! Das war sehr hilfreich. – dckrooney
@dcmoebius: Ich bin froh, dass es dir geholfen hat. Wenn Sie bei der Freigabe Ihres Codes keine Probleme haben. Ich würde vorschlagen, dass Sie einen Tutorial/Blogbeitrag zu dieser Aufgabe schreiben. Und gib den Link hier an. Es wird anderen helfen. – claws
Das ist eine großartige Idee. Ich werde das machen, aber leider basieren spätere Aufgaben auf diesem. Also warte ich ein paar Wochen auf eine "Lösung": P – dckrooney
Ich sollte beachten, dass dies keine Hausaufgabe an sich ist, aber ein Teil einer größeren Aufgabe ist. :) – dckrooney
Ich bin nur neugierig. Was ist die komplette Aufgabe? – claws
Die vollständige Zuweisung umfasst die Erstellung eines separaten Prozess-Scheduling-Algorithmus. – dckrooney