jumpstart -- run with shared libraries already loaded
John Reiser
BitWagon Software LLC
jreiser BitWagon com
September 4, 2007
jumpstart is a performance hack
for Linux/x86 that runs an application with shared libraries already loaded.
The executable file is started, then stopped after the runtime loader
ld-linux.so.2 has mapped the shared libraries, but before any application code has run.
The libraries loaded are those reported by ldd.
Then the process acts as a server: Read a task description from a
named pipe (fifo), then execute the task in a separate fork() child.
A task description is the commandline arguments and environment variables
that another instance of jumpstart (the client) communicates to the server.
The client jumpstart process waits for the termination of the server's fork()ed
child,
then exits with the same status code.
Performance improves if a fork() with the shared libraries present
is faster than setting up the shared libraries in the first place.