
Syscall - interposer
Get flash to fully experience Pearltrees
Dynamically Loaded (DL) Libraries
Shared Libraries
Sometimes, you might want to determine what is happening in a shared library without modifying the library (have you tried to build glibc lately?). Other times, you might want to override only a few functions within a library and get them to do something else--force a process to a specific CPU, prevent a specific USB message from being sent and so on. All of these tasks are possible if you use the LD_PRELOAD environment variable and a small shim program placed between the application and the library. As an example, say you create a shared library object called shim.so and want it to be loaded before any other shared library.
Modifying a Dynamic Library Without Changing the Source Code
Using static and shared libraries across platforms
Beginner's Guide to Linkers
This article is intended to help C & C++ programmers understand the essentials of what the linker does. I've explained this to a number of colleagues over the years, so I decided it was time to write it down so that it's more widely available (and so that I don't have to explain it again). [Updated March 2009 to include more information on the pecularities of linking on Windows, plus some clarification on the one definition rule.] A typical example of what triggers this explanation is when I help someone who has a link error like: If your reaction to this is ' almost certainly missing extern "C" ' then you probably already know everything in this article.System Call Table
From WikiContent The kernel is the heart of an operating system. It is responsible for such core functionality as memory management, process scheduling, TCP/IP networking, and so on. Linux Kernel Modules (LKMs) allow you to extend Linux kernel functionality on-the-fly.Section 7.2. Intercepting System Calls
NOTE: click here if you get an empty page. LD.SO(8) Linux Programmer's Manual LD.SO(8) ld.so, ld-linux.so* - dynamic linker/loader The programs ld.so and ld-linux.so* find and load the shared libraries needed by a program, prepare the program to run, and then run it. Linux binaries require dynamic linking (linking at run time) unless the -static option was given to ld during compilation.

