Wie nenne ich Kernelcode in LIBC? (Windows oder Linux)
Frage
Ich meine, wie der Kernel seine Funktion der Benutzerlandanwendung aussetzt.
Lösung
Kernelfunktionen werden unter Verwendung von Syscalls bezeichnet, bei denen normalerweise einige Register (Art der Syscall, Parameter, ...) und ein Software -Interrupt (int 0x80) oder eine Sysenter -Anweisung (falls Ihre Architektur unterstützt wird) ausfüllt.
Wenn Sie dies unter Linux tun, möchten Sie möglicherweise eine Linux -Syscall -Dokumentation wie eine hier sehen: http://bluemaster.iu.hio.no/edu/dark/lin-asm/syscalls.html
Es gibt sicherlich eine ähnliche Dokumentation für andere Kernel (Windows ').
Andere Tipps
Angenommen, Sie sprechen über Linux, setzen Sie Ihre Argumente in Register ein und rufen Interrupt 0x80 an. Der Name hierfür ist "Systemanruf". Siehe folgende Links:
- http://www.ibm.com/developerworks/linux/library/l-System-calls/
- http://www.linuxjournal.com/article/4048
Windows ist wahrscheinlich ähnlich, das sieht nach einem guten Artikel aus:
http://www.codeguru.com/cpp/wp/system/devicedRiverdevelopment/article.php/c8035
etc ... Google